Activity streams are really comprised of two things at their core: an
actor and the acted upon object. For example:
"Chris listened to Smells like Teen Spirit."
"Chris blogged about DiSo."
"Chris added Steve as a friend."
These simple, atomic activities are easy to quantify as they're being
done, and it seems to me that that's where our opportunity lies.
Essentially, at the point of OpenID signin, a callback path could be
registered to harvest or collect these actions from the relying
party... all the relying party has to do is report back to the IdP
what action took place by whom, and what or who was involved.
If we, as a group, can further define the embeddable semantics for
these activity streams, I think we'll be moving very quickly towards
some interesting outcomes.
Taking these examples above, we might end up with (pseudo-code):
"At <abbr>5:10pm</abbr>, <hcard>Chris</hcard> listened to
<haudio>Smells like Teen Spirit</haudio>."
"<hentry><entry-date>At <abbr>5:15pm</abbr></entry-date>,
<entry-meta><hcard class="author">Chris</hcard></entry-meta> blogged
about <a href="link.html" class="entry-title"
rel="bookmark">DiSo</a>.</hentry>"
"At <abbr>6:30pm</abbr>, <hcard>Chris</hcard> added <hcard><a
rel="friend">Steve</a></hcard> as a friend."
And so on.
I've begun conducting research on current activity streams and would
like to start by defining common objects, common actions and perhaps
begin assessing the roles that these streams play in a site. Clearly
they're central to the Facebook experience, and that's fine when 1)
the data is extremely tightly packed and 2) the data you're pulling in
is both meaningful and useful (many activity streams seem full of
semi-useless or redundant information; is it possible to merge similar
data together, again like Facebook, to make the chunking of similar
information richer?).
http://diso-project.org/wiki/index.php?title=activity-streams
Thoughts?
Chris
[1] http://www.readwriteweb.com/archives/lifestreams.php
--
Chris Messina
Citizen-Participant &
Open Source Advocate-at-Large
Work: http://citizenagency.com
Blog: http://factoryjoe.com/blog
Cell: 412.225.1051
IM: factoryjoe
This email is: [ ] bloggable [X] ask first [ ] private
<http://spokeo.com/> makes a great aggregator of this sort of data
from friends (works with RSS, plugin generates RSS)
Just some of what I've been thinking in this area lately :)
--
- Stephen Paul Weber, Amateur Writer
<http://www.awriterz.org>
MSN/GTalk/Jabber: singp...@gmail.com
ICQ/AIM: 103332966
BLOG: http://singpolyma.net/
http://thepaisano.wordpress.com/2007/12/15/identity-crisis/
I think these sites prove why re-siloing information is a bad idea...
it just multiplies the problem! In theory, maybe a it makes sense, but
in reality, I dunno. It just seems to me that social networks all
speak a consistent language (at least with the basics) then you should
be able to run your own site and do with it as you want...
SocialURL.com might have been the closest to where you might get with
the re-silo approach, but even it left me like... "okay, I don't get
it."
I think it's important to remember that the majority of connecting
with other people is about facilitating communication; if anything,
it's figuring out how to make those one-to-one connections happen more
easily, and yet more security, that I think this
user-centric/citizen-centric approach is all about.
Chris
The issue I see with a lot of the social network aggregators is how
much more work they have to do to get basic activity streams to work
-- and when they finally get it -- mostly by scraping -- they're like
TADA! And it's like... "big deal".
Unfortunately it's hard work just to get the basics covered; since
we're working on this with open tools and using open formats, my hope
is that we can get beyond what is passable today and actually make
things better than just aggregating... I want to better engineer the
social experience through decentralization and distribution.
Chris
Permissions is outside the scope of XRDS however, which is where OAuth comes in.
Chris
--
Output is XOXO and hAtom (but not XOXO Blog Format, for anyone who may
know wy work on that). Other things are done in a POSH way as much as
possible, but certainly open to suggestions. It also generates an
RSS2.0 feed.
On Dec 16, 2007 12:59 PM, James D Kirk <james...@gmail.com> wrote:
>
> Will be interesting to see!
>
> James.l
>
> >
>
--
A standard format for activity streams--using microformats, or a new
atom-based format--would take much of the work out of a social
aggregator and make it significantly easier to just get the basics.
However, it require existing social sites to specifically support the
new format, or at the very least have some compatibility layer for
each site. Ultimately, this seems like an achievable goal and one that
will be beneficial regardless of the process question.
On the other hand, you have the process issue. How are a users
activities collected and redistributed as a single feed.
Current social aggregators--like all rss/atom aggregators--use the
pull model. They query each site's feed on a periodic basis looking
for updates. The benefit of this model is that any number of
aggregators could be subscribed to the same feed, and the site
providing that feed doesn't really need to know much of anything about
them. The downside is that you have the potential of wasting a lot of
energy on the aggregator side. If I as a user only use a site on an
infrequent basis, then most of the time the aggregator is checking for
updates is unnecessary. This could be mitigated by checking different
site at different intervals, but that introduces a great deal more
complexity for the end-user. This problem increases as a user adds
more sites, and has the potential to increase exponentially in a
multi-user environment. In general, there's a reason Facebook doesn't
allow always-on rss aggregation in their application platform.
The second approach is using a push model, such as providing a
callback url as Chris suggested. The obvious benefit is that if a user
is completely inactive, nothing happens. The major drawback, is that
you're putting an additional requirement on to existing social sites.
You're also introducing new permission issues--facebook's beacon
provided a clear example of potential issues--although I'm hopeful
that OAuth will mitigate those concerns. One technical question that
would need to be answered is how to handle failures. If I upload a
photo to flickr, and flickr in turn tries to create an entry in my
activity feed, what happens if the site it is posting to is
unreachable or otherwise fails to complete the process. Should it
simply fail silently? Alert the user? Try again for some period of
time in case it was a momentary issue? In any case, if the problem is
resolved is there any mechanism to get "lost" activity messages into
my feed?
There's also the question of whether or not site-specific activity
feeds should be accessible independently of the aggregated feed, which
could have an impact on the appropriateness of each model.
I could potentially see it working out either way, but we'll need to
be mindful of the drawbacks in whatever we choose.
--
Dan Weinand
--
Dan Weinand
I think more we explicit the information in the lifestream more it's
easy for the consumer application to merge similar data.
we can have somethig like :
"<hentry><entry-date>At <abbr>5:15pm</abbr></entry-date>,
<entry-meta><hcard class="author"><a href="http://www.factoryjoe.com"
class="url fn">Chris</a></hcard></entry-meta> <span
class="action-name">blogged
about</span> <a href="link.html" class="entry-title"
rel="bookmark">DiSo</a>.</hentry>"
Also do we limit the size of the entry? Open social seems to limit the
title to 140 characters?
Can we also publish images ?
Regards,
Jérémi
--
> > J�r�mi
Joseph Holsten