- From: Owen Shepherd <owen.shepherd@e43.eu>
- Date: Mon, 13 Apr 2015 21:18:16 +0100
- To: "public-socialweb@w3.org" <public-socialweb@w3.org>
- Message-ID: <552C2488.3010308@e43.eu>
I've raised this on the AS2 spec tracker. It's a somewhat of a rather
radical change - removing two of the most common activities always will
be - and somewhat of a change to the ActivityStreams data model. But in
my opinion, it brings about much practical simplification learned
through implementation experience with AS1; and in terms of the spec
text it's not a major change.
It also brings the ActivityStreams model and
Indieweb/Microformats/RSS/Atom model closer together.
On the Post and Share Activities
<https://github.com/jasnell/w3c-socialwg-activitystreams/issues/97>
Amy's post on explicit vs implicit typing
<http://rhiaro.co.uk/2015/04/post-and-activity-types>brought to mind
something I've been mulling over for a while.
ActivityStreams is very focused on Activities. It's kind of in the name.
Meanwhile, the IndieWeb has coalesced around the Post, which in
ActivityStreams-ese would be the Object.
Both of them have a conceptual elegance: In the Indieweb, your feed is a
stream of your posts. On ActivityStreams, your feed is a stream of your
activities.
I think both of these are wrong, but I think that ActivityStreams is
more wrong. And I refer specifically to the Post and Share activities.
These are the "major" activities of the network. In real deployments
such as Pump.io, they're called out specially: These activities are
placed in your "major feed*"; while other activities (such as liking and
following) are placed in your minor feed. Posts and Shares create and
spread content respectively.
The posts are perhaps the bigger offender. They're entirely synthetic. A
"Post" activity carries no additional information than what is contained
in the object, with the exception of the audience targetting properties.
And, as it turns out, you'd much rather the audience targetting
properties be on the object. Them being on the activity is very
problematic when the object becomes detached from its' post activity.
The share activity also has major issues. Specifically, it doesn't let
me add my own commentary visible on my own feed. Nigh every social
network lets me do this (Twitter being the notable exception, though
even there people substitute hacks), but ActivityStreams doesn't.
Ostensibly I could add commentary to the activity using its' "content"
property but this feels rather nasty and like trying to work around what
the object was intended
My opinion is that these activities should be removed. The audience
targeting properties should be permitted on content objects (which are
distinct from non-content objects - such as a person). The "post"
activity would be replaced by simply inlining the content object in the
user's feed in its' place, and the "share" activity would be replaced by
a "repost" object. The action of "posting" becomes implicit in the
placement of an object in your stream, and your stream would contain
objects of types Content | Activity.
This would then tighten up the definition of Activity significantly,
into two categories:
* Content free user actions: Like. Dislike. Checkin. Commited (code).
Added an item to a list.
* Social graph actions: Follow. Unfollow. Joined a Group.
Removing those two activities actually makes our lives simpler.
Activities unify with objects better - becoming more of a pattern than a
special kind of object (though certainly some actions are special and
will have impact on your social graph), and we remove the big modeling
disconnect between ActivityStreams and Microformats/Atom/RSS/etc.
I think this would be a very worthwhile simplification.
(* With limitations: Pump.io filters out "posts" of an object of type
"comment")
Received on Monday, 13 April 2015 20:18:50 UTC