Paolo Monella Laboratorio di Informatica specialistica per Scienze dell'Antichità Glossario di Informatica umanistica

Home page del corso

Introduzione, modelli e algoritmi

DH
Digital humanities, informatica umanistica: applicazione di metodi e strumenti digitali agli studi umanistici
Modello
Rappresentazione dinamica di un oggetto, che ne include le parti funzionali ad una simulazione
Algoritmo
Sequenza di istruzioni formali miranti a raggiungere un obiettivo
CharSet
Character set, tabella che associa ad ogni carattere un numero. Esempi: ASCII, Unicode

Markup

ML
Markup language, linguaggio di markup
MarkDown
Gioco di parole a partire da mark-up che indica un ML molto semplice, che fa uso di caratteri come #, *, _ per indicare semplice formattazione (# titoli, *corsivi*, **grassetti**, riga che inizia con * per gli elenchi puntati etc.)
SGML
Standard Generalized Markup Language. L'idea di fondo è quella di mettere il markup tra parentesi particolare; usando questo schema, si possono creare vari ML
XML
Sta per eXtensible Markup Language. Una semplificazione di SGML, per cui per esempio le parentesi sono sempre <quelle uncinate>, i tag vanno sempre chiusi con </tag_di_chiusura> etc.
HTML
HyperText Markup Language. Il ML originariamente fondato su SGML usato per le pagine Web, e ora anche per moltissime app per cellulari e tablet
LaTeX
ML usato in ambito tipografico

XML (inclusi HTML e TEI)

Tag di apertura
<p>: tag (etichetta) di apertura, start tag
Tag di chiusura
</p>: tag (etichetta) di chiusura: end tag
Contenuto testuale
<p>Viva la pappa col pomodoro</p>: la parte in arancione è il "contenuto testuale" (textual content, text content), il testo "marcato" (marked up) dal metatesto (markup)
Nome dell'elemento (element name = tag name)
Esempio: in <div>Bla bla</div>, <div> è il tag di apertura, mentre div è il nome dell'elemento (element name, spesso però chiamato semplicemente 'tag')
Attributi (attributes) e valori degli attributi (attribute values)
Esempio: in <a href=" http://www.unipa.it/paolo.monella/">Bla bla</div>, href è l'attributo (vedi sotto per il suo significato), mentre http://www.unipa.it/paolo.monella/ è il valore dell'attributo href
Elementi pieni
Elementi che hanno contenuto testuale (in arancione sotto). In questo esempio, il contenuto testuale è in arancione: <title>Pagina del laboratorio</title>. Negli "elementi pieni": elemento = tag di apertura + eventuali attributi + contenuto testuale + tag di chiusura. In <p>Viva la pappa col pomodoro</p>, tutta la parte evidenziata in arancione è l'"elemento"
Elementi vuoti (empty elements o "self-closing tags", che si chiudono da soli)
Elementi che non hanno contenuto testuale. Esempio: <br/>. Negli 'elementi vuoti' (empty elements, o "self-closing tags", vedi sotto), elemento = tag + eventuali attributi. In <br/>, la parte evidenziata in arancione è l'"elemento"
Rapporti (gerarchici) tra gli elementi
  • parent element (elemento genitore)
  • child element (elemento figlio)
  • sibling element (elemento fratello/sorella)
  • root element (elemento radice): l'Abramo padre di tutti
Marcare, taggare, annidare
  • Marcare o taggare (ingl. to markup some up text, to mark tome text up, to tag some text): inserire markup intorno a del testo
  • to wrap = avvolgere: <div><p>uno</p><p>due</p><div> → qui <div> 'wraps' <p>
  • cioè: <p> è "annidato" (nested) dentro <div>
  • cioè: <p> è dentro <div>, cioè <p> è figlio di <div>
Codice sorgente (source code)
  • La sequenza di caratteri che il computer effettivamente gestisce
  • Il codice implementa (realizza) il nostro modello di testo (o di altro)
  • Il codice può venire processato (elaborato) da un algoritmo (un programma, un'app)
  • Ad es.: il codice sorgente (il file) HTML viene normalmente processato da un browser (come Firefox, Chrome, Safari) per permettere all'utente di visualizzare una pagina web e di seguire i link
Programmi WYSIWYG (ad es. Microsoft Word o Libreoffice Writer)
  • Non mi fanno editare il codice sorgente direttamente: io modifico il testo già processato/visualizzato, il programma si occupa di modificare il sorgente per me, e io vedo direttamente l'effetto delle modifiche
  • Invece Blocco note (e in parte anche TextEdit) mi permettono di editare direttamente il codice sorgente
Case-sensitive
Situazione in cui la differenza maiuscolo / minuscolo (il "case", in inglese) è rilevante, cioè l'algoritmo (il programma si comporta diversamente se una lettera è maiuscola o minuscola. Esempio: le password sono case-sensitive, cioè l'algoritmo garantisce l'accesso solo se la sequenza di caratteri è esattamente quella, e in quel "case", quindi se la password è "P54ffR" e io digito "p54ffR" l'algoritmo nega l'accesso
Case-insensitive
Situazione in cui il "case" non è rilevante. Esempio: gli indirizzi email e gli URL
Schema XML
Documento che dice
  • quali sono gli elementi
  • chi è figlio di chi
  • quali attributi prende chi
  • quali tipi di valori prendono gli attributi etc.
TEI XML Schema vs TEI Guidelines
TEI
Text Encoding Initiative. L'acronimo si usa normalmente per indicare il linguaggio XML creato e gestito dal TEI-C
TEI-C
TEI Consortium, nasce a fine anni '80

Indici

Stringa
Sequenza di caratteri (vd. CharSet, sopra)
Tokenizzazione
Divisione del testo in token = parole (grafiche). Può essere problematica: vedi la funzione dell'apostrofo in "Dammi un'ultima notizia" (due parole separate) e in I have to rs's (ho due rs; un'unica parola)
Indicizzazione
Creazione di indici (index), cioè elenchi delle parole usate nel testo, ognuna presa una volta sola. L'indice di 'tre tigri contro tre trigri' è 'tre, contro, tigri'.
Indici di frequenza
Indici in cui a ogni parola è associata la sua frequenza
Frequenza (vs numero di occorrenze/attestazioni)
rapporto (divisione) tra il numero di occorrenze/attestazioni e il numero totale di parole. Esempio:
  • 4 occorrenze di 'occhi' in un testo di 100 parole = 4 / 100 = 0,04 (oppure 4 %), frequenza alta
  • 4 occorrenze di 'occhi' in un testo di 1000 parole = 4 / 1000 = 0,004 (oppure 0,4 %), frequenza più bassa
Concordanza
Elenco dei passi contenenti una parola in un testo o in un corpus. Può contenere
  • Solo un elenco di citazioni (es.: Verg. Aen. 4.23)
  • O può includere il contesto, cioè in passo vero e proprio, le parole del testo

Distant reading

Distant reading
Statistiche testuali, analisi a volo d'uccello, da 'lontano' di grandi corpora testuali, fatta tramite algoritmi
Close reading
La tradizionale lettura umana
Parole 'piene' e parole 'vuote'
  • Piene: con contenuto lessicale (ad es. verbi, sostantivi, aggettivi)
  • Vuote: le parole-funzione come le congiunzioni, le preposizioni etc.
Stop words
Le parole che 'rallentano' la ricerca o la statistica: spesso sono le parole 'vuote'. Se questo tipo di parole non ci interessano, si crea una 'stop word list' e la si dà al programma che fa il distant reading. Una lista di stop words per il latino, includerebbe includerebbe ad es. 'et', 'non', 'est'

Linguisica computazionale

Tree
Albero sintattico (chomskiano)
Treebank
(banca di alberi → raccolta di alberi):
Insieme di analisi sintattiche su un testo o un corpus
Treebanking
Creazione di treebank, analisi sintattiche di un testo o corpus
PoS tagging
Letteralmente, attribuzione di un tag che dica la parte del discorso cui appartiene una parola (PoS = part of speech, parte del discorso, come nome, verbo, preposizione, aggettivo etc.); esempio: 'facilem → aggettivo'. Nella pratica, invece, l'espressione indica l'analisi morfologica completa di una parola; esempio: 'facilem → aggettivo, accusativo singolare maschile'
PoS tagger
Programma che fa il PoS tagging
Token vs lemma
  • 'Token' è la forma flessa (es. 'bonorum'),
  • 'Lemma' è la parola (grafica) a prescindere dalla flessione ('bonus, -a, -um')
Lemmatizzazione
Ricondurre un token al suo lemma
Lemmatizzatore (lemmatizer)
Programma che lemmatizza. Normalmente, però, si parla di lemmatizzatore/PoS tagger, cioè uno stesso programma fa entrambe le cose (dice qual è il lemma, e fa l'analisi morfologica). Esempi: