- 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