- From: René Peinl <rene.peinl@hof-university.de>
- Date: Wed, 4 Nov 2015 08:28:14 +0100
- To: <public-socialweb@w3.org>
>From my perspective the idea to move a few steps towards the different communities is worthwhile. However, I agree with James that a second serialization in JSON is not really helpful.
My proposal would be to show mappings of the AS 2.0 JSON-LD representation to a MF2 syntax. This is already done to a certain extend in the examples, if I understand it correctly.
Having a strong XML background I would argue this is definitely a case for XSLT. Anybody know of a similar mechanism based on JSON?
-----Ursprüngliche Nachricht-----
Von: James M Snell [mailto:jasnell@gmail.com]
Gesendet: Mittwoch, 4. November 2015 01:52
An: Aaron Parecki <aaron@parecki.com>
Cc: public-socialweb@w3.org
Betreff: Re: jf2 vs. AS 2.0
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.
- 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 07:28:38 UTC