**PROPOSED** AS2 spec update

Based on a number of conversations and feedback since the face to face
at TPAC, I have written a **PROPOSED** update to the AS2 draft. These
are checked in to a **Branch** in github. I have not updated the
official Editor's Drafts. The proposed modification can be viewed
here:

http://rawgit.com/jasnell/w3c-socialwg-activitystreams/refactor2/activitystreams2.html
http://rawgit.com/jasnell/w3c-socialwg-activitystreams/refactor2/activitystreams2-vocabulary.html

The updates tackle a number of issues:

1. Refactor's Natural Language Context to address JSON-LD
compatibility and serialization concerns. For instance, rather than
"displayName" having a value that is *either* a string or a Language
Map, this creates a separate "displayNameMap" for the Language Map
case and keeps "displayName" as a String only. The JSON-LD processing
algorithms handle this just fine and non-JSON-LD implementations end
up with a more predictable, consistent target.

2. Remove the "language" property

3. Refactor as:Link, add as:href to indicate the target of the Link,
move away from overloading @id. This ought to resolve the modeling
issues that have been discussed.

4. Deprecate the "verb" property in AS 2.0, use @type instead to
represent the Activity Type. Provide clear guidelines for handling the
"verb" property when moving from AS 1.0 to AS 2.0.

5. Require JSON-LD compacted form using a normative JSON-LD @context
definition. Forbid implementations from altering the normative JSON-LD
@context. This will ensure that the serialized JSON will remain
consistent for the key properties, making it easier for
implementations that choose not to use the JSON-LD standard
algorithms.

6. Strengthen the MUST IGNORE requirement for extensions. Make it
clear that implementations SHOULD define extension properties using an
@context and spell out the consequences if they do not. Make it clear
that there are some valid JSON constructs (arrays of arrays) that are
not supported in JSON-LD and show an example using the one significant
case we are currently aware of (GeoJSON).

7. Provide a AS1-to-AS2 specific @context definition that is
specifically for processing AS1 documents using AS2 semantics.

8. Remove the Verb and ObjectType abstract classes. Verb is no longer
needed with the move to @type. Verbs just become subclasses of
as:Activity. The ObjectType definition can be handled better using
other constructs. Overall, this simplifies our vocabulary, which is
good.

That's a large number of updates, I know, so please review this
carefully. The goal here is to strike a balance between a number of
competing points of view. Overall, however, I believe it's an
iterative improvement over the FPWD.

- James

Received on Thursday, 6 November 2014 18:41:35 UTC