- From: Ivan Herman <ivan@w3.org>
- Date: Fri, 24 Aug 2012 12:42:49 +0200
- To: Manu Sporny <msporny@digitalbazaar.com>
- Cc: RDF WG <public-rdf-wg@w3.org>
Thanks a lot Manu. At least for me this is much clearer... Ivan On Aug 24, 2012, at 04:18 , Manu Sporny wrote: > I had previously sent out an e-mail[1] about all of the spec updates > that have been done to the JSON-LD specs in the last month. Ivan felt > the update was as clear as mud :P, so here's a second, more prose-y > attempt of the high level updates to the spec. > > Added JSON-LD Grammar > --------------------- > > We did a rough cut at adding a normative JSON-LD grammar to the > specification that is not EBNF. It uses prose, which a number of people > don't like, but does express the expected input for the grammar. The > reason we can't use EBNF is because JSON-LD is a method for interpreting > JSON as a directed graph / RDF. There are some things that are illegal, > but there are also other things that are ignored, or "fixed" if the > intent of the markup is clear. > > So, there are fully conformant JSON-LD documents, documents that have > JSON-LD errors (but can still be interpreted/fixed), documents that have > JSON-LD errors (where the errors are so bad that the particular section > of the document is ignored), and documents with no semantic mapping > (plain old JSON). This is the reason we took the JSON-LD grammar > approach - because EBNF is more for syntax checking, whereas we needed > something that spoke to more about what markup patterns are understood > by JSON-LD processors. > > API Updates > ----------- > > We defined the API for both synchronous and asynchronous use. > Implementers of the API may choose to implement the API in synchronous > or asynchronous mode. In synchronous mode, you expect a return value > from each method and the API will block until that return value is > received. In asynchronous mode, you will provide a callback to the > method and the callback will be called once the operation has completed. > Both approaches are valid programming models, so we decided to allow > implementers decide whether their JSON-LD API will be blocking or > non-blocking. > > The algorithmic sections were expanded to explain how "xsd:boolean", > "xsd:double", and "xsd:integer" are converted to native programming > language types when transforming from RDF to JSON-LD. This is an > optional feature that can be turned on/off when transforming from RDF. > It allows developers to use native language types w/o worrying about > data loss. > > All API calls now have an options object that is passed that can turn > off certain features and specify a number of parameters that the call > might need, like the BASE URI, for example. Reasonable defaults are set > for all options, so the options are only needed when overriding the > defaults are necessary. > > Property Generators > ------------------- > > Support for property generators was added at the request of the Drupal > community. They want to express things like "foaf:name" and > "schema:name", but do so using only one entry in the JSON data. We added > the following feature to the context to enable that to happen: > > "@context": { > "name": { "@id": ["foaf:name", "schema:name"] } > } > > When the context above is used w/ the following data: > > "name": "Ivan Herman" > > The following triples are produced: > > <> foaf:name "Ivan Herman"; > schema:name "Ivan Herman". > > Language Maps > ------------- > > Support for language maps was added at the request of the Wikidata and > Drupal communities. Often, they need to express values in multiple > languages, and the associated data may not always be the same across > languages. They wanted to be able to not only express the languages > easily (which JSON-LD already supported), but to make the data structure > easy for their developers to access via JavaScript and/or PHP. > > This is what a JSON-LD document containing a language map looks like: > > { > "@context": > { > "title": > { > "@id": "http://purl.org/dc/terms/title" > "@container": "@language" > } > }, > ... > "title": > { > "en": "JSON-LD Syntax", > "ru": "JSON-LD Синтаксис", > "ja": "JSON-LDの構文" > } > ... > } > > These are the triples generated: > > <> dc:title "JSON-LD Syntax"@en, > "JSON-LD Синтаксис"@ru, > "JSON-LDの構文"@ja . > > Vocabulary Support > ------------------ > > At times, developers want to express JSON-LD documents using a single > vocabulary. Schema.org and FOAF are two examples of this. To support the > requirement, we re-introduced @vocab. A JSON-LD document using @vocab > looks like this: > > { > "@context": { > "@vocab": "http://xmlns.com/foaf/1.0/" > }, > "@type": "Person", > "name": "Manu Sporny", > } > > and would generate the following triples: > > <> rdf:type foaf:Person; > foaf:name "Manu Sporny" . > > Other > ----- > > All other fixes were editorial fixes requested by the public, or > determined to be important by the editors to make sure that readers were > not confused by the prose. > > -- manu > > [1] > http://lists.w3.org/Archives/Public/public-rdf-comments/2012Aug/0058.html > > -- > Manu Sporny (skype: msporny, twitter: manusporny) > Founder/CEO - Digital Bazaar, Inc. > blog: Which is better - RDFa Lite or Microdata? > http://manu.sporny.org/2012/mythical-differences/ > ---- Ivan Herman, W3C Semantic Web Activity Lead Home: http://www.w3.org/People/Ivan/ mobile: +31-641044153 FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Friday, 24 August 2012 10:43:16 UTC