informatica umanistica b strutture dati basi di dati rappresentazione della conoscenza ontologie
TRANSCRIPT
INFORMATICA UMANISTICA B
STRUTTURE DATIBASI 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 Zamparelli ….
L 8-10
L 10-12 X
L 12-14
L 14-16 X
L 16-18 X
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
j
Giorno Baroni Poesio Zamparelli ….
L 8-10
i L 10-12 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 body
title p
LA STRUTTURA AD ALBERO DEGLI ENUNCIATI
ACCESSO AD UN ALBERO
html
head body
title p
figlie
madre
RECORDS
I records sono strutture dati usate per rappresentare oggetti che hanno ATTRIBUTI
ESEMPIO: ESAME
MATERIA IUB
DATA 4/2/2008
MATRICOLA 112233
VOTO 29
ESAME
esame.materia
RECORDS IN XML
TITLE: Paradise Lost
AUTHOR: John Milton
YEAR: 1667
<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>
STRUTTURE DATI MISTE: ALBERI + RECORDS IN XML
verse verse
Seest thou yon dreary Plain, forlorn and wild,
poemtitle = Paradise Lostauthor = jmauthor= 1667
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
INTERROGAZIONESELECT Materia, Data, Matricola
FROM Esami;
RELAZIONI TRA TABELLE
CREARE UNA BASE DI DATI IN ACCESS
1. Creare le tabelle usando ‘Create Table in Design View’
2. Salvare
3. Cambiare a Datasheet view per inserire i dati
4. Continuare a creare altre tabelle
5. 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.CognomeFROM Studenti INNER JOIN Esami ON Studenti.Matricola=Esami.MatricolaWHERE 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 INFORMATICA, un’ ONTOLOGIA e’ una DEFINIZIONE dei TERMINI usati in un certo dominio e delle relazioni tra di loro
In FILOSOFIA, ONTOLOGIA e’ lo studio di cio’ che esiste – una delle aree piu’ importanti della METAFISICA
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 http://it.wikipedia.org/wiki/Struttura_dati
ACCESS: http://office.microsoft.com/ Ontologie:
http://www.ontologyportal.org/ http://www.loa-cnr.it/
Semantic Web: http://www.sciam.com/article.cfm?
articleID=00048144-10D2-1C70-84A9809EC588EF21