Web Ontology Language
L'Ontology Web Language (OWL) è un linguaggio di markup per rappresentare esplicitamente significato e semantica di termini con vocabolari e relazioni tra gli stessi. Esistono varie versioni del linguaggio, che differiscono molto tra di loro.
Lo scopo di OWL è descrivere delle basi di conoscenze, effettuare delle deduzioni su di esse e integrarle con i contenuti delle pagine web. Grazie a OWL in futuro sarà possibile, ad esempio, effettuare delle ricerche estremamente complesse nel web evitando i problemi di omonimia e ambiguità presenti nelle normali ricerche testuali. Altro scopo di OWL è permettere alle applicazioni di effettuare delle deduzioni sui dati.
La rappresentazione dei termini e delle relative relazioni è chiamata ontologia.
Insieme a RDF, di cui è un'estensione, OWL fa parte del progetto, ancora in itinere, del Web semantico.
Decidibilità
Uno dei problemi maggiori delle ontologie è la scelta della potenza espressiva. La logica del primo ordine è infatti molto potente ma non è decidibile, ossia non è possibile costruire un algoritmo che, dati uno o più assiomi, dica in tempo finito se un'affermazione segue o non segue logicamente da tali assiomi. Ovviamente questo è sconveniente dal punto di vista dell'utilizzo pratico, perché si vorrebbe avere una base di conoscenza che risponda in maniera prevedibile alle richieste, e non dia informazioni in base alle deduzioni fatte fino a quel momento. Gli approcci al problema sono dunque:
- selezionare una logica meno potente della logica del primo ordine che abbia meno poter espressivo ma sia decidibile
- rinunciare alla decidibilità operando in un contesto di affidabilità parziale della base di dati.
Alcune versioni di OWL, quelle più usate, sono basate sul primo approccio.
Logiche
Per scegliere un sottoinsieme della logica del prim'ordine che sia decidibile si è utilizzata la logica proposizionale aumentandone la potenza aggiungendo delle logiche rappresentate per convenzione con delle sigle:
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") |
Versioni
Esistono diverse versioni di OWL, molto diverse tra di loro.
OWL DL
Utilizza SHOIN(Dn), è decidibile e ha procedure di deduzione con complessità ben conosciute.
OWL Lite
Utilizza SHIF(Dn), è semplice da implementare ma ha basso potere espressivo
OWL Full
Utilizza la logica del primo ordine, addirittura espandendola con altri predicati. È quindi molto espressivo ma indecidibile.
OWL 2 DL
Raccomandato dal W3C dal 2009, è basato su SROIQ(Dn)
Collegamenti esterni
- OWL 2 - New Features and Rationale nuove funzioni di OWL 2 rispetto a OWL 1
- OWL Web Ontology Language definito dal W3C
- OWL Web Ontology Language, guida del W3C
- Esempio di ontologia informatica (OWL) applicata alla descrizione archivistica e della sua rappresentazione HTML