diff --git a/Gemfile.lock b/Gemfile.lock index b09bbfd1..cbe49f2f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/ruby-rdf/json-ld.git - revision: b1a47abbdd6db71d2b9ccb42811445fee1626d60 + revision: 94a5f041320f71ef89e4e82c73a01fd07ab4af27 branch: develop specs: json-ld (3.0.2) @@ -74,7 +74,7 @@ GEM sparql (~> 3.0) sparql-client (~> 3.0) mini_portile2 (2.4.0) - multi_json (1.14.0) + multi_json (1.14.1) net-http-persistent (3.1.0) connection_pool (~> 2.2) nokogiri (1.10.4) diff --git a/common/terms.html b/common/terms.html index ff660e0e..cdef3e1f 100644 --- a/common/terms.html +++ b/common/terms.html @@ -320,13 +320,16 @@ when prepended to the suffix of the compact IRI, results in an absolute IRI.
processing mode
- The processing mode defines how a JSON-LD document is processed. - By default, all documents are assumed to be conformant with JSON-LD 1.0 [[JSON-LD10]]. + The processing mode defines how a JSON-LD document is processed. + By default, all documents are assumed to be conformant with this specification. By defining a different version using the @version entry in a context, - or via explicit API option, - other processing modes can be accessed. + publishers can ensure that processors conformant with JSON-LD 1.0 [[JSON-LD10]] + will not accidently process JSON-LD 1.1 documents, possibly creating a different output. + The API provides an option for setting the processing mode to `json-ld-1.0`, + which will prevent JSON-LD 1.1 features from being activated, + or error if @version entry in a context is explicitly set to `1.1`. This specification extends JSON-LD 1.0 - via the json-ld-1.1 processing mode.
+ via the `json-ld-1.1` processing mode.
set object
A set object is a map that has an @set entry. It may also have an @index key, but no other entries.
diff --git a/index.html b/index.html index 8ad48a16..facd3464 100644 --- a/index.html +++ b/index.html @@ -601,8 +601,8 @@

Syntax Tokens and Keywords

@version
Used in a context definition to set the processing mode. New features since [[[JSON-LD10]]] [[JSON-LD10]] described in this specification are - only available when processing mode has been explicitly set to - json-ld-1.1. + not available when processing mode has been explicitly set to + `json-ld-1.0`.
Within a context definition `@version` takes the specific value `1.1`, not `"json-ld-1.1"`, as a JSON-LD 1.0 processor may accept a string value for `@version`, but will reject a numeric value.
@@ -2247,9 +2247,12 @@

Advanced Concepts

JSON-LD 1.1 Processing Mode

New features defined in JSON-LD 1.1 are available - when the processing mode is set to json-ld-1.1. - This may be set using the @version entry in a context - set to the value 1.1 as a number, or through an API option.

+ unless the processing mode is set to `json-ld-1.0`. + This may be set through an API option. + The processing mode may be explicitly set to `json-ld-1.1` using the `@version` entry in a context + set to the value `1.1` as a number, or through an API option. + Explicitly setting the processing mode to `json-ld-1.1` + will prohibit JSON-LD 1.0 processors from incorrectly processing a JSON-LD 1.1 document.

@@ -2272,9 +2275,9 @@ 

Advanced Concepts

the former will be interpreted as having had "@version": 1.1 defined within it.

Setting the processing mode explicitly - for JSON-LD 1.1 is necessary so that a [[[JSON-LD10]]] processor - does not attempt to process a JSON-LD 1.1 document and silently - produce different results.

+ to `json-ld-1.1` is RECOMMENDED to prevent a [[[JSON-LD10]]] processor + from incorrectly processing a JSON-LD 1.1 document and + producing different results.

Default Vocabulary

@@ -2405,7 +2408,7 @@

Advanced Concepts

-

Since json-ld-1.1, +

Since JSON-LD 1.1, the vocabulary mapping in a local context can be set to the a relative IRI, which is concatenated to any vocabulary mapping in the active context (see @@ -2572,7 +2575,7 @@

Advanced Concepts

Using the Document Base for the Default Vocabulary

In some cases, vocabulary terms are defined directly within the document itself, rather than in an external vocabulary. - Since json-ld-1.1, the vocabulary mapping in a local context + Since JSON-LD 1.1, the vocabulary mapping in a local context can be set to a relative IRI, which is, if there is no vocabulary mapping in scope, resolved against the base IRI. This causes terms which are expanded relative to the vocabulary, @@ -2804,7 +2807,7 @@

Using the Document Base for the Default Vocabulary

-

When operating with the default processing mode +

When operating explicitly with the processing mode for [[[JSON-LD10]]] compatibility, terms may be chosen as compact IRI prefixes when compacting only if a simple term definition is used where the value ends with a URI gen-delim character (e.g, /, @@ -2834,7 +2837,7 @@

Using the Document Base for the Default Vocabulary

--> -

Using the following context in the default 1.0 processing mode +

Using the following context in the 1.0 processing mode will now select the term vocab rather than property, even though the IRI associated with property captures more of the original IRI.

@@ -2910,8 +2913,7 @@

Using the Document Base for the Default Vocabulary

In the original [[JSON-LD10]], the term selection algorithm would have selected property, creating the Compact IRI property:One. - If the processing mode is json-ld-1.1, the original behavior can be - made explicit using @prefix:

+ The original behavior can be made explicit using @prefix:

Using the Document Base for the Default Vocabulary
   

Other than for @type, properties of expanded term definitions where the term is a keyword result in an error. - When processing mode is set to json-ld-1.1, + Unless the processing mode is set to `json-ld-1.0`, there is also an exception for @type; see for further details.

-

When processing mode is set to json-ld-1.1, +

Unless the processing mode is set to `json-ld-1.0`, aliases of keywords are either simple term definitions, where the value is a keyword, or a expanded term definitions with an `@id` entry and optionally an `@protected` entry; @@ -3561,8 +3563,7 @@

Using the Document Base for the Default Vocabulary

earlier less deeply nested definitions, as discussed in .

-

Scoped Contexts are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Scoped Contexts are a new feature in JSON-LD 1.1.

Context Propagation

@@ -4193,8 +4194,7 @@

Using the Document Base for the Default Vocabulary

As a consequence, context publishers should use this feature with care.

-

Protected term definitions are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Protected term definitions are a new feature in JSON-LD 1.1.

@@ -6184,7 +6184,7 @@

Using the Document Base for the Default Vocabulary

Using @set with @type

-

When processing mode is set to json-ld-1.1, +

Unless the processing mode is set to `json-ld-1.0`, @type may be used with an expanded term definition with @container set to @set; no other entries may be set within such an expanded term definition. This is used by the Compaction algorithm to ensure that the values of @type (or an alias) @@ -6517,8 +6517,7 @@

Using the Document Base for the Default Vocabulary

-

Nested properties are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Nested properties are a new feature in JSON-LD 1.1.

Embedding

@@ -7152,7 +7151,7 @@

Using the Document Base for the Default Vocabulary

When compacting, this ensures that a JSON-LD Processor will use the array form for all values of indexes.

-

If the processing mode is set to json-ld-1.1, +

Unless the processing mode is set to `json-ld-1.0`, the special index @none is used for indexing data which does not have an associated index, which is useful to maintain a normalized representation.

@@ -7290,7 +7289,7 @@

Using the Document Base for the Default Vocabulary

the keys used to index objects are semantically linked to these objects, and should be preserved not only syntactically, but also semantically.

-

If the processing mode is set to json-ld-1.1, +

Unless the processing mode is set to `json-ld-1.0`, "@container": "@index" in a term description can be accompanied with an "@index" key. The value of that key must map to an IRI, which identifies the semantic property linking each object to its key. @@ -7574,7 +7573,7 @@

Using the Document Base for the Default Vocabulary

-

If the processing mode is set to json-ld-1.1, +

Unless the processing mode is set to `json-ld-1.0`, the special index @none is used for indexing strings which do not have a language; this is useful to maintain a normalized representation for string values not having a datatype.

@@ -8010,8 +8009,7 @@

Using the Document Base for the Default Vocabulary

-

Id maps are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Id maps are a new feature in JSON-LD 1.1.

Node Type Indexing

@@ -8339,8 +8337,7 @@

Using the Document Base for the Default Vocabulary

As with id maps, when used with @type, a container may also include @set to ensure that key values are always contained in an array.

-

Type maps are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Type maps are a new feature in JSON-LD 1.1.

@@ -9317,8 +9314,7 @@

Graph Containers

associated with the named graph, which exists separately within the dataset.

-

Graph Containers are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Graph Containers are a new feature in JSON-LD 1.1.

Named Graph Data Indexing

@@ -9575,8 +9571,7 @@

Graph Containers

--> -

Named Graph Data Indexing is a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Named Graph Data Indexing is a new feature in JSON-LD 1.1.

Named Graph Indexing

@@ -9859,8 +9854,7 @@

Graph Containers

-

Graph Containers are a new feature in JSON-LD 1.1, requiring - processing mode set to json-ld-1.1.

+

Graph Containers are a new feature in JSON-LD 1.1.

@@ -13617,6 +13611,8 @@

Changes since JSON-LD Community Group Final Report

retrieving a JSON-LD document when the returned document is not JSON.
  • Value objects, and associated context and term definitions have been updated to support `@direction` for setting the base direction of strings.
  • +
  • The processing mode is now implicitly `json-ld-1.1`, unless set + explicitly to `json-ld-1.0`.