OWL (Web Ontology Language) è un linguaggio di markup progettato per definire e istanziare ontologie Web.
Ma in pratica, come mi può essere utile?
Una ontologia OWL può includere le descrizioni delle classi, proprietà e delle loro istanze. Dato questo tipo di Ontologia, la semantica formale di OWL specifica come derivare le sue conseguenze logiche, ovvero i fatti che non sono presenti letteralmente nell’ontologia, ma derivati logicamente dalla semantica. Tali derivazioni logiche possono essere basate su un solo documento o su più documenti distribuiti che sono stati combinati fra loro usando dei meccanismi OWL predefiniti.
OWL utilizza gli URI per i nomi e la struttura di descrizione per il Web fornita da RDF per aggiungere le seguenti funzionalità alle ontologie:
- Capacità di essere distribuite tra molti sistemi
- Scalabilità per le necessità del Web
- Compatibilità con gli standard Web per l’ accessibilità e l’ internazionalizzazione
- Apertura e estensibilità
Dunque OWL è l’evoluzione di RDF e RDF Schema[1], dei quali arricchisce il vocabolario per descrivere proprietà e classi, relazioni tra classi (ad es. disgiunzione), cardinalità (ad es. “esattamente uno”), uguaglianza, tipi più ricchi delle proprietà, caratteristiche di proprietà (ad es. simmetria) e classi enumerate.
I sottolinguaggi di OWL
OWL fornisce tre sottolinguaggi di espressività crescente che sono stati progettati per essere utilizzati da determinate comunità di sviluppatori e utenti:
- OWL Lite è la versione più semplice e meno espressiva di OWL, che supporta le funzioni necessarie a definire una tassonomia di classi e semplici vincoli; esso supporta per esempio la cardinalità, ma solo con valori pari a uno e zero. OWL Lite è il sottolinguaggio di più facile implementazione e inoltre consente una veloce migrazione da vocabolari o altre tassonomie.
- OWL DL (OWL Description Logic) permette più espressione e mantiene la completezza computazionale e la decidibilità; esso supporta gli utenti che desiderano la massima espressività senza mancare di completezza computazionale e di decidibilità (è cioè garantito che tutte le implicazioni siano elaborate in un tempo finito). OWL DL comprende tutti i costrutti OWL, ma con alcune restrizioni, per esempio mentre una classe può essere una sottoclasse di molte altre, essa non può essere istanza di un’altra classe.
- OWL Full permette la massima espressività senza però garanzie sulla completezza e decidibilità; ad esempio una classe può essere allo stesso tempo vista come una collezione di entità (individui) e come una entità a se stante. OWL Full permette ad una ontologia di aumentare il significato di un vocabolario già definito; tuttavia è molto difficile, data la complessità del linguaggio, che un ragionatore supporti appieno tutte la potenzialità di OWL FULL.
Facendo riferimento alla seguente tabella:
Lettera o sigla della logica | Descrizione |
AL | inclusione e equivalenza tra classi, definizione di classi atomiche, classe universo, intersezione tra classi, definizioni di classi formate da elementi che prendono parte a relazioni o hanno una relazione di un certo tipo solo con elementi di una certa classe, operatore di congruenza tra individui e appartenenza di un individuo a una classe |
ALC | aggiunge ad AL la classe vuota, le classi complemento, l’unione di classi e le classi di elementi che sono in una certa relazione con elementi di una certa classe |
S | aggiunge ad ALC la definizione della transitività di una relazione |
H | inclusione e equivalenza tra relazioni |
R | disgiunzione di proprietà, riflessività, asimmetria, irriflessività, relazioni composte da altre relazioni, definizione di non-relazione tra due individui |
O(One of) | creazione di classi tramite elenco di tutti e soli gli individui contenuti |
I (Inverse) | definizione di proprietà inversa |
F (Functionality) | definizione di proprietà funzionali |
N (Number) | restrizione di cardinalità: numero di elementi che partecipano a una certa relazione minore, maggiore o uguale di un valore n |
Q (Qualified) | come N, ma la relazione può essere qualificata |
Dn (Numerable Domain) | definizione di domini (tipi di dato) a cui può portare una relazione (es. “Mario ha n anni”) |
Sottoinsiemi della logica del primo ordine
possiamo cercare di formalizzare meglio le differenze fra i tre sottolinguaggi:
- OWL Lite utilizza SHIF(Dn);
- OWL DL utilizza SHOIN(Dn);
- OWL Full utilizza tutta la logica del primo ordine, addirittura espandendola con altri predicati.
Una importante caratteristica dei sottolinguaggi OWL risiede nel fatto che ogni versione estende ed include le funzionalità del sottolinguaggio precedente mantenendo la compatibilità con le espressioni e le conclusioni che si possono trarre, mentre non vale il contrario. Questo vuol dire che una ontologia espressa in OWL Lite è pienamente compatibile con una ontologia OWL DL, e in entrambi i casi le conclusioni sono le stesse. Ciò vale anche nel caso in cui si esprima una ontologia OWL DL mediante OWL Full.
Ma qual è la versione migliore?
La scelta di quale versione di OWL utilizzare è lasciata alle necessità dello sviluppatore e dal livello di espressività di cui ha bisogno. In generale si preferisce utilizzare OWL DL perché consente più libertà di espressione, ma ciò è dovuto principalmente al fatto che attualmente non esistono piattaforme che consentono una completa implementazione di OWL Full.
A livello implementativo si può assimilare OWL Full ad una estensione di RDF, mentre OWL Lite e OWL DL possono essere visti come estensioni di un sottoinsieme del linguaggio RDF.
Ogni documento OWL è dunque un documento RDF, sebbene il viceversa non sia vero, ossia solo qualche documento RDF sarà un documento OWL valido. Di conseguenza bisogna prestare attenzione nella conversione da documenti RDF a documenti OWL, facendo in modo che ogni classe etichettata con una URI sia dichiarata di tipo owl:Class; per ogni individuo, inoltre, deve esistere almeno un’asserzione che lo inserisca in una classe (al limite nella classe genitrice owl:Thing).
Antonio Cicirelli
[1] Qui urge una precisazione: OWL è l’evoluzione di RDF ed RDFS, anche se storicamente i primi linguaggi usati per estendere RDF furono il DAML e l’OIL, sviluppati separatamente da due comunità, una americana e l’altra europea. In seguito le funzionalità di questi linguaggi sono state integrate sotto le direttive del “Joint EU/US Committee on Agent Markup Languages” per dar vita al linguaggio DAML+OIL che solo successivamente è stato sottoposto al W3C che ha definito lo standard OWL.
Se il post ti è piaciuto, ti ha incuriosito o se non ha soddisfatto appieno la tua voglia di conoscenza lasciaci un commento, ci sarà d'aiuto per andare avanti e migliorare oppure sottoscrivi i feed e ricevi i prossimi articoli nel tuo RSS reader.
Comments
Non c'è ancora nessun commento.
Lascia un commento