Nessun titolo diapositiva

Download Report

Transcript Nessun titolo diapositiva

Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE

• Cosa sono le ontologie • Quali ontologie esistono – WordNet – Cyc – SUMO – DOLCE • Come costruire un’ontologia – Loom – OWL

WordNet

Da un elenco di parole:

A un dizionario strutturato:

{animale, bestia}

SynSets

{mammifero} {cane} {felino} {gatto, micio} {tigre} {soriano}

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

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

Le relazioni di WordNet (originale)

Relazione

Sinonimia Antonimia Iponimia Meronimia Implicazione Causa Somiglianza Attributo Relativo al nome

POS collegate

nome/nome; verbo/verbo; aggettivo/aggettivo; avverbio/avverbio nome/nome; verbo/verbo; aggettivo/aggettivo nome/nome; verbo/verbo nome/nome verbo/verbo verbo/verbo aggettivo/aggettivo aggettivo/nome aggettivo/nome

Esempi

book/volume; to eat/to take in; great/outstanding; greatly/drastically man/woman; to enter/to exit; long/short slicer/knife; to walk/to move head/nose to buy/to pay to kill/to die wet/humid tall/stature fraternal/broterhood

Osservazioni

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

Relazione

Sinonimia Quasi sinonimia Xpos quasi sinonimia Antonimia Quasi antonimia Xpos quasi antonimia Iponimia Xpos iponimia Meronimia Causa Sotto-evento Ruolo Co_ruolo Stato_di Maniera_per Derivazione Relativo_a Classe

Le relazioni di EuroWordNet

Ordini collegati

1/1; 2/2; 3/3 1/1; 2/2; 3/3 2/2 1/1; 2/2; 3/3 1/1; 2/2; 3/3 2/2 1/1; 2/2; 3/3 2/2 1/1 2/2 2/2 1/2 1/1 1/2 2/2 Tra tutti 2/2 1/1

Esempi

barriera/ostacolo;comprare/acquistare;conoscenza/cognizione ordigno/congegno; certificare/assicurare arrivo/arrivare incredibile/credibile sopra/sotto; arrivare/partire arrivo/partire cane/animale; agitarsi/muoversi arrivo/andare; martellata/colpire braccio/corpo; mano/dito uccidere/morire; giustiziare/condanna comprare/pagare; dormire/russare martello/martellare; pedone/camminare chitarrista/chitarra povero/povertà; vecchio/vecchiaia bisbigliare/a-bassa-voce; trucidare/barbaramente acqua/acquaiolo presidenziale/presidente Po/fiume; Roma/città

• • •

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

L’Architettura di EuroWordNet

Domain ontology

traffic

Top ontology

2nd order entity air traffic road traffic location ride III drive III move III WordNet Inglese II I I dynamic II cabalgar III III conducir mover III WordNet Spagnolo II ILI record (drive)

Inter Lingual Index

II rijden III berijden III betragen III WordNet Olandese guidare III cavalcare III muoversi III WordNet Italiano

Osservazioni

• • • •

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, …) 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.

La Top-Ontology

entity 1st order 2nd order 3rd order thing artifact O dynamic natural O comestible U place U aliment container U substance F object F gas F comestible U +artifact O container U +object F solid F T static T cause bounded Event T liquid F C location C candy container U +object F +artifact O vessel bottle mental

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

Natural

o

Living

o o o o

Plant Human Creature Animal

o o o

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

o

Substance

o

Solid

o o

Liquid Gas

o

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

o

Part

o

Group

o o o o o o o o o o o

Function (la funzione)

o o

Vehicle Representation

o

MoneyRepresentation

o o

LanguageRepresentation ImageRepresentation Software Place Occupation Instrument Garment Furniture Covering Container Comestible Building

Per le entità del secondo ordine (azioni, astrazioni, qualità) esse sono:

o

Situation Component (una caratteristica o un partecipante della situazione

o

descritta; indice C nella figura)

o

Cause

o

Communication

o o o o o o o o o o o o o

Condition Existence Experience Location Manner Mental Modal Physical Possession Purpose Quantity Social Time Situation Type (il tipo della situazione; indice T in figura)

o o

Dynamic

o

BoundedEvent

o

UnboundedEvent Static

o o

Property Relation

Le entità del terzo ordine non hanno features

Osservazioni

• • •

Le features possono essere combinate per ottenere concetti più specifici (ad esempio, si veda in figura

container U +object F +artifact O

) 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

• Quali ontologie esistono – WordNet – Cyc – SUMO – DOLCE • Come costruire un’ontologia – Loom – OWL

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)

2 componenti

Constraint Language (Logica dei predicati) CycL (linguaggio basato su frame)

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)

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

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

(

"

x person ) (

$

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

Versione Cyc più efficiente: separare …

la definizione della unit …

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

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

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

) Supponiamo che Lucia non abbia altri figli oltre Giorgio.

#$Lucia .

Quale sarà il risultato?

1.

2.

Possiamo ottenere due risultati:

( ) (#$Giorgio) Cioè la lista vuota: Lucia non ha figli 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 precedente), in cui è specificato che appunto

#$mother-of #$mother #$mother

ha un (v. slide

#$inverse

, che è

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

Se viene inserita l’informazione

#$parteDiTesto (#$I_demoni #$scrittoIn #$russo) (#$I_demoni #$parteDiTesto #$I-demoni-cap-1)

Cycl introduce automaticamente

(#$I_demoni-cap-1 #$scrittoIn #$russo)

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)

#$studenteUnivRoma

#$genL: (#$persona)

#$nazionalità

“default per #$studenteUnivRoma = #$Italia”

Allora, quando si asserisce #$studenteUnivRoma

#$allInstances (… #$Sandra …)

Cyc ottiene (per default) #$Sandra

#$nazionalità #$Italia

Il top level di Cyc

#$Thing #$Intangible #$SetOrCollection #$Individual #$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)

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

.

#$ Intangible

#$Collection

è

:

la collezione di cose che non sono fisiche - non sono fatte di, o codificate nella, materia. Ogni

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

non di , questa collezione ESCLUDE insiemi e collezioni, che sono elementi di

#$IntangibleIndividual #$Intangible

, ma

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

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)

Versione 1990

#$Thing #$RepresentedThing #$Intangible #$IndividualObject #$IntangibleObject #$Collection #$Relationship #$IntangibleStuff #$Stuff #$Event #$Process • #$Slot

Versione 1997

#$Thing #$Intangible #$Individual #$SetOrCollection #$IntangibleIndividual #$Situation #$TemporalThing #$Relationship #$Collection

• Cosa sono le ontologie • Quali ontologie esistono – WordNet – Cyc – SUMO – DOLCE • Come costruire un’ontologia – Loom – OWL

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 ingegneria, ecc.).” (sulle

upper ontologies

, 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, vedi intervento di Aldo Gangemi)

Le componenti di SUMO

TEORIA DEGLI INSIEMI NUMERI STRUCTURAL ONTOLOGY BASE ONTOLOGY TEMPO MISURE PROCESSI MEREOTOPOLOGIA (PARTI E SPAZIO) QUALITA’ OGGETTI

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

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

Base Ontology (il top-level)

Entity Physical Abstract Object Process 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

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 NonIntentional Process

Base Ontology (sotto il top level) Processi intenzionali

Keeping Maintaining Repairing Concealing Poking Revealing Grooming Content Development Regulatory Process Securing Touching Mental Process Decorating Exercise Process Intentional Process Holding Confining Guiding Searching Recreational Process Religious Process Organizational Process Educational Process Diagnostic Process Therapeutic Process Social Interaction Pursuing Investigating Occupational Process Political Process Managing Regulatory Process Graduation Surgery

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

• •

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

• Cosa sono le ontologie • Quali ontologie esistono – WordNet – Cyc – SUMO – DOLCE

• • •

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

OntoClean

• •

Quattro nozioni fondamentali nella caratterizzazione dei concetti

Identità : possibilità di distinguere due istanze proprietà caratteristica (anche in tempi diversi) di una classe mediante una 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’

A cosa servono?

1.

Vincoli sulla relazione di sussunzione (“incorporare qualcosa in un una categoria più generale”)

Una classe non rigida (-R) non può sussumere una classe rigida (+R)

Ex . ‘Legal Agent‘ non può sussumere ‘Person’

2.

3.

4.

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’

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

Una proprietà dipendente da un’altra (+D) non può sussumere una proprietà indipendente (-D)

Endurant

e

Perdurant

• • • •

G li

Endurants

l’

Endurant

sono ‘completamente’ presenti (cioè con tutte le loro parti) quando stesso è presente. Esempio classico: gli oggetti (ad es. una casa) A d ogni istante temporale, solo una parte (una ‘fetta’ temporale) di un

Perdurant

presente (ad es. gli eventi) è Correlato al concetto di cambiamento : ontologicamente), mentre è ovvio che i solo gli

Endurant

mantenendo la loro identità, concetto questo non facile da caratterizzare

Perdurant

non cambiano, essendo le loro ‘parti’ diverse nel tempo per la definizione stessa di possono cambiare (pur

Perdurant

R elazione 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.

Abstract

Il top level di Dolce

Entity Endurant Perdurant Fact Set Region Substantial 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.

Critica del top-level di WordNet

Confusione tra

concetti

e

individui

Composer Contrapuntist SongWriter Bach Beethoven • •

In Dolce differenza tra

concetti proprietà ‘ rigidità’

e

ruoli materiali , basata sulla meta-

. Questa differenza non si osserva in WordNet (e in nessuna delle altre ontologie che abbiamo visto).

Confusione tra

meta-level

e object-level

Abstraction

object-level

Set Time Space Attribute

meta-level

Relation

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 level ” (Dolce) “top-top 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

• Cosa sono le ontologie • Quali ontologie esistono – WordNet – Cyc – SUMO – DOLCE • Come costruire un’ontologia – Loom – OWL

• • • • •

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

Localita nome [1]

string

Citta popolazione [1]

number

ufficio-turistico [1, inf] indirizzo [1] agenzia dimensione [1]

Esempio

(defconcept localita (exactly 1 nome)) (defconcept citta :is-primitive (and localita (exactly 1 popolazione) (at-least 1 ufficio-turistico))) (defrelation nome :range string) (defrelation popolazione :range number) (defrelation ufficio-turistico :range agenzia) (defconcept agenzia :is-primitive (and (exactly one indirizzo) (exactly one dimensione)))

Esempio (continua)

Localita nome [1]

string

Citta popolazione [1]

number

metropoli popolazione > 500.000

indirizzo [1]

string

ufficio-turistico [1, inf] agenzia dimensione [1]

(defrelation indirizzo :range string) (defconcept dim-val :is (the-ordered set ‘piccola ‘media ‘grande)) (defrelation dimensione :range dim-val) (defconcept metropoli :is (and citta (> popolazione 500000)))

dim-val

Esempio (continua)

Localita

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

Citta

“Torino”

Metropoli ufficio-turistico [1, inf]

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

nome Cit-1 Uff.tur.

agenzia

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

890.000

“Via PincoPallo, 33”

indirizzo

“Via AlfaBeta, 1”

ag-1 indirizzo

“Via NonSo, 111”

dimensione ag-2 indirizzo

grande

dimensione ag-2

piccola

dimensione

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

piccola

(ufficio-turistico cit-1 ag-2))

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)

Il prefisso |I| sta per ‘instance’

(retrieve ?x (metropoli ?x)) ---> (|I|cit-1) (retrieve ?x (localita ?x)) ---> (|I|cit-1 |I|cit-2 |I|loc-1 )

E’ stata effettuata la classificazione Ereditarietà classica

(retrieve ?x

(and (localita ?x) (for-some ?y (and (ufficio-turistico ?x ?y)

Una query complessa

(dimensione ?y ‘grande)))) ---> (|I|cit-1)

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.

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

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)