It seems like this is really just a matter of which verb is used. The
"post" verb is "explicit" as you say; you wouldn't use the "post" verb
to RSVP to an event.
Likewise we already have a distinction between marking something as a
favorite vs. sharing it.
> 2) How do we represent posting a photo and commenting on it / giving
> it a description at the same time? Are these two different activities
> or can they be combined into one?
As we currently stand, posting a photo and giving it a description are
intended to be represented as a single activity with verb "post" and a
"photo" object that has link to the photo and a description.
It seems strange to conflate "giving it a description" with "commenting
on it". The latter would be a separate "post" activity that is
in-reply-to the photo object.
> 3) How is what a user wrote directly versus what they're quoting when
> they re-share something represented?
I think this needs some more concrete examples, since I'm not sure
exactly what this means.
> 5) We need an example using in-reply-to and the Atom Threading
> Extension.
>
> 6) We need more examples.
>
Acknowledged. :)
> 7) How do you batch multiple objects into one entry/activity? i.e. I
> uploaded 30 photos at the same time.
The spec allows for this, but it's not very well specified.
> 8) What is happening with the Atom Media Extension draft? We need to
> be able to include thumbnails, titles, synopsis, etc.
I was trying to get some interest in it within the Atom community in the
hope that someone else would take it on and finish it, since I don't
really have time to work on that and activity streams simultaneously.
If there's no interest then the best approach is probably to change the
schema spec to describe a subset of MediaRSS instead.
Yes, I think the desire was for aggregators to be able to have more of
this information versus having to know the nuances between verbs.
Taking Digg as an example, when I post a new story would they use the
"share" verb but when I Digg something use the "favorite" verb? Ari
can expand on this a bit better than I can.
>> 2) How do we represent posting a photo and commenting on it / giving
>> it a description at the same time? Are these two different
>> activities
>> or can they be combined into one?
>
> As we currently stand, posting a photo and giving it a description are
> intended to be represented as a single activity with verb "post" and a
> "photo" object that has link to the photo and a description.
>
> It seems strange to conflate "giving it a description" with
> "commenting
> on it". The latter would be a separate "post" activity that is
> in-reply-to the photo object.
Ok, I think this then also depends on how various publishers work.
So, we should have an example of both methods.
>> 3) How is what a user wrote directly versus what they're quoting when
>> they re-share something represented?
>
> I think this needs some more concrete examples, since I'm not sure
> exactly what this means.
Attached is an example. Luke said "Nice cameo dude." but also quoted
text from the site.
I guess right now my assumption is that if a system doesn't know about a
verb then it won't be able to do *anything* sane with it and will need
to fall back on treating it like a normal, non-activity entry. There is
no sensible default behavior other than this. (This is unlike object
types, where one can fall back on just calling the thing by its title in
a type-agnostic fashion.)
The Digg example goes back to the discussion about how to model ratings
and voting. "Digg" and "Bury" could be modelled as the more general
verbs "vote up" and "vote down", in theory. We don't have that in the
spec today, of course.
Whether Digg should use "post" or "share" depends on whether the
"object" of the activity is the target page itself or a "bookmark" (to
use ActivitySchema terminology) of the page. I think in Digg's case the
best model would be that you posted a bookmark, since I think the
"object" of their events is the "bookmark" page on digg, not the target
page.
The nuance in the above concrete example is something I had trouble
explaining in the general case in the spec. Any suggestions are welcomed. :)
>>> 2) How do we represent posting a photo and commenting on it / giving
>>> it a description at the same time? Are these two different
>>> activities
>>> or can they be combined into one?
>> As we currently stand, posting a photo and giving it a description are
>> intended to be represented as a single activity with verb "post" and a
>> "photo" object that has link to the photo and a description.
>>
>> It seems strange to conflate "giving it a description" with
>> "commenting
>> on it". The latter would be a separate "post" activity that is
>> in-reply-to the photo object.
>
> Ok, I think this then also depends on how various publishers work.
> So, we should have an example of both methods.
>
Are there publishers that fire the "posted a photo" event before the
user has provided a description? In this case, I would expect that this
would be more like an edit of the photo object to add the description
rather than the act of posting the description as a separate object. (Of
course, we don't currently have editing verbs in the spec, but in this
case I think you wouldn't want to separately show that event anyway.)
>
>>> 3) How is what a user wrote directly versus what they're quoting when
>>> they re-share something represented?
>> I think this needs some more concrete examples, since I'm not sure
>> exactly what this means.
>
> Attached is an example. Luke said "Nice cameo dude." but also quoted
> text from the site.
>
This looks kinda like a "bookmark" to me: it's a pointer to something
else with some annotations added. Perhaps we ought to generalize the
bookmark concept to be able to represent pointers to other objects that
aren't necessarily pages.
The way bookmarks are specified right now isn't great anyway, so it
would be interesting to explore a more general approach.
This takes me back to a discussion on the atom-syntax mailing list about
creating an element that works like the in-reply-to element from
Threading Extensions but which describes the target of a
pointer/link/bookmark/whatever object.
(You could model that today as a bookmark whose target is the page
containing the photo, but of course there wouldn't be anything
machine-readable to tell you it's a photo.)
This was the conclusion we came to at the meetup as well, but I have
to say I'm still a bit uneasy about it. Let me provide a little
background information...
The way we're thinking about this at Facebook is that we want users to
be able to choose to share whatever piece of content they want into
the stream so that their friends can find it. Whereas previously our
feed product tried to report on a bunch of different types of
activity, we're now trying to focus it more to just be oriented around
the stuff that a user is intentionally trying to share. On our site,
that means if you post a new status or post a link, then we'll share
that with your friends, whereas if you RSVP to an event we won't put
it in the stream (though the event might be more likely to show up in
highlights). For FB Platform applications, this means that you are
presented with a "feed form" dialog to confirm that you want to share
something and to let you type in some commentary before it shows up in
the stream. The feed form has a nice quality where an application
should hopefully only choose to present one of these dialogs in cases
where users are likely to want to share their activity. So going with
the Digg example, I'd imagine they wouldn't want to present the user
with a dialog every time the user tries to Digg a story, since that's
supposed to be a lightweight action. Maybe if you comment on a story,
though, or if you post your own link, then it'd make more sense to
show the dialog.
So, if we were consuming an activity stream from another site, we
could just pick some subset of verbs to feature as "intentional
actions". In fact, we could even bake this notion into the
description of each action, which I guess is probably the best I can
hope for. But realistically if Facebook is showing all the actions
with a verb marked as "intentional" in our stream and not showing the
unintentional ones, then I think Digg might reasonably choose to use
the "share" verb instead of the "favorite" verb. The conclusion we
came to here was that we should probably maintain some sort of
whitelist for which sites we trust to use the appropriate verbs.
Seems like using whitelists is not necessarily ideal but I'm not sure
there are really any great alternatives.
Thanks.
-Ari
Thanks for the background this is interesting stuff.
The first thing that springs to mind is that with Facebook's setup
external sites (where that dialog is not required, of course) are just
going to do whatever it takes to get in the Facebook news feed, since
(based on my completely unscientific sample set of just me) most users
only look at stuff on the News Feed.
Therefore I think you're going to need a whitelist as you say,
regardless of what mechanism is used to determine whether an item is
"explicit" or not.
This also seems like something that should be decided on a
per-aggregator basis. Facebook's definition of "explicit" would seem to
basically just mean things that use the "post" verb.
While there is a "share" verb in the spec, currently I'm not happy with
it because it's ambiguous as to whether someone should "share" or "post"
a bookmark. This is also due to the fact that bookmark is not incredibly
well defined...
Everything you can do with the "What's on your mind?" (or whatever) box
on Facebook/Twitter/etc ought to be a "Post" verb, since the user is
creating something. In the case of posting a link, the user is creating
a bookmark. We can tell the user is creating a bookmark because the user
is invited to annotate the link with additional information that is not
a property of the target page.
I'm currently considering the possibility of, in the next iteration of
the spec, removing the "share" verb altogether and replacing it with a
more generalized version of the "bookmark" object type which can point
to arbitrary objects.
So rather than "sharing" a photo, you'd *post* a bookmark (or whatever
word we end up using) that points at the photo.
This might still show up in the UI of apps as the concept of "sharing"
something, but it allows for somewhere to keep the user's annotations as
in David's example where someone shared a photo with an attached comment.