- From: Gregg Kellogg <gregg@kellogg-assoc.com>
- Date: Tue, 9 Aug 2011 20:49:59 -0400
- To: "nathan@webr3.org" <nathan@webr3.org>
- CC: Linked JSON <public-linked-json@w3.org>
On Aug 9, 2011, at 12:21 PM, Nathan wrote: > Just for kicks, here's a quick list of my personal requirements for > JSON-LD, or something like it - to see how it weighs up against the > current requirements: > > public and private naming, public being URIs with a global/universal > scope of the web, private being scoped within the "document" under > consideration. Provided for via SHOULD language in reqs. Other language in spec. > Ability to use shortened names relating to fragment > identifiers in the syntax, for example "me" in a graph with the IRI > <http://webr3.org/nathan#> resulting in <http://webr3.org/nathan#me> as > the proper public name for said object. This applies to property names > too, in addition to needing an easy syntax for property IRIs, I also > need properties that are named privately. @base and @vocab within @context will do this. > all data expressed in k/v JSON objects relating to property-object > chains in RDF, optional "subject", where subject can be a public or > private name. @subject inclusion is a SHOULD, so it allows for an unnamed node. The spec also has unnamed nodes as Advanced Concepts. > first class support for: integer, decimal, boolean, string, IRI, > date/time-stamps. (and ideally hex-binary and base64-binary, unsure > about float). No support for NULL. Nothing for date/time-stamps, hex-binary or base64-binary as first class entities. These can be supported through a typed literal notation. We're also not inclined to go too far on explicit support for XSD datatypes, which would likely be necessary to identify the lexical form of these types. > I'm easy on generic datatyping methods, as I figure this should be more > of a requirement to specify using validation rules in ontologies, > however I realise it can sometimes be an optimisation to know a datatype > upfront and have no ontological knowledge of the data being encountered. > > also easy on language tag specification for strings (since you often > find mixed language text mixing between jp+en for example), however I'm > sure many will need it. Easy, as in literal notation such as {"@literal": "A string in english", "@datatype": "en"}. However, this does not (yet) come from the requirements. We make no assertions about the form of the @datatype value, but it could have some implications if converting to RDF, for example. > support for ordered lists, unordered lists, linked lists which span over > documents and dataspaces, and finally sets. There is a requirement for ordered and unordered lists. The spec supports ordered lists as an Experimental Concept. The RDF serialization of this would use rdf:first/rdf:rest linked list generation, but this is not required if staying within JSON. As with RDF, unordered lists could span documents; can't see how to do this with ordered lists; thoughts? > no RDF imposed constraints (allow non IRI properties, literal subjects > etc). All JSON-LD is valid JSON, is not necessarily valid RDF - would be > happy to map to / leverage L-Base for semantics. Language for all of these is SHOULD for IRIs. > easy way to match one document to one vocabulary. See @vocab, above. > well document expectation that IRIs are meant to be dereferenced. Covered. > I'll send this, then read the requirements below in a minute and see how > they compare. > > Best, > > Nathan Gregg > Gregg Kellogg wrote: >> We discussed the requirements [1] on the call today. I made a couple of small changes, but I mainly wanted to get feedback from the list on the specific JSON-LD markup requirements: >> >> >> 1. A JSON-LD document must be able to express a linked data graph. >> 2. A JSON-LD document must be a valid JSON document. >> 3. All JSON constructs must have semantic meaning in a JSON-LD document: associative arrays, arrays, numbers, strings and other literal names to express semantic information. >> 4. A subject is defined using a designated name/value pair of a JSON object. >> 5. There must be a way label a JSON object with an IRI. >> 6. There may be a way to reference an un-labeled JSON object that does not have a direct child relationship. >> 7. JSON name/value should be used to describe property-object relationships. >> 8. A property should resolve to an absolute IRI. >> 9. An object is represented using JSON objects, arrays, numbers, strings and literal names resolve to nodes in a linked data graph. >> 10. Un-coerced JSON strings represent literal objects. >> 11. Coerced JSON strings may represent IRIs. >> 12. There should be a way to associate a datatype IRI with a literal JSON value. >> 13. JSON booleans, numbers and other literal values must represent specific datatyped literals. What does null map to? There may be value in specifically saying that the meaning is undefined. >> 14. A JSON array may be used to associate multiple objects with a subject through a common property. >> 15. A JSON array must not be used to imply an order to the component entities. >> 16. A JSON-LD document should be able to express and ordered list objects. >> >> >> Gregg >> >> [1] http://json-ld.org/requirements/latest/ >> >
Received on Wednesday, 10 August 2011 00:50:46 UTC