Che materia stai cercando?

Fondamenti di Informatica: appunti completi

Appunti completi di tutte le lezioni di Fondamenti di Informatica con il prof. Ceravolo con note aggiuntive ed esempi adatti per simulare la prova di esame. Gli appunti presentano tutti i moduli affrontati durante le lezioni e utili per approfondire.

Esame di Fondamenti di Informatica per Scienze umanistiche docente Prof. P. Ceravolo

Anteprima

ESTRATTO DOCUMENTO

- File di testo: file interpretati come una serie di sequenze alfanumeriche e presenta vari vantaggi,

come il poter offrire un formato universale e fruire una comprensione diretta senza bisogno di

installare programmi appositi. Questo garantisce la massima portabilità (il numero di sistemi

operativi in grado di leggere il file è molto ampio). Essi vengono spesso utilizzati per programmare

(file sorgente che vengono trasformati in qualcosa da eseguire: compilazione o interpretati tramite

un output: interpretazione);

- File eseguibili: contengono programmi eseguibili per un computer, cioè un programma scritto in

linguaggio macchina nel formato adatto ad essere caricato dal sistema operativo e quindi sono il

formato meno portabile in assoluto. In generale, essi dipendono dalla piattaforma e presentano

delle restrizioni dovute ai diversi processori presenti nei diversi sistemi operativi, ai diversi formati

per i file eseguibili e alle diverse operazioni di base eseguibili in modo diverso dai diversi file system.

L’incompatibilità può essere raggirata attraverso dei software di emulazione (come Java), i quali

hanno la qualità e il vantaggio di superare questi ostacoli.

*postilla. Il formato .csv (Comma-separated values) descrive dei vettori separando gli elementi tramite

delle virgole. Questo consente di costruire delle tabelle nelle quali i vettori sono rappresentati dalle righe e

le colonne dai separatori (ossia le virgole). È un formato che si può semplicemente gestire poiché è un file

di solo testo che può essere analizzato da diversi applicativi, ma fornisce un modo di organizzazione dati.

L’algoritmo quindi poi saprà che ogni colonna contiene un dato raccolto.

5 – Le reti

LA RETE DI CALCOLATORI

Una rete di calcolatori è un sistema che permette lo scambio di condivisione di dati informativi e risorse

tra diversi calcolatori. Per risorse si intende hardware o software.

➢ Rete: sistema di collegamento di più computer mediante una singola tecnologia di trasmissione;

➢ Internet: insieme di reti collegate da router, configurati per inoltrare il traffico tra computer

collegati ad una qualsiasi rete di insieme;

➢ Trasmissione di pacchetti: scambio di dati su una rete;

➢ Internetworking: servizi di rete (instradamento) che vengono effettuati su un insieme di dati;

➢ Applicazioni di rete: programmi (software) che usano Internet per fornire un servizio.

Una rete di calcolatori è un sistema articolato e complesso, formato da diverse tecnologie hardware e

software diverse, le quali possono tutte essere interconnesse a Internet. Essa incorpora elementi di

affidabilità e robustezza, collegamenti multipli e un routing ben distribuito. Il sistema è in grado di lavorare

anche nel momento in cui alcuni canali sono disconnessi, per questo c’è una maggior robustezza.

PROTOCOLLI PER FAR FUNZIONARE INTERNET

Vi sono protocolli di comunicazione a livello fisico che decidono come trasmettere il segnale attraverso i

nodi, come Ethernet, Bluetooth o Wi-Fi che lavorano attraverso dei segnali radio. Ci sono poi una serie di

standard utili ad identificare i nodi collegati nella rete: IP, DNS e URI. Il numero IP è un numero

identificativo dell’utente, anche se da un punto di vista tecnico identifica un sistema operativo collegato

alla rete. Ogni volta che un device o sistema operativo si collega alla rete, essa gli assegna un numero IP. Il

DNS (Domain Name System) è un’associazione tra numeri e nomi: questi server traducono in indirizzi IP i

nomi dei siti web e verificano la sicurezza del sito stesso. Lo standard URI (Uniform Resource Identifier),

invece, viene utilizzato per dare nomi a delle risorse generiche, utilizza una gerarchia simile a quella del

DNS. È possibile quindi identificare una risorsa e salvarla. Questi standard non sono persistenti, poiché

dipendono dal sito e dai propri standard.

Vi sono poi protocolli di comunicazione come TCP, HTTP, FTP, PPP e si occupano della comunicazione tra

applicativi.

I protocolli definiscono il formato, l’ordine di invio e ricezione dei messaggi tra dispositivi e le azioni da

intraprendere quando si riceve un messaggio.

Si parla di Network Edge (applicazioni e host) quando l’obiettivo è rendere disponibili o acquisire dei

contenuti. Si parla invece di Network Core (router) quando si tratta di organizzazione del flusso di messaggi

che circolano nella rete. Il provider (la rete di accesso) ha poi l’obiettivo di dare accesso alla rete attraverso

un suo servizio. Lo switch si distingue dal router poiché si occupa di una parte del collegamento in rete,

occupandosi solo di reindirizzare i canali che l’utente gli indirizza.

CONTESTO STORICO ALL’ORIGINE DELLE RETI

Lo sviluppo delle reti distribuite avvenne grazie a diverse comunità. All’origine vi fu un contribuito di

matrice scientifica. L’idea del Packet Switching può essere attribuita a Paul Baran, che propose nel 1960

l’idea del Distributed Network, ossia la ridondanza e molteplicità dei collegamenti. Quest’idea fu piuttosto

contrastata, ma riuscì ad emergere grazie alla miglior efficienza che avrebbe portato nel campo

comunicativo. Dal punto di vista del routing, chi si occupa di indirizzare i messaggi ragiona a livello locale.

Prima che si arrivasse a questo, si pensava di partizionare i messaggi in pacchetti che potevano seguire

diversi percorsi. Per questo Paul Baran parlò di Distributed adaptive message block switching, ma tuttavia

questo termine non passò alla storia. Un altro contributo importante venne da Leonard Kleinrock, il quale

pose le basi delle reti statistiche con lo studio delle reti distribuite “Information Flow in Large

Communication Nets”. Fu poi Donald Watts Davies a coniare il termine Packet Switching.

PACKET SWITCHING

Le reti distribuite lavorano attraverso una commutazione di pacchetto (Packet Switching): una tecnica per

condividere un canale di comunicazione tra più nodi in modo non deterministico, suddividendo

l’informazione da trasferire in pacchetti trasmessi individualmente o in sequenza. La scelta del termine

avvenne per battezzare questa tecnologia di trasmissione di dati e si deve a Donald Watts Davies, fisico del

British National Physical Laboratory. Grazie a questo sistema il gestore non interveniva sulla modalità di

comunicazione attraverso la gestione dei canali, ma poteva differenziarsi a livello di servizio.

Vedi: https://en.wikipedia.org/wiki/Packet_switching#/media/File:Packet_Switching.gif

IL PROGETTO ARPANET FINO ALLA NASCITA DI INTERNET

Lo sviluppo di Internet avvenne tramite diversi contribuiti. Nel 1958 venne creato il progetto ARPA che

aveva l’obiettivo di aumentare i finanziamenti per lo sviluppo scientifico. Licklider, importante informatico

statunitense, lavorò per ARPA e al sistema di reti distribuite. Quando nacque la NASA, ARPA si concentrò

prevalentemente sull’informazione e sulle telecomunicazioni. Nel 1969 così nacque ARPANET, un progetto

per interconnettere 4 università americane. Il progetto fu sempre accessibile e non militare, come si cercò

di far credere successivamente. Questo processo si rafforzò col tempo e negli anni ’70 iniziarono i primi

esperimenti tra reti e nel 1977 avvenne la prima interconnessione tra due reti: ARPANET venne connessa

con SATNET di Londra. Verso la fine degli anni ’70, nacque una rete più economica della National Science

Foundation (NSF). Nel 1984 il CERN di Ginevra creò la sua prima rete: TCP/IP. Verso la fine degli anni ’80 poi

le reti iniziarono a fondersi fino ad arrivare alla nascita di INTERNET nel 1991, principalmente dovuta al

CERN (fusione tra CERNET e NSFNET).

Un contributo importante fu sicuramente fornito da piccole aziende informatiche di supporto. Con la

nascita del Personal Computer, vi fu una rivoluzione per queste piccole aziende. Il progetto Macintosh del

1984 fu elaborato per combattere il dominio delle grandi aziende.

Nello stesso periodo, nacque un movimento parallelo antagonista, diventato poi commerciale. Inizialmente

erano giovani appassionati, poi diventarono veri e propri imprenditori del campo. Nel 1977 Ward

Christensen iniziò la realizzazione e distribuzione gratuita del programma open-source “MODEM”, una

demodulazione del segnale audio che passa attraverso la rete telefonica. Nel 1979 nacquero poi le BBS:

Bulletin Board System, le quali connettevano calcolatori sfruttando la rete telefonica e un modem. Nel

1987 poi nacque la MCI Mail, la prima rete commerciale via modem e nel 1991 le BBS entrarono con ARPA

in Internet. Questa cultura inizialmente si diffuse attraverso comunità antagoniste, alla ricerca di canali

alternativi, poi però esse riuscirono ad integrare le proprie intenzioni alle esigenze dello sviluppo di

Internet. Attorno a ciò nacque la cultura Hacker, che oggi tende ad avere una connotazione negativa, ma in

realtà rappresenta chi riesce a raggiungere un contenuto o scoprire delle nuove modalità di navigazione in

rete. Il termine iniziò ad essere associato alla criminalità a causa della nascita di un movimento

contrastante.

WWW: WORLD-WIDE WEB

Nel 1989, un gruppo di ricercatori informatici del CERN di Ginevra ricevette l’incarico di realizzare un

meccanismo per la rapida diffusione di articoli e appunti tra i ricercatori del centro. Tim Berners-Lee e

Robert Cailliau identificarono Internet attraverso una navigazione ipertestuale e SGML, elementi chiave per

questo meccanismo. Fu Tim Berners-Lee nel 1990 a realizzare un browser-editor sulla piattaforma NeXT,

che egli chiamò World-Wide Web (poi denominato Nexus). Attraverso il web, l’informatica divenne

accessibile anche a tutti coloro che non avevano una preparazione scientifica. Nel 1991 fu rilasciata una

nuova versione del browser, che diventò universale. Berners-Lee e Cailliau mostrarono durante una

conferenza il primo prototipo della loro applicazione, ma ottennero scarso successo e il progetto fu

bocciato da gran parte della comunità scientifica. Il riconoscimento a Berners-Lee come padre fondatore di

Internet è forse riduttivo dato il complicato processo storico e informatico da cui deriva Internet. La

crescita fu esponenziale, poiché nel 1994 si registravano circa 1500 server.

Il successo di questo ambiente applicativo rispetto agli altri presenti fu dovuto al raggiungimento di utenti

non tecnici e quindi comuni, inoltre lo strumento testo fu utilizzato come strumento di condivisione. Altre

applicazioni Internet concorrenti al Web erano:

- FTP: capace di possedere un meccanismo di scambio file che non gestiva la visualizzazione, ma

semplicemente scambiava i file;

- ARCHIE: prediligeva la ricerca all’interno di testi e quindi era in grado di indicizzare il contenuto di

molti archivi pubblici presenti in Internet;

- WAIS: un server che forniva servizi di ricerca avanzati solo per documenti di testo;

- GOPHER: presenta ridotte differenze rispetto al Web e consentiva la creazione di link che portavano

a dei testi o a delle directory.

Erano presenti anche applicativi che si concentravano sullo sviluppo di capacità ipertestuali, con delle

funzionalità più avanzate rispetto al Web, come Hypercard e Toolbook. Hypercard lavorava, ad esempio,

attraverso delle icone che raggruppavano dei documenti dello stesso genere. Microcosm, invece, era un

server pensato per collegare individui che volevano collegare tra di loro delle applicazioni. Infine, Hyper-G

era un sistema Client-Server complesso e completo che consentiva di collegare diversi nodi, grazie ad un

protocollo complesso.

Ciò che rafforzò la posizione del Web fu sicuramente una semplificazione ottenuta sia sul piano

dell’accettazione della tecnologia, sia sulla scalabilità tecnica (ossia la capacità di poter sopportare dei

contesti distribuiti, privi di un controllo centralizzato, che consentivano un’espansione dell’ambiente). I

punti di forza che consentirono al Web di prevalere su tutti gli altri applicativi furono:

1. Punto di partenza fu la tecnologia comunemente usata dagli utenti;

2. Protocollo semplificato;

3. Navigazione ipertestuale semplificata;

4. Modello dati semplificato;

5. Possibilità di raggiungere delle funzionalità specifiche attraverso una stratificazione di livelli.

L’architettura del Web si basa su tre standard che interagiscono in modo trasparente, ovvero nel senso

che le caratteristiche di uno standard non modificano quelle dell’altro, ma lo completano:

- Identificazione: URI – Uniform Resource Identifier

Il Web è uno spazio informativo in cui ogni elemento di interesse è chiamato risorsa ed è associato

a un identificatore univoco (URI). URL (Uniform Resource Locator) è un sottoinsieme;

- Interazione: HTTP – Hyper Text Transfer Protocol

C’è un protocollo di comunicazione (HTTP) che permette di scambiare messaggi su una rete

informatica (TCP/IP);

- Formato dati: HTML – Hyper Text Markup Language

I Server e i Client negoziano la corretta identificazione del formato dati con cui la risorsa è

rappresentata (XHTML, JPG, JSON, etc.).

HTTP

All’interno di una rete sono presenti due nodi: uno può assumere il ruolo di Server e l’altro di Client, ossia

ricevere richieste o fornire delle risposte. Ogni richiesta non è nient’altro una richiesta fatta dal Client al

Server, il quale decide se può fornire la risposta o meno (errore 404). Il protocollo HTTP è generico e non è

vincolato dai dati. HTTP è Client-Server ed è privo di stato, ossia non mantiene informazioni che perdurano

tra una connessione e l’altra. Il Client ogni volta ricrea da zero il contesto necessario. Il protocollo è molto

semplice: il Client fa una richiesta (nel frattempo una serie di altre richieste viene eseguita) e il Server

fornisce una risposta. All’interno di questo processo sono presenti delle applicazioni che svolgono dei ruoli

diversi e avviano processi interni o di terze parte durante lo schema base chiamata-risposta. In particolare,

si possono presentare User agent, Origin-server, Proxy, Gateway o Tunnel.

L’User agent è un browser o robot che richiede delle risorse; l’Origin-server mantiene la risorsa richiesta; il

Proxy è un’applicazione intermedia che mantiene copia delle richieste più frequenti che fornisce al Client

come se fosse l’Origin-server; il Gateway svolge una funzione simile al Proxy, ma il Client non è

consapevole della sua richiesta; il Tunnel è un’applicazione che inoltra passivamente le richieste che

ottiene.

Il protocollo di per sé è privo di stato e per questo sono state studiate delle modalità che tengono traccia

delle attività dell’utente. I Cookies sono appunto un blocco di dati opaco lasciato in consegna ad un Client

che mantiene così lo stato di precedenti connessioni e lo manda al Server di pertinenza ogni volta che

richiede un documento. Così, alla prima richiesta di un Client, il Server fornisce la risposta ed un header

aggiuntivo, il cookie, con dati arbitrati, e con la specifica di usarlo per ogni successiva richiesta.

Uno dei fattori che ha determinato il successo del Web è stato URI. Il principale elemento mancante infatti

era proprio una sintassi universale con cui identificare le risorse di rete. Esso è indipendente dal

protocollo, è uno spazio di nomi gerarchico basato su un set di caratteri ristretto (per evitare problemi di

cattiva codifica) ed è opaco: non dipende da URI definire una semantica di una risorsa.

Per andare a ricercare una risorsa, vi è innanzitutto un protocollo (http), spesso una modalità di

autenticazione che resta criptata (login) così come il servizio (host) o la porta (8080), che identifica le

applicazioni attive. Seguono path, ovvero il percorso all’interno del sistema operativo che normalmente

porta ad un file (come .html), e la query, delle copie di parametro valore. Al termine vi è il nodo, una

sezione del file.

I linguaggi di markup sono linguaggi opportuni per strutturare e marcare i documenti in maniera

indipendente dall’applicazione, favorendo riusabilità, flessibilità e apertura delle applicazioni complesse. I

Tag sono etichette e marcatori che identificano porzioni di testo. Così si ha modo per identificare e

processare le porzioni di testo contrassegnate da una certa marcatura. In questo modo un algoritmo può

ricercare nel testo un numero maggiore di elementi grazie a queste etichette identificative. Altri marcatori,

invece, sono strutturali ed invisibili nella pagina visualizzata, ma utili per identificare le sezioni e per

rispettare la sintassi grammaticale di HTML come <body> o <head>.

HTML fu il primo linguaggio proposto per il Web. Questo linguaggio supporta l’ipertestualità: legami e

collegamenti tra documenti diversi.

<a href="nuove-risorsa.html">Esempio di link</a>

HTML supporta anche la multimedialità: la possibilità di utilizzare contemporaneamente più media nella

pagina.

<img width="70%" height="220" src="img/uri-url-urn.png" alt="URI

URL URN">

<video width="320" height="240" controls="">

<source src="movie.mp4" type="video/mp4">

<source src="movie.ogg" type="video/ogg">

</video>

Inizialmente il Web funzionava solo attraverso delle risorse statiche (HTML). I link avevano una valenza

semantica significativa e collegavano altre pagine. Con questo approccio è necessario generare un

documento per tutte le opzioni da fornire all’utente. Si parla, invece, di risorse dinamiche se alcune

componenti di un documento vengono elaborate nel momento in cui arriva una richiesta. Ciò avviene

attraverso un uso dinamico di programmi esterni e l’aggiornamento automatico dei valori dei contenuti in

una tabella numerica. Non tutti i file vengono gestiti allo stesso modo. Nel caso si dovesse caricare un MP3,

il file dovrà essere interpretato e questo dipende dal browser, il quale può essere aiutato di leggere il

linguaggio anche attraverso un plugin. Per quanto riguarda le immagini .jpeg, .gif e .png sono i file

maggiormente supportati.

6 – Linguaggi Web

HTML

Hyper Text Markup Language (HTML) è un linguaggio di testo che descrive la struttura e il contenuto di un

documento Web. Il linguaggio HTML ha come scopo la sola rappresentazione della struttura dei

documenti, associando ai contenuti una semantica che viene tradotta in una rappresentazione grafica (un

layout) o comportamento dell’interfaccia. Negli anni poi si sono sviluppati altri linguaggi portabili e costruiti

sul concetto di markup. XML (EXtensible Markup Language), ad esempio, è un linguaggio di markup con la

stessa sintassi. Rispetto a HTML, la differenza è che XML ha un vocabolario proprio per descrivere i

documenti e può essere costruito di volta in volta a seconda delle necessità. Ciò è utile perché così le

applicazioni che si scambieranno i dati riusciranno ad utilizzarli in maniera comprensibile ed universale

(trasformati dal browser in HTML durante l’interpretazione). Un altro formato è JSOM, sostanzialmente un

formato dalle stesse funzioni di HTML con alcuni vantaggi: è meno verboso (utilizza gli stessi caratteri per

descrivere la stessa cosa), usa una sintassi che contiene dati.

Il componente principale della sintassi è l’elemento che delimita le porzioni di documento a cui associare

una specifica semantica. Ogni elemento è determinato da marcature dette tag, racchiusi tra < >. Gli

elementi possono contenere poi degli attributi che si definiscono all’interno del tag d’apertura attraverso il

nome dell’attributo e possono essere associati a un valore.

La struttura di un documento è definita da alcuni tag con funzione strutturale. Questi elementi non

vengono visualizzati, ma definiscono i confini delle aree in cui si organizza il documento. Il documento è

delimitato dai tag <html> e </html>. Segue la sezione di intestazione, header, delimitata tra <head> e

</head> e il corpo, body, delimitato tra <body> e </body>.

Il linguaggio è nato per descrivere testi, poi si è esteso divenendo oggi a tutti gli effetti un linguaggio per

definire interfacce. Il testo rimane un elemento molto importante, sia perché rimane frequente il suo

utilizzo sia perché costituisce la modalità più leggera di definizione di un contenuto, fruibile con

connessioni di qualsiasi livello di banda passante, che si sposa meglio con gli strumenti di accessibilità.

In HTML esistono sei livelli di intestazioni. Le intestazioni sono elementi di blocco: elementi successivi

saranno visualizzati a capo. Il testo si suddivide in paragrafi, anch’essi elementi di blocco (<p> e </p>).

L’elemento ancora consente di trasformare un elemento in un oggetto cliccabile che rinvia alla risorsa

definita dall’attributo h ref.

<p> Clicca <a href=http://www.unimi.it>QUI</a> per accedere al sito UNIMI </p>.

Alcuni termini basilari:

Rel

- definisce il tipo di relazione logica con la risorsa;

Target

- la finestra nella quale aprire la nuova risorsa;

Hreflang

- la lingua con cui si è espressa la storia;

Media

- il tipo di device per cui è ottimizzata la risorsa.

IL WEB DEI DATI

Oltre a modificare e creare elementi della pagina, è possibile includere elementi acquisendoli da sorgenti

eterogenee. Esistono dei connettori per interagire con i database, ovvero con le applicazioni dedicate

all’archiviazione dei dati. Maggior coerenza con gli standard implementativi si ottiene quando vengono

acquisiti dati attraverso formati di markup, come XML, JSON, RDF. Quando questa acquisizione si ottiene

attraverso delle chiamate HTTP, si parla di protocolli REST (Representational State Transfer). Quando

quest’acquisizione si ottiene senza imporre una nuova interpretazione della pagina si parla di metodi

asincroni (tramite l’acronimo AJAX, Asynchronous JavaScript +XML per riferirsi a questo approccio).

Esempio di chiamata AJAX:

API (Application Programming Interface) indica insiemi di procedure disponibili al programmatore, di solito

raggruppate a formare un set di strumenti specifici per l’espletamento di un determinato compito

all’interno di un certo programma. La finalità è ottenere un’astrazione che permette di definire un punto di

accesso ai servizi disponibili. Di fatto, consente al fornitore di un servizio di decidere cosa rendere pubblico

e cosa no. Per i servizi web, le API si organizzano per consentire una serie di chiamate HTTP.

OPEN DATA

Tra i diversi servizi che condividono dati sul web è interessante menzionare i dati aperti, o Open Data, dati

liberamente accessibili con la restrizione obbligatoria di citare la fonte e mantenere la banca dati aperta.

L’Open Data si richiama alla più ampia disciplina dell’open government: gli atti della pubblica

amministrazione.

Esempio https://dati.lombardia.it/

ARCHITETTURA REST

Il web ha da subito cercato di stabilire un’architettura. Gli elementi fondamentali furono identificati in

modo implicito, poi la comunità informatica li ha ufficializzati. Per fare riferimento a questi principi, si parla

di REST. REST è un design pattern che descrive l’uso di alcuni standard (HTTP, URL, risorse XML o HTML,

ecc.) che ha l’obiettivo di garantire la massima scalabilità, semplificando i princìpi fondamentali di

un’architettura REST: creare una risorsa per ogni servizio e associare ogni risorsa ad un URL (standard

condiviso). Un protocollo REST deve avere un numero di metodi molto ristretto e consente di astrarre dal

linguaggio che sarà adoperato lato client o server per processare i dati.

Un esempio di REST generico che può essere usato per prototipare un prodotto o per delle prove

Jsonplaceholder:

Parts Depot è un’azienda che ha sviluppato un servizio web per i suoi clienti, in particolare fornisce tre

tipologie di servizi:

• Ottenere una lista di componenti prodotti;

• Ottenere informazione dettagliata su una componente;

• Sottomettere un ordine.

Si può così comprendere che i dati hanno sempre avuto un ruolo centrale. Negli anni questa centralità è

andata a riflettersi nell’organizzazione del sistema. La miglior efficienza si ottiene quando struttura, stile e

dati sono gestiti come entità indipendenti, ognuna sottoposta ad un ciclo di vita indipendente. È inoltre

importante fornire un’architettura standard per la condivisione di dati, funzione ricoperta dall’architettura

REST.

Esempi di linguaggi di markup attraverso i protocolli REST:

XML

JSON

7 – La Concettualizzazione

LA CONCETTUALIZZAZIONE

Concettualizzare significa identificare contesti che sono rilevanti per un organizzare un dominio della

conoscenza. Per identificare questi concetti, si potrebbero mettere in pratica diversi strumenti. Ci sono

alcuni princìpi generali che vengono comunemente seguiti. È utile per un algoritmo per identificare gli

elementi per guidare processi inferenziali (espansione della conoscenza); è utile nella definizione di modelli

di dati e vocabolari condivisi. Una buona concettualizzazione rende un vocabolario o un modello di dati più

comprensibile, robusto ad evoluzioni del dominio, più integrabile con altri modelli.

Durante la costruzione di un modello di concettualizzazione, inizialmente si procede identificando le entità

presenti. È possibile poi classificare gli individui/le entità in gruppi o proprietà che condivide con altri. Si

identificano poi le proprietà (legata ad un individuo) e le relazioni (collega più individui).

IDENTIFICARE E CLASSIFICARE

Il successo degli ambienti distribuiti è legato all’identificazione delle risorse attraverso uno standard

condiviso. Aver la possibilità di attribuire un identificatore a qualcosa è sicuramente un elemento molto

importante.

Identificare si tratta di associare un oggetto o risorsa ad un identificatore che potrà essere utilizzato in

modo univoco all’interno del vocabolario. Molti sono i criteri che si possono usare per decidere cosa

considerare individuo: un oggetto indivisibile, un’unità che non ammette riduzione nel sistema di

riferimento, un oggetto che ha una condizione di identità o un oggetto che è associato ad un identificatore.

Solitamente si considera individuo qualcosa che permane.

Classificare, invece, significa affermare che un oggetto appartiene ad una classe di oggetti: ovvero

condivide con altri oggetti uno stesso insieme di proprietà. In una buona classificazione, l’insieme di

proprietà definito dalle classi dovrebbe essere: reciprocamente esclusivo, congiuntamente esclusivo,

pertinente. In realtà quasi tutti i vocabolari includono diversi criteri di classificazione, diverse dimensioni o

punti di osservazioni. Quindi, essi annettono intersezioni tra classi che appartengono a dimensioni diverse.

ORGANIZZARE LA CLASSIFICAZIONE

La classificazione viene strutturata quando una classe è inclusa (sussunta) da un’altra, quindi che tutti gli

elementi di una classe sono anche elementi della classe che la include. In generale, più individui rientrano

in una classe, meno sono le proprietà che accomunano gli individui della classe. Si definiscono anche

delle relazioni tra individui. In particolare, si raggruppano le relazioni in famiglie, ma l’unica famiglia diffusa

è la famiglia mereologica (essere parte di), rispetto alle altre: temporali e generiche. Da un punto di vista

inferenziali, si distinguono le proprietà di transitività (si trasferisce tra individui), riflessività (relazione con

se stesso) e simmetria (condivide una proprietà di essere amico, ad esempio).

Da un punto di vista logico, la proprietà dovrebbe essere un modo, quindi si dovrebbe avere un insieme

ristretto di modalità da associare ad una proprietà. Nel contesto informatico si considera proprietà ciò che

contiene un dato che potrà essere processato (un valore numerico, simbolo) oppure qualche cosa che

indica una relazione con qualche cosa che non è individuo.

SIGNIFICAZIONE

Vi sono due importanti concetti utili a capire come fornire una concettualizzazione utile a descrivere un

dominio: la semiosi e la significazione. Il primo è un processo in cui qualcosa assume la funzione di segno;

il secondo è un processo attraverso il quale si fa corrispondere segni a significati (o concetti). L’estensione

di un termine predicativo (concetto) è l’insieme di oggetti cui il termine si applica.

Vi sono tre elementi importanti: l’intensione, l’identificatore e l’estensione appunto. L’intensione intende

la modalità di descrizione di un concetto (il significato); l’estensione (il referente) indica quali sono gli

individui descritti da una certa intensione; l’identificatore (il significante) rappresenta la necessità richiesta

dall’ambiente condiviso per condividere gli oggetti e indica la parola utilizzata per indicare un certo

concetto. Altri elementi sono la connotazione (descrizione) e la denotazione (indicare oggetto a cui fa

riferimento).

L’estensione di un termine singolare è l’individuo cui il termine singolare si riferisce; l’estensione di un

enunciato è il valore di verità dell’enunciato. L’intensione di un termine predicativo (concetto) è l’insieme

delle proprietà che gli possiamo attribuire. Questo insieme di proprietà può variare al mutare di alcune

condizioni. Questi due processi rappresentano la metodologia per formare una buona concettualizzazione,

anche attraverso entrambi i processi, oppure uno dei due.

FORMALIZZARE UNA CONCETTUALIZZAZIONE

Per formalizzare una concettualizzazione si possono applicare diverse metodologie che si possono

organizzare in due approcci: Top-down se prima si classificano i concetti e poi gli individui (dal generale al

particolare) o Bottom-up se prima si descrivono gli individui e poi le classi (dal particolare al generale). È

possibile inoltre distinguere una concettualizzazione valutando se la sua definizione è ottenuta attraverso

un processo normativo o collaborativo: c’è distinzione tra chi definisce la concettualizzazione e gli utenti

che la adottano oppure si definisce liberamente senza una unica formalizzazione, ma diverse che

convivono. Spesso nel processo di definizione degli individui è data priorità a:

- Classificazione, se un individuo è appartenente a una classe si inferiscono le sue proprietà;

- Proprietà, se un individuo ha delle proprietà si inferisce la sua appartenenza ad una classe.

→ →

Es. 1 un individuo ha un passaporto, se ne deduce la sua nazionalità Classificazione;

→ →

Es. 2 un individuo parla una lingua, se ne deduce la cultura Proprietà.

Attraverso un processo di Formal Concept Analysis è possibile iniziare a costruire una griglia, dove

sostanzialmente si identificano individui e proprietà che li caratterizzano. Partendo da una serie di dati è

possibile dedurre una scia di concetti. Le osservazioni raccolte definiscono il dominio o contesto di

riferimento.

Le intersezioni che si formano in cima alla gerarchia di concetti (che devono avere un set di attributi che

richiama un set di individui) hanno la massima estensione e la minima intensione. Scendendo di gerarchia,

aumentano gli attributi e diminuiscono gli individui, fino ad arrivare al termine con tanti attributi, ma

nessun individuo e, quindi, un nodo senza concetto.

Una prima cosa da fare è derivare delle regole di associazione, definite come la probabilità condizionata di

osservare un insieme di attributi dato da un altro insieme di attributi. La probabilità condizionata si un

evento A a un evento B è la probabilità che si verifichi A sapendo che B si è verificato P(A/B) .

Es. < 3 > Delfino =[100%]=> < 3 > Femmina se la scelta che è stata fatta è “Delfino” posso dedurre

sicuramente che la scelta è stata fatta da una femmina.

Se un insieme di attributi è universalmente associato ad un altro insieme di attributi, ed è valido l’inverso,

si può dire che c’è equivalenza tra di essi, ovvero contribuiscono a definire una stessa classe. Se un insieme

di attributi è universalmente associato ad un altro insieme di attributi, ma l’inverso non è valido, si può

dire che questi è un sussunto dell’altro (una sottoclasse).

P (Femmina | Delfino) =3/3 = 1

P (Delfino | Femmina) =3/9 = 0.3

Spesso però non è possibile trovare associazioni universali. Se si vuole essere rigorosi bisogna definire delle

gerarchie di sussunzione. Altrimenti, si può ridurre l’estensione del dominio e vedere se emergono rapporti

di sussunzione. Una buona concettualizzazione dovrebbe identificare dei concetti reciprocamente esclusivi,

anche se questo è molto complicato. Le regole di associazione possono comunque essere utili per

strumenti predittivi: se è stato scelto Tigre conviene scommettere che sia Maschio.

La generazione automatica di gerarchie a partire da un contesto consente di verificare se sono rispettati i

criteri di esaustione (esistono oggetti non classificati?) e di reciproca esclusione (esistono intersezioni tra

gli attributi?). Nell’esempio è possibile verificare che due gruppi di attributi sono reciprocamente esclusivi:

la coppia maschio/femmina e il gruppo cavallo/delfino/tigre/lupo. Il primo a causa di una proprietà degli

oggetti; il secondo a causa del metodo di acquisizione dei dati (unica preferenza). Questo mostra come i

processi di trattamento dell’informazione possano influire sulla conoscenza che si ha del dominio.

Un algoritmo può sfruttare la concettualizzazione per migliorare la capacità di migliorare un dato.

Es. contesto formale:

Dato un insieme di attributi A e un insieme di oggetti O, abbiamo un concetto solo se:

- A consiste di tutti gli attributi condivisi da O;

- O consiste di tutti gli oggetti che condividono A.

Si ottengono solo due concetti: Mammifero Peli Placenta e Uccello Piume Becco Uova. Come associazione

avremo <3>Peli=[100%]=> <3> Placenta Mammifero e <2> Piume=[100%]=> <2> Becco Uova Uccello.

Software di esempio https://sourceforce.net/projects/conexp

L’introduzione dell’ornitorinco rende il gruppo complicato. Si hanno ora cinque concetti: Mammifero Peli,

Uova Becco, Uova Becco Uccello Piume, Mammifero Peli Placenta e Peli Becco Uova Mammifero.

IL WEB DEI DATI

Come già detto, i dati hanno sempre avuto un ruolo centrale. La miglior efficienza si ottiene quando

struttura, stile e dati sono gestiti come entità indipendenti, ognuna sottoposta ad un ciclo di vita

indipendente. Quando è possibile, i vocabolari adottati per descrivere i dati dovrebbero far riferimento ad

una semantica condivisa, in modo da automatizzare i processi di selezione e aggregazione di dati.

Una delle modalità con cui si è sempre pensato di aumentare la facilità di condivisione è dunque quello di

associarli ad una semantica. Nell’evoluzione del Web la centralità del dato si è sempre collegata alle

innovazione che il Web ha visto nascere ed affermarsi. In quest’evoluzione la struttura e lo stile dei

documenti viene sempre più gestita come delle entità indipendenti: concretamente, il documento viene


PAGINE

28

PESO

967.67 KB

AUTORE

NicoUni

PUBBLICATO

6 mesi fa


DETTAGLI
Corso di laurea: Corso di laurea in scienze umanistiche per la comunicazione
SSD:
Università: Milano - Unimi
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher NicoUni di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica per Scienze umanistiche e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Milano - Unimi o del prof Ceravolo Paolo.

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 Fondamenti di informatica per scienze umanistiche

Informatica per Scienze umanistiche - Appunti
Appunto
Riassunto esame Informatica, prof. Ferrara, libro consigliato Informazione, conoscenza e web per le scienze umanistiche, Ferrara
Appunto