"Linked Data" is not normatively defined so shouldn't be referenced from the JSON-LD document definition in the Conformance section. I had put the reference only to have some informative description of what a JSON-LD document is, but that's already expressed in the introduction anyway.
There remains one occurrence in a note on low-memory footprint JSON-LD processors, but it is self-explanatory. Also another one in the Microformat appendix but I'm not clear what the sentence actually means.
Other sections still mention JSON-LD processors, either to describe how JSON-LD documents are processed or to put constraints on JSON-LD processors through normative statements. Descriptive text would need to link to the proper definition of JSON-LD processor in the API doc. Normative statements that apply to JSON-LD processors need to be dropped. All of this is being covered by issue #184.
The grammar contains a "SHOULD NOT" statement on that. I re-introduced a similar statement using "are to be avoided" not to duplicate the normative statement.
This closes #177.
- Created issue #184 to discuss the definition of a JSON-LD processor. The doc references that issue in the meantime. - Incorporated Markus feedback to clarify when a JSON object with a null value is ignored - Re-introduced statement that discourages the use of empty terms in "Context" section. I left it in the grammar as well because that also seems the right place to mention it but, technically speaking, it could be removed from there since it's not a normative binding.
Grammar completed as necessary when the normative statements were not captured yet (e.g. the constraint on circular dependencies for terms definitions in a context). Also: IRI definition modified to say that an IRI may either be represented as an absolute IRI or a relative IRI. "terms" and "compact IRIs" were also in the list previously, but they generate IRIs through expansion, and the grammar makes the distinction when it says that a value can be an IRI, a compact IRI or a term. Normative statements on JSON-LD processors still appear in the doc, but should probably be removed. Also note the "Referencing Contexts from JSON Documents" section retains its normative wording. I also updated plural references to terms to include the "s" to ensure the whole world gets turned into a link.
Main changes: - Clarified that JSON terms are directly imported from the JSON spec, and not re-defined in JSON-LD. - Moved the definitions of "node definition", "node reference" and "term" to the grammar. They are JSON-LD constructs. - Introduced new grammar constructs when needed, in particular "expanded typed value" and "expanded lanugage-tagged string" - Re-wrote the grammar in a more consistent way to use the same vocabulary throughout. - Fixed grammar when needed (for instance the value in a language map could be a language-tagged string, which seemed a typo). Not done yet: - All normative statements in "Basic Concepts" and "Advanced Concepts" should be removed (provided they appear in the grammar that is!) - There remains a couple of places where the grammar is not perfect (@graph and apparent contradiction in expanded term definition in particular) - Examples in the grammar should be moved to previous sections. - There may be a few places in "Basic Concepts" and "Advanced Concepts" sections that would benefit from linking to the grammar. - Some definitions may benefit from a bit of wordsmithing. For instance, there could be a note around the definition of an IRI that explains that, whenever the grammar says a value must be an IRI, it is taken to mean "a string with the lexical form of an IRI".
- Editoral changes to how processing state for context properties is described. - Add note to IRI expansion algorithm for the case where a local context is being processed. - Include steps to handle local context processing case within IRI expansion algorithm.
The JSON-LD Data Model is now in a proper section, followed by a terminology section with general terminology and keywords. The Conformance section (that refers to the notion of JSON-LD graph defined in the JSON-LD Data Model section) appears next. No further changes in this commit.
This addresses #47.
This addresses #171.