- From: Gregg Kellogg <gregg@kellogg-assoc.com>
- Date: Fri, 17 Jun 2011 14:02:21 -0400
- To: Manu Sporny <msporny@digitalbazaar.com>
- CC: "public-linked-json@w3.org" <public-linked-json@w3.org>
- Message-ID: <41968BBF-8BF4-427D-9715-8DDE9E9310BF@kellogg-assoc.com>
On Jun 17, 2011, at 8:09 AM, Manu Sporny wrote: On 06/03/11 14:24, Brian Peterson wrote: ... IMHO, JS developers and other consumers of JSON are going to expect simplicity. A JSON-LD specification that is 10x longer than the original JSON specification is going to be a non-starter for the majority of JSON developers – a big majority. Honestly, I think the first JSON-LD spec should fit in an email (a short email, unlike the ones I tend to write). Yes, we want something simple, here you go: JSON-LD (JavaScript Object Notation for Linked Data) is a lightweight Linked Data format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on the already successful JSON format and provides a way to help JSON data interoperate at Web-scale. If you are already familiar with JSON, writing JSON-LD is very easy. There is a smooth migration path from the JSON you use today, to the JSON-LD you will use in the future. These properties make JSON-LD an ideal Linked Data interchange language for JavaScript environments, Web services, and unstructured databases such as CouchDB and MongoDB. To use JSON-LD, just pick a Web vocabulary that you want to use and start marking up your data. For example: { "@context": "http://purl.org/jsonld/people", "name": "Brian Peterson", "knows": "http://manu.sporny.org/webid" } In the latest draft of the spec, I started to prefer the use of terms to CURIEs, such as Manu show's here. I think this is a great way to go, and corresponds with much existing practice in naming keys. Another way to think of a CURIE is an expansion on a basic term; I do really think that both have a place in JSON-LD, but they can be resolved through basic rules: resource: IRI | term [':' suffix]? term: NCNAME suffix: relative-iri A good place to start for existing vocabularies could be to adapt existing MicroFormat patterns, such as hCard and XFN/FOAF, into pre-defined JSON-LD profiles, and use them for early examples. (As an aside, RDFa could benefit from this too, and I've suggested elsewhere that we might look to have a common profile format that could be used across many different serialization formats). ... I read through the JSON-LD specification ([1]) as I think a UI developer would, or some other consumer of JSON. I don’t mean to be harsh, and I don’t mean to be a smart*ss; I’m just responding from the perspective of the feedback I’ve gotten from the developers I work with. A typical UI developer would absolutely not read through the JSON-LD specification. Take CSS, for example. A typical UI developer would go to a site that teaches them how to use CSS3, like this one: http://www.css3.info/ Take a look at the 34 CSS specifications in active development: http://www.w3.org/Style/CSS/current-work Are you saying that you think that UI developers read those specifications? Here is the table of contents to the CSS2 specification: http://www.w3.org/TR/CSS2/ I would be surprised if a developer read through the JSON-LD specification. The people that read specifications are often spec implementers. Again, I think the spec should be understandable by most developers that read it. I don't understand why you think that a UI developer or regular Web developer would read the JSON-LD specification. +1, specs are for people writing processors mostly. A typical developer shouldn't have to get past the introduction and examples of use. More advanced usage (such as explicit literals, and RDF List processing) needs to be specified, but really isn't of concern to 90% of the users, but without it JSON-LD cannot be used to fully express existing RDF use cases. I got through sections 1 and 2 only because I’m familiar with W3C specification documents, but you started to lose me around section 2.4. What do you think of Gregg's updates to the spec? I scanned over section 3 and landed on 3.3, Microdata, only because I just heard about schema.org<http://schema.org>. My thoughts reading that section is that the authors of JSON-LD didn’t take into consideration that URIs might work in Microdata because it is HTML based, but they don’t fit as keywords in JSON. Developers never use URIs as keywords in JSON. One of the design goals of Microdata is the ability to use URIs everywhere. That section demonstrates that it can work. If you wanted to, you could also use a profile and shorten the URIs. Even though JSON developers rarely use URIs as JSON keys, it does happen from time to time and we demonstrate that you can do that in JSON-LD. That is, you don't need a context at all. If you want to use full URIs everywhere - you can do it in JSON-LD. It was a design requirement for RDFa 1.1, it was a design requirement for Microdata - we just make sure that you can support both of those design requirements in JSON-LD. Perhaps I don't understand what you're getting at. Does the above make sense to you? IMHO MicroFormats more closely fit the expectation of JSON developers, and sticking to defined terms from one or more profiles is the way to do this. Hopefully, upcoming work between the MicroFormat, Microdata and RDFa groups will help resolve the conceptual differences and yield something that is better than any individually. JSON-LD could play into this and become a relevant part of the discussion. Then you lost me at section 4. A processing algorithm for a JSON-based format that requires 12 term definition, 11 specialized keywords, and 20 steps is just a non-starter. I’d use it if my team lead made me, but I would never chose to include it in a service I’m developing. Then where is your cut-off? How many terms, specialized keywords and steps change it from a non-starter to something you'd be willing to use? I also point back to the HTML5 specification, JavaScript, CSS, TLS, OAuth, and a variety of other specifications that are far more complicated than JSON-LD, but continue to be widely used and implemented on the Web. The new version should be much easier to understand, and could probably be made even simpler. That said, it's really mostly of use for people writing processors. This might work as an advanced specification, one for hard-core semantic web developers. It might work on a web with a dominating presence of semantic junkies. But there is no way I could get my developers to adopt this specification right off. It doesn’t fit with the simplicity of JSON, the simplicity currently expected by consumers and producers of JSON. Then what would? Please propose something. BTW, I’ve never been a fan of the “a” shortcut. But that’s a nit-pick. I’d prefer something like “@type” to fit better with “@iri”. So, you would prefer "@type" to set the type and "@iri" to set the subject? I like the use of "@type", but think that "@iri" is a bad idea: this doesn't convey the same information as "@subject". -- manu -- Manu Sporny (skype: msporny, twitter: manusporny) President/CEO - Digital Bazaar, Inc. blog: PaySwarm Developer Tools and Demo Released http://digitalbazaar.com/2011/05/05/payswarm-sandbox/ Gregg
Received on Friday, 17 June 2011 18:03:30 UTC