Il Web Ontology 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. OWL intende rendere possibile, ad esempio:
- ricerche nel Web che superino i problemi di omonimia e ambiguità presenti nelle normali ricerche testuali;
- applicazioni che effettuino delle deduzioni sui dati.
La rappresentazione dei termini e delle relative relazioni è chiamata ontologia.
Insieme a RDF, di cui è un'estensione,[1] OWL fa parte del progetto del web semantico.
Semantica
[modifica | modifica wikitesto]Il linguaggio OWL è costituito da una semantica formale costruita dal consorzio W3C sulla base dello standard XML chiamato RDF. I due maggiori rilasci di specifiche di tale semantica sono chiamate OWL[2] (detto anche OWL1, 2004) e OWL2[3] (2009). OWL2 è completamente compatibile con OWL1[4].
Decidibilità
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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 |
---|---|
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 | |
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 | |
Aggiunge ad ALC la definizione della transitività di una relazione | |
Inclusione e equivalenza tra relazioni | |
disgiunzione di proprietà, riflessività, asimmetria, irriflessività, relazioni composte da altre relazioni, definizione di non-relazione tra due individui | |
(One of) | creazione di classi tramite elenco di tutti e soli gli individui contenuti |
(Inverse) | definizione di proprietà inversa |
(Functionality) | definizione di proprietà funzionali |
(Number) | restrizione di cardinalità: numero di elementi che partecipano a una certa relazione minore, maggiore o uguale di un valore n |
(Qualified) | come N, ma la relazione può essere qualificata |
(Numerable Domain) | definizione di domini (tipi di dato) a cui può portare una relazione (es. "Mario ha n anni") |
Versioni
[modifica | modifica wikitesto]Esistono diverse versioni di OWL, molto diverse tra di loro.
OWL DL
[modifica | modifica wikitesto]Utilizza SHOIN(Dn), è decidibile e ha procedure di deduzione con complessità ben conosciute.
OWL Lite
[modifica | modifica wikitesto]Utilizza SHIF(Dn), è semplice da implementare ma ha basso potere espressivo
OWL Full
[modifica | modifica wikitesto]Utilizza la logica del primo ordine, addirittura espandendola con altri predicati. È quindi molto espressivo ma indecidibile.
OWL 2
[modifica | modifica wikitesto]Raccomandato dal W3C dal 2009, è basato su SROIQ(Dn)
Sintassi
[modifica | modifica wikitesto]La famiglia di linguaggi OWL supporta una varietà di sintassi. È utile distinguere sintassi di alto livello finalizzate alla specifica da sintassi di scambio più adatte all'uso generale.
Alto livello
[modifica | modifica wikitesto]Questi sono vicini alla struttura ontologica dei linguaggi nella famiglia OWL.
Sintassi astratta OWL
[modifica | modifica wikitesto]La sintassi di alto livello viene utilizzata per specificare la struttura e la semantica dell'ontologia OWL[5].
La sintassi astratta OWL presenta un'ontologia come una sequenza di annotazioni, assiomi e fatti. Le annotazioni contengono metadati orientati alla macchina e all'uomo. Le informazioni sulle classi, proprietà e individui che compongono l'ontologia sono contenute solo in assiomi e fatti. Ogni classe, proprietà e individuo è anonimo o identificato da un riferimento URI. I fatti indicano dati su un individuo o su una coppia di identificatori individuali (che gli oggetti identificati sono distinti o uguali). Gli assiomi specificano le caratteristiche delle classi e delle proprietà. Questo stile è simile ai linguaggi dei frame e abbastanza dissimile dalle ben note sintassi per DL e Resource Description Framework (RDF)[5].
Sean Bechhofer, et al. sostengono che sebbene questa sintassi sia difficile da analizzare, è abbastanza concreta. Concludono che la sintassi astratta del nome può essere fuorviante.
Sintassi funzionale OWL2
[modifica | modifica wikitesto]Questa sintassi segue da vicino la struttura di un'ontologia OWL2. Viene utilizzato da OWL2 per specificare semantiche, mappature per scambiare sintassi e profili[6].
Sintassi di Exchange
[modifica | modifica wikitesto]Sintassi RDF
[modifica | modifica wikitesto]Le mappature sintattiche in RDF sono specificate[5][7] per i linguaggi nella famiglia OWL. Sono stati ideati diversi formati di serializzazione RDF. Ciascuno porta a una sintassi per le lingue della famiglia OWL attraverso questa mappatura. RDF/XML è normativo[5][7].
Sintassi XML OWL2
[modifica | modifica wikitesto]OWL2 specifica una serializzazione XML che modella da vicino la struttura di un'ontologia OWL2[8].
Sintassi di Manchester
[modifica | modifica wikitesto]La sintassi di Manchester è una sintassi compatta e leggibile dall'uomo con uno stile vicino ai linguaggi dei frame. Sono disponibili variazioni per OWL e OWL2. Non tutte le ontologie OWL e OWL2 possono essere espresse in questa sintassi[9].
Esempi
[modifica | modifica wikitesto]Il W3C OWL 2 Web Ontology Language fornisce esempi di sintassi[10].
Ontologia del tè
[modifica | modifica wikitesto]Si consideri un'ontologia per il tè basata su una classe di tè. Innanzitutto, è necessario un identificatore di ontologia. Ogni ontologia OWL deve essere identificata da un URI (http://www.example.org/tea.owl per esempio). Questo esempio fornisce un senso della sintassi.
- Sintassi funzionale OWL2
Ontology(<http://example.org/tea.owl> Declaration( Class( :Tea ) ) )
- Sintassi XML OWL2
<Ontology ontologyIRI="http://example.org/tea.owl" ...> <Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/> <Declaration> <Class IRI="Tea"/> </Declaration> </Ontology>
- Sintassi di Manchester
Ontology: <http://example.org/tea.owl> Class: Tea
- Sintassi RDF / XML
<rdf:RDF ...> <owl:Ontology rdf:about=""/> <owl:Class rdf:about="#Tea"/> </rdf:RDF>
- RDF/Turtle
<http://example.org/tea.owl> rdf:type owl:Ontology . :Tea rdf:type owl:Class .
Terminologia
[modifica | modifica wikitesto]I linguaggi della famiglia OWL sono in grado di creare classi, proprietà, definire istanze e le sue operazioni.
Istanze
[modifica | modifica wikitesto]Un esempio è un oggetto. Corrisponde ad una descrizione logica individuale.
Classi
[modifica | modifica wikitesto]Una classe è una raccolta di oggetti. Una classe può contenere individui, istanze della classe. Una classe può avere un numero qualsiasi di istanze. Un'istanza può appartenere a nessuno, a una o più classi.
Una classe può essere una sottoclasse di un'altra, ereditando le caratteristiche dalla sua superclasse genitrice. Ciò corrisponde alla sussunzione logica e all'inclusione del concetto DL annotata.
Tutte le classi sono sottoclassi di owl:Thing (DL Top type notato ), la classe radice.
La classe e i suoi membri possono essere definiti in OWL sia per estensione che per intensione. A un individuo può essere esplicitamente assegnata una classe da un'asserzione di Classe, ad esempio possiamo aggiungere un'affermazione La Regina Elisabetta è una (un'istanza di) umana, o da un'espressione di classe con dichiarazioni ClassExpression ogni istanza della classe umana che ha un valore femminile alla proprietà del sesso è un'istanza della classe delle donne.
Esempio
[modifica | modifica wikitesto]Chiamiamo umano la classe di tutti gli umani nel mondo è una sottoclasse di owl:Thing
. La classe di tutte le donne (quindi donna) nel mondo è una sottoclasse di umani. Quindi abbiamo:
Si può notare l'appartenenza di qualche individuo a una classe
ClassAssertion ( umano George_Washington )
e inclusione di classe
SubClassOf ( donna umano )
Il primo significa "George Washington è un umano" e il secondo "ogni donna è umana".
Proprietà
[modifica | modifica wikitesto]Una proprietà è una caratteristica di una classe: una relazione binaria diretta che specifica un attributo vero per le istanze di quella classe. Le proprietà a volte agiscono come valori di dati o collegamenti ad altre istanze. Le proprietà possono mostrare caratteristiche logiche, ad esempio, essendo transitive, simmetriche, inverse e funzionali. Le proprietà possono anche avere domini e intervalli.
Proprietà del tipo di dati
[modifica | modifica wikitesto]Le proprietà dei tipi di dati sono relazioni tra istanze di classi e valori letterali RDF o tipi di dati dello schema XML. Ad esempio, modelName (di tipo stringa) è la proprietà della classe Manufacturer. Sono formulati usando il carattere owl:DatatypeProperty.
Proprietà degli oggetti
[modifica | modifica wikitesto]Le proprietà degli oggetti sono relazioni tra istanze di due classi. Ad esempio, OwnedBy può essere una proprietà del tipo di oggetto della classe Vehicle e può avere un intervallo che è la classe Person. Sono formulati usando owl:ObjectProperty.
Operatori
[modifica | modifica wikitesto]Le lingue nella famiglia OWL supportano varie operazioni su classi come unione, intersezione e complemento. Consentono inoltre l'enumerazione delle classi, la cardinalità, la disgiunzione e l'equivalenza.
Metaclassi
[modifica | modifica wikitesto]Le metaclassi sono classi di classi. Sono consentiti in OWL completo o con una funzionalità chiamata giochi di parole di classe / istanza.
Note
[modifica | modifica wikitesto]- ^ (EN) OWL Web Ontology Language Reference, su w3.org, World Wide Web Consortium, 10 febbraio 2004. URL consultato il 31 marzo 2017 (archiviato il 31 marzo 2017).
- ^ (EN) OWL Web Ontology Language Reference, su w3.org. URL consultato il 15 agosto 2018.
- ^ (EN) OWL 2 Web Ontology Language Document Overview (Second Edition), su w3.org. URL consultato il 15 agosto 2018.
- ^ (EN) OWL 2 Web Ontology Language Document Overview (Second Edition) - Relationship to OWL1, su w3.org. URL consultato il 15 agosto 2018.
- ^ a b c d Peter F. Patel-Schneider, Ian Horrocks e Hayes Patrick J., OWL Web Ontology Language Semantics and Abstract Syntax, su w3.org, World Wide Web Consortium, 10 febbraio 2004. URL consultato il 18 aprile 2010.
- ^ Sean Bechhofer, Peter F. Patel-Schneider e Daniele Turi, OWL Web Ontology Language Concrete Abstract Syntax, su owl.man.ac.uk, University of Manchester, 10 dicembre 2003. URL consultato il 18 aprile 2010.
- ^ a b Peter F. Patel-Schneider e Boris Motik, OWL 2 Web Ontology Language Mapping to RDF Graphs, in OWL 2 Web Ontology Language, World Wide Web Consortium, 27 ottobre 2009. URL consultato il 18 aprile 2010.
- ^ Boris Motik, Bijan Parsia e Peter F. Patel-Schneider, OWL 2 Web Ontology Language XML Serialization, in OWL 2 Web Ontology Language, World Wide Web Consortium, 27 ottobre 2009. URL consultato il 18 aprile 2010.
- ^ Matthew Horridge e Peter F. Patel-Schneider, OWL 2 Web Ontology Language Manchester Syntax, in W3C OWL 2 Web Ontology Language, World Wide Web Consortium, 27 ottobre 2009. URL consultato il 18 aprile 2010.
- ^ Pascal Hitzler, Markus Krötzsch, Bijan Parsia, Peter F. Patel-Schneider e Sebastian Rudolph, OWL 2 Web Ontology Language Primer, in OWL 2 Web Ontology Language, World Wide Web Consortium, 27 ottobre 2009. URL consultato il 15 ottobre 2013.
Voci correlate
[modifica | modifica wikitesto]- Ontologia (informatica)
- Web semantico
- Resource Description Framework
- Teoria del primo ordine
- Logica descrittiva
Collegamenti esterni
[modifica | modifica wikitesto]- Sito ufficiale, su w3.org.
- Web ontology language, in Lessico del XXI secolo, Istituto dell'Enciclopedia Italiana, 2012-2013.
- 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
Controllo di autorità | LCCN (EN) sh2018001881 · GND (DE) 4396527-1 · J9U (EN, HE) 987012403567505171 |
---|