Rappresentare l’informazione

Lezione 03 del corso di Abilità Informatiche (2024/2025)

Sebastian Barzaghi | sebastian.barzaghi2@unibo.it | https://orcid.org/0000-0002-0799-1527 | https://www.unibo.it/sitoweb/sebastian.barzaghi2/

Una sonda nell’orbita di Marte

Fonte: https://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1.

1988, Cape Canaveral, 2 settimane a Natale.

La NASA lancia la missione Mars Climate Orbiter, con l'obiettivo di inserire una sonda nell'orbita di Marte per effettuare investigazioni scientifiche sul clima del pianeta rosso e per fare da ponte radio con la Terra.

L’errore da 125 milioni di dollari

Fonte: https://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1.

Il 23 settembre 1999, dopo 283 giorni di viaggio nello spazio, la sonda, dal valore di 125 milioni di dollari, eseguì una manovra ad alta quota nell'orbita di Marte con 49 secondi di anticipo: in altre parole, non stava seguendo la traiettoria prevista.

Alle 2:27 del mattino, la sonda scompare dietro Marte per non riapparire mai più.

Il motivo del fallimento

Fonte: https://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1.

Una settimana dopo la perdita della sonda, la NASA rilascia una dichiarazione, attribuendo l'incidente a un errore legato al sistema usato per ricalcolare la posizione della sonda nello spazio.

Tra la sonda e la NASA c'era uno scambio continuo di dati, che permetteva il ricalcolo della traiettoria della sonda rispetto all'obiettivo finale.

Due lingue diverse

La Lockheed Martin, azienda incaricata di realizzare la sonda e alcuni strumenti usati dai tecnici per gestirla, aveva adottato la libbra-forza per secondo come unità di misura per il ricalcolo.

La NASA, invece, utilizzava il Newton per secondo.

Tra codifiche e metadati

Senza le unità di misura, i dati numerici non hanno significato, e assumere erroneamente determinate unità può portare a gravi problemi.

I comandi di navigazione dovevano essere codificati correttamente nelle unità appropriate per essere compresi da entrambi i sistemi.

Una questione di linguaggio

Un linguaggio naturale è quello parlato da noi

Fonte: Foto di Mikayla Storms su Unsplash

Linguaggio caratterizzato da ricchezza espressiva, ambiguità e ridondanza, per cui un qualsiasi costrutto formulato è potenzialmente polisemico.

Esempio: "Sposto il cavallo".

Un linguaggio naturale è quello parlato da noi

Fonte: Foto di VD Photography su Unsplash

Linguaggio caratterizzato da ricchezza espressiva, ambiguità e ridondanza, per cui un qualsiasi costrutto formulato è potenzialmente polisemico.

Esempio: "Sposto il cavallo".

Un linguaggio formale è quello usato per ridurre al minimo l’incertezza

Fonte: Foto di ThisisEngineering su Unsplash .

Linguaggio per formulare costrutti dotati di significato in modo preciso e non ambiguo.

Per comunicare con un computer, l'ambiguità del linguaggio naturale è un problema (servono altre informazioni relative al contesto e alla pragmatica che un computer, di base, non recepisce), quindi vengono usati linguaggi formali.

Un linguaggio formale è costituito da tre elementi

  • Alfabeto: insieme finito di simboli;
    • Esempio: {a, b, c} (un alfabeto costituito da tre simboli: a, b e c);
  • Grammatica: insieme di regole sintattiche che specificano combinazioni valide di simboli;
    • Esempio: G → a ∣ b ∣ c (G è una grammatica che stabilisce che possiamo solo usare a, b o c separatamente);
  • Semantica: insieme di significati attribuiti ai simboli e alle loro combinazioni;
    • Esempio: a: "rosso" ; b: "blu" ; c: "verde" (ad ogni simbolo ed eventuali combinazioni viene associato un significato).

Il linguaggio di un semaforo!

La codifica

Una codifica è il processo di trasformazione di un’informazione da un alfabeto ad un altro

Tecnica con la quale un dato viene rappresentato mediante un definito insieme di simboli.

Con tali simboli è possibile formare sequenze che possono essere messe in relazione biunivoca con gli elementi costituenti l’informazione.

Esempi:

  • Numero di matricola
  • Braille
  • Codice fiscale
  • Morse

La codifica dei numeri

Partiamo dalla notazione decimale posizionale

La codifica più comunemente adottata oggi per la rappresentazione dei numeri interi.

Il termine decimale indica il numero di simboli utilizzati (cifre): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

Il termine posizionale indica che il significato dei simboli cambia in base alla loro posizione. Il numero rappresentato da ogni simbolo è moltiplicato per una potenza di 10 (il numero di simboli che cotituiscono l’alfabeto, la base).

Con n cifre è possibile rappresentare 10n numeri naturali: da 0 a 10n-1.

Es. con 4 cifre possiamo rappresentare 104 numeri (da 0 a 9999).

Esempio: il numero 2465

Il significato di ogni simbolo dipende dalla posizione di questo all’interno della sequenza di simboli creata in base alla loro combinazione.

2 X 103 + 4 X 102 + 6 X 101 + 5 X 100

Che equivale a 2 migliaia + 4 centinaia + 6 decine + 5 unità.

Esistono codifiche non posizionali?

Il sistema di numerazione romano!

Si tratta di un sistema additivo basato su:

  • Un alfabeto di simboli letterari a ciascuno dei quali viene assegnato un valore numerico;
  • Un numero è rappresentato da una sequenza di tali simboli;
  • Il valore di un numero è dato dalla somma dei valori corrispondenti ai simboli ottenuti, se in ordine decrescente; altrimenti, li si sottrae.

Esempi:

  • VIII = 5 + 1 + 1 + 1 = 8;
  • IV = 5 - 1 = 4.

Esistono codifiche non decimali?

L’informazione va codificata per il computer

Fonte: Foto di alerkiv su Unsplash

Il computer memorizza ed elabora vari tipi di informazioni (numeri, testi, immagini, suoni, ecc.).

Occorre rappresentare tale informazione in un formato facilmente manipolabile dal computer.

Di fatto, un computer è una grande collezione di dispositivi bistabili

Fonte: Foto di mk. s su Unsplash

"Bistabile" indica qualcosa che può assumere nel tempo solo due stati stabili (es. interruttore). Nel caso del computer, si tratta della presenza / assenza di corrente elettrica.

Per ogni tipo di informazione (numerica, testuale, grafica, sonora, ecc.) che vogliamo trattare con un computer, dobbiamo individuare una codifica che si avvalga esclusivamente di questa caratteristica.

Consideriamo un alfabeto binario

Alfabeto: {0, 1}.

Bit: cifra binaria, ovvero uno dei due simboli del sistema numerico binario, classicamente chiamati zero (0) e uno (1).

Allo zero sono spesso associate le idee di “chiuso”, “spento”, “assente”, “falso”.

All’uno sono spesso associate le idee di “aperto”, “acceso”, “presente”, “vero”.

Con 1 bit rappresentiamo poco…

Solo 2 diverse informazioni:

  • 0 → No / Falso / Off;
  • 1 → Si / Vero / On.

… Ma se usassimo più bit?

Proviamo a rappresentare le stagioni con una codifica binaria. Le stagioni sono 4, quindi ci servono 2 bit (22 sequenze possibili).

  • 00 → Primavera;
  • 10 → Estate;
  • 01 → Autunno;
  • 11 → Inverno.

Mettendo insieme più bit possiamo rappresentare più informazioni e quindi più complessità.

La binarietà è conveniente

2 bit : 4 (22) sequenze possibili: 00, 01, 10, 11.

3 bit: 8 (23) sequenze possibili: 000, 001, 010, 100, 011, 101, 110, 111.

Con n bit possiamo rappresentare 2n sequenze: da 0 a 2n-1.

8 bit costituiscono un byte.

Codifica numerica da base 2 a base 10

Moltiplicare ogni bit per il suo peso (attenzione a partire da 2n-1!) e sommare le potenze.

10100

1 X 24 + 0 X 23 + 1 X 22 + 0 X 21 + 0 X 20
= 1 X 16 + 0 X 8 + 1 X 4 + 0 X 2 + 0 X 1
= 16 + 0 + 4 + 0 + 0

= 20

Codifica numerica da base 10 a base 2

Dividere il numero per 2 ripetutamente fino ad arrivare a zero e disporre i resti in ordine inverso.

12

12 / 2 → resto 0 = 6 / 2 → resto 0 = 3 / 2 → resto 1 = 1 / 2 → resto 1

Prendiamo i resti dall’ultimo al primo:

= 1100

Quindi…

  • Conosciamo la numerazione in base 2;
  • Conosciamo la numerazione in base 10;
  • Sappiamo passare da una base di numerazione all’altra (cioé convertire i numeri in bit).

Come digitalizziamo invece la lettera a?

La codifica del testo

I caratteri corrispondono a codici binari

L’alfabeto anglosassone ha circa 120 caratteri (maiuscole + minuscole + numeri + interpunzione + …)

Quanti bit ci servono per coprirli tutti?

Bastano 7 bit = 27 = 128 sequenze.

American Standard Code for Information Interchange (ASCII)

Codifica secondo la quale ogni carattere è rappresentato da una sequenza di 7 bit.

Esempi:

  • A1000001;
  • B1000010;
  • BABA1000010 1000001 1000010 1000001.

ASCII esteso

  • Estensione di ASCII a 8 bit (28 = 256 simboli);
  • Codifica quasi tutti i linguaggi occidentali;
  • Include molti altri simboli utili.

Esempi:

  • CAT01000011 01000001 01010100;
  • cat01100011 01100001 01110100.

Un altro esempio

Fonte: https://computerscienceiseasy.com/an-introduction-to-ascii-and-unicode/.

L’altra metà del problema

La digitalizzazione - cioé codificare contenuto informativo in binario - è solo metà del problema.

Dobbiamo anche codificare le caratteristiche del contenuto, cioé contestualizzarlo (“specificare le unità di misura”, nel caso della sonda spaziale).

I dati sopra (e oltre) i dati

Cosa sono i metadati?

Fonte: https://dataedo.com/kb/data-glossary/what-is-metadata.

Cosa sono i metadati?

Fonte: https://dataedo.com/kb/data-glossary/what-is-metadata.

Cosa sono i metadati?

Fonte: https://dataedo.com/kb/data-glossary/what-is-metadata.

Dati su dati

Fonte: https://medium.com/towards-data-science/what-is-metadata-800403c0767b.

I metadati possono essere visti come l'insieme di tutto ciò che si può dire su un dato (oggetto informativo) in un determinato momento, a qualsiasi livello di aggregazione.

Sembra roba complicata…

Fonte: Margaritopoulos, Merkourios & Margaritopoulos, Thomas & Mavridis, Ioannis & Manitsaris, Athanasios. (2012). Quantifying and Measuring Metadata Completeness. Journal of the American Society for Information Science and Technology. 63. http://dx.doi.org/10.1002/asi.21706.

I metadati dovrebbero riflettere tre caratteristiche di ciò che descrivono

  • Contenuto: ciò che l’oggetto contiene o rappresenta (intrinseco all’oggetto);
  • Contesto: informazioni su chi, cosa, quando, dove e come l’oggetto è stato creato e utilizzato (estrinseco all’oggetto):
  • Struttura: le relazioni formali tra gli oggetti informativi, che possono essere intrinseche, estrinseche o entrambe.

Funzioni dei metadati

  • Organizzazione e descrizione;
  • Validazione e autenticazione;
  • Ricerca e recupero;
  • Utilizzo e conservazione.

Caratteristiche (non ovvie) dei metadati

  • Non devono essere per forza digitali;
  • Sono più di semplici descrizioni dei dati;
  • Possono provenire da diverse fonti;
  • Continuano ad accumularsi durante tutto il ciclo di vita di un dato;
  • Possono essere metadati per qualcuno e dati per qualcun’altro.

Esistono diverse tipologie di metadati (e diversi modi di classificarli)

  • Descrittivi: permettono la scoperta, l’identificazione e la selezione della risorsa. Includono elementi come “titolo”, “autore”, ecc.;
  • Tecnici: forniscono informazioni sul funzionamento o comportamento della risorsa. Includono elementi come “formato”, “compressione”, “password”, ecc.;
  • Amministrativi: facilitano la gestione della risorsa. Includono elementi come “identificativo”, “licenza”, “provenienza”, ecc.

In cosa dovrebbero consistere dei metadati per essere “buoni” metadati?

I metadati dovrebbero focalizzarsi su:

  • Cosa
  • Quando
  • Dove
  • Chi
  • Come
  • Da quale fonte
  • Perché

In principio, l’idea è semplice

L’applicazione dei metadati in un caso concreto, però, è complessa: da dove partiamo? Come descriviamo i dati in modo tale da renderli consistenti e gestibili da me e altre persone? Come lo facciamo in una maniera scalabile?

Fortunatamente, esistono gli schemi di metadati.

I metadati seguono degli schemi

Fonte: https://project-thor.readme.io/docs/datacite-metadata-schema.

Strutture concettuali che specificano quali metadati utilizzare e secondo quali regole.

Stabiliscono un significato unico e non ambiguo per i metadati, costituendo una sorta di lingua semplificata comune per caratterizzare i dati.

Esempio: decidiamo di descrivere un libro

Per farlo, usiamo una serie di metadati come:

  • Titolo
  • Autore
  • Data di pubblicazione
  • Genere

I termini, molto comuni, li abbiamo decisi noi.

Volendo, li possiamo ri-utilizzare per descrivere anche altri libri.

Abbiamo creato uno schema di metadati per i libri.

Se formalmente validati e riconosciuti, diventano standard

  • MARC (standard per la rappresentazione di informazioni bibliografiche);
  • Dublin Core (standard per la rappresentazione di risorse sul Web);
  • CIDOC-CRM (standard per la documentazione di beni culturali).

Esempio: Dublin Core

Fonte: https://project-thor.readme.io/docs/datacite-metadata-schema.

Schema di metadati per descrivere risorse pubblicate sul Web.

Include quindici elementi (poi estesi ulteriormente) ritenuti fondamentali.

Altri standard rilevanti

Fonte: https://metadataetc.org/metadatabasics/standards.htm.
  • Standard per i contenuti dei dati: definiscono come rappresentare uno specifico tipo di dati a partire dal formato (es. ISO 8601 per le date, o ISO 639-1 per le lingue);
  • Standard per i valori dei dati: definiscono come rappresentare uno specifico tipo di dati a partire da un insieme finito e controllato di opzioni (es. AAT);

L’elemento umano

Il rapimento a Chibok

Fonte: https://fivethirtyeight.com/features/nigeria-kidnapping/.
  • Aprile 2014: 76 ragazze vengono rapite da una scuola a Chibok, nell'est della Nigeria, dal gruppo terroristico Boko Haram.
  • Poco dopo, FiveThirtyEight esamina la situazione in un articolo.

Rapimenti o notizie sui rapimenti?

Fonte: https://fivethirtyeight.com/features/nigeria-kidnapping/.
  • L'articolo ha subito critiche per la fonte utilizzata per i dati nel grafico e per l'analisi nel contenuto.
  • I numeri provengono dal Global Database of Events, Language and Tone (GDELT), un database che raccoglie dati su eventi e località da migliaia di fonti di notizie, tra cui televisione, stampa e online.
  • Invece di mostrare i "rapimenti giornalieri in Nigeria", il grafico mostra i "rapporti giornalieri di notizie sui rapimenti in Nigeria".

Due metriche diverse

Una tendenza in aumento potrebbe essere dovuta a un numero maggiore di rapimenti, ma anche a un numero maggiore di notizie in generale o a una maggiore attenzione dei media verso il fenomeno.

Il problema maggiore è l’assunzione che un singolo evento o luogo nel database corrisponda a un singolo rapimento.

È molto probabile che più rapporti di notizie nel database facciano riferimento allo stesso evento.

Di nuovo, un’interpretazione sbagliata

Di conseguenza, l’articolo è stato aggiornato, precisando: “Questo post dovrebbe fare riferimento ai rapporti dei media sui rapimenti, non ai rapimenti stessi”.

Il giornalista di FiveThirtyEight ha preso i dati nel database GDELT per ciò che erano, senza considerare come i dati vengano raccolti e cosa rappresenta ogni record nel database.

Questa è un’informazione cruciale sui dati (= metadati) per interpretare correttamente le informazioni.

Fine

Lezione 03 del corso di Abilità Informatiche (2024/2025)

Sebastian Barzaghi | sebastian.barzaghi2@unibo.it | https://orcid.org/0000-0002-0799-1527 | https://www.unibo.it/sitoweb/sebastian.barzaghi2/