OWL – Web Ontology Language

Layer-Cake Diagram

Layer-Cake Diagram

Il livello che si trova sopra a RDF nel Layer-Cake Diagram (rappresentazione dell’architettura del Semantic Web) è OWL: Web Ontology Language.
Prima di tutto: cos’è un’ontologia? Con questo termine si intende la descrizione delle entità presenti in un sistema e delle loro relazioni. Un’ontologia quindi non è un semplice vocabolario di termini, ma una rete di relazioni tra entità definite.
OWL è un linguaggio per definire Ontologie Web e lo scopo di queste ultime è quello di descrivere formalmente il significato dei termini utilizzati nei documenti Web.
Questo livello dell’architettura del Semantic Web è molto importante per il fatto che dà la possibilità di realizzare quel passo verso la “machine-readabilty” delle informazioni, che, come abbiamo già detto, è l’elemento chiave del Semantic Web. OWL è infatti progettato per essere usato dalle applicazioni che devono elaborare le informazioni web, piuttosto che per quelle che devono solo presentarle all’utente.
Da un punto di vista di sintassi OWL è un’estensione di RDF, ma si differenzia da quest’ultimo per il fatto che RDF è un modello per rappresentare le risorse Web e le loro relazioni tramite una sintassi definita, OWL invece fornisce un vocabolario per le classi e le proprietà delle risorse RDF e per le relazioni tra queste.
Altra caratteristica fondamentale del Semantic Web che è applicata in OWL, è il concetto di riusabilità e “open world“, nel senso che le ontologie devono poter essere riutilizzabili e combinabili, in modo da poter estendere, definendo nuove ontologie, le classi che sono già descritte in una certa ontologia preesistente.

OWL comprende 3 sotto-linguaggi, che possono essere adottati differentemente in base alle necessità di sviluppo:

  • OWL Lite, per le necessità primarie di classificazione, ha alcuni vincoli e minore complessità formale. Una ontologia Lite è anche una ontologia DL valida.
    I vincoli principali di OWL Lite sono:

    • classi definibili solo in termini di superclassi già esistenti
    • cardinalità valida solo per valori 0 e 1
  • OWL DL, permette una maggior complessità mantenendo però alcuni vincoli, come la separazione dei tipi (una classe non può essere anche un elemento o una proprietà e viceversa).
    Una ontologia DL è anche una ontologia Full valida.
  • OWL Full, permette la massima espressività senza nessun vincolo.
    OWL Full può essere visto come un’estensione di RDF, DL e Lite come estensioni di una visione limitata di RDF. Ogni documento OWL è un documento RDF, e ogni documento RDF è un documento OWL Full; differentemente però solo alcuni documenti RDF possono essere validi documenti OWL DL o OWL Lite, per via delle restrizioni presenti in questi due sottolinguaggi.

Gli elementi di una ontologia OWL sono:

  • classi (class): Definiscono un insieme di individui che sono correlati poiché condividono certe proprietà. Le classi possono essere organizzate in gerarchie (tramite rdfs:subClassOf). La superclasse principale (cui appartengono tutte le classi e tutti gli elementi) è la classe owl:Thing.
  • elementi (individual): Istanze delle classi. Possiedono delle proprietà che li relazionano con altri elementi.
  • proprietà (property): Possono essere usate per definire le relazioni tra gli elementi (ObjectProperty) o tra elementi e valori tipati (si tratta in questo caso di DatatypeProperty). Possono essere definite anche gerarchie di proprietà (rdfs:subPropertyOf).Le proprietà possiedono un dominio e un range:
    • dominio (rdfs:domain): limita e identifica gli individui cui la proprietà può essere applicata.
    • range (rdfs:range): limita e identifica gli individui che la proprietà può assumere come valori.

Perchè un’applicazione possa effettuare elaborazioni sui dati descritti in un’ontologia, sono necessarie delle funzionalità che permettano di correlare gli elementi appena visti; la possibilità di creare gerarchie di proprietà è ad esempio una di queste. Facciamo un semplice esempio:
la proprietà (P1) è una sotto-proprietà della proprietà (P0), se un elemento (A) è legato ad un elemento (B) da (P1), per una applicazione che effettua elaborazioni su questi dati sarà possibile capire che (A) sarà legato a (B) anche dalla proprietà (P0). Questa relazione tra le proprietà è data dall’identificatore subPropertyOf.
OWL fornisce degli identificatori per funzionalità di:

  • equivalenza/disuguaglianza: tra classi (equivalentClass), tra proprietà (equivalentProperty), tra elementi (sameAs, differentFrom, AllDifferent)
  • definizione di caratteristiche delle proprietà: è possibile definire se una proprietà è l’inversa di un’altra (inverseOf), se è transitiva o simmetrica (TransitiveProperty, SymmetricProperty), se è funzionale (FunctionalProperty, cioè se deve possedere un solo valore per ogni elemento cui si riferisce) o inversa-funzionale (InverseFunctionalProperty, cioè se deve possedere almeno un valore per ogni elemento cui si riferisce)
  • definizione di restrizioni su come le proprietà possono essere usate dalle istanze di una classe: l’identificatore allValuesFrom applicato alla proprietà (P) rispetto alla classe (C), implica che tutti i valori di (P) devono essere istanze di (C), cioè se un elemento (A) è legato ad un elemento (B) tramite (P), allora (B) necessariamente deve essere istanza di (C). someValuesFrom invece implica che almeno uno dei valori della proprietà (P) appartenga alla classe (C)
  • definizione di restrizioni sulla cardinalità di una proprietà rispetto a un classe: minCardinality 1 sulla proprietà (P) rispetto alla classe (C), implica che ogni istanza di (C) sia legata almeno ad un altro elemento tramite (P). Viceversa per maxCardinality. In OWL Lite la cardinalità è limitata ai valori 0 e 1.
  • operazioni tra le classi: unionOf, intersectionOf, complementOf, disjointWith (per esplicitare la disgiunzione di due classi)
  • definizione di classi enumerate: oneOf permette di definire una classe elencando gli elementi che la compongono, solo questi elementi faranno parte della classe. Da ciò le applicazioni possono facilmente ricavare la cardinalità delle classi.
  • definizione di valori precisi e definiti per le proprietà: hasValue

In seguito sarà descritta più approfonditamente la struttura di un’ontologia OWL.

OWL Web Ontology Language permette quindi di facilitare l’elaborazione dei dati sul Web da parte delle applicazioni, tramite la creazione di ontologie le cui caratteristiche fondamentali sono la riusabilità e l’estensibilità.

Fonti:
http://www.w3.org/TR/owl-features/
http://www.w3.org/TR/owl-guide/

1 Responses to OWL – Web Ontology Language

  1. luca ha detto:

    grazie mille!!!! capirlo in inglese troppo complicato!

Scrivi una risposta a luca Cancella risposta