- From: Melvin Carvalho <melvincarvalho@gmail.com>
- Date: Wed, 4 Nov 2015 04:24:05 +0100
- To: James M Snell <jasnell@gmail.com>
- Cc: Aaron Parecki <aaron@parecki.com>, "public-socialweb@w3.org" <public-socialweb@w3.org>
- Message-ID: <CAKaEYhLsgGyr-XzJzG1nBgyipbr-1oZM6EY1L7r+LBV1mXjB7g@mail.gmail.com>
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