Ingegneria della conoscenza



Documenti analoghi
ALGEBRA DELLE PROPOSIZIONI

PROCESSO DI INDICIZZAZIONE SEMANTICA

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Capitolo 2. Operazione di limite

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Alcune nozioni di base di Logica Matematica

Linguaggi e Paradigmi di Programmazione

(anno accademico )

Introduzione all Information Retrieval

LE FUNZIONI A DUE VARIABILI

Lezione 8. La macchina universale

risulta (x) = 1 se x < 0.

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Appunti sulla Macchina di Turing. Macchina di Turing

4 3 4 = 4 x x x 10 0 aaa

Automazione Industriale (scheduling+mms) scheduling+mms.

Lezioni di Matematica 1 - I modulo

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Progettaz. e sviluppo Data Base

database: modello entityrelationship

Fasi di creazione di un programma

Corrispondenze e funzioni

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Database. Si ringrazia Marco Bertini per le slides

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Informatica (Basi di Dati)

Esercitazione di Basi di Dati

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Corso di Informatica

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

1. PRIME PROPRIETÀ 2

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Strutturazione logica dei dati: i file

Errori più comuni. nelle prove scritte

Teoria degli insiemi

Soluzione dell esercizio del 2 Febbraio 2004

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Il database management system Access

Calcolatori: Algebra Booleana e Reti Logiche

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Database 1 biblioteca universitaria. Testo del quesito

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Algebra di Boole ed Elementi di Logica

Progettazione di Basi di Dati

Predicati e Quantificatori

Rappresentazione della Conoscenza. Lezione 10. Rappresentazione della conoscenza, D. Nardi, 2004, Lezione 10 0

CURRICULUM SCUOLA PRIMARIA MATEMATICA

MODELLO RELAZIONALE. Introduzione

Dall italiano al linguaggio della logica proposizionale

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Ascrizioni di credenza

I libri di testo. Carlo Tarsitani

TECNICHE DI SIMULAZIONE

Che volontari cerchiamo? Daniela Caretto Lecce, aprile

Dimensione di uno Spazio vettoriale

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

1. BASI DI DATI: GENERALITÀ

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Modellazione dei dati in UML

Anno 1. Definizione di Logica e operazioni logiche

leaders in engineering excellence

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Concetti di base di ingegneria del software

Rappresentazione grafica di entità e attributi

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Corso di Informatica

Lezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme:

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

( x) ( x) 0. Equazioni irrazionali

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Gestione della memoria centrale

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Convertitori numerici in Excel

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S A. Pisani, appunti di Matematica 1

Elementi di Psicometria con Laboratorio di SPSS 1

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

IL SISTEMA INFORMATIVO

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Contabilità generale e contabilità analitica

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2)

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

Informatica per le discipline umanistiche 2 lezione 14

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili

ISTITUTO COMPRENSIVO DI CANEVA DIPARTIMENTO AREA MATEMATICA-SCIENZE-TECNOLOGIA Scuola Primaria di SARONE. Il Supermercato a scuola

Tecnologie dell informazione e della comunicazione per le aziende

IDEE PER LO STUDIO DELLA MATEMATICA

10. Insiemi non misurabili secondo Lebesgue.

A.S CLASSE PRIMA SCUOLA PRIMARIA D ISTITUTO COMPETENZA CHIAVE EUROPEA DISCIPLINA

Transcript:

Ingegneria della conoscenza Appunti dalle lezioni 2005-06 Marco Colombetti, Politecnico di Milano Parte I: Le logiche descrittive e il linguaggio OWL 1. L ingegneria della conoscenza Il termine ingegneria della conoscenza (knowledge engineering, KE) è stato coniato da E. Feigenbaum (1977). Intesa come ramo applicativo dell intelligenza artificiale, la KE si occupa del progetto, della realizzazione e del mantenimento di sistemi basati su conoscenze (knowledge based system, KBS) e in particolare di sistemi esperti (vedi ad es. Stefik, 1995). In generale, un sistema basato su conoscenze è un sistema informatico in grado di sfruttare le informazioni contenute in una base di conoscenze (knowledge base, KB) mediante procedure automatiche di ragionamento. In prima approssimazione, la conoscenza può essere definita come informazione disponibile per l azione (Dretske, 1981). È solo grazie alle loro conoscenze che gli esseri umani possono agire, e in particolare agire in modo razionale, ovvero basando le loro azioni su ragioni. Anche nei computer risiedono grandi quantità di informazioni, ma solo una piccola parte di queste può essere sfruttata dagli stessi computer per agire: basta pensare che la stragrande maggioranza dei file memorizzati nei computer è costituita da documenti in linguaggio naturale. L obiettivo di questo corso è esplorare la possibilità di automatizzare certe attività che oggi richiedono l intervento umano, perché i computer non riescono a sfruttare appieno le informazioni disponibili. 1.2 Tipi di conoscenze Dicevamo che la conoscenza è informazione disponibile per l azione. Una prima distinzione va tracciata fra conoscenze dichiarative e conoscenze procedurali, ovvero fra conoscere (knowing that) e saper fare (knowing how) 1. Si conosce la storia romana e si sa nuotare ( so nuotare in inglese è I can swim, ovvero sono capace di nuotare ). Conoscere o sapere il Java significa conoscere il linguaggio e saper programmare con il linguaggio. In questo corso ci concentriamo sul conoscere, sul knowimg that. A sua volta, il knowing that può essere diviso in tre parti: conoscenze terminologiche: conoscenza del lessico di una lingua; ad esempio, so che madre significa donna con almeno un figlio ; conoscenze nomologiche: conoscenza di regolarità, di leggi generali che regolano il mondo; ad esempio so che le madri sono sempre più anziane dei loro figli, che le madri in genere amano i loro figli, e così via; conoscenze fattuali: conoscenza di fatti particolari; ad esempio, so che Marco è figlio di Laura. Un caso solo apparentemente diverso è costituito dalla conoscenza di individui (nel senso di oggetti individuali, concreti o astratti, viventi o non viventi, animati o inanimati); ad esempio, conosco Barbara, conosco la Nona di Beethoven. 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 (Barbara, la Nona di Beethoven). 1 Questa distinzione è stata analizzata per la prima volta da Gilbert Ryle (1940).

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 2 1.3 Fonti di conoscenza Le conoscenze di un soggetto provengono da varie fonti, fra cui le più ovvie sono: l esperienza diretta, ovvero l interazione del soggetto con il suo ambiente; il ragionamento: deduttivo (dalle premesse alle conclusioni), abduttivo (dagli effetti osservati alle possibili cause), induttivo (dai fatti specifici alle regole generali); la comunicazione, ovvero l uso di sistemi di segni e in particolare del linguaggio naturale per trasferire informazioni da un soggetto a un altro. Qualunque sia la fonte, poi, è essenziale la funzione della memoria, nel senso di capacità di conservare nel tempo elementi di conoscenza e soprattutto di reperirli con efficienza quando occorre farne uso. 1.4 Il ruolo della conoscenza nei sistemi informatici Le conoscenze servono per: interpretare la realtà: capire che cosa è successo (ad es., ipotizzare le cause di un evento che si è verificato); prevedere l evoluzione della realtà: prevedere con approssimazione accettabile quali eventi si verificheranno nel futuro; agire in modo razionale modificando la realtà: costruire piani d azione per raggiungere determinati obiettivi. A noi interessano in particolare gli usi adatti a un sistema informatico. Di questo argomento si è sempre occupata l intelligenza artificiale: è quindi utile tracciare una storia minima di quest area dell informatica. Prima fase (1956 1965): l intelligenza artificiale e la risoluzione automatica di problemi L intelligenza artificiale (IA o AI, da artificial intelligence) 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 strategie per tentativi ed errori. Seconda fase (1965 1975): la rappresentazione delle conoscenze Ci si rende presto conto che la capacità di risolvere problemi dipende in modo essenziale dalle conoscenze a disposizione. Il problema principale diventa rappresentare le conoscenze in modo tale che un programma possa effettivamente utilizzarle; nasce quindi un grande interesse per i metodi di rappresentazione delle conoscenze. Si sviluppa una controversia fra i sostenitori delle rappresentazioni dichiarative e i sostenitori delle rappresentazioni procedurali (vedi il par. 1.2). In ambedue i casi, comunque, l approccio adottato è simbolico, nel senso che le conoscenze sono rappresentate tramite strutture dati contenenti simboli (come ad es. le formule della logica). Terza fase (1975 1985): l ingegneria della conoscenza e i sistemi esperti Ci si sposta verso applicazioni realistiche e d interesse industriale. Aumenta l investimento economico nel settore e si sviluppa l ingegneria della conoscenza. 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 del mercato nei sistemi basati su conoscenze, anche a causa di un incauto overselling e dell impossibilità di soddisfare le attese. Si indagano approcci alternativi, denominati spesso subsimbolici o non simbolici, in contrasto con l approccio simbolico tradizionale (ad es. le reti neurali, la computazione evolutiva e così via, noti anche come metodi di soft computing). Questi metodi si rivelano più adatti dei metodi simbolici per certi tipi di problemi (ad es. l analisi di segnali, l apprendimento automatico e così via), ma in molte applicazioni non eliminano la necessità di rappresentare conoscenze simboliche.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 3 Quinta fase (1995 ): gli agenti e le ontologie Il grande successo del web riporta in prima linea, in forma nuova, 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. Un concetto fondamentale è quello di ontologia, che ha cominciato a precisarsi negli anni novecentottanta e che tratteremo in dettaglio in questo corso. 2. L ingegneria della conoscenza e il web semantico Con i metodi dell ingegneria della conoscenza sono stati sviluppati diversi tipi di applicazioni d interesse industriale. A partire dal 1975 e per tutti gli anni novecentottanta le applicazioni più diffuse sono stati 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 dei guasti di impianti industriali, la diagnosi medica, la configurazione di sistemi informatici complessi, il progetto industriale, 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ù tradizionali avevano fallito. Tuttavia i sistemi esperti non sono mai diventati prodotti di grande diffusione, e questo per almeno due ragioni: lo sviluppo di un sistema esperto è un impresa lunga e costosa, che può essere affrontata soltanto per applicazioni di nicchia in cui sia possibile investire una notevole quantità di risorse; i sistemi esperti richiedono una notevole competenza anche per l uso e soprattutto per il mantenimento, e proprio perché si basano su conoscenze specialistiche non possono essere facilmente trasferiti da un area applicativa a un altra. Oggi la tecnologia dei sistemi esperti continua a rivestire interesse in alcuni settori applicativi, ma è improbabile che possa dar luogo a prodotti di vasta diffusione. A partire dagli anni novecentonovanta ha cominciato a profilarsi un altro settore di grande interesse per l ingegneria della conoscenza: il web semantico (Antoniou, van Harmelen, 2004). Prima di occuparci di questo concetto tracceremo una breve descrizione di alcuni fattori che stanno influenzando il progresso dell informatica. 2.1 Alcuni sviluppi recenti dell informatica Da più di un decennio assistiamo a una significativa rivoluzione nel campo dell informatica, cui le tecnologie del web stanno dando un notevole contributo. A grandi linee i punti centrali di questa rivoluzione sono: la centralità dei dati, l interoperabilità delle applicazioni e l utilizzo delle tecnologie del web in reti di diverse tipologie. La centralità dei dati Qualsiasi applicazione informatica è costituita da dati e programmi; le due componenti non hanno però 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 iniziale del sistema e all assegnamento di un valore a un piccolo numero di parametri del sistema. Sulla base di questi dati è possibile condurre complesse simulazioni per indagare, ad esempio, l evoluzione nel tempo dello stato del sistema. Per ottenere risultati di qualità, naturalmente, sono estremamente critici gli algoritmi utilizzati per la simulazione; ci troviamo quindi di fronte a un tipo di applicazione che potremmo denominare centrata sul processo. 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, e i processi si limitano spesso a reperire i dati necessari e a fornirne una presentazione adeguata. Le applicazioni di questo tipo possono essere denominate centrate sui dati.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 4 Naturalmente non avrebbe senso chiedersi quale tipo di applicazione informatica sia più importante: a seconda delle necessità si utilizzerà un sistema centrato sul processo o centrato sui dati. È vero però che le applicazioni centrate sui dati sono sempre più diffuse in termini percentuali: lo stesso web si presenta essenzialmente come un colossale archivio di dati interrogato quotidianamente da milioni di utenti. Non è quindi scorretto affermare che negli ultimi anni l interesse dell informatica si è gradualmente spostato dai sistemi centrati sul processo ai sistemi centrati sui dati. L interoperabilità interna Per molti anni le aziende hanno sviluppato e utilizzato applicazioni chiuse, che operano su dati per lo più in formato proprietario. Questo tipo di applicazioni crea problemi già all interno della singola azienda, perché in una situazione del genere è difficile far interagire applicazioni distinte; a maggior ragione è arduo combinare applicazioni appartenenti ad aziende diverse. All interno di una singola azienda è possibile raggiungere un buon livello d interoperabilità utilizzando le tecnologie basate su XML; in particolare le tecnologie del web basate su XML consentono di sviluppare intranet aziendali integrando dati e servizi web (web services, WS) rivolti verso l interno dell azienda. Quando però si ha l esigenza di superare i confini di un intranet queste tecnologie si rivelano spesso insufficienti. L interoperabilità esterna e i sistemi aperti Da qualche anno è nato un forte interesse per le applicazioni aperte, in grado cioè di interoperare con applicazioni appartenenti ad aziende diverse (all interno di un extranet che connetta aziende federate) o con applicazioni comunque distribuite su internet. Ad esempio, i servizi web possono essere utilizzati anche all interno di un intranet o di un extranet, ma è chiaro che le loro maggiori potenzialità si rivelano al livello di internet. 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 significato dei dati). Ad 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 del fatto che prezzo e costo sono sinonimi, almeno nel contesto dell applicazione in oggetto (si tratta di un elemento di conoscenza terminologica, vedi il par. 1.2). 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 (ovvero senza intervento umano). Questo fatto porta oggi in primo piano sia le tecnologie basate su XML, sia i modelli e le tecniche sviluppati nell ultimo trentennio dall ingegneria della conoscenza. 2.2 Il web semantico Come è noto, l invenzione del web è attribuita a Tim Berners-Lee. Nella concezione di Berners-Lee, tuttavia, il web come lo conosciamo oggi è solo il primo gradino di una scala che prevede al gradino successivo il web semantico. L idea è semplice: perché possano essere elaborati in modo completamente automatico, non è sufficiente che i dati sul web abbiano una struttura chiaramente definita (come è possibile fare utilizzando XML): è anche necessario che i dati abbiano un significato condiviso dalla comunità che li utilizza.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 5 Per consentire lo sviluppo del web in questa direzione il W3C ha proposto e sta tuttora elaborando un insieme di tecnologie standardizzate (RDF, RDFS, OWL,...) che analizzeremo in dettaglio durante il corso. 2.3 Il triangolo aristotelico L idea del web semantico è dunque centrata sull assegnamento di un significato ai dati presenti sul web. Il concetto di significato, a sua volta, chiama in causa il rapporto fra linguaggio e realtà. Come tutti sappiamo, molti termini del linguaggio corrispondono a entità del mondo reale: ad esempio, il termine seggiola (un sostantivo dell italiano) può corrispondere all insieme di tutte le seggiole, oppure a una seggiola specifica (un individuo membro dell insieme delle seggiole). La relazione fra linguaggio e realtà (e quindi fra il termine seggiola e l insieme delle seggiole concrete) è detta relazione semantica. Secondo una tradizione antica (che nella storia del pensiero occidentale si può far risalire ad Aristotele), il rapporto fra linguaggio e realtà non è diretto, ma è mediato dai concetti: chi parla l italiano riesce a collegare la parola seggiola alle seggiole reali proprio perché possiede un concetto di seggiola; In altre parole, la relazione fra linguaggio e realtà è mediata dalla mente. Più precisamente, dobbiamo distinguere fra: il termine seggiola dell italiano ( chair in inglese e così via); l insieme di tutte le seggiole che esistono nella realtà (l estensione del termine seggiola ); il concetto di seggiola così come è rappresentato nella mente degli esseri umani (l intensione del termine seggiola ). La relazione fra queste entità è schematizzata nei triangoli riportati nella figura 2.1. Il gergo dell ingegneria della conoscenza spesso confonde i tre vertici del triangolo: così, una definizione di seggiola sarà indifferentemente denominata termine, concetto o classe. Questo abuso linguistico è innocuo purché si tenga in mente la distinzione appena introdotta; a rigore, comunque, nei sistemi informatici sarebbe preferibile parlare sempre di termini, dato che un gli oggetti informatici sono comunque simboli appartenenti a un linguaggio formale. 3. I sistemi per la rappresentazione delle conoscenze Come abbiamo visto, il nostro obiettivo principale è rendere certe conoscenze disponibili ai sistemi informatici; il problema, quindi, è come rappresentare le conoscenze in un formato che sia computer readable (nel senso che un computer possa leggere le conoscenze e soprattutto utilizzarle per eseguire certi compiti d interesse applicativo). Dato che questo corso non ha una prospettiva storica, ci piazzeremo subito all interno della problematica delle applicazioni al web (vedi il par. 1.4), e concentreremo la nostra attenzione soltanto sulle rappresentazioni simboliche e dichiarative. Il paradigma di riferimento per le rappresentazioni dichiarative è la logica simbolica (o formale), con particolare riguardo alla logica dei predicati del primo ordine (first order logic, FOL). mente concetto linguaggio realtà termine insieme Figura 2.1. Triangoli aristotelici

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 6 In FOL si assume che tutte le rappresentazioni riguardino un insieme non vuoto (e per il resto arbitrario) di individui, detto universo 2. Di questi individui possiamo rappresentare proprietà oppure relazioni che li 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, Alberto ha dato il suo cellulare a Barbara, ecc.). Nei sistemi di rappresentazione che esamineremo si fanno assunzioni analoghe, con l ulteriore limitazione che le relazioni prese in considerazione sono esclusivamente binarie. Ogni metodo per la rappresentazione delle conoscenze si basa su due componenti principali: un linguaggio per la rappresentazione di conoscenze e un insieme di procedure di ragionamento. 3.1 Linguaggi di rappresentazione Un linguaggio per la rappresentazione di conoscenze è un linguaggio formale, con sintassi testuale o grafica, le cui espressioni sono utilizzate per rappresentare elementi di conoscenza. Come esempio vogliamo rappresentare il significato del termine madre come donna con almeno un figlio. Per utilizzare FOL parafrasiamo la definizione di madre come: (x è una madre) se e solo se (x è una donna ed esiste almeno un y tale che x è genitore di y). Possiamo esprimere questa definizione usando una notazione testuale, come ad esempio il linguaggio di FOL solitamente presentato nei libri di logica 3 : x (MADRE(x) DONNA(x) y GenDi(x,y)), dove: x... per ogni x,... (il quantificatore universale) y... esiste un y tale che... (il quantificatore esistenziale)......... se e solo se... (il connettivo bicondizionale)......... e... (il connettivo di congiunzione) MADRE(x), DONNA(x) due predicati monoargomentali, che esprimono proprietà di x GenDi(x,y) un predicato biargomentale, che esprime una relazione binaria fra x e y Più spesso, nelle applicazioni informatiche si incontrano notazioni testuali puramente ASCII, che non utilizzano simboli matematici come e. Ad esempio in CL (Common Logic Standard, una proposta di standard ISO per la logica predicativa, http://cl.tamu.edu/) la stessa definizione apparirebbe come: (forall (?x) (iff (MADRE?x) (and (DONNA?x) (exists (?y) (GenDi?x?y))))) Le espressioni possono anche essere scritte in un formato adatto allo scambio dei dati fra applicazioni software: tipicamente si tratta di documenti strutturati secondo un opportuno DTD o schema XML. Ad esempio, seguendo il DTD proposto per CL, alla formula precedente corrisponde il documento XML di seguito riportato: 2 3 Nei testi di logica ciò che qui chiamiamo universo è generalmente detto dominio. Preferiamo utilizzare il termine universo per evitare confusioni con il dominio di un ruolo (vedi il par. 5). Per i simboli di FOL si è usato il font Symbol.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 7 <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>gendi</con> <var>x</var> <var>y</var> </atom> </exists> </and> </iff> </forall> </formula> Indipendentemente dalla notazione prescelta (classica, ASCII, XML,...) occorrerà comunque che le espressioni utilizzate abbiano un significato definito in modo rigoroso e privo di ambiguità. 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 ha una semantica precisamente definita. 3.2 Ragionamento automatico Nel contesto in cui ci stiamo muovendo, per ragionamento s intende il ragionamento deduttivo o deduzione. Una deduzione è 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. Ad esempio, dati come premesse la definizione di madre, il fatto che Laura è una donna, il fatto che Laura è genitore di Marco, si può dedurre come conclusione che Laura è una madre.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 8 In FOL la deduzione può essere rappresentata in vari modi, ad esempio tramite la prova seguente (il metodo di prova utilizzato è noto come calcolo della deduzione naturale ; l ultima riga della prova rappresenta la conclusione): 1. x (MADRE(x) DONNA(x) y GenDi(x,y)) premessa 2. DONNA(laura) premessa 3. GenDi(laura,marco) premessa 4. MADRE(laura) DONNA(laura) y GenDi(laura,y) da 1 per eliminazione di 5. y GenDi(laura,y) da 3 per introduzione di 6. DONNA(laura) y GenDi(laura,y) da 2 e 3 per introduzione di 7. MADRE(laura) 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. C è però un problema: in FOL la procedura di deduzione (detta anche procedura di prova o calcolo) non è una procedura di decisione, ma soltanto di semidecisione. Ciò significa che: quando la conclusione è deducibile delle premesse, la procedura termina in un numero finito di passi producendo una prova; quando invece la conclusione non è deducibile delle premesse, la procedura può non terminare. In parole povere, un sistema informatico può andare in ciclo se tenta di dedurre da un insieme di premesse una conclusione che in effetti non è deducibile delle premesse. L indecidibilità di FOL dipende dalla notevole espressività del linguaggio: come è naturale, più un linguaggio di rappresentazione è espressivo, più sono problematiche le procedure di ragionamento basate su di esso. Molte ricerche nel campo dei linguaggi di rappresentazione delle conoscenze 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 (che quindi termini in ogni caso dopo un numero finito di passi, sia quando la conclusione è deducibile dalle premesse, sia quando non lo è); la procedura di decisione abbia complessità computazionale accettabile (ovvero richieda una quantità accettabile di risorse di calcolo). I sistemi di questo tipo hanno preso il nome di logiche descrittive (description logic, DL). Le DL utilizzano una sintassi semplificata rispetto a FOL. Ad esempio, le tre premesse 1. x (MADRE(x) DONNA(x) y GenDi(x,y)) 2. DONNA(laura) 3. GenDi(marco,laura) in logica descrittiva verrebbero rappresentate come 4 : 1. MADRE DONNA GenDi 2. DONNA(laura) 3. GenDi(laura,marco) Nel mondo delle applicazioni si usano spesso interfacce di tipo visivo. In alternativa è possibile utilizzare una notazione testuale ASCII, come (define-concept MADRE (and DONNA (some GenDi))). Si è inoltre diffusa l abitudine, sicuramente poco pratica per il lettore umano, di rappresentare le espressioni direttamente con la sintassi XML utilizzata per lo scambio di dati fra applicazioni software. 4 Per i simboli delle DL si è utilizzato il font Lucida Math Symbol.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 9 3.3 Le rappresentazioni In svariate aree dell informatica si utilizzano sistemi di rappresentazione per scopi ed usi differenti. Sono ad esempio sistemi di rappresentazione le basi di dati, i diagrammi UML, i documenti XML. Al di là delle ovvie differenze, tutti i sistemi di rappresentazione condividono alcune caratteristiche comuni, che cercheremo qui di analizzare. Il primo concetto da analizzare è la distinzione fra 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: Livello 1: modello concreto. Il modello concreto di un frammento di realtà è la rappresentazione dei fatti che sussistono nel frammento di realtà (conoscenze fattuali sul frammento di realtà); ad esempio, Marco Colombetti è un docente di una facoltà di ingegneria del Politecnico di Milano. Livello 2: modello concettuale. Il modello concettuale di un frammento di realtà è una rappresentazione dei concetti utilizzati per formulare il modello concreto (conoscenze terminologiche e nomologiche); ad esempio, per esprimere il fatto dell esempio precedente è necessario definire i concetti di persona (dotato di nome e cognome), di docente, di facoltà e così via. Livello 3: metamodello. Il metamodello di un sistema di rappresentazione è la specifica degli strumenti formali utilizzabili per definire il modello concettuale e il modello concreto; ad esempio: il linguaggio di FOL, oppure il formalismo degli schemi E-R, oppure il formalismo del diagramma delle classi UML, e così via. Nella tabella 3.1 presentiamo i tre livelli per alcune tipologie di rappresentazione. 3.4 I sistemi per la rappresentazione delle conoscenze In che cosa, allora, un KBS (vedi l inizio del par. 1) si distingue, poniamo, da una rappresentazione nel campo delle basi dei dati o di UML? La differenza principale sta in questo: nei campi delle basi di dati e della specifica del software, i modelli concettuali (E-R, UML ecc.) rappresentano un passo importante nello sviluppo di un sistema, ma non fanno parte del prodotto finale; nei KBS, invece, i modelli concettuali sono parte integrante del prodotto finale, in quanto sono disponibili e vengono utilizzati a run time dai sistemi software. Tabella 3.1. I tre livelli delle rappresentazioni. basi di dati specifiche SW logica RDF DL metamodello il formalismo E-R il formalismo dei diagrammi UML la logica predicativa del primo ordine il formalismo N3 (triple RDF) una particolare DL modello concettuale un modello concettuale E-R un diagramma delle classi una teoria del primo ordine un documento RDFS una TBox modello concreto un istanza di base di dati le istanze delle classi il diagramma di un modello (ovvero, le formule atomiche prive di variabili che descrivono un particolare modello) un documento RDF un ABox

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 10 TBox ABox a c c e s s o servizi di ragionamento editing applicazioni SW Figura 3.1. L architettura di un KBS. Un KBS, infatti, è costituito da vari componenti (fig. 3.1): una base di conoscenze (KB), a sua volta spesso costituita da due componenti distinte: una terminological box (TBox), che rende disponibile e accessibile la rappresentazione formale del modello concettuale di un frammento di realtà; un assertion box (ABox), che rende disponibile e accessibile la rappresentazione formale del modello concreto di un frammento di realtà; un interfaccia di accesso, che consente l accesso alle conoscenze contenute nella TBox e nella ABox da parte di applicazioni software, e tipicamente di: un insieme di servizi di ragionamento (reasoning services), ovvero un applicazione software in grado di dedurre nuove conoscenze dalle conoscenze contenute nella TBox e nella ABox; un interfaccia di editing, ovvero un applicazione software che consente la gestione dei contenuti della TBox e della ABox da parte di un operatore umano; un insieme di applicazioni software che dipendono dalla specifica destinazione del KBS. Nei KBS odierni, l interoperabilità con le varie applicazioni software è assicurata dall adozione sistematica di standard basati su XML. Ciò consente, in particolare, di utilizzare strumenti sviluppati e mantenuti da fornitori differenti. In questo corso faremo riferimento alla libreria Jena come interfaccia di accesso, a Protégé 2000 come interfaccia di editing e a Pellet come supporto per i servizi di ragionamento. 4. Primi elementi di logica descrittiva Come si è già detto, gli odierni linguaggi per la definizione di ontologie sono basati su logiche descrittive (DL); ad esempio, il linguaggio DAML+OIL è basato su una DL detta SHIQ, mentre il linguaggio OWL (lo standard attualmente sostenuto dal W3C) è basato su una DL detta SHOIN(D n ) (vedi il par. 7). A sua volta ogni DL si caratterizza per l utilizzo di un certo numero di operatori logici, scelti da un repertorio di operatori possibili. In questo paragrafo introdurremo alcuni operatori di uso comune. 4.1 Termini, equivalenze e sussunzioni Il linguaggio formale di una DL serve a definire termini che descrivono concetti. Ad esempio, l espressione DONNA è un termine atomico, che intuitivamente significa donna. L espressione (4.1) PERSONA FEMMINA è un termine complesso, che si legge persona e femmina o persona intersezione femmina e intuitivamente significa persona di genere femminile.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 11 Nelle DL è d uso indicare generici termini atomici con le lettere A e B, e generici termini arbitrari (cioè atomici o complessi) con le lettere C e D. Inoltre i termini sono spesso chiamati concetti (perché descrivono concetti) o classi (perché denotano insiemi di oggetti della realtà). L espressione (4.2) DONNA PERSONA FEMMINA, che intuitivamente significa donna equivale a persona femmina, è detta equivalenza terminologica. In generale un equivalenza terminologica C D, che si legge C equivale a D, esprime appunto l equivalenza fra i due termini C e D. Nel caso particolare in cui si abbia A C (con A atomico) si parla di definizione terminologica. Dunque la 4.2 è una definizione terminologica: più precisamente si tratta della definizione del termine DONNA a partire dai termini PERSONA e FEMMINA. L espressione (4.3) RAGAZZA DONNA, che si legge ragazza è sussunto da donna o ( donna sussume ragazza ) e intuitivamente significa una ragazza è una donna, è detta sussunzione terminologica. In generale una sussunzione terminologica, C D, esprime il fatto che ogni individuo descritto dal termine C è anche descritto dal termine D. Come è lecito attendersi, l equivalenza C D coincide con la doppia sussunzione C D e D C. 4.2 Ontologie Chiameremo enunciati terminologici, le espressioni che esprimono equivalenze o sussunzioni fra termini. Enunciati di questo genere possono essere assunti come assiomi terminologici, in modo analogo a quanto si fa nelle teorie del primo ordine: un assioma terminologico è semplicemente un enunciato terminologico assunto come vero. Chiamiamo poi terminologia od ontologia un insieme finito di assiomi terminologici; un ontologia non è altro, quindi, che una teoria del primo ordine esprimibile in una DL (per una grammatica degli enunciati terminologici utilizzati in queste note si veda l Appendice I). La funzione di un ontologia è definire le relazioni di equivalenza e di sussunzione che sussistono fra un certo numero di termini. In particolare le ontologie assegnano un significato non ambiguo a un certo numero di termini atomici, in base al significato di altri termini; spesso, infatti, un termine atomico viene definito in funzione di altri termini, i quali a loro volta acquistano 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 atomici primitivi, di cui non si dà alcuna definizione. 4.3 Semantica dei termini e degli enunciati terminologici Termini ed enunciati terminologici sono espressioni di un linguaggio formale. Per utilizzare correttamente tali espressioni è necessario attribuire a tali espressioni un significato. Per le espressioni di una DL è possibile specificare una semantica formale, che associa a ogni termine e a ogni enunciato terminologico un interpretazione definita in modo insiemistico (per una definizione della semantica formale secondo queste linee si veda l Appendice II). In queste note seguiremo una strada diversa: assoceremo una semantica ai termini in modo indiretto, fornendo una traduzione di termini ed enunciati nel linguaggio della logica predicativa del primo ordine (FOL). Non si deve però dimenticare una cosa: mentre a un termine o enunciato terminologico è sempre possibile associare una

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 12 formula di FOL, non è vero l inverso: le DL sono infatti sottoinsiemi propri di FOL, e quindi esistono formule di FOL che non corrispondono ad alcun termine o enunciato terminologico (fig. 5.1). Traduzione di termini Intuitivamente, ogni termine atomico o complesso esprime un predicato monàdico, ovvero una proprietà che ciascun individuo di un universo prefissato può possedere o non possedere. In FOL i predicati sono rappresentati da formule dotate di esattamente una variabile libera (con una o più occorrenze nella formula); pertanto, la traduzione di un termine atomico o complesso in FOL è costituita da una formula con esattamente una variabile libera. D ora in avanti, se C è un generico termine indicheremo con [C] x la sua traduzione in FOL, in cui occorre x come unica variabile libera. Ogni termine atomico A si traduce con una formula del tipo A(x), dove A( ) è un simbolo predicativo a un argomento e x è una variabile. Naturalmente è possibile utilizzare come traduzione qualsiasi variante alfabetica di A(x), come ad esempio A(y). Stabilita questa regola abbiamo le traduzioni: [DONNA] x = DONNA(x), [PERSONA] y = PERSONA(y), [FEMMINA] z = FEMMINA(z). Consideriamo ad esempio la traduzione del termine DONNA nella formula predicativa DONNA(x). Dato un universo prefissato di individui, ogni termine determina un estensione, definita come l insieme di tutti gli individui dell universo cui il termine si applica. Ad esempio, se l universo coincide con la totalità degli individui presenti in un aula durante una lezione, l estensione in quell universo del termine DONNA è costituito da tutte le donne presenti nell aula. Ora, questi individui sono appunto quei possibili valori della variabile x che rendono vera la formula predicativa DONNA(x). L idea generale è questa: dato un termine atomico A, la semantica del termine ci deve consentire di identificare l estensione di A nell universo; tale estensione è rappresentata da tutti e soli gli individui dell universo che rendono vera la formula A(x) quando siano assunti come valori della x. Considerazioni analoghe varranno poi per i termini complessi. Nelle DL sono solitamente utilizzati due termini atomici predefiniti, (top) e (bottom), che corrispondono rispettivamente al termine universale (che denota la totalità degli individui esistenti nell universo) e al termine vuoto (che denota l insieme vuoto di individui). Questi due termini si traducono in FOL rispettivamente con una formula che sia vera di ogni possibile valore della x, e con una formula che sia falsa per ogni possibile valore della x; ad esempio: [ ] x = (x = x), [ ] x = (x x). L operatore d intersezione corrisponde al connettivo booleano di congiunzione; pertanto il termine complesso 4.1 si traduce come: [PERSONA FEMMINA] x = [PERSONA] x [FEMMINA] x = PERSONA(x) FEMMINA(x), dove l operatore è il connettivo di congiunzione. DL traduzione FOL Figura 4.1 Traduzione da DL a FOL.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 13 Traduzione di enunciati terminologici Gli enunciati terminologici si traducono in FOL come formule chiuse (ovvero, prive di variabili libere) quantificate universalmente. Nel seguito indicheremo rispettivamente con [C D] e [C D] le traduzioni in FOL di C D e di C D. Le regole di traduzione sono le seguenti: [C D] = x ([C] x [D] x ), [C D] = x ([C] x [D] x ), dove gli operatori e sono rispettivamente il connettivo condizionale e il connettivo bicondizionale. Ad esempio, gli enunciati 4.3 e 4.2 si traducono come [RAGAZZA DONNA] = x (([RAGAZZA] x [DONNA] x ) = x (RAGAZZA(x) DONNA(x)), [DONNA PERSONA FEMMINA] = x (([DONNA] x [PERSONA FEMMINA] x ) = x (DONNA(x) PERSONA(x) FEMMINA(x)) 5. 4.4 Negazione e disgiunzione Gli uomini sono il complemento delle donne rispetto alla totalità delle persone. Utilizzando l operatore di complemento (o negazione) è quindi possibile definire: UOMO PERSONA FEMMINA, la cui traduzione in FOL è [UOMO PERSONA FEMMINA] = x (UOMO(x) PERSONA(x) FEMMINA(x)), dove è il connettivo booleano di negazione. Un altro operatore utile è l operatore di unione (o disgiunzione), che ci permette ad esempio di definire gli esseri viventi come unione di vegetali e animali: VIVENTE VEGETALE ANIMALE. La traduzione è [VIVENTE VEGETALE ANIMALE] = x (VIVENTE(x) VEGETALE(x) ANIMALE(x)), dove è il connettivo booleano di disgiunzione (or non esclusivo). Si noti che gli operatori, e formano un algebra booleana, con come top e come bottom; in particolare: equivale a, C equivale a C, (C D) equivale a C D, (C D) equivale a C D. 5. I ruoli Oltre ai termini corrispondenti a predicati con un argomento (detti, come abbiamo visto, concetti o classi), le DL utilizzano termini corrispondenti a predicati a due argomenti, che esprimono relazioni binarie fra individui della realtà; tali termini vengono detti ruoli, o proprietà, o attributi, o relazioni. 5.1 I quantificatori Un esempio di enunciato terminologico che utilizza un ruolo è (5.1) MADRE GenDi, 5 Per ridurre le coppie di parentesi nelle formule di FOL assumiamo la seguente gerarchia di precedenza fra i connettivi binari: > > > ; inoltre gli operatori unari (il connettivo e i quantificatori) si applicano sempre alla più piccola sottoformula seguente.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 14 che intuitivamente significa ogni madre è genitore di almeno un individuo. L espressione (5.2) GenDi è un termine complesso, formato dal quantificatore esistenziale e dal ruolo GenDi. Anche in questo caso abbiamo una regola di traduzione in FOL che ci fornisce una formula dotata di un unica variabile libera: [ GenDi] x = y GenDi(x,y), dove GenDi(, ) è un predicato a due argomenti, che esprime una relazione binaria fra elementi dell universo. Si noti che la formula FOL y GenDi(x,y) contiene due variabili, x e y: la variabile y, tuttavia, è vincolata dal quantificatore esistenziale di FOL, e pertanto x è l unica variabile libera della formula. A questo punto è possibile dare la traduzione della 5.1: [MADRE GenDi] = x ([MADRE] x [ GenDi] x ) = x (MADRE(x) y GenDi(x,y)). In alcune DL il quantificatore esistenziale può essere qualificato; ad esempio, il termine (5.3) GenDi.FEMMINA denota l insieme di tutti gli individui dell universo che genitori di almeno un individuo di sesso femminile. La traduzione in FOL di un termine della forma R.C, dove R è un ruolo e C è un termine arbitrario, è: [ R.C] x = y (R(x,y) [C] y ). Ad esempio il termine 5.2 si traduce come: [ GenDi.FEMMINA] x = y (GenDi(x,y) [FEMMINA] y ) = y (GenDi(x,y) FEMMINA(y)). È facile verificare che l espressione R è equivalente all espressione R. ; infatti: [ R. ] x = y (R(x,y) [ ] y ) = y (R(x,y) (y = y)) = y R(x,y). Al di là della semantica formale, che ovviamente definisce il significato delle espressioni DL in modo rigoroso e privo di ambiguità, è importante imparare a leggere i termini in modo intuitivo ma corretto. Un errore comune consiste nel leggere i termini 5.2 e 5.3 rispettivamente come esiste un genitore ed esiste un genitore di una femmina. Queste due letture sono errate perché trattano un termine come se esprimesse una proposizione; bisogna invece ricordare che un termine rappresenta un predicato, o se si preferisce l insieme degli individui che costituisce l estensione del predicato. Pertanto il termine 5.2 rappresenta il predicato x è genitore di qualcuno oppure l insieme degli individui che sono genitori di qualcuno, e il termine 5.3 rappresenta il predicato x è genitore di (almeno) una femmina oppure l insieme degli individui che sono genitori di almeno una femmina. Le DL prevedono anche l uso del quantificatore universale. Ad esempio, il termine (5.4) GenDi.FEMMINA denota l insieme di tutti gli individui dell universo che sono genitori soltanto di femmine. La traduzione in FOL di un termine della forma R.C, dove R è un ruolo arbitrario e C è un termine arbitrario, è: [ R.C] x = y (R(x,y) [C] y ).

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 15 Ad esempio il termine 5.4 si traduce come: [ GenDi.FEMMINA] x = y (GenDi(x,y) [FEMMINA] y ) = y (GenDi(x,y) FEMMINA(y)). Anche in questo caso valgono le considerazioni già fatte per il quantificatore esistenziale: il termine 5.4 non rappresenta la proposizione tutti sono genitori di femmine, bensì il predicato tutti gli individui di cui x è genitore sono femmine o la sua estensione, ovvero l insieme degli individui che sono genitori di sole femmine. Una seconda osservazione importante è che la quantificazione universale, come in FOL, non presuppone l esistenza di almeno un individuo con le proprietà specificate. Ad esempio l insieme definito dal termine 5.4 comprende sia gli individui dell universo i cui figli sono tutti femmine, sia gli individui dell universo che siano privi di figli. In altre parole la lettura più completa del termine 5.4 è: l insieme degli individui che, se sono genitori di qualcuno, sono genitori di sole femmine. Mentre il quantificatore esistenziale si usa sia nella forma semplice R (vedi la 5.1), sia nella forma qualificata R.C (vedi la 5.3), il quantificatore universale si usa solo nella forma qualificata R.C. Infatti il termine R, equivalente come abbiamo visto all inizio del paragrafo a R., coinciderebbe semplicemente con, nel senso che sarebbe banalmente verificato per ogni individuo dell universo, in quanto la formula FOL che traduce [ R. ] x, y (R(x,y) (y = y)). è banalmente vera per ogni valore di x nell universo degli individui. Si noti infine che: R.C R equivale a R. C, equivale a R., R.C equivale a R. C. 5.2 Il ruolo inverso Dato un ruolo R, che esprime una relazione binaria R(x,y), è spesso utile poter esprimere il ruolo inverso R, che esprime semplicemente la relazione R(y,x). Avremo quindi: [ R.C] x = y (R(y,x) [C] y ), [ R.C] x = y (R(y,x) [C] y ). Ad esempio, per esprimere la relazione figlio di partendo dal ruolo GenDi utilizzeremo il ruolo inverso GenDi. Naturalmente l inverso di un ruolo inverso coincide con il ruolo originario. 5.3 Dominio e codominio I ruoli esprimono relazioni binarie fra individui dell universo. In generale, però, tali relazioni hanno senso solo limitatamente a certi sottoinsiemi dell universo; ad esempio, il ruolo GenDi mette in relazione fra loro due persone, mentre non ha senso se applicato, poniamo, alle pietre o alle nuvole. A un ruolo R si associano quindi due insiemi di individui, detti il dominio e il codominio del ruolo, che rappresentano gli insiemi di individui sui cui pensiamo variare le variabili x e y nell espressione R(x,y). Utilizzando gli strumenti logici che abbiamo a disposizione, ill dominio C e il codominio D di un ruolo R si possono definire nel modo seguente: (5.5) R.C, R.D.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 16 Infatti: [ R.C] = x ((x = x) y (R(y,x) [C] y )) = x y (R(y,x) [C] y )), [ R.D] = x ((x = x) y (R(x,y) [D] y )) = x y (R(x,y) [D] y )). Ad esempio, possiamo specificare nel modo seguente il fatto che il ruolo ProprietarioDi mette in relazione una persona con un bene: ProprietarioDi.PERSONA, ProprietarioDi.BENE. Nel seguito useremo spesso una notazione abbreviata del tipo (5.6) R: C D per asserire che R è un ruolo di dominio C e codominio D. Ad esempio scriveremo ProprietarioDi: PERSONA BENE. La semantica dell espressione 5.6 è data comunque dall insieme dei due enunciati 5.5. 5.4 Vincoli di cardinalità Nella maggior parte delle DL è possibile esprimere sui ruoli vincoli di cardinalità semplice, come: nr, nr, oppure di cardinalità qualificata, come: nr.c, nr.c, dove n è una costante naturale arbitraria (un intero senza segno). Ad esempio, un individuo con almeno tre figlie si definisce come: (5.7) GEN-3-F 3GenDi.FEMMINA. Ancora una volta, richiamiamo l attenzione sul fatto che il termine 3GenDi.FEMMINA non rappresenta la proposizione esistono almeno tre genitori di femmine, bensì il predicato x è genitore di almeno tre figlie o la sua estensione, ossia l insieme degli individui che sono genitori di almeno tre figlie. Le espressioni di questo genere si traducono in FOL nel modo seguente: [ nr] x = n y R(x,y), [ nr] x = n y R(x,y), [ nr.c] x = n y (R(x,y) [C] y ), [ nr.c] x = n y (R(x,y) [C] y ). Pertanto, l enunciato 5.7 si traduce come: [GEN-3-F 3GenDi.FEMMINA] = x ([GEN-3-F] x [ 3GenDi.FEMMINA] x ) = x (GEN-3-F(x) 3 y (GenDi(x,y) FEMMINA(y))) Si ricorda che i quantificatori n x e n x si possono definire nel modo seguente nella logica predicativa del primo ordine dotata di uguaglianza: n x ϕ(x) = def x 0 x 1... x n (ϕ(x 0 ) ϕ(x 1 )... ϕ(x n ) x 0 = x 1... x n 1 = x n ), n x ϕ(x) = def x 1... x n (ϕ(x 1 )... ϕ(x n ) x 1 x 2... x n 1 x n ).

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 17 Pertanto, la traduzione completa in FOL dell enunciato 5.7 è: x (GEN-3-F(x) y 1 y 2 y 3 (GenDi(x,y 1 ) FEMMINA(y 1 ) GenDi(x,y 2 ) FEMMINA(y 2 ) GenDi(x,y 3 ) FEMMINA(y 3 ) y 1 y 2 y 1 y 3 y 2 y 3 ). La cardinalità esatta, semplice o qualificata, si può ora esprimere nel modo seguente: =nr = def nr nr, =nr.c = def nr.c nr.c. Infine si noti che 1R{.C} equivale a R{.C}, 0R{.C} equivale a R{.C}. Infine, il termine 0R{.C} è del tutto inutile perché equivale semplicemente a ; il termine infatti rappresenta l insieme di tutti gli individui dell universo che hanno una relazione di tipo R con zero o più individui: indipendentemente dal ruolo R, tutti gli individui del dominio soddisfano questa condizione. 5.5 I ruoli funzionali Com è noto, una relazione funzionale è una relazione binaria tale che ogni elemento del dominio è in relazione con al più un elemento del codominio. Nelle DL, un ruolo che esprima una relazione funzionale è detto ruolo funzionale. Consideriamo ad esempio il ruolo MoglieDi, il cui dominio e il cui codominio si possono definire come segue: (5.8) MoglieDi: DONNA UOMO, ovvero (5.9) MoglieDi.DONNA, (5.10) MoglieDi.UOMO. Nel nostro ordinamento legale, il ruolo MoglieDi è funzionale perché ogni donna può avere al più un marito (per volta, s intende). Per esprimere questo fatto è sufficiente affermare che la classe delle donne coincide con la classe degli individui che hanno al più un marito: (5.11) DONNA 1MoglieDi. Si noti che la 5.11 non elimina la necessità di definire comunque il dominio di MoglieDi con la 5.8 (oppure con la 5.9). Infatti la 5.11 da sola non escluderebbe la possibilità che il dominio di MoglieDi sia più ampio dell insieme delle donne; questa possibilità è però esclusa dalla 5.8 (o dalla 5.9). Una relazione funzionale è una funzione se ogni elemento del dominio è in relazione con almeno un elemento del codominio (ovvero, se la relazione è totale sul dominio). Dato che ogni funzione è in particolare una relazione funzionale, ne segue che ogni funzione mette in relazione ciascun elemento del dominio (detto argomento della funzione) con esattamente un elemento del codominio (detto valore della funzione corrispondente all argomento). Nelle DL, un ruolo che sia una funzione è detto ruolo funzione o semplicemente funzione. Ad esempio, è una funzione il ruolo MadreDi, che associa ad ogni persona la propria madre (che esiste ed è unica). Tale ruolo è semplicemente il ruolo inverso di MadreDi: DONNA PERSONA, che associa a ogni donna gli eventuali figli. Il fatto MadreDi sia una funzione si esprime con l enunciato PERSONA =1MadreDi. Il ruolo MadreDi, in quanto inverso di un ruolo funzione, si dice inverso di funzione. L inverso di un ruolo funzionale (non necessariamente funzione) si dice invece inversamente funzionale.

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 18 5.6 Sussunzione fra ruoli e proprietà simmetrica In molte DL è consentito esprimere sussunzioni ed equivalenze fra ruoli con espressioni della forma: R S, R S. Ad esempio, è possibile dire che un genitore è una specie di parente, GenDi ParDi, o che FiglioDi è l inverso di GenDi: FiglioDi GenDi. La semantica FOL di queste espressioni è ovvia: [R S] = x y (R(x,y) S(x,y)), [R S] = x y (R(x,y) S(x,y)). La sussunzione fra ruoli consente poi di imporre a un ruolo R la proprietà simmetrica con l assioma R R. 5.7 Composizione di ruoli e proprietà transitiva In alcune DL è possibile costruire ruoli complessi utilizzando l operatore di composizione. Dati due ruoli R ed S, visti come relazioni binarie, il ruolo composto R S rappresenta la relazione: (R S)(x,y) = z (R(x,z) S(z,y)). La composizione di ruoli è molto utile, ma spesso non viene ammessa perché è problematica per la decidibilità della logica. Se si ha a disposizione l operatore di composizione di ruoli è possibile imporre a un ruolo R la proprietà transitiva con l assioma: (R R) R. Molte DL (tra cui SHOIN(D n ), su cui si basa il linguaggio OWL), pur non consentendo la composizione di ruoli, prevedono comunque la possibilità di dichiarare che un ruolo è transitivo: Tr(R). Si noti che tale dichiarazione va considerata a tutti gli effetti come un assioma terminologico. Va infine osservato che anche in assenza dell operazione di composizione di ruoli è comunque possibile scrivere termini equivalenti alle composizioni quantificate, in quanto: (R S).C equivale a R.( S.C), (R S).C equivale a R.( S.C). Infatti: [ (R S).C] x = y ((R S)(x,y) [C] y ) y ( z (R(x,z) S(z,y)) [C] y ) y z (R(x,z) S(z,y) [C] y ) z y (R(x,z) S(z,y) [C] y ) z y (R(x,z) (S(z,y) [C] y )) z (R(x,z) y (S(z,y) [C] y )) = z (R(x,z) [ S.C] z ) = [ R.( S.C)] x

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 19 [ (R S).C] x = y ((R S)(x,y) [C] y ) y ( z (R(x,z) S(z,y)) [C] y ) y z (R(x,z) (S(z,y) [C] y )) z y (R(x,z) (S(z,y) [C] y )) z (R(x,z) y (S(z,y) [C] y )) = z (R(x,z) [ S.C] z ) = [ R.( S.C)] x 6. Nominali, termini enumerativi e domini concreti 6.1 Nominali e termini enumerativi Nelle ontologie è spesso possibile fare riferimento a individui specifici utilizzando simboli a, b, c,..., detti comunemente nominali e corrispondenti alle costanti individuali di FOL. Dati n nominali a 1,..., a n è possibile definire il termine enumerativo {a 1,..., a n }. Ad esempio: (6.1) COLORE-RGB {red, green, blue}. L interpretazione in FOL di un termine enumerativo è la seguente: [{a 1,..., a n }] x = (x = a 1... x = a n ). Con ciò, la semantica della 6.1 è data da: [COLORE-RGB {red, green, blue}] = x (COLORE-RGB(x) x = red x = green x = blue). L operatore {...} è spesso chiamato one-of, perché enumera tutti i valori che la variabile x può assumere. 6.2 Unicità dei nomi ed altre assunzioni Va sottolineato che (contrariamente a quanto avviene in FOL, ma analogamente a quanto avviene nelle basi di dati) nelle DL si assume a volte (ma non sempre!) l unicità dei nomi (UNA, unique name assumption): ciò significa che due nominali distinti non possono fare riferimento allo stesso individuo dell universo. Quest assunzione è considerata irrealistica nell ambito del web, che costituisce uno dei contesti applicativi più interessanti per le DL; tuttavia essa è incorporata in alcuni strumenti per il ragionamento e di ciò è necessario tenere conto. In termini logici, se si utilizzano n nominali a 1,..., a n l assunzione di unicità del nome equivale alle n(n 1)/2 asserzioni a 1 a 2, a 1 a 3,..., a n 1 a n, o più concisamente: (6.2) (a 1,..., a n ). Nel seguito non assumeremo in generale l unicità dei nomi: quando occorra l assunzione verrà introdotta esplicitamente con un asserzione della forma 6.2. Come abbiamo già detto, l unicità dei nomi viene assunta nelle basi di dati. Altre due assunzioni, sempre tipiche delle basi di dati, sono l assunzione di chiusura del dominio (DCA, domain closure assumption) e l assunzione del mondo chiuso (CWA, closed world assumption). L assunzione di chiusura del dominio (o meglio di chiusura dell universo, nella terminologia adottata in questo corso) consiste nell ipotesi che l universo di tutti gli individui contenga soltanto gli individui cui si fa riferimento con un nominale presente nel sistema (ovvero, esistono soltanto gli individui che hanno un

Marco Colombetti Ingegneria della conoscenza 2005 06, Parte I 20 nome). Questa assunzione non viene mai adottata nel campo delle DL. Dell assunzione del mondo chiuso, anch essa estranea alle DL, parleremo nel paragrafo 7. 6.3 Domini concreti Nelle applicazioni delle DL è spesso importante rappresentare valori costanti, ad esempio numeri interi (con o senza il segno), numeri floating point, caratteri, stringhe; gli insiemi di valori di questo genere vengono chiamati domini concreti. In queste note considereremo tali valori alla stregua di nominali appartenenti a insiemi denotati da termini atomici come NATURAL, INTEGER, FLOAT, CHARACTER, STRING. Si noti che nelle DL non sono in genere disponibili le operazioni tipicamente associate a tali insiemi. Come esempio, consideriamo il ruolo Età, che associa a ogni persona uno e un solo numero naturale (l età espressa in anni): Età: PERSONA NATURAL, PERSONA =1Età. 7. TBox e ABox Come si è detto nel paragrafo 3, un sistema di rappresentazione delle conoscenze consta di una TBox e di una ABox. La TBox contiene assiomi terminologici e definisce un ontologia; l ABox contiene invece conoscenze fattuali espresse sotto forma di asserzioni. Nelle DL si possono esprimere diversi tipi di conoscenze fattuali. Sono innanzitutto ammesse asserzioni del tipo (7.1) C(a), dove C è un termine arbitrario e a è un nominale, oppure (7.2) R(a,b), dove R è un ruolo ed a, b sono nominali (non necessariamente distinti). Esempi: MADRE(laura), DONNA GenDi(laura) (dove C = DONNA GenDi), GenDi(laura,marco). La semantica FOL di C(a) si ottiene dalla traduzione FOL [C] x, sostituendo tutte le occorrenze della variabile x con il nominale a. Indicheremo con sost(a,x,[c] x ) il risultato di tale sostituzione; ad esempio: [MADRE(laura)] = sost(laura,x,[madre] x ) = sost(laura,x,madre(x)) = MADRE(laura), [DONNA GenDi(laura)] = sost(laura,x,[donna GenDi] x ) = sost(laura,x, DONNA(x) y GenDi(x,y) ), = DONNA(laura) y GenDi(laura,y), La semantica della formula DL R(a,b) è invece data semplicemente dalla formula FOL R(a,b). Ad esempio si ha: [GenDi(laura,marco)] = GenDi(laura,marco). Inoltre, nelle DL che non assumono l unicità dei nomi l ABox può contenere asserzioni del tipo a = b, a b, ed eventualmente abbreviazioni del tipo =(a 1,..., a n ) o (a 1,..., a n ).