70
70
] ,
71
71
72
72
bugTracker : {
73
- open : "https://github.com/json-ld/json-ld.org/issues?q=is%3Aopen+is%3Aissue+label%3A1.1+label%3Aapi " ,
73
+ open : "https://github.com/json-ld/json-ld.org/issues?utf8=✓& q=is%3Aissue%20label%3Aapi%20is% 3Aopen%20milestone%3A%22JSON-LD%201.1%22%20 " ,
74
74
new : "https://github.com/json-ld/json-ld.org/issues/new"
75
75
} ,
76
76
127
127
counter-increment : numsection;
128
128
content : counters (numsection, "." ) ") " ;
129
129
}
130
+ .changed {
131
+ background-color : rgb (215 , 238 , 197 );
132
+ }
133
+ .changed : hover {
134
+ color : green;
135
+ background-color : inherit;
136
+ }
130
137
</ style >
131
138
</ head >
132
139
@@ -577,8 +584,9 @@ <h2>RDF Serialization/Deserialization</h2>
577
584
578
585
< p > A conforming < a > JSON-LD Processor</ a > is a system which can perform the
579
586
< a href ="#expansion-algorithm "> Expansion</ a > , < a href ="#compaction-algorithm "> Compaction</ a > ,
580
- and < a href ="#flattening-algorithm "> Flattening</ a > operations in a manner consistent with
581
- the algorithms defined in this specification.</ p >
587
+ and < a href ="#flattening-algorithm "> Flattening</ a > operations
588
+ < span class ="changed "> in a manner consistent with
589
+ the algorithms defined in this specification</ span > .</ p >
582
590
583
591
< p > < a > JSON-LD Processors</ a > MUST NOT
584
592
attempt to correct malformed < a > IRIs</ a > or language tags;
@@ -621,7 +629,8 @@ <h2>Context Processing Algorithm</h2>
621
629
< a > term definition</ a > consists of an < dfn data-lt ="IRI mappings "> IRI mapping</ dfn > , a boolean
622
630
flag < dfn data-lt ="reverse properties "> reverse property</ dfn > , an optional < dfn data-lt ="type mappings "> type mapping</ dfn >
623
631
or < dfn data-lt ="language mappings "> language mapping</ dfn > ,
624
- an optional context, and an optional < dfn data-lt ="container mappings "> container mapping</ dfn > .
632
+ < span class ="changed "> an optional context</ span > ,
633
+ and an optional < dfn data-lt ="container mappings "> container mapping</ dfn > .
625
634
A < a > term definition</ a > can not only be used to map a < a > term</ a >
626
635
to an IRI, but also to map a < a > term</ a > to a < a > keyword</ a > ,
627
636
in which case it is referred to as a < dfn data-lt ="keyword aliases "> keyword alias</ dfn > .</ p >
@@ -985,7 +994,7 @@ <h3>Algorithm</h3>
985
994
< em > container</ em > .</ li >
986
995
</ ol >
987
996
</ li >
988
- < li > If < em > value</ em > contains the key < code > @context</ code > :
997
+ < li class =" changed " > If < em > value</ em > contains the key < code > @context</ code > :
989
998
< ol class ="algorithm ">
990
999
< li > Initialize < em > context</ em > to the value associated with the
991
1000
< code > @context</ code > key, which is treated as a < a > local context</ a > .</ li >
@@ -1205,7 +1214,7 @@ <h3>Algorithm</h3>
1205
1214
To begin, the < a > active property</ a > is set to < code > null</ code > ,
1206
1215
and < em > element</ em > is set to the < a > JSON-LD input</ a > .</ p >
1207
1216
1208
- < p > The algorithm also performs processing steps specific to expanding
1217
+ < p class =" changed " > The algorithm also performs processing steps specific to expanding
1209
1218
a < a > JSON-LD Frame</ a > . For a < a > frame</ a > , the < code > @id</ code > and
1210
1219
< code > @type</ code > properties can accept an array of < a > IRIs</ a > or
1211
1220
an empty < a > dictionary</ a > . The properties of a < a > value object</ a > can also
@@ -1288,12 +1297,13 @@ <h3>Algorithm</h3>
1288
1297
< a href ="#iri-expansion "> IRI Expansion algorithm</ a > ,
1289
1298
passing < a > active context</ a > , < em > value</ em > , and < code > true</ code >
1290
1299
for < em > document relative</ em > .
1291
- When the < code > frame expansion</ code > flag is set, < em > value</ em >
1292
- may be an empty < a > dictionary</ a > , or an < a > array</ a > of one
1293
- or more < a > strings</ a > . < em > Expanded value</ em > will be
1294
- an < a > array</ a > of one or more of these, with < a > string</ a >
1295
- values expanded using the < a
1296
- href ="#iri-expansion "> IRI Expansion Algorithm</ a > .</ li >
1300
+ < span class ="changed ">
1301
+ When the < code > frame expansion</ code > flag is set, < em > value</ em >
1302
+ may be an empty < a > dictionary</ a > , or an < a > array</ a > of one
1303
+ or more < a > strings</ a > . < em > Expanded value</ em > will be
1304
+ an < a > array</ a > of one or more of these, with < a > string</ a >
1305
+ values expanded using the < a
1306
+ href ="#iri-expansion "> IRI Expansion Algorithm</ a > .</ span > </ li >
1297
1307
< li > If < em > expanded property</ em > is < code > @type</ code > and < em > value</ em >
1298
1308
is neither a < a > string</ a > nor an < a > array</ a > of
1299
1309
< a > strings</ a > , an
@@ -1304,13 +1314,15 @@ <h3>Algorithm</h3>
1304
1314
< a > active context</ a > , < code > true</ code > for < em > vocab</ em > ,
1305
1315
and < code > true</ code > for < em > document relative</ em > to expand the < em > value</ em >
1306
1316
or each of its items.
1307
- When the < code > frame expansion</ code > flag is set, < em > value</ em >
1308
- may also be an empty < a > dictionary</ a > .</ li >
1317
+ < span class ="changed ">
1318
+ When the < code > frame expansion</ code > flag is set, < em > value</ em >
1319
+ may also be an empty < a > dictionary</ a > .</ span > </ li >
1309
1320
< li > If < em > expanded property</ em > is < code > @graph</ code > , set
1310
1321
< em > expanded value</ em > to the result of using this algorithm
1311
1322
recursively passing < a > active context</ a > , < code > @graph</ code >
1312
1323
for < a > active property</ a > , and < em > value</ em > for < em > element</ em > ,
1313
- ensuring that < em > expanded value</ em > is an < a > array</ a > of one or more < a > dictionaries</ a > .</ li >
1324
+ < span class ="changed ">
1325
+ ensuring that < em > expanded value</ em > is an < a > array</ a > of one or more < a > dictionaries</ a > </ span > .</ li >
1314
1326
< li > If < em > expanded property</ em > is < code > @value</ code > and
1315
1327
< em > value</ em > is not a < a > scalar</ a > or < code > null</ code > , an
1316
1328
< a data-link-for ="JsonLdErrorCode "> invalid value object value</ a >
@@ -1321,19 +1333,21 @@ <h3>Algorithm</h3>
1321
1333
next < em > key</ em > from < em > element</ em > . Null values need to be preserved
1322
1334
in this case as the meaning of an < code > @type</ code > member depends
1323
1335
on the existence of an < code > @value</ code > member.
1324
- When the < code > frame expansion</ code > flag is set, < em > value</ em >
1325
- may also be an empty < a > dictionary</ a > or an array of
1326
- < a > scalar</ a > values. < em > Expanded value</ em > will be < a > null</ a > , or an
1327
- < a > array</ a > of one or more < a > scalar</ a > values.</ li >
1336
+ < span class ="changed ">
1337
+ When the < code > frame expansion</ code > flag is set, < em > value</ em >
1338
+ may also be an empty < a > dictionary</ a > or an array of
1339
+ < a > scalar</ a > values. < em > Expanded value</ em > will be < a > null</ a > , or an
1340
+ < a > array</ a > of one or more < a > scalar</ a > values.</ span > </ li >
1328
1341
< li > If < em > expanded property</ em > is < code > @language</ code > and
1329
1342
< em > value</ em > is not a < a > string</ a > , an
1330
1343
< a data-link-for ="JsonLdErrorCode "> invalid language-tagged string</ a >
1331
- error has been detected and processing is aborted. Otherwise,
1332
- set < em > expanded value</ em > to lowercased < em > value</ em > .
1333
- When the < code > frame expansion</ code > flag is set, < em > value</ em >
1334
- may also be an empty < a > dictionary</ a > or an array of zero or
1335
- < a > strings</ a > . < em > Expanded value</ em > will be an
1336
- < a > array</ a > of one or more < a > string</ a > values converted to lower case.</ li >
1344
+ error has been detected and processing is aborted.
1345
+ < span class ="changed ">
1346
+ Otherwise, set < em > expanded value</ em > to lowercased < em > value</ em > .
1347
+ When the < code > frame expansion</ code > flag is set, < em > value</ em >
1348
+ may also be an empty < a > dictionary</ a > or an array of zero or
1349
+ < a > strings</ a > . < em > Expanded value</ em > will be an
1350
+ < a > array</ a > of one or more < a > string</ a > values converted to lower case.</ span > </ li >
1337
1351
< li > If < em > expanded property</ em > is < code > @index</ code > and
1338
1352
< em > value</ em > is not a < a > string</ a > , an
1339
1353
< a data-link-for ="JsonLdErrorCode "> invalid @index value</ a >
@@ -1403,7 +1417,7 @@ <h3>Algorithm</h3>
1403
1417
< li > Continue with the next < em > key</ em > from < em > element</ em > .</ li >
1404
1418
</ ol >
1405
1419
</ li >
1406
- < li > When the < code > frame expansion</ code > flag is set,
1420
+ < li class =" changed " > When the < code > frame expansion</ code > flag is set,
1407
1421
if < em > expanded property</ em > is any other
1408
1422
framing keyword (< code > @explicit</ code > , < code > @default</ code > ,
1409
1423
< code > @embed</ code > , < code > @explicit</ code > , < code > @omitDefault</ code > , or
@@ -1418,14 +1432,14 @@ <h3>Algorithm</h3>
1418
1432
< li > Continue with the next < em > key</ em > from < em > element</ em > .</ li >
1419
1433
</ ol >
1420
1434
</ li >
1421
- < li > If < em > key</ em > 's < a > term definition</ a > in < a > active context</ a >
1435
+ < li class =" changed " > If < em > key</ em > 's < a > term definition</ a > in < a > active context</ a >
1422
1436
has a < a > local context</ a > , set < em > term context</ em > to the result of the
1423
1437
< a href ="#context-processing-algorithm "> Context Processing algorithm</ a > ,
1424
1438
passing < a > active context</ a > and the value of the
1425
1439
< em > key</ em > 's < a > local context</ a > as < a > local context</ a > . Otherwise,
1426
1440
set < em > term context</ em > to < a > active context</ a > .</ li >
1427
1441
< li > If < em > key</ em > 's < a > container mapping</ a > in
1428
- < em > term context</ em > is < code > @language</ code > and
1442
+ < em class =" changed " > term context</ em > is < code > @language</ code > and
1429
1443
< em > value</ em > is a < a > JSON object</ a > then < em > value</ em >
1430
1444
is expanded from a < a > language map</ a >
1431
1445
as follows:
@@ -1456,7 +1470,7 @@ <h3>Algorithm</h3>
1456
1470
</ ol >
1457
1471
</ li >
1458
1472
< li > Otherwise, if < em > key</ em > 's < a > container mapping</ a > in
1459
- < em > term context</ em > is < code > @index</ code > and
1473
+ < em class =" changed " > term context</ em > is < code > @index</ code > and
1460
1474
< em > value</ em > is a < a > JSON object</ a > then < em > value</ em >
1461
1475
is expanded from an index map as follows:
1462
1476
< ol class ="algorithm ">
@@ -1470,7 +1484,7 @@ <h3>Algorithm</h3>
1470
1484
< em > index value</ em > .</ li >
1471
1485
< li > Initialize < em > index value</ em > to the result of
1472
1486
using this algorithm recursively, passing
1473
- < em > term context</ em > as < a > active context</ a > ,
1487
+ < em class =" changed " > term context</ em > as < a > active context</ a > ,
1474
1488
< em > key</ em > as < a > active property</ a > ,
1475
1489
and < em > index value</ em > as < em > element</ em > .</ li >
1476
1490
< li > For each < em > item</ em > in < em > index value</ em > :
@@ -1487,13 +1501,13 @@ <h3>Algorithm</h3>
1487
1501
</ ol >
1488
1502
</ li >
1489
1503
< li > Otherwise, initialize < em > expanded value</ em > to the result of
1490
- using this algorithm recursively, passing < em > term context</ em > as < a > active context</ a > ,
1504
+ using this algorithm recursively, passing < em class =" changed " > term context</ em > as < a > active context</ a > ,
1491
1505
< em > key</ em > for < a > active property</ a > , and < em > value</ em >
1492
1506
for < em > element</ em > .</ li >
1493
1507
< li > If < em > expanded value</ em > is < code > null</ code > , ignore < em > key</ em >
1494
1508
by continuing to the next < em > key</ em > from < em > element</ em > .</ li >
1495
1509
< li > If the < a > container mapping</ a > associated to < em > key</ em > in
1496
- < em > term context</ em > is < code > @list</ code > and
1510
+ < em class =" changed " > term context</ em > is < code > @list</ code > and
1497
1511
< em > expanded value</ em > is not already a < a > list object</ a > ,
1498
1512
convert < em > expanded value</ em > to a < a > list object</ a >
1499
1513
by first setting it to an < a > array</ a > containing only
@@ -1750,7 +1764,7 @@ <h3>Algorithm</h3>
1750
1764
is set to < code > true</ code > .</ p >
1751
1765
1752
1766
< ol class ="algorithm ">
1753
- < li > If the < a > term definition</ a > for < a > active property</ a > has a
1767
+ < li class =" changed " > If the < a > term definition</ a > for < a > active property</ a > has a
1754
1768
< a > local context</ a > :
1755
1769
< ol class ="algorithm ">
1756
1770
< li > Set < a > active context</ a > to the result of the
@@ -2960,7 +2974,7 @@ <h3>Algorithm</h3>
2960
2974
</ section >
2961
2975
</ section > <!-- end of Generate Blank Node Identifier -->
2962
2976
2963
- < section >
2977
+ < section class =" changed " >
2964
2978
< h3 > Merge Node Maps</ h3 >
2965
2979
< p > This algorithm creates a new map of < a > subjects</ a > to < a > nodes</ a > using all graphs
2966
2980
contained in the < em > graph map</ em > created using the < a href ="#node-map-generation "> Node Map Generation algorithm</ a >
@@ -3410,8 +3424,9 @@ <h2>Algorithm</h2>
3410
3424
< li > While < em > property</ em > equals < code > rdf:rest</ code > ,
3411
3425
the < a > array</ a > value of the member of < em > node usages map</ em > associated with the < code > @id</ code >
3412
3426
member of < code > node</ code > has only one member,
3413
- the value associated to the < code > usages</ code > member of < i > node</ i > has
3414
- exactly 1 entry,
3427
+ < span class ="changed ">
3428
+ the value associated to the < code > usages</ code > member of < i > node</ i > has
3429
+ exactly 1 entry,</ span >
3415
3430
< em > node</ em > has a < code > rdf:first</ code > and < code > rdf:rest</ code > property,
3416
3431
both of which have as value an < a > array</ a > consisting of a single element,
3417
3432
and < em > node</ em > has no other members apart from an optional < code > @type</ code >
@@ -4131,8 +4146,8 @@ <h4>JsonLdErrorCode</h4>
4131
4146
< dt > < dfn > invalid reverse property value</ dfn > </ dt >
4132
4147
< dd > An invalid value for a reverse property has been detected. The value of an inverse
4133
4148
property must be a < a > node object</ a > .</ dd >
4134
- < dt > < dfn > invalid scoped context</ dfn > </ dt >
4135
- < dd > The < a > local context</ a > defined within a < a > term definition</ a > is invalid.</ dd >
4149
+ < dt class =" changed " > < dfn > invalid scoped context</ dfn > </ dt >
4150
+ < dd class =" changed " > The < a > local context</ a > defined within a < a > term definition</ a > is invalid.</ dd >
4136
4151
< dt > < dfn > invalid set or list object</ dfn > </ dt >
4137
4152
< dd > A < a > set object</ a > or < a > list object</ a > with
4138
4153
disallowed members has been detected.</ dd >
@@ -4181,37 +4196,40 @@ <h4>JsonLdErrorCode</h4>
4181
4196
< section class ="appendix informative ">
4182
4197
< h2 > Changes since 1.0 Recommendation of 16 January 2014</ h2 >
4183
4198
< ul >
4199
+ < li > The < a href ="#expansion-algorithm "> Expansion Algorithm</ a >
4200
+ has a special processing mode, based on
4201
+ the < code > frame expansion</ code > flag, to enable content associated with JSON-LD
4202
+ frames, which may not otherwise be valid < a > JSON-LD documents</ a > .</ li >
4184
4203
< li > An < a > expanded term definition</ a > can now have an
4185
4204
< code > @context</ code > property, which defines a context used for values of
4186
4205
a < a > property</ a > identified with such a < a > term</ a > . This context is used
4187
4206
in both the < a href ="#expansion-algorithm "> Expansion Algorithm</ a > and
4188
4207
< a href ="#compaction-algorithm "> Compaction Algorithm</ a > .</ li >
4208
+ < li > A new < a href ="#merge-node-maps " class ="sectionRef "> </ a > is required
4209
+ for framing, to create a single graph from the < a data-lt ="default graph "> default</ a >
4210
+ and < a > named graphs</ a > .</ li >
4189
4211
</ ul >
4190
4212
</ section >
4191
4213
4192
4214
< section class ="appendix informative ">
4193
4215
< h2 > Open Issues</ h2 >
4194
4216
< p > The following is a list of open issues being worked on for the next release.</ p >
4195
- < p class ="issue " data-number ="110 "> </ p >
4196
4217
< p class ="issue " data-number ="140 "> </ p >
4197
4218
< p class ="issue " data-number ="195 "> </ p >
4198
4219
< p class ="issue " data-number ="246 "> </ p >
4199
- < p class ="issue " data-number ="247 "> </ p >
4200
- < p class ="issue " data-number ="262 "> </ p >
4201
4220
< p class ="issue " data-number ="269 "> </ p >
4202
4221
< p class ="issue " data-number ="271 "> </ p >
4203
4222
< p class ="issue " data-number ="272 "> </ p >
4204
4223
< p class ="issue " data-number ="293 "> </ p >
4205
4224
< p class ="issue " data-number ="333 "> </ p >
4206
4225
< p class ="issue " data-number ="357 "> </ p >
4207
- < p class ="issue " data-number ="369 "> </ p >
4208
4226
< p class ="issue " data-number ="375 "> </ p >
4209
4227
< p class ="issue " data-number ="385 "> </ p >
4210
- < p class ="issue " data-number ="397 "> </ p >
4211
4228
< p class ="issue " data-number ="398 "> </ p >
4212
4229
< p class ="issue " data-number ="405 "> </ p >
4213
4230
< p class ="issue " data-number ="415 "> </ p >
4214
4231
< p class ="issue " data-number ="426 "> </ p >
4232
+ < p class ="issue " data-number ="446 "> </ p >
4215
4233
</ section >
4216
4234
4217
4235
< section class ="appendix informative ">
0 commit comments