1 Ontology languages
Strato dei modelli
LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita, mediante un opportuno linguaggio Per esprimere in maniera formale le ontologie sono stati proposti diversi linguaggi, ciascuno con diverse capacità espressive RDFS OIL DAML DAML + OIL OWL Lo standard W3C è attualmente OWL (Ontology Web Language)
REQUISITI PER UN ONTOLOGY LANGUAGE ben-definita sintassi (machine-processable) semantica formale (descrizione del significato in modo preciso e non ambiguo, ossia che non si basa su intuizioni soggettive e non aperto a diverse interpretazione da parte di diversi soggetti. Uso della logica matematica) sufficiente potere espressivo efficiente supporto al ragionamento. Il ragionamento ontologico (classificazione, equivalenza, consistenza, sussunzione– ricondurre un concetto in un concetto più ampio che lo comprende) viene fatto mappando il linguaggio ontologico su un ben definito formalismo logico.
Aumenta le capacità espressive di RDF Vocabolario che consente di: definire le classi delle risorse definire le relazioni di sottoclasse (gerarchia tra classi) specificare restrizioni di domain e range delle proprietà RESOURCE DESCRIPTION FRAMEWORK SCHEMA (RDFS)
Limiti del potere espressivo di RDFS RDF e RDFS permettono la rappresentazione di una parte di conoscenza ontologica le principali primitive di RDF e RDFS riguardano l’ORGANIZZAZIONE di un VOCABOLARIO GERARCHICO (con relazioni di sottoclasse e sottoproprieta, restrizione di domain e range)
Limiti del potere espressivo di RDFS Tuttavia mancano – Local scope sulle proprietà. RDFS:range permette di esprimere restrizioni che si applicano a tutte le classi: non è possibile differenziare il range da applicare solo su alcune classi, ossia non possiamo dire che le mucche mangiano solo vegetali, e gli altri animali possono mangiare anche la carne –Disgiunzione tra classi. Ad esempio il fatto che la classe maschio e femmina sono disgiunte non si può esprimere con RDFS –Combinazione booleana di classi. Può essere utile costruire nuove classi a partire da classi esistenti (unione, intersezione, ). Ad esempio, la classe persona definita come unione delle classi maschi e femmine non può essere espressa attraverso RDFS
Limiti del potere espressivo di RDFS Restrizione di cardinalità. Può essere utile definire restrizioni su quanti distinti valori potrebbe avere una proprietà (non solo di quali valori). Per esempio, possiamo voler dire che una persona deve avere sono due genitori, o che un corso può essere seguito solo da 10 studenti. Non si può esprimere con RDFS Caratteristiche speciali di proprietà. Ad esempio, dire che una proprietà è transitiva (se A e’ sottoclasse di B e B e’ sottoclasse di C, allora A e’ sottoclasse di C), unica (haMadre), o inversa (mangiare e “essere mangiato”). Necessario un linguaggio più espressivo che RDFS, che raggiunga un compromesso nel trade-off tra potere espressivo e supporto efficiente al reasoning. Di solito più un linguaggio è espressivo, più inefficiente diventa il supporto al reasoning
ORIGINI DI OWL OWL DAML DAML + OIL OIL RDF Tutti derivati da RDF RDFS
OWL: Ontology Web Language Linguaggio standard per scrivere ontologie. Diventato recommendation W3C dal 2004
OWL (Ontology Web Language) Nato dall’integrazione di DAML + OIL. OWL consente di: specificare meglio le relazioni tra le classi – disgiunzione –equivalenza –combinazioni booleane complementarietà unione intersezione definire le restrizioni sulle proprietà –di valore –di cardinalità
Owl è un’estensione di RDF Schema, ossia ne riutilizza i costrutti. Vi sono tre versioni di OWL: OWL Full: completamente compatibile con RDF; molto potente ed espressivo, difficile ragionamento tutti i costrutti visti OWL DL (description logic): meno efficiente per il ragionamento e meno compatibile con RDF non supporta la restrizione di cardinalità sulle proprietà funzionali OWL: VERSIONI
OWL Lite: restrizioni su OWL DL, semplice da implementare, poco espressivo. Buono per semplici classificazioni tassonomiche con poche restrizioni sulle classi. E’ come OWL DL ma non supporta Owl:disjoint Owl:unionOf Owl:hasValue Cardinalità solo con valori 1 o 0 EquivalentClass non su classi anonime OWL: VERSIONI
OWL: SINTASSI (owl-full) Definire una classe dire che questa classe è disgiunta da un’altra dire che questa classe è equivalente ad un’altra
OWL: proprietà Proprietà –Object property: collega un oggetto con un altro oggetto –Data type property: collega un oggetto con un valore
Proprietà inversa: definisce una proprieta’ come inversa di un’altra <owl:inverseOf rdf:resource=“isTaughtBy” OWL: tipi di proprietà
Functional Property: definisce una proprietà che ha al massimo un valore per ciascuno soggetto (ad esempio, l’età) OWL: tipi di proprietà
Inverse Functional Property: definisce una proprieta’ per cui due differenti oggetti non possono avere lo stesso valore <rdf:type rdf:resource=“owl;InverseFunctionalProperty” OWL: tipi di proprietà
(NB: si applicano per definire classi) Quantificatore universale: allValueFrom tutti i valori di una proprietà devono provenire da quella classe i corsiuniversotari possono essere tenuti solo da professori OWL: Restrizione di proprietà
Quantificatore esistenziale: esiste un corso del primo anno tenuto da un professore i professori insegnano qualche corso univ OWL: Restrizione di proprietà
hasValue: specifica che valore deve avere una proprietà I corsi di matematica sono insegnati da Rossi OWL: Restrizione di proprietà
Owl:minCardinality: specifica il valore minimo che può assumere una proprietà I corsi possono essere insegnati al minimo da un professore 1 OWL: Cardinalità di proprietà
Owl:maxCardinality: specifica il valore massimo che può assumere una proprietà I prof possono al max tenere 3 corsi 3 OWL: Cardinalità di proprietà
Si definisce una classe anonima che contiene gli oggetti che soddisfano quella restrizione e si definisce la classe su cui si applica la restrizione come sottoclasse di questa Professori è una sottoclasse della classe anonima che contiene tutti gli oggetti che insegnano corsi universitari OWL: precisazione
Combinazioni booleane Complemetarietà Unione tra classi Intersezione tra classi OWL: SINTASSI
Enumerazione: definire valori una volta per tutti (non supportata da OWL lite) OWL: SINTASSI
Importare ontologie esistenti Importante per il riuso della conoscenza non fare da zero ogni volta un’ontologia ma provare a riusare ontologie esistenti. OWL permettere di dare etichette per agevolare la lettura umana (utile per traduzione da una lingua all’altra) – University ontology </owl:label)
Istanze le istanze in OWL si definiscono sempre attraverso l’RDF
Definire l’ontologia che descrive questo dominio:Africa world life thing AnimalPlant Carnivore Herbivore Tree Giraffa baobab Esercizio
In particolare dire che: classi di piante, animali, alberi,erbivori, carnivori proprietà “mangia” e proprietà “è_mangiato” come inversa di “mangia la classe delle piante è disgiunta da quella degli animali gli alberi sono sottoclassi di piante gli erbivori sono sottoclassi di animali gli erbivori sono animali che mangiano solo piante I carnivori mangiano anche piante le piante possono essere mangiate da erbivori Definire un baobab come istanza di albero, e una giraffa come istanza di erbivoro ESERCIZIO
istanze
Progettare una ontologia attraverso: 1. una rappresentazione grafica 2. il linguaggio OWL seguendo le specifiche 3. usando l’editor Protege (prossima lezione) Esercizio ontologie