Protégé-2000
Un tool per la creazione e sviluppo
di Ontologie e Basi di Conoscenza
protege.stanford.edu
1
Il modello di Protege
 Knowledge model
 Frame-based
 OKBC compatible
 Caratteristiche 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
2
Protégé: Componenti Principali
Ognuna delle componenti principali di Protégé
ha una interfaccia ben definita con il resto del sistema ed è
perfettamente sostituibile da componenti analoghe
Knowledge
model
Storage
model
User
interface
3
Gli elementi di Protégé-2000
Form
personalizzabili
Facets
Slots
Rappresen
tazione di
grandi
data set
standard e
user-defined
Instanze
Classi
e gerarchie
di classi
Componenti
per lo sviluppo
di Applicazioni
basate su
conoscenza
Easy
browsing
Domainspecific
tabs
Custom
widgets
4
Sviluppo di una base di conoscenza:
l’approccio Protégé
R
C2
C1
C3
C4
Protégé
C5
Ontologia di dominio
Strumento di Acquisizione della
Conoscenza
5
Protégé: una visione d’insieme
Class Tab
6
Editing di Attributi e Concetti
7
Popolamento della base di conoscenza
8
Sviluppo di una Ontologia
 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
9
Sviluppo di una Ontologia (2)
 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
10
Sviluppo di una Ontologia (3)
 Tra le possibili alternative, occorre quindi
favorire, quelle che:
 Si adattano meglio all’obiettivo (task) che la
nostra applicazione deve perseguire.
 Siano maggiormente:
 Intuitive
 Estensibili
 Di facile Manutenzione
11
Un esempio guidato per lo
sviluppo di una:
Ontologia di
Vini Francesi
12
Sviluppo dell’Ontologia:
Processing Steps
 Step 1. Determinare il dominio di
applicazione 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?
13
Sviluppo dell’Ontologia:
Processing Steps
 Step 2: considerare l’ipotesi di riusare ontologie (o
semplici classificazioni) già esistenti
 (www.wines.com, www.daml.org/ontologies)
 Step 3: Enucleare i termini più importanti nel
dominio 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..
14
Sviluppo dell’Ontologia:
Processing Steps
 Step 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
15
Sviluppo dell’Ontologia:
Processing Steps
 Step 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
16
Sviluppo dell’Ontologia:
Processing Steps
 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
17
Sviluppo dell’Ontologia:
Processing Steps
 Step 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
18
Sviluppo dell’Ontologia:
Processing Steps
 Step 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.
19
Sviluppo dell’Ontologia:
Processing Steps
 Step 7: Creazione delle Istanze
 Problema Amletico: Istanza o Classe?
20
Customizzazione di Protégé:
l’esperienza CROSSMARC
 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 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
21
Crossmarc: Ontology Editor Tab
22
Crossmarc: Template Editor Tab
23
Crossmarc: Lexicon Editor Tab
24
Crossmarc: Import/Export Tab
25
XI_to_Protégé: un tool di esportazione
 “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:
 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.
26
Esercizio
 Problema (generico):
 riconoscere alcuni elementi “interessanti” all’interno
di un testo scritto in linguaggio naturale
 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.
27
Esercizio
 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:
 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.
28
Esercizio (Prolog)
Definire un predicato:
testo_etichettato_semanticamente(TEXT,TEXT_S
EM)
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
29
Esercizio (Prolog)
 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>
30
Esercizio (XML+XSL)
Trasformare il testo ottenuto in
precedenza in un testo XHTML tale
che le parole etichettate
semanticamente siano evidenziate
in bold
31
Scarica

Protege