SkosDev/SkosCore/LocalId

From W3C Wiki
|

This is a description of a requirement to handle local (non-URI) identifiers for concepts ...

Requirement A

The property skos:externalID was intended to be used to specify any lexical identifier for a concept that is not a URI.

Essentially, whereas a URI is a globally unique identifier for a concept, the value of the skos:externalID property is supposed to be a locally unique identifier for a concept (i.e. uniquely identifies a concept within the scope of a specific concept-scheme only).

I feel the name of the property skos:externalID does not reflect well its intended meaning and usage, and should be replaced with something that does so better.

Proposal A

I suggest to do the following ...

  1. Deprecated the skos:externalID property.
  2. Add a new property skos:localId to replace skos:externalID.

Requirement B

If we allow concepts to be a member of more than one concept-scheme, then it becomes ambiguous which scheme the value of a skos:localId property should be scoped to.

So we need some way of saying 'concept X has local identifier Y within the scope of concept-scheme Z'.

Proposal B

I suggest something like the following to cope with requirement B ...

The skos:localId property be used in conjunction with a blank node and two new properties (e.g. called something like skos:idScope and skos:idValue) as in the following example ...


   <skos:Concept>
      <skos:prefLabel>Penguins</skos:prefLabel>
      <skos:inScheme rdf:resource="http://www.example.com/thesaurus"/>
      <skos:localId rdf:parseType="Resource">
         <skos:idValue>A8NH5</skos:idValue>
         <skos:idScope rdf:resource="http://www.example.com/thesaurus"/>
      </skos:localId>
   </skos:Concept>


So this proposal contains the following actions ...

  1. Add a new property called something like skos:idValue with domain rdf:Resource and range rdf:Literal.
  2. Add a new property called something like skos:idScope with domain rdf:Resource and range skos:[[ConceptScheme]].