Forging ahead

6 views
Skip to first unread message

Monica Keller

unread,
Mar 18, 2009, 9:50:40 PM3/18/09
to Activity Streams
Hi Guys
I hope you all had a great time at SXSW. I am eager to hear the
feedback on the activities meetup.

On our end, today we announced that Yahoo is consuming our Activity
Stream apis on their front page to render a mini MySpace app. For
details on the apis see: http://developerwiki.myspace.com/index.php?title=Standards_for_Activity_Streams

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.

This coordination is challenging. I have started using Martin's
ticketing app but I am still not sure if I can take items or only him
and Dave can ;) See http://mart.lighthouseapp.com/projects/23195-activity-streams-specs/tickets

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 ?

David Recordon

unread,
Mar 19, 2009, 1:58:50 PM3/19/09
to activity...@googlegroups.com
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.

--David

Martin Atkins

unread,
Mar 19, 2009, 3:02:10 PM3/19/09
to activity...@googlegroups.com
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.

> 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.

David Recordon

unread,
Mar 19, 2009, 5:21:55 PM3/19/09
to activity...@googlegroups.com, a...@facebook.com
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.


>> 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.

Picture 21.png

Martin Atkins

unread,
Mar 19, 2009, 6:02:10 PM3/19/09
to activity...@googlegroups.com, a...@facebook.com
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.)

Ari Steinberg

unread,
Mar 19, 2009, 6:42:29 PM3/19/09
to activity...@googlegroups.com
On Thu, Mar 19, 2009 at 12:02 PM, Martin Atkins <ma...@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.
-Ari

Martin Atkins

unread,
Mar 19, 2009, 6:59:24 PM3/19/09
to activity...@googlegroups.com

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.


narp...@gmail.com

unread,
Mar 20, 2009, 12:07:59 PM3/20/09
to activity...@googlegroups.com
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.

Monica Keller

unread,
Mar 23, 2009, 5:14:39 AM3/23/09
to Activity Streams
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.

ok its late ttyls


On Mar 20, 9:07 am, narpub...@gmail.com wrote:
> 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
> > -Ari- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages