Skip to content

Retain relative URIs at the RDF model level #62

@dbooth-boston

Description

@dbooth-boston

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Category: language featuresFor language features of RDF itself -- model and syntax

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions