From ad3182c912d8dd1deb4fdaf17eadaa2a89d0a9f6 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Thu, 11 Jul 2019 16:45:16 -0700 Subject: [PATCH 1/9] Gratuitous change to overcome mistaken commit to master. --- index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/index.html b/index.html index 99878fc9..5065fff0 100644 --- a/index.html +++ b/index.html @@ -2969,7 +2969,6 @@

Using the Document Base for the Default Vocabulary

Aliasing Keywords

-

Each of the JSON-LD keywords, except for @context, may be aliased to application-specific keywords. This feature allows legacy JSON content to be utilized From 39ca24f6b2d52e12e14feba242118770910f775f Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Thu, 11 Jul 2019 16:48:29 -0700 Subject: [PATCH 2/9] Add section for `@propagate` and stub for `@source`. For #174. (cherry picked from commit f5b8a222e3e23fe898f4dfce178a64d657155ad5) --- Gemfile | 2 + Gemfile.lock | 23 +++-- common/extract-examples.rb | 1 + index.html | 183 ++++++++++++++++++++++++++++++++----- 4 files changed, 177 insertions(+), 32 deletions(-) diff --git a/Gemfile b/Gemfile index 37e747e2..8eba7cb6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,8 +1,10 @@ source "https://rubygems.org" gem 'json-ld', github: 'ruby-rdf/json-ld', branch: 'develop' +gem 'json-ld-preloaded' gem 'nokogiri' gem 'nokogumbo' gem 'linkeddata' gem 'colorize' gem 'rake' +gem 'byebug' diff --git a/Gemfile.lock b/Gemfile.lock index 19b35316..d611bdbb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: git://github.com/ruby-rdf/json-ld.git - revision: 74a05a9f623c5a9e02cbe42f053f9d09181fee97 + revision: 813e1ff914cc1a1025db14de392fd738b4cbb674 branch: develop specs: json-ld (3.0.2) @@ -18,6 +18,7 @@ GEM bcp47 (0.3.3) i18n builder (3.2.3) + byebug (11.0.1) colorize (0.8.1) concurrent-ruby (1.1.5) connection_pool (2.2.2) @@ -26,7 +27,7 @@ GEM sxp (~> 1.0) equivalent-xml (0.6.0) nokogiri (>= 1.4.3) - haml (5.0.4) + haml (5.1.1) temple (>= 0.8.0) tilt hamster (3.0.0) @@ -73,13 +74,13 @@ GEM sparql-client (~> 3.0) mini_portile2 (2.4.0) multi_json (1.13.1) - net-http-persistent (3.0.0) + net-http-persistent (3.0.1) connection_pool (~> 2.2) nokogiri (1.10.3) mini_portile2 (~> 2.4.0) nokogumbo (1.5.0) nokogiri - public_suffix (3.0.3) + public_suffix (3.1.1) rack (2.0.7) rake (12.3.2) rdf (3.0.12) @@ -113,17 +114,17 @@ GEM rdf (>= 2.2, < 4.0) rdf-rdfa (>= 2.2, < 4.0) rdf-xsd (>= 2.2, < 4.0) - rdf-reasoner (0.5.1) + rdf-reasoner (0.5.2) rdf (~> 3.0) rdf-vocab (~> 3.0) rdf-xsd (~> 3.0) - rdf-tabular (2.2.1) + rdf-tabular (2.2.2) addressable (~> 2.3) bcp47 (~> 0.3, >= 0.3.3) json-ld (>= 2.1, < 4.0) - rdf (>= 2.2, < 4.0) - rdf-vocab (>= 2.2, < 4.0) - rdf-xsd (>= 2.2, < 4.0) + rdf (~> 3.0) + rdf-vocab (~> 3.0) + rdf-xsd (~> 3.0) rdf-trig (3.0.1) ebnf (~> 1.1) rdf (~> 3.0) @@ -133,7 +134,7 @@ GEM rdf-turtle (3.0.6) ebnf (~> 1.1) rdf (~> 3.0) - rdf-vocab (3.0.5) + rdf-vocab (3.0.7) rdf (~> 3.0, >= 3.0.11) rdf-xsd (3.0.1) rdf (~> 3.0) @@ -165,8 +166,10 @@ PLATFORMS ruby DEPENDENCIES + byebug colorize json-ld! + json-ld-preloaded linkeddata nokogiri nokogumbo diff --git a/common/extract-examples.rb b/common/extract-examples.rb index a1890632..44fc8eb3 100755 --- a/common/extract-examples.rb +++ b/common/extract-examples.rb @@ -10,6 +10,7 @@ # - @data-options indicates the comma-separated option/value pairs to pass to the processor require 'getoptlong' require 'json' +require 'json/ld/preloaded' require 'nokogiri' require 'linkeddata' require 'fileutils' diff --git a/index.html b/index.html index 5065fff0..913aa141 100644 --- a/index.html +++ b/index.html @@ -591,9 +591,19 @@

Syntax Tokens and Keywords

Used as the @type value of a JSON literal. This keyword is described in . -
:
-
The separator for JSON keys and values that use - compact IRIs.
+
:
+ The separator for JSON keys and values that use compact IRIs.
+
`@propagate`
+ Used in a context definition to change the sccope of that context. + By default, it is `true`, + meaning that contexts propagate across node objects + (other than for type-scoped contexts, which default to `false`). + Setting this to `false` causes term definitions created within that context + to be removed when entering a new node object.
+
`@source`
+ Used in a context definition to load an external context + within which the containing context definition is merged. + This can be useful to add JSON-LD 1.1 features to JSON-LD 1.0 contexts.

All keys, keywords, and values in JSON-LD are case-sensitive.

@@ -3408,7 +3418,9 @@

Using the Document Base for the Default Vocabulary

different things depending on the context. A context scoped on @type is only in effect for the node object on which the type is used; the previous in-scope contexts are placed back into - effect when traversing into another node object.

+ effect when traversing into another node object. + As described further in , + this may be controlled using the `@propagate` keyword.

Any property-scoped or local contexts that were introduced in the node object would still be in effect when traversing into another node object.

@@ -3520,6 +3532,103 @@

Using the Document Base for the Default Vocabulary

processing mode set to json-ld-1.1.

+

Context Propagation

+

Once introduced, contexts remain in effect until a subsequent + context removes it by setting `@context` to `null`, + or by redefining terms, + with the exception of type-scoped contexts, + which limits the affect of that context until the next node object is entered. + This behavior can be changed using the `@propagate` keyword.

+ +

The following example illustrates how terms defined in a context with `@propagate` set to `false` + are effectively removed when descending into new node object.

+ + + +

Contexts included within an array must all have the same value for `@propagate` + due to the way that rollback is defined in [[[JSON-LD11-API]]].

+
+ +

Sourced Contexts

+
+

Protected Term Definitions

JSON-LD is used in many specifications as the specified data format. However, there is also a desire to allow some JSON-LD contents to be processed as plain JSON, @@ -11713,10 +11822,12 @@

Context Definitions

@reverse, @type, @language, + @container, @context, - @prefix, or - @container. An - expanded term definition SHOULD NOT contain any other keys.

+ @prefix, + @propagate, or + @source. + An expanded term definition SHOULD NOT contain any other keys.

If the term being defined is not a compact IRI or absolute IRI and the active context does not have an @@ -11782,6 +11893,12 @@

Context Definitions

If the expanded term definition contains the @prefix keyword, its value MUST be true or false.

+

If the expanded term definition contains the @propagate + keyword, its value MUST be true or false.

+ +

If the expanded term definition contains the @source + keyword, its value MUST be an absolute IRI or relative IRI.

+

Terms MUST NOT be used in a circular manner. That is, the definition of a term cannot depend on the definition of another term if that other term also depends on the first term.

@@ -11789,7 +11906,7 @@

Context Definitions

See for further discussion on contexts.

-
+

Keywords

JSON-LD keywords are described in , this section describes where each keyword may appear within different JSON-LD structures.

@@ -11806,17 +11923,17 @@

Keywords

@set, @language, @index, - @id, - @graph, - @type, or be + @id, + @graph, + @type, or be null, - or an array containing exactly any one of those keywords, or a - combination of @set and any of @index, - @id, @graph, @type, - @language in any order. - The value may also be an array - containing @graph along with either @id or - @index and also optionally including @set. + or an array containing exactly any one of those keywords, or a + combination of @set and any of @index, + @id, @graph, @type, + @language in any order. + The value may also be an array + containing @graph along with either @id or + @index and also optionally including @set.
@context
The @context keyword MUST NOT be aliased, and MAY be used as a key in the following objects: @@ -11836,6 +11953,12 @@

Keywords

a context definition, or an array composed of any of these.
+
`@graph`
+ The `@graph` keyword MAY be aliased and MAY be used as a key in a node object or a graph object. + The unaliased `@graph` MAY be used as the value of the @container key within an expanded term definition. + The value of the `@graph` key MUST be a value object, node object, or an array of either value objects or node objects. + See . +
@id
The @id keyword MAY be aliased and MAY be used as a key in a node object or a graph object. The unaliased @id MAY be used as a key in an expanded term definition, @@ -11878,7 +12001,7 @@

Keywords

See for further discussion on sets and lists.

-
@nest
+
@nest
The @nest keyword MAY be aliased and MAY be used as a key in a node object. The unaliased @nest MAY be used as the value of a simple term definition, or as a key in an expanded term definition. @@ -11887,7 +12010,7 @@

Keywords

Its value MUST be a string. See for a further discussion.
-
@none
+
@none
The @none keyword MAY be aliased and MAY be used as a key in an index map, id map, language map, type map. See , @@ -11897,13 +12020,18 @@

Keywords

, or for a further discussion.
-
@prefix
+
@prefix
The @prefix keyword MUST NOT be aliased, and MAY be used as a key in an expanded term definition. Its value MUST be true or false. See and for a further discussion.
+
`@propagate`
+ The `@propagate` keyword MUST NOT be aliased, and MAY be used in a context definition. + Its value MUST be true or false. + See for a further discussion. +
@reverse
The @reverse keyword MAY be aliased and MAY be used as a key in a node object. The unaliased @reverse MAY be used as a key in an expanded term definition. @@ -11929,6 +12057,11 @@

Keywords

See for further discussion on sets and lists.

+
`@source`
+ The `@source` keyword MUST NOT be aliased, and MAY be used in a context definition. + Its value MUST be an absolute IRI or relative IRI. + See for a further discussion. +
@type
The @type keyword MAY be aliased and MAY be used as a key in a node object or a value object. The unaliased @type MAY be used as a key in an expanded term definition, @@ -11944,7 +12077,7 @@

Keywords

Its value key MUST be either a string, a number, true, false or null. This keyword is described further in .
-
@version
+
@version
The @version keyword MUST NOT be aliased and MAY be used as a key in a context definition. Its value MUST be a number with the value 1.1. This keyword is described further in . @@ -12875,6 +13008,12 @@

Changes since JSON-LD Community Group Final Report

to limit the ability of other contexts to override them.
  • A context defined in an expanded term definition may also be used for values of @type, which defines a context to use for node objects including the associated type.
  • +
  • By default, all contexts are propagated when traversing node objects, other than + type-scoped contexts. This can be controlled using the @propagate + entry in a local context.
  • +
  • A context may contain a @source entry used to reference a remote context + within a context, allowing JSON-LD 1.1 features to be added to contexts originally + authored for JSON-LD 1.0.
  • From 4e2e2f289c10ad2b7bc61d471d303fff3d7af82d Mon Sep 17 00:00:00 2001 From: Dave Longley Date: Fri, 12 Jul 2019 11:31:25 -0400 Subject: [PATCH 3/9] Add sourced context section. --- index.html | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/index.html b/index.html index 913aa141..ca64b113 100644 --- a/index.html +++ b/index.html @@ -3627,6 +3627,151 @@

    Using the Document Base for the Default Vocabulary

    Sourced Contexts

    +

    JSON-LD 1.0 included a mechanisms for modifying the context that + is in effect. This included the capability to load and process a remote + context and then apply further changes to it via new contexts. +

    + +

    However, with the introduction of JSON-LD 1.1, it is also desirable to + be able to load a remote context, in particular an existing JSON-LD + 1.0 context, and apply JSON-LD 1.1 features to it prior to + processing.

    + +

    By using the `@source` keyword in a context, another remote + context, referred to as a sourced context, can be loaded and + modified prior to processing. The modifications are expressed in the + context that includes the `@source` keyword, referred to as the + wrapping context. Once a sourced context is loaded, the + contents of the wrapping context are merged into it prior to + processing. The merge operation will cause each key-value pair in the + wrapping context to be added to the loaded sourced context, + key-value pairs taking precedence.

    + +

    By enabling existing contexts to be reused and edited inline prior + to processing, context-wide keywords can be applied to adjust all term + definitions in the sourced context. Similarly, term definitions can + be replaced prior to processing, enabling adjustments that, for instance, ensure term + definitions match previously protected terms or that they include + additional type coercion information.

    + +

    The following example illustrates how `@source` can be used to express + a type-scoped context that loads a sourced context and + sets `@propagate` to `true`.

    + +

    Suppose there was a context that could be referenced remotely + via the URL http://example.org/remote-context:

    + +
    +  
    +  
    + +

    A wrapping context could be used to source it and modify it:

    + +
    +  
    +  
    + +

    The effect would be the same as if the entire sourced context + had been copied into the type-scoped context:

    + +
    +  
    +  
    + +

    Similarly, the wrapping context may replace term definitions or + set other context-wide keywords that may effect how the sourced + context term definitions will be processed:

    + +
    +  
    +  
    + +

    Again, the effect would be the same as if the entire sourced context + had been copied into the type-scoped context:

    + +
    +  
    +  
    + +

    The result of loading a sourced contexts must be + an object, not an array.

    Protected Term Definitions

    From cd33b8293e82a30cd3d2eefa54598ccf48506fa8 Mon Sep 17 00:00:00 2001 From: Dave Longley Date: Fri, 12 Jul 2019 11:48:16 -0400 Subject: [PATCH 4/9] Fix typo. --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index ca64b113..a5e0f7e7 100644 --- a/index.html +++ b/index.html @@ -3627,7 +3627,7 @@

    Using the Document Base for the Default Vocabulary

    Sourced Contexts

    -

    JSON-LD 1.0 included a mechanisms for modifying the context that +

    JSON-LD 1.0 included mechanisms for modifying the context that is in effect. This included the capability to load and process a remote context and then apply further changes to it via new contexts.

    From 0767e74260244497464e40b8890089611bb9675c Mon Sep 17 00:00:00 2001 From: Dave Longley Date: Fri, 12 Jul 2019 11:49:52 -0400 Subject: [PATCH 5/9] Fix missing text. --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index a5e0f7e7..9c95f581 100644 --- a/index.html +++ b/index.html @@ -3645,7 +3645,7 @@

    Using the Document Base for the Default Vocabulary

    contents of the wrapping context are merged into it prior to processing. The merge operation will cause each key-value pair in the wrapping context to be added to the loaded sourced context, - key-value pairs taking precedence.

    + with the wrapping context key-value pairs taking precedence.

    By enabling existing contexts to be reused and edited inline prior to processing, context-wide keywords can be applied to adjust all term From 82b117130c1ca942b845a6ce4aa0f85575bb35fb Mon Sep 17 00:00:00 2001 From: Dave Longley Date: Fri, 12 Jul 2019 11:51:53 -0400 Subject: [PATCH 6/9] Fix lead-in to examples. --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 9c95f581..7fc1e116 100644 --- a/index.html +++ b/index.html @@ -3654,9 +3654,9 @@

    Using the Document Base for the Default Vocabulary

    definitions match previously protected terms or that they include additional type coercion information.

    -

    The following example illustrates how `@source` can be used to express +

    The following examples illustrate how `@source` can be used to express a type-scoped context that loads a sourced context and - sets `@propagate` to `true`.

    + sets `@propagate` to `true` and how to make similar modifications.

    Suppose there was a context that could be referenced remotely via the URL http://example.org/remote-context:

    From d5ff9c448d982fa0d17e7478c10721e468491321 Mon Sep 17 00:00:00 2001 From: Dave Longley Date: Fri, 12 Jul 2019 11:54:04 -0400 Subject: [PATCH 7/9] Clean up sourced context example comments. --- index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 7fc1e116..d76ed5b9 100644 --- a/index.html +++ b/index.html @@ -3735,12 +3735,12 @@

    Using the Document Base for the Default Vocabulary

    "@version": 1.1, "@source": "https://example.org/remote-context", "@vocab": "http://example.org/vocab#", - #### ↑ This will replace any previous @vocab definition prior to processing it at all#### + #### ↑ This will replace any previous @vocab definition prior to processing it#### "term1": { "@id": "http://example.org/vocab#term1", "@type": "http://www.w3.org/2001/XMLSchema#integer" } - #### ↑ This will replace the old term1 definition prior to processing it at all#### + #### ↑ This will replace the old term1 definition prior to processing it#### } } --> @@ -3760,10 +3760,10 @@

    Using the Document Base for the Default Vocabulary

    "term1": { "@id": "http://example.org/vocab#term1", "@type": "http://www.w3.org/2001/XMLSchema#integer" - } + }, #### ↑ Note term1 has been replaced prior to processing#### - "term2": "http://example.com/vocab#term2",####, - ...#### + "term2": "http://example.com/vocab#term2",#### + ...,#### "@vocab": "http://example.org/vocab#" } } From 0384304f883c7ee537c0fc0b9a10674c12adbc94 Mon Sep 17 00:00:00 2001 From: Dave Longley Date: Fri, 12 Jul 2019 11:56:15 -0400 Subject: [PATCH 8/9] Fix typo. --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index d76ed5b9..b660b6ed 100644 --- a/index.html +++ b/index.html @@ -3747,7 +3747,7 @@

    Using the Document Base for the Default Vocabulary

    Again, the effect would be the same as if the entire sourced context - had been copied into the type-scoped context:

    + had been copied into the context:

    
    From 63216c84ab658f44504397c78251f84dee2349fa Mon Sep 17 00:00:00 2001
    From: Gregg Kellogg 
    Date: Fri, 12 Jul 2019 12:09:02 -0700
    Subject: [PATCH 9/9] Update `@source` to `@import`.
    
    ---
     Gemfile.lock |  6 +++---
     index.html   | 56 ++++++++++++++++++++++++++--------------------------
     2 files changed, 31 insertions(+), 31 deletions(-)
    
    diff --git a/Gemfile.lock b/Gemfile.lock
    index d611bdbb..37866348 100644
    --- a/Gemfile.lock
    +++ b/Gemfile.lock
    @@ -1,6 +1,6 @@
     GIT
    -  remote: git://github.com/ruby-rdf/json-ld.git
    -  revision: 813e1ff914cc1a1025db14de392fd738b4cbb674
    +  remote: https://github.com/ruby-rdf/json-ld.git
    +  revision: 74095b73cdb722b681f34d0f165599c9cb48d844
       branch: develop
       specs:
         json-ld (3.0.2)
    @@ -176,4 +176,4 @@ DEPENDENCIES
       rake
     
     BUNDLED WITH
    -   1.17.3
    +   2.0.2
    diff --git a/index.html b/index.html
    index b660b6ed..1e73b713 100644
    --- a/index.html
    +++ b/index.html
    @@ -600,7 +600,7 @@ 

    Syntax Tokens and Keywords

    (other than for type-scoped contexts, which default to `false`). Setting this to `false` causes term definitions created within that context to be removed when entering a new node object. -
    `@source`
    +
    `@import`
    Used in a context definition to load an external context within which the containing context definition is merged. This can be useful to add JSON-LD 1.1 features to JSON-LD 1.0 contexts.
    @@ -3626,7 +3626,7 @@

    Using the Document Base for the Default Vocabulary

    due to the way that rollback is defined in [[[JSON-LD11-API]]].

    -

    Sourced Contexts

    +

    Imported Contexts

    JSON-LD 1.0 included mechanisms for modifying the context that is in effect. This included the capability to load and process a remote context and then apply further changes to it via new contexts. @@ -3637,39 +3637,39 @@

    Using the Document Base for the Default Vocabulary

    1.0 context, and apply JSON-LD 1.1 features to it prior to processing.

    -

    By using the `@source` keyword in a context, another remote - context, referred to as a sourced context, can be loaded and +

    By using the `@import` keyword in a context, another remote + context, referred to as an imported context, can be loaded and modified prior to processing. The modifications are expressed in the - context that includes the `@source` keyword, referred to as the - wrapping context. Once a sourced context is loaded, the + context that includes the `@import` keyword, referred to as the + wrapping context. Once an imported context is loaded, the contents of the wrapping context are merged into it prior to processing. The merge operation will cause each key-value pair in the - wrapping context to be added to the loaded sourced context, + wrapping context to be added to the loaded imported context, with the wrapping context key-value pairs taking precedence.

    By enabling existing contexts to be reused and edited inline prior to processing, context-wide keywords can be applied to adjust all term - definitions in the sourced context. Similarly, term definitions can + definitions in the imported context. Similarly, term definitions can be replaced prior to processing, enabling adjustments that, for instance, ensure term definitions match previously protected terms or that they include additional type coercion information.

    -

    The following examples illustrate how `@source` can be used to express - a type-scoped context that loads a sourced context and +

    The following examples illustrate how `@import` can be used to express + a type-scoped context that loads an imported context and sets `@propagate` to `true` and how to make similar modifications.

    Suppose there was a context that could be referenced remotely - via the URL http://example.org/remote-context:

    + via the URL https://json-ld.org/contexts/remote-context.jsonld:

    +       title="A remote context to be imported in a type-scoped context">
       
       
    -

    The effect would be the same as if the entire sourced context +

    The effect would be the same as if the entire imported context had been copied into the type-scoped context:

    Using the Document Base for the Default Vocabulary
               "Type1": "http://example.com/vocab/Type1",
               "Type2": "http://example.com/vocab/Type2",
               "term1": "http://example.com/vocab#term1",
    -          "term2": "http://example.com/vocab#term2",####,
    +          "term2": "http://example.com/vocab#term2",####
               ...####
               "@propagate": true
             }
    @@ -3724,7 +3724,7 @@ 

    Using the Document Base for the Default Vocabulary

    Similarly, the wrapping context may replace term definitions or - set other context-wide keywords that may effect how the sourced + set other context-wide keywords that may effect how the imported context term definitions will be processed:

    Using the Document Base for the Default Vocabulary
       {
         "@context": {
           "@version": 1.1,
    -      "@source": "https://example.org/remote-context",
    +      "@import": "https://json-ld.org/contexts/remote-context.jsonld",
           "@vocab": "http://example.org/vocab#",
           #### ↑ This will replace any previous @vocab definition prior to processing it####
           "term1": {
    @@ -3746,7 +3746,7 @@ 

    Using the Document Base for the Default Vocabulary

    -->
    -

    Again, the effect would be the same as if the entire sourced context +

    Again, the effect would be the same as if the entire imported context had been copied into the context:

    Using the Document Base for the Default Vocabulary
       -->
       
    -

    The result of loading a sourced contexts must be +

    The result of loading imported contexts must be an object, not an array.

    @@ -11964,14 +11964,14 @@

    Context Definitions

    An expanded term definition MUST be a map composed of zero or more keys from @id, + @import, @reverse, @type, @language, @container, @context, - @prefix, - @propagate, or - @source. + @prefix, or + @propagate. An expanded term definition SHOULD NOT contain any other keys.

    If the term being defined is not a compact IRI or @@ -12041,7 +12041,7 @@

    Context Definitions

    If the expanded term definition contains the @propagate keyword, its value MUST be true or false.

    -

    If the expanded term definition contains the @source +

    If the expanded term definition contains the @import keyword, its value MUST be an absolute IRI or relative IRI.

    Terms MUST NOT be used in a circular manner. That is, @@ -12202,10 +12202,10 @@

    Keywords

    See for further discussion on sets and lists.

    -
    `@source`
    - The `@source` keyword MUST NOT be aliased, and MAY be used in a context definition. +
    `@import`
    + The `@import` keyword MUST NOT be aliased, and MAY be used in a context definition. Its value MUST be an absolute IRI or relative IRI. - See for a further discussion. + See for a further discussion.
    @type
    The @type keyword MAY be aliased and MAY be used as a key in a node object or a value object. @@ -13156,7 +13156,7 @@

    Changes since JSON-LD Community Group Final Report

  • By default, all contexts are propagated when traversing node objects, other than type-scoped contexts. This can be controlled using the @propagate entry in a local context.
  • -
  • A context may contain a @source entry used to reference a remote context +
  • A context may contain an @import entry used to reference a remote context within a context, allowing JSON-LD 1.1 features to be added to contexts originally authored for JSON-LD 1.0.