@@ -1139,7 +1139,7 @@ <h2>Create Term Definition</h2>
1139
1139
< section class ="informative ">
1140
1140
< h3 > Overview</ h3 >
1141
1141
1142
- < p > < a > term definitions</ a > are created by
1142
+ < p > < a > Term definitions</ a > are created by
1143
1143
parsing the information in the given < a > local context</ a > for the
1144
1144
given < a > term</ a > . If the given < a > term</ a > is a
1145
1145
< a > compact IRI</ a > , it may omit an < a > IRI mapping</ a > by
@@ -1179,14 +1179,21 @@ <h3>Algorithm</h3>
1179
1179
< li > Set the value associated with < var > defined</ var > 's < var > term</ var > < a > member</ a > to
1180
1180
< code > false</ code > . This indicates that the < a > term definition</ a >
1181
1181
is now being created but is not yet complete.</ li >
1182
- < li > Since < a > keywords</ a > cannot be overridden,
1183
- < var > term</ var > must not be a < a > keyword</ a > . Otherwise, a
1182
+ < li > Initialize < var > value</ var > to a copy of the value associated with the < a > member</ a >
1183
+ < var > term</ var > in < var > local context</ var > .</ li >
1184
+ < li class ="changed "> If < a data-link-for ="JsonLdOptions "> processingMode</ a >
1185
+ is < code > json-ld-1.1</ code >
1186
+ and < var > term</ var > is < code > @type</ code > , < var > value</ var >
1187
+ MUST be a < a > dictionary</ a > with the member < code > @container</ code >
1188
+ and value < code > @set</ code > . Any other value means that a
1189
+ < a data-link-for ="JsonLdErrorCode "> keyword redefinition</ a > error has
1190
+ been detected and processing is aborted.</ li >
1191
+ < li > < span class ="changed "> Otherwise</ span > , since < a > keywords</ a > cannot be overridden,
1192
+ < var > term</ var > MUST NOT be a < a > keyword</ a > and a
1184
1193
< a data-link-for ="JsonLdErrorCode "> keyword redefinition</ a >
1185
1194
error has been detected and processing is aborted.</ li >
1186
1195
< li > Remove any existing < a > term definition</ a > for < var > term</ var > in
1187
1196
< var > active context</ var > .</ li >
1188
- < li > Initialize < var > value</ var > to a copy of the value associated with the < a > member</ a >
1189
- < var > term</ var > in < var > local context</ var > .</ li >
1190
1197
< li > If < var > value</ var > is < code > null</ code > or < var > value</ var >
1191
1198
is a < a class ="changed "> dictionary</ a > containing the key-value pair
1192
1199
< code > @id</ code > -< code > null</ code > , set the
@@ -1197,15 +1204,15 @@ <h3>Algorithm</h3>
1197
1204
to a < a class ="changed "> dictionary</ a > consisting of a single < a > member</ a > whose
1198
1205
key is < code > @id</ code > and whose value is < var > value</ var > .
1199
1206
< span class ="changed "> Set < var > simple term</ var > to < code > true</ code > </ span > .</ li >
1200
- < li > Otherwise, < var > value</ var > must be a < a class ="changed "> dictionary</ a > , if not, an
1207
+ < li > Otherwise, < var > value</ var > MUST be a < a class ="changed "> dictionary</ a > , if not, an
1201
1208
< a data-link-for ="JsonLdErrorCode "> invalid term definition</ a >
1202
1209
error has been detected and processing is aborted.
1203
1210
< span class ="changed "> Set < var > simple term</ var > to < code > false</ code > </ span > .</ li >
1204
1211
< li > Create a new < a > term definition</ a > , < var > definition</ var > .</ li >
1205
1212
< li > If < var > value</ var > contains the < a > member</ a > < code > @type</ code > :
1206
1213
< ol >
1207
1214
< li > Initialize < var > type</ var > to the value associated with the
1208
- < code > @type</ code > < a > member</ a > , which must be a < a > string</ a > . Otherwise, an
1215
+ < code > @type</ code > < a > member</ a > , which MUST be a < a > string</ a > . Otherwise, an
1209
1216
< a data-link-for ="JsonLdErrorCode "> invalid type mapping</ a >
1210
1217
error has been detected and processing is aborted.</ li >
1211
1218
< li > Set < var > type</ var > to the result of using the
@@ -1297,6 +1304,8 @@ <h3>Algorithm</h3>
1297
1304
of < var > definition</ var > to < var > term</ var > .</ li >
1298
1305
</ ol >
1299
1306
</ li >
1307
+ < li class ="changed "> Otherwise, if term is < code > @type</ code > , set the < a > IRI mapping</ a >
1308
+ of < var > definition</ var > to < code > @type</ code > .</ li >
1300
1309
< li > Otherwise, if < var > active context</ var > has a
1301
1310
< a > vocabulary mapping</ a > , the < a > IRI mapping</ a >
1302
1311
of < var > definition</ var > is set to the result of concatenating the value
@@ -1307,7 +1316,7 @@ <h3>Algorithm</h3>
1307
1316
< li > If < var > value</ var > contains the < a > member</ a > < code > @container</ code > :
1308
1317
< ol >
1309
1318
< li > Initialize < var > container</ var > to the value associated with the
1310
- < code > @container</ code > < a > member</ a > , which must be either
1319
+ < code > @container</ code > < a > member</ a > , which MUST be either
1311
1320
< code class ="changed "> @graph</ code > ,
1312
1321
< code class ="changed "> @id</ code > ,
1313
1322
< code > @index</ code > ,
@@ -1355,7 +1364,7 @@ <h3>Algorithm</h3>
1355
1364
does not contain the < a > member</ a > < code > @type</ code > :
1356
1365
< ol >
1357
1366
< li > Initialize < var > language</ var > to the value associated with the
1358
- < code > @language</ code > < a > member</ a > , which must be either < code > null</ code >
1367
+ < code > @language</ code > < a > member</ a > , which MUST be either < code > null</ code >
1359
1368
or a < a > string</ a > . Otherwise, an
1360
1369
< a data-link-for ="JsonLdErrorCode "> invalid language mapping</ a >
1361
1370
error has been detected and processing is aborted.</ li >
@@ -1370,8 +1379,8 @@ <h3>Algorithm</h3>
1370
1379
< a data-link-for ="JsonLdErrorCode "> invalid term definition</ a >
1371
1380
has been detected and processing is aborted.</ li >
1372
1381
< li > Initialize < a > nest value</ a > in < var > definition</ var > to the value associated with the
1373
- < code > @nest</ code > < a > member</ a > , which must be a < a > string</ a > and
1374
- must not be a keyword other than < code > @nest</ code > . Otherwise, an
1382
+ < code > @nest</ code > < a > member</ a > , which MUST be a < a > string</ a > and
1383
+ MUST NOT be a keyword other than < code > @nest</ code > . Otherwise, an
1375
1384
< a data-link-for ="JsonLdErrorCode "> invalid @nest value</ a >
1376
1385
error has been detected and processing is aborted.</ li >
1377
1386
</ ol >
@@ -1383,7 +1392,7 @@ <h3>Algorithm</h3>
1383
1392
< a data-link-for ="JsonLdErrorCode "> invalid term definition</ a >
1384
1393
has been detected and processing is aborted.</ li >
1385
1394
< li > Initialize the < a > prefix flag</ a > to the value associated with the
1386
- < code > @prefix</ code > < a > member</ a > , which must be a < a > boolean</ a > . Otherwise, an
1395
+ < code > @prefix</ code > < a > member</ a > , which MUST be a < a > boolean</ a > . Otherwise, an
1387
1396
< a data-link-for ="JsonLdErrorCode "> invalid @prefix value</ a >
1388
1397
error has been detected and processing is aborted.</ li >
1389
1398
</ ol >
@@ -2412,6 +2421,12 @@ <h3>Algorithm</h3>
2412
2421
passing < var > active context</ var > , < var > inverse context</ var > ,
2413
2422
< var > expanded property</ var > for < var > var</ var > ,
2414
2423
and < code > true</ code > for < var > vocab</ var > .</ li >
2424
+ < li class ="changed "> If < a > processing mode</ a > is < code > json-ld-1.1</ code > ,
2425
+ < var > element</ var > does not have an < code > @value</ code > member,
2426
+ < var > expanded property</ var > is < code > @type</ code > ,
2427
+ and the < a > term definition</ a > for < var > alias</ var > in the
2428
+ < var > active context</ var > has a < a > container mapping</ a > including < code > @set</ code > ,
2429
+ ensure that < var > compacted value</ var > is an < a > array</ a > .</ li >
2415
2430
< li > Add a < a > member</ a > < var > alias</ var > to < var > result</ var > whose value is
2416
2431
set to < var > compacted value</ var > and continue to the next
2417
2432
< var > expanded property</ var > .</ li >
@@ -2431,7 +2446,7 @@ <h3>Algorithm</h3>
2431
2446
< li > If the < a > term definition</ a > for < var > property</ var > in the
2432
2447
< var > active context</ var > indicates that < var > property</ var > is
2433
2448
a < a > reverse property</ a >
2434
- < ol >
2449
+ < ol >
2435
2450
< li > If the < a > term definition</ a > for < var > property</ var > in
2436
2451
the < var > active context</ var > has a
2437
2452
< a > container mapping</ a > < span class ="changed "> including</ span > < code > @set</ code > or
@@ -5471,20 +5486,8 @@ <h2>Changes since 1.0 Recommendation of 16 January 2014</h2>
5471
5486
a context. When this is set, vocabulary-relative IRIs, such as the
5472
5487
< a > members</ a > of < a > node objects</ a > , are expanded or compacted relative
5473
5488
to the < a > base IRI</ a > using string concatenation.</ li >
5474
- < li > < a > Lists</ a > may now have < a > members</ a > which are themselves < a > lists</ a > .</ li >
5475
- < li > The < a href ="#deserialize-json-ld-to-rdf-algorithm "> Deserialize JSON-LD to RDF Algorithm</ a >
5476
- has been updated to ensure that only < a > well-formed</ a > < a > triples</ a >
5477
- are emitted; previously, it only ensured that < a > triples</ a > containing
5478
- < a > relative IRIs</ a > were excluded.</ li >
5479
- < li > The API now adds an < a data-link-for ="JsonLdOptions "> ordered</ a >
5480
- option, defaulting to < code > false</ code > This is used in algorithms to
5481
- control interation of < a > dictionary member</ a > keys. Previously, the
5482
- algorithms always required such an order. The instructions for
5483
- evaluating test results have been updated accordingly.</ li >
5484
- < li > The < a href ="#generate-blank-node-identifier "> Generate Blank Node Identifier algorithm</ a >
5485
- has been updated to remove the specifics of how new blank node
5486
- identifiers are created.</ li >
5487
5489
</ ul >
5490
+ < p > Additionally, see < a href ="#changes-from-cg " class ="sectionRef "> </ a > .</ p >
5488
5491
</ section >
5489
5492
5490
5493
< section class ="appendix informative " id ="changes-from-cg ">
@@ -5503,6 +5506,10 @@ <h2>Changes since JSON-LD Community Group Final Report</h2>
5503
5506
< li > The < a href ="#generate-blank-node-identifier "> Generate Blank Node Identifier algorithm</ a >
5504
5507
has been updated to remove the specifics of how new blank node
5505
5508
identifiers are created.</ li >
5509
+ < li > Values of < code > @type</ code > , or an alais of < code > @type</ code > , may now have their < code > @container</ code > set to @set
5510
+ to ensure that < code > @type</ code > members are always represented as an array. This
5511
+ also allows a term to be defined for < code > @type</ code > , where the value MUST be a < a > dictionary</ a >
5512
+ with < code > @container</ code > set to < code > @set</ code > .</ li >
5506
5513
</ ul >
5507
5514
</ section >
5508
5515
0 commit comments