1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti...

32
1 Ontology languages

Transcript of 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti...

Page 1: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

1

Ontology

languages

Page 2: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Strato dei modelli

Page 3: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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)

Page 4: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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.

Page 5: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

• 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)

Page 6: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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)

Page 7: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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

Page 8: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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

Page 9: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

ORIGINI DI OWL

OWL

DAML

DAML+OIL

OIL

RDF

Tutti derivati da RDF

RDFS

Page 10: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

OWL: Ontology Web Language

Linguaggio standard per scrivere ontologie.

Diventato recommendation W3C dal 2004

Page 11: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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à

Page 12: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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

Page 13: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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

Page 14: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

OWL: SINTASSI (owl-full)

Definire una classe

<owl:Class rdf:ID=“associateProfessor”>

<rdfs:subClassOf rdf:resource=“staff” >

</owl:Class>

dire che questa classe è disgiunta da un’altra

<owl:disjointWith rdf:resource=“assistantProfessor” >

dire che questa classe è equivalente ad un’altra

<owl:equivalentClass rdf:resource=“teacher” >

Page 15: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

OWL: proprietà

Proprietà

– Object property: collega un oggetto con un altro oggetto

<owl:ObjectProperty rdf:ID=“isTaughtBy” >

<rdfs:domain rdf:resource=“#course”>

<rdfs:range rdf:resource=“#staff” > </ owl:ObjectProperty >

– Data type property: collega un oggetto con un valore

<owl:DataTypeProperty rdf:ID=“age” >

<rdfs:range rdf:resource=“www.w3c.org/01/xmlschema#nonNegativeInteger” >

</ owl:DataTypeProperty >

Page 16: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Proprietà inversa: definisce una proprieta’ come inversa di

un’altra

<owl:ObjectProperty rdf:ID=“teaches” >

<rdfs:domain rdf:resource=“staff”>

<rdfs:range rdf:resource=“course” >

<owl:inverseOf rdf:resource=“isTaughtBy”

</ owl:ObjectProperty >

OWL: tipi di proprietà

Page 17: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Functional Property: definisce una proprietà che ha al massimo

un valore per ciascuno soggetto (ad esempio, l’età)

<owl:DataType Property rdf:ID=“hasAge” >

<rdfs:domain rdf:resource=“person”>

<rdfs:range

rdf:resource=“www.w3c.org/xmlschema#nonNegativeInteger” >

<rdf:type rdf:resource=“owl;FunctionalProperty” >

</ owl:ObjectProperty >

OWL: tipi di proprietà

Page 18: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Inverse Functional Property: definisce una proprieta’ per cui

due differenti oggetti non possono avere lo stesso valore

<owl:ObjectProperty rdf:ID=“hasID” >

<rdfs:domain rdf:resource=“person”>

<rdfs:range rdf:resource=“ID” >

<rdf:type rdf:resource=“owl;InverseFunctionalProperty”

</ owl:ObjectProperty >

OWL: tipi di proprietà

Page 19: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

• (NB: si applicano per definire classi)

• Quantificatore universale: allValueFrom tutti i valori di una

proprietà devono provenire da quella classe

<owl:Class rdf:about=“Courses“ >

<rdfs:Comment >i corsiuniversotari possono essere tenuti solo da professori</rdfs:Comment >

<rdfs:SubClassOf >

<owl:Restriction >

<owl:onProperty rdf:resource=“#is_taught_by” / >

<owl:allValueFrom rdf:resource=“#professor” / >

</owl:Restriction >

</rdfs:SubClassOf >

</owl:Class>

OWL: Restrizione di proprietà

Page 20: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Quantificatore esistenziale: esiste un corso del primo anno tenuto

da un professore

<owl:Class rdf:about=“Professors“ >

<rdfs:Comment >i professori insegnano qualche corso univ </rdfs:Comment >

<rdfs:SubClassOf >

<owl:Restriction >

<owl:onProperty rdf:resource=“#teach” / >

<owl:someValueFrom rdf:resource=“#Courses” / >

</owl:Restriction >

</rdfs:SubClassOf >

</owl:Class>

OWL: Restrizione di proprietà

Page 21: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

hasValue: specifica che valore deve avere una proprietà

<owl:Class rdf:about=“MathCourses“ >

<rdfs:Comment >I corsi di matematica sono insegnati da Rossi</rdfs:Comment >

<rdfs:SubClassOf >

<owl:Restriction >

<owl:onProperty rdf:resource=“#are_tought” / >

<owl:hasValue rdf:resource=“Rossi” / >

</owl:Restriction >

</rdfs:SubClassOf >

</owl:Class>

OWL: Restrizione di proprietà

Page 22: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Owl:minCardinality: specifica il valore minimo che può

assumere una proprietà

<owl:Class rdf:about=“Courses“ >

<rdfs:Comment >I corsi possono essere insegnati al minimo da un professore</rdfs:Comment >

<rdfs:SubClassOf >

<owl:Restriction >

<owl:onProperty rdf:resource=“#is_tought_by” / >

<owl:minCardinality rdf:datatype=“xsd;nonNegativeInteger” > 1

</owl:minCardinality>

</owl:Restriction >

</rdfs:SubClassOf >

</owl:Class>

OWL: Cardinalità di proprietà

Page 23: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Owl:maxCardinality: specifica il valore massimo che può

assumere una proprietà

<owl:Class rdf:about=“professor“ >

<rdfs:Comment >I prof possono al max tenere 3 corsi </rdfs:Comment >

<rdfs:SubClassOf >

<owl:Restriction >

<owl:onProperty rdf:resource=“#is_tought_by” / >

<owl:maxCardinality rdf:datatype=“xsd;nonNegativeInteger” > 3

</owl:minCardinality>

</owl:Restriction >

</rdfs:SubClassOf >

</owl:Class>

OWL: Cardinalità di proprietà

Page 24: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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

<owl:Class rdf:about=“professor“ >

<rdfs:SubClassOf >

<owl:Restriction >

<owl:onProperty rdf:resource=“#teach” / >

<owl:someValueFrom rdf:resource=“#Courses” / >

</owl:Restriction ></rdfs:SubClassOf >

</owl:Class>

Professori è una sottoclasse della classe anonima che contiene tutti gli oggetti che insegnano corsi universitari

OWL: precisazione

Page 25: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Combinazioni booleane

Complemetarietà

<owl:ComplementOf >

Unione tra classi

<owl:UnionOf >

Intersezione tra classi

<owl:intersectionOf” >

OWL: SINTASSI

Page 26: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Enumerazione: definire valori una volta per tutti (non

supportata da OWL lite)

<owl:OneOf rdf:ID=“weekDays” >

< owl:thing rdf:about=“#Monday”>

< owl:thing rdf:about=“#Tuesday”>

</ owl: OneOf >

OWL: SINTASSI

Page 27: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Importare ontologie esistenti

• Importante per il riuso della conoscenza non fare da zero ogni

volta un’ontologia ma provare a riusare ontologie esistenti.

<owl: import

rdf:resource=“www.mydomain.orf/ontologia”>

• OWL permettere di dare etichette per agevolare la lettura

umana (utile per traduzione da una lingua all’altra)

– <owl: label> University ontology </owl:label)

Page 28: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Istanze

• le istanze in OWL si definiscono sempre attraverso l’RDF

<rdf:Description rdf:ID=“9898765”>

<rdf:type rdf:resource=“professor”>

</rdf:Description>

Page 29: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Definire l’ontologia che descrive questo dominio:Africa world life

thing

Animal Plant

Carnivore Herbivore Tree

Giraffa baobab

Esercizio

Page 30: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

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

Page 31: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

• istanze

<rdf:Description rdf:ID=“giraff”>

<rdf:type rdf:resource=“herbivor”>

</rdf:Description>

<rdf:Description rdf:ID=“baobab”>

<rdf:type rdf:resource=“tree”>

</rdf:Description>

Page 32: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,

Progettare una ontologia attraverso:

1. una rappresentazione grafica

2. il linguaggio OWL seguendo le specifiche

3. usando l’editor Protege (prossima lezione)

Esercizio ontologie