Web Ontology Language
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, OWL fa parte del progetto del web semantico.
Semantica
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 (detto anche OWL1, 2004) e OWL2 (2009). OWL2 è completamente compatibile con OWL1.
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:
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
Raccomandato dal W3C dal 2009, è basato su SROIQ(Dn)
Sintassi
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
Questi sono vicini alla struttura ontologica dei linguaggi nella famiglia OWL.
Sintassi astratta OWL
La sintassi di alto livello viene utilizzata per specificare la struttura e la semantica dell'ontologia OWL.
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).
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
Questa sintassi segue da vicino la struttura di un'ontologia OWL2. Viene utilizzato da OWL2 per specificare semantiche, mappature per scambiare sintassi e profili.
Sintassi di Exchange
Sintassi RDF
Le mappature sintattiche in RDF sono specificate 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.
Sintassi XML OWL2
OWL2 specifica una serializzazione XML che modella da vicino la struttura di un'ontologia OWL2.
Sintassi di Manchester
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.
Esempi
Il W3C OWL 2 Web Ontology Language fornisce esempi di sintassi.
Ontologia del tè
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
I linguaggi della famiglia OWL sono in grado di creare classi, proprietà, definire istanze e le sue operazioni.
Istanze
Un esempio è un oggetto. Corrisponde ad una descrizione logica individuale.
Classi
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
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à
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
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
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
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
Le metaclassi sono classi di classi. Sono consentiti in OWL completo o con una funzionalità chiamata giochi di parole di classe / istanza.
Note
Voci correlate
- Ontologia (informatica)
- Web semantico
- Resource Description Framework
- Teoria del primo ordine
- Logica descrittiva
Collegamenti esterni
- 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 |
---|