We are also opening up the same apis Yahoo is using, Personal
Activities api and Friend Activities api, to all MySpaceID apps so any
site which integrates with us can have access to the stream ! Its
really simple to use it. You should give it a try and shoot me your
feedback :)
For users who have an interest in music we created this demo site
http://8bitmusic.jdavid.net/ in php which shows how the apis allow you
to filter to get exactly what you need and build an engaging user
experience.
Code at http://code.google.com/p/8bitmusic/
Our apis are based on the specs from http://activitystrea.ms/ but
there were quite a few concepts for which we had to use myspace
specific namespaces because the spec is still in progress. There are
also extensions we are adopting which are not necessarily part of the
spec like xCal which I am not sure others will support.
I would like to propose that we agree on how to evolve this
standards.
I liked the idea floating around of having a core set of concepts and
using the extensions to well extend it incrementally.
Do you guys think we can vote on each section and then use a threshold
of votes to get items approved or not ?
Would we need versioning as well ? I suppose this would be best for
(yikes) breaking changes.
Once we have this more nailed down we can go to OpenSocial and have
them adopt activitystrea.ms standards and then we can all have much
better activity ingestion and surfacing because everything will have
verbs and object types and a predefined set of attributes based on
that.
Pretty simple master plan, eh ?
Hey Monica,
This is all great news! I think we need to upgrade our Lighthouse
account to have more users, but definitly feel free to hack on the
spec in Github and we can figure out the tickets side of it later.
At SXSW we had a bit of a meetup over dinner and came up with a list
of outstanding issues from the group there.
1) How do we represent an activity that is explicit versus one that is
implicit. An example would be posting a link is a very explicit
activity while RSVPing to an event is implicit. This also edges on
cases like favoriting a link on Digg versus sharing a link with your
friends on Facebook.
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?
3) How is what a user wrote directly versus what they're quoting when
they re-share something represented?
4) How do we better involve FriendFeed and Microsoft to make sure
these specs solve their problems as well?
5) We need an example using in-reply-to and the Atom Threading
Extension.
6) We need more examples.
7) How do you batch multiple objects into one entry/activity? i.e. I
uploaded 30 photos at the same time.
8) What is happening with the Atom Media Extension draft? We need to
be able to include thumbnails, titles, synopsis, etc.
> We are also opening up the same apis Yahoo is using, Personal
> Activities api and Friend Activities api, to all MySpaceID apps so any
> site which integrates with us can have access to the stream ! Its
> really simple to use it. You should give it a try and shoot me your
> feedback :)
> For users who have an interest in music we created this demo site
> http://8bitmusic.jdavid.net/ in php which shows how the apis allow you
> to filter to get exactly what you need and build an engaging user
> experience.
> Code at http://code.google.com/p/8bitmusic/
> Our apis are based on the specs from http://activitystrea.ms/ but
> there were quite a few concepts for which we had to use myspace
> specific namespaces because the spec is still in progress. There are
> also extensions we are adopting which are not necessarily part of the
> spec like xCal which I am not sure others will support.
> I would like to propose that we agree on how to evolve this
> standards.
> I liked the idea floating around of having a core set of concepts and
> using the extensions to well extend it incrementally.
> Do you guys think we can vote on each section and then use a threshold
> of votes to get items approved or not ?
> Would we need versioning as well ? I suppose this would be best for
> (yikes) breaking changes.
> Once we have this more nailed down we can go to OpenSocial and have
> them adopt activitystrea.ms standards and then we can all have much
> better activity ingestion and surfacing because everything will have
> verbs and object types and a predefined set of attributes based on
> that.
> Pretty simple master plan, eh ?
> 1) How do we represent an activity that is explicit versus one that is > implicit. An example would be posting a link is a very explicit > activity while RSVPing to an event is implicit. This also edges on > cases like favoriting a link on Digg versus sharing a link with your > friends on Facebook.
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.
>> 1) How do we represent an activity that is explicit versus one that >> is >> implicit. An example would be posting a link is a very explicit >> activity while RSVPing to an event is implicit. This also edges on >> cases like favoriting a link on Digg versus sharing a link with your >> friends on Facebook.
> 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.
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.
>> 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.
> --~--~---------~--~----~------------~-------~--~----~ > You received this message because you are subscribed to the Google > Groups "Activity Streams" group. > To post to this group, send email to activity-streams@googlegroups.com > To unsubscribe from this group, send email to activity-streams+unsubscribe@googlegroups.com > For more options, visit this group at http://groups.google.com/group/activity-streams?hl=en > -~----------~----~----~----~------~----~------~--~---
David Recordon wrote: > On Mar 19, 2009, at 12:02 PM, Martin Atkins wrote: >> David Recordon wrote: >>> 1) How do we represent an activity that is explicit versus one that >>> is >>> implicit. An example would be posting a link is a very explicit >>> activity while RSVPing to an event is implicit. This also edges on >>> cases like favoriting a link on Digg versus sharing a link with your >>> friends on Facebook.
>> 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.
> 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.
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.)
On Thu, Mar 19, 2009 at 12:02 PM, Martin Atkins <m...@degeneration.co.uk> wrote:
> David Recordon wrote:
>> 1) How do we represent an activity that is explicit versus one that is >> implicit. An example would be posting a link is a very explicit >> activity while RSVPing to an event is implicit. This also edges on >> cases like favoriting a link on Digg versus sharing a link with your >> friends on Facebook.
> 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.
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.
Ari Steinberg wrote: > On Thu, Mar 19, 2009 at 12:02 PM, Martin Atkins <m...@degeneration.co.uk> wrote: >> David Recordon wrote: >>> 1) How do we represent an activity that is explicit versus one that is >>> implicit. An example would be posting a link is a very explicit >>> activity while RSVPing to an event is implicit. This also edges on >>> cases like favoriting a link on Digg versus sharing a link with your >>> friends on Facebook.
>> 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.
> 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 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.
I have to say Ari that I think Facebook is making an error in going
toward notions of "intentional" sharing. The beauty of the streams
potential is to do the passive reporting and to push "participation"
beyond extroverts. In fact, I would argue that Facebook has been
training people to believe that taking an action (e.g. joining a
group, rsvping, etc.) was an "intentional" way of sharing.
> On Thu, Mar 19, 2009 at 12:02 PM, Martin Atkins <m...@degeneration.co.uk > > wrote:
>> David Recordon wrote:
>>> 1) How do we represent an activity that is explicit versus one
>>> that is
>>> implicit. An example would be posting a link is a very explicit
>>> activity while RSVPing to an event is implicit. This also edges on
>>> cases like favoriting a link on Digg versus sharing a link with your
>>> friends on Facebook.
>> 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.
> 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.
Hi guys
I have been wanting to reply to this for a couple of days and im gonna
finish before I crash tonight !
1- On the topic of posting multiple objects in one atom entry. Like
when a user uploads 25 photos. Performance wise it is obviously better
than having 25 atom entries but still there is redundant info for us
because each atom:object has the same atom:source (target) the album.
So we can strip the redundant album info from the subsequent entries
but then it looks fairly unorganized. I think most developers would
expect to have the album object contain the photo objects rather than
the other way around. So should we have an optional container around
multiple activity objects ?
2- I think intention is a valuable piece of metadata for an aggregator
trying to weigh the relevance of the items in the feed. It seems like
it can be derived from the verb/object type combo but I am not opposed
to having a seprate field for it. We do also have a featured bit but
in the atom spec should probably be a value from 1 to 10 for example.
I dont think we should remove share, that would break us in this
example. Adding a video to a profile is not really bookmarking it and
i like the idea of having it fairly generic -- we also use this for
songs and local places
Ex:
instance.Add(ActivityType.FavoriteVideoAdd, new Metadata
(Verbs.Favorite, ObjectTypes.Video));
instance.Add(ActivityType.VideoAdd, new Metadata
(Verbs.Post, ObjectTypes.Video));
instance.Add(ActivityType.ProfileVideoUpdate, new Metadata
(Verbs.Share, ObjectTypes.Video));
3 - The main interesting piece of news that I have is that tomorrow we
will be meeting with some OpenSocial folks to discuss adding the
activity streams concepts to activity ingestions via open social. The
main reason why we are doing this is because we want the activities
ingested via mySpaceID to be classifiable on verb/object type just
like the internal myspace activities and allow better surfacing.
4- Also I was planning on using the activity:context element proposed
in the forums. So any particular activity can have a mood associated.
Status updates and blogs both have moods. Seems like the note on the
article posted could be considered contextual information as well...
ill ask the myspaceID team what they think.
FriendFeed and MSFT are both integrating with us so Ill definitely
recommend they get more involved here.
> I have to say Ari that I think Facebook is making an error in going
> toward notions of "intentional" sharing. The beauty of the streams
> potential is to do the passive reporting and to push "participation"
> beyond extroverts. In fact, I would argue that Facebook has been
> training people to believe that taking an action (e.g. joining a
> group, rsvping, etc.) was an "intentional" way of sharing.
> On Mar 19, 2009, at 3:42 PM, Ari Steinberg wrote:
> > On Thu, Mar 19, 2009 at 12:02 PM, Martin Atkins <m...@degeneration.co.uk
> > > wrote:
> >> David Recordon wrote:
> >>> 1) How do we represent an activity that is explicit versus one
> >>> that is
> >>> implicit. An example would be posting a link is a very explicit
> >>> activity while RSVPing to an event is implicit. This also edges on
> >>> cases like favoriting a link on Digg versus sharing a link with your
> >>> friends on Facebook.
> >> 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.
> > 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.