ActivityStrea.ms: Is It Getting Streamy In Here?

Preview:

DESCRIPTION

From Facebook's newsfeed to Twitter's relentless real-time updates, the metaphor of the "stream" has taken social networking beyond blog posts and on to rich social activities. Learn about ActivityStrea.ms - the open format adopted by Facebook, MySpace, and Windows Live - and how it's fundamentally changing the social web. http://my.sxsw.com/events/event/400

Citation preview

A!ivityStreams

Austin, TX ••Chris Messina March 13, 2010South by Southwest •

From Facebook's newsfeed to Twitter's relentless real-time updates, the metaphor of the "stream" has taken social networking beyond blog posts and on to rich social activities. Learn about ActivityStrea.ms - the open format adopted by Facebook, MySpace, and Windows Live - and how it's fundamentally changing the social web.

@chrismessina#gettingstreamy

@chris.messinabuzz.google.com/chrismessina

Hello.

Here are some useful coordinates before we begin: chris.messina on Buzz; chrismessina on Twitter.

The hashtag is #gettingstreamy

Other coordinates — where you might know me from...i’ve been involved in several communities and efforts online... microformats, barcamp, coworking... helped to create hashtags in 2007.

Other coordinates — where you might know me from...i’ve been involved in several communities and efforts online... microformats, barcamp, coworking... helped to create hashtags in 2007.

but I NOW work for Google, the Don’t Be Evil ...[click]

...Empire

No really, it’s not that bad. And in fact, there’s a great deal of good that Google is doing. [click]

efforts like the Data Liberation Front are leading the way in making sure that, as Google grows, you always have a choice in how to get your data out!

University of Winnipeg

“GENERATIVE STRUCTURES”

Enough about Google. I bring these things up because they provide some context for the ActivityStreams effort.

Generally I’m interested in generative systems... rhizomatic information structures...

...like the ones that Jonathan Zittrain wrote about in his book “The End of the Internet (and how to stop it)”. And the design of web is one that fundamentally supports generativety — but we must work to ensure that that remains true.

And so ActivityStreams is the latest effort that I’ve worked on that will hopefully build upon what’s come before — and lead to a new wave of generative applications...!

THIS IS YOUR ACTIVITY STREAM AND IT’S ENDING ONE SECOND AT A TIME...

...but, let’s talk about activitystreams. What do I mean by ActivityStreams?

surely you’re familiar with the facebook newsfeed.

well, that’s just the tip of the iceberg. it represents the data that is currently available to digital systems, not the data that hasn’t yet been digitized.

huh?

well, let’s go back to 1999 for a glimse at an early activitystream — before they even knew this would someday be possible.

that augmented reality view is of ed norton’s purchase stream — an activity stream in its own right.

and you know what the data format is?

that augmented reality view is of ed norton’s purchase stream — an activity stream in its own right.

and you know what the data format is?

that’s right — paper.

so here’s how he bought this stuff. you all know what this is.

yes, a synthetic form of identity that happens to be connected to a financial instrument’s backend.

so here’s how he bought this stuff. you all know what this is.

yes, a synthetic form of identity that happens to be connected to a financial instrument’s backend.

you go to whole foods, do some shopping.

whip out the card... boom, another set of activities lodged in your payment lifestream.

whip out the card... boom, another set of activities lodged in your payment lifestream.

the problem is this....

when you go to retrieve that data in order to do something useful with it (like visualizing your purchases as an ARG overlay on your living room)... [click]

you can’t. or at least it’s not all that easy.

maybe you’ll get a bunch of PDFs.

which makes it very hard FOR US to do anything interesting with all data.

as it happens, this is exactly where we are today with social networks.

which is why this kind of newsfeed seems to be the current “state of the art”

A BRIEF HISTORY OF FEEDS

But, in order to understand where we’re going with the work that we’re doing now, you need to understand where feeds came from, and why they are the way they are.

1999

RSS 0.9 was introduced in 1999 by Netscape as a content-gathering mechanism for My Netscape Network (MNN) back when portals were all the rage (pre-social networks).

By providing a simple snapshot-in-a-document, web site producers acquired audience through the presence of their content on My Netscape.

so, you’d have someone like the NYTimes wanting to grow their online audience...

...and they’d use RSS to get their content into the Netscape portal.

Copyright 2000 ZWave, LLC

...and they’d use RSS to get their content into the Netscape portal.

RSS

<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0">

<channel>

<item>

<title>When Will Location-Based Coupons Take Off?</title>

<link>http://bits.blogs.nytimes.com/2010/03/12/when-will-

location-based-mobile-coupons-take-off/</link>

<pubDate>Fri, 12 Mar 2010 21:38:26 +0000</pubDate>

<creator>By CLAIRE CAIN MILLER</creator>

<description>

People want to receive location-based cellphone coupons,

but most have not, according to a Web analytics firm.

</description>

</item>

</channel>

</rss>

RSS looks like this.

RSS

title + link + description

the only mandatory fields in RSS are title, link, and description — which makes it an extremely flexible format. The only problem is that aggregators have to do a lot of guesswork about what’s in it.

this was complicated by the various flavors of RSS (0.9, 0.91, 0.92, 0.93, 2.0 et al)

2005

this in 2005, a group of people got together to create a “better specified” syndication format called Atom.

ATOM

<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

<entry>

<title>When Will Location-Based Coupons Take Off?</title>

<link rel=”alternate”>http://bits.blogs.nytimes.com/2010/03/12/when-will-

location-based-mobile-coupons-take-off/</link>

<id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id>

<updated>Fri, 12 Mar 2010 21:38:26 +0000</updated>

<author>

<name>By CLAIRE CAIN MILLER</name>

</author>

<summary>

People want to receive location-based cellphone coupons,

but most have not, according to a Web analytics firm.

</summary>

</entry>

</feed>

here’s what ATOM looks like.

ATOM

title + link + summary + author + id + updated

so, in five years, the required elements of RSS essentially doubled, and we now had a unique way to identity a feed entry, the author, and when it was last changed.

even still, this format was really still designed for the case of syndicating ARTICLES into PORTALS.

Copyright 2000 ZWave, LLC

even still, this format was really still designed for the case of syndicating ARTICLES into PORTALS.

2010

so, you take an article like this, turn it into RSS or ATOM...

so, you take an article like this, turn it into RSS or ATOM...

and the most interesting thing the browser can do for you is turn this rich and well designed page into something like this... [click]

and the most interesting thing the browser can do for you is turn this rich and well designed page into something like this... [click]

and now you know why the newsfeed looks like it does.

spot the similarity?

and now you know why the newsfeed looks like it does.

spot the similarity?

and yet we know that people are performing more and more activities online.

and yet, regardless of its type, sites only publish this information as RSS or Atom

so no matter what, to sites like Friendfeed, Facebook, or Google Buzz, all these activities all look the same.

icons by Fast Icon

so how do you differentiate all these different feeds when you only have one basic format?

it’s like we’re back in the bank statement PDF hell!

isn’t it time we had a format as rich as people’s social activities are diverse?

THE FRIENDFEED PROBLEM

this is what I’ve called “The Friendfeed Problem” — but quickly this is becoming EVERYONE’s problem.

how many of you have heard of or know about friendfeed?

well, FriendFeed let you add something like 58 services to your profile, basically using RSS.

pretty sweet, right?

well, it was, until they got acquired and stopped maintaining the service.

how do I know they stopped maintaining the service? Well, check it out.these are the services that no longer exist, and yet are still “supported” by Friendfeed”Here are the apps that aren’t listed, but should be. Their categories are here. But they’re not.

how do I know they stopped maintaining the service? Well, check it out.these are the services that no longer exist, and yet are still “supported” by Friendfeed”Here are the apps that aren’t listed, but should be. Their categories are here. But they’re not.

Foursquare?

Gowalla?

Google Buzz?

Cliqset?

Status.net?

Etc.

how do I know they stopped maintaining the service? Well, check it out.these are the services that no longer exist, and yet are still “supported” by Friendfeed”Here are the apps that aren’t listed, but should be. Their categories are here. But they’re not.

Logo collage by Stabilo Boss

This kind of approach just doesn’t scale over time because we know that most startups fail. that’s just the nature of the game.

so pretend that you’re friendfeed in 2007 and you add support for each of these startups.

Logo collage by Meg Pickard

here’s what would have been left as May 2009. all that work for nothing. why waste your time?

THE SOLUTION? A UNIVERSAL FORMAT

the solution? a universal format for [social] activities

Hence activitystreams.

But before I get into that, let’s take a few steps back.

HEAVY THOUGHTS

let’s talk about some big ideas.

first we’re going to turn to the soviets for something called activity theory.

ACTIVITY THEORY

Tools

Subject

Vygotsky

Object Outcome

Activity Theory was developed as a way of understanding and shaping a workforce, which was of course a very soviet thing to do.

As such, Vygotsky’s activity theory was heavily centered on tool mediation and the relationship of a single actor to an object or objective. The theory goes much deeper, but from a lay perspective, this is where it all began.

Mediating Artefacts

Subject

RulesCommunity

Roles

Yrjö Engeström, 1987

Goal Outcome

Fast-forward several decades, and the Scandanavians expanded Activity Theory by putting the actor in the context of a community where there were social norms and roles at work.

This basic framework could help to explain social development, organization, culture, and social systems at various scales and degrees of inspection.

Mediating Artefacts

Subject

RulesCommunity

Roles

Engeström, 1987

Sense

Meaning

Goal Outcome

Curiously, by studying this model — and examing how goal achievement functions socially — we begin to understand how meaning is made and cultural understanding grows.

So, if your goal is to actually produce meaning, knowledge, and understanding — you can work within these constructs to motivate action.

Mediating Artefacts

Subject

RulesCommunity

Roles

Engeström, 1987

Goal Outcome

...especially if you think about how roles, rules, and mediating artefacts (tools) all relate to one another.

so, for example, if you’re designing a new app for the first time, think about how you can manipulate the roles, rules, and tools that give you people to increase their interest, desire, or motivation to make meaning using the system you build.

so, for example, if you’re designing a new app for the first time, think about how you can manipulate the roles, rules, and tools that give you people to increase their interest, desire, or motivation to make meaning using the system you build.

SOCIAL OBJECTS

indeed, building on that subject, let’s touch upon another big idea: social objects.

PEOPLE DON’T JUST CONNECT TO EACH OTHER. THEY CONNECT THROUGH A SHARED OBJECT.

JYRI ENGESTRÖM

Following in his father’s footsteps, Jyri Engstrom proposed the notion of a “social object” as a primary vehicle for social interaction.

A nice example of this idea is Katamari Damacy, a game where you control a character that goes around collecting stuff by adhering it to its body.

this is not unlike the way that activities define who you are today.

indeed, as the game progresses, all these things that you collect come to define you and your experience.

rating, add to playlist, favorite, share, copy the URL, flag, play, comment, reply by video

adding value to objects that are uploaded by users. that turns them into social objects.

add notes, tags, comments, favorite, add to galleries, add contact, interact with other members...

but here’s a twist to Flickr’s approach...

Mediating Artefacts

Subject

RulesCommunity

Roles

Yrjö Engeström, 1987

Goal Outcome

you take activity theory...

Mediating Artefacts

Subject

RulesCommunity

Roles

Engeström, 1987

Goal Outcome

and focus on the mediating artefacts, rules, roles, and community — and you can understand why Flickr works the way it does.

Mediating Artefacts

Subject

RulesCommunity

Roles

Engeström, 1987

Goal Outcome

one thing that they’ve done rather well, is make it possible for the subject to manipulate the rules of the Flickr environment.

and on Flickr, I can set the rules of engagement, making it possible for me to personalize my experience, and focus on interactions that are more meaningful to me.

This becomes really important when designing social systems in order to avoid “surprises” as we begin to collate these social objects into...

LIFESTREAMS

lifestreams. What is a lifestream you might ask?

Well, it’s not actually a newsfeed.

It’s something a bit more ephemeral... [click]

MIRROR WORLDS (1991)

and comes to us from David Gelernter, a Professor of Computer Science at YaleIn 1991, he wrote Mirror Worlds, which foresaw the world wide web...

A decade later...[click]

THE SECOND COMING — A MANIFESTO (2000)

Streams of Time

In June 2000, he published The Second Coming — a Manifesto, depicting 58 theses, and describing “Lifestreams” for the first time in a section called “Streams Of Time”.

THE SECOND COMING — A MANIFESTO (2000)

38 A "lifestream" organizes information not as a file cabinet does but roughly as a mind does.

http://j.mp/gelernter

He said that “A "lifestream" organizes information not as a file cabinet does but roughly as a mind does.”

THE SECOND COMING — A MANIFESTO (2000)

39 A lifestream is a sequence of all kinds of documents — all the electronic documents, digital photos, applications, Web bookmarks, rolodex cards, email messages and every other digital information chunk in your life — arranged from oldest to youngest, constantly growing as new documents arrive, easy to browse and search, with a past, present and future, appearing on your screen as a receding parade of index cards. Documents have no names and there are no directories; you retrieve elements by content: "Fifth Avenue" yields a sub-stream of every document that mentions Fifth Avenue.http://j.mp/gelernter

A lifestream is a sequence of all kinds of documents ... constantly growing as new documents arrive, easy to browse and search, with a past, present and future. Documents have no names and there are no directories; you retrieve elements by content: "Fifth Avenue" yields a sub-stream of every document that mentions Fifth Avenue. <-- sounds like hashtags eh?

THE SECOND COMING — A MANIFESTO (2000)

40 A stream flows because time flows, and the stream is a concrete representation of time. The "now" line divides past from future. If you have a meeting at 10AM tomorow, you put a reminder document in the future of your stream, at 10AM tomorrow. It flows steadily towards now. When now equals 10AM tomorrow, the reminder leaps over the now line and flows into the past. When you look at the future of your stream you see your plans and appointments, flowing steadily out of the future into the present, then the past.

http://j.mp/gelernter

A stream flows because time flows, and the stream is a concrete representation of time. The "now" line divides past from future. ... When you look at the future of your stream you see your plans and appointments, flowing steadily out of the future into the present, then the past.

DONNIE DARKO?

Found at BeyondHollywood.com

this remind anyone else of donnie darko? y’know, with the weird thread that directed donnie around?

THE SECOND COMING — A MANIFESTO (2000)

40 A stream flows because time flows, and the stream is a concrete representation of time. The "now" line divides past from future. If you have a meeting at 10AM tomorow, you put a reminder document in the future of your stream, at 10AM tomorrow. It flows steadily towards now. When now equals 10AM tomorrow, the reminder leaps over the now line and flows into the past. When you look at the future of your stream you see your plans and appointments, flowing steadily out of the future into the present, then the past.

http://j.mp/gelernter

A stream flows because time flows, and the stream is a concrete representation of time. The "now" line divides past from future. ... When you look at the future of your stream you see your plans and appointments, flowing steadily out of the future into the present, then the past.

So these lifestreams start to accrue and build up value over time.

SNACK-SIZED SOCIALITY

MICROCONTENT GOODNESS

Jyri Engeström, 2009

People are increasingly ‘snacking’ on content... from tweets, to checkins, to statuscasting...

so historically, we go from longform content... where authors made money based on the LENGTH of their manuscripts...

$

so historically, we go from longform content... where authors made money based on the LENGTH of their manuscripts...

When Will Location-Based Mobile Coupons Take Off?By CLAIRE CAIN MILLER

March 12, 2010, 4:38 PM

to articles bundled in DAILY newspapers... where you’d get two dozen or so articles to meet your daily needs for news and content...

When Will Location-Based Mobile Coupons Take Off? http://nyti.ms/aYXUWYMarch 12, 2010, 4:38 PM

clairecmclaire cain miller

to today, where all we seem to have time for is the title of these articles, such is our limited attention and the ABUNDANCE of data being produced.

Jyri Engeström, 2009

as we have more and more information on the go, the form by which we experience it invariably much change... but what is lost in the process? what do we gain?

but there is still data here... and from this data, we can derive meaning... and perhaps improve our experiences and interaction with how we can consume snack sized content through these lifestreams.

as we have more and more information on the go, the form by which we experience it invariably much change... but what is lost in the process? what do we gain?

but there is still data here... and from this data, we can derive meaning... and perhaps improve our experiences and interaction with how we can consume snack sized content through these lifestreams.

how does this change our relationship to information — and our understanding of each other — when this information becomes as abundant as Starbucks in NYC?

SXSW.CLIQSET.COM

for example, just because we have all this information, is it in a form that we can use, and that helps us understand?

”“I can see a world where eventually my children will look back at

my Foursquare data and say: ‘This is Kevin’s history — this is

where he was on his birthday 10 years ago, and this was his

favourite place to eat.’ Building that profile throughout your

life and saving those locations — I think that’s huge.

Kevin Rose, March 11, 2010

in fact, just last week Kevin Rose was quoted saying:

“I can see a world where eventually my children will look back at my Foursquare data and say: ‘This is Kevin’s history — this is where he was on his birthday 10 years ago, and this was his favourite place to eat.’ Building that profile throughout your life and saving those locations — I think that’s huge.”

SO WHAT?

these activity networks — fueld by activity data — can help increase understanding, and improve decision making.

CRUMLISH & MALONE

When status updates first emerged in the context of instant messenger programs, they were inherently fleeting,

temporally tied to the immediate moment and then discarded.

It really doesn’t make that much sense to keep an infinite log of Available, Busy, Idle, Offline, and so on for the life of the

user or the application. But as other status-capturing interfaces have evolved, the idea of at least maintaining a

stream of recent history and then possibly mixing status

reports with other snapshots of inline activity has taken hold as a way of displaying presence.

When status updates first emerged in the context of instant messenger programs, they were inherently fleeting, temporally tied to the immediate moment and then discarded. It really doesn’t make that much sense to keep an infinite log of Available, Busy, Idle, Offline, and so on for the life of the user or the application. But as other status-capturing interfaces have evolved, the idea of at least maintaining a stream of recent history and then possibly mixing status reports with other snapshots of inline activity has taken hold as a way of displaying presence.

SELF-IMPROVEMENT

FELTRON ANNUAL REPORT

FELTRON ANNUAL REPORT

FELTRON ANNUAL REPORT

FELTRON ANNUAL REPORT

LAST HISTORY

TUFTE + OBAMAthis is great to see obama tap someone like tufte to come in and help explain the stimulus, but what if all stimulus money recipients had to provide semantic activitystreams of where they spent their money?

y’know, so we can finally leave the era of the PDF-era activity stream behind!

y’know, so we can finally leave the era of the PDF-era activity stream behind!

THE SOLUTION TO DATA OVERLOAD IS MORE DATA

THE SOLUTION TO DATA OVERLOAD IS MORE METADATA

Hence activitystreams.

actor verb object target

the basic model of ActivityStreams follows the “actor verb object”, “target”archetype.

WHAT’S THE CODE LOOK LIKE?

ATOM

<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

<entry>

<title>...</title>

<link rel=”alternate”>...</link>

<id>...</id>

<updated>...</updated>

<author>

<name>...</name>

</author>

<summary>

...

</summary>

</entry>

</feed>

well, let’s take your typical Atom feed...

ATOM

title + link + summary + author + id + updated

remember that the foundation of Atom is title, link, summary, author, id, and the updated time.

ATOM+ACTIVITYSTREAMS

title + link + summary + author + id + updated

+ verb + object-type + target

now add verb, object-type, and target

ATOM+ACTIVITYSTREAMS<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">

<entry>

<title>...</title>

<link rel=”alternate”>...</link>

<id>...</id>

<updated>...</updated>

<author>

<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<name>...</name>

</author>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

<content type=”html”>

...

</content>

</activity:object>

</entry>

</feed>

here’s what Atom+ActivityStreams looks like. Similar,

ATOM+ACTIVITYSTREAMS<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">

<entry>

<title>...</title>

<link rel=”alternate”>...</link>

<id>...</id>

<updated>...</updated>

<author>

<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<name>...</name>

</author>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

<content type=”html”>

...

</content>

</activity:object>

</entry>

</feed>

xmlns:activity="http://activitystrea.ms/spec/1.0/"

<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

</activity:object>

here are the new parts.

ATOM+ACTIVITYSTREAMS<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">

<entry>

<title>...</title>

<link rel=”alternate”>...</link>

<id>...</id>

<updated>...</updated>

<author>

<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<name>...</name>

</author>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

<content type=”html”>

...

</content>

</activity:object>

</entry>

</feed>

person

post

note

so, see what this adds for the aggregator?

as the most basic example, we’re essentially telling the aggregator that a person posted a note.

VERBS & OBJECTS

and to begin with, we already support a dozen verbs and several well-known objects.

VERBS & OBJECTS

Add FriendFavoriteFollowLikeJoinPlayPostSaveShareTagUpdate

ArticleAudioBookmarkCommentFileFolderGroupListNotePersonPhotoPhoto AlbumPlacePlaylistProductReviewServiceStatusVideo

and to begin with, we already support a dozen verbs and several well-known objects.

VERBS & OBJECTS

Add FriendFavoriteFollowLikeJoinPlayPostSaveShareTagUpdate

ArticleAudioBookmarkCommentFileFolderGroupListNotePersonPhotoPhoto AlbumPlacePlaylistProductReviewServiceStatusVideo

v0.8

and to begin with, we already support a dozen verbs and several well-known objects.

PROCESS

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

PROCESS

1. Ask why.

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

PROCESS

1. Ask why.

2. Do your homework

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

PROCESS

1. Ask why.

2. Do your homework

3. Propose

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

PROCESS

1. Ask why.

2. Do your homework

3. Propose

4. Iterate

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

PROCESS

1. Ask why.

2. Do your homework

3. Propose

4. Iterate

5. Interoperate

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

http://activitystrea.ms

to learn more, this is where it all happens.

so, what does and activitystream-formatted feed look like?

CHRIS FINISHED HIS TALK.AT SXSW IN AUSTIN, TX AT 10:30AM.

THANKS

monica, rob, mart atkins, dave recordon, steve ivy, james walker, todd barnard, darren bounds, john mcrea, john panzer, joseph smarr, the activitystreams community

ONE MORE THING

Recommended