RAPPRESENTAZIONE DELLA CONOSCENZA Prof.ssa Stefania Bandini Dott. Matteo Palmonari Modulo del Corso Rappresentazione dell’Informazione e della Conoscenza Dipartimento di Informatica, Sistemistica e Comunicazione Università di Milano-Bicocca www.lintar.disco.unimib.it [email protected] [email protected] tel. 02 6448 7835 Tempi e luoghi Mercoledì 15:30 18:30 Aula. U6 - 23 Venerdì 13:30 15:30 Aula. U6 - 23 Finalità del corso Il corso si propone di introdurre le caratteristiche principali della disciplina che va sotto il nome di Rappresentazione della Conoscenza (in breve KR – dall’inglese “Knowledge Representation”). Verrà fornita agli studenti la capacità di modellare e rappresentare conoscenza di dominio, di utilizzare strumenti formali e computazionali che permettano di ragionare sulla conoscenza rappresentata, e di utilizzare strumenti di rappresentazione semantica che permettano di condividere le conoscenze attraverso il Web. Per questi motivi verranno affrontati diversi aspetti relativi alla KR, come... (1) Problematiche concettuali di modellazione. (2) Linguaggi formali per la rappresentazione; (3) Linguaggi computazionali e/o utilizzabili attraverso il Web e alle tecniche di ragionamento automatico che questi supportano (4) Tool e strumenti esistenti a supporto della creazione di applicazioni che sfruttino i modelli, i linguaggi le tecniche di Rappresentazione della Conoscenza introdotte Finalità del corso Il corso si propone di introdurre le caratteristiche principali della disciplina che va sotto il nome di Rappresentazione della Conoscenza (in breve KR – dall’inglese “Knowledge Representation”). Verrà fornita agli studenti la capacità di modellare e rappresentare conoscenza di dominio, di utilizzare strumenti formali e computazionali che permettano di ragionare sulla conoscenza rappresentata, e di utilizzare strumenti di rappresentazione semantica che permettano di condividere le conoscenze attraverso il Web. Nel corso verrà dato un significato preciso a termini quali... inferenza Inferenza non monotona ontologia semantica Knowledge Base Semantic Web Ragionamento Automatico Calcolo logico rdf Articolazione del corso Il corso prevedrà tre unità tematiche principali: • Introduzione alla Rappresentazione della Conoscenza, Logica del Primo Ordine e Decidibilità • Programmazione Logica • Ontologie: Modelli Concettuali e Tecnologie per il Web Semantico Per ciascuna di queste tematiche verranno proposte durante la lezione del Mercoledì: – analisi di esperienze dirette di aplicazione delle tecniche proposte a problemi reali, con intervento di esperti di dominio (ad sempio nell’ambito di Archeologia, Progettazione di oggetti composti, Erogazione di Servizi). – esercitazioni in aula Parte I • La Logica rappresenta il più noto e studiato strumento di rappresentazione della conoscenza. Essendo una strumento di rappresentazione della conoscenza caratterizzato da una grande generalità ed espressività, la logica può pertanto essere applicata ad un insieme di dominii molto vasto. • Verrà fornita un’introduzione della logica proposizionale e predicativa e verranno affrontate in questo primo modulo diverse tematiche e concetti che ritorneranno poi in altre parti del programma. In particolare si insisterà sul rapporto fra linguaggio/semantica/calcolo. Tenendo presente la centralità che lo studio di questo rapporto assume nella disciplina della KR, verranno introdotti, per lo più mediante esempi pratici, altri strumenti di rappresentazione della conoscenza diversi dalla Logica (ad es. Conceptual Graph, Rules, Frames, ...). • Verrà introdotta la questione della decidibilità e della complessità computazionale come elemento centrale per l’utilizzo di linguaggi logici nell’ambito della rappresentazione della Conoscenza e a supporto di tecniche di ragionamento automatico Parte II • Dalla logica predicativa al Logic Programming: il ProLog. Verrà presentato il percorso che porta dalla logica predicativa al ProLog, affrontando argomenti quali trasformazione in clausole e basi di Herbrand ma, soprattutto presentando il calcolo attraverso la regola di risoluzione, implementata da ProLog. • Dalle logiche non monotone alla programmazione logica: AnswerSet Prolog e DLV come sua implementazione. AnswerSet rappresenta il punto di convergenza di diversi studi passati sul ragionamento non monotono e costituisce lo stato dell’arte nel campo. Viene spesso presentato come valido strumento di rappresentazione della conoscenza all’interno del paradigma del Logic Programming. DLV è un database relazionale deduttivo che implementa gran parte delle inferenze tipiche di AnswerProlog Parte III • L’Ontologia è tradizionalmente una disciplina filosofica che si occupa dello studio delle entità (astratte e concrete) che popolano il nostro mondo. Nella sua accezione informatica, il termine è stato recentemente assunto per indicare una vasta area di ricerca che concerne lo studio di linguaggi formali per la rappresentazione delle “ontologie”, ovvero della nostra conoscenza circa le entità che popolano uno o più dominii di interesse (J. Sowa, Knowledge Representation: Logical, Philosophical and Computational Foundations, Pacific Grove, CA 2000). • Le aree dell’Informatica che hanno sviluppato intersezioni con il tema della rappresentazione delle ontologie vanno dal Semantic Web al Natural Language Processing, dalla Computer Vision ai Biological Information Systems. Ad oggi, esiste un numero consistente di formalismi per la rappresentazione di ontologie e per la loro implementazione (quali, ad esempio, Description Logics, XML, OWL, RDF); il loro impiego nella risoluzione di problemi reali è supportato dallo sviluppo di specifici editor (vedi, Protegè, Rice, OilEd ) e da sistemi per il ragionamento automatico (RACER, FaCT++, KAON2). • Le lezioni di questo modulo si occuperanno di introdurre il tema dell’Ontologia e delle ontologie, indagando le varie accezioni con cui tali termini sono attualmente impiegati in Computer Science. Una parte consistente del modulo riguarderà un approfondimento della Description Logic (o, Logica Terminologica), non trascurando un confronto fra questa logica e i più noti formalismi “nonlogici” per la rappresentazione di ontologie. Modalità d’esame La prova finale per il corso di Rappresentazione della Conoscenza consiste nello svolgimento di un tema d’esame scritto ed di un colloquio orale, che verterà sui principali argomenti trattati a lezione e comprenderà la discussione di un progetto (*) da consegnarsi come prova di ammissione all’esame stesso. Il “progetto” potrà consistere (a) nella realizzazione di un prototipo progettato e realizzato secondo le tecniche proprie della Rappresentazione della Conoscenza introdotte nel corso delle lezioni o, in alternativa, (b) nella stesura di una tesina di approfondimento di temi inerenti al tema del corso. (*) Qualora se ne diano i presupposti è possibile che la componente “progetto” dell’esame sia integrata in progetti per altri corsi, in particolar modo di Intelligenza Artificiale complementi (la parte di KR dev’essere realmente funzionale alla realizzazione dell’altro progetto). Materiale didattico Una parte del materiale verrà segnalato e distribuito di volta in volta a lezione. I testi di riferimento sono: BRACHMAN, R. e LEVESQUE, H. Knowledge Representation and Reasoning. The Morgan Kaufman Series in Artificial Intelligence, Los Altos, CA. (2004) CHITTA BARAL. Knowledge Representation, Reasoning and Declarative Problem Solving. Cambridge University Press. (2003) STEFFEN STABB, RUDI STUDER (Eds.) Handbook on Ontologies International Handbooks on Information Systems Springer, 2004 Approfondimenti: J. Sowa. Knowledge Representation: Logical, Philosophical and Computational Foundations. Pacific Grove, CA 2000 Ed. by F. Baader, D. Calvanese, D. McGuinness, D. Nardi, P. Patel-Schneider. The Description Logic Handbook. Theory, Implementation and Applications. Cambridge University Press 2003