- From: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
- Date: Thu, 27 Aug 2015 20:46:50 +0200
- To: Amy G <amy@rhiaro.co.uk>
- CC: "public-socialweb@w3.org" <public-socialweb@w3.org>, "public-social-interest@w3.org" <public-social-interest@w3.org>
- Message-ID: <55DF5B1A.8040809@wwelves.org>
On 08/25/2015 06:59 PM, Amy G wrote: > Hey Pavlik, > > I've spent some time trying to untangle this today, and I hope I've > interpreted what you meant correctly... > > Currently to like something with AS2: > > * post a `Like` `Activity`, with `object` of liked-thing > > I think you're suggesting to replace this with: > > * post a `Create` `Activity` with `object` of `Relation` which has > `property` of `likes` and `object` of liked-thing. > > On the basis that you think the **Social API** should specify a side-effect > of generating a `likes` direct relation between the liker and the > liked-thing? And that in the case of this side effect, being able to map > the qualified likes relation onto the direct likes relation using the same > term is useful? And that this would also allow you to shortcut the creation > of the `Activity` and just create the direct relation instead? > > ActivityPump currently specs a similar side effect, of the `Like` > `Activity` triggering the adding of the subject and object to various > Collections which allows the improved querying I think is the main > advantage of the direct relations. I don't think we understand each other. I don't go here into API at all and just focus on what we can and what we can NOT *express* with current AS2.0 darft. Can you provide JSON-LD which serializes information that you like 3 different resources, some Article, some Video and some FoodPlace ? At the same time those resources need a way to also show that you and other agents like them. In other worlds an alternative to what I propose in JSON-LD which you can find in https://github.com/w3c-social/social-vocab/tree/master/verb/likes > > I'm still not totally sure what the advantages to this additional level of > abstraction for like relations is. As I see it, you've just replaced an > `Activity` object with an additional `Relation` object, and shuffled some > properties. Instinctively I don't think encouraging *only* direct relations > is good, but I can see how they'd be useful in addition to qualified > relations (which are *already* provided by an `Activity` with `actor` and > `object`). I do NOT replace Activity object with Relation object. Let's say I visted Berlin 20 times so far. I would have a direct relation, qualifed relation and 20 activities: { "@id": "https://wwelves.org/perpeual-tripper", "@type": "Person", "displayName": "elf Pavlik", "visits": [ "http://dbpedia.org/page/Berlin" ], "relation": [ "https://graph.wwelves.org/e1e677ab-8427-40a6-a177-ef7b48254633" ] }, { "@id": "https://graph.wwelves.org/e1e677ab-8427-40a6-a177-ef7b48254633", "@type": "Relation", "subject": "https://wwelves.org/perpeual-tripper", "object": "http://dbpedia.org/page/Berlin", "property": "visits", "activity": [] } where activity array will have 20 elements with: "@type": "Activity" > > The way it's done using microformats is different again, but more similar > to a `Like Activity`, except the `object` property is replaced with a > `like-of` property, and there is no explicit `type`. But this is still the > same qualified relation, in the same way AS2 does it. The semantics of the > `like-of` property are *not* the same as a `likes` property that would > exist between the liker and the liked-thing, so this doesn't match what > you're suggesting. Yes, *I* like a video and *I* visit a city, not my post likes something or my posts visits something. Could imagine writing JSON-LD version which uses mf: vocabulary of how someone describes a like or a visit in microformats? I could later draw graph diagrams for it to visualize it and compare further. > > I don't think this needs to get any more complicated for > follow/subscribe/friend relations. ActivityStreams already has a > `Relationship` object for relationships between Actors, and doing a friend > request and acceptance using existing AS2 terms is walked through in > [3.1.1.1]( > http://jasnell.github.io/w3c-socialwg-activitystreams/activitystreams-vocabulary/index.html#connections > ). I suggested changing a & b to subject & object for as:Relationship http://www.w3.org/TR/2015/WD-activitystreams-vocabulary-20150722/#dfn-relationship I would consider as:Relationship rdfs:subClassOf :Relation . and as:relationship rdfs:subPropertyOf :property Which restrict subject and object to as:Actor and recommend http://purl.org/vocab/relationship/ for values of as:relationship Still with :Relation and :property I propose we have the same but more generic pattern for non Actor <-> Actor (Agent <-> Agent) relations. Currently defining as:Like, as:View, as:Read etc. gives no other benefit than filtering Activities by activity["@type"].includes('Like') With as:like, as:view, as:read etc. we could do the same to filter activity.verb.include('like') or activity.action.includes('like') But could *also use them* for labels in edges of direct relations, for values of property in qualified relations, and for values of verb/action in activities! I hope that clarifies my argument :) > > On 14 August 2015 at 21:44, ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org> > wrote: > >> Hello, >> >> I should have chance in next days to discuss this issue with people >> working on xAPI, please also notice creation of >> EXPERIENCE API (XAPI) VOCABULARY & SEMANTIC INTEROPERABILITY COMMUNITY >> GROUP >> * https://www.w3.org/community/xapivocabulary/ >> >> Today, during xAPI Vocabulary call, Tom De Nies explained his work on >> http://tincan2prov.org >> >> In accompanying presentation, you can find diagram where *completed* >> verb appears as label of an edge. Which looks to me like rdf:Property >> see Slide 9 >> * >> >> http://www.slideshare.net/tdenies/20150519-tom-de-nies-tin-can2prov-exposing-interoperable-provenance-of-learning-processes-through-experience-api-logs >> >> I still need to catch up with AS2.0 going CR thread but I think we >> should consider this possible non trivial change before deciding to go >> into CR... >> >> Cheers! >> >> >> On 07/20/2015 02:53 PM, ☮ elf Pavlik ☮ wrote: >>> Hello, >>> >>> (cc: IG Vocabulary TF) >>> >>> I would like to bring this topic to our attention right away, since it >>> may require non trivial change to current AS2 drafts. >>> >>> Currently we use sub classes of as:Activity for 'verbs', I see various >>> benefits of using properties instead. Some prior conversations where I >>> argued quite opposite: >>> https://github.com/jasnell/w3c-socialwg-activitystreams/issues/23 >>> >>> My reflection come in big part from drawing diagrams representing graphs >>> with social data, for example: >>> >>> * https://github.com/w3c-social/social-vocab/tree/master/activity/Follow >>> * >> https://github.com/w3c-social/social-vocab/tree/master/activity/Subscribe >>> >>> As we see, to use direct relations (not qualified relations) we still >>> need predicates like: *follows*, *subscribes*, *likes*, *attends* etc. >>> >>> BTW I don't even pay attention now to what seems like a minor detail >>> follow/follows/followed like/likes/liked etc. >>> >>> It could possibly work much simpler to define verbs as >>> properties/predicates and just use them directly >>> >>> { >>> "@context": [ >>> "http://www.w3.org/ns/activitystreams", >>> "v": "http://w3id.org/verb/#" >>> ], >>> "@id": "https://wwelves.org/perpetual-tripper", >>> "v:follow": [ >>> "https://aaronparecki.com/", >>> ], >>> "v:subscribes": [ >>> "https://aaronparecki.com/metrics", >>> ], >>> "v:attend": [ >>> "https://www.w3.org/wiki/Socialwg/2015-07-21", >>> ] >>> } >>> >>> As for today, I don't see example of how to show 'who likes this >>> posting' - (similar to >>> >> https://developers.facebook.com/docs/graph-api/reference/v2.3/object/likes >> ) >>> >>> I will prepare another example with an event, which will require linking >>> to collections of agents (actors) via edges: invite, subscribe, attend, >>> host, sponsor etc. >>> (similar to >>> >> https://developers.facebook.com/docs/graph-api/reference/v2.3/event#edges) >>> >>> Since we don't use (at least as normative) rdfs:domain and rdfs:range, >>> defining more specific sub classes of as:Activity doesn't seem to offer >>> any benefit. >>> >>> Some examples where actions/activities seems get used in a way that >>> would fit defining them as properties not classes: >>> >>> * http://adlnet.gov/expapi/verbs >>> * http://indiewebcamp.com/webactions#action_do_verbs >>> * http://microformats.org/wiki/h-listing#Properties (p-action) >>> * http://microformats.org/wiki/h-entry#Draft_Properties >>> * https://developer.github.com/v3/activity/events/types/ >>> >>> I don't see any agenda for tomorrow yet, maybe we could all think about >>> it and have short initial discussion about pros and cons of those two >>> different approaches tomorrow? >>> >>> Cheers! >>> >> >> >> >
Received on Thursday, 27 August 2015 18:47:11 UTC