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
Scarica

Strutture dati, database ed ontologie