ontologie esistenti: wordnet, sumo, cyc, dolce. cosa sono le ontologie quali ontologie esistono...

57
Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE

Upload: romano-stefani

Post on 02-May-2015

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE

Page 2: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Cosa sono le ontologie

• Quali ontologie esistono– WordNet

– Cyc

– SUMO

– DOLCE

• Come costruire un’ontologia– Loom

– OWL

Page 3: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

{animale, bestia}

{gatto, micio}

{cane}{felino}

{mammifero}

{soriano}

{tigre}

WordNet Da un elenco di parole:<tigre, cane, animale, mammifero, bestia, micio, soriano, gatto, felino>

A un dizionario strutturato:

SynSets

NB: La stessa parola può appartenere a più SynSets

Page 4: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

WordNet: Cognitive Science Laboratory dell’Università di Princeton (inglese) Fine anni ‘80EuroWordNet: su Fondi dell’Unione Europea. (multilingue - ILC-Pisa per l’italiano) Metà anni ‘90ItalWordNet: IRST-ICT (Trento). Un progetto nazionale (italiano) Fine anni ‘90

Alcune versioni

Ovviamente, molte versioni per altre lingue

Page 5: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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 nome/nome; verbo/verbo; aggettivo/aggettivo

man/woman; to enter/to exit;long/short

Iponimia nome/nome; verbo/verbo slicer/knife; to walk/to move

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

Le relazioni di WordNet

(originale)

Page 6: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Alcune delle relazioni adottate sono alquanto vaghe

• POS sta per Part Of Speech (nome, verbo, ecc.)

• POS diverse collegate solo in casi particolari (es. partecipzione (nome) e partecipare(verbo))

Osservazioni

Page 7: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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à

Le relazioni di EuroWordNet

Page 8: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Per molte relazioni sono definite anche le inverse, che per semplicità non sono riportate 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

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

• 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

Osservazioni

Page 9: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Inter Lingual Index

ILI record (drive)

guidare cavalcare

muoversi WordNet Italiano

IIIIII

IIIcabalgar conducir

mover WordNet Spagnolo

IIIIII

III

ride drive

move WordNet Inglese

IIIIII

III rijden berijden

betragen WordNet Olandese

IIIIII

III

II

II

II

II

location

2nd order entity

dynamicair traffic

traffic

road traffic

Top ontologyDomain ontology

II

L’Architettura di EuroWordNet

Page 10: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• L’Inter Lingual Index (ILI) è solo una tabella di mapping tra Synset, non strutturata

• La top-ontology è una rappresentazione strutturata dei concetti più generali (la esamineremo più avanti)

• Le Domain-Ontologies sono elenchi (parzialmente strutturati) di Campi Semantici, e cioè di ‘argomenti’ (ad es. Sport, calcio, astronomia, …)

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

Osservazioni

Page 11: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

entity

1st order 2nd order 3rd order

artifactO

placeUcomestibleUsubstanceF

comestibleU

+artifactO

naturalO

containerU

containerU

+objectF

containerU

+objectF

+artifactO

dynamicT

staticT

causeC

locationC mental

thing

candyvessel

bottle

aliment

bounded EventT

objectF

solidF

gasF

liquidF

La Top-Ontology

Page 12: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

La definizione dei concetti è basata su features

• Per le entità del primo ordine (concreti) esse sono:o Origin (se è naturale o artificiale; indice O nella figura)

o Naturalo Living

o Planto Human o Creatureo Animal

o Artifact

o Form (se è una sostanza o un oggetto con forma definita; indice F nella figura) o Substance

o Solido Liquido Gas

o Object

o Composition (se è un oggetto unitario o un gruppo; non compare in figura) o Parto Group

o Function (la funzione)o Vehicleo Representation

o MoneyRepresentationo LanguageRepresentationo ImageRepresentation

o Softwareo Placeo Occupationo Instrumento Garmento Furnitureo Coveringo Containero Comestibleo Building

Page 13: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Per le entità del secondo ordine (azioni, astrazioni, qualità) esse sono:o Situation Component (una caratteristica o un partecipante della situazione

descritta; indice C nella figura)o Causeo Communicationo Conditiono Existenceo Experienceo Locationo Mannero Mentalo Modalo Physicalo Possessiono Purposeo Quantityo Socialo Time

o Situation Type (il tipo della situazione; indice T in figura)o Dynamic

o BoundedEvento UnboundedEvent

o Statico Propertyo Relation

• Le entità del terzo ordine non hanno features

Page 14: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

Page 15: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Quali ontologie esistono– WordNet– Cyc– SUMO– DOLCE

• Come costruire un’ontologia– Loom– OWL

Page 16: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

Cyc

Page 17: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Constraint Language(Logica dei predicati)

CycL (linguaggio basato su frame)

2 componenti

Page 18: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$Texas #$capital: (#$Austin) #$residents: (#$Doug Guha Mary) #$stateOf: (#$UnitedStatesOfAmerica)

CycL Units

I frame di Cyc si chiamano Units. Esse includono, come tutti i frames, degli slots

Esempio di Unit relativa ad un’istanza

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)

Page 19: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$residents #$instanceOf: (#$Slot) #$inverse: (#$residentOf) #$makesSenseFor: (#$GeopoliticalRegion) #$entryIsA: (#$Person) #$specSlots: (#$lifelongResidents #$illegalAliens #$registeredVoters)

Esempio di Unit relativa ad uno slot

• 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

Page 20: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

(x) person (x) [(y) person ( y) mother(x,y) greaterThan(diff(age(y),age(x)), 16) ]

Versione in logica dei predicati standard

Page 21: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$Person #$genls: (#$Living) #$name: (#$PersonName) #$residentOf: (#$city) #$mother: (#$Person) #$inheritedSlotConstraints: (#$AgeOfMotherConstraint)

 

#$AgeOfMotherConstraint #$instanceOf: (#$SlotConstraint) #$constraintInheritedTo: (#$Person …) #$slotsConstrained: (#$mother) #$slotConstraints: (#$GreaterThan

(#$Diff (v #$age) (u #$age)) 16)))))

Versione Cyc più efficiente: separare …

la definizione della unit …

dal vincolo (constraint) sullo slot (infatti: Constraint Language)

Page 22: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$mother #$instanceOf: (#$Slot) #$inverse: (#$motherOf) #$makesSenseFor: (#$Person) #$entryIsA: (#$Person) #$entryFormat: (SingleEntry)

Per completezza, e perchè serve dopo, ecco la definizione dello slot #$mother:

Ma perchè questa soluzione è più efficiente?

Perchè parte del vincolo è espresso in CycL, che è statointrodotto proprio per rendere alcune inferenze più efficienti

Page 23: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Inferenza in Cyc

(Put #$Giorgio #$mother #$Lucia)

Consideriamo la seguente operazione:

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?

Page 24: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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)

Quella associata alla definizione dello slot #$mother (v. slide precedente), in cui è specificato che #$mother ha un #$inverse, che è appunto #$mother-of

Quale inferenza è necessaria?

Page 25: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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 #$genitoreDiSe 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)

Page 26: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

Alcuni meccanismi inferenziali in CycL (3)

Ereditarietà standard:

Si applica allo slot #$allInstances (tutte le istanze di una unit); Se #$persona

#$nazionalità: (#$stato)#$studenteUnivRoma

#$genL: (#$persona)#$nazionalità

“default per #$studenteUnivRoma = #$Italia”

Allora, quando si asserisce

#$studenteUnivRoma #$allInstances (… #$Sandra …)

Cyc ottiene (per default)

#$Sandra #$nazionalità #$Italia

Page 27: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$Thing

#$Individual

#$Collection

#$Situation#$IntangibleIndividual#$SetOrCollection

#$Intangible

#$TemporalThing #$Relationship

Il top level di Cyc

Una lista dei concetti di Cyc si può trovare al sito http://www.cyc.com/cyc-2-1/toc.html (aggiornato al 1997)

#$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.

Page 28: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$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.

Page 29: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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)

Page 30: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

#$Thing

#$Individual

#$Collection

#$Situation#$IntangibleIndividual#$SetOrCollection

#$Intangible

#$TemporalThing #$Relationship

• Versione 1990

#$Thing

#$IndividualObject

#$Collection#$Event

#$Process

#$Intangible

#$Stuff

#$RepresentedThing

#$IntangibleObject

#$IntangibleStuff#$Relationship

#$Slot

• Versione 1997

Page 31: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Cosa sono le ontologie• Quali ontologie esistono

– WordNet– Cyc– SUMO– DOLCE

• Come costruire un’ontologia– Loom– OWL

Page 32: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• 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.).” (sulle upper ontologies vedi intervento di Aldo Gangemi)

SUMO

Page 33: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

STRUCTURAL ONTOLOGY

BASE ONTOLOGY

TEORIA DEGLI INSIEMI

NUMERI TEMPO MEREOTOPOLOGIA(PARTI E SPAZIO)

MISURE PROCESSI

QUALITA’ OGGETTI

Le componenti di SUMO

Page 34: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Structural Ontology

Descrizione (in SUMO) delle primitive di SUMO

(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 instance

(asserted StructuralOntology (instance subclass BinaryPredicate))(asserted StructuralOntology (instance subclass PartialOrderingRelation))(asserted StructuralOntology (domain subclass 1 Class))(asserted StructuralOntology (domain subclass 2 Class))

Definizione della relazione subclass

(asserted StructuralOntology (=> (subclass ?C1 ?C2) (forall (?X)

(=> (instance ?X ?C1) (instance ?X ?C2)))))

Un ‘assioma’

Page 35: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

(asserted StructuralOntology (=> (and (inverse ?R1 ?R2) (instance ?R1 BinaryRelation) (instance ?R2 BinaryRelation)) (forall (?X1 ?X2)

(<=> (holds ?R1 ?X! ?X2) (holds ?R2 ?X2 ?X1)))))

Un ‘assioma’ per ‘inverse’

A differenza di Cyc, non ‘procedure di inferenza’, ma formule logiche

Page 36: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Entity

Physical

Object Process

Abstract

Attribute Quantity Class Proposition

Base Ontology (il top-level)

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

Alcuni assiomi

Page 37: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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 (un altro assioma)

Base Ontology (sotto il top-level)

Process

NonIntentional Process

Intentional Process

Esempio: dove stanno I processi intenzionali (quelli compiuti con intenzione)?

Page 38: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Intentional Process

Exercise Process

Religious Process

Therapeutic Process

Diagnostic Process

Surgery

Organizational Process

Managing Political Process

Mental Process

Recreational Process

SocialInteraction

GraduationRegulatory Process

Occupational Process

Guiding

Educational Process

Keeping Repairing Revealing

Touching

Concealing Poking Maintaining

Securing

Confining

Holding

Regulatory Process

Content Development

Decorating

Grooming

Searching

Investigating Pursuing

Base Ontology (sotto il top level)

Processi intenzionali

Page 39: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Process: (x) Process (x) (y) subProcess (x,y)

Tutti processi hanno dei sotto-processi.

Base Ontology (qualche assioma sui processi)

subProcess: (x,y) subProcess (x,y) (t) existant (y,t) Ogni sottoprocesso esiste in qualche istante temporale

IntentionalProcess: (x) IntentionalProcess (x) (y) agent (x, y) Tutti i processi intenzionali hanno un agente

(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

(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

Page 40: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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à

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

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

Page 41: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Cosa sono le ontologie• Quali ontologie esistono

– WordNet– Cyc– SUMO– DOLCE

Page 42: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

Page 43: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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’

Page 44: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

A cosa servono?• Vincoli sulla relazione di sussunzione (“incorporare qualcosa in un

una categoria più generale”)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)

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)

Ex. ‘Park‘ non può sussumere ‘Location’

Page 45: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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.

Page 46: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Entity

Abstract Endurant Perdurant

Il top level di Dolce

Fact RegionSet Substantial Quality Event Stative

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

• Gli Abstract, comuni a varie ontologie, non richiedono commenti

• Anche la differenza tra Event e Stative sembra abbastanza ovvia.

Page 47: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

Critica del top-level di WordNet

• Confusione tra concetti e individui

Composer

Contrapuntist SongWriter BeethovenBach

• In Dolce differenza tra concetti e ruoli materiali, basata sulla meta-proprietà ‘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

Set Space RelationAttributeTime

meta-levelobject-level

Page 48: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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)

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

• Non direttamente confrontabile con le altre ontologie viste, ma possiamo dire:

Page 49: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

• Cosa sono le ontologie• Quali ontologie esistono

– WordNet– Cyc– SUMO– DOLCE

• Come costruire un’ontologia– Loom– OWL

Page 50: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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.

• 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

Operazioni di modifica della KB

Una KB può trovarsi in due stati: provvisorio e stabilizzato

Page 51: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

(defconcept localita (exactly 1 nome))

Esempio

(defconcept citta :is-primitive (and localita (exactly 1 popolazione) (at-least 1 ufficio-turistico)))

(defrelation nome :range string)

(defrelation popolazione :range number)

agenzia

Localita

nome[1]

Citta

popolazione[1]

ufficio-turistico[1, inf]

string

number

(defrelation ufficio-turistico :range agenzia)

(defconcept agenzia :is-primitive (and (exactly one indirizzo) (exactly one dimensione)))

indirizzo [1]

dimensione

[1]

Page 52: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

(defrelation indirizzo :range string)

string

 (defconcept dim-val :is (the-ordered-set ‘piccola ‘media ‘grande))

dim-val

<piccola, media, grande>

(defrelation dimensione :range dim-val)

(defconcept metropoli :is(and citta (> popolazione 500000)))

metropoli

popolazione > 500.000

Citta

popolazione[1]

ufficio-turistico[1, inf]

agenzia

Localita

nome[1]

string

number

indirizzo [1]

dimensione

[1]

Esempio (continua)

Page 53: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

(tellm (create ag-1 agenzia) (dimensione ag-1 grande) (indirizzo ag-1 “Via PincoPallo, 33”))

indirizzo dimensioneag-1“Via PincoPallo, 33” grande

(tellm (create ag-2 agenzia) (dimensione ag-2 piccola) (indirizzo ag-2 “Via AlfaBeta, 1”)

indirizzo dimensioneag-2“Via AlfaBeta, 1” piccola

(tellm (create cit-1 citta) (nome cit-1 “Torino”) (popolazione cit-1 890000) (ufficio-turistico cit-1 ag-1)) (ufficio-turistico cit-1 ag-2))indirizzo dimensione

ag-2“Via NonSo, 111” piccola

(tellm (create ag-2 agenzia) (dimensione ag-2 piccola) (indirizzo ag-2 “Via NonSo, 111”)

Esempio (continua)

Citta

ufficio-turistico

[1, inf]

agenzia

Metropoli

Localita

Uff.tur.

Cit-1

“Torino”

nome

890.000

Page 54: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

(retrieve ?x (citta ?x))

---> (|I|cit-1 |I|cit-2) Il prefisso |I| sta per ‘instance’

(retrieve ?x (metropoli ?x))

---> (|I|cit-1) E’ stata effettuata la classificazione

(retrieve ?x (localita ?x)) ---> (|I|cit-1 |I|cit-2 |I|loc-1 ) Ereditarietà classica

(retrieve ?x (and (localita ?x) (for-some ?y (and (ufficio-turistico ?x ?y) (dimensione ?y ‘grande))))

---> (|I|cit-1)

Una query complessa

Esempio (continua)

(tellm (create cit-2 citta) (nome cit-2 “Asti”) (popolazione cit-2 125000) (ufficio-turistico cit-2 ag-3))

Esempi di query

(tellm (create loc-1 localita) (name loc-1 “Etna”))

Page 55: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

Metodi

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

Page 56: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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

Ma si può anche definire

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

Page 57: Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia

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)