ISKO Italia. Documenti

SKOS: Simple Knowledge Organisation System

Un sistema per l'organizzazione della conoscenza

Matteo Ballarin

testo dell'intervento al 2' Incontro ISKOI-UniMIB : Milano Bicocca : 9 giugno 2006

rielaborazione di parte della tesi di laurea discussa dall'autore presso l'Università di Venezia Ca' Foscari nell'anno accademico 2005-2006


Matteo Ballarin durante l'intervento alla Bicocca

Introduzione

Lo sviluppo del Web Semantico coinvolge, non solo nuove tecnologie come web service, motori di ricerca, ontologie, ma anche ambiti più diversi come la biblioteconomia e altre discipline che si occupano da centinaia d'anni dell'organizzazione della conoscenza (KOS).

La rapida diffusione dei mezzi e dei contenuti digitali su Web ha aumentato la necessità di organizzare l'immensa mole di informazioni.

Strumenti per l'organizzazione della conoscenza come thesaurus, tassonomie, schemi di concetti sono fondamentali per la nascita e lo sviluppo del Web Semantico.In questo aticolo viene preso in considerazione ed analizzata una tecnologia emergente candidata a diventare presto standard raccomandato dal W3C: SKOS.

SKOS: Simple Knowledge Organisation System

SKOS (Simple Knowledge Organisation System) è un'area di lavoro che sviluppa specifiche e standard per supportare l'uso dei sistemi d'organizzazione della conoscenza (KOS) nel quadro del web semantico [SKOS 05].

Sviluppato inizialmente dal luglio del 2003 (come progetto open-source) all'interno del progetto SWAD-E (Semantic Web Advanced Development for Europe) intendeva definire un modello per thesaurus compatibile con gli standard ISO più importanti (ISO 2788, ISO 5964). Dal Settembre 2004 la responsabilità per i successivi sviluppi è passata al W3C e il 10 Maggio 2005 è stato pubblicato il primo Working Draft. Attualmente grazie al contributo di numerosi sviluppatori e gruppi di discussione il 2 Novembre è stata pubblicata la seconda revisione del documento [SKOSCG05].

SKOS Core Vocabulary [SKOSCVS05] è stato progettato con l'idea di essere facilmente estensibile: esso vuole fare da connettore tra i più tradizionali sistemi di organizzazione della conoscenza usati nelle biblioteche, musei, archivi come i thesauri e i sistemi di classificazione e le nuove strutture pensate per il Web come le open-directory, i blog topic exchange.

SKOS Core Vocalulary consiste in una serie di classi RDFS e proprietà di RDF che sono usate per rappresentare il contenuto e la struttura di base dei cosiddetti concept-schema cioè thesaurus, schemi di classificazione, elenchi di titoli d'argomento, tassonomie, terminologie, glossari e altri tipi di vocabolario. Poiché sono in formato RDF, questi possono essere manipolati, trasformati, archiviati, e vi si possono fare ricerche usando gli strumenti RDF. Pertanto SKOS può essere usato come formato d'interscambio attraverso le librerie digitali e per il recupero dati. Inoltre è possibile l'interazione con altri strumenti e rappresentazioni usati nel web semantico.

Fig 1: La collocazione di SKOS ed il suo ruolo nell'ambito del semantic web.

La possibilità di essere esteso con altri vocabolari RDF come DCMI Metadata Terms e FOAF [FOAF] (Friend of a Friend) ne aumenta enormemente le potenzialità in quanto, in quei casi in cui gli strumenti di SKOS Core non dovesse soddisfare i requisiti o essere sufficienti, è possibile definire nuove classi. Per questo motivo SKOS Core offre una naturale flessibilità che fornisce una base per l'interoperabilità anche nelle situazioni in cui i concept-schema sono stati sviluppati utilizzando diverse specifiche.

Un'altra caratteristica che SKOS Core eredita da RDF è il meccanismo fornito dalle sub-classes e dalle sub-property in RDFS: per supportare questo tipo di estensione le proprietà di SKOS Core Vocabulary sono raggruppate in famiglie:

• Properties per le etichette lessicali

• Properties per le etichette per la documentazione

• Properties per le relazioni semantiche

• Properties per le etichette simboliche

Le properties all'interno di queste famiglie sono organizzate in maniera gerarchica in modo che sia possibile estendere quella più appropriata per le proprie necessità. Ecco un esempio che riguarda le properties per le relazioni semantiche: semanticRelation è la radice e i livelli successivi costituiscono delle "specializzazioni"; del nodo padre.

skos:semanticRelation
  |
  +-- skos:broader
  |
  +-- skos:narrower
  |
  +-- skos:related

SKOS Core può essere usato quindi per:

• Trasferire i sistemi KOS già esistenti nel mondo del Web

• Costruire da zero semplici concept-schemes per il Web

Esso fornisce un framework per creare dei "link"; tra i concetti e le parole e le frasi che usiamo nel comune linguaggio. Una volta che questo tipo di informazione è catturata può essere usata in moltissime applicazioni come la classificazione automatica dei documenti su Web o traduzioni multilingua di interi glossari.

SKOS Core: primi passi

Abbiamo detto che SKOS e' un'applicazione di RDF. Vediamo un esempio [SKOSTUT]:

Fig. 2 Esempio di grafo RDF

Questa riportata qui sotto è la serializzazione del grafo:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://www.example.com/eg#">
<rdf:Description rdf:about="http://www.example.com/eg#aResource">
<ex:aProperty rdf:resource="http://www.example.com/eg#anotherResource"/>
<ex:anotherProperty>An RDF Literal</ex:anotherProperty>
</rdf:Description>
</rdf:RDF>

 

Notiamo come in questo esempio sono presenti due namespace (URI) referenziati dai prefissi 'rdf' e 'ex' che forniscono un metodo per identificare in maniera non ambigua la semantica e le convenzioni che regolano l'utilizzo delle proprietà identificando l'authority che gestisce il vocabolario.

Definire i concetti: la classe Concept

SKOS Vocabolary considera "Concept"; l'unità fondamentale di qualunque concept-schema. La classe Concept permette di modellare una determinata risorsa in maniera da esprimere questa come un concetto. Un concetto può essere immaginato come un qualcosa che può essere definito o descritto.

Ogni concetto può avere una sola descrizione o meglio un solo "preferred term"; mentre può avere illimitate descrizioni alternative o "alternative tags";.

Il modo più semplice per definire un concetto in RDF è assegnargli un URI e utilizzare la forma skos:Concept.

Eccone un esempio [SKOSTUT]: qui la tripla love rdf:type Concept indica che love è un'istanza di Concept cioè la risorsa stessa; in questo caso love è un concetto.

esempio di statement RDF

Fig. 3 La classe love come istanza di Concept

Ecco qui di seguito, la sintassi RDF. Notiamo l'URI che identifica il namespace di SKOS e l'URI che identifica il concetto di "love";. Questo ci da una totale indipendenza da ogni thesauro. L'URI di SKOS Core Vocabulary è http://www.w3.org/2004/02/skos/core e i rispettivi URI per le classi e le proprietà aggiungendo un identificatore al termine della stringa ad esempio

http://www.w3.org/2004/02/skos/core#ConceptName


<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://www.example.com/concepts#love"/>

</rdf:RDF>

Etichettare i concetti: le etichette lessicali

Le etichette servono a denotare le risorse utilizzando il linguaggio comune.

Attraverso le etichette skos:prefLabel, skos:altLabel vengono indicati rispettivamente il termine preferito o più comunemente usato per un certo concetto e altri sinonimi.

Ecco un esempio [SKOSTUT]:

Fig. 4 Le etichette lessicali

La serializzazione in RDF

<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://www.example.com/concepts#animals">
<skos:prefLabel>animals</skos:prefLabel>
<skos:altLabel>creatures</skos:altLabel>
<skos:altLabel>fauna</skos:altLabel>
</skos:Concept>

</rdf:RDF>

Esistono poi altre tre etichette:

• skos:hiddenLabel: un etichetta "nascosta"; che normalmente non è visibile ma che permette l'accesso al contenuto ad applicazioni che fanno ricerche basate sul testo. Normalmente questa etichetta è utilizzata per includere varianti sintatticamente incorrette dello stesso termine: ad es. eletricita, elettricità ecc.

• skos:prefSymbol: un etichetta che permette di includere un simbolo o un'immagine di una certa risorsa

• skos:altSymbol: un simbolo o un immagine alternativa per una risorsa

Etichette multilingua

SKOS Core fornisce il modo di rappresentare i concetti in altre lingue attraverso delle etichette.

Questa è una possibilità molto importante, in quanto permette di definire lo stesso termine in più lingue e se, immaginiamo un futuro in cui il web semantico è una realtà, la possibilità di ricercare lo stesso termine in più lingue aumenta moltissimo le potenzialità [SKOSTUT].

etichette multilingua

Fig. 5 Etichette multilingua

 

<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://www.example.com/concepts#shrubs">
<skos:prefLabel xml:lang="en">shrubs</skos:prefLabel>
<skos:altLabel xml:lang="en">bushes</skos:altLabel>
<skos:prefLabel xml:lang="fr">arbuste</skos:prefLabel>
<skos:altLabel xml:lang="fr">buisson</skos:altLabel>
</skos:Concept>

</rdf:RDF

Aggiungere altre informazioni utili: proprietà per la documentazione

Ci sono 7 proprietà che si possono usare per aggiungere dell'informazione per la descrizione di un concetto. Queste proprietà hanno come superclasse skos:note: essa può essere usata per fornire una qualunque tipo di descrizione utile a qualsiasi scopo.

Le sottoclassi invece sono:

• skos:definition: utile per dare una spiegazione completa e precisa della risorsa. Ad esempio "frutto della pianta della famiglia delle Bromeliaceae";.

• skos:scopeNote: utilizzato restringere od aumentare la descrizione de concetto

Es: "Frequenze delle micronde: da 1GHz a 300 GHz.

• skos:example: utilizzato per fornire degli esempi dell'uso del termine o del concetto

• skos:historyNote: utilizzato per indicare significativi cambiamenti di significato.

Es: "Pere era stato inserito come concetto più specifico di verdura anziché frutta";.

• skos:editorialNote: utilizzato per fornire informazioni di tipo amministrativo

Es: "Rivolgersi al Dr.Miles per una definizione più completa del concetto";.

• skos:changeNote: utilizzato per tener traccia delle varie modifiche occorse.

Es: "Spostata la classe Pera da verdura a frutta. Effettuato il 15/12/2004 da Dr.Miles";.

Già con questo insieme ridotto di proprietà e di classi è possibile modellare un semplice esempio di concept schema.

Un esempio di glossario

Vogliamo rappresentare i seguenti termini estratti dal glossario presente sul sito di Ateneo dell'Università di Ca'Foscari nella sezione orientamento:

Piano di studio: 'insieme di insegnamenti che lo studente deve sostenere per ottenere il titolo di studio'

Semestre: 'arco di tempo in cui vengono tenuti gli insegnamenti'

Tutor: 'studente senior o docente a cui lo studente può rivolgersi avere per delle indicazioni'

 

Fig. 6 Rappresentazione grafica del glossario estratto dalla guida dello studente

 

La codifica del grafo in RDF/XML è presentata qui di seguito

<?xml version="1.0" encoding="utf-8"?>
<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:mt=http://www.w3.org/2003/03/glossary-project/data/glossaires/rdf-mt#>
<skos:Concept rdf:about="http://www.w3.org/2003/03/glossaryproject/data/glossaries/rdf-mt#Piano di Studio>
<skos:prefLabel>Piano di studio</skos:prefLabel>
<skos:definition>Insieme di insegnamenti che lo studente deve sostenere per ottenere il titolo di studio
</skos:definition>
</skos:Concept>

<skos:Concept rdf:about="http://www.w3.org/2003/03/glossary-project/data/glossaries/rdf-mt#Semestre">
<skos:prefLabel>Semestre</skos:prefLabel>
<skos:definition>Arco di tempo in cui vengono tenuti gli insegnamenti
</skos:definition>
</skos:Concept>
<skos:Concept rdf:about="http://www.w3.org/2003/03/glossary-project/data/glossaries/rdf-mt#Tutor">
<skos:prefLabel>Tutor</skos:prefLabel>
<skos:definition>studente senior o docente a cui lo studente può rivolgersi per delle indicazioni
</skos:definition>
</skos:Concept>
</rdf:RDF>

Le relazioni semantiche

Come detto in precedenza SKOS Core Vocabulary è un applicazione RDF disegnata per creare "concept schema";, dove con questo termine ci riferiamo a tutte quelle strutture come thesauri, vocabolari, tassonomie che integrano all'interno della propria struttura un determinato schema con delle relazioni semantiche per classificare, ordinare, regolare diversi concetti. Una delle cose fondamentali che questo framework offre è la possibilità di definire relazioni semantiche tra i concetti, un fatto molto familiare nella realtà e nella mente umana.

SKOS Core Vocabulary include delle proprietà per definire delle relazioni semantiche tra concetti diversi. Queste relazioni sono: skos:broader, skos:narrower e skos:related.

Per dire che un concetto ha un significato più generale di un altro si usa skos:broader, mentre per dire l'esatto inverso ovvero che il significato è più specifico si usa skos:narrower. Le due proprietà sono una la duale dell'altra.

Ecco un esempio [SKOSTUT]:

Fig. 7 Proprietà per le relazioni semantiche: narrower e broader

Ed ecco la serializzazione in RDF:

<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://www.example.com/concepts#mammals">
<skos:prefLabel>mammals</skos:prefLabel>
<skos:broader rdf:resource="http://www.example.com/concepts#animals"/>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#animals">
<skos:prefLabel>animals</skos:prefLabel>
<skos:narrower rdf:resource="http://www.example.com/concepts#mammals"/>
</skos:Concept>
</rdf:RDF>

Skos:related è più generico: si usa per dire che un determinato concetto ha una qualche relazione con un altro. A questo punto è opportuno introdurre una nuova classe che permette di relazionare diversi termini tra loro.

Vediamo ora un esempio che fa uso di queste nuove relazioni introdotte:

Un sempio di tassonomia

L'esempio di tassonomia presentato è estratto da un manuale di zoologia e illustra la classificazione scientifica del leopardo.

 

Per brevità nel grafo sottostante non sono stati riportati tutti i vari ordini.

Fig. 8 Esempio di estratto di tassonomia del leopardo

La rispettiva codifica in XML/RDF

<<?xml version="1.0" encoding="utf-8"?>
<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:ex="http://www.example.com/eg#">
<skos:Concept rdf:about="http://www.example.com/concepts#animali">
<skos:prefLabel>Animali</skos:prefLabel>
<skos:altLabel>Metazoi</skos:altLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#mammiferi">
<skos:prefLabel>mammiferi</skos:prefLabel>
<skos:narrower rdf:resource="http://www.example.com/concept#carnivori>
<skos:broader rdf:resource="http://www.example.com/concepts#animali"/>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#carnivori">
<skos:prefLabel>carnivori</skos:prefLabel>
<skos:narrower rdf:resource="http://www.example.com/concept#felidi>
<skos:broader rdf:resource="http://www.example.com/concepts#mammiferi"/>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#felidi">
<skos:prefLabel>Felidi</skos:prefLabel>
<skos:narrower rdf:resource=http://www.example.com/concept#Leopardo";/>
<skos:broader rdf:resource="http://www.example.com/concepts#carnivori"/>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#leopardo"> <skos:prefLabel>Leopardo</skos:prefLabel>
<skos:prefSymbol>rdf:resource=http://www.symbols.net/animal/tigris/img134.jpg";/>
<skos:broader rdf:resource="http://www.example.com/concepts#felidi"/>
</skos:Concept>

</rdf:RDF>

 

Notiamo la definizione dei vari concetti con la rispettiva definizione di URI. La forma gerarchica attribuita alla tassonomia è stata effettuata utilizzando l'uso di narrower e broader. Attraverso l'attributo rdf:resource viene indicata la risorsa con senso più ampio o più specifico.

Verso un esempio completo: la classe Concept Scheme

Abbiamo appena visto che spesso i concetti sono definiti in relazione con altri concetti. I casi presentati precedentemente erano degli estratti presi da strutture per l'organizzazione della conoscenza.

Quindi le classi e le proprietà viste finora permettevano solamente di estendere schemi di classificazione già esistenti.

Una cosa che molto spesso vorremmo fare e che, il framework di SKOS mette a disposizione, è costruire nuovi schemi partendo da zero.

Oltre alle relazioni semantiche offerte delle proprietà skos:narrower e skos:broader esiste la classe skos:Concept Scheme.

Questa classe permette di definire un concept-schema personalizzato, basato sulle nostre effettive necessità e che, grazie al meccanismo degli URI, potremmo usare insieme con altre strutture già esistenti per descrivere un certo dominio essendo sicuri di non portare nessuna ambiguità.

Fig.9 Rappresentazione di concept schema

 

Ecco presentato qui sopra un esempio di thesaurus che utilizza delle meta properties di DUBLIN CORE e FOAF per aggiungere dei metadati riguardanti lo schema: il titolo, l'autore e la descrizione.

Se ad esempio volessimo definire un semplice tesaurus in RDF/XML avremmo una codifica del genere:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#">
xmlns:dc="http://purl.org/dc/elements/1.1/">

<skos:ConceptScheme rdf:about="http:/example.com/thesaurus">
<dc:title>Un semplice esempio di thesauro</dc:title>
<dc:description>Un esempio di thesauro per mostrare l'uso di SKOS-Core schema</dc:description>
<dc:creator>Matteo Ballarin</dc:creator>
</skos:ConceptScheme>
</rdf:RDF>

xmlns:dc="http://purl.org/dc/elements/1.1/" è l'URI di Dublin Core che identifica le proprietà title, description e creator.
I concetti, come abbiamo visto prima, non devono per forza appartenere a un determinato schema, ma possono essere dichiarati come entità a se stante. Se però vogliamo dire che un certo termine appartiene ad un particolare schema, usiamo la proprietà skos:inScheme.Ad esempio:

Fig. 10 La proprietà inScheme


<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://www.example.com/concepts#love">
<skos:inScheme rdf:resource="http://www.example.com/conceptscheme"/>
</skos:Concept>
</rdf:RDF>

Quasi sempre i thesauri sono organizzati raggruppando i concetti in super categorie; delle categorie fondamentali se vogliamo. Per rappresentare un certo concetto come nodo di livello più alto esiste la proprietà skos:hasTopConcept. Questa permette di creare una struttura gerarchica come questa qui di seguito [SKOSTUT]:

Fig. 11 La proprietà hasTopConcept

<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:ConceptScheme rdf:about="http://www.example.com/conceptscheme">
<skos:hasTopConcept rdf:resource="http://www.example.com/concepts#biology"/>
<skos:hasTopConcept rdf:resource="http://www.example.com/concepts#geology"/>
<skos:hasTopConcept rdf:resource="http://www.example.com/concepts#agriculture"/>
<skos:hasTopConcept rdf:resource="http://www.example.com/concepts#culturalheritage"/>
</skos:ConceptScheme>
</rdf:RDF>

La proprietà hasTopConcept è molto importante in quanto, creando un collegamento tra concept schema e i vari concetti, permette di identificare in maniera immediata i termini padre di un dato termine e questo può essere molto utile in fase di consultazione o di ricerca nel thesauro.

La classe Collection e l'organizzazione a faccette

Molti thesauri organizzano i concetti secondo faccette (dall'inglese "facet";): dei raggruppamenti ad alto livello di concetti inerenti alla stessa categoria, disciplina, materiale, luogo, ecc. Ad esempio:

• Animali, mici, batteri, betulle potrebbero appartemenere alla faccetta degli esseri viventi.

• Scrivere, cucinare, scavare potrebbero appartenere alla faccetta delle attività.

• Compleanni, guerre, partire di calcio potrebbero apparire come faccetta di eventi.

Ecco un esempio in cui viene modellato la categoria del latte. Abbiamo preso in considerazione come elemento di raggruppamento l'origine: in questo caso è il latte prodotto dagli animali, e come elementi della schiera al suo interno troviamo il latte di mucca, il latte di bufala, di pecora e così via.

<milk by source animal> (Etichetta del nodo indicante le caratteristiche del raggruppamento)

• Buffalo milk

• cow milk

• goat milk

• sheep milk

La classe che ci permette di modellare queste particolari tipi di categorie è la classe skos:Collection.

Attraverso la proprietà skos:member è possibile aggiungere i vari componenti della schiera al nodo principale che descrive la categoria.

 

Fig. 12 La proprietà member per modellare schiere di conoscenza

La rispettiva codifica in RDF/XML

<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:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<skos:Collection>
<rdfs:label>milk by source animal</rdfs:label>
<skos:member rdf:resource="http://www.example.com/concepts#buffalomilk"/>
<skos:member rdf:resource="http://www.example.com/concepts#cowmilk"/>
<skos:member rdf:resource="http://www.example.com/concepts#goatmilk"/>
<skos:member rdf:resource="http://www.example.com/concepts#sheepmilk"/>
</skos:Collection>
<skos:Concept rdf:about="http://www.example.com/concepts#buffalomilk">
<skos:prefLabel>buffalo milk</skos:prefLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#cowmilk">
<skos:prefLabel>cow milk</skos:prefLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#goatmilk">
<skos:prefLabel>goat milk</skos:prefLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#sheepmilk">
<skos:prefLabel>sheep milk</skos:prefLabel>
</skos:Concept>
</rdf:RDF>

In alcune schiere l'ordine con cui sono rappresentati i concetti è significativo, quando ad esempio vogliamo rispettare l'ordine alfabetico. La sottoclasse skos:CollectionOrdered attraverso la proprietà skos:memberList permette di definire collezioni di concetti che rispettano un certo ordine. Ecco un esempio:

Fig. 13 Rappresentazione di collezione ordinata

La serializzazione in XML/RDF

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:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<skos:OrderedCollection>
<rdfs:label>people by age</rdfs:label>
<skos:memberList rdf:parseType="Collection">
<skos:Concept rdf:about="http://www.example.com/concepts#infants"/>
<skos:Concept rdf:about="http://www.example.com/concepts#children"/>
<skos:Concept rdf:about="http://www.example.com/concepts#adults"/>
</skos:memberList>
</skos:OrderedCollection>

<skos:Concept rdf:about="http://www.example.com/concepts#infants">
<skos:prefLabel>infants</skos:prefLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#children">
<skos:prefLabel>children</skos:prefLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#adults">
<skos:prefLabel>adults</skos:prefLabel>
</skos:Concept>
</rdf:RDF>

 

Ovviamente è possibile definire nested collection con cui rappresentare strutture come

people

.<people by age>

..<infants by age>

...babies

...toddlers

..children

..adults

La codifica in RDF/XML:

<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:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<skos:Concept rdf:about="http://www.example.com/concepts#people">
<skos:prefLabel>people</skos:prefLabel>
<skos:narrower>
<skos:OrderedCollection>
<rdfs:label>people by age</rdfs:label>
<skos:memberList rdf:parseType="Collection">
<skos:OrderedCollection>
<rdfs:label>infants by age</rdfs:label>
<skos:memberList rdf:parseType="Collection">
<skos:Concept rdf:about="http://www.example.com/concepts#babies"/>
<skos:Concept rdf:about="http://www.example.com/concepts#toddlers"/>
</skos:memberList>
</skos:OrderedCollection>
<skos:Concept rdf:about="http://www.example.com/concepts#children"/>
<skos:Concept rdf:about="http://www.example.com/concepts#adults"/>
</skos:memberList>
</skos:OrderedCollection>
</skos:narrower>
</skos:Concept>

<skos:Concept rdf:about="http://www.example.com/concepts#babies">
<skos:prefLabel>babies</skos:prefLabel>
</skos:Concept>
<skos:Concept rdf:about="http://www.example.com/concepts#toddlers">
<skos:prefLabel>toddlers</skos:prefLabel>
</skos:Concept>
</rdf:RDF>

Utilizzo avanzato di SKOS Core: l'integrazione di SKOS con altri vocabolari e il Subject Indexing

L'integrazione di SKOS con Dublin Core e FOAF

Come già anticipato, una delle caratteristiche fondamentali e più interessanti del framework di SKOS è la naturale estensibilità ed interoperabilità di SKOS Core Vocabulary con altri vocabolari per il web semantico.

Dublin Core, come accennato, si propone come uno standard di descrizione delle risorse in formato elettronico ed è costituito da diversi elementi descrittivi come: Title (titolo), Creator (Creatore), Subject (Soggetto) ecc.

Data la sua semplicità è ampiamente utilizzato e praticamente tutti gli standard e i progetti fanno riferimento ad esso.

L'esempio qui di seguito illustra come SKOS Core possa essere utilizzato in combinazione con altri vocabolari per il web semantico per creare descrizioni più ricche ed esaustive di un certo dominio.

Supponiamo quindi di voler modellare il concetto di laptop. Abbiamo supposto che da una certa data in poi, il termine preferito o più comunemente usato per riferirsi ad un pc portatile, sia passato da laptop a notebook. Abbiamo quindi utilizzato la proprietà "change note"; introdotta all'inizio e abbiamo ritenuto carino e opportuno indicare quando è avvenuto questo cambiamento e da chi è stato fatto. Un altro vocabolario utilizzato in questo esempio oltre a Dublin Core è FOAF (Friend Of A Friend).

FOAF (Friend-of-a-Friend) è il nome-acronimo del personaggio misterioso a cui capitano tutte le vicende raccontate nelle leggende metropolitane di mezzo mondo; ma è anche il nome di un progetto (FOAF-project.org) di semantic web che punta a creare una rete mondiale di amici-di-amici utilizzando un vocabolario comune, un vocabolario RDF chiamato FOAF: a essere codificati in formato standard sono dati personali e relazioni tra persone (gruppi di persone, comunità, aziende). In un file FOAF vengono inseriti la descrizione di un singolo e una lista di contatti (friends): amici, collaboratori, colleghi, ecc. L'idea di fondo è quella che per cercare una persona si possa fare come nella vita di tutti i giorni, muovendosi tra le conoscenze: questa persona ha collaborato con un amico con cui ho lavorato, per cui potrebbe interessarmi contattarlo... Il tutto si basa su un file di metadati RDF legato ad una pagina personale, che oltre a specificare dati e caratteristiche della persona, permette di ricostruire un elenco di altre pagine e dei relativi metadati (la rete di amici).

Attraverso quest'altra applicazione di RDF abbiamo aggiunto altri metadati importanti che rendono più complessa e strutturata la risorsa che stiamo descrivendo.

Conoscere il "percorso" che una determinato termine ha seguito da una comunità all'altra può aiutarci inoltre a comprendere la natura del termine.

esempio di integrazione di skos con altri vocabolari per il web semantico

Fig. 14 Un esempio di integrazione di diversi vocabolari

Il prefisso dc identifica una properties di Dublin Core, mentre foaf indica una property di FOAF

Ecco la serializzazione in XML/RDF del grafo

<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:foaf="http://xmlns.com/foaf/0.1/">

<skos:Concept rdf:about="http://www.example.org/concepts#laptops">
<skos:prefLabel>notebook computers</skos:prefLabel>
<skos:changeNote rdf:parseType="Resource">
<rdf:value>The preferred label for this concept changed from 'laptop computers' to
'notebook computers' on 23 Jan 1999.</rdf:value>
<dc:creator>
<foaf:Person>
<foaf:name>John Smith</foaf:name>
<foaf:mbox rdf:resource="mailto:jsmith@example.org"/>
</foaf:Person>
</dc:creator>
<dc:date>1999-01-23</dc:date>
</skos:changeNote>
</skos:Concept>
</rdf:RDF>

Da notare l'uso dell'attributo rdf:parseType=";Resource";, un'abbreviazione possibile nella sintassi RDF/XML per rappresentare i nodi vuoti.

Subject indexing

Scopo principale della creazione di un concept schema è fornire un aiuto nell'organizzazione di un insieme di risorse, ad esempio per un insieme di documenti Web.

Spesso di un documento è interessante conoscere il soggetto e i concetti che vengono rappresentati all'interno di esso. Il processo di subject indexing o indicizzazione per soggetto, consiste in un'analisi ragionata del contenuto del documento al fine di identificare i concetti in esso presenti, ed assegnare loro una qualche etichetta testuale, per permettere successivamente un rapido ritrovamento dell'informazione per un uso futuro.

Subject Indexing properties è in insieme di proprietà messe a disposizione da SKOS Core che permette l'estensione della proprietà dc:subject di Dublin Core per definire relazioni tra risorse e concetti.

Le proprietà messe a disposizione da SKOS per il subject indexing sono:

• skos:subject

• skos:isSubjectOf

• skos:primarySubject

• skos:isPrimarySubjectOf.

Skos:subject è una sub-property di dc:subject. Il significato è lo stesso ma mentre dc:subject si utilizza con qualsiasi tipo di risorsa, il campo di azione di skos:subject è ristretto alla classe Concept. Essa è quindi utilizzata per dire che un certo concetto è il soggetto di una determinata risorsa. Ad esempio

Fig. 15 La proprietà member subject

 

Questa proprietà supporta la regola di inferenza [(?d skos:subject?x) (?x skos:broader ?y) implica (?d skos:subject ?y)] cioè che se x è il soggetto di una certo predicato d e y ha significato più ampio (broader) allora anche y è soggetto di d.

Skos:isSubjectOf è invece la proprietà inversa di skos:subject.

La proprietà skos:PrimarySubject (e la proprietà inversa skos:isPrimarySubjectOf) è una sub-property di skos:subject. Essa è utile per affermare, in quei documenti o risorse in cui compaiono diversi soggetti, qual'è il soggetto principale.

Queste viste finora alcune delle principali classi ed etichette di SKOS Core Vocabulary. Molte di esse sono ancora in fase di testing da parte della comunità del W3C, altre necessitano di una revisione.

Proprietà più avanzate: SKOS Extension Vocalulary Specification

Oltre a queste viste finora, esistono delle altre proprietà pensate per estendere le funzionalità di SKOS Core Vocabulary e per supportare alcune caratteristiche dei sistemi per l'organizzazione della conoscenza, in particolare dei thesauri: SKOS Extensions [SKOSE04]. Di queste saranno dati alcuni accenni senza scendere nel dettaglio in quanto sono "unstable"; e necessitano di revisione da parte del gruppo di lavoro.

La proprietà skos:semanticRelation corrisponde al nodo radice di tutte le proprietà utilizzate per "linkare"; semanticamente diversi concetti all'interno dello stesso concept-schema. Al primo livello di estensione, abbiamo visto prima, troviamo le proprietà skos:broader, skos:narrower e skos:related. A loro volta queste prevedono un ulteriore livello di estensione.

Vediamo la struttura:

BroaderGeneric / NarrowerGeneric

  skos:semanticRelation skos:semanticRelation
  | |
  +--skos:broader +--skos:narrower
  | |
  +--skos:broaderGeneric +--skos:narrowerGeneric

Queste due proprietà permettono di "incasellare" in una più specifica o più generale categoria un concetto (sono l'equivalente semantico di rdsf:subClassOf .Vediamo un esempio:

<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:sex=";http://www.w3.org/2004/02/skos/extensions#";>

<skos:Concept rdf:about="http:/example.com/Concept/0004">
<skos:prefLabel>English pubs, clubs and bars</skos:prefLabel>
<skos:altLabel>English drinking establishments</skos:altLabel>
<skos:inScheme rdf:resource="http:/example.com/thesaurus"/>
<sex:narrowerGeneric rdf:resource="http:/example.com/Concept/0005"/>
</skos:Concept>
<skos:Concept rdf:about="http:/example.com/Concept/0005">
<skos:prefLabel>English pubs</skos:prefLabel>
<skos:altLabel>English public houses</skos:altLabel>
<skos:inScheme rdf:resource="http:/example.com/thesaurus"/>
<sex:broaderGeneric rdf:resource="http:/example.com/Concept/0004"/>
</skos:Concept>
</rdf:RDF>

BroaderPartitive / NarrowerPartitive

  skos:semanticRelation skos:semanticRelation
  | |
  +--skos:broader +--skos:narrower
  | |
  +--skos:broaderPartitive +--skos:narrowerPartitive

  dcterms:isPartOf dcterms:hasPart
  | | 
+--skos:broaderPartitive +--skos:narrowerPartitive

Queste properties si utilizzano per esprimere relazioni partitive (semanticamente equivalente a rdf:Type). Ad esempio l'Oxforshire è parte dell'Inghilterra: ecco la rappresentazione con SKOS:

<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:/example.com/concept/0007">
<skos:prefLabel>Oxfordshire county</skos:prefLabel>
<skos:altLabel>Oxon</skos:altLabel>
<skos:inScheme rdf:resource="http:/example.com/thesaurus"/>
<skos:broaderPartitive rdf:resource="http:/example.com/concept/0008"/>
</Concept>
<skos:Concept rdf:about="http:/example.com/concept/0008">
<skos:prefLabel>England</skos:prefLabel>
<skos:inScheme rdf:resource="http:/example.com/thesaurus"/>
<skos:narrowerPartitive rdf:resource="http:/example.com/concept/0007"/>
</Concept>
</rdf:RDF>

RelatedPartOf / RelatedHasPart

  skos:semanticRelation skos:semanticRelation
  | |
  +--skos:related +--skos:related
  | |
  +--skos:relatedPartOf +--skos:relatedHasPart

  dcterms:isPartOf dcterms:hasPart
  | | 
  +--skos:relatedPartOf +--skos:relatedHasPart

È simile alle properties precedenti serve per esprimere relazioni partitive. È stato introdotto nel framework di SKOS per permettere una completa interoperabilità tra thesauri che trattano in maniera diversa le relazioni semantiche di tipo partitivo.

Estendere e personalizzare le proprietà

Tutte le proprietà che collegano i concetti tra di loro fanno parte di una gerarchia derivata dalla proprietà fondamentale skos:semanticRelation. È possibile allora personalizzare ed estendere SKOS Vocabulary definendo delle altre relazioni semantiche secondo le proprie necessità.

È possibile inoltre "specializzare"; le proprietà per le etichette in maniera da avere preferred e lexical label diverse a seconda del tipo di utenti. Ad esempio per medici e pazienti, per bambini ed adulti, per scienziati e non.

Le nuove proprietà potranno avere un significato più specifico in modo da soddisfare un requisito particolare e locale, senza peraltro sacrificare il beneficio dell'interoperabilità offerta dall'utilizzo di una rappresentazione standard per i thesaurus.

Vediamo subito un esempio di questa importante ed interessante caratteristica.

Supponiamo di voler definire l'etichetta prefScientificLabel: ecco come è possibile farlo:

<rdf:RDF
xmlns:rdf=";http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:rdfs=";http://www.w3.org/2000/01/rdf-schema#";

<rdf:Property rdf:about=";http://www.example.com/skos-core- extension#prefScientificLabel";>
rdfs:label 'preferred scientific label';
skos:definition 'The preferred lexical label for scientists.';
rdfs:subPropertyOf skos:prefLabel;
</rdf:Property>
<rdf:Property rdf:about=";http://www.example.com/skos-core-extension#altScientificLabel";>
rdfs:label 'alternative scientific label';
skos:definition 'An alternative lexical label for scientists.';
rdfs:subPropertyOf skos:altLabel;
</rdf:Property>
</rdf:RDF>

Ecco un possibile utilizzo:

Fig. 16 Estensione e raffinamento di etichette in SKOS

Estensione e raffinamento di etichette in SKOS

Notiamo come la proprietà "prefScientificLabel"; è stata dichiarata come sub-property di skos:prefLabel mentre le altre come sub-properties di skos:altLabel. Questo per evitare di violare il vincolo secondo cui per ogni singolo concetto può esistere una sola preferred label.

Vediamo adesso un altro esempio riguardante l'estensione delle relazioni semantiche. Come già visto è necessario per creare un'estensione di una proprietà è necessario dichiararla.

Vogliamo quindi modellare la relazione "isPhisicalPartOf"; e la sua duale "hasPhisicalPart";.

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

<rdf:Property rdf:about="http://www.example.com/skos-core-extensions#isPhysicalPartOf">
<rdfs:comment>Expresses a physical has-part relationship between two concepts.</rdfs:comment>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2004/02/skos/core#broader"/>
<owl:inverseOf rdf:resource="http://www.example.com/skos-core-extensions#hasPhysicalPart"/>
</rdf:Property>
<rdf:Property rdf:about="http://www.example.com/skos-core-extensions#hasPhysicalPart">
<rdfs:comment>Expresses a physical is-part-of relationship between two concepts.</rdfs:comment>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2004/02/skos/core#narrower"/>
<owl:inverseOf rdf:resource="http://www.example.com/skos-core-extensions#isPhysicalPartOf"/>
</rdf:Property>

In questo esempio è interessante notare l'utilizzo di alcuni costrutti OWL [OWLHP] (Ontology Web Language).

OWL fornisce un linguaggio per definire ontologie strutturate basate sul Web che permettono un'integrazione ed un'interoperabilità maggiore di dati tra comunità che descrivono il loro dominio di conoscenza.

OWL si basa su "RDF Model and Schema" e aggiunge un vocabolario più ampio per descrivere proprietà e classi: tra le altre, relazioni tra classi (ad esempio disgiunzione), cardinalità (ad esempio "esattamente uno"), uguaglianza, tipizzazione più ricca di proprietà, caratteristiche di proprietà (ad esempio simmetria) e classi enumerate.

In questo esempio la proprietà owl:inverse viene usata per dichiarare la relazione inversa tra isPhysicalPart e hasPhysicalPart.

Vediamo ora come queste nuove proprietà possono essere utilizzate per modellare il Regno Unito e l'Irlanda del Nord come stato appartenente all'Europa e la proprietà duale.

<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:ext="http://www.example.com/skos-core-extensions#">
<skos:Concept rdf:about="http://www.example.com/geography#UK">
<skos:prefLabel>United Kingdom of Great Britain and Northern Ireland</skos:prefLabel>
<ext:isPhysicalPartOf rdf:resource="http://www.example.com/geography#Europe"/>
</skos:Concept>

<skos:Concept rdf:about="http://www.example.com/geography#Europe">
<skos:prefLabel>Europe</skos:prefLabel>
<ext:hasPhysicalPart rdf:resource="http://www.example.com/geography#UK"/>
</skos:Concept>

 

In questa maniera è possibile estendere o specializzare qualsiasi altra proprietà di SKOS e attraverso l'utilizzo di OWL, dichiarare significati particolari in maniera formale definendo delle restrizioni o delle proprietà particolari.

 

Applicazioni che utilizzano la tecnologia SKOS

UKAT: UK Archivial Thesaurus

Un esempio di thesaurus, costruito utilizzando il framework di SKOS, è UKAT [UKAT] raggiungibile all'indirizzo web http://www.ukat.org.uk.

Lo scopo di questo progetto era quello di creare un vocabolario controllato a cui potesse contribuire potenzialmente chiunque avesse determinate conoscenze di un certo argomento o disciplina.

Come punto di partenza per la strutturazione del thesaurus è stato preso UNESCO Thesaurus a cui sono stati aggiunti altri termini provenienti da altri vocabolari.

UKAT, è suddiviso in 7 aree di conoscenza:

1. Education

2. Science

3. Culture

4. Social and human science

5. Information and communication

6. Politics, law and economics

7. Events

Ognuna di queste aree è suddivisa ulteriormente in microthesauri. Questi ultimi contengono un insieme di termini in relazione tra loro da un punto di vista concettuale.

Ad esempio nell'area "Science"; compaiono i seguenti microthesauri:

Fig. 17 Microthesauri della categoria Science

 

Ogni microthesaurus è preceduto da un tre cifre. Il numero prima del punto indica l'area principale di conoscenza. Scegliendo ad esempio il terzo elemento otteniamo la seguente visualizzazione:

Fig. 18 Termini relativi alla voce "mathematics";

Sono evidenziati i termini con significato più ampio o termini che hanno una certa attinenza (related).

Qui di seguito è visualizzato un estratto del thesaurus UKAT riguardante il concetto "Mathematics";. Notiamo come compaiono i riferimenti ai concetti identificati numericamente riguardanti le relazioni semantiche.

<skos:Concept rdf:about="http://www.ukat.org.uk/thesaurus/concept/2079">
<skos:prefLabel>Mathematics</skos:prefLabel>
<skos:altLabel>Mathematical sciences</skos:altLabel>
<skos:inScheme rdf:resource="http://www.ukat.org.uk/thesaurus"/>
<skos:inScheme rdf:resource="http://www.ukat.org.uk/thesaurus/micro/215"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/197"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/342"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/986"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/2116"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/2518"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/8532"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/6168"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/523"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/4962"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/2077"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/4127"/>
<skos:narrower rdf:resource="http://www.ukat.org.uk/thesaurus/concept/9307"/>
<skos:related rdf:resource="http://www.ukat.org.uk/thesaurus/concept/19021"/>
<skos:related rdf:resource="http://www.ukat.org.uk/thesaurus/concept/13478"/>
<skos:related rdf:resource="http://www.ukat.org.uk/thesaurus/concept/3698"/>
<skos:related rdf:resource="http://www.ukat.org.uk/thesaurus/concept/1357"/>
<rdfs:seeAlso rdf:resource="http://www.ukat.org.uk/thesaurus/term.php?i=2079"/>
</skos:Concept>

Il thesaurus è disponibile liberamente per il download e quindi può essere utilizzato per creare portali di informazione come quello che verrà illustrato nel prossimo paragrafo.

Il portale SWED

SKOS è utilizzato anche nell'ambito di SWED [SWED] (Semantic Web Evironmental Directory). Lo scopo è quello di creare una directory di organizzazioni che si occupano di ambiente all'interno del Regno Unito.

Essenzialmente SWED fornisce una vista globale sui dati, forniti dalle singole organizzazioni effettuando un' "operazione di raccolta"; tra i diversi siti presenti sul Web. I vari membri delle organizzazioni quindi, possiedono, controllano e pubblicano le loro informazioni. Queste informazioni sono raccolte, confrontate e pubblicate sul portale.

In questo modo, con una così grande ricchezza di informazioni ben indicizzate è molto più semplice, rispetto alle tradizionali directory, cercare e trovare informazioni rilevanti al nostro scopo.

Oltre al prototipo di portale raggiungibile all'indirizzo http://www.swed.org.uk/swed/index.html, il progetto comprende anche del software scaricabile gratuitamente che permette di creare il proprio portale personalizzato.

Qui di seguito viene mostrata la pagina principale di SWED.

Fig.19 La pagina principale del portale

Si vede subito da questa pagina come i dati siano organizzati attraverso sei faccette. I numeri all'interno delle parentesi indicano la cardinalità di quella determinata faccetta.

Il vantaggio derivante da questa organizzazione, è l'utilizzo di un insieme di metadati mutuamente esclusivi rappresentanti ciascuno un aspetto o proprietà capaci di descrivere l'oggetto stesso. In questo modo ogni oggetto è classificato secondo una pluralità di attributi e gode di un meccanismo di pluridimensionalità [MV04]. Non è necessario conoscere il nome della categoria in cui l'oggetto è collocato per poterlo ritrovare e il criterio di ordinamento non è necessariamente gerarchico.

I vocabolari utilizzati per organizzare i dati secondo diverse gerarchie sono pubblicati utilizzando OWL per le ontologie e SKOS per i thesauri. Nella pagina principale troviamo gli argomenti suddivisi in diverse categorie che facilitano la ricerca fungendo da filtro per le informazioni che non interessano.

SKOS in questo ambito, viene impiegato per costruire una tassonomia utilizzata rispettivamente per classificare i tipi di organizzazione esistenti ed un thesaurus utilizzato per classificare i "topic of interest"; delle diverse organizzazioni.

Qui di seguito è visualizzata un'istantanea della parte di thesaurus che definisce il topic "animal welfare"; e il topic of interest "pollution_control_remediation";.

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://www.swed.org.uk/2004/06/swed_toi#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix skos: <http://www.w3c.rl.ac.uk/2003/11/21-skos-core#> .
:animal_welfare
a skos:Concept ;
rdfs:comment "" ;
rdfs:label "Animal Welfare "@en ;
skos:broader :topics_of_interest ;
skos:externalID "0AW0" ;
skos:prefLabel "Animal Welfare "@en .
:pollution_control_remediation
a skos:Concept ;
rdfs:comment "" ;
rdfs:label "Pollution (inc. Control and Remediation)"@en ;
skos:broader :topics_of_interest ;
skos:externalID "0P0" ;
skos:prefLabel "Pollution (inc. Control and Remediation)"@en .

Qui invece sotto viene mostrato un estratto della tassonomia utilizzata per classificare i diversi tipi di organizzazione.

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://www.swed.org.uk/2004/02/swed/org_type#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix skos: <http://www.w3c.rl.ac.uk/2003/11/21-skos-core#> .
:funding_organisation
a skos:Concept ;
rdfs:comment "Organisations that provide funding for other organisation for projects" ;
rdfs:label "Funding"@en ;
skos:broader :organisation ;
skos:prefLabel "Funding"@en .
:uk_national_government_organisation
a skos:Concept ;
rdfs:comment "Temporary documentation in the place of a full scope note for this term" ;
rdfs:label "UK National Government"@en ;
skos:broader :public_sector_organisation ;
skos:prefLabel "UK National Government"@en .

Questa applicazione quindi, illustra e dimostra, come i thesauri possono essere utilizzati nell'ambito del Semantic Web, in maniera da poter essere condivisi e consultati per catalogare risorse e per essere usati in combinazioni con i motori di ricerca.

Conclusioni

Lo sviluppo del Web Semantico coinvolge non solo diverse aree del World Wide Web come web service, motori di ricerca, ontologie, ma anche ambiti più diversi come biblioteconomia e altre discipline che si occupano da centinaia di anni dell'organizzazione della conoscenza.

Le raccolte di conoscenza costituiscono un componente fondamentale nell'infrastruttura dell'informazione nella vita moderna. Essa fornisce una risorsa essenziale per le persone e per gli specialisti, utilizzata per riferimenti e per la ricerca.

Ad ogni modo, l'ambiente dell'organizzazione della conoscenza sta cambiando. I costi per l'acquisto e l'archiviazione di libri e giornali aumentano e lo spazio richiesto per contenere fisicamente collezioni cartacee di documenti sta diventando così oneroso che solo poche istituzioni pubbliche possono permetterselo.

Allo stesso tempo, l'uso di mezzi digitali ha favorito la produzione di materiale in forma elettronica economica e con minori vincoli di spazio richiesto. Inoltre il WWW e la banda larga hanno rivoluzionato la distribuzione e l'accesso alle risorse informative da ogni parte del mondo.

Tutti questi aspetti hanno favorito la nascita di un'organizzazione digitale della conoscenza, della nascita di biblioteche digitali.

SKOS ha dato prova di essere un semplice ma potente strumento per presentare e condividere raccolte di termini.

C'è certamente ancora diversa strada da percorrere affinché esso diventi uno standard robusto e utilizzabile. Attualmente ha si è appena conclusa la seconda revisione del Working Draft da parte del W3C. Una terza revisione è prevista per fine Marzo 2006. E' necessario che siano costruiti tools per lo sviluppo, la ricerca, il mantenimento e la condivisione dei thesauri. Alcuni di questi sono già disponibili come le API Java, SKOS Validator (un'applicazione Java che permette di controllare la sintassi RDF e la costruzione dello schema), portalCore una libreria contente sorgenti per costruire e configurare un piccolo portale (disponibile sul sito www.swed.org.uk).

SKOS intende essere un complemento rispetto a strumenti e tecnologie per esprimere ontologie come OWL (Web Ontology Language). È più flessibile, più semplice da utilizzare e più adatto ad esprimere sistemi per l'organizzazione della conoscenza. OWL è sicuramente un linguaggio più potente, ma questo non significa necessariamente migliore, i due oggetti si complementano a vicenda.

SKOS si presenta quindi come una tecnologia emergente in grado di combinare la potenza delle strutture per la rappresentazione della conoscenza con la flessibilità e l'estensibilità del Web Semantico. Al di là dell'aspetto che queste tecnologie potranno avere nel Web Semantico, i vantaggi derivanti da un utilizzo dei sistemi per l'organizzazione della conoscenza anche nel web attuale sono indubbi.

L'uso di uno schema di classificazione aiuterebbe sicuramente gli utenti ad orientarsi in quella che spesso è la natura caotica del Web, fornendo un modello facilmente comprensibile dall'utente, senza sacrificare l'integrità e a beneficio dell'usabilità e del reperimento delle informazioni.

Classificare non è un compito semplice. È necessario quindi che il progettista e il content manager attingano al patrimonio della biblioteconomia, che ha già centinaia di anni alle spalle di esperienza, per cercare di impiegare sistemi di navigazione migliori.

SKOS in questo punto, si pone come tecnologia da affiancare ai tradizionali sistemi per l'organizzazione della conoscenza, in grado di migliorare l'organizzazione e il successivo reperimento delle informazioni.

Bibliografia e risorse Web

[BHL01] Tim Berners-Lee, James Hendler and Ora Lassila - The Semantic Web, 2001 <http://www.sciam.com/print_version.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21>

[BS98S] Tim Berners-Lee --Semantic Web roadmap, 1998 <http://www.w3.org/DesignIssues/Semantic.html>

[C03] Paolo Ceravolo, - I linguaggi del Web Semantico, 2003 <http://pro.html.it/articoli/id_334/idcat_46/pag_1/pag.html>

[DCHP] The Dublin Core Home Page <http://dublincore.org>

[DDCCE] Description of the Dublin Core Elements <http://dublincore.org/documents/dc>

[F05] Elena Franchini, Nuove prospettive nell'evoluzione dei thesauri: interoperabilità, integrazione, standard, 2005

[FOAF] RDFWeb and Friend of a Friend (FOAF), 24-07-2003 <http://rdfweb.org/mt/foaflog/archives/2003/07/28/12.46.56/>

[M05] Peter Mikhalenko, - Introducing SKOS, 2005 <http://www.xml.com/pub/a/2005/06/22/skos.html>

[MMW04] Alistair Miles, Brian Matthews, Michael Wilson, Dan Brickley, Dave Beckett, Nikki Rogers -- SKOS Core: A language to describe simple knowledge structures for the web, 2004 <http://idealliance.org/proceedings/xtech05/papers/03-04-01/>

[OF05] Open Forum 2005 on Metadata Registries (Open Forum 2005), Berlin, Germany, 11-14 Apr 2005 <http://epubs.cclrc.ac.uk/bitstream/674/berlin2005a.pdf>

[OWL] OWL Web Ontology Language Overview <http://geocities.com/ioannespetrus/traduzioni/w3c/owloverview.html?20052>

[OWLHP] OWL Web Ontology Language <http://www.w3.org/TR/owl-features/>

[PS05] Josè Ramon Perez Aguera, Rodrigo Sanchez Jimenez -- Thesauri managing and Software Agent: a proposed Architecture, 2005 <http://dc2005.uc3m.es/program/presentations/>

[QGPT] Quick Guide to Publishing a Thesaurus on the Semantic Web, 17-05-2005 <http://www.w3.org/TR/2005/WD-swbp-thesaurus-pubguide-20050517/>

[RDF] Resource Description Framework (RDF)<http://www.w3.org/RDF/>

[S02] Oreste Signore -- RDF per la rappresentazione della conoscenza <http://www.w3c.it/papers/RDF.pdf>

[S03] Oreste Signore - Strutturare la conoscenza: XML, RDF, Semantic Web, 2003 <http://dit.unitn.it/~bouquet/kr-2005/materiale/ck2003.pdf>

[S05] S. Spinelli, - Introduzione ai thesauri, 2005 <http://mail.biocfarm.unibo.it/~spinelli/indicizzazione/thesauri.htm>

[SE05] Francesca Severino - What thesaurus to define EU/ACP relations? ISKO Italy-UniMIB meeting : Milan : June 24, 2005 <http://www.iskoi.org/doc/development.htm>

[SKOS05] Simple Knowledge Organisation System (SKOS), 2005 <http://www.w3.org/2004/02/skos/>

[SKOSCG05] SKOS Core Guide, 02-11-2005 <http://www.w3.org/TR/2005/WD-swbp-skos-core-guide-20051102/>

[SKOSCVS05] SKOS Core Vocabulary Specification, 02-11-2005 <http://www.w3.org/TR/2005/WD-swbp-skos-core-spec-20051102/>

[SKOSE04] Simple Knowledge Organisation System (SKOS) SKOS Extensions, 2004 <http://www.w3.org/2004/02/skos/extensions/>

[SKOSTUT] SKOS Core Tutorial for DCMI 2005, 2005 <dc2005.uc3m.es/program/tutorials/tutorial4_eng.ppt>

[SWED] SWED Semantic Web Enviromental Directory <http://www.swed.org.uk/swed/>

[TB04] Douglas Tudhope, Ceri Binding -- Towards Terminology Services:experiences with a pilot web service thesaurus browser, 2004 <http://www.comp.glam.ac.uk/~FACET/TUDHOPE-DC05.DOC>

[TB05] Douglas Tudhope, Ceri Binding - KOS at your Service: Programmatic Access to Knowledge Organisation Systems, 2005 <http://jodi.ecs.soton.ac.uk/Articles/v04/i04/Binding/#HODGE2000>

[UKAT] UKAT UK Archival Thesaurus <http://www.ukat.org.uk/>

[VM04] Vittorio Marino, Classificazioni per il Web: i vantaggi dell'adozione di schemi a faccette -- <http://www.aib.it/aib/contr/marino1.htm>

[W3C] World-Wide Web Consortium <http://www.w3.org>

[WSE] Web Semantico: l'estensione del Web Semantico <http://www.websemantico.org/articoli/semanticweb.php>

 


SKOS: Simple Knowledge Organization System : un sistema per l'organizzazione della conoscenza / Matteo Ballarin = (ISKO Italia. Documenti) -- ISKO Italia <http://www.iskoi.org/doc/skos.htm> : 2006.03.22 - 2006.06.26 -