1 ontology languages. strato dei modelli la scelta del linguaggio una volta selezionati i componenti...
TRANSCRIPT
![Page 1: 1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/1.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/2.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/3.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/4.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/5.jpg)
• 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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/6.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/7.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/8.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/9.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/10.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/11.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/12.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/13.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/14.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/15.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/16.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/17.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/18.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/19.jpg)
• (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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/20.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/21.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/22.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/23.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/24.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/25.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/26.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/27.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/28.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/29.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/30.jpg)
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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/31.jpg)
• 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,](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb72497959361e8d95cd/html5/thumbnails/32.jpg)
Progettare una ontologia attraverso:
1. una rappresentazione grafica
2. il linguaggio OWL seguendo le specifiche
3. usando l’editor Protege (prossima lezione)
Esercizio ontologie