1. INGEGNERIA DELLA
CONOSCENZA
2018/2019
A cura dello studente: Antonio Tandoi
Professore: Prof. Floriano Scioscia
Materiale di riferimento: Dispensa fornita dal prof. Floriano Scioscia
2.
3. i
SOMMARIO
CAPITOLO 1: INTRODUZIONE .....................................................................................1
1.1 TIPI DI CONOSCENZA......................................................................................................................................................1
1.2 FONTI DI CONOSCENZA............................................................................................................................................... 2
1.3 RUOLO DELLA CONOSCENZA NEI SISTEMI INFORMATICI............................................................................... 2
Prima fase (1956 – 1965): L’intelligenza artificiale e la risoluzione automatica di problemi...................... 2
Seconda fase (1965 – 1975): La rappresentazione della conoscenza ................................................................ 3
Terza fase (1975 – 1985): L’ingegneria della conoscenza e i sistemi esperti .................................................. 3
Quarta fase (1985 – 1995): La crisi e la ricerca di strade alternative................................................................. 3
Quinta fase (1995 – ): LI web e le ontologie............................................................................................................... 3
CAPITOLO 2: WEB SEMANTICO................................................................................. 5
Centralita’ dei dati.............................................................................................................................................................5
Interoperabilita’ interna...................................................................................................................................................6
Interoperabilita’ esterna e sistemi aperti...................................................................................................................6
2.1 IL WEB SEMANTICO........................................................................................................................................................ 7
2.2 IL TRIANGOLO ARISTOTELICO .................................................................................................................................. 7
CAPITOLO 3: RAPPRESENTAZIONE DELLA CONOSCENZA ...................................9
3.1 linguaggi di rappresentazione .....................................................................................................................................9
CAPITOLO 4: MODELLI DI RAPPRESENTAZIONE................................................... 13
4.1 SISTEMI PER LA RAPPRESENTAZIONE DELLE CONOSCENZE........................................................................ 14
CAPITOLO 5: TERMINI E ONTOLOGIE..................................................................... 15
5.1 SEMANTICA DEI TERMINI............................................................................................................................................ 16
5.2 ALTRI OPERATORI .........................................................................................................................................................17
5.3 TERMINI BASATI SU RUOLI..........................................................................................................................................17
CAPITOLO 6: RUOLI................................................................................................... 19
6.1 TERMINI CON RUOLI..................................................................................................................................................... 19
6.2 INVERSIONE DEI RUOLI...............................................................................................................................................20
6.3 DOMINIO E CODOMINIO............................................................................................................................................20
6.4 I RUOLI FUNZIONALI.....................................................................................................................................................21
CAPITOLO 7: ASSERTION BOX ................................................................................ 23
7.1 SUSSUNZIONE.................................................................................................................................................................23
7.2 NOMINALI E TERMINI ENUMERATIVI......................................................................................................................23
7.3 ASSERTION BOX............................................................................................................................................................24
CAPITOLO 8: LINGUAGGIO OWL............................................................................25
8.1 DESCRIZONE DI CLASSI ..............................................................................................................................................25
4. ii
Identificatore.....................................................................................................................................................................26
Enumerazione....................................................................................................................................................................26
Restrizioni di proprieta’..................................................................................................................................................26
Intersezione .......................................................................................................................................................................26
Unione..................................................................................................................................................................................26
Complemento....................................................................................................................................................................26
8.2 ASSIOMI DI CLASSE......................................................................................................................................................27
Sottoclassi..........................................................................................................................................................................27
Equivalenza ........................................................................................................................................................................27
Disgiunzione ......................................................................................................................................................................27
8.4 PROPRIETA’.....................................................................................................................................................................27
Identificatore di proprieta’ ...........................................................................................................................................28
Range ...................................................................................................................................................................................28
Sottoproprieta’ .................................................................................................................................................................28
Proprietà equivalente .....................................................................................................................................................28
Proprieta’ inversa.............................................................................................................................................................28
Simmetria ...........................................................................................................................................................................29
Transitivita’........................................................................................................................................................................29
8.5 INDIVIDUI E FATTI .........................................................................................................................................................29
Appartenenza a una classe e valori di una proprietà............................................................................................29
Identità ................................................................................................................................................................................29
8.6 SHOIN............................................................................................................................................................................... 30
CAPITOLO 9: CONSEGUENZE LOGICHE ................................................................ 31
9.1 COMPITI DI RAGIONAMENTO RELATIVI ALLE TBOX........................................................................................32
Riduzione dei compiti di ragionamento alla sussunzione....................................................................................33
Riduzione dei compiti di ragionamento alla soddisfacibilità..............................................................................33
9.2 LA PROCEDURA SAT....................................................................................................................................................34
CAPITOLO 10: ASSERZIONI...................................................................................... 37
10.1 COMPITI DI RAGIONAMENTO RELATIVI ALLE ABOX.....................................................................................38
10.2 RIDUZIONE ALLA SODDISFACIBILITA’ DEI COMPITI DI RAGIONAMENTO RELATIVI ALL’ABOX ...38
CAPITOLO 11: ANALISI SEMANTICA........................................................................39
11.1 NOMI, CLASSE, ISTANZE........................................................................................................................................... 40
11.2 LE TASSONOMIE ..........................................................................................................................................................43
Tassonomie di classi........................................................................................................................................................43
Tassonomie di tipi ........................................................................................................................................................... 44
7. Antonio Tandoi Ingegneria della conoscenza
1
CAPITOLO 1: INTRODUZIONE
Cosa significa fare un’ingegneria della conoscenza? La conoscenza è dell’informazione
disponibile per un’azione razionale. Nei computer risiedono grandi quantità di
informazioni, ma solo una piccola parte di queste può essere sfruttata dagli stessi computer
per agire: basti pensare alla miriade di documenti contenuti nel Web, la maggior parte dei
quali può essere utilizzata soltanto dagli esseri umani.
L’obiettivo, dunque, è esplorare la possibilità di automatizzare azioni conoscitive
che, ad oggi, richiedono l’intervento umano.
1.1 TIPI DI CONOSCENZA
Una prima grande suddivisione che è possibile fare è tra conoscenze dichiarative e
conoscenze procedurali, ossia tra conoscere (know that) e saper fare (know how). A
sua volta, il know that può essere diviso in tre parti:
• conoscenze terminologiche: per esempio, che “essere una madre” significa
“essere una donna con almeno un figlio”
• conoscenze fattuali: conoscenza di fatti particolari; per esempio “Bruno è
figlio di Anna”
• conoscenze nomologiche: ossia, conoscenze di regolarità, di leggi generali che
regolano il mondo; per esempio, “le madri sono sempre più anziane dei loro
figli”
Un caso apparentemente diverso è costituito dalla conoscenza di individui; per esempio,
“conosco Barbara”. Anche in questo caso si tratta di conoscenze fattuali, più precisamente
di un insieme, spesso, molto ampio di conoscenze fattuali relative a uno specifico
individuo.
8. CAPITOLO 1: INTRODUZIONE
2
1.2 FONTI DI CONOSCENZA
Le conoscenze provengono da qualche fonte. Le più ovvie sono:
• l’esperienza diretta
• il ragionamento; esso può essere deduttivo (dalle premesse alle conclusioni),
abduttivo (dagli effetti alle possibili cause), induttivo (da fatti specifici a regole
generali)
• la comunicazione, ossia l’uso del linguaggio parlato e scritto
Qualunque sia la fonte, è necessaria la memoria, nel senso di capacità di conservare nel
tempo elementi di conoscenza e soprattutto di reperirli con efficienza quando
occorre farne uso.
1.3 RUOLO DELLA CONOSCENZA NEI SISTEMI INFORMATICI
Le conoscenze servono per:
• interpretare la realtà ossia capire cosa è successo
• prevedere l’evoluzione della realtà ossia prevedere con approssimazione
accettabile come andranno le cose
• agire in modo razionale modificando la realtà ossia costruire piani d’azione per
raggiungere determinati obiettivi
In un sistema informatico, di questo argomento si è sempre occupata l’intelligenza artificiale:
è quindi utile traccia una storia minima di quest’area dell’informatica.
PRIMA FASE (1956 – 1965): L’INTELLIGENZA ARTIFICIALE E LA
RISOLUZIONE AUTOMATICA DI PROBLEMI
L’intelligenza artificiale nasce nel 1956 con l’obiettivo di progettare sistemi in grado di
risolvere problemi automaticamente. All’inizio l’attenzione è rivolta soprattutto alla ricerca
di metodi per la risoluzione automatica di problemi mediante strategia per
tentativi ed errori (trial and error)
9. Antonio Tandoi Ingegneria della conoscenza
3
SECONDA FASE (1965 – 1975): LA RAPPRESENTAZIONE DELLA
CONOSCENZA
La capacità di risolvere problemi dipende in modo essenziale dalle conoscenze a disposizione.
Il problema principale diventa rappresentare le conoscenze in modo che un
programma possa effettivamente utilizzarle; nasce quindi un grande interesse per i
metodi di rappresentazione delle conoscenze (KR). Si sviluppa la controversia fra i
sostenitori delle rappresentazioni dichiarative e i sostenitori delle rappresentazioni
procedurali.
In ambedue i casi, comunque, l’approccio adottato è simbolico, nel senso che le conoscenze
sono rappresentate tramite strutture dati contenenti simboli.
TERZA FASE (1975 – 1985): L’INGEGNERIA DELLA
CONOSCENZA E I SISTEMI ESPERTI
Ci si sposta verso applicazioni realistiche e d’interesse industriale. Aumenta l’interesse
economico verso i sistemi esperti e nasce l’ingegneria della conoscenza (KE).
Rappresentazioni dichiarative e procedurali convivono negli stessi sistemi basati su
conoscenze.
QUARTA FASE (1985 – 1995): LA CRISI E LA RICERCA DI
STRADE ALTERNATIVE
Crolla la fiducia nel mercato della KE, anche a causa di un incauto overselling e
dell’impossibilità di soddisfare le aspettative. Si indagano approcci alternativi denominati
“supersimbolici” o “non simbolici”, in contrasto con l’approccio simbolico tradizionale.
Questi metodi si rivelano spesso più adatti dei metodi simboli per certi tipi di problemi ma
non possono eliminare la necessità di rappresentare le conoscenze simboliche in
molte applicazioni.
QUINTA FASE (1995 – ): IL WEB E LE ONTOLOGIE
Il grande successo del Web riporta in prima linea la questione della rappresentazione
simbolica delle conoscenze. In questo campo i problemi più sentiti sono l’interoperabilità
delle applicazioni e la gestione delle risorse in rete. Il concetto fondamentale è quello
di ontologia.
11. Antonio Tandoi Ingegneria della conoscenza
5
CAPITOLO 2: WEB SEMANTICO
Le applicazioni più diffuse, a partire dal 1975, sono i sistemi esperti. Un sistema esperto è
un sistema software in grado di risolvere problemi utilizzando conoscenze
specialistiche; applicazioni tipiche sono l’analisi di grandi volumi di dati, la diagnosi di
guasti di impianti industriali, la diagnosi medica, la configurazione di sistemi informatici
complessi, il progetto industriali, la pianificazione della produzione e così via.
In certi casi, l’adozione di sistemi esperti ha permesso di automatizzare attività complesse là
dove tecniche informatiche più tradizioni avevano fallito. Tuttavia i sistemi esperti non sono
mai diventati prodotti di grande diffusione, per almeno due ragioni:
• lo sviluppo di un sistema esperto è un’impresa lunga e costosa
• i sistemi esperti richiedono una notevole competenza anche per l’uso e
soprattutto per il mantenimento
A partire dagli anni ’80 ha cominciato, però, a profilarsi un altro settore di grande interesse
per l’ingegneria della conoscenza: il Web Semantico. Prima di questo concetto, verrà
tracciata una breve descrizione di alcuni fattori che influenzano il progresso dell’informatica.
CENTRALITA’ DEI DATI
Qualsiasi applicazione informatica è costituita da dati e programmi; le due componenti
non hanno, tuttavia, lo stesso peso in applicazioni di tipo differente.
Consideriamo come primo esempio un’applicazione per la simulazione di sistemi dinamici. In
un caso del genere, i dati si possono ridurre a un vettore che rappresenti lo stato iniziali del
sistema e all’assegnamento di un valore a un piccolo numeri di parametri di sistema. Per
ottenere risultati di qualità, naturalmente, sono estremamente critici gli algoritmi utilizzati
per la simulazione; ci si trova, dunque, di fronte a un tipo di applicazione che potremmo
denominare centrata sul processo (process-centered).
Un esempio molto diverso è costituito dalle applicazioni che si fondano sull’utilizzo di basi
di dati. In questo caso, l’informazione utile risiede essenzialmente nei dati. Le applicazioni
di questo tipo possono essere denominate centrate sui dati (data-centered).
12. CAPITOLO 2: WEB SEMANTICO
6
Queste ultime sono più diffuse in termini percentuali; lo stesso Web si presenta
essenzialmente come un colossale archivio di dati interrogato quotidianamente da milioni di
utenti.
INTEROPERABILITA’ INTERNA
All’interno di una singola azienda è possibile raggiungere un buon livello di interoperabilità
utilizzando tecnologie basate su XML; in particolare, le tecnologie basate su XML
consentono di sviluppare intranet aziendali integrando i dati e i servizi Web
rivoluti verso l’interno dell’azienda.
INTEROPERABILITA’ ESTERNA E SISTEMI APERTI
Per realizzare applicazioni aperte a livello di Internet, le tecnologie basate su XML sono oggi
necessarie ma non sufficienti. Per essere realmente “aperto”, un sistema informatico deve
poter essere scoperto e utilizzato da un’applicazione remota senza bisogno
dell’intervento umano: a questo scopo XML non è sufficiente perché codifica e
standardizza la sintassi dei dati (ovvero la loro struttura) ma non la loro semantica
(ovvero il loro significato).
Per esempio:
Un documento XML può codificare il prezzo di un prodotto con la stringa
<prezzo> 85 </prezzo>
mentre un altro documento può codificare la stessa informazione con la
stringa
<costo> 85 </costo>
Non è ovviamente possibile per un’applicazione informatica scoprire che si
tratta di due diverse codifiche della stessa informazione, a meno che non sia
disponibile la conoscenza che prezzo e costo sono sinonimi, almeno nel
contesto dell’applicazione in oggetto.
Non è azzardato, a questo punto, passare alla seguente conclusione: l’interoperabilità in un
ambiente aperto richiede che le applicazioni possano accedere a un repertorio di conoscenze
comuni e siano in grado di sfruttare tali conoscenze in modo autonomo.
13. Antonio Tandoi Ingegneria della conoscenza
7
2.1 IL WEB SEMANTICO
L’idea di Semantic Web è molto semplice: perché possano essere elaborato in modo
completamente automatico, non è sufficiente che i dati sul Web abbiano una struttura
chiaramente definita: è anche necessario che i dati abbiano un significato condiviso dalla
comunità che li utilizza.
2.2 IL TRIANGOLO ARISTOTELICO
L’idea di Semantic Web, dunque, è centrata sull’assegnazione di un significato ai dati
presenti sul Web. Il concetto di significato, a sua volta, chiama in causa il rapporto tra
linguaggio e realtà.
Come sappiamo, molti termini del linguaggio corrispondono a entità del mondo reale; ad
esempio, il termine “sedia” può corrispondere all’insieme (o classe) di tutte le sedie oppure
a una sedia specifica (un individuo membro dell’insieme delle sedie). La relazione fra
linguaggio e realtà (e quindi fra il termine “sedia” e l’insieme delle sedie concrete) è detta
semantica.
Secondo una tradizione antica, il rapporto fra linguaggio e realtà non è diretto, ma è mediato
dai concetti: chi parla riesce a collegare la parola “sedia” alle sedie reali proprio perché
possiede un concetto di sedia. In altre parole, la relazione fra linguaggio e realtà è
mediata dalla mente. Più precisamente, è necessario distinguere fra:
• il termine “sedia”
• l’insieme di tutte le sedie che esistono nella realtà (l’estensione del termine
“sedia”)
• il concetto di “sedia” così come è rappresentato nella mente degli esseri umani
(l’estensione del temine “sedia”)
15. Antonio Tandoi Ingegneria della conoscenza
9
CAPITOLO 3: RAPPRESENTAZIONE DELLA
CONOSCENZA
Il problema, a questo punto, è come rappresentare le conoscenze in un formato che sia
computer readable. Il paradigma di riferimento per la KR dichiarativa è la logica
(simbolica o formale), con particolare riguardo alla logica dei predicati di primo ordine
(FOL – First Order Logic).
Nella FOL si assume che tutte le rappresentazioni riguardino un insieme non vuoto di
individui, detto dominio. Di questi individui possiamo rappresentare proprietà oppure
relazioni che si leghino fra loro. Da questo punto di vista, un fatto è semplicemente
il sussistere di una proprietà di un determinato individuo (“Barbara è bionda”)
oppure il sussistere di una relazione fra più individui (“Alberto è più alto di
Barbara”). Nei sistemi di KR esaminati, sussiste l’ulteriore limitazione relativa al fatto che
le relazioni considerate sono esclusivamente binarie.
3.1 LINGUAGGI DI RAPPRESENTAZIONE
Si parla, dunque, di sistemi per la rappresentazione delle conoscenze (KRS). Ogni
KRS ha due componenti principali: un linguaggio per la rappresentazione di
conoscenze e un insieme di procedure di ragionamento.
Un linguaggio per la rappresentazione di conoscenze è un linguaggio formale le cui espressioni
sono utilizzate per rappresentare elementi di conoscenza.
Per esempio:
Si vuole rappresentare il significato del termine “madre” come “donna con
almeno un figlio”. Per utilizzare una FOL, si parafrasa la definizione come:
(𝑥𝑥 è 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚)𝑠𝑠𝑠𝑠 𝑒𝑒 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑠𝑠𝑠𝑠 (𝑥𝑥 è 𝑢𝑢𝑢𝑢𝑢𝑢 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑒𝑒𝑒𝑒 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑢𝑢𝑢𝑢 𝑦𝑦 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑐𝑐ℎ𝑒𝑒 𝑦𝑦 è 𝑓𝑓𝑓𝑓 𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓 𝑑𝑑𝑑𝑑 𝑥𝑥)
Ossia:
∀𝑥𝑥 �𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝑥𝑥) ⇔ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥) ∧ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝑥𝑥, 𝑦𝑦)�
16. CAPITOLO 3: RAPPRESENTAZIONE DELLA CONOSCENZA
10
In CL (Common Language Standard), la stessa definizione apparirebbe come:
(forall (?x)
(iff (MADRE ?x)
(and (DONNA ?x)
(exists (?y) (FIGLIO ?x ?y)))))
Le espressioni possono anche essere scritte in un formato adatto allo scambio
dei dati fra applicazioni software: si tratta di documenti strutturati secondo
un opportuno schema XML. Alla formula precedente, dunque, corrisponde il
documento XML:
<formula>
<forall>
<varlist> <var> x </var> </varlist>
<iff>
<atom>
<con> MADRE </con> <var> x </var>
</atom>
<and>
<atom>
<con> DONNA </con> <var> x </var>
</atom>
<exists>
<varlist> <var> y </var> </varlist>
<atom>
<con> FIGLIO </con>
<var> x </var> <var> y </var>
</atom>
</exists>
</and> </iff>
</forall>
</formula>
17. Antonio Tandoi Ingegneria della conoscenza
11
Nella logica, la semantica delle espressioni è definita utilizzando modelli insiemistici e
la stessa via può essere seguita per le altre notazioni utilizzate. Alternativamente,
è possibile assegnare una traduzione dalle notazioni non classiche alla notazione classica e
contare poi sul fatto che la notazione classica abbia una semantica precisamente definita.
Nel contesto in cui ci si sta muovendo, per ragionamento si intende il ragionamento
deduttivo o deduzione. Una dedizione è un processo che fa passare da alcune
espressioni (dette premesse o ipotesi) a un’espressione (detta conclusione o tesi), in
modo tale da conservare l’eventuale verità delle premesse: in altre parole, se le premesse
sono vere, lo sarà anche la conclusione.
Per esempio:
Dati come premesse la definizione di “MADRE”, il fatto che Anna sia una
“DONNA”, il fatto che Bruno sia “FIGLIO” di Anna, si può dedurre come
conclusione che Anna è una “MADRE”.
In FOL, la deduzione può essere rappresentata in diversi modi, ad esempio
tramite la prova seguente (il seguente metodo di prova utilizzato è noto come
calcolo della deduzione naturale; l’ultima riga della prova è la conclusione):
1. ∀𝑥𝑥 �𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝑥𝑥) ⇔ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥) ∧ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝑥𝑥, 𝑦𝑦)� – premessa
2. 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) – premessa
3. 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵) – premessa
4. 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) ⇔ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) ∧ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝑦𝑦) – da 1, per
eliminazione di ∀
5. ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝑦𝑦) – da 3, per introduzione di ∃
6. 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥) ∧ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝑥𝑥, 𝑦𝑦) – da 2 e 3, per introduzione di ∧
7. 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) – da 4 e 6, per eliminazione di ⇔
Utilizzando FOL, si possono esprimere conoscenze molto articolate e, almeno in linea di
principio, eseguire in modo automatico ragionamenti complessi. Ci sono, tuttavia,
due problemi. Il primo è che in FOL, la procedura di deduzione non è una procedura
di decisione ma soltanto di semidecisione. Ciò significa che:
• quando la conclusione è deducibile dalle premesse, essa arriva in un numero finito di
passi
• quando la conclusione non è deducibile dalle premesse, la procedura non
termina e il sistema può entrare in loop
18. CAPITOLO 3: RAPPRESENTAZIONE DELLA CONOSCENZA
12
Il secondo è che, anche nei casi in cui termina, la procedura è molto costosa
computazionalmente.
Entrambi i problemi dipendono dalla notevole espressività di FOL: come è naturale, più un
linguaggio di rappresentazione è espressivo, più sono complesse le procedure di
ragionamento basate su di esso. Molte ricerche nel campo dei linguaggi di KR hanno
l’obiettivo di identificare un sottolinguaggio di FOL tale che:
• il linguaggio sia comunque abbastanza espressivo per le applicazioni
• la deduzione si basi su una procedura di decisione
• la procedura di deduzione abbia complessità accettabile
I sistemi di questo tipo hanno preso il nome di logiche descrittive (Description Logic).
Le DL utilizzando una sintassi semplificata rispetto a FOL.
Per esempio:
La corrispondenza tra FOL e DL, per quanto riguarda l’esempio precedente,
diventa:
∀𝑥𝑥 �𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝑥𝑥) ⇔ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥) ∧ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝑥𝑥, 𝑦𝑦)� 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ≡ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ∩ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴)
𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵) 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵)
Nel mondo delle applicazioni, comunque, si usa spesso una rappresentazione grafica.
19. Antonio Tandoi Ingegneria della conoscenza
13
CAPITOLO 4: MODELLI DI RAPPRESENTAZIONE
In svariate aree dell’informatica si utilizzano sistemi di rappresentazione per scopi e usi
differenti. Al di là delle differenze, tutti i sistemi di rappresentazione condividono alcune
caratteristiche comuni, che verranno qui analizzate.
Il primo concetto da analizzare è la distinzione
tra realtà e rappresentazione. Ogni
rappresentazione, infatti, è necessariamente la
rappresentazione di qualcosa e questo “qualcosa”
è un frammento della realtà interessante per
qualche applicazione.
A sua volta, una rappresentazione può essere analizzata a tre livelli distinti:
• modello concreto: rappresentazione dei fatti che sussistono nel frammento di realtà
(“Alberto Bianchi è iscritto a Ingegneria presso il Politecnico di Bari”)
• modello concettuale: rappresentazione dei concetti utilizzati per formulare il
modello concentro (per esprimere il concetto precedente è necessario avere i
concetti di individuo, facoltà, iscrizione…)
• metamodello: specifica degli strumenti formali utilizzabili per definire il modello
concettuale e il modello concreto (ad esempio predicati e operatori logici, entità
e relazioni…)
20. CAPITOLO 4: MODELLI DI RAPPRESENTAZIONE
14
4.1 SISTEMI PER LA RAPPRESENTAZIONE DELLE CONOSCENZE
Un KRS è comunque un sistema di rappresentazione e come tale si articola nei tre livelli
esaminati precedentemente. La differenza principale di un KRS, tuttavia, sta in questo:
• nei campi dei database e delle specifiche software, i modelli concettuali (ER, UML…)
rappresentano un passo importante nello sviluppo di un sistema, ma non fanno parte
del prodotto finale
• nei KRS, invece, i modelli concettuali sono parte integrante del prodotto
finale, in quanto sono disponibili e vengono utilizzati a runtime dai sistemi software
Un KRS, infatti, è costituito da cinque componenti principali:
• una Terminological Box (TBox), che rende disponibile e accessibile in linea la
rappresentazione formale del modello concettuale di un frammento di
realtà
• una Assertion Box (ABox), che rende disponibile e accessibile in linea la
rappresentazione formale del modello concreto di un frammento di realtà
• un insieme di reasoning services, in grado di dedurre nuove conoscenze da
quelle contenute nelle TB e AB
• un’interfaccia di accesso, che consente l’accesso alle conoscenze contenute nella
TB e nella AB da parte di sistemi software
• un’interfaccia di editing, che consente la gestione dei contenuti della TB e della
AB da parte di un operatore umano
21. Antonio Tandoi Ingegneria della conoscenza
15
CAPITOLO 5: TERMINI E ONTOLOGIE
Il linguaggio formale di una DL serve a definire termini che descrivono concetti.
Per esempio:
(1) 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 è un termine che intuitivamente significa “persona
di genere femminile”. Anche la semplice espressione (2) 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 è un termine,
che intuitivamente significa “donna”
Le espressioni come (2) sono detti termini atomici, mentre quelle come (1) sono detti
termini complessi. Nel campo delle DL è d’uso indicare generici termini atomici con le
lettere A e B, e generici termini complessi con le lettere C e D. Inoltre i termini atomici
sono spesso chiamati concetti o classi (perché denotano insiemi di oggetti della realtà).
Una equivalenza terminologica esprime l’equivalenza tra due termini complessi C e D
(𝐶𝐶 ≡ 𝐷𝐷). Nel caso, invece, in cui si abbia 𝐴𝐴 ≡ 𝐷𝐷 con A atomico, si ha una definizione
terminologica.
Per esempio:
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 è una definizione terminologica; più
precisamente si tratta della definizione del termine DONNA in funzione dei
termini PERSONA e FEMMINA
Infine, chiamiamo ontologia un insieme finito di definizioni terminologiche. La funzione
di un’ontologia è di assegnare un significato non ambiguo ai termini atomici, in
base al significato di altri termini, i quali a loro volta avranno un significato grazie a
ulteriori definizioni terminologiche e così via. Questo processo, tuttavia, non può essere
continuato all’infinito: dato che ogni ontologia è finita, prima o poi si arriva a termini
privi di una definizione, che vanno considerati come primitivi. Ogni ontologia, quindi, si
basa su un insieme più o meno grande di termini primitivi, di cui non si dà alcuna definizione.
Il significato di tutti i termini utilizzati dipende, attraverso le definizioni
terminologiche, dal significato dei termini primitivi: se questi non sono definitivi,
l’intera ontologia è priva di fondamenta.
22. CAPITOLO 5: TERMINI E ONTOLOGIE
16
Il problema di assegnare un significato anche a termini primitivi è detto symbol grounding.
5.1 SEMANTICA DEI TERMINI
Per le espressioni di una DL è possibile specificare una semantica formale, che associa a ogni
termine un’interpretazione definita in modo insiemistico. Mentre a ogni termine è
possibile associare una formula di FOL, non è vero l’inverso: le DL sono, infatti,
sottoinsiemi propri di FOL, quindi esistono formule di FOL che non corrispondono ad alcun
termine.
In generale, la traduzione di un termine atomico o complesso in FOL fornisce come
risultati una formula con esattamente una variabile libera. In particolare, ogni
termine atomico A si traduce con una formula del tipo 𝐴𝐴(𝑥𝑥), dove 𝐴𝐴(−) è un predicato a un
argomento e 𝑥𝑥 e è una variabile.
Per esempio:
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ⇒ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥)
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ⇒ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑥𝑥)
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑥𝑥)
Per capire il senso di questa regola, si consideri come esempio la traduzione 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 in
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥). Data una certa porzione predefinita della realtà, detta dominio, ogni termine
determina un’estensione, definita come l’insieme di tutti gli individui del dominio cui il
termine si applica.
Per esempio:
Se il dominio comprende tutti gli elementi presenti in un’aula durante una
lezione, l’estensione in quel dominio del termine 𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫, è costituito da tutte
le donne presenti nell’aula. Ora, questi individui sono appunto i possibili
valori della variabile 𝒙𝒙 che rendono vera la formula predicativa 𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫(𝒙𝒙).
L’idea generale è appunto questa: dato un termine atomico A, la semantica del termine
deve consentire di identificare l’estensione di A nel dominio; tale estensione è
rappresentata da tutti e soli gli individui del dominio che rendono vera la formula 𝐴𝐴(𝑥𝑥)
quando siano assunti come valori della 𝑥𝑥.
Nelle DL sono solitamente utilizzate due termini predefiniti: T e ⊥, che corrispondono
rispettivamente al concetto universale (totalità degli individui esistenti) e concetto
vuoto (insieme vuoto di individui).
23. Antonio Tandoi Ingegneria della conoscenza
17
L’operatore di intersezione corrisponde al connettivo booleano di congiunzione.
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑥𝑥) ∧ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑥𝑥)
L’operatore di equivalenza corrisponde al connettivo booleano bicondizionale.
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑥𝑥) ⇔ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑥𝑥) ∧ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑥𝑥)
5.2 ALTRI OPERATORI
Utilizzando l’operatore di negazione ¬ è possibile definire il complemento di un elemento
𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈(𝑥𝑥) ⇔ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑥𝑥) ∧ ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑥𝑥)
Un altro operatore utile è quello di unione ∪ che permette di definire gli elementi che ne
raggruppano altri.
𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 ≡ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∪ (𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ∪ 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) ⇒ 𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁(𝑥𝑥)
⇔ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝑥𝑥) ∧ �𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉(𝑥𝑥) ∪ 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴(𝑥𝑥)�
5.3 TERMINI BASATI SU RUOLI
Oltre ai termini corrispondenti a predicati con un argomento (classi), le DL utilizzano termini
corrispondenti a predicati a due argomenti, che esprimono relazioni binarie fra individui
della realtà; tali termini vengono detti ruoli, proprietà, attributi o relazioni.
Un esempio di definizione terminologica con ruolo è 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≡ ∃ 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹 che
intuitivamente significa “genitore è chi ha un figlio”. L’espressione ∃ 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹 è un
termine complesso, formato dal quantificatore esistenziale e dal ruolo FIGLIO. Inoltre:
∃ 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹 ⇒ ∃𝑦𝑦 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹(𝑥𝑥, 𝑦𝑦)
Si noti che l’espressione contiene due variabili; tuttavia, la seconda è vincolata dal
quantificatore esistenziale, pertanto x è l’unica variabile libera della formula.
25. Antonio Tandoi Ingegneria della conoscenza
19
CAPITOLO 6: RUOLI
6.1 TERMINI CON RUOLI
Come si è visto, il termine GENITORE può essere definito utilizzando un ruolo, che esprime
una relazione binaria fra individui del dominio. Nelle DL, i generici ruoli vengono indicati
con R e S. Si noti che espressioni del tipo ∃𝑅𝑅 si comportano esattamente come i conetti: in
particolare possono essere combinate con altri concetti medianti gli operatori
precedentemente introdotti.
𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ≡ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ∩ ∃ 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹
Anche il quantificatore universale di FOL ha un operatore corrispondente nelle DL. Si
supponga, ad esempio, di voler definire come “MADRE-F” una madre che ha soltanto figlie
femmine:
𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 − 𝐹𝐹 ≡ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∩ ∀𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹. 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 − 𝐹𝐹(𝑥𝑥)
↔ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀(𝑥𝑥) ∧ ∀𝑦𝑦 �𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑥𝑥, 𝑦𝑦) → 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑦𝑦)�,
ovvero: una “MADRE-F è una madre tale che ogni suo figlio è femmina”.
Si noti che un’espressione DL del tipo ∀𝑅𝑅. 𝐶𝐶, con R generico ruolo e C generico concetto, si
limita a porre un vincolo di tipo sugli eventuali individui y con cui x abbia una
relazione R: l’espressione ∀𝑅𝑅. 𝐶𝐶 non implica tuttavia che tali individui esistano.
Per capire meglio questo punto, consideriamo la definizione:
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 − 𝐹𝐹 ≡ ∀𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹. 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝑅𝑅𝑅𝑅 − 𝐹𝐹(𝑥𝑥)
↔ ∀𝑦𝑦 �𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑥𝑥, 𝑦𝑦) → 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑦𝑦)�
che dice che “un GENITORE-F è un individuo in cui tutti i figli sono femmine”;
tuttavia, questa condizione è soddisfatta anche per chi è priva di figli perché, appunto, “un
individuo i cui figli sono tutti femmine”, significa “un individuo x tale che se y è figlio
di x, allora y è femmina”. Una definizione corretta può essere che si deve richiedere
l’esistenza di almeno un figlio.
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 − 𝐹𝐹 ≡ 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ∩ ∀𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹. 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹 𝐴𝐴
26. CAPITOLO 6: RUOLI
20
In alcune DL è possibile vincolare anche il tipo dei valori introdotti del
quantificatore esistenziale. Ad esempio, possiamo definire il concetto di “GENITORE-
UN-M” come un individuo che ha almeno un figlio maschio:
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 − 𝑈𝑈𝑈𝑈 − 𝑀𝑀 ≡ ∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹. ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 ⇒ 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 − 𝑈𝑈𝑈𝑈 − 𝑀𝑀(𝑥𝑥)
↔ ∃𝑦𝑦 �𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑥𝑥, 𝑦𝑦) ∧ ¬ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑦𝑦)�
Più in generale, nella maggior parte delle DL è possibile esprimere vincoli di cardinalità sui
ruoli come:
≤ 𝑛𝑛𝑛𝑛 ∃≤𝑛𝑛 𝑦𝑦 𝑅𝑅(𝑥𝑥, 𝑦𝑦) ≤ 𝑛𝑛𝑛𝑛 ∃≤𝑛𝑛 𝑦𝑦 �𝑅𝑅(𝑥𝑥, 𝑦𝑦) ∧ 𝐶𝐶(𝑥𝑥)�
≥ 𝑛𝑛𝑛𝑛 ∃≥𝑛𝑛 𝑦𝑦 𝑅𝑅(𝑥𝑥, 𝑦𝑦) ≥ 𝑛𝑛𝑛𝑛 ∃≥𝑛𝑛 𝑦𝑦 �𝑅𝑅(𝑥𝑥, 𝑦𝑦) ∧ 𝐶𝐶(𝑥𝑥)�
𝑛𝑛𝑛𝑛 ≤ 𝑛𝑛𝑛𝑛 ∩ ≥ 𝑛𝑛𝑛𝑛 𝑛𝑛𝑛𝑛. 𝐶𝐶 ≤ 𝑛𝑛𝑛𝑛. 𝐶𝐶 ∩ ≥ 𝑛𝑛𝑛𝑛. 𝐶𝐶
6.2 INVERSIONE DEI RUOLI
In molti casi è necessario invertire i ruoli, ossia invertire l’orientamento della
relazione binaria corrispondente a un ruolo. Più precisamente, se la semantica del
ruolo R si esprime in FOL come 𝑅𝑅(𝑥𝑥, 𝑦𝑦), allora la semantica del ruolo inverso R– si esprime
in FOL invertendo l’ordine delle variabili x e y, ovvero come 𝑅𝑅(𝑦𝑦, 𝑥𝑥).
Per esempio:
Supponiamo ad esempio di voler considerare come “italiano d’adozione”
ogni cittadino italiano che abbia ambedue i genitori stranieri. Partendo
dal concetto di “cittadino italiano” e dal ruolo di “figlio” possiamo dare la
definizione seguente:
𝐼𝐼𝐼𝐼 − 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≡ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝐼𝐼𝐼𝐼 ∩ ∀𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹. ¬𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝐼𝐼𝐼𝐼 ⇒ 𝐼𝐼𝐼𝐼 − 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴(𝑥𝑥)
↔ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝐼𝐼𝐼𝐼(𝑥𝑥) ∧ ∀𝑦𝑦 �𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑥𝑥, 𝑦𝑦) → ¬𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝐼𝐼𝐼𝐼(𝑦𝑦)�
6.3 DOMINIO E CODOMINIO
Spesso è utile delimitare il dominio e il codominio di un ruolo, ovvero gli insiemi di
individui che possono comparire come valori della x (dominio) e come valori della y
(codominio) nell’espressione 𝑅𝑅(𝑥𝑥, 𝑦𝑦). Molti linguaggi per ontologie dispongono di simboli
27. Antonio Tandoi Ingegneria della conoscenza
21
specifici per definire il dominio di un ruolo e il suo codominio (in genere denominato
range).
Si supponga, ad esempio di voler affermare che il ruolo “età” esprima sempre una
relazione binaria tra persone e numeri naturali. La seguente equivalenza terminologica
dice che il codominio del ruolo “età” è la classe dei numeri naturali:
𝑇𝑇 ≡ ∀𝐸𝐸𝐸𝐸à. 𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 ⇒ 𝑥𝑥 = 𝑥𝑥 ↔ ∀𝑦𝑦 �𝐸𝐸𝐸𝐸à(𝑥𝑥, 𝑦𝑦) → 𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁(𝑦𝑦)�
Per affermare che il dominio del ruolo “età” è la classe delle persone, si possono seguire due
strade. La più semplice è definire il dominio come codominio del ruolo inverso.
𝑇𝑇 ≡ ∀𝐸𝐸𝐸𝐸à. 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ⇒ ∀𝑦𝑦 �𝐸𝐸𝐸𝐸à(𝑥𝑥, 𝑦𝑦) → 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑦𝑦)�
che dice appunto che l’individuo che ha un’età, se esiste, è sempre una persona.
Tuttavia, questa strada non sempre è percorribile perché alcune DL non
ammettono l’inversione dei ruoli.
Infine, si richiamano l’attenzione sul fatto che le definizioni precedenti siano dei puri vincoli
sui valori che la x e la y possono assumere nell’espressione 𝑅𝑅(𝑥𝑥, 𝑦𝑦); nulla, invece, è affermato
sul fatto che ogni persona abbia effettivamente un’età o che ogni naturale sia l’età di qualche
persona. In altre parole, tali definizioni sono compatibili con l’esistenza di persone
prive di età o dotate di più età differenti!
6.4 I RUOLI FUNZIONALI
Una relazione funzionale o funzione è una relazione binaria con le seguenti proprietà:
1. ogni elemento del dominio è in relazione con almeno un elemento del codominio
2. ogni elemento del dominio è in relazione con al più un elemento del codominio
Ne segue, naturalmente, che quando una relazione binaria è funzionale ogni elemento
del dominio è in relazione con esattamente un elemento del codominio. Nelle DL,
un ruolo che esprima una funzione è detto ruolo funzionale. Ad esempio, il ruolo “età” è
funzionale perché ogni persona ha esattamente un’età. Per esprimere questo fatto è
sufficiente affermare che la classe delle persone coincide con la classe egli individui che hanno
esattamente un’età.
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ 1𝐸𝐸𝐸𝐸𝐸𝐸′
Si noti, tuttavia, che tale definizione non elimina la necessità di definire comunque un
dominio di “età”; infatti, tale definizione non esclude la possibilità che tale dominio sia più
28. CAPITOLO 6: RUOLI
22
ampio di tutte le persone: tutti gli individui di questa classe più ampia che non siano
persone avrebbero però un insieme di valori di età di cardinalità pari a 0 o
maggiore di 1.
Nelle DL, un ruolo che esprime una relazione funzionale è detto ruolo funzionale.
Per esempio:
𝑇𝑇 ≡ ∀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀−
. 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷, 𝑇𝑇 ≡ ∀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀. 𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈
Il ruolo “marito” è funzionale perché ogni donna ha al più un marito. Per
esprimere questo concetto è sufficiente affermare che la classe delle donne
coincida con la classe degli individui che hanno al più un marito:
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≡≤ 1𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
Si noti che la precedente relazione non elimina la necessità di definire
comunque il dominio di “marito” con la prima relazione. Infatti, essa da
sola non esclude la possibilità che il dominio di “marito” sia più ampio
dell’insieme delle donne: tutti gli individui di questa classe più ampia che
non siano donne avrebbero un insieme di mariti di cardinalità maggiore di
1. Questa possibilità è però esclusa dalla prima relazione, che dice che
qualsiasi individui che abbia un marito è una donna.
Dato che ogni funzione è anche una relazione funzionale, ne segue che ogni funzione mette
in relazione ciascun elemento del dominio (argomento della funzione) con esattamente
un elemento del codominio (valore della funzione). Nelle DL, un ruolo che sia una funzione
è detto ruolo funzione o semplicemente funzione.
29. Antonio Tandoi Ingegneria della conoscenza
23
CAPITOLO 7: ASSERTION BOX
7.1 SUSSUNZIONE
Finora, sono stati usati esempi di ontologie usando esclusivamente equivalenze
terminologiche del tipo 𝑪𝑪 ≡ 𝑫𝑫. In molti casi interessanti, tuttavia, la relazione fra due
termini è più debole. Si supponga, ad esempio, di voler specificare che i gatti siano animali
domestici. Non è possibile utilizzare un’equivalenza, perché naturalmente esistono animali
domestici che non sono gatti. La relazione trai i due termini, dunque, può esprimersi nel
ruolo seguente.
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ⊆ 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 − 𝐷𝐷𝐷𝐷𝐷𝐷
L’operatore ⊆ è detto operatore di sussunzione e si dice che GATTO è sussunto da
ANIM-DOM mentre ANIM-DOM sussume GATTO.
In generale, è possibile specificare una sussunzione fra termini arbitrari:
𝐶𝐶 ⊆ 𝐷𝐷 ⇒ 𝐶𝐶(𝑥𝑥) → 𝐷𝐷(𝑥𝑥)
In linea di principio, la sussunzione è sempre sostituibile da un’equivalenza, pur di
introdurre concetti fittizi.
7.2 NOMINALI E TERMINI ENUMERATIVI
Nelle ontologie è spesso possibile utilizzare anche nomi specifici detti nominali.
{𝑎𝑎1 … 𝑎𝑎𝑛𝑛} ⇒ 𝑥𝑥 = 𝑎𝑎1 ∨ 𝑥𝑥 = 𝑎𝑎𝑛𝑛
L’operatore {} è detto one-of, perché enumera tutti i valori che la variabile x può assumere.
Va sottolineato che, contrariamente a FOL, vale nelle DL la unique name assumption:
significa che due nominali distinti non possono mai fare riferimento allo stesso
individui del dominio. In termini logici, vale l’assioma:
𝑎𝑎1 ≠ 𝑎𝑎2 ∧ 𝑎𝑎1 ≠ 𝑎𝑎3 ∧ … 𝑎𝑎𝑛𝑛−1 ≠ 𝑎𝑎𝑛𝑛
Nelle DL non vale invece un’altra assunzione, ossia la domain closure assumption; tale
assunzione richiede che il dominio di tutti gli individui contenga soltanto degli
individui cui si può fare riferimento con un nominale.
30. CAPITOLO 7: ASSERTION BOX
24
7.3 ASSERTION BOX
Come si è già detto, un sistema di rappresentazione delle conoscenze consta di una TBox e
di una ABox. La TBox contiene essenzialmente le conoscenze terminologiche e definisce una
ontologia. La ABox, invece, contiene conoscenze fattuali. Nelle DL si possono esprimere due
tipi di conoscenze fattuali. Sono infatti ammesse asserzioni del tipo C(a) o R(a,b).
La semantica di FOL di C(a) si ottiene traducendo in FOL il termine C e sostituendo
tutte le occorrenze della variabile libera in tale traduzione con il nominale a. Allo
stesso modo, la semantica della formula DL R(a,b) è invece data semplicemente dalla
formula FOL R(a,b).
Si può nominare una terza assunzione detta closed world assumption, tipica del mondo
dei DB e delle IA. In altri termini, l’assunzione significa che:
• tutto ciò che è esplicitamente asserito nell’ABox è vero
• tutto ciò che non è esplicitamente asserito nell’ABox è falso
Questa assunzione non viene adottata nel mondo delle DL. Si noti tra l’altro che
un’assunzione del genere presuppone la conoscenza completa del mondo dell’applicazione:
infatti, se tutto ciò che si asserisce è vero e tutto ciò che non si asserisce è falso
non è possibile assumere rispetto a un fatto una posizione intermedia (non so se
sia vero o falso). La semantica dell’ABox delle DL è invece compatibile con una situazione
di conoscenza parziale: di alcune cose si sa che sono vere, di altre che sono false, di altre
ancora non si sa nulla.
31. Antonio Tandoi Ingegneria della conoscenza
25
CAPITOLO 8: LINGUAGGIO OWL
OWL (Web Ontology Language) è lo standard attualmente proposto per la
definizione di ontologie per il Semantic Web. OWL prevede tre livelli di complessità
crescente:
• OWL Lite: semplice da implementare ma scarsamente espressivo
• OWL DL: abbastanza espressivo ma comunque decidibile e dotato di procedure di
ragionamento di complessità nota, approfonditamente studiate e ottimizzate
• OWL Full: consente di definire rappresentazioni che vanno al di là della logica
predicativa del primo ordine; è molto espressivo ma non decidibile e quindi
problematico dal punto di vista della meccanizzazione del ragionamento
Un’ontologia OWL si articola, come per ogni DL, in una TBox e una ABox, ambedue
rappresentati come grafi RDF. La rappresentazione RDF delle ontologie OWL presenta
grandi vantaggi per l’interoperabilità delle applicazioni, ma è difficilmente leggibile
e alquanto confusa, a causa delle numerose varianti consentite da RDF.
D’altra parte, gli strumenti per la definizione di ontologie utilizzano in genere interfacce
grafiche che nascondono all’utente la rappresentazione RDF.
8.1 DESCRIZONE DI CLASSI
Nel linguaggio OWL i termini sono denominati descrizioni di classi, gli operatori per la
definizione di termini sono denominati costruttori di classi e i ruoli sono denominati
proprietà. OWL prevede sei tipi di descrizioni di classi:
• identificatore
• enumerazione
• restrizione di proprietà
• intersezione
• unione
• complemento
32. CAPITOLO 8: LINGUAGGIO OWL
26
IDENTIFICATORE
Ogni descrizione di classe descrive una risorsa di tipo owl:Class. Nel caso più semplice, la
descrizione consta di un identificatore della classe. Dato che gli identificatori di classi
corrispondono ai termini atomici delle DL, si continuerà a chiamarli A o B. OWL
prevede due identificatori anche per la classe universale e la classe vuota: owl:Thing e
owl:Nothing rispettivamente.
Ogni individuo 𝑎𝑎1 è un elemento di owl:Class.
ENUMERAZIONE
Una classe finita può essere descritta dall’enumerazione, ossia owl:OneOf, di individui che
appartengono a un insieme.
RESTRIZIONI DI PROPRIETA’
In OWL sono dette restrizioni di proprietà le descrizioni di classi seguenti:
∃𝑅𝑅. 𝐶𝐶 ⇒ owl:someValuesFrom ∀𝑅𝑅. 𝐶𝐶 ⇒ owl:allValuesFrom
∀𝑅𝑅. {𝑎𝑎} ⇒ owl: hasValue ≤ 𝑛𝑛𝑛𝑛 ⇒ owl:maxCardinality
≥ 𝑛𝑛𝑛𝑛 ⇒ owl:minCardinality = 𝑛𝑛𝑛𝑛 ⇒ owl:Cardinality
Si noti che le restrizioni di cardinalità non consentono di specificare una classe di
appartenenza per i valori della proprietà; s’intende quindi che tali valori appartengono
al range della proprietà, che può essere definito a parte.
INTERSEZIONE
Una classe finita può essere descritta dall’enumerazione, ossia owl:intersectionOf, un
numero finito di classi 𝐶𝐶1 ∩ … ∩ 𝐶𝐶𝑛𝑛
UNIONE
Una classe finita può essere descritta dall’enumerazione, ossia owl:unionOf, un numero
finito di classi 𝐶𝐶1 ∪ … ∪ 𝐶𝐶𝑛𝑛
COMPLEMENTO
Una classe finita può essere descritta dall’enumerazione, ossia owl:complementOf, un
numero finito di classi ¬𝐶𝐶
33. Antonio Tandoi Ingegneria della conoscenza
27
8.2 ASSIOMI DI CLASSE
In OWL le definizioni terminologiche della TBox sono dette assiomi di classe e possono
essere di tre tipi:
• assiomi di sottoclasse
• assiomi di equivalenza
• assiomi di disgiunzione.
SOTTOCLASSI
Fra due descrizioni di classi, C e D, si può definire una relazione di sottoclasse, ossia
owl:subClassOf. Questa relazione, corrisponde alla sussunzione terminologica nelle DL:
𝐶𝐶 ⊆ 𝐷𝐷.
EQUIVALENZA
Fra due descrizioni di classi, C e D, si può definire una relazione di equivalenza, ossia
owl:equivalentClass, che corrisponde all’equivalenza terminologica nelle DL:
𝐶𝐶 ≡ 𝐷𝐷.
DISGIUNZIONE
Fra due descrizioni di classi, C e D, si può dichiarare una relazione di disgiunzione, ossia
owl:disjointWith, che corrisponde all’equivalenza:
𝐶𝐶 ∩ 𝐷𝐷 ≡ ⊥.
8.4 PROPRIETÀ
In OWL anche proprietà (corrispondenti ai ruoli nelle DL) possono essere viste come
particolari classi. Come tali, le proprietà possono avere sottoproprietà ed essere
combinate con vari costruttori.
Così come ogni classe di individui è una risorsa di tipo owl:Class, le proprietà possono
essere risorse di tipo owl:ObjectProperty (proprietà di individui) oppure
owl:DatatypeProperty (proprietà di dati). In OWL si possono specificare i seguenti
aspetti relativi alle proprietà:
• identificatore di proprietà
• dominio e codominio (range)
34. CAPITOLO 8: LINGUAGGIO OWL
28
• sottoproprietà
• proprietà equivalente
• proprietà inversa.
IDENTIFICATORE DI PROPRIETA’
Un identificatore di proprietà corrisponde a un ruolo e sarà quindi indicato con R o S.
RANGE
Di una proprietà possono essere specificati il dominio (rdfs:domain) e il codominio
(rdfs:range). Tali specifiche sono equivalenti alle equivalenze:
𝑇𝑇 ≡ ∀𝑅𝑅– . 𝐶𝐶
𝑇𝑇 ≡ ∀𝑅𝑅. 𝐶𝐶
SOTTOPROPRIETA’
Una proprietà può essere definita come sottoproprietà di rdfs:subPropertyOf un’altra
proprietà.
𝑅𝑅 ⊆ 𝑆𝑆 ⇒ 𝑅𝑅(𝑥𝑥, 𝑦𝑦) → 𝑆𝑆(𝑥𝑥, 𝑦𝑦)
PROPRIETÀ EQUIVALENTE
Una proprietà può essere definita come equivalente, ossia owl:equivalentProperty, a
un’altra proprietà.
𝑅𝑅 ≡ 𝑆𝑆 ⇒ 𝑅𝑅(𝑥𝑥, 𝑦𝑦) ↔ 𝑆𝑆(𝑥𝑥, 𝑦𝑦).
PROPRIETA’ INVERSA
Data una proprietà R si può definire la proprietà inversa, ossia owl:inverseOf, R–. Sulle
proprietà è possibile definire vincoli globali di cardinalità, ovvero:
• funzionalità
• funzionalità inversa
Una proprietà R è funzionale (owl:FunctionalProperty) se 𝑇𝑇 ≡ ≤ 1𝑅𝑅. Una proprietà R
è funzionale inversa (owl:InverseFunctionalProperty) se 𝑇𝑇 ≡ ≤ 1𝑅𝑅–.
35. Antonio Tandoi Ingegneria della conoscenza
29
SIMMETRIA
Una proprietà R è simmetrica se 𝑅𝑅– ⊆ 𝑅𝑅, il che implica 𝑅𝑅– ≡ 𝑅𝑅. In OWL è possibile
dichiarare direttamente che una proprietà è simmetrica (owl:SymmetricProperty).
TRANSITIVITA’
La transitività di una proprietà R non si può esprimere con gli strumenti logici visti finora.
Per esprimere la transitività, infatti, occorrerebbe prima introdurre il concetto di
composizione di ruoli. Dati due ruoli, R ed S, allora:
(𝑅𝑅 ∙ 𝑆𝑆)(𝑥𝑥, 𝑦𝑦) ↔ ∃𝑧𝑧�𝑅𝑅(𝑥𝑥, 𝑧𝑧) ∧ 𝑆𝑆(𝑧𝑧, 𝑦𝑦)�.
Avendo a disposizione l’operatore di composizione sarebbe possibile specificare la transitività
di R nel modo seguente: 𝑅𝑅 ∙ 𝑅𝑅 ⊆ 𝑅𝑅.
Questa strada non è percorribile in OWL perché esso non prevede la composizione dei ruoli;
tuttavia, è possibile dichiarare una proprietà transitiva (owl:TransitiveProperty).
8.5 INDIVIDUI E FATTI
In OWL le asserzioni dell’ABox sono detti fatti. Si introducono due tipi di fatti:
• fatti relativi all’appartenenza di un individuo a una classe o ai valori di una
proprietà di un individuo
• fatti relativi all’identità di uno o più individui.
APPARTENENZA A UNA CLASSE E VALORI DI UNA
PROPRIETÀ
In OWL è possibile specificare che un individuo a appartiene a una classe C, 𝐶𝐶(𝑎𝑎), oppure
che una proprietà R di un individuo a ha valore b, 𝑅𝑅(𝑎𝑎, 𝑏𝑏).
IDENTITÀ
Il linguaggio OWL non assume che gli individui abbiano nome unico. Quindi è possibile
asserire che due nomi fanno riferimento allo stesso individuo (owl:sameAs): 𝑎𝑎 = 𝑏𝑏 .
Analogamente è possibile asserire che due nomi fanno riferimento al individui distinti
(owl:differentFrom): 𝑎𝑎 ≠ 𝑏𝑏.
E’ anche possibile asserire che n individui sono tutti distinti fra loro (owl:AllDifferent).
36. CAPITOLO 8: LINGUAGGIO OWL
30
8.6 SHOIN
A questo punto è possibile spiegare perché OWL venga descritto come una logica descrittiva
di tipo SHOIN(Dn) Negli acronimi delle DL:
• la lettera S indica la possibilità di utilizzare i termini seguenti:
𝑻𝑻, ⊥, 𝑪𝑪 ∩ 𝑫𝑫, 𝑪𝑪 ∪ 𝑫𝑫, ¬𝑪𝑪, ∀𝑹𝑹. 𝑪𝑪, ∃𝑹𝑹. 𝑪𝑪, 𝑻𝑻𝑻𝑻(𝑹𝑹);
• la lettera H (da role Hierarchy) indica la possibilità di definire relazioni di
inclusione fra ruoli:
𝑹𝑹 ⊆ 𝑺𝑺
• la lettera O (da One of) indica la possibilità di definire termini per enumerazione:
{𝒂𝒂𝟏𝟏 … 𝒂𝒂𝒏𝒏}
• la lettera I indica la possibilità di definire il ruolo inverso:
𝑹𝑹–
• la lettera N indica la possibilità di definire cardinalità non qualificate (le cardinalità
qualificate ≤nR.C, ≥nR.C e =nR.C si indicano invece con la lettera Q)
≤ 𝒏𝒏𝒏𝒏, ≥ 𝒏𝒏𝒏𝒏, = 𝒏𝒏𝒏𝒏
• infine, Dn indica la possibilità di utilizzare vari tipi di dati all’interno della logica.
37. Antonio Tandoi Ingegneria della conoscenza
31
CAPITOLO 9: CONSEGUENZE LOGICHE
L’aspetto che distingue nettamente una base di conoscenze da un database è la possibilità
di condurre ragionamenti in modo automatico. Poiché una base di conoscenze, KB, è
costituita da una TBox, T, e da un’ABox, A, si scrive in generale KB = 〈T,A〉.
Nel contesto della logica, quando si parla di “ragionamento” ci si riferisce sempre a
ragionamenti di tipo deduttivo, o più semplicemente deduzioni. In generale, un
ragionamento è un procedimento che porta a verificare se un enunciato X (ad esempio la
sussunzione o l’equivalenza di due termini) è conseguenza logica di una base di
conoscenze.
Intuitivamente un enunciato X è conseguenza logica di una base di conoscenze KB
quando X è necessariamente vero in ogni situazione concreta in cui siano vere
le definizioni terminologiche e i fatti contenuti in KB. In tal caso, si scrive 𝑲𝑲𝑲𝑲 | =
𝑋𝑋, che si legge: KB implica logicamente (entails) X.
Per esempio:
Si consideri, ad esempio, la TBox T contenente le definizioni seguenti:
𝑇𝑇1. 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ ∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
𝑇𝑇2. 𝑇𝑇 ≡ ∀𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹– . 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑇𝑇3. 𝑇𝑇 ≡ ∀𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹. 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑇𝑇4. 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹
𝑇𝑇5. 𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹
𝑇𝑇6. 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ≡ 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹
𝑇𝑇7. 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ∩ ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹
È chiaro che il contenuto di T implica logicamente che certi enunciati, pur
non essendo contenuti esplicitamente in T, sono necessariamente veri sotto
l’ipotesi che sia vero il contenuto di T.
38. CAPITOLO 9: CONSEGUENZE LOGICHE
32
Ad esempio:
• ogni madre è una persona nonché una donna
• ogni padre è una persona nonché un uomo;
• la classe delle madri e la classe dei padri sono disgiunte.
Questi enunciati possono essere scritti formalmente nel modo seguente.
𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ⊆ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ⊆ 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ⊆ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ⊆ 𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈
𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∩ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ ⊥
Per segnalare che questi enunciati sono conseguenze logiche di T scriviamo
quindi
𝑻𝑻 | = 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ⊆ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
È necessario, ora, distinguere tre concetti distinti:
• compito di ragionamento (reasoning task): i tipi di enunciati che si desidera
dedurre da una base di conoscenze
• procedura di ragionamento: l’algoritmo per la deduzione degli enunciati
• servizio di ragionamento: i servizi basati su procedure di ragionamento che uno
strumento mete a disposizione delle applicazioni che accedono alla base di conoscenze
9.1 COMPITI DI RAGIONAMENTO RELATIVI ALLE TBOX
Per quanto riguarda le TBox, i compiti di ragionamento più significativi per le applicazioni
sono i seguenti:
• sussunzione: data una TBox T, stabilire se una sussunzione 𝐶𝐶 ⊆ 𝐷𝐷 è conseguenza
logica di T, ovvero stabilire se 𝑻𝑻 | = 𝐶𝐶 ⊆ 𝐷𝐷
• equivalenza: data una TBox T, stabilire se un’equivalenza 𝐶𝐶 ≡ 𝐷𝐷 è conseguenza
logica di T, ovvero stabilire se 𝑻𝑻 | = 𝐶𝐶 ≡ 𝐷𝐷
• soddisfacibilità: data una TBox T, stabilire se un termine C è soddisfacibile, nel
senso che applicare il termine a un individuo del dominio non comporta una
contraddizione logica
39. Antonio Tandoi Ingegneria della conoscenza
33
• disgiunzione: data una TBox T, stabilire se due termini C e D sono disgiunti, nel
senso che applicando i due termini contemporaneamente allo stesso
individuo comporta una contraddizione logica
RIDUZIONE DEI COMPITI DI RAGIONAMENTO ALLA
SUSSUNZIONE
I quattro compiti di ragionamento fondamentali per le TBox possono essere ridotti alla sola
sussunzione. Infatti:
• equivalenza: dimostrare 𝑻𝑻 | = 𝐶𝐶 ≡ 𝐷𝐷 equivale a dimostrare che 𝑻𝑻 | = 𝐶𝐶 ⊆ 𝐷𝐷 e
𝑻𝑻 | = 𝐷𝐷 ⊆ 𝐶𝐶
• soddisfacibilità: dimostrare che C è soddisfacibile equivale a dimostrare che non
è insoddisfacibile, ossia che non vale la seguente conseguenza logica 𝑻𝑻 | = 𝐶𝐶 ⊆ ⊥
• disgiunzione: dimostrare che C e D sono disgiunti equivale a dimostrare che
𝑻𝑻 | = 𝐶𝐶 ∩ 𝐷𝐷 ⊆ ⊥.
Dunque un’unica procedura di ragionamento potrebbe essere utilizzata per realizzare
tutti e quattro i compiti di ragionamento fondamentali per le TBox. Questa è la strada che
si segue per implementare i servizi di ragionamento per le DL poco espressive.
RIDUZIONE DEI COMPITI DI RAGIONAMENTO ALLA
SODDISFACIBILITÀ
I quattro compiti di ragionamento fondamentali per le TBox possono anche essere ridotti
alla sola soddisfacibilità. Infatti:
• sussunzione: dimostrare 𝑻𝑻 | = 𝐶𝐶 ⊆ 𝐷𝐷 equivale a dimostrare che 𝑻𝑻 | = 𝐶𝐶 ∩ ¬𝐷𝐷 è
insoddisfacibile
• equivalenza: dimostrare 𝑻𝑻 | = 𝐶𝐶 ≡ 𝐷𝐷 equivale a dimostrare che 𝑻𝑻 | = 𝐶𝐶 ∩ ¬𝐷𝐷 è
insoddisfacibile e 𝑻𝑻 | = ¬𝐶𝐶 ∩ 𝐷𝐷 è insoddisfacibile
• disgiunzione: dimostrare che C e D sono disgiunti equivale a dimostrare che
𝑇𝑇 | = 𝐶𝐶 ∩ 𝐷𝐷 è insoddisfacibile.
Dunque una procedura per stabilire se un termine è o non è soddisfacibile consente di
realizzare i quattro compiti di ragionamento fondamentali per le TBox. Questa è
la strada che si segue per implementare i servizi di ragionamento per le DL molto
espressive, come ad esempio SHOIN.
40. CAPITOLO 9: CONSEGUENZE LOGICHE
34
9.2 LA PROCEDURA SAT
Per le DL decidibili (come SHOIN) si può formulare una procedura che prende in ingresso
una TBox arbitraria T e un termine arbitrario C e, in un numero finito di passi,
stabilisce se C è o non è soddisfacibile (tenendo conto ovviamente delle definizioni
terminologiche di T). Nelle sue versioni più diffuse questa procedura, chiamata SAT, è
basata sul cosiddetto metodo dei tableaux da tempo studiato e applicato nell’ambito
di FOL.
Per esempio:
Si supponga di voler mostrare che, assumendo la TBox T del precedente
esempio, valga la sussunzione
𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ⊆ ∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
ovvero che il termine 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∩ ¬∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 sia insoddisfacibile (in altre
parole, non può esistere un individuo che sia una madre e non abbia figli).
La procedura SAT parte in realtà dall’ipotesi che il termine sia
soddisfacibile, e sviluppa un ragionamento sulla base di questa ipotesi
iniziale. A grandi linee, i passi del ragionamento sono i seguenti:
• Se 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∩ ¬∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 è soddisfacibile, allora può esistere un
individuo nell’universo cui il termine si applica. Introducendo un
nominale, a, per identificare questo individuo si può scrivere
(𝟏𝟏) 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∩ ¬∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑎𝑎)
Da 1, poiché l’intersezione è distributiva rispetto all’argomento si
può dedurre che
(𝟐𝟐. 𝟏𝟏) 𝑴𝑴𝑴𝑴𝑴𝑴𝑴𝑴𝑴𝑴(𝒂𝒂)
(𝟐𝟐. 𝟐𝟐) ¬∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑎𝑎)
Da 2.1, applicando la definizione T6, si può dedurre che:
(𝟑𝟑) 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ∩ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑎𝑎)
Da 3, poiché l’intersezione è distributiva rispetto all’argomento si
può dedurre che:
(𝟒𝟒. 𝟏𝟏) 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺(𝑎𝑎)
41. Antonio Tandoi Ingegneria della conoscenza
35
(𝟒𝟒. 𝟐𝟐) 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑎𝑎)
Da 4.1, applicando la definizione T1, si può dedurre che
(𝟓𝟓) 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ ∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑎𝑎)
Da 5, poiché l’intersezione è distributiva rispetto all’argomento
possiamo dedurre che
(𝟔𝟔. 𝟏𝟏) 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑎𝑎),
(𝟔𝟔. 𝟐𝟐) ∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑎𝑎).
L’asserzione 6.2 è in contraddizione con la 2.2. Ne segue che l’ipotesi
iniziale (ossia che il termine 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ∩ ¬∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹(𝑎𝑎) fosse
soddisfacibile) va rifiutata. Quindi il termine è insoddisfacibile.
Dato il rapporto fra insoddisfacibilità e sussunzione, questa deduzione
permette di stabilire che
𝑻𝑻 | = 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ⊆ ∃𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
43. Antonio Tandoi Ingegneria della conoscenza
37
CAPITOLO 10: ASSERZIONI
Le asserzioni contenute in un’ABox possono essere basate su termini o basate su ruoli;
ovvero, le asserzioni possono assumere una delle due forme seguenti:
• 𝐶𝐶(𝑎𝑎) dove C è un termine arbitrario ed a è un nominale;
• 𝑅𝑅(𝑎𝑎, 𝑏𝑏) dove R è un ruolo e a, b sono nominali.
Va sottolineato che, in linea di principio, si potrebbero limitare le asserzioni basate
su termini ai soli termini atomici. In altre parole, le asserzioni basate su termini
potrebbero assumere la forma:
• 𝐴𝐴(𝑎𝑎) dove A è un termine atomico ed a è un nominale;
In questo modo non si perderebbe generalità, pur di aggiungere alla TBox opportune
definizioni terminologiche del tipo: 𝐴𝐴 ≡ 𝐶𝐶.
Per esempio:
Considerando lo stesso esempio precedente, si potrebbe avere nella TBox
la definizione
𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹,
o in alternativa le due definizioni
𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∩ 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀, 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 ≡ ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹,
che consentirebbero di scrivere 𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈(𝐵𝐵𝐵𝐵𝐵𝐵).
Un approccio di questo genere, tuttavia, tende a riempire la TBox di
definizioni poco significative; è quindi preferibile ammettere nell’ABox
asserzioni basate su termini arbitrari. Un caso particolare è costituito dalle
“asserzioni negative”, come ad esempio ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝐵𝐵𝐵𝐵𝐵𝐵).
Tale dichiarazione non va vista come la negazione dell’asserzione positiva
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹(𝑏𝑏𝑏𝑏𝑏𝑏), quanto piuttosto come l’asserzione che il termine non
atomico ¬𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹 si applica al nominale ‘Bob’.
44. CAPITOLO 10: ASSERZIONI
38
10.1 COMPITI DI RAGIONAMENTO RELATIVI ALLE ABOX
Alcuni compiti di ragionamento relativi alle ABox riguardano le asserzioni e utilizzano
le conoscenze contenute in tutta la base delle conoscenze, sia nella TBox sia nell’ABox.
Si consideri una base di conoscenze 〈T,A〉, formata dalla TBox T e dall’ABox A. I più
significativi compiti di ragionamento relativi all’ABox sono i seguenti:
• instance check: dati T, A, un termine arbitrario C e un nominale a, stabilire se si
ha 𝑻𝑻, 𝑨𝑨 | = 𝐶𝐶(𝑎𝑎)
• retrieval: dati T, A e un termine arbitrario C, fra tutti i nominali presenti nella
base di conoscenze trovare tutti i nominali {𝑎𝑎1 … 𝑎𝑎𝑛𝑛} tali che 𝑻𝑻, 𝑨𝑨 | = 𝐶𝐶(𝑎𝑎𝑘𝑘)
• realizzazione: dati T, A, un insieme di termini arbitrari {𝐶𝐶1 … 𝐶𝐶𝑛𝑛} e un nominale a,
determinare i termini più specifici in {𝐶𝐶1 … 𝐶𝐶𝑛𝑛} per cui si ha 𝑻𝑻, 𝑨𝑨 | = 𝐶𝐶𝑘𝑘(𝑎𝑎).
A chiarimento del compito di realizzazione, si che un termine C si dice più specifico
di un termine D quando vale 𝐶𝐶 ⊆ 𝐷𝐷.
Si noti inoltre che la sussunzione è una relazione d’ordine parziale fra i
termini; i termini più specifici in {𝐶𝐶1 … 𝐶𝐶𝑛𝑛} per cui vale 𝑻𝑻, 𝑨𝑨 | = 𝐶𝐶𝑘𝑘(𝑎𝑎) sono quindi gli
elementi di {𝐶𝐶1 … 𝐶𝐶𝑛𝑛}, minimali rispetto alla relazione di sussunzione, per cui vale
𝑻𝑻, 𝑨𝑨 | = 𝐶𝐶𝑘𝑘(𝑎𝑎)
10.2 RIDUZIONE ALLA SODDISFACIBILITA’ DEI COMPITI DI
RAGIONAMENTO RELATIVI ALL’ABOX
I compiti di ragionamento relativi all’ABox si possono ridurre al problema di stabilire la
soddisfacibilità di un insieme di asserzioni. Si noti, innanzitutto, che 𝑻𝑻, 𝑨𝑨 | = 𝐶𝐶(𝑎𝑎) se
e solo se 𝑻𝑻 | = 𝑙𝑙’𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢 𝑑𝑑𝑑𝑑 𝑨𝑨 𝑒𝑒 {¬𝐶𝐶(𝑎𝑎)} è 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖.
Quindi un compito di instance check può essere ridotto a un problema di soddisfacibilità.
Un compito di retrieval, poi, almeno in linea di principio può essere ridotto a un compito di
instance check per ciascun nominale presente nella base di conoscenze. Infine, un compito di
realizzazione può essere ridotto a una serie di compiti di instance check e a una serie di
compiti di sussunzione.
45. Antonio Tandoi Ingegneria della conoscenza
39
CAPITOLO 11: ANALISI SEMANTICA
Una prima stratificazione delle ontologie è introdotta dalla distinzione fra TBox e ABox.
Ricordando le definizioni:
• la TBox contiene conoscenze terminologiche
• l’ABox contiene conoscenze fattuali individui).
Anche se tutte le conoscenze contenute nella TBox sono generali, si possono avere diversi
livelli di generalità. Si tende a distinguere tre livelli di generalità:
• ontologia superiore (upper ontology), concernente i termini più astratti e di
uso praticamente universale e indipendente dalla singola area applicativa
(per esempio termini come “oggetto fisico”, “artefatto”, “prodotto”
“evento”, “azione” e così via)
• ontologia mediana (middle ontology), concernente un’area applicativa ben
definita (per esempio la chimica organica, il commercio elettronico, la
telefonia mobile, i personal computer, gli strumenti musicali e così via)
• ontologia inferiore (lower ontology), tipicamente utilizzata per interfacciare
una singola applicazione con un’ontologia mediana (ad esempio, un servizio web per
la vendita on line di strumenti musicali dovrà combinare in modo specifico
un’ontologia del commercio elettronico e un’ontologia degli strumenti musicali).
In un’applicazione tipica, la maggior parte dei termini tende ad essere definita nel
livello mediano, mentre i livelli superiore e inferiore riguardano un numero di
termini più limitato.
Naturalmente, la maggior parte delle ontologie tende a presentare nel livello superiore gli
stessi termini: termini come “oggetto fisico” ed “evento” compariranno nell’upper ontology
di ogni applicazione in cui si parli di eventi che concernono oggetti fisici. L’ideale, quindi,
sarebbe definire una volta per tutte un’ontologia superiore standard, da utilizzare come
punto di partenza per lo sviluppo di ontologie mediane e inferiori.
46. CAPITOLO 11: ANALISI SEMANTICA
40
Anche per quanto riguarda le ontologie mediane, sarebbe estremamente utile potersi basare
su ontologie standard definite una volta per tutte e condivise da una vasta
comunità di utenti.
Il più cospicuo archivio di ontologie oggi disponibile è probabilmente la DAML Ontology
Library.
È diffusa la pratica di costruire ontologie mediane modificando e adattando ontologie
preesistenti (approccio chiamato ontology reiingineering). Per quanto riguarda le
ontologie inferiori, infine, data la loro natura, esse vengono definite e implementare di
volta in volta dai progettisti delle singole applicazioni.
11.1 NOMI, CLASSE, ISTANZE
Come già visto, i termini rappresentano insiemi di individui dell’universo e i nominali
rappresentano singoli individui dell’universo.
Per esempio:
Nell’asserzione (𝟏𝟏) 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴) il termine atomico 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶
rappresenta tutti gli individui x dell’universo che rendono vera la formula
FOL 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝑥𝑥), mentre il nominale ‘Antonio’ denota un singolo elemento
dell’universo che, secondo l’asserzione, fa parte dell’insieme dei celibi.
Tuttavia, questo non è l’unico modo di rappresentare il fatto che Antonio
è celibe.
Innanzitutto, è spesso opportuno distinguere fra il nominale che costituisce un identificatore
univoco di un individuo e il nome dell’individuo: “Antonio”, ad esempio, può essere il nome
di una persona, ma in generale non è un identificatore univoco, perché ci sono
molte persone che si chiamano allo stesso modo.
Per distinguere fra nominali e nomi notiamo che:
• ogni individuo può avere un nome (non necessariamente univoco);
• non tutti gli individui denotati dai nominali devono avere anche un nome
(ad es., posso avere quattro diversi nominali per denotare le quattro sedie di un ufficio,
ma è improbabile che queste seggiole abbiano un “nome” nello stesso senso in cui ha
un nome una persona, un cane o una città);
• i nomi sono stringhe, ovvero dati del tipo STRING di XML.
47. Antonio Tandoi Ingegneria della conoscenza
41
Per associare un nome a un individuo possiamo allora introdurre un ruolo, Nome, il cui
dominio è T (in quanto ogni individuo può avere un nome) e il cui codominio è STRING.
Poiché l’assioma 𝑇𝑇 ≡ ∀𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁–. Tè superfluo (in quanto tautologico), è sufficiente specificare
𝑇𝑇 ≡ ∀𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁. 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆.
Per esempio:
Se ora ‘Antonio’ è il nominale che denota Antonio la asserzione diventa:
(𝟐𝟐) 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴),
(𝟐𝟐) 𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, “𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴”)
dove “Antonio” è una stringa. Si noti che per trovare i nominali di tutti
gli individui che si chiamano Antonio è sufficiente risolvere un compito di
retrieval relativo al termine 𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁. {“𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴”}.
In modo analogo si può stabilire che tutte le persone hanno (almeno) un
nome, e che tutte e sole le persone hanno (almeno) un cognome:
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ⊆ ≥ 1𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁;
𝑇𝑇 ≡ ∀𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶– . 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃,
𝑇𝑇 ≡ ∀𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶. 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆,
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ ≥ 1𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶
Si supponga ora di voler rappresentare il fatto che “celibe” è uno stato
civile. È un errore abbastanza
comune scrivere una definizione del tipo
(𝟑𝟑 ∗) 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ⊆ 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 − 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶
L’espressione tuttavia, è incompatibile con l’uso che fatto precedentemente
del termine CELIBE: dalla (2) e dalla (3∗), infatti, si otterrebbe
𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 − 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴)
che significa che Antonio è uno stato civile! L’affermazione che “Celibe” è
uno stato civile, infatti, non significa che l’insieme dei celibi sia un
sottoinsieme degli stati civili, ma piuttosto che “celibe” è un’istanza di
stato civile.
48. CAPITOLO 11: ANALISI SEMANTICA
42
Poiché “Celibe” è stato trattato come una classe, però, è impossibile in
una DL asserire che “Celibe” sia a sua volta un’istanza di un’altra classe:
si tratterebbe di un’asserzione del secondo ordine, non esprimibile in FOL
e a maggior ragione non esprimibile in una DL1.
Per esprimere il fatto che “Celibe” è uno stato civile occorre reificare la
classe dei celibi, introducendo un nominale che funga da rappresentante
della classe (“reificare” un’entità significa sempre introdurre nell’universo
un individuo che la rappresenta). Ecco una possibile soluzione:
𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 − 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ≡ {𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠}
𝑇𝑇 ≡ ∀𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆– . 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑇𝑇 ≡ ∀𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 − 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ = 1𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ≡ ∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. {𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐}
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ≡ ∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. {𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐}
𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≡ ∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. {𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠}
A questo punto è ancora possibile asserire la (2), da cui si può dedurre:
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎),
𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎, 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐)
Si noti che le definizioni date sopra non sono sufficienti a dedurre che gli
insiemi dei celibi, dei coniugati e dei separati sono disgiunti. È vero che il
ruolo StatoCivile è definito come ruolo funzione sul dominio PERSONA,
e ciò comporta che ogni persona abbia esattamente uno stato civile;
tuttavia non abbiamo specificato che i tre stati civili sono diversi fra loro.
Ciò può essere fatto aggiungendo all’ABox l’asserzione
≠ (𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠)
A questo punto, dalla (2) è anche possibile dedurre:
¬𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎)
¬𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆(𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎)
49. Antonio Tandoi Ingegneria della conoscenza
43
11.2 LE TASSONOMIE
La forma più semplice che un’ontologia può assumere è la tassonomia, che consiste nella
semplice classificazione gerarchica (ovvero strutturata ad albero) delle entità di un campo
applicativo.
Innanzitutto, si definisce partizione la definizione di una classe come unione di un numero
finito di sottoclassi disgiunte fra loro, ossia:
𝐴𝐴 ≡ 𝐵𝐵1 ∪ … ∪ 𝐵𝐵𝐵𝐵,
(𝟒𝟒) 𝐵𝐵𝐵𝐵 ∩ 𝐵𝐵𝐵𝐵 ≡ ⊥ 𝑝𝑝𝑝𝑝𝑝𝑝 1 ≤ 𝑖𝑖 < 𝑗𝑗 ≤ 𝑛𝑛.
Nel seguito, per concisione si abbrevierà la (4) scrivendo:
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝐵𝐵1, . . . , 𝐵𝐵𝐵𝐵).
Una tassonomia è una insieme di partizioni che inizia da un’unica classe, detto radice della
tassonomia, e prosegue poi per livelli.
TASSONOMIE DI CLASSI
Per esempio:
Di seguito presentiamo una tassonomia dei principali strumenti musicali
utilizzati nelle orchestre sinfoniche (l’incolonnamento mette in evidenza la
struttura ad albero):
1. 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≡ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ∪ 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 ∪ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∪ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶, 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹, 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃, 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝐴𝐴);
2. 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ≡ 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ∪ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃,
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃);
3. 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≡ 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ∪ 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ∪ 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ∪ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶,
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉, 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉, 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉, 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶);
4. 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴, 𝐹𝐹𝐹𝐹 𝐹𝐹𝐹𝐹𝐹𝐹 ≡ 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ∪ 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂,
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿, 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂);
5. 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≡ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 ∪ 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂 ∪ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ∪ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹,
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹, 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂, 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶, 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹);
6. 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂 ≡ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ∪ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 ∪ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 ∪ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇,
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶, 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇, 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇, 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇);
7. 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ≡ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 ∪ 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ∪ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 ∪ 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇,
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷(𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇, 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺, 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇, 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇);
50. CAPITOLO 11: ANALISI SEMANTICA
44
8. 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 ≡ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ∪ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ∪ 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ∪ 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂,
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃, 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶, 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶, 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂).
Nell’ontologia riportata sopra, i termini atomici della tassonomia (come
VIOLINO, VIOLA ecc.) denotano insiemi di individui che sono istanze di
strumenti (istanze di violini, di viole ecc). Nell’ABox potremmo quindi
avere l’asserzione (𝟓𝟓) 𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽𝑽(𝒗𝒗), dove il nominale ‘v’ fa riferimento a un
violino specifico (ovvero, a una particolare istanza della classe dei violini).
Questo genere di tassonomia sarà denominato tassonomia di classi.
TASSONOMIE DI TIPI
Per esempio:
Si supponga di voler asserire che una certa persona, poniamo Uto Ughi,
suona il violino. Con ciò non si intende dire che Uto Ughi suona un’istanza
particolare di violino, bensì il violino in generale. È possibile rappresentare
la cosa nel modo seguente.
Innanzi tutto introduciamo un ruolo, Suona, che mette in relazione persone
e strumenti:
𝑇𝑇 ≡ ∀𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆– . 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃,
𝑻𝑻 ≡ ∀𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺. 𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺.
Poi si asseriscono i fatti:
𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖, “𝑈𝑈𝑈𝑈𝑈𝑈”), 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖, “𝑈𝑈𝑈𝑈ℎ𝑖𝑖”),
(6) ∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖)
Dalla (6) si può ricavare per via di ragionamento:
∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖) Uto Ughi suona uno strumento ad
arco
∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖) Uto Ughi suona uno strumento a
corde
∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖) Uto Ughi suona uno strumento
Si può anche specificare che Uto Ughi suona soltanto il violino:
∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆– . {𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖} ⊆ 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
51. Antonio Tandoi Ingegneria della conoscenza
45
Con la (6), però, si è asserito che esiste una particolare istanza di violino
che Uto Ughi suona. Ciò che si vuole fare, invece, è mettere in relazione
l’individuo Uto Ughi con la classe dei violini, ovvero qualcosa tipo:
(7 ∗) ∃𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆. {𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉}(𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢ℎ𝑖𝑖)
Naturalmente la (7∗) non può essere asserita in OWL, dato che una
connessione fra individui e insiemi è una relazione del secondo ordine. Si
può però reificare le classi di strumenti, introducendo particolari individui
(come ‘violino’, ‘viola’ ecc) che rappresentano non singoli strumenti, ma
tipi di strumenti.
Nel seguito si sviluppa la tassonomia degli strumenti basandosi su una
tassonomia di tipi. Per semplicità si classificheranno i tipi terminali
(ovvero, i tipi degli oggetti che formano le classi foglia della tassonomia,
come i violini e le viole).
Si assuma di avere un termine atomico, TIPO, che raccoglie tutti i tipi
terminali, e un altro termine, OGGETTO, che raccoglie gli individui cui è
consentito assegnare un tipo. Si assuma che i due termini siano disgiunti:
𝐷𝐷𝑖𝑖 𝑠𝑠𝑗𝑗(𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇, 𝑂𝑂𝑂𝑂𝐺𝐺𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸)
Si introduce, poi un ruolo funzionale, Tipo, per assegnare al più un tipo
terminale a ogni oggetto:
𝑇𝑇 ≡ ∀𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇– . 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂
𝑇𝑇 ≡ ∀𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇. 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
𝑇𝑇 ≡ ≤ 1𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
Si definiscono i tipi terminali degli strumenti:
{violino, viola, violoncello, contrabbasso,arpa, flauto, oboe, clarinetto, fagotto, corno,
tromba, trombone, tuba, timpano, grancassa, tamburo, triangolo, pianoforte, celesta,
cembalo, organo} ⊆ TIPO
e specifichiamo che sono tutti diversi fra loro:
≠(violino, viola, violoncello, contrabbasso, arpa, flauto, oboe, clarinetto, fagotto, corno,
tromba, trombone, tuba, timpano, grancassa, tamburo, triangolo, pianoforte, celesta,
cembalo, organo)