La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE. Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia."— Transcript della presentazione:

1 Ontologie Esistenti: WordNet, SUMO, CyC, DOLCE

2 Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia –Loom –OWL

3 {animale, bestia}{gatto, micio} {cane} {felino} {mammifero} {soriano} {tigre} WordNet Da un elenco di parole: A un dizionario strutturato: SynSets NB: La stessa parola può appartenere a più SynSets

4 WordNet: Cognitive Science Laboratory dellUniversità di Princeton (inglese) Fine anni 80 EuroWordNet: su Fondi dellUnione Europea. (multilingue - ILC-Pisa per litaliano) Metà anni 90 ItalWordNet: IRST-ICT (Trento). Un progetto nazionale (italiano) Fine anni 90 Alcune versioni Ovviamente, molte versioni per altre lingue

5 RelazionePOS collegateEsempi 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 Iponimianome/nome; verbo/verboslicer/knife; to walk/to move Meronimianome/nomehead/nose Implicazioneverbo/verboto buy/to pay Causaverbo/verboto kill/to die Somiglianzaaggettivo/aggettivowet/humid Attributoaggettivo/nometall/stature Relativo al nomeaggettivo/nomefraternal/broterhood Le relazioni di WordNet (originale)

6 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

7 RelazioneOrdini collegatiEsempi Sinonimia 1/1; 2/2; 3/3barriera/ostacolo;comprare/acquistare;conoscenza/cognizione Quasi sinonimia 1/1; 2/2; 3/3ordigno/congegno; certificare/assicurare Xpos quasi sinonimia 2/2arrivo/arrivare Antonimia 1/1; 2/2; 3/3incredibile/credibile Quasi antonimia 1/1; 2/2; 3/3sopra/sotto; arrivare/partire Xpos quasi antonimia 2/2arrivo/partire Iponimia 1/1; 2/2; 3/3cane/animale; agitarsi/muoversi Xpos iponimia 2/2arrivo/andare; martellata/colpire Meronimia 1/1braccio/corpo; mano/dito Causa 2/2uccidere/morire; giustiziare/condanna Sotto-evento 2/2comprare/pagare; dormire/russare Ruolo 1/2martello/martellare; pedone/camminare Co_ruolo 1/1chitarrista/chitarra Stato_di 1/2povero/povertà; vecchio/vecchiaia Maniera_per 2/2bisbigliare/a-bassa-voce; trucidare/barbaramente Derivazione Tra tuttiacqua/acquaiolo Relativo_a 2/2presidenziale/presidente Classe 1/1Po/fiume; Roma/città Le relazioni di EuroWordNet

8 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 lantonimia Tutti i Synset coinvolti si riferiscono a classi (chitarra, andare, …) eccetto quelli che compaiono nellultima relazione, in cui uno dei due elementi collegati è unistanza (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

9 Inter Lingual Index ILI record (drive) guidare cavalcare muoversi WordNet Italiano III cabalgar conducir mover WordNet Spagnolo III ride drive move WordNet Inglese III rijden berijden betragen WordNet Olandese III II location 2nd order entity dynamicair traffic traffic road traffic Top ontologyDomain ontology II LArchitettura di EuroWordNet

10 LInter 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 dellILI con le top e domain ontologies II: archi che collegano i synset dei vari WordNet allILI (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

11 entity 1st order2nd order3rd order artifact O place U comestible U substance F comestible U +artifact O natural O container U +object F container U +object F +artifact O dynamic T static T cause C location C mental thing candy vessel bottle aliment bounded Event T object F solid F gas F liquid F La Top-Ontology

12 La definizione dei concetti è basata su features Per le entità del primo ordine (concreti) esse sono: oOrigin (se è naturale o artificiale; indice O nella figura) oNatural oLiving oPlant oHuman oCreature oAnimal oArtifact oForm (se è una sostanza o un oggetto con forma definita; indice F nella figura) oSubstance oSolid oLiquid oGas oObject oComposition (se è un oggetto unitario o un gruppo; non compare in figura) oPart oGroup oFunction (la funzione) oVehicle oRepresentation oMoneyRepresentation oLanguageRepresentation oImageRepresentation oSoftware oPlace oOccupation oInstrument oGarment oFurniture oCovering oContainer oComestible oBuilding

13 Per le entità del secondo ordine (azioni, astrazioni, qualità) esse sono: oSituation Component (una caratteristica o un partecipante della situazione descritta; indice C nella figura) oCause oCommunication oCondition oExistence oExperience oLocation oManner oMental oModal oPhysical oPossession oPurpose oQuantity oSocial oTime oSituation Type (il tipo della situazione; indice T in figura) oDynamic oBoundedEvent oUnboundedEvent oStatic oProperty oRelation Le entità del terzo ordine non hanno features

14 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 dellutente scrivere le query opportune per spostarsi tra I Synsets. Esistono però dei browser grafici che permettono di navigare (manualmente) nella rete

15 Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia –Loom –OWL

16 Il progetto Cyc (da enCYClopedia) nasce nel 1984 ed è ancora in corso (si veda il sito Attualmente, Cyc include oltre un milione di concetti, mentre la versione pubblica OpenCyc comprende circa concetti e 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

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

18 #$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 unistanza Tutti i simboli che hanno il prefisso #$ sono Units. Una caratteristica fondamentale di Cyc è che, come si vede dallesempio, anche gli slots sono Units (SlotUnits)

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

20 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 ( 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)))) ( x) person (x) [( y) person ( y) mother(x,y) greaterThan(diff(age(y),age(x)), 16) ] Versione in logica dei predicati standard

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

22 #$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 è stato introdotto proprio per rendere alcune inferenze più efficienti

23 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?

24 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?

25 Alcuni meccanismi inferenziali in CycL Mantenimento di relazioni inverse: abbiamo già visto lesempio 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 linformazione (#$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 linformazione (#$I_demoni #$scrittoIn #$russo) (#$I_demoni #$parteDiTesto #$I-demoni-cap-1) Cycl introduce automaticamente (#$I_demoni-cap-1 #$scrittoIn #$russo)

26 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

27 #$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 (aggiornato al 1997) #$Thing: è linsieme 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.

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

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

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

31 Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia –Loom –OWL

32 SUMO (Suggested Upper Merged Ontology) è il risultato di uno sforzo dellIEEE (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) Questo standard specificherà una upper ontology che i computer potranno utilizzare per applicazioni quali linteroperabilità dei dati, la ricerca e il reperimento di informazioni, il ragionamento automatico e lelaborazione del linguaggio naturale. Unontologia è simile ad un dizionario o a un glossario, ma con maggiore dettaglio e struttura, che permette ad un computer di elaborare il suo contenuto. Unontologia 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

33 STRUCTURAL ONTOLOGY BASE ONTOLOGY TEORIA DEGLI INSIEMI NUMERITEMPO MEREOTOPOLOGIA (PARTI E SPAZIO) MISUREPROCESSI QUALITAOGGETTI Le componenti di SUMO

34 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

35 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

36 Entity Physical Object Process Abstract AttributeQuantityClassProposition Base Ontology (il top-level) Entity: ( x) instance (x, Entity) Qualunque cosa è unistanza 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

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

38 Base Ontology (sotto il top level) Processi intenzionali

39 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

40 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 - Linsieme 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 (lequivalente di Cycl+Constraint)

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

42 Dolce (un ponte tra filosofia e computer science) Dolce (Descriptive Ontology for Linguistic and Cognitive Engineering) è il risultato dellattività svolta sulle ontologie presso lIstituto per le Scienze e le Tecnologie Cognitive del CNR (Trento-Roma) Dolce non si propone come candidata per unontologia 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

43 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 unentità mediante una relazione unificante Ex. Azienda: essere stati assunti in quellazienda

44 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à dacqua ne perde una parte è una diversa quantità dacqua, ma se a una persona si tagliano i capelli rimane la stessa persona 4.Una proprietà dipendente da unaltra (+D) non può sussumere una proprietà indipendente (-D) Ex. Park non può sussumere Location

45 Endurant e Perdurant Gli Endurants sono completamente presenti (cioè con tutte le loro parti) quando lEndurant 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 dallUniversità a casa.

46 Entity AbstractEndurantPerdurant Il top level di Dolce FactRegionSetSubstantialQualityEventStative 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à; unaltra rosa può avere lo stesso colore, ma si tratta di unaltra 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.

47 Critica del top-level di WordNet Confusione tra concetti e individui Composer ContrapuntistSongWriter Beethoven Bach 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 SetSpace Relation Attribute Time meta-level object-level

48 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 unontologia, non è direttamente usabile, o, meglio, la parte usabile è molto ridotta Non direttamente confrontabile con le altre ontologie viste, ma possiamo dire:

49 Cosa sono le ontologie Quali ontologie esistono –WordNet –Cyc –SUMO –DOLCE Come costruire unontologia –Loom –OWL

50 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 linsieme dei suoi valori tell: fornisce informazioni su unistanza Operazioni di modifica della KB Una KB può trovarsi in due stati: provvisorio e stabilizzato

51 (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]

52 (defrelation indirizzo :range string) string (defconcept dim-val :is (the-ordered-set piccola media grande)) dim-val (defrelation dimensione :range dim-val) (defconcept metropoli :is (and citta (> popolazione ))) metropoli popolazione > Citta popolazione [1] ufficio-turistico [1, inf] agenzia Localita nome [1] string number indirizzo[1] dimensione [1] Esempio (continua)

53 (tellm (create ag-1 agenzia) (dimensione ag-1 grande) (indirizzo ag-1 Via PincoPallo, 33)) indirizzodimensione ag-1 Via PincoPallo, 33grande (tellm (create ag-2 agenzia) (dimensione ag-2 piccola) (indirizzo ag-2 Via AlfaBeta, 1) indirizzodimensione ag-2 Via AlfaBeta, 1piccola (tellm (create cit-1 citta) (nome cit-1 Torino) (popolazione cit ) (ufficio-turistico cit-1 ag-1)) (ufficio-turistico cit-1 ag-2)) indirizzodimensione ag-2 Via NonSo, 111piccola (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

54 (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 ) (ufficio-turistico cit-2 ag-3)) Esempi di query (tellm (create loc-1 localita) (name loc-1 Etna))

55 (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.

56 (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 dellesecuzione del metodo su cit-1 (Torino) non cambia: per default, Loom usa sempre il metodo definito più localmente

57 Conclusioni su Loom Non unontologia: non ci si preoccupa di descrivere i concetti e le loro proprietà, ma solo di come si effettuano i ragionamenti (lopposto di SUMO) VANTAGGI: - Semplicità - Vari meccanismi di ragionamento SVANTAGGI: - Non sempre ragionamenti efficienti - Limitazioni espressive (es. Vincoli tra relazioni, strutture)


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

Presentazioni simili


Annunci Google