-
Notifications
You must be signed in to change notification settings - Fork 14
Description
At the RDF model level, relative URIs currently do not exist: all URIs are absolute. Even though relative URIs are permitted in some RDF serializations, they are converted to absolute URIs during processing, and therefore lost.
URI allocation is a problem in RDF, as explained in issue #12, because allocating permanent absolute URIs is considerably more difficult in practice than in theory. One way to reduce the difficulty of URI allocation would be to allow relative URIs at the RDF model level, so that they are retained during processing. Relative URIs would allow the author to allocate mnemonic URIs based on natural keys, without incurring the up-front burden of assigning permanent absolute URIs. If desired, those relative URIs could be changed later to permanent absolute URIs.
Since relative URIs are only unique within a particular scope of use -- such as a file -- when combining data from different scopes or sources, those relative URIs should be renamed prior to merging RDF data, in a way that ensures continued uniqueness in the merged result. Two possibilities:
-
Permanent absolute URIs could be assigned prior to merging.
-
New relative URIs could be assigned prior to merging, by prepending source tags to the old relative URIs. For example, if you are merging data from two sources x and y, then you could prepend "x." or "y." to all relative URIs in those sources (respectively) before merging. Relative URI from source x would become <x.jane> while relative URI from source y would become <y.jane>. This would guarantee continued uniqueness in the merged result.
This approach would require a small change to the RDF standards. Note that this change was previously proposed for RDF 1.1, but not adopted. (The RDF 1.1 charter was tightly constrained for backward compatible with RDF 1.0.)
Tools should also be updated to:
-
retain relative URIs while processing -- details TBD;
-
(optionally) rename relative URIs when merging data, by prepending a source tag to each relative URI; and
-
(optionally) warn when merging data containing potentially conflicting relative URIs.
See also TimBL's Design Issues note on relative URIs