Requirement

Title

Unique identifiers for concepts

Identifier

SWIM-INFO-008

Requirement

An information definition shall provide explicit unique identifiers, in accordance with IETF RFC 3986 [RD 16], for each of its concepts or ensure that each concept is uniquely identifiable within the information definition.

Rationale

The unique identifiers can be used in statements of semantic correspondence to ensure that mappings are unambiguous.

Verification

Completeness

Examples/Notes

Note: Explicit unique identifiers can be provided, for example, as metadata fields attached to the concept in the information definition.

Level of Implementation

Mandatory

Guidance

IETF RFC 3986 is available at https://tools.ietf.org/html/rfc3986. It details the generic syntax for uniform resource identifiers (URIs). The standard gives the following examples of URI schemes:

The ATM Information Reference Model uses the urn scheme.

The specification accepts that not all information definitions adopt the IETF RFC 3986 approach. Therefore it permits other ways to ensure a concept is uniquely identifiable. This means the requirement can be satisfied by:

The specification does not put any requirements on who generates the identifier or how it is generated. However, it is assumed that they are generated by the organisation responsible for creating the information definition.

Verification Support

Completeness

Check that either:

[  ] Each concept has a unique identifier in accordance with IETF RFC 3986.

or

[  ] Each concept can be uniquely identified through some other mechanism e.g. by being uniquely named in a namespace.

Examples

The following examples show how to add explicit identifiers in XML Schema when needed.

Simple example

The example below shows how a simple identifier can be embedded into an XML schema. It makes use of the "id" attribute within the XML schema definition language. It is "simple" in the sense that the identifier has no intrinsic semantics of its own.

A complete example is available at: complete example.

<xs:element name="tobt" id="donlon003">

Advanced example

The example below shows a more advanced identifier. This takes the form of a URN that links to a given resource.

<xs:element name="tobt" id="http://swim.donlon-airport.com/property/tobt">