INFORMATICA UMANISTICA B STRUTTURE DATI BASI DI DATI RAPPRESENTAZIONE DELLA CONOSCENZA ONTOLOGIE VARIABILI SCALARI O ATOMICHE function MCD(M,N) while M ≠ N if M > N then M M - N else N N - M return M RAPPRESENTAZIONE DELLE INFORMAZIONI IN PROGRAMMI La lezione precedente si sono visti solo esempi di variabili che assumono valori ATOMICI (numeri, simboli) Molti programmi trattano pero’ informazioni con una struttura piu’ complessa : Dati sulle immagini da rappresentare sullo schermo Tabelle degli orari INFORMAZIONI DA VISUALIZZARE SULLO SCHERMO ORARI Giorno Baroni Poesio L 8-10 L 10-12 X L 12-14 L 14-16 X L 16-18 X Zamparelli …. TABELLE Ambedue gli esempi appena visti sono esempi di informazione con struttura TABULARE Le TABELLE sono una delle strutture dati usate piu’ comunemente in informatica PROGETTAZIONE DI STRUTTURE DATI Identificare la struttura dati piu’ appropriata per rappresentare un certo tipo di informazioni all’interno di un programma e’ uno dei problemi centrali dell’informatica TIPI DI STRUTTURE DATI Temporanee: Tabelle Records Alberi Permanenti: database VETTORI E TABELLE I vettori sono strutture dati che permettono di manipolare sequenze di oggetti dello stesso tipo Le tabelle permettono di creare spazi multidimensionali In ambedue i casi, i dati vengono ritrovati tramite INDICI VETTORI E TABELLE Giorno L 8-10 i L 10-12 j Baroni Poesio Zamparelli …. X L 12-14 L 14-16 X L 16-18 X tabella[i,j] ALBERI Una delle strutture dati piu’ usate sono gli ALBERI Vengono usati, per esempio, Per rappresentare la struttura di un documento HTML / XML Per rappresentare l’analisi sintattica di un enunciato LA STRUTTURA AD ALBERO DEI DOCUMENTI HTML (ED XML) <html> <head> <title> My first HTML</title> </head> <body> <p> Hello, World! </p> </body> </html> LA STRUTTURA AD ALBERO DEI DOCUMENTI HTML html head title body p LA STRUTTURA AD ALBERO DEGLI ENUNCIATI ACCESSO AD UN ALBERO html figlie madre head title body p RECORDS I records sono strutture dati usate per rappresentare oggetti che hanno ATTRIBUTI ESEMPIO: ESAME ESAME MATERIA DATA IUB 4/2/2008 MATRICOLA 112233 esame.materia VOTO 29 RECORDS IN XML <poem title=“paradise lost” author="jm" year="1667"> <verse> Seest thou yon dreary Plain, forlorn and wild,</verse> <verse>The seat of desolation, void of light,</verse> <verse>Save what the glimmering of these livid flames</verse> <verse>Casts pale and dreadful?</verse> </poem> TITLE: Paradise Lost AUTHOR: John Milton YEAR: 1667 STRUTTURE DATI MISTE: ALBERI + RECORDS IN XML poem title = Paradise Lost author = jm author= 1667 verse Seest thou yon dreary Plain, forlorn and wild, verse verse ALTRE STRUTTURE DATI Liste Tabelle ‘hash’ STRUTTURE DATI TEMPORANEE E PERMANENTI Per potere rappresentare informazioni in modo duraturo occorre sviluppare delle tecniche per mantenerle in memoria secondaria Lo strumento informatico utilizzato per questo scopo sono le BASI DI DATI BASI DI DATI Un database e’ una collezione di dati immagazzinati in modo PERMANENTE su disco ACCESS e’ uno strumento che permette di creare basi di dati TABELLE E RELAZIONI L’informazione e’ rappresentata nelle basi di dati sotto forma di TABELLE e RELAZIONI ESEMPIO: SINGOLA TABELLA RITROVAMENTO INFORMAZIONI Le informazioni in una base di dati possono essere ritrovate mediante INTERROGAZIONI INTERROGAZIONE SELECT Materia, Data, Matricola FROM Esami; RELAZIONI TRA TABELLE CREARE UNA BASE DI DATI IN ACCESS 1. 2. 3. 4. 5. Creare le tabelle usando ‘Create Table in Design View’ Salvare Cambiare a Datasheet view per inserire i dati Continuare a creare altre tabelle Linkare le tabelle 1. TABLE DESIGN VIEW 1. TABLE DESIGN VIEW 2. DATASHEET VIEW RITROVARE LE INFORMAZIONI Standard linguaggio di interrogazione per database relazionali: SQL SINTASSI DI SQL Diversi tipi di comandi: INTERROGAZIONE UPDATE Comando di interrogazione: SELECT Clausole piu’ usate: FROM (specifica la tabella) WHERE (specifica restrizioni) SQL: Esempio base SELECT isbn, title, price FROM books WHERE price > 100.00 ORDER BY title; INTERROGAZIONI CHE COINVOLGONO PIU’ TABELLE AGGIUNGERE TABELLE INTERROGAZIONE A TABELLE MULTIPLE SQL VIEW SQL: ESEMPIO DI INTERROGAZIONE DA TABELLE LINKATE SELECT Studenti.Nome, Studenti.Cognome FROM Studenti INNER JOIN Esami ON Studenti.Matricola=Esami.Matricola WHERE Esami.Materia='IUB' And Esami.Voto>25; RAPPRESENTAZIONE DELLA CONOSCENZA ED ONTOLOGIE La ricerca sul modo ‘ideale’ per rappresentare le informazioni ha portato alla nascita di ricerca sulla KNOWLEDGE ENGINEERING o rappresentazione della conoscenza anche in senso non applicato Particolarmente interessante per domini piu’ complessi che ‘studenti’ e gli ‘esami’? L’area della KNOWLEDGE ENGINEERING raggruppa ricercatori da database, Intelligenza Artificiale, e nell’area del Semantic Web Un area molto legata allo studio delle ONTOLOGIE ONTOLOGIE IN INFORMATICA In FILOSOFIA, ONTOLOGIA e’ lo studio di cio’ che esiste – una delle aree piu’ importanti della METAFISICA In INFORMATICA, un’ ONTOLOGIA e’ una DEFINIZIONE dei TERMINI usati in un certo dominio e delle relazioni tra di loro Disegno di ontologie Identificazione dei CONCETTI Identificazione dei loro ATTRIBUTI Identificazione delle relazioni di dipendenza tra questi concetti ONTOLOGIA APPLICATA La ricerca sulle ontologie e’ al momento molto attiva nelle aree Scientifiche Semantic Web UN ESEMPIO DI ONTOLOGIA SCIENTIFICA Protein Ontology: un’ontologia sviluppata per codificare la nostra conoscenza sulle proteine in modo sistematico http://proteinontology.info/ SEMANTIC WEB Il Semantic Web e’ un progetto per realizzare una versione del Web in cui i testi sono annotati SEMANTICAMENTE e quindi e’ possibile ritrovarli sulla base del CONTENUTO invece che di keywords INGREDIENTI DEL SEMANTIC WEB XML come linguaggio di markup RDF per la rappresentazione di informazioni OWL (Web Ontology Language) per rappresentare concetti, attributi, e relazioni Una o piu’ ontologie OWL <owl:Class rdf:ID="ProteinComplex"> <owl:disjointWith> <owl:Class rdf:ID="SiteGroup"/> </owl:disjointWith> <owl:disjointWith> <owl:Class rdf:about="#Chains"/> </owl:disjointWith> <owl:disjointWith> <owl:Class rdf:about="#Residues"/> </owl:disjointWith> Ontologie ‘generali’ ed ontologie ‘di dominio’ Esistono ora molte ontologie per domini specifici Esistono anche tentativi di ‘riunificare’ queste ontologie tramite cosiddette ‘ontologie di livello superiore’ SUMO DOLCE ESEMPIO DI ONTOLOGIA USATA IN AI (SUMO) LETTURE Strutture dati: Wikipedia ACCESS: http://office.microsoft.com/ Ontologie: http://it.wikipedia.org/wiki/Struttura_dati http://www.ontologyportal.org/ http://www.loa-cnr.it/ Semantic Web: http://www.sciam.com/article.cfm?articleID=00048 144-10D2-1C70-84A9809EC588EF21