1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti...
-
Upload
piera-festa -
Category
Documents
-
view
219 -
download
0
Transcript of 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti...
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
<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” >
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 >
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à
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à
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à
• (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à
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à
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à
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à
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à
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
Combinazioni booleane
Complemetarietà
<owl:ComplementOf >
Unione tra classi
<owl:UnionOf >
Intersezione tra classi
<owl:intersectionOf” >
OWL: SINTASSI
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
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)
Istanze
• le istanze in OWL si definiscono sempre attraverso l’RDF
<rdf:Description rdf:ID=“9898765”>
<rdf:type rdf:resource=“professor”>
</rdf:Description>
Definire l’ontologia che descrive questo dominio:Africa world life
thing
Animal Plant
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
<rdf:Description rdf:ID=“giraff”>
<rdf:type rdf:resource=“herbivor”>
</rdf:Description>
<rdf:Description rdf:ID=“baobab”>
<rdf:type rdf:resource=“tree”>
</rdf:Description>
Progettare una ontologia attraverso:
1. una rappresentazione grafica
2. il linguaggio OWL seguendo le specifiche
3. usando l’editor Protege (prossima lezione)
Esercizio ontologie