@@ -2535,6 +2535,27 @@ <h3>Using the Document Base as the Default Vocabulary</h3>
2535
2535
< a > keywords</ a > have been given the aliases
2536
2536
< strong > url</ strong > and < strong > a</ strong > , respectively.</ p >
2537
2537
2538
+ < p > < span class ="changed "> Other than for < code > @type</ code > ,</ span > properties of
2539
+ < a > expanded term definitions</ a > where the term is a < a > keyword</ a > are be ignored.</ p >
2540
+
2541
+ < p class ="changed "> When < a > processing mode</ a > is set to < code > json-ld-1.1</ code > ,
2542
+ < code > @type</ code > may be used with an < a > expanded term definition</ a > with < code > @container</ code > set
2543
+ to < code > @set</ code > ; no other members may be set within such an < a > expanded term definition</ a > .
2544
+ This is used by the < a data-cite ="JSON-LD11-API#compaction-algorithm "> Compaction algorithm</ a > to ensure that the values of @type (or an alias)
2545
+ are always represented in an < a > array</ a > .</ p >
2546
+
2547
+ < pre class ="example " data-transform ="updateExample " title ="Setting @container: @set on @type ">
2548
+ <!--
2549
+ {
2550
+ "@context": {
2551
+ "@version": 1.1,
2552
+ "@type": {"@container": "@set"}
2553
+ },
2554
+ "@type": ["http:/example.org/type"]
2555
+ }
2556
+ -->
2557
+ </ pre >
2558
+
2538
2559
< p > Since keywords cannot be redefined, they can also not be aliased to
2539
2560
other keywords.</ p >
2540
2561
@@ -8999,7 +9020,7 @@ <h2>Context Definitions</h2>
8999
9020
< p > A < a > context definition</ a > MUST be a < a > dictionary</ a > whose
9000
9021
keys MUST be either < a > terms</ a > , < a > compact IRIs</ a > , < a > absolute IRIs</ a > ,
9001
9022
or one of the < a > keywords</ a > < code > @language</ code > , < code > @base</ code > ,
9002
- < code > @vocab</ code > , or < code class ="changed "> @version</ code > .</ p >
9023
+ < code class =" changed " > @type </ code > , < code > @vocab</ code > , or < code class ="changed "> @version</ code > .</ p >
9003
9024
9004
9025
< p > If the < a > context definition</ a > has an < code > @language</ code > key,
9005
9026
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 >
@@ -9008,6 +9029,9 @@ <h2>Context Definitions</h2>
9008
9029
its value MUST be an < a > absolute IRI</ a > , a < a > relative IRI</ a > ,
9009
9030
or < a > null</ a > .</ p >
9010
9031
9032
+ < p class ="changed "> If the < a > context definition</ a > has an < code > @type</ code > key,
9033
+ its value MUST be a < a > dictionary</ a > with the single member < code > @context</ code > with value < code > @set</ code > .</ p >
9034
+
9011
9035
< p > If the < a > context definition</ a > has an < code > @vocab</ code > key,
9012
9036
its value MUST be a < a > absolute IRI</ a > , a < a > compact IRI</ a > ,
9013
9037
a < a > blank node identifier</ a > ,
@@ -9840,14 +9864,18 @@ <h2>Changes since 1.0 Recommendation of 16 January 2014</h2>
9840
9864
a context. When this is set, vocabulary-relative IRIs, such as the
9841
9865
keys of < a > node objects</ a > , are expanded or compacted relative
9842
9866
to the < a > base IRI</ a > using string concatenation.</ li >
9843
- < li > < a > Lists</ a > may now have items which are themselves < a > lists</ a > .</ li >
9844
9867
</ ul >
9868
+ < p > Additionally, see < a href ="#changes-from-cg " class ="sectionRef "> </ a > .</ p >
9845
9869
</ section >
9846
9870
9847
9871
< section class ="appendix informative " id ="changes-from-cg ">
9848
9872
< h2 > Changes since JSON-LD Community Group Final Report</ h2 >
9849
9873
< ul >
9850
9874
< li > < a > Lists</ a > may now have items which are themselves < a > lists</ a > .</ li >
9875
+ < li > Values of < code > @type</ code > , or an alais of < code > @type</ code > , may now have their < code > @container</ code > set to @set
9876
+ to ensure that < code > @type</ code > members are always represented as an array. This
9877
+ also allows a term to be defined for < code > @type</ code > , where the value MUST be a < a > dictionary</ a >
9878
+ with < code > @container</ code > set to < code > @set</ code > .</ li >
9851
9879
</ ul >
9852
9880
</ section >
9853
9881
0 commit comments