For the moment I'm calling this new type "pointer" for want of a better
name. It represents a pointer or bookmark to some other object.
Here's what a "share" would look like under this new model (with some
Atom boilerplate omitted for brevity):
<entry>
<id>...</id>
<title>Martin shared "Badger Badger Badger"</title>
<content>(some HTML goop here)</content>
<activity:verb>
http://activitystrea.ms/schema/1.0/post
</activity:verb>
<activity:object>
<id>...</id>
<title>Cool badgers video</title>
<activity:object-type>
http://activitystrea.ms/schema/1.0/pointer
</activity:object-type>
<content>
<p>Check out this cool video I found!</p>
</content>
<activity:target>
<id>tag:youtube.com,2008:video:T0NvcQ3Yiqk</id>
<title>Badger Badger Badger</title>
<activity:object-type>
http://activitystrea.ms/schema/1.0/video
</activity:object-type>
<link rel="preview"
type="image/jpeg"
href="http://i1.ytimg.com/vi/T0NvcQ3Yiqk/default.jpg"
/>
<link rel="alternate"
type="text/html"
href="http://www.youtube.com/watch?v=T0NvcQ3Yiqk"
/>
</activity:target>
</activity:object>
</entry>
What's changed here is that pointer, unlike bookmark, is able to
reference an object rather than just a URL. This makes it much more
useful, and allows it to replace the "share' verb.
The advantage of this approach over share is that it allows the pointer
object to contain additional metadata added by the user doing the
sharing. In this case, I changed the title (which is often possible on
social bookmarking sites) and added my own comment in the content of the
pointer, which is allowed by Facebook's sharing UI[1].
Facebook also allows users to choose a particular preview image they
want to use when posting, which could be included as a link
rel="preview" in the pointer object itself. The re-publisher might in
this case omit the preview link from the object itself, since it would
be redundant.
I realize that this is incompatible with what both MySpace and Facebook
has implemented today, but I hope both will agree that this models the
user's interaction better than the "share" verb did.
I'd be interested in any feedback folks have about this.
One thing I'm a little bothered by is that I'm reusing activity:target
to mean something quite different. The alternative would be to invent a
new element, possibly in another namespace, to contain the target of the
pointer.
[1] Facebook presents it as a note with an "attached" object, but it
seems to be functionally equivalent to a pointer with a comment.
I was imagining that a review would be a special sort of reply, so you'd
use the in-reply-to element from Atom Threading Extensions to indicate
what the review is about.
I don't really like overloading activity:target in this way, and did it
for a lack of any other element to use. However, I'm wondering now if it
would make sense to use in-reply-to for all "pointer"-type items. This
feels like a more "correct" approach than using activity:target, but I
wonder if we're stretching the concept of a reply a bit too far.
> So in this example Review would be a specialization of Pointer.
> However Pointer sounds too Computer Sciency to me
>
> Could we call it something like: Opinion, Assesment or
> Recommendation ?
>
These all feel like synonyms for "review" rather than for "pointer". I
agree that "pointer" is not a good word, though. I wonder if we should
just keep the current "bookmark"; at least that has connotations of
linking to something, even if we are stretching the metaphor a little.
>
> And also if the user has no opinion on the object being Shared we
> should just go ahead an use Share with the object the way MySpace and
> Fb are doing.
>
I don't like the idea of having two ways to do the same thing.
Posting a pointer or bookmark is functionally equivalent to sharing an
object, so we can't have both or implementers will be unsure of which to
support.
Unfortunately I've not yet dug into what Facebook is doing in detail,
but I wonder where they're putting the user's annotations if they're
using the "share" verb right now.