3.1 - Structuur en onderhoud

STRUCTUUR

De thesaurus binnen TOOI

Een thesaurus is een systematische beschrijving van begrippen waarmee items ingedeeld kunnen worden. Zoals besproken in de inleiding gebruiken we SKOS voor het vormgeven van thesauri. Binnen TOOI zien we een thesaurus als een RDF-graaf met daarin feiten uitgedrukt met SKOS-elementen. Een concept (een resource van het type skos:Concept) kan hiërarchisch onder een ander concept geordend zijn (skos:broader). Het heeft ook een lexicalisatie: de talige vorm van het concept. Dit is geïllustreerd in het volgende plaatje. Bij de beschrijving van concepten hanteren we ook properties buiten SKOS zijn gedefinieerd, zoals beschreven in het het hoofdstuk over de TOOI-ontologie.

Het TOOI-kennismodel omvat meerdere thesauri. Sommige thesauri zijn voor wat betreft de inhoud in beheer bij andere partijen dan KOOP, terwijl KOOP wel verantwoordelijk is voor het implementere en publiceren conform SKOS. Dat betekent dat KOOP zorg draagt voor het toekennen van URIs aan de concepten en het beschrijven van hun eigenschappen en relaties in de vorm van een RDF-graaf. Een voorbeelden is de thesauri TOOI-Top. TOOI-Kern is de thesaurus waarvan KOOP de inhoud zelf bepaalt, met als doel het systematisch indelen van diverse soorten objecten, bijvoorbeeld informatieobjecten en overheidsorganisaties. SKOS onderkent naast de graaf als eenheid van informatie ook nog de notie conceptschema (skos:ConceptScheme). De standaard definieert in [1] een conceptschema als een aggregatie van concepten. Zoals blijkt uit [2] is de achterliggende intentie om hiermee de notie "knowledge organisation scheme (KOS)" te vatten — en een "thesaurus" is daar een voorbeeld van. De groepering van concepten in een conceptschema is gebaseerd op inherente eigenschappen van de concepten, bijvoorbeeld het domein of onderwerp waar ze betrekking op hebben.

Binnen TOOI gebruiken we het woord "thesaurus" uitsluitend om te verwijzen naar grafen — dus niet naar instanties van skos:ConceptScheme. We gebruiken conceptschema's om binnen een thesaurus concepten te groeperen in handzame eenheden, onder meer ten behoeve van het genereren van waardelijsten. Soms vormen de concepten in een schema het bereik van een bepaalde ontologische property. Officiële publicaties (die een subklasse vormen van Informatieobject) hebben bijvoorbeeld als waarde voor de property tooiont:thema een concept uit het conceptschema tooitop:toplijst.

Een concept is binnen TOOI altijd gedefinieerd als deel uitmakend van één of meer conceptschema's. Een thesaurus bevat minimaal één conceptschema, soms meer.

De SKOS-standaard gaat in [2] in op de relatie tussen conceptschema's en grafen. Het grote verschil is dat een conceptschema concepten bevat maar geen uitspraken over die concepten. Een graaf daarentegen bevat uitspraken (assertions) die betrekking hebben op de concepten. Je kunt dus zeggen dat een semantische relatie tussen twee concepten vastgelegd wordt in een graaf, maar niet dat deze vastgelegd wordt in een conceptschema ("there is no mechanism in SKOS to record that a specific statement concerning these concepts, e.g. a skos:broader assertion, pertains to a specific concept scheme, whereas a KOS is usually seen as consisting of both its concepts and the links that define them"[2]). Het verschil is belangrijk, verwarring ligt op de loer. Zie ook de paragraaf waarin de aard van grafen nader besproken wordt.

[1] https://www.w3.org/TR/skos-reference/

[2] https://www.w3.org/TR/skos-primer

Conceptcollecties

SKOS kent naast conceptschema's nog een manier om concepten buiten de concepthiërarchie om te groeperen: collecties. Soms is het nuttig om verschillende groeperingen van concepten naast elkaar te kunnen zetten, zonder deze groeperingen zelf als een concept te benoemen. Stel, de thesaurus van een bibliotheek met content over levensmiddelen definieert tientallen concepten voor soorten melk. In dat geval kan het nuttig zijn om de collectie <melk-naar-producerend-dier> te benoemen (geitenmelk, kamelenmelk, konijnenmelk), naast <melk-naar-vetgehalte> (volle melk, magere melk) en <melk-naar-houdbaarheidsbehandeling> (gepasteuriseerde melk, lang houdbare melk). Ook komt het voor dat een collectie een hiërarchische ordening definieert die niet als zodanig in de thesaurus voorkomt. Zo zouden we ons voorbeeld kunnen uitbreiden door onder <melk-naar-producerend-dier> nog de collecties <haasachtigen> en <evenhoevigen> te definiëren. Zie BIJLAGE 1 - Conceptcollecties en hiërarchie voor nadere toelichting.

Het verschil tussen collectie en concept is evident. In de bibliotheek uit het voorbeeld kan het heel nuttig zijn te kunnen zoeken naar content over geitenmelk en naar lang houdbare melk, terwijl het zoeken naar content over <melk-naar-producerend-dier> als zodanig juist niet ondersteund moet worden — laat staan het zoeken naar <evenhoevigen>. De bibliotheek in het voorbeeld heeft immers boeken over levensmiddelen, niet over dieren. Concepten zeggen iets over contentitems (of andere objecten), terwijl collecties iets zeggen over concepten.

Ook het onderscheid tussen collectie en schema is duidelijk. Conceptschema's groeperen concepten op basis van hun inherente eigenschappen, bijvoorbeeld het domein of onderwerp waar ze betrekking op hebben. Daarmee vormen ze een eenheid van redactioneel beheer. Collecties zijn groeperingen die helpen om een specifieke informatievraag te beantwoorden. In de collecties kunnen concepten uit verschillende conceptschema's naast elkaar staan.

Binnen TOOI-Kern maken we veel gebruik van collecties, meestal met oog op het gebruik van de concepten in een bepaalde toepassing — dus het genereren van waardelijsten.

ONDERHOUDSCYCLUS

Releasematig beheer

Van de thesauri wordt periodiek een nieuwe versie vastgesteld. De oude versie blijft beschikbaar. We voeren de wijzigingen door in de werkversie van de betreffende thesaurus . Vervolgens maken we een geversioneerde afslag van de werkversie, waarbij de versieaanduiding onderdeel is van de baseURI. De concepten in de werkversie en de afslag zijn verder identiek. Het is dus de thesaurus (de graaf) die een versienummer krijgt, en niet het conceptschema.

Een voorbeeld. De werkversie van de TOP-thesaurus heeft de baseURI <``https://identifier.overheid.nl/tooi/def/thes/top``>. De inhoud hiervan wijzigt door de tijd. Op het moment van schrijven is de meest recente afslag <``https://identifier.overheid.nl/tooi/def/thes/top``_v1.1>. De conventie die we hierbij hanteren is dat de baseURI  van de afslag gelijk is aan de baseURI van de werkversie gevolgd door "_v" en de versieaanduiding.

Bij de werkversie leggen we vast wat de current version van de werkversie is. Hiervoor gebruiken (zoals ook beschreven in de inleiding) PAV, een specialisatie van PROV-O speciaal voor dit doel. De waarde van de property pav:hasCurrentVersion is de baseURI (ook genoemd graphURI) van de meest recente afslag. De property  pav:hasVersion gebruiken we om de link te leggen met oudere versies, niet zijnde de current version. Bij het maken van een nieuwe afslag vult de redacteur de nieuwe waarde van deze property handmatig in. Het nummer van de versie, zonder "_v", wordt als een stringwaarde opgeslagen bij pav:version.  Het volgende codeblok illustreert dit in TRIG-format. Regel 3 t/m 14 vormen de werkversie van de graaf tooitop. Deze werkversie is versie 1.1. De baseURI van de geversioneerde afslag heeft een versie-aanduiding. Deze graaf omvat regels 18 t/m 28. Resourcedefinities, prefixdefinities enzovoorts zijn weggelaten.

Voorbeeld metadata werkversie thesaurus

<https://identifier.overheid.nl/tooi/def/thes/top> {
 
  <https://identifier.overheid.nl/tooi/def/thes/top> #werkversie
    a owl:Ontology ;
    owl:imports <http://www.w3.org/2004/02/skos/core> ;
    owl:versionInfo "v1.1 - Hier staat in het echt informatieve tekst" ;
    dcterms:modified "2041-02-08"^^xsd:date ;
    rdfs:comment "Werkversie" ;
    rdfs:label "tooitop"@nl ;
    pav:version "1.1" ;
    pav:hasCurrentVersion <https://identifier.overheid.nl/tooi/def/thes/top_v1.1> ;
    pav:hasVersion <https://identifier.overheid.nl/tooi/def/thes/ont_v1.0> ;
    # enzovoort, voor elke versie een waarde
  .
  ### resourcedefinities volgen hier
}
<https://identifier.overheid.nl/tooi/def/thes/top-v1.1> {
 
  <https://identifier.overheid.nl/tooi/def/thes/top-v1.1> #geversioneerde afslag
    a owl:Ontology ;
    owl:imports <http://www.w3.org/2004/02/skos/core> ;
    owl:versionInfo "v1.1 - Hier staat in het echt informatieve tekst" ;
    dcterms:modified "2041-02-08"^^xsd:date ;
    rdfs:comment "Geversioneerde afslag" ;
    rdfs:label "tooitop-v1.1"@nl ;
    pav:version "1.1" ;
    pav:hasPreviousVersion <https://identifier.overheid.nl/tooi/def/thes/top_v1.0> ;
  .
  ### resourcedefinities volgen hier
}

Het ligt voor de hand om bij elke nieuwe release de waardelijsten die van de thesaurus afhankelijk zijn opnieuw te genereren, maar het is de redacteur die besluit of dat ook nodig is en gebeurt. Een wijziging in een concept hoeft immers niet door te werken in alle waardelijsten.

Conceptcollecties worden in de werkversie aangemaakt en beheerd. Voor de volledigheid worden ze meegenomen in de afslagen. Wijzigingen in de collecties leiden niet tot een nieuwe release en dus ook niet tot een nieuwe afslag. Tussentijdse versies van de collecties zijn later nog altijd afleidbaar uit de gegenereerde waardelijsten. Een wijziging in een collectie leidt tot een nieuwe versie van de bijbehorende waardelijst. De collectie heeft geen versieaanduiding, maar de waardelijst wel. De redacteur zal na het wijzigen van de collectie de bijbehorende waardelijst opnieuw moeten genereren, waarbij hij of zij zelf de nieuwe versieaanduiding bepaalt. Deze aanduiding wordt verwerkt in de bestandsnaam van de waardelijstversie en ook vastgelegd als de waarde van de property tooiwl:volgnummer. De waarde hiervan is beperkt tot xsd:int: het gaat niet om een versieaanduiding, maar veel meer om een volgnummer.

Overigens wordt in de waardelijst zowel vastgelegd van welke thesaurus (of register) de waardelijst is afgeleid (namelijk de werkversie, als waarde van pav:derivedFrom), als van welke geversioneerde afslag, als waarde van tooiwl:afgeleidVanVersie.

Verwijderen van concepten

Thesauri zijn de kleinste eenheden van beheer, dus in de thesauri houden we verder geen historie bij. Wanneer (in uitzonderlijke gevallen) een concept verwijderd wordt, verdwijnt deze ook "fysiek" uit de werkversie van de thesaurus. De definitie en de beschrijving van het concept zijn dan nog beschikbaar in de geversioneerde afslagen. De URI van het verwijderde concept voldoet dus aan de eisen die horen bij persistent URIs.