@@ -676,17 +676,16 @@ <h2>Syntax Tokens and Keywords</h2>
676
676
in all algorithms described in this section:</ p >
677
677
678
678
< dl >
679
- < dt > < code > @context</ code > </ dt > < dd > Used to set the < tref > local context</ tref > .</ dd >
680
- < dt > < code > @base</ code > </ dt > < dd > Used to set the base IRI for all object IRIs affected by the < tref > active context</ tref > .</ dd >
681
- < dt > < code > @vocab</ code > </ dt > < dd > Used to set the base IRI for all property IRIs affected by the < tref > active context</ tref > .</ dd >
679
+ < dt > < code > @base</ code > </ dt > < dd > Used to set the base < tref > IRI</ tref > for all object IRIs affected by the < tref > active context</ tref > .</ dd >
682
680
< dt > < code > @coerce</ code > </ dt > < dd > Used to specify type coercion rules.</ dd >
683
- < dt > < code > @literal</ code > </ dt > < dd > Used to specify a literal value.</ dd >
684
- < dt > < code > @iri</ code > </ dt > < dd > Used to specify an IRI value.</ dd >
685
- < dt > < code > @language</ code > </ dt > < dd > Used to specify the language for a literal.</ dd >
681
+ < dt > < code > @context</ code > </ dt > < dd > Used to set the < tref > local context</ tref > .</ dd >
686
682
< dt > < code > @datatype</ code > </ dt > < dd > Used to specify the datatype for a literal.</ dd >
687
- < dt > < code > :</ code > </ dt > < dd > The separator for JSON keys and values that use the < tref > prefix</ tref > mechanism.</ dd >
688
- < dt > < code > @subject</ code > </ dt > < dd > Sets the active subject.</ dd >
683
+ < dt > < code > @id</ code > </ dt > < dd > Sets the active subject.</ dd >
684
+ < dt > < code > @language</ code > </ dt > < dd > Used to specify the language for a literal.</ dd >
685
+ < dt > < code > @literal</ code > </ dt > < dd > Used to specify a literal value.</ dd >
689
686
< dt > < code > @type</ code > </ dt > < dd > Used to set the type of the active subject.</ dd >
687
+ < dt > < code > @vocab</ code > </ dt > < dd > Used to set the base < tref > IRI</ tref > for all property IRIs affected by the < tref > active context</ tref > .</ dd >
688
+ < dt > < code > :</ code > </ dt > < dd > The separator for JSON keys and values that use the < tref > prefix</ tref > mechanism.</ dd >
690
689
</ dl >
691
690
</ section >
692
691
@@ -857,14 +856,14 @@ <h3>Initial Context</h3>
857
856
< li > < code > @base</ code > is set using < cite > < a href ="http://www.ietf.org/rfc/rfc2396.txt "> section 5.1 Establishing a
858
857
Base URI</ a > </ cite > of [[RFC3986]]. Processors MAY provide a means
859
858
of setting the base IRI programatically.</ li >
860
- < li > < code > @coerce</ code > is set with a single mapping from < code > @iri </ code > to < code > @type</ code > .</ li >
859
+ < li > < code > @coerce</ code > is set with a single mapping from < code > @id </ code > to < code > @type</ code > .</ li >
861
860
</ ul >
862
861
< pre class ="example " data-transform ="updateExample ">
863
862
<!--
864
863
{
865
864
"@base": ****document-location****,
866
865
"@coerce": {
867
- "@iri ": "@type"
866
+ "@id ": "@type"
868
867
}
869
868
}
870
869
--> </ pre >
@@ -939,8 +938,8 @@ <h2>Value Expansion</h2>
939
938
coercion entry in the < tref > local context</ tref > , the resulting
940
939
expansion is an object populated according to the following steps:
941
940
< ol class ="algorithm ">
942
- < li > If the coercion target is < code > @iri </ code > , expand the value
943
- by adding a new key-value pair where the key is < code > @iri </ code >
941
+ < li > If the coercion target is < code > @id </ code > , expand the value
942
+ by adding a new key-value pair where the key is < code > @id </ code >
944
943
and the value is the expanded IRI according to the
945
944
< a href ="#iri-expansion "> IRI Expansion</ a > rules.</ li >
946
945
< li > If the coercion target is a typed literal, expand the value
@@ -968,8 +967,8 @@ <h2>Value Compaction</h2>
968
967
key that is associated with the value, compact the value using the
969
968
following steps:
970
969
< ol class ="algorithm ">
971
- < li > If the coercion target is an < code > @iri </ code > , the compacted
972
- value is the value associated with the < code > @iri </ code > key,
970
+ < li > If the coercion target is an < code > @id </ code > , the compacted
971
+ value is the value associated with the < code > @id </ code > key,
973
972
processed according to the
974
973
< a href ="#iri-compaction "> IRI Compaction</ a > steps.</ li >
975
974
< li > If the coercion target is a typed literal, the compacted
@@ -1002,7 +1001,7 @@ <h2>Expansion</h2>
1002
1001
"homepage": "http://xmlns.com/foaf/0.1/homepage",
1003
1002
"@coerce":
1004
1003
{
1005
- "@iri ": "homepage"
1004
+ "@id ": "homepage"
1006
1005
}
1007
1006
},
1008
1007
"name": "Manu Sporny",
@@ -1020,7 +1019,7 @@ <h2>Expansion</h2>
1020
1019
"http://xmlns.com/foaf/0.1/name": "Manu Sporny",
1021
1020
"http://xmlns.com/foaf/0.1/homepage":
1022
1021
{
1023
- "@iri ": "http://manu.sporny.org/"
1022
+ "@id ": "http://manu.sporny.org/"
1024
1023
}
1025
1024
}
1026
1025
-->
@@ -1078,7 +1077,7 @@ <h2>Compaction</h2>
1078
1077
"http://xmlns.com/foaf/0.1/name": "Manu Sporny",
1079
1078
"http://xmlns.com/foaf/0.1/homepage":
1080
1079
{
1081
- "@iri ": "http://manu.sporny.org/"
1080
+ "@id ": "http://manu.sporny.org/"
1082
1081
}
1083
1082
}
1084
1083
-->
@@ -1093,7 +1092,7 @@ <h2>Compaction</h2>
1093
1092
"homepage": "http://xmlns.com/foaf/0.1/homepage",
1094
1093
"@coerce":
1095
1094
{
1096
- "@iri ": "homepage"
1095
+ "@id ": "homepage"
1097
1096
}
1098
1097
}
1099
1098
-->
@@ -1112,7 +1111,7 @@ <h2>Compaction</h2>
1112
1111
"homepage": "http://xmlns.com/foaf/0.1/homepage",
1113
1112
"@coerce":
1114
1113
{
1115
- "@iri ": "homepage"
1114
+ "@id ": "homepage"
1116
1115
}
1117
1116
},
1118
1117
"name": "Manu Sporny",
@@ -1183,24 +1182,24 @@ <h2>Framing</h2>
1183
1182
"title": "http://purl.org/dc/terms/title",
1184
1183
"@coerce":
1185
1184
{
1186
- "@iri ": "contains"
1185
+ "@id ": "contains"
1187
1186
},
1188
1187
},
1189
- "@subject ":
1188
+ "@id ":
1190
1189
[{
1191
- "@subject ": "http://example.com/library",
1190
+ "@id ": "http://example.com/library",
1192
1191
"@type": "Library",
1193
1192
"contains": "http://example.org/library/the-republic"
1194
1193
},
1195
1194
{
1196
- "@subject ": "http://example.org/library/the-republic",
1195
+ "@id ": "http://example.org/library/the-republic",
1197
1196
"@type": "Book",
1198
1197
"creator": "Plato",
1199
1198
"title": "The Republic",
1200
1199
"contains": "http://example.org/library/the-republic#introduction"
1201
1200
},
1202
1201
{
1203
- "@subject ": "http://example.org/library/the-republic#introduction",
1202
+ "@id ": "http://example.org/library/the-republic#introduction",
1204
1203
"@type": "Chapter",
1205
1204
"description": "An introductory chapter on The Republic.",
1206
1205
"title": "The Introduction"
@@ -1253,15 +1252,15 @@ <h2>Framing</h2>
1253
1252
"Library": "http://example.org/vocab#Library",
1254
1253
"title": "http://purl.org/dc/terms/title"
1255
1254
},
1256
- "@subject ": "http://example.org/library",
1255
+ "@id ": "http://example.org/library",
1257
1256
"@type": "Library",
1258
1257
"contains": {
1259
- ****"@subject ": "http://example.org/library/the-republic",****
1258
+ ****"@id ": "http://example.org/library/the-republic",****
1260
1259
"@type": "Book",
1261
1260
****"creator": "Plato",****
1262
1261
****"title": "The Republic",****
1263
1262
"contains": {
1264
- ****"@subject ": "http://example.org/library/the-republic#introduction",****
1263
+ ****"@id ": "http://example.org/library/the-republic#introduction",****
1265
1264
"@type": "Chapter",
1266
1265
****"description": "An introductory chapter on The Republic.",****
1267
1266
****"title": "The Introduction"****
@@ -1376,30 +1375,30 @@ <h3>Framing Algorithm</h3>
1376
1375
< code > true</ code > or < code > false</ code > , set the associated flag to
1377
1376
< code > true</ code > .</ li >
1378
1377
< li > If the < tref > object embed flag</ tref > is cleared and the item has
1379
- the < code > @subject </ code > property, replace the item with the value
1380
- of the < code > @subject </ code > property.</ li >
1378
+ the < code > @id </ code > property, replace the item with the value
1379
+ of the < code > @id </ code > property.</ li >
1381
1380
< li > If the < tref > object embed flag</ tref > is set and the item has
1382
- the < code > @subject </ code > property, and its IRI is in the
1381
+ the < code > @id </ code > property, and its IRI is in the
1383
1382
< tref > map of embedded subjects</ tref > , throw a
1384
1383
< code > Duplicate Embed</ code > exception.</ li >
1385
1384
< li > If the < tref > object embed flag</ tref > is set and the item has
1386
- the < code > @subject </ code > property and its IRI is not in the
1385
+ the < code > @id </ code > property and its IRI is not in the
1387
1386
< tref > map of embedded subjects</ tref > :
1388
1387
< ol class ="algorithm ">
1389
1388
< li > If the < tref > explicit inclusion flag</ tref > is set,
1390
1389
then delete any key from the item that does not exist in the
1391
- < tref > match frame</ tref > , except < code > @subject </ code > .</ li >
1390
+ < tref > match frame</ tref > , except < code > @id </ code > .</ li >
1392
1391
< li > For each key in the < tref > match frame</ tref > , except for
1393
1392
keywords and < code > rdf:type</ code > :
1394
1393
< ol class ="algorithm ">
1395
1394
< li > If the key is in the item, then build a new
1396
1395
< tdef > recursion input list</ tdef > using the object or objects
1397
1396
associated with the key. If any object contains an
1398
- < code > @iri </ code > value that exists in the
1397
+ < code > @id </ code > value that exists in the
1399
1398
< strong > normalized input</ strong > , replace the object in the
1400
1399
< tref > recursion input list</ tref > with a new object containing
1401
- the < code > @subject </ code > key where the value is the value of
1402
- the < code > @iri </ code > , and all of the other key-value pairs for
1400
+ the < code > @id </ code > key where the value is the value of
1401
+ the < code > @id </ code > , and all of the other key-value pairs for
1403
1402
that subject. Set the < tdef > recursion match frame</ tdef > to the
1404
1403
value associated with the < tref > match frame</ tref > 's key. Replace
1405
1404
the value associated with the key by recursively calling this
@@ -1484,7 +1483,7 @@ <h2>Normalization</h2>
1484
1483
"xsd": "http://www.w3.org/2001/XMLSchema#",
1485
1484
"@coerce":
1486
1485
{
1487
- "@iri ": ["homepage"]
1486
+ "@id ": ["homepage"]
1488
1487
}
1489
1488
},
1490
1489
"name": "Manu Sporny",
@@ -1502,13 +1501,10 @@ <h2>Normalization</h2>
1502
1501
< pre class ="example " data-transform ="updateExample ">
1503
1502
<!--
1504
1503
[{
1505
- "@subject":
1506
- {
1507
- "@iri": "_:c14n0"
1508
- },
1504
+ "@id": "_:c14n0",
1509
1505
"http://xmlns.com/foaf/0.1/homepage":
1510
1506
{
1511
- "@iri ": "http://manu.sporny.org/"
1507
+ "@id ": "http://manu.sporny.org/"
1512
1508
},
1513
1509
"http://xmlns.com/foaf/0.1/name": "Manu Sporny"
1514
1510
}]
@@ -1533,8 +1529,8 @@ <h3>Normalization Algorithm Terms</h3>
1533
1529
< dd >
1534
1530
The subject < tref > IRI</ tref > associated with a graph node. The subject IRI is expressed
1535
1531
using a key-value pair in a < tref > JSON object</ tref > where the key is
1536
- < code > @subject </ code > and the value is a string that is an IRI or
1537
- a < tref > JSON object</ tref > containing the key < code > @iri </ code > and
1532
+ < code > @id </ code > and the value is a string that is an IRI or
1533
+ a < tref > JSON object</ tref > containing the key < code > @id </ code > and
1538
1534
a value that is a string that is an IRI.
1539
1535
</ dd >
1540
1536
< dt > < tdef > list of expanded nodes</ tdef > </ dt >
@@ -1707,7 +1703,7 @@ <h3>Normalization Algorithm</h3>
1707
1703
< ol class ="algorithm ">
1708
1704
< li > If the < tref > expanded node</ tref > is an unlabeled node, add a
1709
1705
new key-value pair to the < tref > expanded node</ tref >
1710
- where the key is < code > @subject </ code > and the value is the
1706
+ where the key is < code > @id </ code > and the value is the
1711
1707
concatenation of the < tref > labeling prefix</ tref >
1712
1708
and the string value of the < tref > labeling counter</ tref > .
1713
1709
Increment the < tref > labeling counter</ tref > .</ li >
@@ -1731,8 +1727,8 @@ <h3>Normalization Algorithm</h3>
1731
1727
</ li >
1732
1728
< li > After exiting the recursive step, replace the reference to the
1733
1729
< tref > expanded node</ tref > with an object containing a single
1734
- key-value pair where the key is < code > @iri </ code > and the value is
1735
- the value of the < code > @subject </ code > key in the node.</ li >
1730
+ key-value pair where the key is < code > @id </ code > and the value is
1731
+ the value of the < code > @id </ code > key in the node.</ li >
1736
1732
</ ol >
1737
1733
</ li >
1738
1734
< li > For every entry in the < tref > map of flattened nodes</ tref > , insert a
@@ -1747,7 +1743,7 @@ <h3>Normalization Algorithm</h3>
1747
1743
< li > For every entry in the < tref > node state map</ tref > that has a
1748
1744
< tref > label</ tref > that begins with < code > _:c14n</ code > , relabel the node using the
1749
1745
< a href ="#node-relabeling-algorithm "> Node Relabeling Algorithm</ a > . < li > Label all
1750
- of the nodes that contain a < code > @subject </ code > key associated with a value
1746
+ of the nodes that contain a < code > @id </ code > key associated with a value
1751
1747
starting with < code > _:</ code > according to the steps in the < a
1752
1748
href ="#deterministic-labeling-algorithm "> Deterministic Labeling Algorithm</ a > .</ li >
1753
1749
</ ol >
@@ -1965,7 +1961,7 @@ <h4>Object Comparison Algorithm</h4>
1965
1961
</ ol >
1966
1962
</ li >
1967
1963
< li > If both values are expanded < tref > IRI</ tref > s, the
1968
- lexicographically lesser string associated with < code > @iri </ code >
1964
+ lexicographically lesser string associated with < code > @id </ code >
1969
1965
is first.</ li >
1970
1966
< li > Otherwise, the two values are equivalent.</ li >
1971
1967
</ ol >
@@ -2397,7 +2393,7 @@ <h4>Label Serialization Algorithm</h4>
2397
2393
< li > Append all properties to the < tref > label serialization</ tref > by
2398
2394
processing each key-value pair in the < tref > node reference</ tref > ,
2399
2395
excluding the
2400
- < code > @subject </ code > property. The keys should be processed in
2396
+ < code > @id </ code > property. The keys should be processed in
2401
2397
lexicographical order and their associated values should be processed
2402
2398
in the order produced by the
2403
2399
< a href ="#object-comparison-algorithm "> Object Comparison Algorithm</ a > :
@@ -2409,15 +2405,15 @@ <h4>Label Serialization Algorithm</h4>
2409
2405
Process all of the objects that are associated with the key, building
2410
2406
an < tdef > object string</ tdef > for each item:
2411
2407
< ol class ="algorithm ">
2412
- < li > If the object contains an < code > @iri </ code > key with a
2408
+ < li > If the object contains an < code > @id </ code > key with a
2413
2409
value that starts
2414
2410
with < code > _:</ code > , set the < tref > object string</ tref > to
2415
2411
the value < code > _:</ code > . If the value does not
2416
2412
start with < code > _:</ code > , build the < tref > object string</ tref >
2417
2413
using the pattern
2418
2414
< code > <</ code > < strong > IRI</ strong > < code > ></ code >
2419
2415
where < strong > IRI</ strong > is the value associated with the
2420
- < code > @iri </ code > key.</ li >
2416
+ < code > @id </ code > key.</ li >
2421
2417
< li > If the object contains a < code > @literal</ code > key and a
2422
2418
< code > @datatype</ code > key, build the < tref > object string</ tref >
2423
2419
using the pattern
@@ -2642,13 +2638,6 @@ <h3>RDF Conversion Algorithm</h3>
2642
2638
Create a copy of the current < tref > JSON object</ tref > , changing keys that map to JSON-LD keywords
2643
2639
with those keywords. Use the new < tref > JSON object</ tref > in subsequent steps.
2644
2640
</ li >
2645
- < li >
2646
- If the < tref > JSON object</ tref > has an < code > @iri</ code > key, set the < tref > active object</ tref > by
2647
- performing < a href ="#iri-expansion "> IRI Expansion</ a > on the associated value. Generate a
2648
- triple representing the < tref > active subject</ tref > , the < tref > active property</ tref > and the
2649
- < tref > active object</ tref > . Return the < tref > active object</ tref > to the calling location.
2650
- < p class ="issue "> < code > @iri</ code > really just behaves the same as < code > @subject</ code > , consider consolidating them.</ p >
2651
- </ li >
2652
2641
< li >
2653
2642
If the < tref > JSON object</ tref > has a < code > @literal</ code > key, set the < tref > active object</ tref >
2654
2643
to a literal value as follows:
@@ -2673,7 +2662,7 @@ <h3>RDF Conversion Algorithm</h3>
2673
2662
process the value as a list starting at < a href ="#processing-step-list "> Step 3.1</ a > as if the
2674
2663
< tref > active property</ tref > is the target of a < code > @list</ code > coercion.
2675
2664
</ li >
2676
- < li id ="processing-step-subject "> If the < tref > JSON object</ tref > has a < code > @subject </ code > key:
2665
+ < li id ="processing-step-subject "> If the < tref > JSON object</ tref > has a < code > @id </ code > key:
2677
2666
< ol class ="algorithm ">
2678
2667
< li >
2679
2668
If the value is a < tref > string</ tref > , set the < tref > active object</ tref > to the result of performing
@@ -2695,7 +2684,7 @@ <h3>RDF Conversion Algorithm</h3>
2695
2684
</ ol >
2696
2685
</ li >
2697
2686
< li >
2698
- If the < tref > JSON object</ tref > does not have a < code > @subject </ code > key, set the < tref > active
2687
+ If the < tref > JSON object</ tref > does not have a < code > @id </ code > key, set the < tref > active
2699
2688
object</ tref > to newly generated < tref > blank node</ tref > . Generate a triple
2700
2689
representing the < tref > active subject</ tref > , the < tref > active property</ tref > and the
2701
2690
< tref > active object</ tref > . Set the < tref > active subject</ tref > to the < tref > active
@@ -2792,7 +2781,7 @@ <h3>RDF Conversion Algorithm</h3>
2792
2781
If a < tref > string</ tref > is detected:
2793
2782
< ol class ="algorithm ">
2794
2783
< li >
2795
- If the < tref > active property</ tref > is the target of a < code > @iri </ code > coercion,
2784
+ If the < tref > active property</ tref > is the target of a < code > @id </ code > coercion,
2796
2785
set the < tref > active object</ tref > by
2797
2786
performing < a href ="#iri-expansion "> IRI Expansion</ a > on the string.
2798
2787
</ li >
@@ -2844,6 +2833,7 @@ <h1>Acknowledgements</h1>
2844
2833
including the normalization algorithm which was a monumentally difficult
2845
2834
design challenge.
2846
2835
</ p >
2836
+ < p class ="issue "> Dave is an editor, and probably shouldn't also be in acknowledgments.</ p >
2847
2837
</ section >
2848
2838
2849
2839
</ body >
0 commit comments