Che materia stai cercando?

Informatica per le discipline umanistiche e linguistiche - Appunti Appunti scolastici Premium

Appunti di Informatica per le discipline umanistiche e linguistiche per l'esame del professor Zamparelli. Gli argomenti trattati sono i seguenti: l'informatica, il computer, la memoria principale, la memoria secondaria, la rappresentazione in forma digitale dell'informazione.

Esame di Informatica per le discipline umanistiche e linguistiche docente Prof. R. Zamparelli

Anteprima

ESTRATTO DOCUMENTO

1964: prima LAN (Lawrence Livermore Labs)

 1973: Metcalfe pubblica paper su Ethernet

 1974: Kahn & Cerf propongono idee di base

 1978: separazione di TCP da IP

 1990: 3000 reti e 200.000 computer (detti host)

 1992: viene collegato il milionesimo host

 Agli esordi il numero di host cresce in modo esponenziale mentre in questi anni si osserva un

 rallentamento, con incremento annuo del del 6%

2002: hanno accesso ad Internet 457 milioni di persone (di cui 174 milioni negli Stati Uniti)

 Application layer

 Si colloca al di sopra del livello Transport ed è il livello nel quale viene svolto il “lavoro utile” per

 l’utente

In questo livello si trovano diversi protocolli, alcuni relativi alle applicazioni che usiamo abitualmente

 in Internet

SMTP: Simple Mail Transfer Protocol

 FTP: File Transfer Protocol

 TELNET

 HTTP: HyperText Transfer Protocol

I PROTOCOLLI INTERNET

 IL MODELLO

 CLIENT / SERVER

MODELLO CLIENT / SERVER

 I protocolli del livello Application sono basati sul modello di interazione client/server

Per usare i servizi messi a disposizione mediante questi protocolli bisogna contattare un server

 Per esempio: tutte le volte che usate il browser e richiedete delle pagina di un sito web, di

 fatto state contattando un web server remoto

Per esempio: tutte le volte che inviate una e-mail di fatto del vostro provider contatta il mail

 server del provider del vostro destinatario

IL PROGRAMMA CLIENT

 Gestisce l’interazione con l’utente

 Si preoccupa di fornire un’interfaccia intuitiva

 `Nasconde’ l’interazione con il server

 Che avviene tramite messaggi secondo un protocollo tipo SMTP / HTTP / VOIP

Esempio di client: browser, mail client (Outlook)

 IL PROGRAMMA SERVER

 Mette a disposizione delle risorse (per esempio, pagine web)

 Accetta richieste da client locati ovunque (purche’ trasmesse seguendo protocollo)

 Potrebbe essere eseguito sullo stesso calcolatore su cui gira il client!!

 Per esempio, PC che gestisce un sito web

APPLICATION LAYER:

 POSTA ELETTRONICA

Un’applicazione Internet che permette lo scambio di messaggi tra gli utenti collegati alla rete

 Si basa sul protocollo SMTP per lo scambio di messaggi

 È necessario fornire:

 L’indirizzo del mittente

 L’indirizzo del destinatario

 Il corpo del messaggio

Gli indirizzi devono avere un formato ben preciso

E-MAIL CLIENT & SERVER

 HEADER DI UN MESSAGGIO

 Application layer: DNS

 Gli indirizzi IP numerici sono difficili da ricordare

 Si usano quindi degli indirizzi simbolici che sono più significativi per l’essere umano

dit.unitn.it, essex.ac.uk, developer.netscape.com

 Questi nome vengono tradotti in indirizzi IP numerici mediante il Domain Name System (DNS)

Gli indirizzi simbolici hanno un formato come quello seguente

… nome5.nome4.nome3.nome2.nome1

Application layer: DNS

 Sono costruiti a partire da uno schema gerarchico di nomi basato sul concetto di dominio

 Application layer: DNS

 Ogni dominio deve essere in grado di “risolvere i nomi” dei calcolatori di sua competenza

 Si usano i name server che gestiscono la corrispondenza tra nomi simbolici e indirizzi IP numerici

 Quando un’applicazione deve collegarsi ad una risorsa di cui conosce il nome logico (ad es.

www.unitn.it), invia una richiesta al suo name server locale

APPLICATION LAYER:

 WORLD WIDE WEB

Una `ragnatela’ di DOCUMENTI collocati su computer in tutto il mondo

 Il piu’ grande serbatoio di informazioni che sia mai esistito

 Si accede tramite:

 Un client chiamato BROWSER

 Servers sui siti che distribuiscono informazione

Basato su:

 Il protocollo HTTP per la trasmissione di documenti

 La nozione di ipertesto

STORIA BREVE DEL WWW

 Fine anni ’80: iniziativa di Tim Berners-Lee al CERN di Ginevra per la condivisione di documenti tra

 fisici delle alte energie

1989-1991: prime definizioni di URL, HTTP, ed HTML

 1993-1993: primo browser facile da usare, NCSA MOSAIC

 1995: Nascita di NETSCAPE, inizio della crescita esplosiva

 Oggi: almeno 8 miliardi di pagine Web

 DALL’IPERTESTO AL WEB

 Un ipertesto (HYPERTEXT) e’ un testo diviso in parti testuali vere e proprie collegate da rimandi

 (LINKS)

TESTI: LETTURA SEQUENZIALE

 IPERTESTI

 ESEMPI DI IPERTESTI

 Quasi tutte le opere enciclopediche oggi hanno forma ipertestuale

  Esempio: http://it.wikipedia.org/wiki/Ipertesto

Formato molto comune anche per articoli scientifici (bibliografia, note a pie’ di pagina)

  Per esempio, nella Biomedicina

 Ma anche nelle materie umanistiche

Narrativa ipertestuale:

 Lettore puo’ scegliere che percorso seguire

 Primo esempio riconosciuto: Afternoon, a story di Michael Joyce

 La Electronic Literature Organization mantiene una Electronic Literature Directory

DALL’IPERTESTO AL WEB

 1945 Vannevar Bush: l’organizzazione ‘lineare’ dei testi non corrisponde veramente a come

 pensiamo

Il termine HYPERTEXT introdotto da Ted Nelson (1965)

 Nel 1980 Bill Atkinson sviluppo’ per la Apple il programma HYPERCARD che permetteva di creare

 ipertesti tramite il linguaggio HYPERTALK

1989 Tim Berners-Lee sviluppa come parte del progetto WWW il linguaggio HTML, che permette di

 esprimere links.

Il WWW e’ un immenso hypertext distribuito

 ASPETTI TECNICI CHIAVE DEL WWW

 Meccanismo di indirizzamento universale: URL

 Protocollo HTTP per la trasmissione di documenti

 Linguaggio HTML per la formattazione dei documenti

 HTML

 Il linguaggio ‘storico’ della Web

 Un linguaggio di annotazione dei documenti che permette di collegare documenti in un ipertesto

 Due funzioni principali:

 Specificare come il documento dev’essere visualizzato

 Specificare links (usando URL)

Discusso nei laboratori

 INDIRIZZI SU RETE: URL

 URL (Uniform Resource Locator) e’ lo standard per gli indirizzi delle risorse su Web

 Specifica:

 Come accedere alla risorsa (PROTOCOLLO)

 Dove si trova la risorsa (indirizzo dell’host)

 Nome della risorsa (path)

Formato:

protocollo://host/path

URL PER HTTP

 Forma generale:

scheme://host:port/path?parameter=value#anchor

Esempi:

  http://www.unitn.it/

http://www.dit.unitn.it/~poesio/Teach/IU

 http://www.google.it/search?hl=it&q=URL

HTTP

 Si basa sul protocollo HTTP (HyperText Transfer Protocol) che gestisce l’interazione tra un client e

 un server web

Client e server si scambiano dei messaggi

 Richieste da parte del client

 Risposte da parte del server

Più precisamente:

 L’utente richiede una pagina residente su un server e il suo browser richiede una

 connessione TCP con il server

Il server accetta la connessione iniziata dal browser

 Il browser ed il server si scambiano messaggi

 La connessione viene chiusa

ESEMPIO DI COMUNICAZIONE HTTP

 LETTURE

 Tomasi, capitoli 2 e 5

 Wikipedia:

  http://it.wikipedia.org/wiki/Rete_informatica

 http://it.wikipedia.org/wiki/Internet

 http://it.wikipedia.org/wiki/Sistemi_Client/Server

 Posta elettronica

 World Wide Web

Lezione 5

INFORMATICA UMANISTICA B

 MODELLARE LA CONOSCENZA:

 BASI DI DATI

 USO DI STRUMENTI INFORMATICI PER LA GESTIONE DI INFORMAZIONI

 Forse la piu’ importante applicazione di metodi informatici nelle materie umanistiche e’ per gestire

 grandi quantita’ di dati

STRUTTURATI (in basi di dati)

 NON STRUTTURATI (archivi di testi)

PROSOPOGRAFIA DELL’IMPERO BIZANTINO

 BASI DI DATI DI OPERE D’ARTE

 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

 Una base di dati e’ una collezione di dati immagazzinati in modo PERMANENTE su disco

 Una base di dati permette di

 DEFINIRE DEGLI OGGETTI (‘CONCETTI’) E DELLE RELAZIONI

 INSERIRE NUOVI DATI

 RITROVARE QUESTI DATI ANCHE COMBINANDOLI CON ALTRI

Il tipo di base di dati piu’ comune sono le basi di dati RELAZIONALI

 PROGETTAZIONE DI UNA BASE DATI

 MODELLAZIONE CONCETTUALE

 Progetto dello SCHEMA

MODELLAZIONE LOGICA

 Scelta della rappresentazione: TABELLE, ALBERI, etc

PROGETTAZIONE FISICA

 Utilizzando il DBMS scelto

MODELLI CONCETTUALI

 Un modello concettuale e’ un’analisi dei dati che si vogliono rappresentare nella base di dati

 indipendente dalla realizzazione fisica

Tipicamente, questa analisi si articola attorno ad una definizione de

 Gli OGGETTI che si vogliono rappresentare

 I loro ATTRIBUTI

 Le RELAZIONI tra questi oggetti

ESEMPIO DI MODELLO CONCETTUALE: IL DURHAM LIBER VITAE

 ESEMPI DI MODELLO CONCETTUALE

 MODELLAZIONE LOGICA

 Una volta decisi quali sono i concetti importanti da rappresentare e quali sono i loro attributi, occorre

 pensare come e’ possibile rappresentare questa informazione usando una base di dati

MODELLI DI RAPPRESENTAZIONE DATI

 A partire dagli anni Settanta il modello dominante e’ stato il modello RELAZIONALE

 Sono anche in sviluppo modelli di rappresentazione basati sulla struttura ad OGGETTI e

 GERARCHICA tipica di linguaggi di programmazione come Java, ma non hanno ancora preso piede

Per certi tipi di applicazioni (in particolare per basi di dati accessibili via Web) si fa molto uso di XML

 (Laboratori Modulo C)

IL MODELLO RELAZIONALE

 L’informazione e’ rappresentata nelle basi di dati sotto forma di RELAZIONI

 r(x,y,z,w)

Due tipi di relazioni rappresentate

 Relazioni rappresentate con TABELLE che rappresentano un OGGETTO ed i suoi attributi

risultato_esame(IUB,4/2/2008,112233,29)

Relazioni tra le tabelle

 Per esempio, tra tabella studente e tabella risultato_esame

TABELLE CHE RAPPRESENTANO RELAZIONI

 RECORDS

 I records sono strutture dati usate per rappresentare oggetti che hanno ATTRIBUTI

 ESEMPIO DI RECORD ED ATTRIBUTI: RISULTATO ESAME

 ESEMPIO DI TABELLA CHE RAPPRESENTA RELAZIONE

 UN ALTRO ESEMPIO

 VALORI CHIAVE

 Ogni riga di ogni tabella (cioe’ ogni rappresentazione di un oggetto) deve avere almeno un campo

 che permetta di identificare quella riga in modo univoco

Campo chiamato CHIAVE

 VALORI CHIAVE

 VALORI CHIAVE ARTIFICIALI

 RELAZIONI TRA TABELLE

 Una base di dati relazionale permette di specificare, oltre che informazioni su attributi di oggetti,

 informazioni sulle relazioni tra oggetti

Per esempio, che un particolare risultato di esame e’ stato ottenuto dallo studente Mario Rossi

 RELAZIONI TRA TABELLE

 DATABASE MANAGEMENT SYSTEMS RELAZIONALI

 Praticamente tutti i DATABASE MANAGEMENT SYSTEMS (DBMS) moderni sono basati sul

 modello relazionale

E.g., Oracle, Access

Sta anche diventando frequente l’uso di XML

 Discuteremo in seguito

SINGOLA TABELLA IN ACCESS

 RELAZIONI TRA TABELLE

 OPERAZIONI SU UN DATABASE RELAZIONALE

 Operazioni tipiche su un database relazionale

 RITROVARE un sottoinsieme delle righe

 Possibilmente restringendo il ritrovamento ad un sottoinsieme delle colonne

AGGIUNGERE dati

 DEFINIRE nuove tabelle e nuove relazioni

RITROVAMENTO INFORMAZIONI ED SQL

 Le informazioni in una base di dati possono essere ritrovate mediante INTERROGAZIONI

 In un database relazionale moderno le interrogazioni sono fatte utilizzando un linguaggio di

 interrogazione chiamato SQL

SINTASSI DI SQL

 Diversi tipi di comandi:

 INTERROGAZIONE

 UPDATE

Comando di interrogazione: SELECT

 Clausole piu’ usate:

 FROM (specifica la tabella)

 WHERE (specifica restrizioni)

INTERROGAZIONE

 INTERROGAZIONE

 SQL: ESEMPIO DI USO DI ATTRIBUTI

 SQL: ESEMPIO CON ATTRIBUTI

 INTERROGAZIONI CHE COINVOLGONO PIU’ TABELLE

 AGGIUNGERE TABELLE

 INTERROGAZIONE A TABELLE MULTIPLE

 SQL VIEW

 SQL: ESEMPIO DI INTERROGAZIONE DA TABELLE LINKATE

 CREARE UNA BASE DATI

 Creare una base di dati realizza un modello concettuale

 Richiede tradurre oggetti e relazioni in tabelle e legami 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

 REALIZZAZIONE DI MODELLI CONCETTUALI

 Tabelle

 Alberi (XML)

 ORARI

 PASSI SUCCESSIVI

 Dati non strutturati

 XML e TEI

 ONTOLOGIE e SEMANTIC WEB

 DATI NON STRUTTURATI

 Molto spesso i dati da gestire non sono organizzati in tabelle:

 Archivi di testi ed immagini

Discuteremo di archivi di testi ed immagini e del ritrovamento in questo caso la prossima lezione

 DARE STRUTTURA A DATI NON STRUTTURATI

 I linguaggi di markup come SGML o XML permettono di ‘imporre una struttura’ su documenti non

 strutturati

Vedremo la lezione successiva

 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

 LETTURE

 Tomasi, capitolo 3

 Wikipedia:

  http://it.wikipedia.org/wiki/Database

http://it.wikipedia.org/wiki/Modello_relazionale

 ACCESS: http://office.microsoft.com/

Lezione 6

INFORMATICA UMANISTICA B

 INFORMAZIONE NON STRUTTURATA:

 ARCHIVI DI TESTI

 ARCHIVI DI IMMAGINI

 CONTENUTI DI QUESTA LEZIONE

 Informazione non strutturata

 Archivi di testi e Information retrieval

 Il modello vettoriale di ricerca informazioni

 Espressioni regolari

 Archivi di immagini ed image retrieval

 INFORMATICA ED ARCHIVI

 Una delle funzioni principali dell’informatica e’ la creazione ed utilizzo di archivi

 elettronici:

Di testi

 Di immagini

Questi archivi contengono informazione NON STRUTTURATA nel senso che non e’

 organizzata secondo un modello concettuale predefinito, a differenza delle basi di

dati

ARCHIVI ELETTRONICI

 Collezioni di testi:

 Articoli scientifici: e.g., ACL Archive http://ucrel.lancs.ac.uk/acl/

 Libri:

 Project Gutenberg: http://www.gutenberg.org/

 LiberLiber: http://www.liberliber.it/

 Google Books: http://books.google.it/

Collezioni di documenti storici

 Il Web (da cercare via Google)

Collezioni di immagini:

 http://www.iccrom.org/eng/lib/photo.htm

 Il Web (da cercare via Google Image)

DATI NON STRUTTURATI (TESTI) E STRUTTURATI (DB) NEL 1996

 DATI NON STRUTTURATI (TESTI) E STRUTTURATI (DB) NEL 2006

 ALCUNI USI DI QUESTI ARCHIVI

 Per chi fa ricerca: facilitano la DISTRIBUZIONE di documenti e/o articoli

 Facilitano anche la RICERCA di documenti rilevanti

 Permettono di condurre analisi

 Dell’uso del linguaggio (analisi linguistica / letteraria / storica)

 Storiche / filosofiche / etc.

RICERCA DI TESTI: RUDIMENTI DI INFORMATION RETRIEVAL

 Information retrieval e’ il nome dell’area dell’Informatica che si occupa del

 ritrovamento di documenti

Idea fondamentale: estrarre automaticamente dai testi informazioni (INDICI) che ne

 permettano il ritrovamento

Richiede metodi per

 INDICIZZARE i documenti

 Analizzare la ‘query’

 Cercare i documenti piu’ rilevanti alla query

DOCUMENTI COME INSIEME DI PAROLE

 RICERCA DI ARCHIVI TESTUALI: GOOGLE

 Il Web e’ un enorme archivio elettronico che contiene sia documenti quanto

 informazioni di ogni tipo

Usato estesamente nelle aree umanistiche per facilitare l’accesso a documenti

 I motori di ricerca come Google permettono di ritrovare documenti rilevanti usando

 PAROLE CHIAVE (KEYWORDS)

RICERCA AVANZATA IN GOOGLE

 RICERCA AVANZATA IN GOOGLE: OR

 RICERCA AVANZATA IN GOOGLE: -

 RICERCA AVANZATA IN GOOGLE

 ESPRESSIONI REGOLARI

 Le espressioni per la ricerca avanzata in Google sono una versione semplificata di

 un linguaggio per la ricerca chiamato ESPRESSIONI REGOLARI

Le espressioni regolari sono alla base delle capacita’ di analisi dei testi in linguaggi

 di programmazione come Java o Perl (e nel motore di ricerca Google)

ESPRESSIONI REGOLARI

 ESPRESSIONI REGOLARI

 USI DI ESPRESSIONI REGOLARI: TROVARE GLI INDIRIZZI DI POSTA

 ELETTRONICA

INDICI E RITROVAMENTO

 SOMIGLIANZA IN UNO SPAZIO VETTORIALE

 ALTRI MODI PER ‘STRUTTURARE’ DATI NON STRUTTURATI

 Per certi tipi di informazione altri modi di strutturazione sono piu’ appropriati

 Molta ricerca corrente si occupa del problema di estrarre automaticamente

 informazioni che permettano di strutturare diversamente i testi

RICERCA PER ENTITA’

 ORGANIZZAZIONE TEMPORALE

 LIVEMEMORIES

 ANALISI LESSICOGRAFICA DEI TESTI

 Tipi di analisi:

 Concordanze

 Frequenze

 Collocazioni

Applicazioni:

 Lessicografia

 Analisi dello stile

 Identificazione degli autori

(Vedi anche modulo D)

 ANALISI LESSICOGRAFICA DI TESTI

 Identificazione delle parole che occorrono in un testo

 Costruzione di INDICI

 Calcolo delle loro FREQUENZE

 Costruzione di CONCORDANZE

 liste ordinate di parole che si trovano in un testo con il contesto

Identificazione di COLLOCAZIONI

 “corpo contundente”

CONCORDANZE

 COLLOCAZIONI

 TIPI DI COLLOCAZIONI

 TERMINI TECNICI: sistema operativo, corte d’Assise

 VERBO SUPPORTO: fare attenzione, prendersi un caffe’, dar manforte

 COSTRUZIONI IDIOMATICHE: tagliar la corda, tirare le cuoia

 PER SAPERNE DI PIU’…

 Modulo D

 ANALISI STILISTICA AL COMPUTER

 Analisi dello stile di uno scrittore

 Esempi:

 “corpo contundente”: tipico burocratese

 “broken twig” in James Fenimore Cooper

 Uso dei colori (specialmente rosso) in “Red Badge of Courage”

IDENTIFICAZIONE DI AUTORI

 Identificazione dell’autore di testi storici / testi anonimi

 Autori dei libri della Bibbia

 Autori dei Federalist Papers

 Autore di “Primary Colors”

ARCHIVI NON TESTUALI:

 IMMAGINI & MULTIMEDIA

Applicazioni: beni culturali, archeologia, storia dell’arte, film ….

 Archivi di immagini

 Ricerca di immagini

 Analisi statistica di immagini

 IMAGE RETRIEVAL

 Ricerca di immagini:

 Usando didascalie od indici costruiti a mano (LABELS)

 Usando indici derivati automaticamente

RITROVAMENTO DI IMMAGINI USANDO DIDASCALIE

 CONTENT-BASED IMAGE RETRIEVAL

 Estraendo automaticamente tratti dall’immagine (CONTENT-BASED IMAGE

 RETRIEVAL)

Ricerca usando immagini ‘simili’

 Vettori di tratti visivi (colore, etc)

Esempi:

 Retrievr

 http://labs.systemone.at/retrievr

Image Miner (Uni Bremen / IBM)

 VIPER (Universita’ di Ginevra) http://viper.unige.ch/

CONTENT-BASED IMAGE RETRIEVAL

 RISULTATI

 CREAZIONE DI ARCHIVI DI TESTI

 La creazione di un archivio di testi richiede l’uso di una grande varieta’ di tecniche

 informatiche:

Possibilmente SCANNERIZZAZIONE

 ‘Ripulitura’

 Trasformazione in un formato STANDARD (XML / TEI)

 Sviluppo di metodi di RICERCA

BIBLIOTECHE DIGITALI

 Sempre piu’ spesso archivi, biblioteche e musei utilizzano tecniche per la

 digitalizzazione e la preservazione di documenti in formato digitale

Biblioteche digitali vanno oltre archivi di testi ed immagini in quanto documenti

 contengono METADATI che forniscono informazioni bibliografiche e collegamenti

DIGITALIZZAZIONE E CONSERVAZIONE

 Ora che la memoria sta diventando sempre piu’ economica, e con lo sviluppo di

 metodi piu’ sofisticati di scannerizzazione delle immagini, e’ pensabile creare

versioni elettroniche di documenti antichi e fragili per permetterne l’accesso senza

danneggiarli

Esempio: progetti della British Library

 PRINCIPALI AREE DI RICERCA NELLE BIBLIOTECHE DIGITALI

 Preservazione digitale

 Metadati:

 Text Encoding Initiative (prossima lezione)

 DUBLIN CORE

Infrastruttura:

 Open Archival Information System (OAIS)

 CREAZIONE AUTOMATICA DI DATABASE DA ARCHIVI

L’area della INFORMATION EXTRACTION si occupa della creazione automatica o

 semi-automatica di database a partire da collezioni di documenti

Utile soprattutto in aree come la biologia dove il numero di documenti pubblicati e’

 vastissimo (in Biologia: piu’ di 60000 nuovi articoli al mese)

RISORSE SU WEB:

 BENI CULTURALI

Il WORLD HERITAGE CENTRE: http://whc.unesco.org/

 Il Database Bibliografico del CONSERVATION INFORMATION NETWORK:

 http://www.bcin.ca/English/home_english.html

ICCROM:

 Il database di immagini http://www.iccrom.org/eng/lib/photo.htm

 Conferenze

RIASSUNTO DELLE IDEE PRINCIPALI

 Modello vettoriale per la ricerca di informazioni non-strutturate

 Espressioni regolari (e versione semplificata per Google)

 LETTURE ED APPROFONDIMENTI

 Tomasi, capitoli 7 e 9

 Google search:

 Google search basics:

 http://www.google.com/support/websearch/bin/answer.py?answer=136861

http://en.wikipedia.org/wiki/Google_search

GriseldaOnline: http://www.griseldaonline.it/

 Robert Harris, The Personal Computer as a tool for literary analysis

Lezione 7

INFORMATICA UMANISTICA B

 DA DATI NON STRUTTURATI A DATI STRUTTURATI: LINGUAGGI DI

 MARCATURA

XML

 TEI

 AGGIUNGERE STRUTTURA A DATI NON STRUTTURATI USANDO LINGUAGGI

 DI MARCATURA

In questa lezione e la prossima discuteremo di come sia possibile usare

 LINGUAGGI DI MARCATURA come XML per rendere ‘parzialmente strutturati’ dati

testuali

Oggi: aggiungere struttura a testi

 Prossima lezione: aggiungere informazione semantica

LINGUAGGI DI MARCATURA

 Permettono di aggiungere informazione (‘annotare’) un testo

 Due tipi di informazione:

 Aspetto (formattazione, disposizione degli elementi sulla pagina)

 HTML

Struttura logica

 XML

TIPI DI LINGUAGGI DI MARCATURA

 ‘Procedurali’ (TeX, LaTeX, nroff, troff)

 Indicano alla macchina la procedura di formattazione da seguire per un certo

 testo

‘Generici’ o ‘dichiarativi’ (SGML e discendenti)

 Dichiarano la funzione LOGICA del testo

 TeX e LaTeX

a

 SGML

 Sviluppato nel 1986 da Charles Goldfarb

 Obiettivo: sviluppare uno standard per l’INTERSCAMBIO di testi

 Consente di definire marcatori (‘TAGS’) che permettono di strutturare un testo ed i

 loro ATTRIBUTI

Utilizzato per:

 BNC

 OED

STRUTTURA SGML NEL BNC

 DTD

 La specifica degli elementi e dei loro attributi in un documento SGML costituisce la

 DEFINIZIONE DEL TIPO DI DOCUMENTO o DTD

HTML

 Un linguaggio di marcatura basato su SGML (una DTD SGML)

 Tipo di elementi e’ fissato

 LINGUAGGI DI MARCATURA: HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN">

<html>

<head>

<title>My first HTML</title>

</head>

<body>

<p> Hello, World! </p>

</body>

</html>

XML

 Una versione semplificata di SGML sviluppata dal W3C

 Come in SGML, ed a differenza di HTML, le TAG non sono predefinite ma definite

 usando un DTD o SCHEMA

ALBERI

 I documenti SGML, HTML ed XML hanno una struttura ad ALBERO

 DOCUMENTI XML HANNO UNA STRUTTURA AD ALBERO

 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

 ACCESSO AD UN ALBERO

 XML PER LA STRUTTURA LOGICA DI TESTI

 ALBERI + ATTRIBUTI IN XML

 ATTRIBUTI IN XML

 ATTRIBUTI

 Elements can contain one or more attributes

<phone area_code='0461'>881607</phone>

Names are case sensitive

 The values of the attributes must be enclosed within single or double quotes

 (either both single or both double)

Attributes cannot be empty (name only)

 No attribute can be repeated twice within an element

 BASI DATI IN XML: RUBRICA

<RUBRICA>

<PERSONA>

<DATI_ANAGRAFICI>

<NOME>Giulio</NOME>

<COGNOME>Cesare</COGNOME>

<INDIRIZZO>

<PIAZZA>Bruto</PIAZZA>

<N_CIVICO>10</N_CIVICO>

<CITTA>Roma</CITTA>

<CAP>10100</CAP>

</INDIRIZZO>

</DATI_ANAGRAFICI>

<TELEFONO>

<FISSO>

<NUMERO prefisso="06">321654</NUMERO>

</FISSO>

<MOBILE>

<NUMERO compagnia="blu">32557684785</NUMERO>

</MOBILE>

</TELEFONO>

</PERSONA>

<PERSONA>

<DATI_ANAGRAFICI>

<NOME>Giovanni</NOME>

<COGNOME>Pompeo</COGNOME>

<INDIRIZZO>

<PIAZZA>Catilina</PIAZZA>

<N_CIVICO>12</N_CIVICO>

<CITTA>Milano</CITTA>

<CAP>12100</CAP>

</INDIRIZZO>

</DATI_ANAGRAFICI>

<TELEFONO>

<FISSO>

<NUMERO prefisso="02">96877564</NUMERO>

</FISSO>

<MOBILE>

<NUMERO compagnia="tim">3356545342</NUMERO>

</MOBILE>

</TELEFONO>

</PERSONA>

</RUBRICA>

RUBRICA COME ALBERO

 XML e DATABASE

 XML E DATABASE

 TEXT ENCODING INITIATIVE

 Un’iniziativa internazionale per sviluppare standards per l’archiviazione di testi

 Inizi: 1987

 Standard basato su SGML agli inizi, ora XML

 Definizione:

 http://www.tei-c.org/release/doc/tei-p5-doc/en/Guidelines.pdf

TESTI IN FORMATO TEI

 TEXT ENCODING INITIATIVE

 una testata TEI, codificata come <teiHeader> (frontespizio elettronico), che

 raccoglie la serie delle informazioni paratestuali e metatestuali di riferimento

(descrizione dell'esemplare elettronico, di quello cartaceo di riferimento, delle

norme di codifica seguite e delle revisioni effettuate)

il testo vero e proprio, marcato con l'elemento <text>, suddiviso in tre elementi:

 <front> (avantesto: frontespizio dell'esemplare cartaceo di riferimento e

 materiali introduttivi come prefazioni, dediche, sommari, introduzioni, indici

etc.)

<body> (corpo del documento, a sua volta strutturato in partizioni

 significative del componimento, variabili a seconda della tipologia: testo in

prosa, in versi, testo teatrale, ecc.)

<back> (materiali annessi come glossari, indici, note, bibliografie, colophon

 etc.)

TEI Header

 <fileDesc>

 L’elemento <fileDesc> contiene tutte le informazioni bibliografiche

 TEI HEADER: titleStmt

 TEI HEADER: publicationStmt

 TEI HEADER: IL PRINCIPE

 KING LEAR IN FORMATO PROJECT GUTENBERG

 KING LEAR IN FORMATO TEI

 TEI: JANE EYRE

 Text markup

 ARCHIVI BASATI SULLA TEI

 Biblioteca Italiana:

 www.bibliotecaitaliana.it

Electronic Text Center:

 etext.lib.virginia.edu

Humanities Text Initiative:

 www.hti.umich.edu

Oxford Text Archive

 ota.ahds.ac.uk

LA BIBLIOTECA ITALIANA

 XML – DTD – XSL

 IDEE PRINCIPALI LEZIONE DI OGGI

 Linguaggi di marcatura

 XML

 Struttura ad albero

 Attributi

Text Encoding Initiative

 Archivi basati sulla TEI

 LETTURE

 Tomasi, cap. 4

 Linguaggi di Marcatura

 XML

 TEI:

 Tutorials:

 Gentle introduction to XML

 http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SG.html

TEI-LITE

 http://www.tei-c.org/Guidelines/Customization/Lite/teiu5_split_en.html

Lezione 8

INFORMATICA UMANISTICA B

 RAPPRESENTAZIONE DELLA CONOSCENZA

 ONTOLOGIE

 SEMANTIC WEB

 RAPPRESENTAZIONE DELLA CONOSCENZA ED ONTOLOGIE

 La ricerca sul modo ‘ideale’ per rappresentare le informazioni nelle basi di dati e in

 intelligenza artificiale 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’

 Quest’area si focalizza sulle ONTOLOGIE

 Ontologie base teorica del lavoro sul

 Ontologie applicate in domini come la medicina

 Il SEMANTIC WEB

RAPPRESENTAZIONE DELLA CONOSCENZA IN INFORMATICA

 In informatica sono stati sviluppati numerosi modelli della rappresentazione della

 conoscenza

TESAURI

 Modelli concettuali sviluppati per le basi di dati

 RETI SEMANTICHE e TASSONOMIE

 ONTOLOGIE

TESAURI

 Rappresentazioni di ASSOCIAZIONI tra parole

 Tipicamente raggruppate in CATEGORIE

 ESEMPIO DI TESAURO

 RETI SEMANTICHE E TASSONOMIE

 Rappresentazioni in cui

 Vengono identificate relazioni come nei modelli concettuali

 Viene anche rappresentata informazione TASSONOMICA

 Si esprimono anche RESTRIZIONI su relazioni

TASSONOMIE

 RELAZIONI E TASSONOMIE NELLE RETI SEMANTICHE

 DESCRIPTION LOGICS

 Una famiglia di logiche che permettono di descrivere reti semantiche specificando

 oltre che informazioni su relazioni e tassonomie anche

COMPLEMENTARITA: MALE e FEMALE sono disgiunti

 CARDINALITA’: una bici ha 2 ruote, un’auto ne ha 4

 etc

ONTOLOGIE IN INFORMATICA

 Concepts and definitions

 Aristotle’s Metaphysics,

 Book Z

Aristotle’s Metaphysics:

 Definitions

Definition by genus and differentia

 The ‘method of division’:

 Begin with the broadest genus containing the species to be defined

 (‘ANIMAL’)

Divide the genus in two sub-parts by some differentia (‘FOOTED’)

 Then divide the two sub-types again (CLOVEN-FOOTED)

 Other philosophers

Other philosophers

 The classical theory in a nutshell

 Disegno di ontologie

 Identificazione dei CONCETTI

 Identificazione dei loro ATTRIBUTI

 Identificazione delle relazioni di dipendenza tra questi concetti e di restrizioni,

 usando description logics o linguaggi logici piu’ potenti

ONTOLOGIA IN INFORMATICA

 What makes the theory so popular

 It offers a simple model of CONCEPT ACQUISITION

 “the natural model of concept acquisition is one where the learner acquires a

 concept by assembling its features”

It offers a convincing account of CATEGORIZATION (classification)

 Something is judged to be an instance of a concept if it has all and only the

 features of the concept

It explains certain types of INFERENCES

 Katz: from THERE IS A CHAIR IN THE ROOM can infer ANALYTICALLY

 that There is a physical object in this room

 There is an artifact in this room

ONTOLOGIA APPLICATA

 La ricerca sulle ontologie e’ al momento molto attiva nelle aree dell’Informatica

 Rappresentazione ed interscambio di informazioni scientifiche

 Semantic Web

ONTOLOGIA APPLICATA IN INFORMATICA

 Interoperabilità Semantica

 Integrazione di Database

 Imprese Virtuali

 Concurrent engineering

 e-commerce

 Web services

 Information Retrieval

 Distinguere il vocabolario dell’utente da quello dei dati

 Rispondere alle Query su insiemi di documenti

 Natural Language Processing

ONTOLOGIE NELL’AMBITO DELLA BIOLOGIA

 Protein Ontology: un’ontologia sviluppata per codificare la nostra conoscenza sulle

 proteine in modo sistematico

http://pir.georgetown.edu/pro/

Altre ontologie elencate sul sito OPEN BIOMEDICAL ONTOLOGY

 http://www.obofoundry.org/

 Gene ontology, C. elegans, etc

 PROTEIN ONTOLOGY

ALTRI DOMINI IN CUI VENGONO USATE ONTOLOGIE

 Geografia (per scambiare informazioni tra sistemi satellitari etc)

 Software

 Specifica di processi (management)

 PSL: http://www.mel.nist.gov/psl/

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)

 DOLCE

 Ontologia generale sviluppata dal Laboratorio di Ontologia Applicata del CNR

 (LOA)

La tassonomia di DOLCE

 Scelte Ontologiche di base in DOLCE (1)

 Oggetti (Enduranti o Continuanti) ed Eventi (Perduranti o Occorrenti)

 queste sono categorie distinte connesse attraverso la relazione di partecipazione.

Le Qualità formano una categoria

 esse ineriscono agli Oggetti (Qualità Fisiche) o agli Eventi (Qualità Temporali) e

corrispondono a “proprietà individualizzate”, cioè sono inerenti solo a una specifica

entità , per esempio “il colore di questa particolare rosa”, “la velocità di questo

movimento”, ecc.

Scelte Ontologiche di base in DOLCE (2)

 Ogni tipo di Qualità è associato a uno Spazio di Qualità che rappresenta lo spazio

 dei valori che le qualità (di uno specifico tipo) possono assumere. Gli spazi di

qualità non sono né nello spazio né nel tempo, ma sono ammessi diversi spazi di

qualità associati allo stesso tipo di Qualità.

Spazio e Tempo sono specifici spazi di qualità;

 Sono ammessi diversi tipo di spazio e tempo.

Diversi Oggetti/Eventi possono essere co-localizzati spazio-temporalmente: in

 questo caso si considera la relazione di costituzione.

Entità Astratte vs. Concrete

 Concrete: collocate nello spazio-tempo

 (le regioni di spazio-tempo sono collocate in se stesse)

Astratte (questo termine può avere due significati):

- Resultato di un processo di astrazione (qualcosa di comune a molte esemplificazioni)

- Non collocato nello spazio-tempo (questo è il sognificato in DOLCE)

Somme mereologiche (di entità cocnrete) sono concrete, gli insiemi che

 corrispondono a esse sono astratti...

Enduranti vs. Perduranti

 Enduranti:

 Tutte le loro parti proprie sono presenti ogni volta che essi sono presenti

 (interamente presenti, non attraverso le loro parti temporali)

Esistono nel tempo

 Possono genuinamente cambiare nel tempo

 Possono avere parti non essenziali

 La relazione di parte sugli endurtanti include un argomento temporale

Perduranti:

 Solo alcune delle loro parti proprie sono presenti ogni volta che essi sono

 presenti (presenza parziale, parti temporali)

Accadono nel tempo

 Non cambiano nel tempo

 Tutte le loro parti sono essenziali

 La relazione di parte sui perduranti non considera il tempo

SEMANTIC WEB

 Il Semantic Web (Berners-Lee Hendler et al 2001) 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

SEMANTIC WEB

 Esempio da pagina di Hendler

 INGREDIENTI DEL SEMANTIC WEB

 XML come linguaggio di markup, ed in particolare

 URI per identificare nomi

 namespaces

RDF per la rappresentazione di informazioni

 OWL (Web Ontology Language) per rappresentare concetti, attributi, e relazioni

 Una o piu’ ontologie

 LIVELLI DEL SEMANTIC WEB

 URI ed URL

 URL: indirizzo fisico

 URI: indirizzo ‘concettuale’

 RESOURCE DESCRIPTION FRAMEWORK (RDF)

 Linguaggio per esprimere asserzioni del tipo

<RISORSA, PROPRIETA’, VALORE>

ESEMPIO DI RDF

 ESEMPIO DI RDF

 OWL: LINGUAGGIO PER DESCRIVERE ONTOLOGIE

 Una serie di linguaggi che permettono di descrivere ontologie piu’ sofisticate

 OWL-LITE: tassonomie, restrizioni

 OWL-DL: livello delle description logics

 OWL-FULL: massima espressivita’ (logica)

OWL

 UN ESEMPIO DI PAGINA MARCATA PER SEMANTIC WEB

 JIM HENDLER’S PAGE, SEMANTIC WEB INFO

 VALUTAZIONE

 L’uso di ontologie in informatica e’ ancora controverso

 In alcune aree come la biomedicina chiaramente utili ed utilizzate

 In altre aree meno chiaro

 Semantic Web compreso

RIASSUNTO CONCETTI FONDAMENTALI

 Forme di organizzazione della conoscenza in informatica: tesauri, reti semantiche,

 ontologie

Ontologie: filosoficamente, applicazioni informatiche, di dominio / generali

 Semantic Web: RDF, OWL

 LETTURE

 Tomasi, capitolo 8

 Wikipedia

 Ontologie:

 http://www.ontologyportal.org/

 http://www.loa-cnr.it/

Semantic Web:

 http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-

 84A9809EC588EF21

Lezione 9

INFORMATICA UMANISTICA B

 ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE

 DI NUOVO LA

 MACCHINA DI TURING

MACCHINA DI TURING COME MODELLO DI PROGRAMMAZIONE

 Partendo dalla macchina di Turing, abbiamo seguito un primo percorso attraverso

 l’Informatica moderna, focalizzato sull’aspetto ‘sistemistico’ dell’Informatica

La macchina di Turing non e’ pero’ soltanto, o soprattutto, un architettura di

 computer, ma un punto di partenza per teorie della PROGRAMMAZIONE

In questa lezione e la prossima seguiremo invece un secondo percorso focalizzato

 su questo aspetto

PROGRAMMI

 Un computer e’ una macchina per eseguire PROGRAMMI

 Un programma e’ un ALGORITMO per risolvere un certo PROBLEMA scritto

 secondo le regole di un LINGUAGGIO DI PROGRAMMAZIONE

ALGORITMO

 Un PROGRAMMA e’ un ALGORITMO posto in forma comprensibile al computer

 Definizione informale di ALGORITMO: una sequenza FINITA di passi DISCRETI e

 NON AMBIGUI che porta alla soluzione di un problema

Questa definizione si puo’ applicare al di fuori dell’Informatica: nella matematica (da

 cui ha origine) ma anche nella cucina

UN QUASI-ALGORITMO:

 LA RICETTA PER LA BAGNA CAUDA

1. Cuocere gli spicchi di aglio, coperti con il latte, fino a quando non diventino teneri.

2. Tritare l'aglio

3. Unirlo all'olio, alle acciughe tagliate molto finemente

4. Cuocere a fiamma moderata e mescolare fino a far ridurre il contenuto in un

composto omogeneo.

5. Dopo circa venti minuti aggiungere qualche fiocco di burro

6. Servire in tavola con le verdure.

PERCHE’ QUASI-ALGORITMO?

 Numero di passi e’ finito

 Ma molti passi sono ambigui:

 ‘teneri’?

 `fiamma moderata’?

IL TERMINE ALGORITMO

 Il nome ALGORITMO deriva dal nome del matematico persiano Muhammad ibn

 Mūsa 'l- Khwārizmī che attorno all’825 scrisse un trattato chiamato Kitāb al-djabr wa

'l-muqābala (Libro sulla ricomposizione e sulla riduzione)

AL-KHWARIZMI ALGORISMO ALGORITMO

à à

 (ALGEBRA deriva da AL-DJABR)

UN PROBLEMA, DUE ALGORITMI: IL MASSIMO COMUN DIVISORE

 MCD: UN ALGORITMO ELEMENTARE

 A scuola si impara un algoritmo molto semplice per calcolare MCD: la

 SCOMPOSIZIONE IN FATTORI PRIMI

42 = 2 x 3 x 7

 56 = 2 x 2 x 2 x 7

Algoritmo MCD(M, N):

 Scomponi M ed N in fattori primi

 Estrai i componenti comuni

Questo metodo si’ puo’ solo applicare per numeri piccoli (la scomposizione in fattori

 primi e’ molto costosa)

MCD: L’ALGORITMO DI EUCLIDE

 MCD(M,N):

 ¹

RIPETI finche’ M N

 SE M > N, M M –N;

ß

 ALTRIMENTI, N N – M;

ß

 RITORNA al passo 1;

 OUTPUT M

ESEMPIO

 MCD(42,56):

 ¹

M(42) N(56);

 N (56) > M (42)

 N 14

ß

 ¹

M(42) N(14);

 M (42) > N (14);

 M 28

ß

 ¹

M(28) N(14)

 M(28) > N (14);

 M 14

ß

OUTPUT: 14

MCD: L’ALGORITMO DI EUCLIDE, II

 MCD(M,N):

 Dividi M per N; sia R il resto

 Se R = 0, termina; MCD = N

 Altrimenti, M = N, N = R, e ritorna da

UN ALGORITMO PIU’ FORMALE (CLASSIFICAZIONE DELLA TEMPERATURA)

 INPUT: una temperatura in Celsius

 ALGORITMO:

 SE temperatura > 30

 ALLORA caldo

 ALTRIMENTI freddo

OUTPUT: CALDO o FREDDO

 ALCUNE CONSIDERAZIONI:

 PROBLEMI ED ALGORITMI

Ci sono sempre molti algoritmi per risolvere un problema

 Parte dell’arte della programmazione e’ trovare gli algoritmi piu’ efficienti

 ALGORITMI E FUNZIONI

 In termini matematici, un algoritmo puo’ essere visto come una FUNZIONE che

 produce un certo OUTPUT dato un certo INPUT

Per esempio, MCD(42,56) = 14

Due algoritmi si dicono EQUIVALENTI se producono lo stesso output dato lo stesso

 input. Fattori primi e Euclide sono EQUIVALENTI (ma non egualmente efficienti!!)

ALGORITMI PIU’ COMUNI IN INFORMATICA

 Algoritmi MATEMATICI

 Per fare calcoli anche molto complessi (per esempio, integrali, la scoperta di

 numeri primi)

Algoritmi di ORDINAMENTO

 45 2 17 28 101 2 17 28 45 101

à

Algoritmi di RICERCA

 Algoritmi per il TRATTAMENTO DELLE STRINGHE

 COMPILATORI

 Algoritmi di COMPRESSIONE

 DA ALGORITMI A PROGRAMMI

 LINGUAGGI DI PROGRAMMAZIONE

 Un linguaggio di programmazione permette di esprimere certi tipi di istruzioni in

 modo che possano venire poi convertite in istruzioni macchina

Un linguaggio di programmazione e’ caratterizzato da

 SINTASSI (come vengono scritte le istruzioni)

 SEMANTICA (come devono venire interpretate)

CONSIDERAZIONI, II:

 INGREDIENTI ESSENZIALI DI UN LINGUAGGIO DI PROGRAMMAZIONE

MCD(M,N):

 ¹

RIPETI finche’ M N

 SE M > N, M M –N;

ß

 ALTRIMENTI, N N – M;

ß

 RITORNA al passo 1;

 OUTPUT M

INGREDIENTI ESSENZIALI DI UN LINGUAGGIO DI PROGRAMMAZIONE

 Poter mettere istruzioni in SEQUENZA

 Poter cambiare l’ordine di esecuzione sulla base di TEST

 Poter RIPETERE istruzioni

 Questi ingredienti vengono catturati tramite i DIAGRAMMI DI FLUSSO

 DIAGRAMMI DI FLUSSO

 Una rappresentazione grafica usata per descrivere in modo piu’ preciso i passi di

 un algoritmo senza usare una sintassi specifica

Un diagramma e’ composto da una serie di BLOCCHI uniti da archi

 ESEMPIO: AREA DEL RETTANGOLO

 Calcolo dell’area di un rettangolo

 AREA:

 Leggi da input l’altezza H

 Leggi da input la base B

 Calcola l’area A

 Produci in output il risultato

AREA DEL RETTANGOLO: DIAGRAMMA DI FLUSSO

 BLOCCHI: INIZIO E FINE PROGRAMMA

 BLOCCHI:

 ISTRUZIONI ELEMENTARI

BLOCCHI: INPUT / OUTPUT

 LE VARIABILI

 Molti algoritmi richiedono un qualche modo per immagazzinare i risultati di certi

 calcoli.

Per esempio, nell’algoritmo per MCD, M e N

Quasi tutti i linguaggi di programmazione permettono di usare delle VARIABILI per

 questo scopo. Una variabile puo’ essere pensata come un nome per una zona di

memoria.

VARIABILI NELL’ALGORITMO DI EUCLIDE

 MCD(M,N):

 ¹

RIPETI finche’ M N

 SE M > N, M M –N;

ß

 ALTRIMENTI, N N – M;

ß

 RITORNA al passo 1;

 OUTPUT M

ESEMPIO: SCAMBIO DI VALORI

1. Leggi il valore della prima variabile X

2. Leggi il valore della seconda variabile Y

3. Salva il valore di X in una variable Aux per ricordarlo

4. Assegna ad X il valore di Y

5. Assegna a Y il valore di Aux

DIAGRAMMA DI FLUSSO

 CONDIZIONALI

 Un’altro degli ingredienti fondamentali di un linguaggio di programmazione e’ la

 possibilita’ di scegliere di eseguire istruzioni diverse a seconda dei risultati di un

TEST

CONDIZIONALI

 ESEMPIO: PARI O DISPARI

1. Leggi N

2. Dividi N per 2

3. Se Resto = 0 scrivi: N e’ pari

4. Altrimenti scrivi: N e’ dispari

PARI E DISPARI

 RIPETIZIONI

 L’ultimo componente fondamentale di un linguaggio di programmazione e’ la

 possibilita’ di ripetere le stesse azioni un gran numero di volte

RIPETIZIONI

 ALGORITMO DI EUCLIDE

 REMINDER: LA MACCHINA DI TURING E L’IPOTESI DI CHURCH

 Quando avevamo introdotto la macchina di Turing, si era menzionata l’ipotesi di

 Church:

La macchina di Turing’ e’ una macchina UNIVERSALE

 Nel senso che ogni programma eseguibile puo’ essere scritto sotto forma di

 istruzioni per la macchina di Turing

Questa ipotesi si basa sul fatto che la macchina di Turing puo’ esprimere tutti i

 costrutti fondamentali appena discussi

LINGUAGGI DI PROGRAMMAZIONE

 Il calcolatore comprende istruzioni in LINGUAGGIO MACCHINA

 0011 001 010

Una prima astrazione dal linguaggio macchina sono i cosiddetti ASSEMBLER che

 esprimono le istruzioni macchina in formato simbolico

ADD R1 R2

Una seconda astrazione sono i linguaggi di programmazione AD ALTO LIVELLO

 che astraggono dalle istruzioni macchina

X X + Y

ß

ALGORITMO DI EUCLIDE IN UN TIPICO LINGUAGGIO AD ALTO LIVELLO

 COMPILATORE

 E’ un programma che trasforma un programma espresso in linguaggio ad alto livello

 (PROGRAMMA SORGENTE) in linguaggio macchina (PROGRAMMA OGGETTO)

In Windows: crea file .exe

Linguaggi tipicamente compilati: C, C++, Fortran, Pascal

 COMPILATORI

 INTERPRETI

 Un interprete e’ un programma che interpreta le istruzioni di un programma ad alto

 livello DIRETTAMENTE, senza tradurle in linguaggio macchina

Tipici linguaggi interpretati: Java, Lisp, Perl, Python

 UN ESEMPIO DI LINGUAGGIO DI PROGRAMMAZIONE

 VISUAL BASIC e’ il linguaggio di programmazione usato per sviluppare applicazioni

 in ambienti Microsoft Windows

E’ un linguaggio

 Di alto livello

 Interpretato


PAGINE

82

PESO

1.29 MB

AUTORE

summerit

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in beni culturali
SSD:
Università: Trento - Unitn
A.A.: 2012-2013

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher summerit di informazioni apprese con la frequenza delle lezioni di Informatica per le discipline umanistiche e linguistiche e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Trento - Unitn o del prof Zamparelli Roberto.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in beni culturali

Storia romana
Appunto
Schema di storia moderna
Appunto
Etnomusicologia - Appunti
Appunto
Filologia italiana - lezioni
Appunto