- From: Crawford, Mark <mark.crawford@sap.com>
- Date: Fri, 31 Oct 2014 17:56:37 +0000
- To: "public-socialweb@w3.org" <public-socialweb@w3.org>
Topic 3 (vocabulary for verbs/activity types) >> response: I would prefer we take a more formal approach. Markus wrote: >Has it been discussed to simply recommend the reuse of Schema.org for this? >There went a lot of work in the design of their actions hierarchy and if possible > I would rather try to avoid reinventing the wheel here and instead focus on other aspects. Probably worth a discussion, but there is still significant resistance to schema.org. Best Regards, Mark > -----Original Message----- > From: James M Snell [mailto:jasnell@gmail.com] > Sent: Friday, October 31, 2014 9:35 AM > To: public-socialweb@w3.org > Subject: Verbs > > We need to think about Verbs for a bit. (I apologize in advance for > the long-ish note) > > First, > > At the face-to-face, the discussion was raised about whether it is > better to model Verbs as Nouns or as Predicates. The differences are > subtle, but important. > > The Verbs as Predicates model is the approach originally taken by > Activity Streams 1.0 and carried through to the current 2.0 draft. It > is expressed using the "verb" property: > > { > "@context": "http://asjsonld.mybluemix.net", > "actor": "acct:sally@example.org", > "verb": "urn:example:Like", > "object": "http://example.org/post/1" > } > This is interpreted as "Sally liked 'http://example.org/post/1'" > > The Verbs as Nouns approach recasts the model a bit to express things in > the form: "This object is a Like, created by Sally, and referencing > "http://example.org/post/1" > > { > "@context": "http://asjsonld.mybluemix.net", > "@type": "urn:example:Like", > "actor": "acct:sally@example.org", > "object": "http://example.org/post/1" > } > > So far, the question has been cast as an either-or proposition: Either > we can model Activities as Predicates or we can model Activities as > Nouns. After looking at it, I believe we can actually achieve both > points of view by simply mapping the "verb" property to "@type" in the > AS JSON-LD @context. By doing so, both of the above examples produce > the same result. Consumers can then choose whichever point of view > suits them the best. It is a relatively simple change that, I believe, > would be worthwhile. > > Second, > > This one is a bit more abstract. Currently, the Activity Streams model > uses "object" to identify the direct object of the activity and > "target" to identify the indirect object. "target" is the thing to > which the activity has been directed but is not the thing that was > directly acted upon. Take the following examples for instance: > > "Sally uploaded a photo" -- in this, there is an "actor" and an > "object", but there is no "target". > > But... > > "Sally uploaded a photo to an album" -- in this we have all three: > "actor", "object" and "target", with the "target" being the album. > > Now consider the following two statements: > > "Sally added an annotation to the article" > vs. > "Sally annotated the article with a note" > These are equivalent statements but the way they are structured > changes the direct object. In the first statement, the "object" is the > annotation, the "target" is the article. In the second statement, the > "object" is the article. The Activity Streams model is fluid enough to > allow us to express both of these statements appropriately. The > challenge, however, is that it can often be difficult for developers > using Activity Streams to pick a model, and if two different > implementers pick different approaches, we can end up with more than > one way of expressing the same concept, leading to potential interop > (or at least interpretation) issues on the consuming side. We can see > an example of this in the on-list discussion yesterday around the > Annotation WG cases. > > My question is: at some point... should the WG try to provide some > guidance here on the "best" way to structure Activity statements or is > it ok to leave this open and allow implementers to do their own thing? > > Third, > > Even more abstract: Another bit that was discussed at the face-to-face > is the fact that we do not currently define a vocabulary for the verbs > themselves. There is an existing set of verbs defined in Activity > Streams 1.0 by the so-called "Base Schema" document but those are > largely informal. Lots of implementations use various combinations of > those but they've never been formally spec'd. The question is: Do we > need a formal definition of the verbs? And if so, what form should > that take? We have a couple of options: > > 1. Take a loose "registry" type of approach like that in the Basic > Schema document. In this approach, there's really no "ontology" > approach, it's really just define a handful of common verbs with > specified meanings. > > 2. Take a more formal ontological and hierarchical approach the way > schema.org does with their Actions vocabulary > (https://schema.org/Action). In this case we'd be looking at defining > abstract classes of verbs with formal derivations, semantic roles, and > so forth. > > Both approaches have their pros and cons and given the diverse > community we have in the Social WG, I'd like to get a sense of which > approach folks prefer. Additionally, I'd like to get a sense of > whether this is something the WG ought to do or do we simply leave it > up to others to define the specific Verbs. > > That's it for now > > - James
Received on Friday, 31 October 2014 17:57:21 UTC