@@ -614,6 +614,9 @@ <h2>Syntax Tokens and Keywords</h2>
614
614
(other than for <a>type-scoped contexts</a>, which default to `false`).
615
615
Setting this to `false` causes term definitions created within that context
616
616
to be removed when entering a new <a>node object</a>.</dd>
617
+ <dt class="changed">`@protected`</dt><dd class="changed">
618
+ Used to prevent <a>term definitions</a> of a context to be overriden by other contexts.
619
+ This keyword is described in <a class="sectionRef" href="#protected-term-definitions"></a>.
617
620
<dt class="changed">`@import`</dt><dd class="changed">
618
621
Used in a <a>context definition</a> to load an external context
619
622
within which the containing <a>context definition</a> is merged.
@@ -12156,28 +12159,47 @@ <h2>Context Definitions</h2>
12156
12159
12157
12160
<p>A <a>context definition</a> MUST be a <a>map</a> whose
12158
12161
keys MUST be either <a>terms</a>, <a>compact IRIs</a>, <a>absolute IRIs</a>,
12159
- or one of the <a>keywords</a> <code>@language</code>, <code>@base</code>,
12160
- <code class="changed">@type</code>, <code>@vocab</code>, or <code class="changed">@version</code>.</p>
12161
-
12162
- <p>If the <a>context definition</a> has an <code>@language</code> key,
12163
- its value MUST have the <a data-cite="BCP47#section-2.1.1">lexical form</a> described in [[BCP47]] or be <a>null</a>.</p>
12162
+ or one of the <a>keywords</a>
12163
+ <code>@base</code>,
12164
+ <code class="changed">@import</code>,
12165
+ <code>@language</code>,
12166
+ <code class="changed">@propagate</code>,
12167
+ <code class="changed">@protected</code>,
12168
+ <code class="changed">@type</code>,
12169
+ <code class="changed">@version</code>.
12170
+ or <code>@vocab</code>.
12171
+ </p>
12164
12172
12165
12173
<p>If the <a>context definition</a> has an <code>@base</code> key,
12166
12174
its value MUST be an <a>absolute IRI</a>, a <a>relative IRI</a>,
12167
12175
or <a>null</a>.</p>
12168
12176
12177
+ <p>If the <a>context definition</a> has an <code>@language</code> key,
12178
+ its value MUST have the <a data-cite="BCP47#section-2.1.1">lexical form</a> described in [[BCP47]] or be <a>null</a>.</p>
12179
+
12180
+ <p class="changed">If a <a>context</a> contains the <code>@import</code>
12181
+ <a>keyword</a>, its value MUST be an <a>absolute IRI</a> or <a>relative IRI</a>.
12182
+ When used as a reference from an `@import`, the referenced <a>context definition</a> MUST NOT
12183
+ include an `@import` key, itself.</p>
12184
+
12185
+ <p class="changed">If the <a>context definition</a> has an <code>@propagate</code> key,
12186
+ its value MUST be <code>true</code> or <code>false</code>.</p>
12187
+
12188
+ <p class="changed">If the <a>context definition</a> has an <code>@protected</code> key,
12189
+ its value MUST be <code>true</code> or <code>false</code>.</p>
12190
+
12169
12191
<p class="changed">If the <a>context definition</a> has an <code>@type</code> key,
12170
12192
its value MUST be a <a>map</a> with the single <a>entry</a> <code>@container</code> set to <code>@set</code>.</p>
12171
12193
12194
+ <p class="changed">If the <a>context definition</a> has an <code>@version</code> key,
12195
+ its value MUST be a <a>number</a> with the value <code>1.1</code>.</p>
12196
+
12172
12197
<p>If the <a>context definition</a> has an <code>@vocab</code> key,
12173
12198
its value MUST be a <a>absolute IRI</a>, a <a>compact IRI</a>,
12174
12199
a <a>blank node identifier</a>,
12175
12200
<span class="changed">a <a>relative IRI</a></span>,
12176
12201
a <a>term</a>, or <a>null</a>.</p>
12177
12202
12178
- <p class="changed">If the <a>context definition</a> has an <code>@version</code> key,
12179
- its value MUST be a <a>number</a> with the value <code>1.1</code>.</p>
12180
-
12181
12203
<p>The value of keys that are not <a>keywords</a> MUST be either an
12182
12204
<a>absolute IRI</a>, a <a>compact IRI</a>, a <a>term</a>,
12183
12205
a <a>blank node identifier</a>, a <a>keyword</a>, <a>null</a>,
@@ -12191,14 +12213,13 @@ <h2>Context Definitions</h2>
12191
12213
<p>An <a>expanded term definition</a> MUST be a <a>map</a>
12192
12214
composed of zero or more keys from
12193
12215
<code>@id</code>,
12194
- <code class="changed">@import</code>,
12195
12216
<code>@reverse</code>,
12196
12217
<code>@type</code>,
12197
12218
<code>@language</code>,
12198
12219
<code>@container</code>,
12199
12220
<code class="changed">@context</code>,
12200
- <code class="changed">@prefix</code>, or
12201
- <code class="changed">@propagate </code>.
12221
+ <code class="changed">@prefix</code>,
12222
+ <code class="changed">@protected </code>.
12202
12223
An <a>expanded term definition</a> SHOULD NOT contain any other keys.</p>
12203
12224
12204
12225
<p>If the term being defined is not a <a>compact IRI</a> or
@@ -12265,14 +12286,9 @@ <h2>Context Definitions</h2>
12265
12286
<p class="changed">If the <a>expanded term definition</a> contains the <code>@prefix</code>
12266
12287
<a>keyword</a>, its value MUST be <code>true</code> or <code>false</code>.</p>
12267
12288
12268
- <p class="changed">If the <a>expanded term definition</a> contains the <code>@propagate </code>
12289
+ <p class="changed">If the <a>expanded term definition</a> contains the <code>@protected </code>
12269
12290
<a>keyword</a>, its value MUST be <code>true</code> or <code>false</code>.</p>
12270
12291
12271
- <p class="changed">If a <a>context</a> contains the <code>@import</code>
12272
- <a>keyword</a>, its value MUST be an <a>absolute IRI</a> or <a>relative IRI</a>.
12273
- When used as a reference from an `@import`, the referenced <a>context definition</a> MUST NOT
12274
- include an `@import` key, itself.</p>
12275
-
12276
12292
<p><a>Terms</a> MUST NOT be used in a circular manner. That is,
12277
12293
the definition of a term cannot depend on the definition of another term if that other
12278
12294
term also depends on the first term.</p>
@@ -12406,6 +12422,12 @@ <h2>Keywords</h2>
12406
12422
Its value MUST be <code>true</code> or <code>false</code>.
12407
12423
See <a class="sectionRef" href="#context-propagation"></a> for a further discussion.
12408
12424
</dd>
12425
+ <dt class="changed">`@protected`</dt><dd class="changed">
12426
+ The `@protected` keyword MUST NOT be aliased, and MAY be used in a <a>context definition</a>,
12427
+ or an <a>expanded term definition</a>.
12428
+ Its value MUST be <code>true</code> or <code>false</code>.
12429
+ See <a class="sectionRef" href="#protected-term-definitions"></a> for a further discussion.
12430
+ </dd>
12409
12431
<dt><code>@reverse</code></dt><dd>
12410
12432
The <code>@reverse</code> keyword MAY be aliased and MAY be used as a key in a <a>node object</a>.
12411
12433
The unaliased <code>@reverse</code> MAY be used as a key in an <a>expanded term definition</a>.
0 commit comments