@@ -493,7 +493,7 @@ <h3>JsonLdProcessor</h3>
493
493
< dt > INVALID_SYNTAX</ dt >
494
494
< dd > A general syntax error was detected in the < code > @context</ code > .
495
495
For example, if a < code > @type</ code > key maps to anything other than
496
- < code > @id</ code > or an absolute < tref > IRI</ tref > , this exception would be raised.</ dd >
496
+ < code > @id</ code > or an < tref > absolute IRI</ tref > , this exception would be raised.</ dd >
497
497
< dt > LOAD_ERROR</ dt >
498
498
< dd > There was a problem encountered loading a remote context.</ dd >
499
499
</ dl >
@@ -518,7 +518,7 @@ <h3>JsonLdProcessor</h3>
518
518
< dt > INVALID_SYNTAX</ dt >
519
519
< dd > A general syntax error was detected in the < code > @context</ code > .
520
520
For example, if a < code > @type</ code > key maps to anything other than
521
- < code > @id</ code > or an absolute < tref > IRI</ tref > , this exception would be raised.</ dd >
521
+ < code > @id</ code > or an < tref > absolute IRI</ tref > , this exception would be raised.</ dd >
522
522
< dt > LOAD_ERROR</ dt >
523
523
< dd > There was a problem encountered loading a remote context.</ dd >
524
524
</ dl >
@@ -586,7 +586,7 @@ <h3>JsonLdProcessor</h3>
586
586
< dt > INVALID_SYNTAX</ dt >
587
587
< dd > A general syntax error was detected in the < code > @context</ code > .
588
588
For example, if a < code > @type</ code > key maps to anything other than
589
- < code > @id</ code > or an absolute < tref > IRI</ tref > , this exception would be raised.</ dd >
589
+ < code > @id</ code > or an < tref > absolute IRI</ tref > , this exception would be raised.</ dd >
590
590
< dt > LOAD_ERROR</ dt >
591
591
< dd > There was a problem encountered loading a remote context.</ dd >
592
592
</ dl >
@@ -614,7 +614,7 @@ <h3>JsonLdProcessor</h3>
614
614
< dt > INVALID_SYNTAX</ dt >
615
615
< dd > A general syntax error was detected in the < code > @context</ code > .
616
616
For example, if a < code > @type</ code > key maps to anything other than
617
- < code > @id</ code > or an absolute < tref > IRI</ tref > , this exception would be raised.</ dd >
617
+ < code > @id</ code > or an < tref > absolute IRI</ tref > , this exception would be raised.</ dd >
618
618
< dt > LOAD_ERROR</ dt >
619
619
< dd > There was a problem encountered loading a remote context.</ dd >
620
620
</ dl >
@@ -787,7 +787,7 @@ <h2 id="context">Context</h2>
787
787
< ol id ="process-context " class ="algorithm ">
788
788
< li > If < em > value</ em > is an < tref > array</ tref > , process
789
789
each element as < em > value</ em > , in order using < a href ="#process-context "> Step 2</ a > .</ li >
790
- < li > If < em > value</ em > is a simple < tref > string</ tref > , it MUST have a lexical form of absolute < tref > IRI</ tref > .
790
+ < li > If < em > value</ em > is a simple < tref > string</ tref > , it MUST have a lexical form of < tref > absolute IRI</ tref > .
791
791
< ol class ="algorithm ">
792
792
< li > Dereference < em > value</ em > .</ li >
793
793
< li > If the resulting document is a JSON document, extract the top-level < code > @context</ code >
@@ -805,21 +805,21 @@ <h2 id="context">Context</h2>
805
805
or being an empty string, perform the following steps:
806
806
< ol class ="algorithm ">
807
807
< li > If the key's value is a simple < tref > string</ tref > , the value MUST have the form of
808
- < tref > term</ tref > , < tref > compact IRI</ tref > , absolute < tref > IRI</ tref > . Determine the IRI mapping value by
808
+ < tref > term</ tref > , < tref > compact IRI</ tref > , < tref > absolute IRI</ tref > . Determine the IRI mapping value by
809
809
performing < a href ="#iri-expansion "> IRI Expansion</ a > on the associated value. If the result of the IRI
810
- mapping is an absolute IRI, merge the key-value pair into the < tref > local context</ tref >
810
+ mapping is an < tref > absolute IRI</ tref > , merge the key-value pair into the < tref > local context</ tref >
811
811
< tref > term mapping</ tref > .</ li >
812
812
< li > Otherwise, the key's value MUST be a < tref > JSON object</ tref > .
813
813
< ol class ="algorithm ">
814
814
< li > The value MUST have a < code > @id</ code > key with a string value, the value MUST have the
815
- form of < tref > term</ tref > , < tref > compact IRI</ tref > , absolute < tref > IRI</ tref > . Determine the IRI mapping value
815
+ form of < tref > term</ tref > , < tref > compact IRI</ tref > , < tref > absolute IRI</ tref > . Determine the IRI mapping value
816
816
by performing < a href ="#iri-expansion "> IRI Expansion</ a > on the associated value. If the result of
817
- the IRI mapping is an absolute < tref > IRI</ tref > , merge the key-value pair into the < tref > local context</ tref >
817
+ the IRI mapping is an < tref > absolute IRI</ tref > , merge the key-value pair into the < tref > local context</ tref >
818
818
< tref > term mapping</ tref > .</ li >
819
819
< li > If the value has a < code > @type</ code > key, the value MUST have the form of < tref > term</ tref > ,
820
- < tref > compact IRI</ tref > , absolute < tref > IRI</ tref > or the < tref > keyword</ tref > < code > @id</ code > . Determine the IRI by
820
+ < tref > compact IRI</ tref > , < tref > absolute IRI</ tref > or the < tref > keyword</ tref > < code > @id</ code > . Determine the IRI by
821
821
performing < a href ="#iri-expansion "> IRI Expansion</ a > on the associated value. If the result of the
822
- IRI mapping is an absolute < tref > IRI</ tref > or < code > @id</ code > , merge into the < tref > local context</ tref >
822
+ IRI mapping is an < tref > absolute IRI</ tref > or < code > @id</ code > , merge into the < tref > local context</ tref >
823
823
< tref > coercion mapping</ tref > .</ li >
824
824
< li > If the value has a < code > @list</ code > key, the value MUST be
825
825
< code > true</ code > or < code > false</ code > . Merge into the < tref > local context</ tref > < tref > list
@@ -837,11 +837,11 @@ <h2 id="context">Context</h2>
837
837
</ li >
838
838
</ ol >
839
839
840
- < p class ="note "> It can be difficult to distinguish between a < tref > compact IRI</ tref > and an absolute < tref > IRI</ tref > ,
840
+ < p class ="note "> It can be difficult to distinguish between a < tref > compact IRI</ tref > and an < tref > absolute IRI</ tref > ,
841
841
as a < tref > compact IRI</ tref > may seem to be a valid IRI < em > scheme</ em > . When performing repeated IRI expansion,
842
842
a term used as a prefix may not have a valid mapping due to dependencies in resolving term definitions. By
843
843
continuing < a href ="#object-context "> Step 2.3.2</ a > until no changes are made, mappings to IRIs created
844
- using an undefined term prefix will eventually resolve to absolute < tref > IRI</ tref > s.</ p >
844
+ using an undefined term prefix will eventually resolve to < tref > absolute IRI</ tref > s.</ p >
845
845
846
846
< p class ="issue "> < a href ="https://github.com/json-ld/json-ld.org/issues/43 "> Issue 43</ a >
847
847
concerns performing IRI expansion in the key position of a context definition.</ p >
@@ -851,7 +851,12 @@ <h2 id="context">Context</h2>
851
851
< h2 > IRI Expansion</ h2 >
852
852
< p > Keys and some values are evaluated to produce an < tref > IRI</ tref > . This section defines an algorithm for
853
853
transforming a value representing an IRI into an actual IRI.</ p >
854
- < p > < tref > IRI</ tref > s may be represented as an absolute IRI, a < tref > term</ tref > or a < tref > compact IRI</ tref > .</ p >
854
+ < p > < tref > IRI</ tref > s may be represented as an < tref > absolute IRI</ tref > , a < tref > term</ tref > or a < tref > compact IRI</ tref > .</ p >
855
+ < p > An < tdef > absolute IRI</ tdef > is defined in [[!RFC3987]] containing a < em > scheme</ em > along with
856
+ < em > path</ em > and optional < em > query</ em > and fragment segments. A < tdef > relative IRI</ tdef > is an IRI
857
+ that is relative some other < tref > absolute IRI</ tref > ; in the case of JSON-LD this is the base location
858
+ of the document.</ p >
859
+
855
860
< p > The algorithm for generating an IRI is:
856
861
< ol class ="algorithm ">
857
862
< li > Split the value into a < em > prefix</ em > and < em > suffix</ em > from the first occurrence of ':'.</ li >
@@ -865,7 +870,7 @@ <h2>IRI Expansion</h2>
865
870
</ p >
866
871
< p class ="note ">
867
872
Previous versions of this specification used < code > @base</ code > and < code > @vocab</ code > to define IRI prefixes
868
- used to resolve relative IRIs. It was determined that this added too much complexity, but the issue
873
+ used to resolve < tref title =" relative IRI " > relative IRIs</ tref > . It was determined that this added too much complexity, but the issue
869
874
can be re-examined in the future based on community input.
870
875
</ p >
871
876
</ section >
@@ -1827,12 +1832,13 @@ <h3>RDF Conversion Algorithm</h3>
1827
1832
< li > Otherwise, set the < tref > active property</ tref > to the result of performing
1828
1833
< a href ="#iri-expansion "> IRI Expansion</ a > on the key.</ li >
1829
1834
< li >
1830
- If the < tref > active property</ tref > is the target of a < code > @list </ code > coercion,
1831
- and the value is an < tref > array</ tref > ,
1835
+ If the < tref > active property</ tref > is an < tref > absolute IRI </ tref > and is the
1836
+ target of a < code > @list </ code > coercion, and the value is an < tref > array</ tref > ,
1832
1837
process the value as a list as described in in < a href ="#list-conversion "> List Conversion</ a > .
1833
1838
</ li >
1834
1839
< li >
1835
- Otherwise, create a new < tref > processor state</ tref > copies of the < tref > active context</ tref > ,
1840
+ Otherwise, If the < tref > active property</ tref > is an < tref > absolute IRI</ tref > ,
1841
+ create a new < tref > processor state</ tref > copies of the < tref > active context</ tref > ,
1836
1842
< tref > active subject</ tref > and < tref > active property</ tref > and process the value
1837
1843
starting at < a href ="#processing-step-associative "> Step 2</ a > and proceed using the
1838
1844
previous < tref > processor state</ tref > .
0 commit comments