- 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