Re: jf2 vs. AS 2.0

On 4 November 2015 at 01:51, James M Snell <jasnell@gmail.com> wrote:

> On Tue, Nov 3, 2015 at 4:46 PM, Aaron Parecki <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.
>

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
> > @aaronpk
> >
> >
> > On Tue, Nov 3, 2015 at 4:29 PM, James M Snell <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 03:24:37 UTC