La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ONTOLOGIE Scienze Cognitive 2003 Scienze Cognitive 2002/03.

Presentazioni simili


Presentazione sul tema: "ONTOLOGIE Scienze Cognitive 2003 Scienze Cognitive 2002/03."— Transcript della presentazione:

1 ONTOLOGIE Scienze Cognitive 2003 Scienze Cognitive 2002/03

2 Di cosa parleremo Cosa sono le ontologie Quali ontologie esistono
WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL “Trying to engage with too many partners too fast is one of the main reasons that so many online market makers have foundered. The transactions they had viewed as simple and routine actually involved many subtle distinctions in terminology and meaning” Harvard Business Review, October 2001 Scienze Cognitive 2003 Scienze Cognitive 2002/03

3 Cosa sono le ontologie Perchè servono in CS?
Filosofia: area della metafisica che studia come è realmente fatto l’universo che ci circonda Computer Science: area dell’intelligenza artificiale che studia i metodi per rappresentare correttamente l’universo che ci circonda. Perchè servono in CS? Condivisione di conoscenza: per non duplicare sforzi nello sviluppo di sistemi software Comunicazione: sia tra agenti software (tra di loro) che tra agenti software e esseri umani No one else is doing this work: (a) it is hard (b) it is interdisciplinary (c) it is not glamorous (d) people think they can avoid the need to it via hacks – but then the Semantic Web will break, in ways which e.g. in medicine might cost lives Semantic Web! Scienze Cognitive 2003 Scienze Cognitive 2002/03

4 Conoscenza non condivisa
KB1 Sistema di diagnosi di malattie cardiache Struttura della valvola aortica KB2 Sistema di pianificazione di interventi cardiaci Struttura della valvola aortica Scienze Cognitive 2003

5 Conoscenza condivisa KB1 Sistema di diagnosi di malattie cardiache
Struttura della valvola aortica KB2 Sistema di pianificazione di interventi cardiaci Scienze Cognitive 2003

6 Comunicazione ma: Segreteria Elettronica (Agente 1) KB1 KB2
- Riunione - Orario di lavoro - Sede di lavoro - Viaggio - …….. KB1 Sistema di prenotazioni ferroviarie (Agente 2) KB2 - Città di partenza - Città di arrivo - Data di partenza - Ora del giorno - …….. ma: cittaDiPartenza := sedeDiLavoro; cittaDiArrivo := luogoDelMeeting; E se cittaDiPartenza si chiama CittaPart o DepartureCity? Scienze Cognitive 2003

7 Osservazioni Ontologie (punti di vista) non identici, ma condivisi
Sistemi già esistenti: possono mantenere la propria struttura, ma se vogliono comunicare devono avere un protocollo comune Ontologie esistenti compatibili in parte: per ora, quindi, soluzione parziale Poichè comunicazione uomo-macchina, condivisione delle ontologie anche tra macchine ed esseri umani Scienze Cognitive 2003

8 Semantic Web Esempio: I tag danno specifiche di significato
<sentence:carry> <subject:carrier> <NP:xml_tags>I tag</NP:xml_tags> </subject:carrier> <verb:carry_info>danno</verb:carry_info> <object:carriedInfo> <NP:description>specifiche <PP:contents=meaning>di significato </PP:contents=meaning> </NP:description> </object:carriedInfo> </sentence:carry> Scienze Cognitive 2003

9 Quali ontologie esistono
Cosa sono le ontologie Quali ontologie esistono WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL “Trying to engage with too many partners too fast is one of the main reasons that so many online market makers have foundered. The transactions they had viewed as simple and routine actually involved many subtle distinctions in terminology and meaning” Harvard Business Review, October 2001 Scienze Cognitive 2003 Scienze Cognitive 2002/03

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

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

12 Le relazioni di WordNet (originale)
Relazione POS collegate Esempi Sinonimia nome/nome; verbo/verbo; aggettivo/aggettivo; avverbio/avverbio book/volume; to eat/to take in; great/outstanding; greatly/drastically Antonimia 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 to kill/to die Somiglianza wet/humid Attributo aggettivo/nome tall/stature Relativo al nome fraternal/broterhood Scienze Cognitive 2003

13 Osservazioni Alcune delle relazioni adottate sono alquanto vaghe
POS sta per Part Of Speech (nome, verbo, ecc.) POS diverse collegate solo in casi particolari Le Relazioni sono strutture del tutto diverse dai Synsets Scienze Cognitive 2003

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

15 Osservazioni La seconda colonna è molto diversa da quella della tabella precedente. I numeri (1, 2, 3) si riferiscono ai cosiddetti “ordini semantici”, così definiti: 1: nomi concreti 2: nomi, verbi, aggettivi o avverbi indicanti proprietà, stati, processi o eventi 3: nomi astratti indicanti proposizioni indipendenti dal tempo e dallo spazio Per molte relazioni sono definite anche le inverse, che per semplicità non ho riportato in tabella (ad es. iponimia  iperonimia; meronimia  olonimia; causa  causato_da; …) Alcune relazioni non sono definite tra Synset, ma tra singole parole. Questo vale ovviamente per la sinonimia, ma anche per la derivazione e per l’antonimia La tabella è molto più estesa della precedente; non riporto la tabella delle relazioni di ItalWordNet, che comprende 45 righe, al posto delle 18 che ci sono sopra Tutti i Synset coinvolti si riferiscono a classi (chitarra, andare, …) eccetto quelli che compaiono nell’ultima relazione, in cui uno dei due elementi collegati è un’istanza (Po, Roma) Scienze Cognitive 2003

16 L’Architettura di EuroWordNet
Inter Lingual Index ILI record (drive) guidare cavalcare muoversi WordNet Italiano III cabalgar conducir mover Spagnolo ride drive move Inglese rijden berijden betragen Olandese II location 2nd order entity dynamic air traffic traffic road traffic Top ontology Domain ontology I Scienze Cognitive 2003

17 Osservazioni La top-ontology è una rappresentazione strutturata dei concetti più generali (la esamineremo sotto) Le Domain-Ontologies sono elenchi (parzialmente strutturati) di Campi Semantici, e cioè di ‘argomenti’ (ad es. Sport, calcio, astronomia, …) L’Inter Lingual Index (ILI) è solo una tabella di mapping tra Synset, non strutturata Vi sono tre tipi diversi di archi: I: archi indipendenti dalle varie lingue, che collegano un record dell’ILI con le top e domain ontologies II: archi che collegano i synset dei vari WordNet all’ILI (e viceversa) III: archi, dipendenti dalla particolare lingua, che collegano i vari synset. Questi sono gli archi che abbiamo descritto nelle due tabelle precedenti. Scienze Cognitive 2003

18 La Top-Ontology Scienze Cognitive 2003 entity 1st order 2nd order
3rd order artifactO placeU comestibleU substanceF +artifactO naturalO containerU +objectF dynamicT staticT causeC locationC mental thing candy vessel bottle aliment bounded EventT objectF solidF gasF liquidF Scienze Cognitive 2003

19 La definizione dei concetti è basata su features
Per le entità del primo ordine esse sono: Origin (se è naturale o artificiale; indice O nella figura) Natural Living Plant Human Creature Animal Artifact Form (se è una sostanza o un oggetto con forma definita; indice F nella figura) Substance Solid Liquid Gas Object Composition (se è un oggetto unitario o un gruppo; non compare in figura) Part Group Function (la funzione) Vehicle Representation MoneyRepresentation LanguageRepresentation ImageRepresentation Software Place Occupation Instrument Garment Furniture Covering Container Comestible Building Scienze Cognitive 2003

20 Per le entità del secondo ordine esse sono:
Situation Component (una caratteristica o un partecipante della situazione descritta; indice C nella figura) Cause Communication Condition Existence Experience Location Manner Mental Modal Physical Possession Purpose Quantity Social Time Situation Type (il tipo della situazione; indice T in figura) Dynamic BoundedEvent UnboundedEvent Static Property Relation Le entità del terzo ordine non hanno features Scienze Cognitive 2003

21 Osservazioni Le features possono essere combinate per ottenere concetti più specifici (ad esempio, si veda in figura containerU+objectF+artifactO ) I concetti del Top-level non sono dei SynSets! Per cui termini come Container debbono comparire sia nella top ontology, sia in uno o più SynSet Alla Top-ontology sono agganciati 1310 Base Concepts, concetti fondamentali comuni a tutte le lingue, individuati in base a 3 criteri: Numero delle relazioni associate ad essi Posizione nella gerarchia tassonomica Frequenza in un corpus Non sono predefiniti dei meccanismi inferenziali, che permettano di sfruttare la semantica delle relazioni. ItalWordNet è memorizzato in un DB relazionale, ed è compito dell’utente scrivere le query opportune per spostarsi tra I Synsets. Esistono però dei browser grafici che permettono di navigare (manualmente) nella rete Scienze Cognitive 2003

22 Quali ontologie esistono
Cosa sono le ontologie Quali ontologie esistono WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL Scienze Cognitive 2003

23 Cyc 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) Scienze Cognitive 2003

24 2 componenti Constraint Language (Logica dei predicati)
CycL (linguaggio basato su frame) Scienze Cognitive 2003

25 Esempio di Unit relativa ad un’istanza
CycL Units I frame di Cyc si chiamano Units. Esse includono, come tutti i frames, degli slots Esempio di Unit relativa ad un’istanza #$Texas #$capital: (#$Austin) #$residents: (#$Doug Guha Mary) #$stateOf: (#$UnitedStatesOfAmerica) Tutti i simboli che hanno il prefisso #$ sono Units. Una caratteristica fondamentale di Cyc è che, come si vede dall’esempio, anche gli slots sono Units (SlotUnits) Scienze Cognitive 2003

26 Esempio di Unit relativa ad uno slot Altri esempi più avanti
#$residents #$instanceOf: (#$Slot) #$inverse: (#$residentOf) #$makesSenseFor: (#$GeopoliticalRegion) #$entryIsA: (#$Person) #$specSlots: (#$lifelongResidents #$illegalAliens #$registeredVoters) Da un punto di vista formale, gli slots sono relazioni binarie Quindi, è necessario definire il dominio (#$makesSenseFor) e il range (#$entryIsa) E’ anche possibile definire relazioni tra relazioni (#$inverse e #$specSlots) Altri esempi più avanti Scienze Cognitive 2003

27 Il Constraint Language
Una variante della logica dei predicati basata su ‘restricted quantification’ Es. Tutte le persone hanno una madre e la loro differenza di età è maggiore di 16 ("x) person (x) ® [($y) person ( y) Ù mother(x,y) Ù greaterThan(diff(age(y),age(x)), 16) ] Versione in logica dei predicati standard Versione con quantificazione ristretta ("xperson) ($yperson) mother(x,y) Ù greaterThan(diff(age(y),age(x)), 16) ] Versione Cyc (#$ForAll x (#$Person) (#$Exists y (#$Person) (LogAnd (#$mother x y) (#$GreaterThan (#$Diff (y #$age) (x #$age)) 16)))) Scienze Cognitive 2003

28 Versione Cyc più efficiente: separare …
la definizione dello slot … #$Person #$genls: (#$Living) #$name: (#$PersonName) #$residentOf: (#$city) #$mother: (#$Person) #$inheritedSlotConstraints: (#$AgeOfMotherConstraint) dal vincolo (constraint) sullo slot (infatti: Constraint Language) #$AgeOfMotherConstraint #$instanceOf: (#$SlotConstraint) #$constraintInheritedTo: (#$Person …) #$slotsConstrained: (#$mother) #$slotConstraints: (#$GreaterThan (#$Diff (v #$age) (u #$age)) 16))))) Scienze Cognitive 2003

29 Ma perchè questa soluzione è più efficiente?
Per completezza, e perchè serve dopo, ecco la definizione dello slot #$mother: #$mother #$instanceOf: (#$Slot) #$inverse: (#$motherOf) #$makesSenseFor: (#$Person) #$entryIsA: (#$Person) #$entryFormat: (SingleEntry) Ma perchè questa soluzione è più efficiente? Perchè parte del vincolo è espresso in CycL, che è stato introdotto proprio per rendere alcune inferenze più efficienti Scienze Cognitive 2003

30 Inferenza in Cyc Quale sarà il risultato?
Consideriamo la seguente operazione: (Put #$Giorgio #$mother #$Lucia) Essa memorizza (Put) nello slot #$mother della Unit #$Giorgio, il valore (riferimento alla Unit) #$Lucia (e cioè, Lucia è la madre di Giorgio) Supponiamo ora di fare: (Get #$Lucia #$mother-of) E cioè di richiedere (Get) di chi è madre (#$mother-of) #$Lucia. Supponiamo che Lucia non abbia altri figli oltre Giorgio. Quale sarà il risultato? Scienze Cognitive 2003

31 Possiamo ottenere due risultati:
( ) Cioè la lista vuota: Lucia non ha figli (#$Giorgio) Lucia è madre di Giorgio Il primo risultato si ottiene se sia la Get che la Put precedenti sono state richieste “senza nessuna inferenza” Il secondo risultato si ottiene se o la Get o la Put (o entrambe) sono state richieste “con inferenza” (anche minima) Quale inferenza è necessaria? Quella associata alla definizione dello slot #$mother (v. slide 29), in cui è specificato che #$mother ha un #$inverse, che è appunto #$mother-of Scienze Cognitive 2003

32 Alcuni meccanismi inferenziali in CycL
Mantenimento di relazioni inverse: abbiamo già visto l’esempio Mantenimento di specSlot-genlSlot: alcuni slot di una unit possono essere legati da una relazione di specializzazione-generalizzazione. Ad es. #$padreDi #$specSlot #$genitoreDi Se viene inserita l’informazione (#$Luigi #$padreDi #$Marta) Cycl introduce automaticamente (#$Luigi #$genitoreDi #$Marta) TransfersThro: Il valore di uno slot può essere trasferito a Unit collegate: #$libro #$scrittoIn #$linguaggio #$libro #$parteDiTesto #$capitolo #$scrittoIn #$transfersThro #$parteDiTesto Se viene inserita l’informazione (#$I_demoni #$scrittoIn #$russo) (#$I_demoni #$parteDiTesto #$I-demoni-cap-1) Cycl introduce automaticamente (#$I_demoni-cap-1 #$scrittoIn #$russo) Scienze Cognitive 2003

33 Alcuni meccanismi inferenziali in CycL (2)
MutuallyDisjointWith: Permette di specificare che due classi (Unit) sono disgiunte. Es: #$malePerson #$mutuallyDisjointWith #$femalePerson #$individualObject #$mutuallyDisjointWith #$collection Ogni volta che si specifica che un individuo viene inserito come istanza di una classe C1, Cycl verifica che non sia già istanza di una classe C2 disgiunta da C1 Controlli analoghi si hanno per #$covering e $partitionedInto Insiemi coestensionali: Permette di specificare che due classi (Unit) debbono necessariamente includere le stesse istanze. #$gatto #$coExtensionalSets #$micio Se: (#$Milu #$instanceOf #$gatto) Cycl asserisce automaticamente (#$Milu #$instanceOf #$micio) (e viceversa) N.B. Intensioni vs. estensioni Scienze Cognitive 2003

34 Alcuni meccanismi inferenziali in CycL (3)
Ereditarietà: ben noto: “Se tutte le persone hanno un codice fiscale e i professori sono persone, allora i professori hanno un codice fiscale”. In realtà, Cyc estende questo meccanismo: Ereditarietà standard: Si applica allo slot #$allInstances (tutte le istanze di una unit); Se #$persona #$nazionalità: (#$stato) #$studenteUnivTorino #$genL: (#$persona) #$nazionalità “default per #$studenteUnivTorino = #$Italia” Allora, quando si asserisce #$studenteUnivTorino #$allInstances (… #$Sandra …) Cyc ottiene (per default) #$Sandra #$nazionalità #$Italia Scienze Cognitive 2003

35 Alcuni meccanismi inferenziali in CycL (4)
Ma l’ereditarietà si può anche applicare ad altri slot: Nell’esempio che segue, alla coppia <#$possiedeAuto, #$categoria> #$persona #$possiedeAuto: (#$modelloDiAuto) #$modelloDiAuto #$categoria: (#$utilitaria #$media #$sport #$lusso) #$Carla #$instanceOf #$persona #$possiedeAuto ° #$categoria “default per #$Carla = #$lusso” Allora, quando si asserisce #$Carla #$possiedeAuto (… #$AutoXXX …) Cyc ottiene (per default) #$AutoXXX #$categoria #$lusso N.B. Ho appositamente messo tra virgolette i due default di esempio: non c’è modo in Cyc per specificare queste ereditarietà in modo dichiarativo, ma bisogna usare una funzione apposita. Scienze Cognitive 2003

36 Alcuni meccanismi inferenziali in CycL (5)
Mantenimento di definizioni (toCompute): zio =def fratello ° genitore (formalmente composizione di funzioni). In Cyc: #$zio #$toCompute (#$computeByComposing #$fratello #$genitore) Attivazione di “demoni”. Essi sono procedure, associate agli slot, che vengono eseguite se lo slot viene modificato. Ad esempio, se per gli studenti ho lo slot #$esamiSostenuti e lo slot #$crediti, al primo slot si può agganciare un demone che viene attivato ogni volta che si aggiunge un nuovo esame, incrementando automaticamente il numero di crediti. Classificazione: se triangolo =def poligono con esattamente tre lati equiTria =def poligono con esattamente tre lati uguali allora tutti gli equiTria sono triangoli Scienze Cognitive 2003

37 Un esempio di attivazione di demoni
#$Lesmo #$instanceOf: (#$ProfessoreUniversitario) #$insegnaIn: (#$UniversitaDiTorino) #$name: (#$Leonardo) #$UniversitaDiTorino #$instanceOf: (#$Ateneo) #$sede: (#$Torino) #$rettore: (#$RinaldoBertolino) #$Torino #$instanceOf: (#$Città) #$inRegione: (#$Piemonte) #$insegnaIn #$instanceOf: (#$Slot) #$makesSenseFor: (#$ProfessoreUniversitario) #$entryIsa: (#$Ateneo) #$entryFormat: (#$SingleEntry) #$afterAdding: (#$MyComputeByComposing #$risiedeInRegione #$sede #$inRegione) Scienze Cognitive 2003

38 Applicazione dei meccanismi inferenziali
I metodi visti in precedenza non vengono sempre applicati. Alcuni, infatti (ad esempio la classificazione) sono piuttosto inefficienti. E’ compito dell’utente specificare quali meccanismi desidera siano applicati. All’atto della get (inferenza backward) La get non esiste; esistono invece 4 versioni di potenza differente: get0: nessuna inferenza (come accesso a database) get4: inferenze semplici e molto efficienti (#$inverse, #$toCompute, #$genlSlots, #$TransfersThro, #$coExtensionalSets, …) get6: inferenze complesse: ereditarietà completa, classificazione, demoni get8: inferenze plausibili (che non abbiamo visto), es. Ragionamento per analogia, uso di ‘strutture’, … Scienze Cognitive 2003

39 Applicazione dei meccanismi inferenziali (2)
All’atto della put (inferenza forward) In teoria, put come get. In pratica, un unico livello: put4 Perchè? Le inferenze sotto il livello 4 sono molto efficienti all’atto della put, molto inefficienti all’atto della get. Es. (get #$Lucia #$motherOf) Applicare l’inverse a (put #$Giorgia #$mother #$Lucia) è immediato e, in tal caso, anche rispondere alla get sopra è immediato. In caso contrario, rispondere alla get richiede controllare tutte le #$Person per verificare se hanno (#$mother #$Lucia) Le inferenze sopra il livello 4 sono molto inefficienti sempre, per cui è il caso di farle solo se richiesto Scienze Cognitive 2003

40 Una conclusione sulle inferenze: TMS
La conoscenza introdotta tramite meccanismi inferenziali è spesso incerta (per default). V. esempio categoria dell’auto di Carla (slide 35). Cosa succede se viene introdotto manualmente il dato che Carla ha comprato un’utilitaria? Prima alternativa: inconsistenza ® errore Seconda alternativa: alcuni dati sono più incerti di altri: un dato introdotto manualmente è più sicuro di uno inferito tramite inheritance. Per mettere in pratica la seconda alternativa, Cyc usa un TMS (Truth Maintenance System), che in realtà si applica anche a casi più generali di quello dell’esempio. Se Cyc sa che è vero Fatto1, che è vera la regola (non default) Fatto1 ® Fatto2, può dedurre Fatto2. Se viene asserito che Fatto2 è falso cosa si può fare? Si può negare che è vero Fatto1, o cancellare la regola. Scienze Cognitive 2003

41 Alcune considerazioni ontologiche
Topolino è una #$Thing? Ovviamente sì, anche se non è reale. Person è una #$Thing? Sì, della classe (come entità) si sanno alcune cose (come la cardinalità – circa 6 miliardi) Lo è diventata in questo momento! Di essa si può dire che è un numero che è stato usato come esempio nelle lezioni di Lesmo. è una #$Thing? E’ certamente una classe (di eventi). Può diventare un’entità se di essa (come classe) si vuol dire qualcosa (v. sopra esempio Person) ‘Mangiare al ristorante’ è una #$Thing? ‘La difesa della Juve’ è una #$Thing? Sì, ma può essere di due tipi: un’entità ‘intera’ (IndividualObject), o una collezione. Influenza è un #$IndividualObject o una #$Collection? E’ una collezione, ma, come Person, può avere un’individualità come classe. Scienze Cognitive 2003

42 Il top level di Cyc Alcune descrizioni di concetti
#$Thing #$Individual #$Collection #$Situation #$IntangibleIndividual #$SetOrCollection #$Intangible #$TemporalThing #$Relationship Una lista dei concetti di Cyc si può trovare al sito (aggiornato al 1997) Alcune descrizioni di concetti (dalla documentazione Cyc) #$Thing: è l’insieme universale: la collezione di ogni cosa! Ogni costante Cyc nella Base di Conoscenza è membro di questa collezione. Inoltre, ogni collezione della Base di Conoscenza è membro della collezione #$Thing. Scienze Cognitive 2003

43 #$IntangibleIndividual:
la collezione di cose che non sono fisiche - non sono fatte di, o codificate nella, materia. Ogni #$Collection è #$Intangible (anche se le sue istanze sono tangibili) e tali sono anche alcuni #$Individual. Attenzione: non si confonda ‘tangibilità’ con ‘percettibilità’ - gli esseri umani possono percepire la luce anche se essa è intangibile. #$Individual: la collezione di tutte le cose che non sono insiemi o collezioni. Così #$Individual include, tra le altre cose, oggetti fisici, sottoastrazioni temporali di oggetti fisici[, numeri, relazioni e gruppi. Un elemento di #$Individual può avere parti o una struttura (incluse parti che sono discontinue); ma NESSUNA istanza di #$Individual può avere elementi o sottoinsiemi. #$IntangibleIndividual: la collezione degli individui intangibili. I suoi elementi non hanno massa, volume, colore, ecc. Ad esempio, ore, idee, algoritmi, interi, distanze, e così via. D’altra parte, in quanto sottoinsieme di #$Individual, questa collezione ESCLUDE insiemi e collezioni, che sono elementi di #$Intangible, ma non di #$IntangibleIndividual #$TemporalThing: la collezione delle cose che hanno una particolare estensione temporale, cose delle quail uno potrebbe ragionevolmente chiedere ‘Quando?’. Essa include molte cose; come le azioni, gli oggetti tangibili, gli accordi, e porzioni astratte di tempo. Alcune cose NON sono istanze di #$TemporalThing perchè sono astratte, atemporali, come un insieme matematico, un intero, ecc. Scienze Cognitive 2003

44 Conclusioni su Cyc Un sistema enormemente complesso, che include sia una parte di rappresentazione di conoscenza e inferenza, sia una ontologia vera e propria VANTAGGI: - Dimensione - Potenza inferenziale - Ottimizzazione dei ragionamenti SVANTAGGI: - Troppo complesso - Non chiare le scelte ontologiche - Alcuni insuccessi (es. Legami col linguaggio naturale) Scienze Cognitive 2003

45 Perchè ? Versione 1990 Versione 1997 Scienze Cognitive 2003 #$Thing
#$IndividualObject #$Collection #$Event #$Process #$Intangible #$Stuff #$RepresentedThing #$IntangibleObject #$IntangibleStuff #$Relationship #$Slot Versione 1997 #$Thing #$Individual #$Collection #$Situation #$IntangibleIndividual #$SetOrCollection #$Intangible #$TemporalThing #$Relationship Perchè ? Scienze Cognitive 2003

46 Quali ontologie esistono
Cosa sono le ontologie Quali ontologie esistono WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL Scienze Cognitive 2003

47 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) Questo standard specificherà una ‘upper ontology’ che i computer potranno utilizzare per applicazioni quali l’interoperabilità dei dati, la ricerca e il reperimento di informazioni, il ragionamento automatico e l’elaborazione del linguaggio naturale. Un’ontologia è simile ad un dizionario o a un glossario, ma con maggiore dettaglio e struttura, che permette ad un computer di elaborare il suo contenuto. Un’ontologia consiste di un insieme di concetti, assiomi e relazioni che descrivono un dominio di interesse. Una ‘upper ontology’ è limitata a concetti che sono ‘meta’, generici, astratti e filosofici e, di conseguenza, sono sufficientemente generali da coprire (ad alto livello) un ampio range di domini. I concetti relativi ai domini specifici non saranno inclusi, ma questo standard fornirà una struttura e un insieme i concetti generali sulla base dei quali potranno essere costruite le ontologie di dominio (ad es. medicina, finanza, ingegneria, ecc.).” Scienze Cognitive 2003

48 Le componenti di SUMO Scienze Cognitive 2003 STRUCTURAL ONTOLOGY
BASE ONTOLOGY TEORIA DEGLI INSIEMI NUMERI TEMPO MEREOTOPOLOGIA (PARTI E SPAZIO) MISURE PROCESSI QUALITA’ OGGETTI Scienze Cognitive 2003

49 Structural Ontology Descrizione (in SUMO) delle primitive di SUMO
Definizione della relazione instance (asserted StructuralOntology (instance instance BinaryPredicate)) (asserted StructuralOntology (instance instance AntisymmetricRelation)) (asserted StructuralOntology (domain instance 1 Entity)) (asserted StructuralOntology (domain instance 2 Class)) Definizione della relazione subclass (asserted StructuralOntology (instance subclass BinaryPredicate)) (asserted StructuralOntology (instance subclass PartialOrderingRelation)) (asserted StructuralOntology (domain subclass 1 Class)) (asserted StructuralOntology (domain subclass 2 Class)) Un ‘assioma’ (asserted StructuralOntology (=> (subclass ?C1 ?C2) (forall (?X) (=> (instance ?X ?C1) (instance ?X ?C2))))) Scienze Cognitive 2003

50 Structural Ontology (2)
Definizione della relazione inverse (asserted StructuralOntology (instance inverse BinaryPredicate)) (asserted StructuralOntology (instance inverse SymmetricRelation)) (asserted StructuralOntology (domain inverse 1 BinaryRelation)) (asserted StructuralOntology (domain inverse 2 BinaryRelation)) Un ‘assioma’ per ‘inverse’ (asserted StructuralOntology (=> (and (inverse ?R1 ?R2) (instance ?R1 BinaryRelation) (instance ?R2 BinaryRelation)) (forall (?X1 ?X2) (<=> (holds ?R1 ?X! ?X2) (holds ?R2 ?X2 ?X1))))) A differenza di Cyc, non ‘procedure di inferenza’, ma formule logiche Scienze Cognitive 2003

51 Base Ontology (il top-level)
Entity Physical Object Process Abstract Attribute Quantity Class Proposition Alcuni assiomi Entity: ("x) instance (x, Entity) Qualunque cosa è un’istanza di Entity ($x) instance (x, Entity) Esistono delle istanze di Entity ("c) instance (c, Class) ® subclass (c, Entity) Tutte le classi sono sottoclassi di Entity Scienze Cognitive 2003

52 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 NonIntentional Intentional Scienze Cognitive 2003

53 Base Ontology (sotto il top level)
Processi intenzionali Intentional Process Exercise Religious Therapeutic Diagnostic Surgery Organizational Managing Political Mental Recreational Social Interaction Graduation Regulatory Occupational Guiding Educational Keeping Repairing Revealing Touching Concealing Poking Maintaining Securing Confining Holding Content Development Decorating Grooming Searching Investigating Pursuing Scienze Cognitive 2003

54 Base Ontology (qualche assioma sui processi)
("x) Process (x) ® ($y) subProcess (x,y) Tutti processi hanno dei sotto-processi. subProcess: ("x,y) subProcess (x,y) ® ($t) existant (y,t) Ogni sottoprocesso esiste in qualche istante temporale ("x,y) subProcess (x,y) ® [(" z) located (y,z) ® located (x,z)] Se un sottoprocesso avviene in un luogo, anche il processo avviene in tale luogo ("x,y) subProcess (x,y) ® WhenFn(x)=WhenFn(y) Ú during (WhenFn(x),WhenFn(y)) Un sottoprocesso o coincide temporalmente o è incluso nel suo sopra-processo. WhenFn è una funzione che restituisce un intervallo temporale IntentionalProcess: ("x) IntentionalProcess (x) ® ($y) agent (x, y) Tutti i processi intenzionali hanno un agente ("x,y) IntentionalProcess (x) Ù agent(x,y) ® CognitiveAgent(y) Ù ($z) hasPurposeForAgent (x, z, y) Gli agenti dei processi intenzionali sono CognitiveAgent, e deve esserci uno ‘scopo’ z, tale che il processo è utile per quello scopo Scienze Cognitive 2003

55 Conclusioni su SUMO Una vera ontologia: non ci si preoccupa di come si effettuano i ragionamenti, ma solo di ‘descrivere’ i concetti e le loro proprietà Il linguaggio in cui è espresso SUMO si chiama KIF (Knowledge Interchange Format), ed è esso che si occupa della parte inferenziale (l’equivalente di Cycl+Constraint) VANTAGGI: - Separazione conoscenza-reasoning - Ontologia piuttosto ampia - Integrazione di conoscenza da fonti diverse SVANTAGGI: - Scelte ontologiche più chiare di Cyc, ma ancora dubbie - L’insieme degli assiomi è piuttosto limitato - Efficienza dei ragionamenti Scienze Cognitive 2003

56 Quali ontologie esistono
Cosa sono le ontologie Quali ontologie esistono WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL Scienze Cognitive 2003

57 (un ponte tra filosofia e computer science)
Dolce (un ponte tra filosofia e computer science) Dolce (Descriptive Ontology for Linguistic and Cognitive Engineering) è il risultato dell’attività svolta sulle ontologie presso l’Istituto per le Scienze e le Tecnologie Cognitive del CNR (Trento-Roma) Dolce non si propone come candidata per un’ontologia universale, ma come un punto di partenza per confrontare e chiarire la relazioni esistenti tra diversi moduli ontologici e per rendere esplicite le assunzioni presenti nelle ontologie esistenti Dolce ha un orientamento cognitivo, nel senso che tende ad esprimere le categorie ontologiche alla base del linguaggio naturale e del senso comune umano. Parallela a Dolce c’è Ontoclean, che è una metodologia per la verifica si ontologie. Non la presenterò, ma vedremo qualche dettaglio Scienze Cognitive 2003

58 OntoClean Quattro nozioni fondamentali nella caratterizzazione dei concetti Identità: possibilità di distinguere due istanze di una classe mediante una proprietà caratteristica (anche in tempi diversi) Ex. Per ‘Person’: ‘avere le stesse impronte digitali’ Dipendenza: la proprietà P è dipendente dalla proprietà Q, se, quando Q è vera, è vera anche P. Ex. ‘avere figli’ dipende da ‘essere genitore’ Rigidità: dice, di una proprietà, se essa è ‘stabile’ per le istanze. Ex. ‘Person’ è rigida; ‘Student’ non è rigida Unità: possibilità di identificare tutte le parti di un’entità mediante una relazione unificante Ex. ‘Azienda’: ‘essere stati assunti in quell’azienda’ Scienze Cognitive 2003

59 A cosa servono? Vincoli sulla relazione di sussunzione
Una classe non rigida (-R) non può sussumere una classe rigida (+R) Ex. ‘Legal Agent‘ non può sussumere ‘Person’ 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) Scienze Cognitive 2003

60 Endurant e Perdurant Gli Endurants sono ‘completamente’ presenti (cioè con tutte le loro parti) quando l’Endurant stesso è presente. Esempio classico: gli oggetti (ad es. una casa) Ad ogni istante temporale, solo una parte (una ‘fetta’ temporale) di un Perdurant è presente (ad es. gli eventi) Correlato al concetto di cambiamento: solo gli Endurant possono cambiare (pur mantenendo la loro identità, concetto questo non facile da caratterizzare ontologicamente), mentre è ovvio che i Perdurant non cambiano, essendo le loro ‘parti’ diverse nel tempo per la definizione stessa di Perdurant Relazione fondamentale tra Endurant e Perdurant: partecipazione; gli Endurant partecipano (e cioè hanno un ruolo) nei Perdurants; ad esempio io, che sono un Endurant, partecipo nella mia azione (un Perdurant) di andare dall’Università a casa. Scienze Cognitive 2003

61 Il top level di Dolce Entity Abstract Endurant Perdurant Fact Region Set 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. Scienze Cognitive 2003

62 Critica del top-level di WordNet
Confusione tra concetti e individui Composer Contrapuntist SongWriter 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 Set Space Relation Attribute Time meta-level object-level Scienze Cognitive 2003

63 Conclusioni su Dolce Nè una ontologia, nè un insieme di metodi di ragionamento, bensì una metodologia (OntoClean) Ma sulla base di questa metodologia, proposta di un “top-top level” (Dolce) Non direttamente confrontabile con le altre ontologie viste, ma possiamo dire: VANTAGGI: - Connessione con i fondamenti filosofici - Basi solide per valutare le scelte ontologiche SVANTAGGI: - Richiede un lavoro manuale non indifferente - Non essendo un’ontologia, non è direttamente usabile, o, meglio, la parte usabile è molto ridotta Scienze Cognitive 2003

64 Quali ontologie esistono
Cosa sono le ontologie Quali ontologie esistono WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL Scienze Cognitive 2003

65 Loom Operazioni di modifica della KB
Loom offre un “description language” per modellare oggetti e relazioni. La programmazione procedurale è realizzata tramite metodi ‘pattern-directed’, mentre le capacità inferenziali basate su produzioni e sulla classificazione offrono un supporto per il ragionamento deduttivo. Operazioni di modifica della KB defconcept (define concept): crea un nuovo concetto defrelation: (define relation): crea una nuova relazione, cioè un link tra due concetti. defset (define set): crea un nuovo concetto definito tramite l’insieme dei suoi valori tell: fornisce informazioni su un’istanza Una KB può trovarsi in due stati: provvisorio e stabilizzato Scienze Cognitive 2003

66 Esempio (defconcept localita (exactly 1 nome))
[1] Citta popolazione [1] ufficio-turistico [1, inf] (defconcept citta :is-primitive (and localita (exactly 1 popolazione) (at-least 1 ufficio-turistico))) string number (defrelation nome :range string) (defrelation popolazione :range number) indirizzo [1] dimensione agenzia (defrelation ufficio-turistico :range agenzia) (defconcept agenzia :is-primitive (and (exactly one indirizzo) (exactly one dimensione))) Scienze Cognitive 2003

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

68 Esempio (continua) (tellm (create ag-1 agenzia)
Citta ufficio-turistico [1, inf] agenzia Metropoli Localita (tellm (create ag-1 agenzia) (dimensione ag-1 grande) (indirizzo ag-1 “Via PincoPallo, 33”)) Uff.tur. Cit-1 “Torino” nome (tellm (create ag-2 agenzia) (dimensione ag-2 piccola) (indirizzo ag-2 “Via AlfaBeta, 1”) (tellm (create ag-2 agenzia) (dimensione ag-2 piccola) (indirizzo ag-2 “Via NonSo, 111”) indirizzo dimensione ag-1 “Via PincoPallo, 33” grande indirizzo dimensione ag-2 “Via AlfaBeta, 1” piccola indirizzo dimensione ag-2 “Via NonSo, 111” piccola (tellm (create cit-1 citta) (nome cit-1 “Torino”) (popolazione cit ) (ufficio-turistico cit-1 ag-1)) (ufficio-turistico cit-1 ag-2)) Scienze Cognitive 2003

69 Esempio (continua) Esempi di query (retrieve ?x (citta ?x))
(tellm (create cit-2 citta) (nome cit-2 “Asti”) (popolazione cit ) (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) 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 Scienze Cognitive 2003

70 Metodi (defmethod trova-agenzia (?x) :situation (citta ?x)
:response ((do-retrieve (?c) (for-some ?y (and (ufficio-turistico ?x ?y) (indirizzo ?y ?c))) (format t "Un indirizzo di ~a e' ~s ~%" (first (retrieve ?z (nome ?x ?z))) ?c)))) Contrariamente ai linguaggi a oggetti standard, i metodi non sono legati agli oggetti, ma ‘globali’. C’è però il filtro ‘situation’ che dice a quali concetti sono applicabili (perform (trova-agenzia (get-instance ’cit-1))) Un indirizzo di Torino è “Via PincoPallo, 33” Un indirizzo di Torino è “Via AlfaBeta, 1” (perform (trova-agenzia (get-instance ‘loc-1))) Warning: Failed to apply action TROVA-AGENZIA to arguments (|I|LOC-1) because No applicable method. Scienze Cognitive 2003

71 Ma si può anche definire
(defmethod trova-agenzia (?x) :situation (localita ?x) :response ((do-retrieve (?c) (nome ?x ?c) (format t "~a non e' una citta' e quindi non ha uffici turistici~%" ?c)))) Ottenendo (perform (trova-agenzia (get-instance ‘loc-1))) Etna non e' una citta' e quindi non ha uffici turistici Si noti che il risultato dell’esecuzione del metodo su ‘cit-1 (Torino) non cambia: per default, Loom usa sempre il metodo definito più localmente Scienze Cognitive 2003

72 Conclusioni su Loom Non un’ontologia: non ci si preoccupa di ‘descrivere’ i concetti e le loro proprietà, ma solo di come si effettuano i ragionamenti (l’opposto di SUMO) VANTAGGI: - Semplicità - Vari meccanismi di ragionamento SVANTAGGI: - Non sempre ragionamenti efficienti - Limitazioni espressive (es. Vincoli tra relazioni, strutture) Scienze Cognitive 2003

73 Quali ontologie esistono
Cosa sono le ontologie Quali ontologie esistono WordNet Cyc SUMO DOLCE Come costruire un’ontologia Loom OWL Scienze Cognitive 2003

74 (Web Ontology Language)
OWL (Web Ontology Language) Rispetto a quanto detto nell’introduzione, ci siamo dimenticati il legame con il World Wide Web OWL è un prodotto del W3C (organizzazione internazionale per lo sviluppo di WWW); un linguaggio di markup semantico per pubblicare e condividere ontologie. OWL è derivato dal precedente DAML+OIL OWL è basato sui linguaggi di markup (XML) ed è ancorato all’RDF (Resource Description Framework), una notazione uniforme e non ambigua per esprimere le risorse presenti sul Web. Alcuni riferimenti: Overview, Guide, Language Reference Scienze Cognitive 2003

75 (Resource Description Framework)
RDF (Resource Description Framework) HTML (HyperText Markup Language) Per riferirsi a elementi del Web all’esterno della pagina: URL (Uniform Resource Locator) Insieme di tag predefinito XML (eXtensible Markup Language) Possibilità di estendere i tag di base con un proprio insieme di tag Possibilità di riferirsi a entità fuori dal Web (es. nel mondo reale) URI (Uniform Resource Identifiers) RDF (una particolare estensione di HTML, definita tramite XML) Scienze Cognitive 2003

76 Cosa vuol dire ‘descrivere una risorsa’?
swap/pim/contact#homePage Leonardo Lesmo /pim/contact#workPlace “Professor” /22-rdf-syntax-ns/type TUTTE le etichette che compaiono in figura (eccetto ‘Professor’ e ‘Leonardo Lesmo’) sono URI Scienze Cognitive 2003

77 (l’esempio precedente)
La sintassi RDF (l’esempio precedente) <rdf: RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:contact=”http://www.w3.org/2000/10/swap/pim/contact#”> Le due righe precedenti sono una ‘parentesi aperta’ annotata. Si definiscono le due abbreviazioni ‘rdf’ e ‘contact’, come equivalenti a ciò che segue l’uguale La corrispondente parentesi chiusa è l’ultima riga di quest’esempio <contact:Person rdf:about=”http://www.xyz.it/people#lele> Un’altra parentesi aperta: qui si dice che il referente di ‘contact’ è un professore, e a chi questa descrizione si riferisce (about) <contact:fullName>Leonardo Lesmo</contact:fullName> L’informazione ‘fullName’ è un literal (stringa) <contact:mailbox la ‘mailbox’, così come le due che seguono, sono invece risorse Web <contact:homepage rdf:resource=” <contact:workPlace rdf:resource=” </contact:Person> </rdf:RDF> Scienze Cognitive 2003

78 RDF schema RDF schema (rdfs) è un namespace, in cui sono definite alcune primitive ontologiche (es. subClassOf, subPropertyOf, Domain, Range, …) Ad esso ci si può riferire per definire delle semplici ‘ontologie locali’ Professore Persona Università Studente insegnaIn iscrittoA <rdf: RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmnls:rdfs=”http://www.w3.org/2000/01/rdf-schema#”> Le abbreviazioni per rdf e rdfs <rdf:Description rdf:ID=”Persona”> <rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#class”>”/> </rdf:Description> Introduzione della ‘class’ ‘Persona’ Scienze Cognitive 2003

79 </rdf:RDF> Fine delle descrizioni
<rdf:Description rdf:ID=”Professore”> <rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Class”>”/> <rdfs:subClassOf rdf:resource =”#Persona”>”/> </rdf:Description> <rdf:Description rdf:ID=”Studente”> <rdf:Description rdf:ID=”Università”> Introduzione delle classi ‘Professore’, ‘Studente’, e ‘Università’ (del tutto analoghe alla precedente, ma con introduzione dell’arco ‘subClassOf’) <rdf:Description rdf:ID=”iscrittoA”> <rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Property”>”/> <rdfs:domain rdf:resource =”#Studente”>”/> <rdfs:range rdf:resource =”#Università”>”/> </rdf:Description> <rdf:Description rdf:ID=”insegnaIn”> <rdfs:domain rdf:resource =”#Professore”>”/> Introduzione delle due ‘proprietà’ (ruoli, slot, relazioni) </rdf:RDF> Fine delle descrizioni Scienze Cognitive 2003

80 http://www.xyz.it/owlex (quello locale)
Situazione NAMESPACE type about resource Class Property NAMESPACE domain subClassOf range NAMESPACE fullName mailbox homePage NAMESPACE (quello locale) Persona Professore Studente Scienze Cognitive 2003

81 Non c’è un’ontologia generale (top-level)?
Esistono delle ontologie per alcuni domini applicativi (CIM: modelli di Electric Power Systems; GO: conoscenza su prodotti genetici) Nessuna ontologia generale disponibile, ma scrivere un’ontologia in RDF richiede molto lavoro; v. esempi precedenti. Quindi OWL is a vocabulary extension of RDF. Thus any RDF graph forms an OWL Full ontology. Further, the meaning given to an RDF graph by OWL includes the meaning given to the graph by RDF. OWL Full ontologies can thus include arbitrary RDF content, which is treated in a manner consistent with its treatment by RDF. OWL assigns an additional meaning to certain RDF triples. Scienze Cognitive 2003

82 Esempio di semplificazione in OWL
<rdf:Description rdf:ID=”Università”> <rdf:type rdf:resource =”http://www.w3.org/2000/01/rdf-schema#Class”>”/> </rdf:Description> <owl:Class rdf:ID=”Università”> NB. Versioni OWL Full OWL DL RDF OWL Lite OWL Full: Piena compatibilità con RDF. Inferenze inefficienti. OWL DL: (Description Logics) Semplificato per maggiore efficienza (es. LOOM) OWL Lite: Poco potere espressivo, prevalentemente didattico Scienze Cognitive 2003

83 Come si descrivono le classi in OWL
Un identificatore di classe <owl:Class rdf:ID=“Human”> Una enumerazione di individui <owl:Class> <owl:oneOf rdf:parseType=“Collection”> <owl:Thing rdf:about=“#Professore”/> <owl:Thing rdf:about=“#Studente”/> </owl:one of> </owl:Class> Una restrizione di proprietà <owl:Restriction> <owl:onProperty rdf:resource=“#iscrittoA” /> <owl:hasValue rdf:resource=“#UnivTorino”/> </owl:Restriction> Operatori come owl:hasValue sono owl:allValuesFrom e owl:someValueFrom . Vincoli sulla cardinalità si possono porre con owl:cardinality, owl:minCardinality e owl:maxCardinality Scienze Cognitive 2003

84 Come si descrivono le classi in OWL (2)
Una intersezione tra classi <owl:Class> <owl:intersectionOf rdf:parseType=“Collection”> <owl:class rdf:resource=“#UnivItaliana”/> <owl:class rdf:resource=“#EntePubblico”/> </owl:intersectionOf> </owl:Class> NB: OWL non ha la Unique Name Assumption, per cui l’intersezione tra “#PresidenteDellaRepubblica” e “#ResidenteDelQuirinale” è non-vuota Una unione tra classi (analogo all’esempio precedente, con owl:unionOf al posto di owl:intersectionOf) Il complemento di una classe (operatore owl:complementOf) Scienze Cognitive 2003

85 Assiomi di classe Gli assiomi di classe permettono di porre vincoli tra classi. Essi possono coinvolgere le relazioni: rdfs:subClassOf (che appartiene a RDF Schema) owl:equivalentClass e owl:disjointWith. <owl:Class rdf:ID=“DipendenteUniv”> <owl:intersectionOf rdf:parseType=“Collection”> <owl:restriction> <owl:onProperty rdf:resource=“#lavoraIn” <owl:hasValue rdf:resource=“#Università” </owl:restriction> <owl:complementOf rdf:resource=“#Dottorando”/> </owl:intersectionOf> <owl:equivalentClass> <owl:unionOf rdf:parseType=“Collection”> <owl:Class rdf:resource=“#Professore”> <owl:Class rdf:resource=“#TecnicoAmministrativo”> </owl:unionOf> </owl:Class> Un dipendente Universitario … … lavora all’Università … … ma non è un dottorando La classe dei dipendenti Universitari è equivalente … all’unione dei professori e del personale tecnico/ amministrativo… <owl:Class rdf:about=“Professore”> <owl:disjointWith rdf:resource=“# TecnicoAmministrativo”/> </owl:Class> Scienze Cognitive 2003

86 Relazioni tra proprietà
<owl:ObjectProperty rdf:ID=“insegnaCorso”> <owl:inverseOf rdf:resource=“# professoreDelCorso”/> </owl:ObjectProperty> Vincoli globali su proprietà <owl:FunctionalProperty rdf:about=“professoreDelCorso” /> <owl:TransitiveProperty rdf:ID=“stessoDipartimento”> <rdfs:domain rdf:resource=“#Professore”/> <rdfs:range rdf:resource=“#Professore”/> Istanze (individuals) <Professore rdf:ID=“Leonardo Lesmo”> <lavoraIn rdf:resource=“# UniversitàTorino”/> <insegnaCorso rdf:resource=“#ScienzeCognitive”> <insegnaCorso rdf:resource=“#ProgrammazioneII”> </Professore> Scienze Cognitive 2003

87 Reasoning OWL è un linguaggio di rappresentazione: non solo non fornisce un’ontologia completa (v. Cyc o SUMO), ma non fornisce neppure un reasoner (v. Loom) Esistono però degli strumenti che sono già stati interfacciati con OWL (più precisamente, col suo predecessore DAML+OIL) Un esempio di applicazione è un Wine Agent, realizzato al Knowledge Systems Laboratory dell’Università di Stanford. Essa è basata su un reasoner sviluppato in Java nella stessa sede: JTP Esempi Assert: (|http://www.w3.org/1999/02/22-rdf-syntax-ns#|::type |http://ra1.stanford.edu/wkb#|::|NEW-COURSE9| |http://ra1.stanford.edu/wkb#|::|PASTA-WITH-SPICY-RED-SAUCE-COURSE|) (|http://ra1.stanford.edu/wkb#|::|DRINK| |http://ra1.stanford.edu/wkb#|::|WINE9|) Scienze Cognitive 2003

88 Esempi di query Query: (|http://ra1.stanford.edu/wkb#|::|COLOR| |http://ra1.stanford.edu/wkb#|::|WINE9| ?x) > X = |http://ra1.stanford.edu/wkb#|::|RED| N.B. Le caratteristiche di Wine9 non sono state introdotte dall’utente ma determinate dal Wine Agent Query: (AND (|http://www.w3.org/1999/02/22-rdf-syntax-ns#|::type |http://ra1.stanford.edu/wkb#|::|CHATEAU-LAFITE-PAUILLAC| ?x) (|http://www.w3.org/2000/01/rdf-schema#|::|subClassOf| ?x |http://ra1.stanford.edu/wkb#|::|WINE|)) > X = |http://ra1.stanford.edu/wkb#|::|PAUILLAC| Scienze Cognitive 2003

89 Ontologia OWL? Oltre al meta-livello, due sole classi predefinite: owl:Thing e owl:Nothing. Ogni istanza è istanza di owl:Thing e ogni classe è sottoclasse di owl:Thing. Owl:Nothing è l’insieme vuoto. Definizione del concetto Thing <Class rdf:ID=”Thing”> <rdfs:label>Thing</rdfs:label> <unionOf rdf:parseType=”Collection”/> <Class rdf:about=”#Nothing”> <Class> <complementOf rdf:resource=”#Nothing”> </Class> </UnionOf> Definizione del concetto Class (meta-livello) <rdfs:Class rdf:ID=”Class”> <rdfs:label>Class</rdfs:label> <rdfs:subClassOf rdf:resource=”&rdfs;class”/> </rdfs:Class> Scienze Cognitive 2003

90 Conclusioni su OWL Un aggancio tra strumenti ontologici ed il WWW, nell’ottica di creare un Semantic Web VANTAGGI: - E’ una layer supplementare di strumenti quasi universalmente accettati e in uso - Sono disponibili vari livelli di potere espressivo SVANTAGGI: - Manca un reasoner incorporato - La sintassi (derivata da HTML e RDF) è pesante e poco leggibile Scienze Cognitive 2003

91 Conclusioni sulle Ontologie
Le ontologie sono uno strumento essenziale per l’interoperabilità e la comunicazione tra agenti Negli ultimi 10 anni una quantità impressionante di finanziamenti e attività di ricerca e sviluppo Molte proposte e sistemi, ma ancora nessuno standard; poichè un’ontologia è utile se è ampiamente condivisa, siamo ancora a metà strada Alcuni studiosi hanno forti dubbi sulla possibilità (e, forse, sull’opportunità culturale) di realizzare un’ontologia standard (difficoltà tecniche e salvaguardia di diversità culturali) ma Si tratta comunque di una strada obbligata Scienze Cognitive 2003

92 Riferimenti e Bibliografia
Da Fare Scienze Cognitive 2003


Scaricare ppt "ONTOLOGIE Scienze Cognitive 2003 Scienze Cognitive 2002/03."

Presentazioni simili


Annunci Google