ONTOLOGIE
Scienze Cognitive 2003
1
Di cosa parleremo
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
2
Cosa sono le ontologie
• Filosofia: area della metafisica che studia come è realmente fatto
l’universo che ci circonda
• Computer Science: area dell’intelligenza artificiale che studia i
metodi per rappresentare correttamente l’universo che ci circonda.
Perchè servono in CS?
• Condivisione di conoscenza: per non duplicare sforzi nello
sviluppo di sistemi software
• Comunicazione: sia tra agenti software (tra di loro) che tra
agenti software e esseri umani
Semantic Web!
Scienze Cognitive 2003
3
Conoscenza non condivisa
Sistema di diagnosi
di malattie cardiache
KB1
Scienze Cognitive 2003
Struttura
della
valvola
aortica
Sistema di pianificazione
di interventi cardiaci
KB2
Struttura
della
valvola
aortica
4
Conoscenza condivisa
Sistema di diagnosi
di malattie cardiache
KB1
Scienze Cognitive 2003
Sistema di pianificazione
di interventi cardiaci
Struttura
della
valvola
aortica
KB2
5
Comunicazione
Sistema di prenotazioni
ferroviarie (Agente 2)
Segreteria Elettronica
(Agente 1)
KB1
- Riunione
- Orario di lavoro
- Sede di lavoro
- Viaggio
- ……..
- Città di partenza
- Città di arrivo
- Data di partenza
- Ora del giorno
- ……..
KB2
ma:
cittaDiPartenza := sedeDiLavoro;
cittaDiArrivo := luogoDelMeeting;
E se cittaDiPartenza si chiama CittaPart o DepartureCity?
Scienze Cognitive 2003
6
Osservazioni
• Ontologie (punti di vista) non identici, ma condivisi
• Sistemi già esistenti: possono mantenere la propria
struttura, ma se vogliono comunicare devono avere
un protocollo comune
• Ontologie esistenti compatibili in parte: per ora,
quindi, soluzione parziale
• Poichè comunicazione uomo-macchina, condivisione
delle ontologie anche tra macchine ed esseri umani
Scienze Cognitive 2003
7
Semantic Web
Esempio: I tag danno specifiche di significato
<sentence:carry>
<subject:carrier>
<NP:xml_tags>I tag</NP:xml_tags>
</subject:carrier>
<verb:carry_info>danno</verb:carry_info>
<object:carriedInfo>
<NP:description>specifiche
<PP:contents=meaning>di significato
</PP:contents=meaning>
</NP:description>
</object:carriedInfo>
</sentence:carry>
Scienze Cognitive 2003
8
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
9
WordNet
Da un elenco di parole:
<tigre, cane, animale, mammifero, bestia, micio, soriano, gatto, felino>
A un dizionario strutturato:
{animale, bestia}
{mammifero}
{cane}
{felino}
{gatto, micio}
SynSets
{tigre}
{soriano}
NB: La stessa parola può appartenere a più SynSets
Scienze Cognitive 2003
10
Alcune versioni
WordNet:
Cognitive Science Laboratory dell’Università di Princeton
(inglese) Fine anni ‘80
EuroWordNet:
su Fondi dell’Unione Europea.
(multilingue - ILC-Pisa per l’italiano) Metà anni ‘90
ItalWordNet:
IRST-ICT (Trento). Un progetto nazionale
(italiano) Fine anni ‘90
Ovviamente, molte versioni per altre lingue
Scienze Cognitive 2003
11
Le relazioni di WordNet (originale)
Relazione
POS collegate
Esempi
Sinonimia
nome/nome; verbo/verbo;
aggettivo/aggettivo; avverbio/avverbio
book/volume; to eat/to take in;
great/outstanding; greatly/drastically
Antonimia
man/woman; to enter/to exit;
long/short
Iponimia
nome/nome; verbo/verbo;
aggettivo/aggettivo
nome/nome; verbo/verbo
Meronimia
nome/nome
head/nose
Implicazione
verbo/verbo
to buy/to pay
Causa
verbo/verbo
to kill/to die
Somiglianza
aggettivo/aggettivo
wet/humid
Attributo
aggettivo/nome
tall/stature
Relativo al nome
aggettivo/nome
fraternal/broterhood
Scienze Cognitive 2003
slicer/knife; to walk/to move
12
Osservazioni
• Alcune delle relazioni adottate sono alquanto vaghe
• POS sta per Part Of Speech (nome, verbo, ecc.)
• POS diverse collegate solo in casi particolari
• Le Relazioni sono strutture del tutto diverse dai
Synsets
Scienze Cognitive 2003
13
Le relazioni di EuroWordNet
Relazione
Ordini collegati
Esempi
Sinonimia
1/1; 2/2; 3/3
barriera/ostacolo;comprare/acquistare;conoscenza/cognizione
Quasi sinonimia
1/1; 2/2; 3/3
ordigno/congegno; certificare/assicurare
Xpos quasi sinonimia
2/2
arrivo/arrivare
Antonimia
1/1; 2/2; 3/3
incredibile/credibile
Quasi antonimia
1/1; 2/2; 3/3
sopra/sotto; arrivare/partire
Xpos quasi antonimia
2/2
arrivo/partire
Iponimia
1/1; 2/2; 3/3
cane/animale; agitarsi/muoversi
Xpos iponimia
2/2
arrivo/andare; martellata/colpire
Meronimia
1/1
braccio/corpo; mano/dito
Causa
2/2
uccidere/morire; giustiziare/condanna
Sotto-evento
2/2
comprare/pagare; dormire/russare
Ruolo
1/2
martello/martellare; pedone/camminare
Co_ruolo
1/1
chitarrista/chitarra
Stato_di
1/2
povero/povertà; vecchio/vecchiaia
Maniera_per
2/2
bisbigliare/a-bassa-voce; trucidare/barbaramente
Derivazione
Tra tutti
acqua/acquaiolo
Relativo_a
2/2
presidenziale/presidente
Classe
1/1
Po/fiume; Roma/città
Scienze Cognitive 2003
14
Osservazioni
•
La seconda colonna è molto diversa da quella della tabella precedente. I numeri (1,
2, 3) si riferiscono ai cosiddetti “ordini semantici”, così definiti:
1: nomi concreti
2: nomi, verbi, aggettivi o avverbi indicanti proprietà, stati, processi o eventi
3: nomi astratti indicanti proposizioni indipendenti dal tempo e dallo spazio
•
Per molte relazioni sono definite anche le inverse, che per semplicità non ho
riportato in tabella (ad es. iponimia  iperonimia; meronimia  olonimia; causa 
causato_da; …)
•
Alcune relazioni non sono definite tra Synset, ma tra singole parole. Questo vale
ovviamente per la sinonimia, ma anche per la derivazione e per l’antonimia
•
La tabella è molto più estesa della precedente; non riporto la tabella delle relazioni
di ItalWordNet, che comprende 45 righe, al posto delle 18 che ci sono sopra
•
Tutti i Synset coinvolti si riferiscono a classi (chitarra, andare, …) eccetto quelli che
compaiono nell’ultima relazione, in cui uno dei due elementi collegati è un’istanza
(Po, Roma)
Scienze Cognitive 2003
15
L’Architettura di EuroWordNet
Domain ontology
Top ontology
traffic
2nd order
entity
air traffic road traffic
ride
III
III
cabalgar
III
III
WordNet
Inglese
conducir
WordNet
Spagnolo
Scienze Cognitive 2003
III
rijden
I
I
II
III
II
guidare
II
Inter Lingual
Index
berijden
III
betragen
II
ILI record
(drive)
III
mover
dynamic
drive
III
move
location
III
III
WordNet
Olandese
cavalcare
III
muoversi
WordNet
Italiano
16
Osservazioni
•
La top-ontology è una rappresentazione strutturata dei concetti più generali (la
esamineremo sotto)
•
Le Domain-Ontologies sono elenchi (parzialmente strutturati) di Campi Semantici,
e cioè di ‘argomenti’ (ad es. Sport, calcio, astronomia, …)
•
L’Inter Lingual Index (ILI) è solo una tabella di mapping tra Synset, non
strutturata
•
Vi sono tre tipi diversi di archi:
I: archi indipendenti dalle varie lingue, che collegano un record dell’ILI con le
top e domain ontologies
II: archi che collegano i synset dei vari WordNet all’ILI (e viceversa)
III: archi, dipendenti dalla particolare lingua, che collegano i vari synset.
Questi sono gli archi che abbiamo descritto nelle due tabelle precedenti.
Scienze Cognitive 2003
17
La Top-Ontology
entity
1st order
2nd order
3rd order
thing
dynamicT
artifactO
causeC
locationC
mental
staticT
naturalO
substanceF
placeU
comestibleU
containerU
bounded
EventT
objectF
aliment
gasF
comestibleU
+artifactO
candy
containerU
+objectF
containerU
+objectF
+artifactO
liquidF
solidF
vessel
bottle
Scienze Cognitive 2003
18
La definizione dei concetti è basata su features
•
Per le entità del primo ordine esse sono:
o Origin (se è naturale o artificiale; indice O nella figura)
o
o
Natural
o Living
o
o
o
o
Artifact
Plant
Human
Creature
Animal
o Form (se è una sostanza o un oggetto con forma definita; indice F nella figura)
o
o
Substance
o Solid
o Liquid
o Gas
Object
o Composition (se è un oggetto unitario o un gruppo; non compare in figura)
o
o
Part
Group
o Function (la funzione)
o
o
o
o
o
o
o
o
o
o
o
o
Vehicle
Representation
o MoneyRepresentation
o LanguageRepresentation
o ImageRepresentation
Software
Place
Occupation
Instrument
Garment
Furniture
Covering
Container
Comestible
Building
Scienze Cognitive 2003
19
•
Per le entità del secondo ordine esse sono:
o Situation Component (una caratteristica o un partecipante della situazione
descritta; indice C nella figura)
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
Cause
Communication
Condition
Existence
Experience
Location
Manner
Mental
Modal
Physical
Possession
Purpose
Quantity
Social
Time
o Situation Type (il tipo della situazione; indice T in figura)
o
o
•
Dynamic
o BoundedEvent
o UnboundedEvent
Static
o Property
o Relation
Le entità del terzo ordine non hanno features
Scienze Cognitive 2003
20
Osservazioni
•
Le features possono essere combinate per ottenere concetti più specifici (ad esempio,
si veda in figura containerU+objectF+artifactO )
•
I concetti del Top-level non sono dei SynSets! Per cui termini come Container
debbono comparire sia nella top ontology, sia in uno o più SynSet
•
Alla Top-ontology sono agganciati 1310 Base Concepts, concetti fondamentali
comuni a tutte le lingue, individuati in base a 3 criteri:
•
•
•
Numero delle relazioni associate ad essi
Posizione nella gerarchia tassonomica
Frequenza in un corpus
•
Non sono predefiniti dei meccanismi inferenziali, che permettano di sfruttare la
semantica delle relazioni. ItalWordNet è memorizzato in un DB relazionale, ed è
compito dell’utente scrivere le query opportune per spostarsi tra I Synsets.
•
Esistono però dei browser grafici che permettono di navigare (manualmente) nella
rete
Scienze Cognitive 2003
21
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
22
Cyc
•
Il progetto Cyc (da enCYClopedia) nasce nel 1984 ed è ancora in corso (si veda il
sito http://www.opencyc.org/).
•
Attualmente, Cyc include oltre un milione di concetti, mentre la versione pubblica
OpenCyc comprende circa 6.000 concetti e 60.000 relazioni tra di essi
•
So, the mattress in the road to AI is lack of knowledge, and the anti-mattress is
knowledge. But how much does a program need to know to begin with? The
annoying, inelegant, but apparently true answer is: a non-trivial fraction of
consensus reality - the millions of things that we all know and that we assume
everyone else knows” (Guha & Lenat 90, p.4)
Scienze Cognitive 2003
23
2 componenti
Constraint Language
(Logica dei predicati)
CycL (linguaggio basato su frame)
Scienze Cognitive 2003
24
CycL
Units
I frame di Cyc si chiamano Units. Esse includono, come tutti i frames, degli slots
Esempio di Unit relativa ad un’istanza
#$Texas
#$capital: (#$Austin)
#$residents: (#$Doug Guha Mary)
#$stateOf: (#$UnitedStatesOfAmerica)
Tutti i simboli che hanno il prefisso #$ sono Units. Una caratteristica fondamentale
di Cyc è che, come si vede dall’esempio, anche gli slots sono Units (SlotUnits)
Scienze Cognitive 2003
25
Esempio di Unit relativa ad uno slot
#$residents
#$instanceOf: (#$Slot)
#$inverse: (#$residentOf)
#$makesSenseFor: (#$GeopoliticalRegion)
#$entryIsA: (#$Person)
#$specSlots: (#$lifelongResidents #$illegalAliens #$registeredVoters)
•
Da un punto di vista formale, gli slots sono relazioni binarie
•
Quindi, è necessario definire il dominio (#$makesSenseFor) e il range
(#$entryIsa)
•
E’ anche possibile definire relazioni tra relazioni (#$inverse e #$specSlots)
Altri esempi più avanti
Scienze Cognitive 2003
26
Il Constraint Language
Una variante della logica dei predicati
basata su ‘restricted quantification’
Es. Tutte le persone hanno una madre e la loro differenza di età è maggiore di 16
Versione in logica dei predicati standard
("x) person (x) 
[($y) person ( y)  mother(x,y) greaterThan(diff(age(y),age(x)), 16) ]
Versione con quantificazione ristretta
("xperson) ($yperson) mother(x,y) greaterThan(diff(age(y),age(x)), 16) ]
Versione Cyc
(#$ForAll x (#$Person)
(#$Exists y (#$Person)
(LogAnd (#$mother x y)
(#$GreaterThan (#$Diff (y #$age) (x #$age)) 16))))
Scienze Cognitive 2003
27
Versione Cyc più efficiente: separare …
la definizione dello slot …
#$Person
#$genls: (#$Living)
#$name: (#$PersonName)
#$residentOf: (#$city)
#$mother: (#$Person)
#$inheritedSlotConstraints: (#$AgeOfMotherConstraint)
dal vincolo (constraint) sullo slot (infatti: Constraint Language)
#$AgeOfMotherConstraint
#$instanceOf: (#$SlotConstraint)
#$constraintInheritedTo: (#$Person …)
#$slotsConstrained: (#$mother)
#$slotConstraints: (#$GreaterThan
(#$Diff (v #$age) (u #$age)) 16)))))
Scienze Cognitive 2003
28
Per completezza, e perchè serve dopo, ecco la definizione dello slot #$mother:
#$mother
#$instanceOf: (#$Slot)
#$inverse: (#$motherOf)
#$makesSenseFor: (#$Person)
#$entryIsA: (#$Person)
#$entryFormat: (SingleEntry)
Ma perchè questa soluzione è più efficiente?
Perchè parte del vincolo è espresso in CycL, che è stato
introdotto proprio per rendere alcune inferenze più efficienti
Scienze Cognitive 2003
29
Inferenza in Cyc
Consideriamo la seguente operazione:
(Put #$Giorgio #$mother #$Lucia)
Essa memorizza (Put) nello slot #$mother della Unit #$Giorgio, il valore
(riferimento alla Unit) #$Lucia (e cioè, Lucia è la madre di Giorgio)
Supponiamo ora di fare:
(Get #$Lucia #$mother-of)
E cioè di richiedere (Get) di chi è madre (#$mother-of) #$Lucia.
Supponiamo che Lucia non abbia altri figli oltre Giorgio.
Quale sarà il risultato?
Scienze Cognitive 2003
30
Possiamo ottenere due risultati:
1.
()
Cioè la lista vuota: Lucia non ha figli
2.
(#$Giorgio)
Lucia è madre di Giorgio
Il primo risultato si ottiene se sia la Get che la Put precedenti sono
state richieste “senza nessuna inferenza”
Il secondo risultato si ottiene se o la Get o la Put (o entrambe) sono
state richieste “con inferenza” (anche minima)
Quale inferenza è necessaria?
Quella associata alla definizione dello slot #$mother (v. slide 29), in cui
è specificato che #$mother ha un #$inverse, che è appunto #$mother-of
Scienze Cognitive 2003
31
Alcuni meccanismi inferenziali in CycL
•
Mantenimento di relazioni inverse: abbiamo già visto l’esempio
•
Mantenimento di specSlot-genlSlot: alcuni slot di una unit possono essere
legati da una relazione di specializzazione-generalizzazione. Ad es.
#$padreDi #$specSlot #$genitoreDi
Se viene inserita l’informazione
(#$Luigi #$padreDi #$Marta)
Cycl introduce automaticamente
(#$Luigi #$genitoreDi #$Marta)
•
TransfersThro: Il valore di uno slot può essere trasferito a Unit collegate:
#$libro #$scrittoIn #$linguaggio
#$libro #$parteDiTesto #$capitolo
#$scrittoIn #$transfersThro #$parteDiTesto
Se viene inserita l’informazione
(#$I_demoni #$scrittoIn #$russo)
(#$I_demoni #$parteDiTesto #$I-demoni-cap-1)
Cycl introduce automaticamente
(#$I_demoni-cap-1 #$scrittoIn #$russo)
Scienze Cognitive 2003
32
Alcuni meccanismi inferenziali in CycL (2)
•
MutuallyDisjointWith: Permette di specificare che due classi (Unit) sono
disgiunte. Es:
#$malePerson #$mutuallyDisjointWith #$femalePerson
#$individualObject #$mutuallyDisjointWith #$collection
Ogni volta che si specifica che un individuo viene inserito come istanza di una classe
C1, Cycl verifica che non sia già istanza di una classe C2 disgiunta da C1
Controlli analoghi si hanno per #$covering e $partitionedInto
•
Insiemi coestensionali: Permette di specificare che due classi (Unit)
debbono necessariamente includere le stesse istanze.
#$gatto #$coExtensionalSets #$micio
Se:
(#$Milu #$instanceOf #$gatto)
Cycl asserisce automaticamente
(#$Milu #$instanceOf #$micio)
(e viceversa)
N.B. Intensioni vs. estensioni
Scienze Cognitive 2003
33
Alcuni meccanismi inferenziali in CycL (3)
•
Ereditarietà: ben noto: “Se tutte le persone hanno un codice fiscale e i
professori sono persone, allora i professori hanno un codice fiscale”.
In realtà, Cyc estende questo meccanismo:
Ereditarietà standard:
Si applica allo slot #$allInstances (tutte le istanze di una unit); Se
#$persona
#$nazionalità: (#$stato)
#$studenteUnivTorino
#$genL: (#$persona)
#$nazionalità
“default per #$studenteUnivTorino = #$Italia”
Allora, quando si asserisce
#$studenteUnivTorino #$allInstances (… #$Sandra …)
Cyc ottiene (per default)
#$Sandra #$nazionalità #$Italia
Scienze Cognitive 2003
34
Alcuni meccanismi inferenziali in CycL (4)
Ma l’ereditarietà si può anche applicare ad altri slot:
Nell’esempio che segue, alla coppia <#$possiedeAuto, #$categoria>
#$persona
#$possiedeAuto: (#$modelloDiAuto)
#$modelloDiAuto
#$categoria: (#$utilitaria #$media #$sport #$lusso)
#$Carla #$instanceOf #$persona
#$possiedeAuto ° #$categoria
“default per #$Carla = #$lusso”
Allora, quando si asserisce
#$Carla #$possiedeAuto (… #$AutoXXX …)
Cyc ottiene (per default)
#$AutoXXX #$categoria #$lusso
N.B. Ho appositamente messo tra virgolette i due default di esempio: non c’è
modo in Cyc per specificare queste ereditarietà in modo dichiarativo, ma
bisogna usare una funzione apposita.
Scienze Cognitive 2003
35
Alcuni meccanismi inferenziali in CycL (5)
•
Mantenimento di definizioni (toCompute): zio =def fratello ° genitore
(formalmente composizione di funzioni). In Cyc:
#$zio
#$toCompute (#$computeByComposing #$fratello #$genitore)
•
Attivazione di “demoni”. Essi sono procedure, associate agli slot, che
vengono eseguite se lo slot viene modificato. Ad esempio, se per gli studenti
ho lo slot #$esamiSostenuti e lo slot #$crediti, al primo slot si può
agganciare un demone che viene attivato ogni volta che si aggiunge un
nuovo esame, incrementando automaticamente il numero di crediti.
•
Classificazione: se
triangolo =def poligono con esattamente tre lati
equiTria =def poligono con esattamente tre lati uguali
allora tutti gli equiTria sono triangoli
Scienze Cognitive 2003
36
Un esempio di attivazione di demoni
#$Lesmo
#$instanceOf: (#$ProfessoreUniversitario)
#$insegnaIn: (#$UniversitaDiTorino)
#$name: (#$Leonardo)
#$UniversitaDiTorino
#$instanceOf: (#$Ateneo)
#$sede: (#$Torino)
#$rettore: (#$RinaldoBertolino)
#$Torino
#$instanceOf: (#$Città)
#$inRegione: (#$Piemonte)
#$insegnaIn
#$instanceOf: (#$Slot)
#$makesSenseFor: (#$ProfessoreUniversitario)
#$entryIsa: (#$Ateneo)
#$entryFormat: (#$SingleEntry)
#$afterAdding: (#$MyComputeByComposing #$risiedeInRegione #$sede #$inRegione)
Scienze Cognitive 2003
37
Applicazione dei meccanismi inferenziali
•
1.
•
I metodi visti in precedenza non vengono sempre applicati. Alcuni, infatti
(ad esempio la classificazione) sono piuttosto inefficienti. E’ compito
dell’utente specificare quali meccanismi desidera siano applicati.
All’atto della get (inferenza backward)
La get non esiste; esistono invece 4 versioni di potenza differente:
• get0: nessuna inferenza (come accesso a database)
•
get4: inferenze semplici e molto efficienti (#$inverse, #$toCompute,
#$genlSlots, #$TransfersThro, #$coExtensionalSets, …)
• get6: inferenze complesse: ereditarietà completa, classificazione,
demoni
• get8: inferenze plausibili (che non abbiamo visto), es. Ragionamento
per analogia, uso di ‘strutture’, …
Scienze Cognitive 2003
38
Applicazione dei meccanismi inferenziali (2)
All’atto della put (inferenza forward)
2.
•
In teoria, put come get. In pratica, un unico livello: put4
Perchè?
•
Le inferenze sotto il livello 4 sono molto efficienti all’atto
della put, molto inefficienti all’atto della get. Es.
(get #$Lucia #$motherOf)
Applicare l’inverse a (put #$Giorgia #$mother #$Lucia)
è immediato e, in tal caso, anche rispondere alla get sopra è
immediato.
In caso contrario, rispondere alla get richiede controllare tutte le
#$Person per verificare se hanno (#$mother #$Lucia)
•
Le inferenze sopra il livello 4 sono molto inefficienti sempre,
per cui è il caso di farle solo se richiesto
Scienze Cognitive 2003
39
Una conclusione sulle inferenze: TMS
•
La conoscenza introdotta tramite meccanismi inferenziali è
spesso incerta (per default). V. esempio categoria dell’auto di
Carla (slide 35). Cosa succede se viene introdotto
manualmente il dato che Carla ha comprato un’utilitaria?
•
Prima alternativa: inconsistenza  errore
•
Seconda alternativa: alcuni dati sono più incerti di altri: un
dato introdotto manualmente è più sicuro di uno inferito
tramite inheritance.
•
Per mettere in pratica la seconda alternativa, Cyc usa un
TMS (Truth Maintenance System), che in realtà si applica
anche a casi più generali di quello dell’esempio.
•
Se Cyc sa che è vero Fatto1, che è vera la regola (non default)
Fatto1  Fatto2, può dedurre Fatto2.
Se viene asserito che Fatto2 è falso cosa si può fare? Si può negare
che è vero Fatto1, o cancellare la regola.
Scienze Cognitive 2003
40
Alcune considerazioni ontologiche
•
Topolino è una #$Thing? Ovviamente sì, anche se non è reale.
•
Person è una #$Thing? Sì, della classe (come entità) si sanno
alcune cose (come la cardinalità – circa 6 miliardi)
•
327.451.666 è una #$Thing? Lo è diventata in questo momento!
Di essa si può dire che è un numero che è stato usato come
esempio nelle lezioni di Lesmo.
•
‘Mangiare al ristorante’ è una #$Thing? E’ certamente una
classe (di eventi). Può diventare un’entità se di essa (come
classe) si vuol dire qualcosa (v. sopra esempio Person)
•
‘La difesa della Juve’ è una #$Thing?
Sì, ma può essere di
due tipi: un’entità ‘intera’ (IndividualObject), o una collezione.
•
Influenza è un #$IndividualObject o una #$Collection? E’ una
collezione, ma, come Person, può avere un’individualità come classe.
Scienze Cognitive 2003
41
Il top level di Cyc
#$Thing
#$Individual
#$Intangible
#$SetOrCollection
#$IntangibleIndividual
#$Situation
#$TemporalThing
#$Relationship
#$Collection
Una lista dei concetti di Cyc si può trovare al sito
http://www.cyc.com/cyc-2-1/toc.html (aggiornato al 1997)
Alcune descrizioni di concetti
(dalla documentazione Cyc)
#$Thing:
è l’insieme universale: la collezione di ogni cosa! Ogni costante Cyc nella Base di
Conoscenza è membro di questa collezione. Inoltre, ogni collezione della Base di
Conoscenza è membro della collezione #$Thing.
Scienze Cognitive 2003
42
#$Intangible:
la collezione di cose che non sono fisiche - non sono fatte di, o codificate nella, materia. Ogni
#$Collection è #$Intangible (anche se le sue istanze sono tangibili) e tali sono anche alcuni
#$Individual. Attenzione: non si confonda ‘tangibilità’ con ‘percettibilità’ - gli esseri umani possono
percepire la luce anche se essa è intangibile.
#$Individual:
la collezione di tutte le cose che non sono insiemi o collezioni. Così #$Individual include, tra le altre
cose, oggetti fisici, sottoastrazioni temporali di oggetti fisici[, numeri, relazioni e gruppi. Un elemento
di #$Individual può avere parti o una struttura (incluse parti che sono discontinue); ma NESSUNA
istanza di #$Individual può avere elementi o sottoinsiemi.
#$IntangibleIndividual:
la collezione degli individui intangibili. I suoi elementi non hanno massa, volume, colore, ecc. Ad
esempio, ore, idee, algoritmi, interi, distanze, e così via. D’altra parte, in quanto sottoinsieme di
#$Individual, questa collezione ESCLUDE insiemi e collezioni, che sono elementi di #$Intangible, ma
non di #$IntangibleIndividual
#$TemporalThing:
la collezione delle cose che hanno una particolare estensione temporale, cose delle quail uno
potrebbe ragionevolmente chiedere ‘Quando?’. Essa include molte cose; come le azioni, gli oggetti
tangibili, gli accordi, e porzioni astratte di tempo. Alcune cose NON sono istanze di
#$TemporalThing perchè sono astratte, atemporali, come un insieme matematico, un intero, ecc.
Scienze Cognitive 2003
43
Conclusioni su Cyc
•
Un sistema enormemente complesso, che include sia una
parte di rappresentazione di conoscenza e inferenza, sia una
ontologia vera e propria
VANTAGGI:
- Dimensione
- Potenza inferenziale
- Ottimizzazione dei ragionamenti
SVANTAGGI:
- Troppo complesso
- Non chiare le scelte ontologiche
- Alcuni insuccessi (es. Legami col linguaggio naturale)
Scienze Cognitive 2003
44
•
Versione 1990
#$Thing
#$RepresentedThing
#$Intangible
#$IndividualObject
#$IntangibleObject
#$Stuff
#$Event
#$Collection
#$Relationship
#$IntangibleStuff
#$Process
#$Slot
•
Versione 1997
#$Thing
#$Individual
#$Intangible
#$SetOrCollection
#$IntangibleIndividual
#$Situation
#$TemporalThing
#$Relationship
#$Collection
Perchè ?
Scienze Cognitive 2003
45
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
46
SUMO
•
SUMO (Suggested Upper Merged Ontology) è il risultato di uno sforzo dell’IEEE
(Institute of Electrical and Electronic Engineering), iniziato verso la metà degli anni
‘90. Per ottenere informazioni su SUMO si può accedere al sito del gruppo di lavoro
SUO (Standard Upper Ontology) http://suo.ieee.org
•
Questo standard specificherà una ‘upper ontology’ che i computer potranno utilizzare
per applicazioni quali l’interoperabilità dei dati, la ricerca e il reperimento di
informazioni, il ragionamento automatico e l’elaborazione del linguaggio naturale.
Un’ontologia è simile ad un dizionario o a un glossario, ma con maggiore dettaglio e
struttura, che permette ad un computer di elaborare il suo contenuto. Un’ontologia
consiste di un insieme di concetti, assiomi e relazioni che descrivono un dominio di
interesse. Una ‘upper ontology’ è limitata a concetti che sono ‘meta’, generici, astratti
e filosofici e, di conseguenza, sono sufficientemente generali da coprire (ad alto livello)
un ampio range di domini. I concetti relativi ai domini specifici non saranno inclusi,
ma questo standard fornirà una struttura e un insieme i concetti generali sulla base
dei quali potranno essere costruite le ontologie di dominio (ad es. medicina, finanza,
ingegneria, ecc.).”
Scienze Cognitive 2003
47
Le componenti di SUMO
STRUCTURAL
ONTOLOGY
BASE
ONTOLOGY
TEORIA DEGLI
INSIEMI
NUMERI
MEREOTOPOLOGIA
(PARTI E SPAZIO)
TEMPO
MISURE
PROCESSI
QUALITA’
Scienze Cognitive 2003
OGGETTI
48
Structural Ontology
Descrizione (in SUMO) delle primitive di SUMO
Definizione della relazione instance
(asserted StructuralOntology (instance instance BinaryPredicate))
(asserted StructuralOntology (instance instance AntisymmetricRelation))
(asserted StructuralOntology (domain instance 1 Entity))
(asserted StructuralOntology (domain instance 2 Class))
Definizione della relazione subclass
(asserted StructuralOntology (instance subclass BinaryPredicate))
(asserted StructuralOntology (instance subclass PartialOrderingRelation))
(asserted StructuralOntology (domain subclass 1 Class))
(asserted StructuralOntology (domain subclass 2 Class))
Un ‘assioma’
(asserted StructuralOntology
(=> (subclass ?C1 ?C2)
(forall (?X)
(=> (instance ?X ?C1)
(instance ?X ?C2)))))
Scienze Cognitive 2003
49
Structural Ontology (2)
Definizione della relazione inverse
(asserted StructuralOntology (instance inverse BinaryPredicate))
(asserted StructuralOntology (instance inverse SymmetricRelation))
(asserted StructuralOntology (domain inverse 1 BinaryRelation))
(asserted StructuralOntology (domain inverse 2 BinaryRelation))
Un ‘assioma’ per ‘inverse’
(asserted StructuralOntology
(=>
(and (inverse ?R1 ?R2)
(instance ?R1 BinaryRelation)
(instance ?R2 BinaryRelation))
(forall (?X1 ?X2)
(<=> (holds ?R1 ?X! ?X2)
(holds ?R2 ?X2 ?X1)))))
A differenza di Cyc, non ‘procedure di inferenza’,
ma formule logiche
Scienze Cognitive 2003
50
Base Ontology (il top-level)
Entity
Physical
Object
Process
Abstract
Attribute
Quantity
Class
Proposition
Alcuni assiomi
Entity:
("x) instance (x, Entity)
Qualunque cosa è un’istanza di Entity
($x) instance (x, Entity)
Esistono delle istanze di Entity
("c) instance (c, Class)  subclass (c, Entity)
Tutte le classi sono sottoclassi di Entity
Scienze Cognitive 2003
51
Base Ontology (un altro assioma)
Physical:
("x) Physical (x)  [($y,z) located (x, y)  existant(x,z)]
Ogni entità fisica deve avere un luogo (y) e un periodo (z) in cui esiste.
Base Ontology (sotto il top-level)
Esempio: dove stanno I processi intenzionali
(quelli compiuti con intenzione)?
Process
Intentional
Process
Scienze Cognitive 2003
NonIntentional
Process
52
Base Ontology (sotto il top level)
Processi intenzionali
Keeping
Regulatory
Process
Maintaining
Securing
Concealing
Poking
Revealing
Grooming
Content
Development
Touching
Decorating
Intentional
Process
Exercise
Process
Confining
Mental
Process
Repairing
Holding
Guiding
Searching
Pursuing
Recreational
Process
Religious
Process
Organizational
Process
Educational
Process
Diagnostic
Process
Therapeutic
Process
Graduation
Surgery
Social
Interaction
Investigating
Occupational
Process
Scienze Cognitive 2003
Political
Process
Managing
Regulatory
Process
53
Base Ontology (qualche assioma sui processi)
Process:
("x) Process (x)  ($y) subProcess (x,y)
Tutti processi hanno dei sotto-processi.
subProcess:
("x,y) subProcess (x,y)  ($t) existant (y,t)
Ogni sottoprocesso esiste in qualche istante temporale
("x,y) subProcess (x,y)  [("z) located (y,z)  located (x,z)]
Se un sottoprocesso avviene in un luogo, anche il processo avviene in tale luogo
("x,y) subProcess (x,y)  WhenFn(x)=WhenFn(y) during (WhenFn(x),WhenFn(y))
Un sottoprocesso o coincide temporalmente o è incluso nel suo sopra-processo.
WhenFn è una funzione che restituisce un intervallo temporale
IntentionalProcess:
("x) IntentionalProcess (x)  ($y) agent (x, y)
Tutti i processi intenzionali hanno un agente
("x,y) IntentionalProcess (x)  agent(x,y) 
CognitiveAgent(y)  ($z) hasPurposeForAgent (x, z, y)
Gli agenti dei processi intenzionali sono CognitiveAgent, e deve esserci
uno ‘scopo’ z, tale che il processo è utile per quello scopo
Scienze Cognitive 2003
54
Conclusioni su SUMO
•
Una vera ontologia: non ci si preoccupa di come si effettuano
i ragionamenti, ma solo di ‘descrivere’ i concetti e le loro
proprietà
•
Il linguaggio in cui è espresso SUMO si chiama KIF (Knowledge
Interchange Format), ed è esso che si occupa della parte
inferenziale (l’equivalente di Cycl+Constraint)
VANTAGGI:
- Separazione conoscenza-reasoning
- Ontologia piuttosto ampia
- Integrazione di conoscenza da fonti diverse
SVANTAGGI:
- Scelte ontologiche più chiare di Cyc, ma ancora dubbie
- L’insieme degli assiomi è piuttosto limitato
- Efficienza dei ragionamenti
Scienze Cognitive 2003
55
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
56
Dolce
(un ponte tra filosofia e computer science)
•
Dolce (Descriptive Ontology for Linguistic and Cognitive Engineering) è il risultato
dell’attività svolta sulle ontologie presso l’Istituto per le Scienze e le Tecnologie
Cognitive del CNR (Trento-Roma)
•
Dolce non si propone come candidata per un’ontologia universale, ma come un
punto di partenza per confrontare e chiarire la relazioni esistenti tra diversi moduli
ontologici e per rendere esplicite le assunzioni presenti nelle ontologie esistenti
•
Dolce ha un orientamento cognitivo, nel senso che tende ad esprimere le categorie
ontologiche alla base del linguaggio naturale e del senso comune umano.
•
Parallela a Dolce c’è Ontoclean, che è una metodologia per la verifica si ontologie.
Non la presenterò, ma vedremo qualche dettaglio
Scienze Cognitive 2003
57
OntoClean
• Quattro nozioni fondamentali nella caratterizzazione dei concetti
• Identità: possibilità di distinguere due istanze di una classe mediante una
proprietà caratteristica (anche in tempi diversi)
Ex. Per ‘Person’: ‘avere le stesse impronte digitali’
• Dipendenza: la proprietà P è dipendente dalla proprietà Q, se, quando Q è vera,
è vera anche P.
Ex. ‘avere figli’ dipende da ‘essere genitore’
• Rigidità: dice, di una proprietà, se essa è ‘stabile’ per le istanze.
Ex. ‘Person’ è rigida; ‘Student’ non è rigida
• Unità: possibilità di identificare tutte le parti di un’entità mediante una relazione
unificante
Ex. ‘Azienda’: ‘essere stati assunti in quell’azienda’
Scienze Cognitive 2003
58
A cosa servono?
• Vincoli sulla relazione di sussunzione
1.
Una classe non rigida (-R) non può sussumere una classe rigida (+R)
Ex. ‘Legal Agent‘ non può sussumere ‘Person’
2.
Una classe che ha una condizione di identità (+I) non può sussumere una
classe che manca di una condizione di identità (-I)
Ex. ‘Park‘ non può sussumere ‘Location’
3.
Una classe che ha una condizione di unità (+U) non può sussumere una
classe che manca di una condizione di unità (-U)
Ex. ‘Amount of Matter‘ non può sussumere ‘Physical Object’: se una quantità
d’acqua ne perde una parte è una diversa quantità d’acqua, ma se a una
persona si tagliano i capelli rimane la stessa persona
4.
Una proprietà dipendente da un’altra (+D) non può sussumere una
proprietà indipendente (-D)
Scienze Cognitive 2003
59
Endurant e Perdurant
•
Gli Endurants sono ‘completamente’ presenti (cioè con tutte le loro parti) quando
l’Endurant stesso è presente. Esempio classico: gli oggetti (ad es. una casa)
•
Ad ogni istante temporale, solo una parte (una ‘fetta’ temporale) di un Perdurant è
presente (ad es. gli eventi)
•
Correlato al concetto di cambiamento: solo gli Endurant possono cambiare (pur
mantenendo la loro identità, concetto questo non facile da caratterizzare
ontologicamente), mentre è ovvio che i Perdurant non cambiano, essendo le loro
‘parti’ diverse nel tempo per la definizione stessa di Perdurant
•
Relazione fondamentale tra Endurant e Perdurant: partecipazione; gli Endurant
partecipano (e cioè hanno un ruolo) nei Perdurants; ad esempio io, che sono un
Endurant, partecipo nella mia azione (un Perdurant) di andare dall’Università a
casa.
Scienze Cognitive 2003
60
Il top level di Dolce
Entity
Abstract
Fact
Set
Region
Endurant
Substantial
Perdurant
Quality
Event
Stative
•
Gli Abstract, comuni a varie ontologie, non richiedono commenti
•
Le Qualities sono componenti essenziali delle entità. Esse sono simili alle proprietà,
ma sono degli individui, non delle classi. Ad es. il colore di una rosa è una sua
qualità; un’altra rosa può avere lo stesso colore, ma si tratta di un’altra qualità,
anche se i valori con cui si misurano queste due qualità coincidono.
•
I Substantials sono aggregati stabili di proprietà. Essenziale la ‘meta-proprietà’
(concetto di Ontoclean) Unity.
•
Anche la differenza tra Event e Stative sembra abbastanza ovvia.
Scienze Cognitive 2003
61
Critica del top-level di WordNet
•
Confusione tra concetti e individui
Composer
Contrapuntist
SongWriter
Bach
Beethoven
•
In Dolce differenza tra concetti e ruoli materiali, basata sulla metaproprietà ‘rigidità’. Questa differenza non si osserva in WordNet (e in
nessuna delle altre ontologie che abbiamo visto).
•
Confusione tra meta-level e object-level
Abstraction
meta-level
object-level
Set
Scienze Cognitive 2003
Time
Space
Attribute
Relation
62
Conclusioni su Dolce
•
Nè una ontologia, nè un insieme di metodi di ragionamento,
bensì una metodologia (OntoClean)
•
Ma sulla base di questa metodologia, proposta di un “top-top
level” (Dolce)
•
Non direttamente confrontabile con le altre ontologie viste,
ma possiamo dire:
VANTAGGI:
- Connessione con i fondamenti filosofici
- Basi solide per valutare le scelte ontologiche
SVANTAGGI:
- Richiede un lavoro manuale non indifferente
- Non essendo un’ontologia, non è direttamente usabile, o,
meglio, la parte usabile è molto ridotta
Scienze Cognitive 2003
63
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
64
Loom
•
Loom offre un “description language” per modellare oggetti e relazioni. La
programmazione procedurale è realizzata tramite metodi ‘pattern-directed’,
mentre le capacità inferenziali basate su produzioni e sulla classificazione
offrono un supporto per il ragionamento deduttivo.
Operazioni di modifica della KB
•
defconcept (define concept): crea un nuovo concetto
•
defrelation: (define relation): crea una nuova relazione, cioè un link tra due concetti.
•
defset (define set): crea un nuovo concetto definito tramite l’insieme dei suoi valori
•
tell: fornisce informazioni su un’istanza
Una KB può trovarsi in due stati: provvisorio e stabilizzato
Scienze Cognitive 2003
65
Esempio
(defconcept localita (exactly 1 nome))
Localita
nome
[1]
string
Citta
popolazione
[1]
(defconcept citta :is-primitive
(and localita
(exactly 1 popolazione)
(at-least 1 ufficio-turistico)))
number
(defrelation nome :range string)
ufficio-turistico
[1, inf]
(defrelation popolazione :range number)
indirizzo [1]
agenzia
dimensione
[1]
Scienze Cognitive 2003
(defrelation ufficio-turistico :range agenzia)
(defconcept agenzia :is-primitive
(and (exactly one indirizzo)
(exactly one dimensione)))
66
Esempio (continua)
Localita
nome
[1]
string
(defrelation indirizzo :range string)
Citta
popolazione
[1]
number
metropoli
ufficio-turistico
[1, inf]
(defconcept dim-val :is
(the-ordered-set ‘piccola ‘media ‘grande))
(defrelation dimensione :range dim-val)
popolazione > 500.000
indirizzo [1]
string
agenzia
dimensione
[1]
(defconcept metropoli :is
(and citta
(> popolazione 500000)))
dim-val
<piccola, media, grande>
Scienze Cognitive 2003
67
Esempio (continua)
Localita
(tellm (create ag-1 agenzia)
(dimensione ag-1 grande)
(indirizzo ag-1 “Via PincoPallo, 33”))
Citta
Metropoli
“Torino”
ufficio-turistico
[1, inf]
(tellm (create ag-2 agenzia)
(dimensione ag-2 piccola)
(indirizzo ag-2 “Via AlfaBeta, 1”)
nome
Cit-1
agenzia
Uff.tur.
890.000
indirizzo
“Via PincoPallo, 33”
“Via AlfaBeta, 1”
dimensione
grande
(tellm (create cit-1 citta)
(nome cit-1 “Torino”)
indirizzo
dimensione
(popolazione cit-1 890000)
ag-2
piccola
(ufficio-turistico cit-1 ag-1))
indirizzo
dimensione
(ufficio-turistico cit-1 ag-2))
ag-2
ag-1
“Via NonSo, 111”
Scienze Cognitive 2003
(tellm (create ag-2 agenzia)
(dimensione ag-2 piccola)
(indirizzo ag-2 “Via NonSo, 111”)
piccola
68
Esempio (continua)
(tellm (create cit-2 citta)
(nome cit-2 “Asti”)
(popolazione cit-2 125000)
(ufficio-turistico cit-2 ag-3))
(tellm (create loc-1 localita)
(name loc-1 “Etna”))
Esempi di query
(retrieve ?x (citta ?x))
---> (|I|cit-1 |I|cit-2)
(retrieve ?x (metropoli ?x))
---> (|I|cit-1)
(retrieve ?x (localita ?x))
---> (|I|cit-1 |I|cit-2 |I|loc-1 )
Il prefisso |I| sta per ‘instance’
E’ stata effettuata la classificazione
Ereditarietà classica
(retrieve ?x
(and (localita ?x)
Una query complessa
(for-some ?y
(and (ufficio-turistico ?x ?y)
(dimensione ?y ‘grande))))
---> (|I|cit-1)
Scienze Cognitive 2003
69
Metodi
(defmethod trova-agenzia (?x)
:situation (citta ?x)
:response ((do-retrieve (?c)
(for-some ?y (and (ufficio-turistico ?x ?y) (indirizzo ?y ?c)))
(format t "Un indirizzo di ~a e' ~s ~%"
(first (retrieve ?z (nome ?x ?z))) ?c))))
•
Contrariamente ai linguaggi a oggetti standard, i metodi non sono legati agli
oggetti, ma ‘globali’. C’è però il filtro ‘situation’ che dice a quali concetti sono
applicabili
(perform (trova-agenzia (get-instance ’cit-1)))
Un indirizzo di Torino è “Via PincoPallo, 33”
Un indirizzo di Torino è “Via AlfaBeta, 1”
(perform (trova-agenzia (get-instance ‘loc-1)))
Warning: Failed to apply action TROVA-AGENZIA to arguments (|I|LOC-1)
because No applicable method.
Scienze Cognitive 2003
70
Ma si può anche definire
(defmethod trova-agenzia (?x)
:situation (localita ?x)
:response ((do-retrieve (?c)
(nome ?x ?c)
(format t "~a non e' una citta' e quindi non ha uffici turistici~%" ?c))))
Ottenendo
(perform (trova-agenzia (get-instance ‘loc-1)))
Etna non e' una citta' e quindi non ha uffici turistici
•
Si noti che il risultato dell’esecuzione del metodo su ‘cit-1 (Torino) non
cambia: per default, Loom usa sempre il metodo definito più localmente
Scienze Cognitive 2003
71
Conclusioni su Loom
•
Non un’ontologia: non ci si preoccupa di ‘descrivere’ i concetti e
le loro proprietà, ma solo di come si effettuano i ragionamenti
(l’opposto di SUMO)
VANTAGGI:
- Semplicità
- Vari meccanismi di ragionamento
SVANTAGGI:
- Non sempre ragionamenti efficienti
- Limitazioni espressive (es. Vincoli tra relazioni, strutture)
Scienze Cognitive 2003
72
• Cosa sono le ontologie
• Quali ontologie esistono
–
–
–
–
WordNet
Cyc
SUMO
DOLCE
• Come costruire un’ontologia
– Loom
– OWL
Scienze Cognitive 2003
73
OWL
(Web Ontology Language)
•
Rispetto a quanto detto nell’introduzione, ci siamo dimenticati
il legame con il World Wide Web
•
OWL è un prodotto del W3C (organizzazione internazionale per
lo sviluppo di WWW); un linguaggio di markup semantico per
pubblicare e condividere ontologie.
•
OWL è derivato dal precedente DAML+OIL
•
OWL è basato sui linguaggi di markup (XML) ed è ancorato
all’RDF (Resource Description Framework), una notazione
uniforme e non ambigua per esprimere le risorse presenti sul
Web.
Alcuni riferimenti: Overview, Guide, Language Reference
Scienze Cognitive 2003
74
RDF
(Resource Description Framework)
HTML (HyperText Markup Language)
Insieme di tag predefinito
Possibilità di estendere i tag
di base con un proprio
insieme di tag
Per riferirsi a elementi del Web
all’esterno della pagina: URL
(Uniform Resource Locator)
Possibilità di riferirsi a
entità fuori dal Web (es. nel
mondo reale)
XML (eXtensible Markup Language)
URI (Uniform Resource Identifiers)
RDF (una particolare estensione di
HTML, definita tramite XML)
Scienze Cognitive 2003
75
Cosa vuol dire ‘descrivere una risorsa’?
“Professor”
http://www.w3.org/1999/02/
/22-rdf-syntax-ns/type
Leonardo Lesmo
http://www.w3.org/2000/10/s
wap/pim/contact#fullName
http://www.w3.org/2000/10/
swap/pim/contact#homePage
http://www.di.unito.it/~lesmo
http://www.xyz.it/people/lele
http://www.w3.org/2000/10/swap
/pim/contact#workPlace
http://www.w3.org/2000/10
/swap/pim/contact#mailbox
mailto:[email protected]
http://www.xyz.it/dipInfo
TUTTE le etichette che compaiono in figura
(eccetto ‘Professor’ e ‘Leonardo Lesmo’) sono URI
Scienze Cognitive 2003
76
La sintassi RDF
(l’esempio precedente)
<rdf: RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:contact=”http://www.w3.org/2000/10/swap/pim/contact#”>
Le due righe precedenti sono una ‘parentesi aperta’ annotata. Si definiscono le
due abbreviazioni ‘rdf’ e ‘contact’, come equivalenti a ciò che segue l’uguale
La corrispondente parentesi chiusa è l’ultima riga di quest’esempio
<contact:Person rdf:about=”http://www.xyz.it/people#lele>
Un’altra parentesi aperta: qui si dice che il referente di ‘contact’ è
un professore, e a chi questa descrizione si riferisce (about)
<contact:fullName>Leonardo Lesmo</contact:fullName>
L’informazione ‘fullName’ è un literal (stringa)
<contact:mailbox rdf:resource=”mailto:[email protected]”/>
la ‘mailbox’, così come le due che seguono, sono invece risorse Web
<contact:homepage rdf:resource=” http://www.di.unito.it/~lesmo/index.html”/>
<contact:workPlace rdf:resource=” http://www.di.unito.it”/>
</contact:Person>
</rdf:RDF>
Scienze Cognitive 2003
77
RDF schema
•
RDF schema (rdfs) è un namespace, in cui sono definite alcune
primitive ontologiche (es. subClassOf, subPropertyOf, Domain,
Range, …)
•
Ad esso ci si può riferire per definire delle semplici ‘ontologie
locali’
Università
Persona
iscrittoA
insegnaIn
Professore
Studente
<rdf: RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmnls:rdfs=”http://www.w3.org/2000/01/rdf-schema#”>
Le abbreviazioni per rdf e rdfs
<rdf:Description rdf:ID=”Persona”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#class”>”/>
</rdf:Description>
Introduzione della ‘class’ ‘Persona’
Scienze Cognitive 2003
78
<rdf:Description rdf:ID=”Professore”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Class”>”/>
<rdfs:subClassOf rdf:resource =”#Persona”>”/>
</rdf:Description>
<rdf:Description rdf:ID=”Studente”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Class”>”/>
<rdfs:subClassOf rdf:resource =”#Persona”>”/>
</rdf:Description>
<rdf:Description rdf:ID=”Università”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Class”>”/>
</rdf:Description>
Introduzione delle classi ‘Professore’, ‘Studente’, e ‘Università’
(del tutto analoghe alla precedente, ma con introduzione dell’arco ‘subClassOf’)
<rdf:Description rdf:ID=”iscrittoA”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Property”>”/>
<rdfs:domain rdf:resource =”#Studente”>”/>
<rdfs:range rdf:resource =”#Università”>”/>
</rdf:Description>
<rdf:Description rdf:ID=”insegnaIn”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Property”>”/>
<rdfs:domain rdf:resource =”#Professore”>”/>
<rdfs:range rdf:resource =”#Università”>”/>
</rdf:Description>
Introduzione delle due ‘proprietà’ (ruoli, slot, relazioni)
</rdf:RDF>
Fine delle descrizioni
Scienze Cognitive 2003
79
Situazione
NAMESPACE
http://www.w3.org/1999/02/22-rdf-syntax-ns
about
type
Property
resource
Class
NAMESPACE
http://www.w3.org/2000/01/rdf-schema
subClassOf
domain
range
NAMESPACE
http://www.w3.org/2000/10/swap/pim/contact
fullName
mailbox
homePage
NAMESPACE
http://www.xyz.it/owlex (quello locale)
Persona
Professore
Studente
Scienze Cognitive 2003
80
Non c’è un’ontologia generale (top-level)?
•
Esistono delle ontologie per alcuni domini applicativi (CIM:
modelli di Electric Power Systems; GO: conoscenza su prodotti
genetici)
•
Nessuna ontologia generale disponibile, ma scrivere un’ontologia
in RDF richiede molto lavoro; v. esempi precedenti.
Quindi
OWL is a vocabulary extension of RDF. Thus any RDF graph forms an OWL
Full ontology. Further, the meaning given to an RDF graph by OWL includes
the meaning given to the graph by RDF. OWL Full ontologies can thus include
arbitrary RDF content, which is treated in a manner consistent with its
treatment by RDF. OWL assigns an additional meaning to certain RDF triples.
Scienze Cognitive 2003
81
Esempio di semplificazione in OWL
<rdf:Description rdf:ID=”Università”>
<rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Class”>”/>
</rdf:Description>
<owl:Class rdf:ID=”Università”>
NB. Versioni
OWL Lite
RDF
OWL DL
OWL Full
OWL Full: Piena compatibilità con RDF. Inferenze inefficienti.
OWL DL: (Description Logics) Semplificato per maggiore efficienza (es. LOOM)
OWL Lite: Poco potere espressivo, prevalentemente didattico
Scienze Cognitive 2003
82
Come si descrivono le classi in OWL
1.
Un identificatore di classe
<owl:Class rdf:ID=“Human”>
2.
Una enumerazione di individui
<owl:Class>
<owl:oneOf rdf:parseType=“Collection”>
<owl:Thing rdf:about=“#Professore”/>
<owl:Thing rdf:about=“#Studente”/>
</owl:one of>
</owl:Class>
3.
Una restrizione di proprietà
<owl:Restriction>
<owl:onProperty rdf:resource=“#iscrittoA” />
<owl:hasValue rdf:resource=“#UnivTorino”/>
</owl:Restriction>
Operatori come owl:hasValue sono owl:allValuesFrom e owl:someValueFrom .
Vincoli sulla cardinalità si possono porre con owl:cardinality,
owl:minCardinality e owl:maxCardinality
Scienze Cognitive 2003
83
Come si descrivono le classi in OWL (2)
4.
Una intersezione tra classi
<owl:Class>
<owl:intersectionOf rdf:parseType=“Collection”>
<owl:class rdf:resource=“#UnivItaliana”/>
<owl:class rdf:resource=“#EntePubblico”/>
</owl:intersectionOf>
</owl:Class>
NB: OWL non ha la Unique Name Assumption, per cui l’intersezione
tra “#PresidenteDellaRepubblica” e “#ResidenteDelQuirinale” è
non-vuota
5.
Una unione tra classi (analogo all’esempio precedente, con
owl:unionOf al posto di owl:intersectionOf)
6.
Il complemento di una classe (operatore owl:complementOf)
Scienze Cognitive 2003
84
Assiomi di classe
Gli assiomi di classe permettono di porre vincoli tra classi. Essi possono
coinvolgere le relazioni: rdfs:subClassOf (che appartiene a RDF Schema)
owl:equivalentClass e owl:disjointWith.
Un dipendente Universitario …
<owl:Class rdf:ID=“DipendenteUniv”>
<owl:intersectionOf rdf:parseType=“Collection”>
<owl:restriction>
<owl:onProperty rdf:resource=“#lavoraIn”
… lavora all’Università …
<owl:hasValue rdf:resource=“#Università”
</owl:restriction>
<owl:complementOf rdf:resource=“#Dottorando”/>
… ma non è un dottorando
</owl:intersectionOf>
La classe dei dipendenti
<owl:equivalentClass>
Universitari è equivalente …
<owl:unionOf rdf:parseType=“Collection”>
<owl:Class rdf:resource=“#Professore”>
<owl:Class rdf:resource=“#TecnicoAmministrativo”> all’unione dei professori e del
personale tecnico/
</owl:unionOf>
amministrativo…
</owl:Class>
<owl:Class rdf:about=“Professore”>
<owl:disjointWith rdf:resource=“# TecnicoAmministrativo”/>
</owl:Class>
Scienze Cognitive 2003
85
Relazioni tra proprietà
<owl:ObjectProperty rdf:ID=“insegnaCorso”>
<owl:inverseOf rdf:resource=“# professoreDelCorso”/>
</owl:ObjectProperty>
Vincoli globali su proprietà
<owl:FunctionalProperty rdf:about=“professoreDelCorso” />
<owl:TransitiveProperty rdf:ID=“stessoDipartimento”>
<rdfs:domain rdf:resource=“#Professore”/>
<rdfs:range rdf:resource=“#Professore”/>
<owl:TransitiveProperty rdf:ID=“stessoDipartimento”>
Istanze (individuals)
<Professore rdf:ID=“Leonardo Lesmo”>
<lavoraIn rdf:resource=“# UniversitàTorino”/>
<insegnaCorso rdf:resource=“#ScienzeCognitive”>
<insegnaCorso rdf:resource=“#ProgrammazioneII”>
</Professore>
Scienze Cognitive 2003
86
Reasoning
OWL è un linguaggio di rappresentazione: non solo non fornisce un’ontologia
completa (v. Cyc o SUMO), ma non fornisce neppure un reasoner (v. Loom)
Esistono però degli strumenti che sono già stati interfacciati con OWL (più
precisamente, col suo predecessore DAML+OIL)
Un esempio di applicazione è un Wine Agent, realizzato al Knowledge Systems
Laboratory dell’Università di Stanford. Essa è basata su un reasoner
sviluppato in Java nella stessa sede: JTP
Esempi
Assert:
(|http://www.w3.org/1999/02/22-rdf-syntax-ns#|::type
|http://ra1.stanford.edu/wkb#|::|NEW-COURSE9|
|http://ra1.stanford.edu/wkb#|::|PASTA-WITH-SPICY-RED-SAUCE-COURSE|)
Assert:
(|http://ra1.stanford.edu/wkb#|::|DRINK|
|http://ra1.stanford.edu/wkb#|::|NEW-COURSE9|
|http://ra1.stanford.edu/wkb#|::|WINE9|)
Scienze Cognitive 2003
87
Esempi di query
Query:
(|http://ra1.stanford.edu/wkb#|::|COLOR|
|http://ra1.stanford.edu/wkb#|::|WINE9| ?x)
----------->
X = |http://ra1.stanford.edu/wkb#|::|RED|
N.B. Le caratteristiche di Wine9 non sono state introdotte dall’utente ma
determinate dal Wine Agent
Query:
(AND (|http://www.w3.org/1999/02/22-rdf-syntax-ns#|::type
|http://ra1.stanford.edu/wkb#|::|CHATEAU-LAFITE-PAUILLAC| ?x)
(|http://www.w3.org/2000/01/rdf-schema#|::|subClassOf| ?x
|http://ra1.stanford.edu/wkb#|::|WINE|))
----------->
X = |http://ra1.stanford.edu/wkb#|::|PAUILLAC|
Scienze Cognitive 2003
88
Ontologia OWL?
•
Oltre al meta-livello, due sole classi predefinite: owl:Thing e
owl:Nothing. Ogni istanza è istanza di owl:Thing e ogni classe è
sottoclasse di owl:Thing. Owl:Nothing è l’insieme vuoto.
•
Definizione del concetto Thing
<Class rdf:ID=”Thing”>
<rdfs:label>Thing</rdfs:label>
<unionOf rdf:parseType=”Collection”/>
<Class rdf:about=”#Nothing”>
<Class>
<complementOf rdf:resource=”#Nothing”>
</Class>
</UnionOf>
</Class>
•
Definizione del concetto Class (meta-livello)
<rdfs:Class rdf:ID=”Class”>
<rdfs:label>Class</rdfs:label>
<rdfs:subClassOf rdf:resource=”&rdfs;class”/>
</rdfs:Class>
Scienze Cognitive 2003
89
Conclusioni su OWL
•
Un aggancio tra strumenti ontologici ed il WWW, nell’ottica di
creare un Semantic Web
VANTAGGI:
- E’ una layer supplementare di strumenti quasi
universalmente accettati e in uso
- Sono disponibili vari livelli di potere espressivo
SVANTAGGI:
- Manca un reasoner incorporato
- La sintassi (derivata da HTML e RDF) è pesante e poco
leggibile
Scienze Cognitive 2003
90
Conclusioni sulle Ontologie
•
Le ontologie sono uno strumento essenziale per l’interoperabilità
e la comunicazione tra agenti
•
Negli ultimi 10 anni una quantità impressionante di
finanziamenti e attività di ricerca e sviluppo
•
Molte proposte e sistemi, ma ancora nessuno standard; poichè
un’ontologia è utile se è ampiamente condivisa, siamo ancora a
metà strada
•
Alcuni studiosi hanno forti dubbi sulla possibilità (e, forse,
sull’opportunità culturale) di realizzare un’ontologia standard
(difficoltà tecniche e salvaguardia di diversità culturali)
ma
•
Si tratta comunque di una strada obbligata
Scienze Cognitive 2003
91
Riferimenti e Bibliografia
Da Fare
Scienze Cognitive 2003
92
Scarica

document