SkosCoreGuideToc/SectionVersioning

From W3C Wiki

Section: Versioning and Change Management

Discrete Scheme Versions

This section describes how discrete versioning of SKOS concept schemes may be represented in RDF, using properties from OWL and Dublin Core vocabularies.

It is recommended that you assign a URI to the base scheme and to each scheme version. For example:


Base scheme URI:

http://my.example.org/thesaurus

Scheme versions URIs:

http://my.example.org/thesaurus/1.0
http://my.example.org/thesaurus/1.1
http://my.example.org/thesaurus/1.2
http://my.example.org/thesaurus/1.3


For all concepts you publish, declare that they are a part of the base scheme:


<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:skos="http://www.w3.org/2004/02/skos/core#">

  <skos:Concept rdf:about="http://my.example.org/thesaurus/102#concept">
    <skos:inScheme rdf:resource="http://my.example.org/thesaurus"/>
  </skos:Concept>

</rdf:RDF>


Then, for each concept, you may additionally declare that they are a part of one or more of the scheme versions, for example:


<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:skos="http://www.w3.org/2004/02/skos/core#">

  <skos:Concept rdf:about="http://my.example.org/thesaurus/102#concept">
    <skos:inScheme rdf:resource="http://my.example.org/thesaurus/1.0"/>
    <skos:inScheme rdf:resource="http://my.example.org/thesaurus/1.1"/>
    <skos:inScheme rdf:resource="http://my.example.org/thesaurus/1.2"/>
  </skos:Concept>

</rdf:RDF>


N.B. We recommend that you do not change the URI for a concept with each scheme version. The more stable your concept URIs are, the more consistently they will be applied.

Scheme Version Metadata

Some properties from OWL and Dublin Core allow you to describe the relationships between versions of a scheme. For example:


<rdf:RDF  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:skos="http://www.w3.org/2004/02/skos/core#"
          xmlns:dc="http://purl.org/dc/elements/1.1/"
          xmlns:dcterms="http://purl.org/dc/terms/">
         
  <skos:ConceptScheme rdf:about="http://my.example.org/thesaurus">
    <dc:title xml:lang="en">My Example Thesaurus</dc:title>
    <dc:description xml:lang="en">An example thesaurus invented for the SKOS Core guide.</dc:description>
    <dcterms:hasVersion rdf:resource="http://my.example.org/thesaurus/1.0"/>
    <dcterms:hasVersion rdf:resource="http://my.example.org/thesaurus/1.1"/>
    <dcterms:hasVersion rdf:resource="http://my.example.org/thesaurus/1.2"/>
    <dcterms:hasVersion rdf:resource="http://my.example.org/thesaurus/1.3"/>
  </skos:ConceptScheme>

  <skos:ConceptScheme rdf:about="http://my.example.org/thesaurus/1.3">
    <dc:title xml:lang="en">My Example Thesaurus Version 1.3</dc:title>
    <dc:description xml:lang="en">An example thesaurus invented for the SKOS Core guide.</dc:description>
    <dcterms:isVersionOf rdf:resource="http://my.example.org/thesaurus"/>
    <dcterms:issued>2004-10-05</dcterms:issued>
    <dcterms:modified>2004-10-08</dcterms:modified>
    <owl:priorVersion rdf:resource="http://my.example.org/thesaurus/1.2"/>
    <owl:priorVersion rdf:resource="http://my.example.org/thesaurus/1.1"/>
    <owl:priorVersion rdf:resource="http://my.example.org/thesaurus/1.0"/>
    <owl:versionInfo>13 new concepts, 6 concept changes from version 1.2</owl:versionInfo>
  </skos:ConceptScheme>

</rdf:RDF>


Tracking Changes to Concepts

Some basic housekeeping of concepts can be done with Dublin Core properties, for example:


<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
  xmlns:dcterms="http://purl.org/dc/terms/">

  <skos:Concept rdf:about="http://my.example.org/thesaurus/102#concept">
    <dcterms:issued>2004-10-05</dcterms:issued>
    <dcterms:modified>2004-10-08</dcterms:modified>
  </skos:Concept>

</rdf:RDF>


Changes to a concept can be recorded via history notes. A structured value history note captures the most information, for example:


<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
  xmlns:dcterms="http://purl.org/dc/terms/">

  <skos:Concept rdf:about="http://my.example.org/thesaurus/102#concept">
    <skos:historyNote rdf:parseType="Resource">
      <rdf:value>The preferred label was changed from 'pink' to 'pink (colour)'.</rdf:value>
      <dc:date>2004-10-08</dc:date>
      <!-- Other properties of the note ... -->
    </skos:historyNote>
  </skos:Concept>

</rdf:RDF>


See also the section [advnaced notes].

Concept Stability, Deprecation and Replacement

@@TODO concept is candidate, concept is deprecated.


@@TODO


The replacement of one concept by another can be represented using properties from Dublin Core, for example:


<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
  xmlns:dcterms="http://purl.org/dc/terms/">

  <skos:Concept rdf:about="http://my.example.org/thesaurus/102#concept">
    <dcterms:isReplacedBy rdf:resource="http://my.example.org/thesaurus/6077#concept"/>
  </skos:Concept>

  <skos:Concept rdf:about="http://my.example.org/thesaurus/6077#concept">
    <dcterms:replaces rdf:resource="http://my.example.org/thesaurus/102#concept"/>
  </skos:Concept>

</rdf:RDF>


@@TODO replacement with combinations ???


@@TODO