Closed lo48576 closed 4 years ago
Thanks for pointing that out. Digging a little more into the RFCs, I found the following NOTE (in RFC 3986 §1.2.3):
NOTE: Previous specifications used the terms "partial URI" and "relative URI" to denote a relative reference to a URI. As some readers misunderstood those terms to mean that relative URIs are a subset of URIs rather than a method of referencing URIs, this specification simply refers to them as relative references.
So what the JSON-LD specs calls "absolute IRI" and "relative IRI" should in fact be called "absolute IRI reference" (which is equivalent to "IRI") and "relative IRI reference". According to the RFC "absolute IRI" is more restrictive (no fragment) and "relative IRI" does not exist...
NB: I know that the term "absolute IRI reference" is never used in the RFC, but since "relative IRI reference" is, and we have a mention of "the absolute form [of an IRI reference]", I think we can safely extrapolate that.
I see two options here. I'll post them in different comments so that people express their opinion with the thumbs up/down icons.
Option 1
We replace, in the terminology section and in the full text of the specs, all occupernces of
We mention in the definition of "absolute IRI reference" that it is equivalent to "IRI" per RFC 3987, but I think it is important in our specs that we keep it explicit that they are absolute. Most people reading "IRI" may wrongly think "it might be absolute or relative".
Option 2
We bite the bullet and we explain in the terminology section that our use of "absolute IRI" and "relative IRI" is not strictly aligned with RFC 3987, but that we decided to keep it because
I think the other option is to just use IRI
for absolute IRI
, and relative IRI reference
for relative IRI
. There are some cases where we may use IRI
in an inconsistent way, but this better aligns us with best practice.
The Terminology references are directly to the RFCs, and not into our own Terminology section, so we probably can't count on people seeing this when looking up a term, but we do that already for list/array.
In JSON-LD spec, "absolute IRI" is actually same as "IRI" in RFC 3987 (defined by
IRI
rule), but not "absolute IRI" in RFC 3987 (defined byabsolute-IRI
rule).It seems that RFC 3986 (and also 3987) defines hierarchy of some kinds of URIs / IRIs:
Simply saying "URI" (and "IRI") automatically means it is absolute, and it should be called "IRI reference" to include relative IRI. "Absolute IRI" (defined by
absolute-IRI
rule) seems to be unable to have a fragment. (However, RFC also saying "absolute form" of IRI references, so RFC itself is confusing...)So, I think "absolute IRI" in JSON-LD spec and "absolute IRI" in RFC differs. The former is defined by
IRI
rule and called "IRI" in RFC, but the latter is defined byabsolute-IRI
rule.Conclusion:
I'm sorry if I am misunderstanding...