Paolo Monella Laboratorio di Informatica specialistica per Scienze dell'Antichità Glossario di Informatica umanistica
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
-
- Lo schema (in formato RNG, DTD etc.) spiega al computer la struttura del linguaggio, così il computer lo può processare
- Le Guidelines ( https://www.tei-c.org/release/doc/tei-p5-doc/en/html/index.html lo spiegano all'umano, come un manuale
- 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
- Piene: con contenuto lessicale (ad es. verbi, sostantivi, aggettivi)
- Vuote: le parole-funzione come le congiunzioni, le preposizioni etc.
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:
- il lemmatizzatore/PoS tagger integrato in Perseus si chiama Morpheus;
- uno che si può installare è TreeTagger;
- un altro, ottimizzato per il latino, è LEMLAT (versione online, versione installabile)