Web Ontology Language

linguaggio di markup per la rappresentazione della conoscenza

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

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

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

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

Esistono diverse versioni di OWL, molto diverse tra di loro.

OWL DL modifica

Utilizza SHOIN(Dn), è decidibile e ha procedure di deduzione con complessità ben conosciute.

OWL Lite modifica

Utilizza SHIF(Dn), è semplice da implementare ma ha basso potere espressivo

OWL Full modifica

Utilizza la logica del primo ordine, addirittura espandendola con altri predicati. È quindi molto espressivo ma indecidibile.

OWL 2 modifica

Raccomandato dal W3C dal 2009, è basato su SROIQ(Dn)

Sintassi modifica

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

Questi sono vicini alla struttura ontologica dei linguaggi nella famiglia OWL.

Sintassi astratta OWL modifica

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

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

Sintassi RDF modifica

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

OWL2 specifica una serializzazione XML che modella da vicino la struttura di un'ontologia OWL2[8].

Sintassi di Manchester modifica

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

Il W3C OWL 2 Web Ontology Language fornisce esempi di sintassi[10].

Ontologia del tè modifica

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

I linguaggi della famiglia OWL sono in grado di creare classi, proprietà, definire istanze e le sue operazioni.

Istanze modifica

Un esempio è un oggetto. Corrisponde ad una descrizione logica individuale.

Classi modifica

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

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

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

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

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

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

Le metaclassi sono classi di classi. Sono consentiti in OWL completo o con una funzionalità chiamata giochi di parole di classe / istanza.

Note modifica

  1. ^ (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).
  2. ^ (EN) OWL Web Ontology Language Reference, su w3.org. URL consultato il 15 agosto 2018.
  3. ^ (EN) OWL 2 Web Ontology Language Document Overview (Second Edition), su w3.org. URL consultato il 15 agosto 2018.
  4. ^ (EN) OWL 2 Web Ontology Language Document Overview (Second Edition) - Relationship to OWL1, su w3.org. URL consultato il 15 agosto 2018.
  5. ^ 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.
  6. ^ 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.
  7. ^ 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.
  8. ^ 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.
  9. ^ 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.
  10. ^ 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

Collegamenti esterni modifica

Controllo di autoritàLCCN (ENsh2018001881 · GND (DE4396527-1 · J9U (ENHE987012403567505171
  Portale Internet: accedi alle voci di Wikipedia che trattano di internet