31
1 Protégé-2000 Protégé-2000 Un tool per la creazione Un tool per la creazione e sviluppo di Ontologie e sviluppo di Ontologie e Basi di Conoscenza e Basi di Conoscenza protege.stanford.edu protege.stanford.edu

1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

Embed Size (px)

Citation preview

Page 1: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

1

Protégé-2000Protégé-2000

Un tool per la creazione e sviluppo Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenzadi Ontologie e Basi di Conoscenza

protege.stanford.eduprotege.stanford.edu

Page 2: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

2

Il modello di ProtegeIl modello di Protege Knowledge modelKnowledge model

Frame-based OKBC compatible

Caratteristiche principaliCaratteristiche principali Un editor per creare, visualizzare, gestire, e

mantenere basi di conoscenza (KBs) API per un accesso universale a KB Una interfaccia utente (GUI) estensibile Diversi formalismi di rappresentazione della

conoscenza

Page 3: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

3

Protégé: Componenti PrincipaliProtégé: Componenti PrincipaliOgnuna delle componenti principali di Protégé

ha una interfaccia ben definita con il resto del sistema ed è perfettamente sostituibile da componenti analoghe

Storagemodel

Storagemodel

Userinterface

Userinterface

Knowledgemodel

Knowledgemodel

Page 4: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

4

Gli elementi di Protégé-2000Gli elementi di Protégé-2000

SlotsSlots

Classi e gerarchie

di classi

Classi e gerarchie

di classi

Facetsstandard e

user-defined

Facetsstandard e

user-definedInstanzeInstanze

Formpersonalizzabili

Formpersonalizzabili

Easybrowsing

Easybrowsing

Rappresentazione di

grandidata set

Rappresentazione di

grandidata set

CustomwidgetsCustomwidgets

Domain-specific

tabs

Domain-specific

tabsComponenti

per lo sviluppodi Applicazioni

basate su conoscenza

Componentiper lo sviluppodi Applicazioni

basate su conoscenza

Page 5: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

5

Protégé

Ontologia di dominio

Strumento di Acquisizione della Conoscenza

Sviluppo di una base di conoscenza: Sviluppo di una base di conoscenza: l’approccio Protégél’approccio Protégé

R

C1 C2

C3 C4

C5

Page 6: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

6

Protégé: una visione d’insiemeProtégé: una visione d’insieme

Class Tab

Page 7: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

7

Editing di Attributi e ConcettiEditing di Attributi e Concetti

Page 8: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

8

Popolamento della base di conoscenzaPopolamento della base di conoscenza

Page 9: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

9

Sviluppo di una OntologiaSviluppo di una Ontologia

Approccio pratico:Approccio pratico: Definire le classi della ontologia Disporre le classi secondo una gerarchia

tassonomica Definire gli attributi e i valori ammissibili per

ognuno di essi Specificare quali classi hanno quali attributi e

definire delle restrizioni specifiche sui valori ammessi da tali attributi

Page 10: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

10

Sviluppo di una Ontologia (2)Sviluppo di una Ontologia (2)

Approccio ingegneristico:Approccio ingegneristico:

Analisi del dominio da rappresentare, mediante consultazione di esperti del settore

Non esiste un modo unico e corretto per modellare un dominio: criteri di scelta del dominio

Approccio iterativo allo sviluppo della ontologia

Page 11: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

11

Sviluppo di una Ontologia (3)Sviluppo di una Ontologia (3)

Tra le possibili alternative, occorre quindi Tra le possibili alternative, occorre quindi favorire, quelle che:favorire, quelle che: Si adattano meglio all’obiettivo (task) che la

nostra applicazione deve perseguire. Siano maggiormente:

Intuitive Estensibili Di facile Manutenzione

Page 12: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

12

Un esempio guidato per lo Un esempio guidato per lo sviluppo di una:sviluppo di una:

Ontologia diOntologia di

Vini FrancesiVini Francesi

Page 13: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

13

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 1. Determinare il dominio di Step 1. Determinare il dominio di applicazione dell’ontologiaapplicazione dell’ontologia Quale sarà la copertura del dominio che

l’ontologia dovrà offrire? Per quale motivo vogliamo usare l’ontologia? Per quale tipo di interrogazioni l’ontologia

dovrebbe fornire delle risposte? Chi userà e manterrà l’ontologia?

Page 14: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

14

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 2: considerare l’ipotesi di riusare ontologie (o Step 2: considerare l’ipotesi di riusare ontologie (o semplici classificazioni) già esistentisemplici classificazioni) già esistenti (www.wines.com, www.daml.org/ontologies)

Step 3: Enucleare i termini più importanti nel Step 3: Enucleare i termini più importanti nel dominio che dovrebbero comparire nell’ontologiadominio che dovrebbero comparire nell’ontologia vino, uva, produttore, locazione, colore del vino,

corposità, sapore, contenuto di zuccheri etc.. Tipi differenti di cibo, come “pesce” o “carne rossa”; Sottotipologie di vini: come vino bianco, rosso etc..

Page 15: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

15

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 4: Definire le classi e la gerarchia delle classiStep 4: Definire le classi e la gerarchia delle classi Approccio:

Top-Down Bottom-Up Ibrido

Regola d’oro: Se una classe A è una

superclasse di una classe B,

allora ogni istanza di B è anche

istanza di A

Page 16: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

16

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 5: Definire le proprietà delle classi-slotStep 5: Definire le proprietà delle classi-slot Proprietà intrinseche: come il sapore del vino Proprietà estrinseche: come il nome del vino o la zona da

cui proviene Parti: se l’oggetto è strutturato; queste possono essere sia

concrete che astratte Relazioni che coinvolgono istanze della classe e altri

oggetti dell’ontologia: “produttore” lega una cantina ad un determinato vino “Uva” lega un determinato tipo di vino con l’uva da cui esso è

prodotto

Page 17: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

17

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 5 (bis):Step 5 (bis): Ogni Template-slot di una classe viene ereditato

dalle sue sottoclassi (overriding degli slot) Scelta di quale classe detiene originariamente lo slot

Page 18: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

18

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 6: Definire le “facets” di uno slotStep 6: Definire le “facets” di uno slot Tipi di facets di uno slot:

Value Type– String– Integer– Float– Boolean– Symbol (Enumerated)– Instance– Class

Allowed values Cardinality Inverse Slot? Altre (possibili) caratteristiche dello slot

Page 19: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

19

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 6 (bis): Facets: Dominio e Range di uno slotStep 6 (bis): Facets: Dominio e Range di uno slot Rappresentano rispettivamente l’insieme di classi cui uno slot è

attaccato, e l’insieme di classi cui uno slot può far riferimento; è importante: Trovare le classi più generiche che possano rappresentare dominio e range

di uno slot, d’altro canto, non definire mai domini/range eccessivamente generici

Se una lista di classi che definisce un range/dominio di uno slot include una classe e una sua sottoclasse, rimuovere la sottoclasse (ridondanza di informazione)

Se una lista di domain/range classes di uno slot contiene tutte le sottoclassi si una classe A ma non la classe stessa, eliminare tutte le classi e inserire la classe stessa A.

Se una lista di domain/range classes di uno slot contiene quasi tutte le sottoclassi di una classe, domandarsi se non sia più appropriato inserire la loro superclasse.

Page 20: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

20

Sviluppo dell’Ontologia: Sviluppo dell’Ontologia: Processing StepsProcessing Steps

Step 7: Creazione delle IstanzeStep 7: Creazione delle Istanze

Problema Amletico: Istanza o Classe?Problema Amletico: Istanza o Classe?

Page 21: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

21

Customizzazione di Protégé:Customizzazione di Protégé:l’esperienza CROSSMARCl’esperienza CROSSMARC

Il progetto CROSSMARC – Obiettivi:Il progetto CROSSMARC – Obiettivi: sviluppare un motore di ricerca intelligente che permetta

confronti di prezzo e qualità tra prodotti di vario genere venduti nella rete

Capacità di gestire pagine HTML provenienti da differenti paesi e scritte in diversi linguaggi

Customizzazione di Protégé in ambito CrossmarcCustomizzazione di Protégé in ambito Crossmarc Creazione di diversi Tab adatti agli scopi di Crossmarc Gestione di Lessici in vari linguaggi Import/Export delle ontologie nel formalismo XML

adottato in CROSSMARC Utilizzo di UTF-8 come sistema di codifica dei caratteri

Page 22: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

22

Crossmarc: Ontology Editor TabCrossmarc: Ontology Editor Tab

Page 23: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

23

Crossmarc: Template Editor TabCrossmarc: Template Editor Tab

Page 24: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

24

Crossmarc: Lexicon Editor TabCrossmarc: Lexicon Editor Tab

Page 25: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

25

Crossmarc: Import/Export TabCrossmarc: Import/Export Tab

Page 26: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

26

XI_to_Protégé: un tool di esportazioneXI_to_Protégé: un tool di esportazione ““Fileografia”: Fileografia”:

Cartella XI– disint_utils.pl– mario.txt– sicstus_utils.pl– xi.pl– xi_compile.pl– xi_io.pl– xi_loader.pl

File xi_to_protege.pl

File piccola_ontologia.pl

Uso:Uso: Eseguire consult di:

– xi_loader.pl (che provvederà a caricare il resto dello xi_model)– piccola_ontologia.pl– xi_to_protege

Chiamare il predicato start Attendere che i tre file di Protégé con estensioni .pprj .pins .pont siano

creati.

Page 27: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

27

EsercizioEsercizio

Problema (generico): Problema (generico): riconoscere alcuni elementi “interessanti” all’interno

di un testo scritto in linguaggio naturale

Soluzione:Soluzione: Costruzione di una ontologia, a partire da una

semplice lista di elementi “interessanti” Individuazione dei referenti lessicali agli oggetti

definiti nell’ontologia, all’interno del testo fornito.

Page 28: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

28

EsercizioEsercizio

Elementi a disposizione (nel nostro caso):Elementi a disposizione (nel nostro caso): Foglio Excel con elenco degli elementi da individuare Testo tokenizzato da cui estrarre informazione Modello di rappresentazione ontologica XI

Passi da seguire:Passi da seguire: Creare una ontologia - secondo il formalismo di XI -

che rappresenti tutte le entità individuate Esportare l’ontologia in Protégé al fine di verificarne

visivamente la consistenza Creare una lista degli elementi estratti dal testo.

Page 29: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

29

Esercizio (Prolog)Esercizio (Prolog)

Definire un predicato:Definire un predicato:testo_etichettato_semanticamente(TEXT,TEXT_SEM)

che sia vero se:che sia vero se:TEXT è una Lista [w1,w2,…,wn]

TEXT_SEM è una Lista [s1,s2,…,sn] dove:

a) si = sem_class(wi) se wi generalizza nella gerarchia nella classe sem_class (una classe delle classi ritenute importanti)

b) si = wi altrimenti

Page 30: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

30

Esercizio (Prolog)Esercizio (Prolog)

Definire un predicato:Definire un predicato:testo_stampato_in_XML(TEXT_SEM)Che sia vero se TEXT_SEM è stato stampato su stdout nel

seguente formato:<TEXT>…<element class=“classe_xi”> wi </element>…wj…</TEXT>

Page 31: 1 Protégé-2000 Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza protege.stanford.edu

31

Esercizio (XML+XSL)Esercizio (XML+XSL)

Trasformare il testo ottenuto in Trasformare il testo ottenuto in precedenza in un testo XHTML tale precedenza in un testo XHTML tale che le parole etichettate che le parole etichettate semanticamente siano evidenziate semanticamente siano evidenziate in boldin bold