Re: jf2 vs. AS 2.0

On 11/03/2015 10:24 PM, Melvin Carvalho wrote:
>
>
> On 4 November 2015 at 01:51, James M Snell <jasnell@gmail.com
> <mailto:jasnell@gmail.com>> wrote:
>
>     On Tue, Nov 3, 2015 at 4:46 PM, Aaron Parecki <aaron@parecki.com
>     <mailto:aaron@parecki.com>> wrote:
>     > Thanks for looking over this, but please don't make assumptions
>     about what
>     > the purpose of jf2 is. I tried adding it to the agenda for
>     today's call, but
>     > it was continually pushed down in the list to make room for all
>     the AS2
>     > issues and we didn't get to talk about it at all.
>     >
>
>     Fair enough. I'm responding to what I've already been told about it's
>     purpose. Harry indicated previously that it was intended as an
>     alternative to AS 2.0 and, from what I understand, there's been some
>     discussion/disagreement among the chairs about considering it as an
>     alternative to AS2 that ought to be considered a parallel work item of
>     the working group. My analysis is based on that information. If you
>     (as the author) have a different point of view on it, then fantastic,
>     and I certainly hope you take no offense to the analysis.
>

Not I did not say that it meant as an 'alternative', but as a
proof-of-concept that a simple JS feed could be done and thus AS2.0
should be simplified along the lines put forward by Aaron. Minus the
complexity added by JSON-LD, I think this general trajectory makes sense
and that we should try to keep a simple JSON core, with JSON-LD features
being optional. That seems to be the way we are converging currently.

         cheers,
             harry

>
> Thanks for going thru these points.
>
> I do see progress towards convergence here.  Im glad the two of you
> are discussing it here, we need not view all work as competitive.
>
> Similarly, I think James' efforts towards convergence between AS2 and
> JSON LD were a great gesture this week.  This kind of goodwill
> motivate participation, and as we're a small group compared to the
> social web incumbents, working together constructively is all the more
> important.  I see good progress!
>
> From the mf2 work I was able to cut and paste some of the mf2 / jf2
> work and convert it to jsonld (on github) in a matter of seconds
>
> http://melvincarvalho.github.io/data/ns/mf.jsonld
>
> That's not normative, just the result of some cut and paste.
>
> I do feel we're inching closer to convergence here.  I hope it continues!
>  
>
>
>     - James
>
>     > The real goal with jf2 is to show an attempt at bringing the
>     microformats
>     > community closer to what the AS and other JSON-based communities
>     expect from
>     > a syntax. I know there's been a lot of talk about "compromising" and
>     > "convergence" between the three communities, and that's exactly
>     what this is
>     > an exercise in. I'm sorry you are seeing it as a
>     thread/competitor to what
>     > you are doing, but that was not the intent. The intent is to bring
>     > everything closer in line like we have all been talking about
>     for such a
>     > long time. If you are seeing similarities between jf2 and AS2
>     that is great,
>     > because that is literally the goal of converging.
>     >
>     > I won't be able to make the call next week, but I will continue
>     working on
>     > jf2 with others in the mean time and hope to get it on the
>     agenda for the
>     > call on the 17th.
>     >
>     > ----
>     > Aaron Parecki
>     > aaronparecki.com <http://aaronparecki.com>
>     > @aaronpk
>     >
>     >
>     > On Tue, Nov 3, 2015 at 4:29 PM, James M Snell <jasnell@gmail.com
>     <mailto:jasnell@gmail.com>> wrote:
>     >>
>     >> There has been some discussion of whether an alternative JSON
>     >> serialization should be considered by this WG. The proposal
>     that has
>     >> been put on the table is currently being called "jf2". The current
>     >> draft can be found here:
>     >> https://github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2
>     >>
>     >> I cannot speak to the motivations for why folks feel this
>     second draft
>     >> would be necessary or even remotely beneficial to the WG's
>     efforts but
>     >> I can do a side by side comparison with the syntax spec we already
>     >> have.
>     >>
>     >> Going through the current draft of the jf2 draft on the wiki:
>     >>
>     https://github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2...
>     >>
>     >> 1. Post object ..
>     >>
>     >>    a. effectively the same as Object in AS2. Calling it
>     something else is
>     >> not a
>     >>       worthwhile "improvement"
>     >>
>     >>    b. "type" is essentially the same function as AS2's "type".
>     No real
>     >> benefit
>     >>       gained. The write up proposes using the Microformats list
>     as the
>     >> "full"
>     >>       list but doesn't indicate anything about extensibility.
>     >>
>     >>    c. Overall, doesn't seem to buy us anything different than
>     current
>     >>       AS2 Object definition.
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "entry",
>     >> }
>     >> ```
>     >> AS 2.0 example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Note"
>     >> }
>     >> ```
>     >>
>     >> 2. URL values
>     >>
>     >>    a. "Every value that is a URL is in an object with a
>     property of url"
>     >> ...
>     >>       This statement is not clear.
>     >>
>     >>    b. This is generally equivalent to the most common case in
>     AS2. AS2
>     >> does
>     >>       have the additional bit that "url" can specify multiple urls
>     >>
>     >>    c. Overall, doesn't seem to buy us anything different than
>     current
>     >>       AS2 "url" definition.
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "image",
>     >>   "url": "http://example.org/foo.png"
>     >> }
>     >> ```
>     >> AS 2.0 example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Image",
>     >>   "url": "http://example.org/foo.png"
>     >> }
>     >> ```
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "entry",
>     >>   "video": [
>     >>     {
>     >>       "type": "video",
>     >>       "content-type": "video/mp4",
>     >>       "url": "sample_h264.mov"
>     >>     },
>     >>     {
>     >>       "type": "video",
>     >>       "content-type": "video/ogg",
>     >>       "url": "sample_ogg.ogg"
>     >>     },
>     >>     {
>     >>       "type": "video",
>     >>       "content-type": "video/webm",
>     >>       "url": "sample_webm.webm"
>     >>     }
>     >>   ]
>     >> }
>     >> ```
>     >> AS 2.0 Example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Video",
>     >>   "url": [
>     >>     {
>     >>       "mediaType": "video/mp4",
>     >>       "href": "sample_h264.mov"
>     >>     },
>     >>     {
>     >>       "mediaType": "video/ogg",
>     >>       "href": "sample_ogg.ogg"
>     >>     },
>     >>     {
>     >>       "mediatype": "video/webm",
>     >>       "href": "sample_webm.webm"
>     >>     }
>     >>   ]
>     >> }
>     >> ```
>     >>
>     >> 3. Post properties
>     >>
>     >>    "The list of valid post properties is defined by
>     vocabularies. This
>     >> allows
>     >>    new vocabularies to be developed outside the development of
>     the syntax"
>     >>
>     >>    This is equivalent to AS 2.0's existing extensibility model.
>     >>
>     >> js2 example
>     >> ```json
>     >> {
>     >>   "type": "entry",
>     >>   "published": "2015-10-20T15:49:00-0700",
>     >>   "url": "http://example.com/post/fsjeuu8372",
>     >>   "author": {
>     >>     "type": "card",
>     >>     "name": "Alice",
>     >>     "url": "http://alice.example.com",
>     >>     "photo": {
>     >>       "type": "image",
>     >>       "url": "http://alice.example.com/photo.jpg"
>     >>     }
>     >>   },
>     >>   "name": "Hello World",
>     >>   "content": "This is a blog post"
>     >> }
>     >> ```
>     >> AS 2.0 example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Note",
>     >>   "published": "2015-10-20T15:49:00-0700",
>     >>   "url": "http://example.com/post/fsjeuu8372",
>     >>   "attributedto": {
>     >>     "type": "Person",
>     >>     "displayName": "Alice",
>     >>     "url": "http://alice.example.com",
>     >>     "image": {
>     >>       "type": "Image",
>     >>       "url": "http://alice.example.com/photo.jpg"
>     >>     }
>     >>   },
>     >>   "displayName": "Hello World",
>     >>   "content": "This is a blog post"
>     >> }
>     >> ```
>     >> The examples are essentially equivalent. jf2 gives provides
>     nothing new.
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "entry",
>     >>   "published": "2015-10-20T15:49:00-0700",
>     >>   "url": "http://example.com/like/r23eugi02c",
>     >>   "author": {
>     >>     "type": "card",
>     >>     "name": "Alice",
>     >>     "url": "http://alice.example.com",
>     >>     "photo": {
>     >>       "type": "image",
>     >>       "url": "http://alice.example.com/photo.jpg"
>     >>     }
>     >>   },
>     >>   "like-of": {
>     >>     "url": "http://bob.example.com/post/100"
>     >>   }
>     >> }
>     >> ```
>     >> AS 2.0 Example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Like",
>     >>   "published": "2015-10-20T15:49:00-0700",
>     >>   "url": "http://example.com/like/r23eugi02c",
>     >>   "actor": {
>     >>     "type": "Person",
>     >>     "displayName": "Alice",
>     >>     "url": "http://alice.example.com",
>     >>     "image": {
>     >>       "type": "Image",
>     >>       "url": "http://alice.example.com/photo.jpg"
>     >>     }
>     >>   },
>     >>   "object": "http://bob.example.com/post/100"
>     >> }
>     >> ```
>     >> The examples are essentially equivalent. jf2 gives provides
>     nothing new.
>     >>
>     >> 4. Author
>     >>
>     >>    "An author is represented by the h-card vocabulary"
>     >>
>     >>    AS 2.0 refers to the standardized hcard vocabulary. jf2 is
>     offering
>     >> nothing new.
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "card",
>     >>   "name": "Aaron Parecki",
>     >>   "photo": {
>     >>     "type": "image",
>     >>     "url": "http://aaronparecki.com/photo.jpg"
>     >>   },
>     >>   "url": "http://aaronparecki.com/"
>     >> }
>     >> ```
>     >> AS 2.0 Example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Person",
>     >>   "displayName": "Aaron Parecki",
>     >>   "image": {
>     >>     "type": "Image",
>     >>     "url": "http://aaronparecki.com/photo.jpg"
>     >>   },
>     >>   "url": "http://aaronparecki.com/"
>     >> }
>     >> ```
>     >>
>     >> 5. HTML Content
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "entry",
>     >>   "content": {
>     >>     "content-type": "text/html",
>     >>     "value": "<b>Hello World</b>"
>     >>   }
>     >> }
>     >> ```
>     >> AS 2.0 Example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Note",
>     >>   "mediaType": "text/html",
>     >>   "content": "<b>Hello World</b>"
>     >> }
>     >> ```
>     >>
>     >> 6. Collections
>     >>
>     >>    jf2 does not offer anything distinctly different from AS 2.0
>     >> collections
>     >>
>     >> jf2 example:
>     >> ```json
>     >> {
>     >>   "type": "feed",
>     >>   "url": "http://alice.example.com/collectionurl",
>     >>   "name": "Alice's Home Page",
>     >>   "author": {
>     >>     "type": "card",
>     >>     "name": "Alice",
>     >>     "url": "http://alice.example.com",
>     >>     "photo": {
>     >>       "type": "image",
>     >>       "url": "http://alice.example.com/photo"
>     >>     }
>     >>   },
>     >>   "children": [
>     >>     { ... },
>     >>     { ... }
>     >>   ]
>     >> }
>     >> ```
>     >> AS 2.0 Example:
>     >> ```json
>     >> {
>     >>   "@context": "http://www.w3.org/ns/activitystreams",
>     >>   "type": "Collection",
>     >>   "url": "http://alice.example.com/collectionurl",
>     >>   "displayName": "Alice's Home Page",
>     >>   "attributedTo": {
>     >>     "type": "Person",
>     >>     "displayName": "Alice",
>     >>     "url": "http://alice.example.com",
>     >>     "image": {
>     >>       "type": "Image",
>     >>       "url": "http://alice.example.com/photo"
>     >>     }
>     >>   },
>     >>   "items": [
>     >>     { ... },
>     >>     { ... }
>     >>   ]
>     >> }
>     >> ```
>     >> the only difference between these is that I renamed fields,
>     added the
>     >> @context, and used different values for "type". jf2 offers nothing
>     >> different from what's currently in AS 2.0.
>     >>
>     >> 7. Summary
>     >>
>     >>     So far, jf2 offers nothing that isn't already covered by AS
>     2.0.
>     >> At best, it represents an exercise in bikeshedding over
>     property names
>     >> and a handful of values. AS 2.0 does cover a broader range of use
>     >> cases than jf2 so an argument can be made that jf2 is "less
>     >> complicated". jf2 attempts to defer the complexity of that by
>     >> referencing out to individual microformats vocabularies. I
>     would argue
>     >> that doing so actually does not reduce the complexity for
>     >> implementers, it simply shifts the problem do a different set of
>     >> specs.
>     >>
>     >> I would note that jf2 does not currently handle
>     internationalization
>     >> concerns. Addressing such concerns would lead jf2 to duplicate
>     more of
>     >> what is already in AS 2.0 today.
>     >>
>     >> Obviously, I'm leading in to this review with an obvious bias
>     towards
>     >> the spec we've already been working on for the past year, that
>     already
>     >> does everything we need, and that folks have already
>     implemented. I'd
>     >> encourage the proponents and authors of jf2 to make specific change
>     >> proposals against AS 2.0 if they really feel that things can be
>     >> simplified further.
>     >>
>     >> - James
>     >>
>     >
>
>

Received on Wednesday, 4 November 2015 12:35:14 UTC