- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Fri, 4 Jan 2013 18:51:44 +0100
- To: <public-linked-json@w3.org>
- Cc: "'RDF WG'" <public-rdf-wg@w3.org>
As announced in the last mail, I've just fixed the last remaining issues in the JSON-LD Grammar section. It definitely does the job, I was just wondering whether we should also include a more formal, ABNF-like grammar (or maybe even replace the prose). Unfortunately it seems that currently there's no accepted way or best-practice to specify JSON "grammars" (the JSON Schema Internet Draft expired two years ago [1]). So I tried to come up with something ABNF-like (it's not valid ABNF) and would be interested in hearing your opinions. I'm not sure myself yet whether that helps or confuses people. graph = node-obj / node-obj[] node-obj = { "@context": context-def (0..1) "@id": string (0..1) "@type": iri / iri[] (0..1) "@graph": graph (0..1) "@annotation": string (0..1) property-key: property-value / property-value[] / language-map / annotation-map (*) } value-obj = { "@context": context-def (0..1) "@value": scalar (0..1) "@language": bcp47-tag / "@type": iri (0..1) "@annotation": string } list-obj = { "@context": context-def (0..1) "@list": list-set-value / list-set-value[] (1) "@annotation": string (0..1) } set-obj = { "@context": context-def (0..1) "@set": list-set-value / list-set-value[] (1) "@annotation": string (0..1) } language-map = { "@context": context-def (0..1) bcp47-tag: string / string[] (*) } annotation-map = { "@context": context-def (0..1) string: property-value / property-value[] (*) } list-set-value = scalar / node-obj / value-obj property-value = list-set-value / list-obj / set-obj context-def = null / iri / context-def-obj / (null / iri / context-def-obj)[] context-def-obj = { property-key: null / iri / term-def-obj (*) "@language": bcp47-tag (0..1) "@vocab": iri (0..1) } term-def-obj = { "@id": iri (0..1) "@language": bcp47-tag / "@type": iri (0..1) "@container": ( "@list" / "@set" / "@language" / "@annotation" ) (0..1) } bcp47-tag = string ; should this be more explicit? iri = string ; should this be more explicit? property-key = string - keyword ; any string except a keyword keyword = @context / @id / @value / @language / @type / @container / @list / @set / @annotation / @vocab / @graph scalar = null / string / number / true / false [1] http://tools.ietf.org/html/draft-zyp-json-schema-03 Cheers, Markus -- Markus Lanthaler @markuslanthaler
Received on Friday, 4 January 2013 17:52:12 UTC