TECNOLOGIE PER LA TRADUZIONE Informazione e informatica La parola informatica è stata introdotta nel 1968 come italianizzazione del francese informatique, che a sua volta è la contrazione dei termini information e automatique. Il principale obiettivo dell’informatica è quindi il trattamento dell’informazione e la possibilità di compiere le operazioni necessarie al trattamento dell’informazione in modo automatico. L’informazione si può definire come l’insieme dei dati forniti dall’ambiente esterno a un essere vivente, o a una macchina, espressi in forma comprensibile e significativa in un particolare contesto. Da qui capiamo che l’informazione riguarda il modo in cui un qualsiasi sistema acquisisce conoscenza dal mondo esterno. Perché la comunicazione abbia luogo è necessario però che il sistema sia in grado di comprendere il linguaggio in cui l’informazione viene espressa e questo concetto risulta di difficile comprensione nel caso di trasferimento di informazioni a una macchina. La definizione di informazione mette anche in evidenza l’importanza del contesto: un qualsiasi dato acquista valore solamente se posto in relazione ad altre informazioni che definiscono l’ambito e il senso da attribuire al dato oggetto. L’informatica è quel settore scientifico disciplinare che si occupa della rappresentazione e dell’elaborazione dell’informazione. Questa definizione mette in luce il ruolo fondamentale del concetto di informazione all’interno delle discipline dell’informatica. 2.10.19 Codifica dell’informazione Di base, l’informazione può presentarsi in modi molto diversi fra loro: - Il valore numerico di una grandezza fisica; - Il testo di un articolo di giornale; - Il suono prodotto da uno strumento musicale; - L’immagine di una fotografia; - Le sequenze video di una ripresa. Il problema è ora come codificare l’informazione (problema nato con la nascita dell’informatica). Per tutte queste forme è possibile trovare una rappresentazione adeguata a elaborare automaticamente l’informazione. La rappresentazione viene comunemente definita codifica. In informatica, la codifica viene effettuata applicando lo stesso principio di rappresentazione alle diverse forme. L’idea che sta alla base della codifica è quella di utilizzare i BIT: bit (b) sta per BInary digIT (termine coniato nel 1948 e significa cifra binaria) ed è l’unità elementare dell’informazione, rappresenta l’informazione minima che può essere elaborata e rappresentata da un computer o calcolatore elettronico. Un bit può̀ assumere solamente due valori, tipicamente 0 e 1 (sistema binario). Qualsiasi forma nella quale l’informazione viene rappresentata, immagazzinata e trasmessa è rappresentata da una opportuna combinazione di bit. Il bit corrisponde a grandezze fisiche all’interno del calcolatore. Dato che il bit è alla base di ogni codifica dell’informazione, ogni tipo di informazione viene trasformata in una sequenza finita di bit, ovvero in una successione di opportuna lunghezza di valori zero e uno. Dato che un bit può̀ assumere solamente due valori (0 o 1), il suo impiego per la misura dell’informazione non è molto pratico. Per questo motivo vengono introdotte delle nuove unità di misura basate su multipli di bit. Un multiplo molto usato è basato sull’utilizzo di 8 bit. Una sequenza di 8 bit si chiama BYTE: ad esempio 00000000, 01000110, 11000010, 10101010. Il byte codifica al massimo 256 valori (28 ) diversi ed è l’unità di misura usata più di frequente in informatica. La sequenza è il tipo più̀ semplice di organizzazione dei dati. La scelta di utilizzare sequenze finite di bit ha tre implicazioni: – L’informazione viene trattata in modo uniforme, a prescindere dalla tipologia effettivamente rappresentata – È necessario applicare delle convenzioni nella codifica, in modo da poter accedere all’informazione rappresentata in tempi e per scopi diversi – La quantità̀ di informazione che può̀ essere gestita, per esempio da un calcolatore, è comunque limitata. Esempi di codifica: lancio di un dado; lancio di una moneta; lettere dell’alfabeto. Con N bit si possono rappresentare 𝟐𝑵 simboli; se N =3, 2𝑁 =2x2x2=8 Esiste un modo per mettersi d'accordo su quale sequenza utilizzare per codificare l’informazione? Creare uno standard. Uno standard è uno schema o un complesso di norme stabilito dall’autorità̀ o basato su un generale consenso che definisce un modello o un esempio di riferimento al quale uniformarsi Come nasce uno standard? Ci sono comitati di esperti a livello nazionale o internazionale che definiscono le regole di codifica. Si può partire anche dall’uso degli utenti, che definiscono le regole per conto loro e queste regole prendono talmente piede che si trasformano in uno standard. Questo tipo di standard si chiama standard de facto. Un caso molto particolare che viene utilizzato ancora oggi: esiste un protocollo (insieme di regole per stabilire una comunicazione), il TCT IP, un insieme di regole per scambiare pacchetti di dati sulla rete internet che nasce dalla proposta di un gruppo di persone negli anni ’70. Questa alternativa era più semplice della precedente e si è cominciato ad usare questo standard de facto. Per quanto riguarda gli organismi nazionali o internazionali, nel 1947 è stato fondato l’ISO (International Organization for Standardization). È di particolare interesse organizzare informazioni di contenuto simile rappresentandole all’interno di una stessa struttura, ovvero di una stessa sequenza di bit. Risulta molto conveniente rappresentare non solo le singole informazioni individualmente, ma anche le informazioni aggiuntive che permettono di sapere quali sono i collegamenti e le correlazioni esistenti fra le informazioni di base. Per questo, viene introdotta in informatica la struttura informativa denominata file. Il file è una struttura informativa che contiene un insieme di informazioni omogenee, organizzate in forma sequenziale e trattate come un’unità. I file non sono altro che sequenze di bit con una particolare organizzazione dei contenuti, per cui valgono per i file le stesse implicazioni valide per i bit. Per motivi pratici i file vengono però considerati come sequenze di byte e non di bit. Informazione simbolica - Rappresentazione simbolica di suoni La musica viene tramandata utilizzando una notazione simbolica, la partitura musicale, che indica come andrebbe suonato un brano. È possibile trovare una rappresentazione della partitura, codificando le note (altezza e durata) e tutti gli altri simboli (tempo, tonalità̀, ripetizioni). Esistono programmi specifici ognuno con una propria codifica. La musica può̀ essere rappresentata dai gesti del musicista, che suona una data nota, ad un dato istante, con una data intensità̀. La codifica più̀ utilizzata è il MIDI (Musical Instrument Digital Interface), nato per gli strumenti elettronici: non rappresenta i suoni, ma i gesti che li produrrebbero. Non rappresenta nemmeno la partitura, perché́ la codifica non è strutturata ma è semplicemente un flusso di eventi. Consente di suonare utilizzando un sistema detto sequencer. - Rappresentazione simbolica di immagini Le immagini non vengono normalmente percepite come insiemi di colori, ma come insiemi di forme. È possibile trovare una rappresentazione per le diverse forme, in particolare per quelle semplici dette forme elementari: linee, curve, frecce, spezzate, quadrati, rettangoli, poligoni, cerchi, ellissi… Ogni forma ha diversi attributi: colore, dimensioni, posizione. L’immagine è costituita dall’insieme delle immagini elementari. Le immagini ottenute dall’insieme di forme sono dette immagini vettoriali, dal modo in cui vengono rappresentate. Le immagini vettoriali sono particolarmente utili nella progettazione di edifici o di parti meccaniche. Ci si riferisce in questo caso al CAD (Computer Aided Design). Codifica del testo La codifica di informazione testuale ha seguito rapidamente la codifica dei numeri. Il linguaggio testuale consente di interagire con i calcolatori in modo più̀ naturale per l’utente. La gran parte dei documenti prodotti dalla società̀, attuale e del passato, sono in forma testuale. Quando si parla di codifica dell’informazione testuale è necessario distinguere la possibilità di rappresentare il contenuto di un documento e la possibilità di arricchire questa informazione con la rappresentazione del suo formato. - Il contenuto è dato dalla successione di parole che costituiscono il documento e che ne rappresentano la semantica. - Il formato è legato al modo in cui le parole sono organizzate e rappresentate (dimensione, forma, colore dei caratteri), fornendo informazioni accessorie che evidenziano alcuni concetti senza alterarne la semantica. Poiché il formato ha iniziato ad assumere importanza soprattutto in seguito all’aumentare delle capacità grafiche dei calcolatori, lo sforzo principale dedicato alla codifica delle informazioni testuali ha riguardato il contenuto. Questo ha portato alla creazione di metodi di codifica quasi universalmente utilizzato. Il contenuto di un testo è formato da una successione di parole, delimitate da spazi e da segni di interpunzione. Il testo scritto è organizzato in forma lineare. Nelle lingue basate su di un alfabeto, le parole sono formate da sequenze di simboli presi da un insieme noto a priori. I simboli sono normalmente le lettere dell’alfabeto, i numeri e altri caratteri a stampa di uso comune, a cui ci si riferisce con il termine caratteri alfanumerici. Gli alfabeti delle diverse lingue presentano differenze: - L’inglese non possiede le vocali accentate (sono molto rare); - L’italiano e l’inglese non hanno le lettere ñ, ç, ß; - Altre lingue, ad esempio il russo e il greco, hanno alfabeti completamente diversi da quello latino. Le prime codifiche del testo sono state fatte negli Stati Uniti, per questo spesso si fa implicitamente riferimento all’alfabeto inglese. I possibili elementi di un testo vengono suddivisi in: - Caratteri alfanumerici - I segni di interpunzione e di delimitazione (ci si pone il problema se lo spazio è un carattere?) - Alcuni altri segni grafici (&, $, @, #, ~) Caratteri speciali I caratteri alfanumerici sono quelli condivisi dalla maggior parte delle lingue (del mondo occidentale). Codifica dei caratteri Poiché́ il contenuto di un testo può̀ essere rappresentato da una sequenza di caratteri, per la sua rappresentazione è sufficiente codificare i caratteri con opportune sequenze di bit. Il concetto alla base della codifica di caratteri è che questi appartengono ad un insieme predeterminato di simboli, denominato alfabeto, che ha dimensione finita. Ad ogni carattere quindi può̀ essere univocamente associato un numero intero, che ne rappresenta il codice. L’associazione deve essere fatta per tutti i possibili simboli e i simboli che non vengono associati ad un numero (una sequenza di bit) non possono essere rappresentati. È necessario inoltre porre particolare attenzione alla scelta dell’alfabeto. Una volta fatta l’associazione, arbitraria, tra simbolo e codice, ovvero tra un carattere e la sequenza di bit che lo rappresenta, è sufficiente utilizzare la codifica dei numeri interi. Un testo, che è una sequenza di caratteri, può quindi venire rappresentato da una sequenza di numeri interi. Per consentire una reale condivisione dell’informazione testuale, sono necessari degli standard di codifica per l’informazione testuale, che fungano da modelli di riferimento e consentano quindi lo scambio di informazioni senza incorrere in errori di interpretazione. La scelta del numero di bit influenza la dimensione dell’alfabeto: - Standard ASCII, 7bit = 128 simboli - Extended ASCII, 8 bit = 256 simboli - Unicode, 16 bit = 65.536 simboli. Standard ASCII È il primo standard di codifica di caratteri e uno dei più diffusi. ASCII sta per American Standard Code for Information Interchange. È uno schema di codifica di caratteri introdotto nel 1963 dall’ANSI (X3.4-1963 di American Standards Association (ASA)) ed è in grado di rappresentare 128 diversi caratteri utilizzando 7 bit per rappresentarli e memorizzarli (27= 128). Questo schema è poi stato recepito dall’ISO (International Organization for Standardization) e identificato con la sigla ufficiale ISO 646-1972 o in breve ISO-7. I simboli vanno da 0 a 127: i primi simboli sono simboli di controllo, per dire dove finisce o inizia il testo. Al 32 corrisponde lo spazio, al 65 la A e al 97 la a. Extended ASCII La codifica ASCII negli anni è stata estesa per incorporare anche altri simboli, quindi nel 1987 si è passati da una rappresentazione a 7 bit ad una a 8 bit, con la possibilità̀ di rappresentare 256 diversi caratteri. I primi 128 caratteri rimangono immutati per consentire la compatibilità̀ con la codifica ASCII a 7 bit (grazie all’approccio chiamato compatibilità all’indietro). I restanti 128 caratteri permettono di rappresentare i caratteri particolari di altre lingue europee: ad esempio caratteri specifici dell’italiano o del francese, del tedesco, e l’alfabeto greco. Sfortunatamente coesistono diverse estensioni a 8 bit dell’ASCII, a cui corrispondono diversi standard recepiti dall’ISO; esistono per esempio sei differenti codifiche per rappresentare le diverse varianti dell’alfabeto latino. I diversi schemi estesi di codifica ASCII fanno parte della serie degli standard ISO/IEC 8859 del 1987 (IEC = International Electrotechnical Commission), chiamata anche Extended ASCII. Unicode Lo schema di codifica Unicode utilizza 16 bit (216 = 65.536) per rappresentare ciascun carattere, raddoppiando così l’Extended ASCII. Questo schema è stato introdotto dal Consorzio Unicode a partire dal 1991 per superare le limitazioni dello schema ISO-7 e successivi. Il sottoinsieme di caratteri Unicode rappresentati con 8 bit sono compatibili con le precedenti codifiche ISO. Le versioni più̀ recenti di Unicode estendono lo schema e fanno uso di 32 bit (232 = 4.294.967.296) per rappresentare ciascun carattere. Al fine di risparmiare memoria, nel 1993 sono stati definiti diversi schemi di codifica, chiamati Unicode Transformation Format (UTF), per rappresentare i caratteri Unicode in modo compatto. Fra questi, il più̀ utilizzato è UTF-8 (da 8 a 32 bit) (quando è possibile si utilizzano 8 bit per risparmiare spazio). Negli ultimi anni l’UTF-8 ha preso molto piede, codifica l’80-90% dei documenti presenti su internet. Differenza tra Big-Endian Unicode e Little-Endian Unicode: questa distinzione nasce negli anni ’80, quando i computer erano a 8 bit. Servivano però 16 bit, quindi si ricorrere alla cosiddetta serializzazione: prima trasmessi 8 bit, poi altri 8. Ma il problema è quali trasmettere prima, quindi un’architettura, la Big-Endian Unicode, trasmette prima i primi 8 bit, mentre Little-Endian Unicode trasmette prima i secondi 8 bit. La codifica testuale riguarda 2 aspetti: la rappresentazione di caratteri e la definizione delle regole per il formato del testo, come visualizzare un testo (problema che diventa fondamentale). Esiste un altro insieme di regole per definire il formato ma non sono mai state definite da uno standard (non esiste una codifica per il font), sono lasciate a chi crea i software. Le pagine Wikipedia da tradurre, codificate così: lingua (en/de:); nome della pagina; titolo in italiano; richiesta di traduzione nelle lingue mancanti. Google translator toolkit: traduce per segmenti di testo, il punto di ritaglio del testo è il punto. Parte sinistra testo originale; parte destra parte con proposta di traduzione (questo solo negli ultimi anni, prima la casella destra era vuota). Mette a disposizione la possibilità di inserire commenti. {1/} link legato alla porzione di testo. Durante la fase di traduzione vengono presentate delle alternative: traduzione automatica o proposte di traduzione che derivano da traduzioni passate. È presente anche il glossario (termini già tradotti in passato), permette di mantenere un’omogeneità nelle scelte, molto importante per traduzioni di manuali tecnici. Come scambiare informazioni in maniera efficiente? Il problema un conto è passare informazioni da essere umano a essere umano: la lingua è la stessa e si riescono a fare ipotesi su cose che vengono codificate implicitamente dalla posizione nel testo. Quando si passano informazioni tra due programmi bisogna organizzare le informazioni in modo che chi le riceve sia in grado di capirle allo stesso modo di chi le manda (sia per quanto riguarda il carattere che il significato). Per fare ciò, capire la struttura dei file che usano questi programmi è fondamentale. I due tipi di file che studiamo in dettaglio sono i file relativi alla memoria di traduzione TMX, e il database terminologico (glossario) TBX. Struttura vs contenuto Esiste una separazione tra quello che è scritto in un computer e quello che viene visualizzato: struttura vs contenuto. La struttura è il modo in cui il contenuto viene strutturato e organizzato ed è diventata sempre più importante. Il contenuto è la successione delle parole che lo compongono. Il significato semantico di un testo deriva dal suo contenuto. Un primo approccio verso la strutturazione del testo era presente già̀ nella codifica ASCII, che comprende: a capo, avanzamento di una riga o una pagina, tabulazioni. Questi codici, nati per le stampanti che erano poco più̀ complesse delle macchine da scrivere, sono chiaramente insufficienti. Gli elementi base della struttura di un testo si possono suddividere in 4 livelli: - formato dei singoli caratteri: corsivo (italics), grassetto (bold), sottolineato (underlined), dimensioni diverse, espresse in numero di punti; forme diverse dei caratteri, chiamate in inglese font; meno usati, ma spesso presenti, colori e sfondi diversi. È il livello più basso. - formato interlinea: margini delle righe, eventualmente con la prima riga diversa; possibilità̀ di avere elenchi - formato dei paragrafi - formato delle pagine: dimensioni globali della pagina, con eventuali intestazioni; numero di colonne e orientamento della pagina. Come strutturare l’informazione in modo da visualizzarla correttamente? Non esiste una codifica standard per le informazioni di struttura. Ogni programma per la creazione di documenti testuali può̀ codificare questi dati in maniera diversa, con due approcci: - What You See Is What You Get: le istruzioni sono nascoste all’utente, che ne vede direttamente a schermo l’effetto così come questo sarà̀ stampato. È normalmente necessario utilizzare lo stesso programma per rileggere i dati in maniera corretta. - Linguaggi di markup: linguaggio per la strutturazione di un testo basato su istruzioni che marcano le parti di testo per indicarne il formato. Le istruzioni sono esplicitamente indicate da una serie di caratteri speciali, il cui effetto non è visibile in fase di scrittura. Crea minori problemi quando si riaccede all’informazione \textbf{esempio 1} ⇒ esempio 1 <b>esempio 2</b> ⇒ esempio 2 Dati Sono registrazioni di eventi non interpretati, registrati attraverso una sequenza di simboli (che non necessariamente deve essere alfanumerica, basta che si identifichi il significato di ogni simbolo) e salvati su qualche supporto. Poiché non sono interpretati, finché non si ha un contesto di lettura, non si riesce ad interpretarli (a differenza delle informazioni). Bisogna avere un contesto per interpretarli. Il contesto è fondamentale per leggere i dati e trasformarli in informazione. Table tavolo fino a che non c’è un contesto di lettura, queste due parole sono solo dati. Come fare a dire che la prima parola è della LP e la seconda è della LA? Nominiamo una colonna e informiamo le altre persone delle regole da seguire. Inglese Eng Italiano ita Table tavolo Molti software di traduzione assistita accettano questi tipi di file con le colonne. Esistono due standard di codifica delle lingue, uno a 3 lettere (ENG) e uno a 2 lettere (EN), chiamati ISO 639. Anche le nazioni vengono codificate attraverso uno standard (country codes standard ISO). Si può codificare anche la lingua a seconda della nazione, con le lettere maiuscole per la nazione e minuscole per la lingua: en US Inglese degli USA. Se volessimo mettere delle note (varianti di traduzione, fonte della traduzione) nel glossario? Aggiungiamo una terza colonna: Inglese. Table. Chair Cat. Italiano. Tavolo sedia Gatto Note nota bene Nella terza colonna, i campi vuoti creano un problema perché non si sa se dovrebbe esserci qualcosa oppure no. Il sistema con la colonna delle note è utilizzata da parecchi software di traduzione assistita. Standard di codifica del testo Il primo standard di codifica della struttura del testo è lo STANDARD GENERALIZED MARKUP LANGUAGE (SGM). Nato nel 1974 e ideato da Charles Goldfarb. Lavorando in ambito legale si era posto il problema si ricercare parti di testo d’interesse all’interno di documento, per poi metterle insieme e stamparle. Goldfarb si è chiesto come identificare all’interno di un documento parti diverse e metterle insieme. Questo problema ha generato il primo linguaggio di marcatura. Funziona praticamente come Google translator toolkit, l’idea è strutturare il testo attraverso delle marche. Linguaggi di marcatura Funzionano attraverso delle marche (specie di segnalibri). Parentesi angolari o grafi <etichetta> qualcosa </etichetta> = sta per iniziare una porzione di testo particolare (etichetta), il contenuto di qualcosa di particolare sta in centro, quando è finito si ripete l’etichetta con l’aggiunta dello Slash / <b>qualcosa</b> voglio mettere qualcosa in grassetto (b sta per bold) <i>qualcosa</i> qualcosa in corsivo (i sta per italics) Come far capire che si sta per scrivere il titolo di un paragrafo, come fare a codificarlo? Si usa un’etichetta <h1>qualcosa</h1> (header dimensione 1) Documento che inizia e finisce <sgml>qualcosa</sgml> (per lo sgml) 15.10.19 Traduzione del brano solar power con blocco note. Solar power is the conversion of energy from sunlight into electricity, either directly using photovoltaics (PV), indirectly using concentrated solar power, or a combination. Concentrated solar power systems use lenses or mirrors and tracking systems to focus a large area of sunlight into a small beam. Photovoltaic cells convert light into an electric current using the photovoltaic effect. L'energia solare è la conversione di energia dalla luce solare in elettricità, utilizzando direttamente il fotovoltaico (FV), indirettamente utilizzando l'energia solare concentrata o una combinazione. I sistemi a energia solare concentrata utilizzano lenti o specchi e sistemi di localizzazione per focalizzare una vasta area della luce solare in un piccolo raggio. Le celle fotovoltaiche convertono la luce in corrente elettrica usando l'effetto fotovoltaico. Come evidenziare il fatto che ci siano dei segmenti nel testo (sequenza di caratteri che termina con un punto)? - Con ritorno a capo e cambio di linea si cambia la formattazione originale e magari si va anche contro la volontà dell’autore. Quindi NO Solar power is the conversion of energy from sunlight into electricity, either directly using photovoltaics (PV), indirectly using concentrated solar power, or a combination. Concentrated solar power systems use lenses or mirrors and tracking systems to focus a large area of sunlight into a small beam. Photovoltaic cells convert light into an electric current using the photovoltaic effect. - Si possono introdurre delle marche per dire che inizia il segmento <tu> e che finisce il segmento </tu>. tu sta per Translation Unit, un segmento che viene ritagliato dal software di traduzione assistita. È la base delle memorie di traduzione. <tu>Solar power is the conversion of energy from sunlight into electricity, either directly using photovoltaics (PV), indirectly using concentrated solar power, or a combination.</tu> <tu> Concentrated solar power systems use lenses or mirrors and tracking systems to focus a large area of sunlight into a small beam. </tu> <tu>Photovoltaic cells convert light into an electric current using the photovoltaic effect.</tu> - Per dire che il primo segmento è il primo, il secondo è il secondo, ecc… dobbiamo mettere delle etichette. <tu id=1> l’etichetta translation unit ha come proprietà il valore 1, ovvero è il primo segmento che sto traducendo. L’etichetta si trova solo nel tag di apertura: <tu id=1>Solar power is the conversion of energy from sunlight into electricity, either directly using photovoltaics (PV), indirectly using concentrated solar power, or a combination.</tu> <tu id=2> Concentrated solar power systems use lenses or mirrors and tracking systems to focus a large area of sunlight into a small beam. </tu> <tu id=3>Photovoltaic cells convert light into an electric current using the photovoltaic effect.</tu> - Se si vogliono unire i due file (originale e traduzione) in uno solo che riconosce sia lingua inglese che lingua italiana? Si potrebbe creare un unico file con il fatto che esiste un segmento con un identificatore, esiste la versione italiana del segmento e anche la versione inglese. All’interno dell’unita di traduzione <tu> esiste una parte in inglese <en>…. </en> e una parte in italiano <it> </it> : <tu id=1> <en>Solar power is the conversion of energy from sunlight into electricity, either directly using photovoltaics (PV), indirectly using concentrated solar power, or a combination. Concentrated solar power systems use lenses or mirrors and tracking systems to focus a large area of sunlight into a small beam. Photovoltaic cells convert light into an electric current using the photovoltaic effect.</en> <it> L'energia solare è la conversione di energia dalla luce solare in elettricità, utilizzando direttamente il fotovoltaico (FV), indirettamente utilizzando l'energia solare concentrata o una combinazione. I sistemi a energia solare concentrata utilizzano lenti o specchi e sistemi di localizzazione per focalizzare una vasta area della luce solare in un piccolo raggio. Le celle fotovoltaiche convertono la luce in corrente elettrica usando l'effetto fotovoltaico.</it> </tu> Alla fine non c’è più distinzione tra lingua di partenza e lingua d’arrivo, non esiste più una direzione. Accade anche nei glossari. All’interno dell’unità di traduzione le lingue hanno il loro tag: <tuv>, Translation Unit Variant. Variant è intesa come variante linguistica. La lingua viene codificata come proprietà del tag cosi come l’identificatore <tuv lang=it>. Inserendo tuv sto dando un’alternativa alla traduzione che sto facendo <tu id=id 1> <tuv lang=en> Solar power is the conversion of energy from sunlight into electricity, either directly using photovoltaics (PV), indirectly using concentrated solar power, or a combination. Concentrated solar power systems use lenses or mirrors and tracking systems to focus a large area of sunlight into a small beam. Photovoltaic cells convert light into an electric current using the photovoltaic effect. </tuv> </tuv lang=en> <tuv> <tuv lang=it> L'energia solare è la conversione di energia dalla luce solare in elettricità, utilizzando direttamente il fotovoltaico (FV), indirettamente utilizzando l'energia solare concentrata o una combinazione. I sistemi a energia solare concentrata utilizzano lenti o specchi e sistemi di localizzazione per focalizzare una vasta area della luce solare in un piccolo raggio. Le celle fotovoltaiche convertono la luce in corrente elettrica usando l'effetto fotovoltaico. </tuv> </tuv lang=it> Questo è il principio su cui si basa la memoria di tutto il lavoro fatto dal traduttore. Come si chiama tutto questo file? Ha un’etichetta radice: <tmx> </tmx>, Translation Memory Exchange 23.10.19 Architettura Hardware e software e sistema operativo Un utente utilizza un calcolatore (computer) per effettuare un determinato compito. Per compito si intende una qualsiasi attività tendente al conseguimento di un risultato desiderato. Per svolgere un determinato compito, il calcolatore deve eseguire un procedimento, chiamato algoritmo. L’algoritmo è una sequenza di passi che permette di trovare soluzione al problema. È costituito da un insieme di regole che devono essere eseguite secondo un ordine prestabilito e permetto la soluzione di un problema in un numero finito di passi. Aspetti da tenere presente nella definizione di algoritmo: - È un insieme finito di regole o istruzioni - Le regole o istruzioni vanno eseguite in una sequenza prestabilita - Dati necessari alla soluzione del problema INPUT - Dati da fornire come soluzione del problema OUTPUT Ci sono algoritmi più efficienti e rapidi rispetto ad altri. Un computer è un sistema che, ricevendo in ingresso un algoritmo risolvente di un dato problema e un opportuno insieme di dati iniziali, produce in uscita i risultati dell’esecuzione dell’algoritmo per quei dati iniziali. Un sistema infromatico è costituito dall’hardware e dal software. - L’hardware è la parte fisica del computer, l’insieme dei dispositivi fisici (meccanici, magnetici, elettrici ed elettronici) che compongono un computer. Il software è l’insieme delle istruzioni e dei programmi usati per determinare le operazioni di un computer. Tutto quello che riguarda i programmi rientra nel cosiddetto software. Hardware È uno strumento unitario costituito da un insieme di parti interconnesse fra loro: - Periferiche o dispositivi di input, che acquisiscono i dati dall’esterno; - Processore o CPU, che esegue le elaborazioni sui dati; - Memoria principale o memoria centrale, contiene le istruzioni necessarie al processore per funzionare; - Memoria secondaria o memoria di massa, che contiene dati e programmi memorizzati all’interno di file in modo permanente (informazioni mantenute anche a calcolatore spento); - Periferiche o dispositivi di output, restituiscono all’esterno i dati. I componenti del calcolatore sono collegati tra loro tramite delle linee di comunicazione chiamate bus, che consentono il trasferimento dei dati tra i diversi componenti. Un programma, un software, ha normalmente bisogno di un hardware adeguato per poter funzionare correttamente. Si parla di requisiti minimi dell’hardware. Il processore (o CPU) È il componente centrale del calcolatore: tutte le operazioni eseguite sono svolte dal processore. Ci si riferisce a esso anche con il termine microprocessore. È in grado di eseguire operazioni elementari, come la lettura, la modifica e la cancellazione dei dati contenuti nella memoria principale. Riesce a svolgere queste operazioni elementari in tempi brevissimi e ciò permette quindi di effettuare queste operazioni in modo combinato. Infatti ogni processore possiede al suo interno una sorta di orologio (clock) che ne sincronizza le operazioni. Con il termine frequenza di clock (misurato in Hertz, Hz), si indica il numero di operazioni elementari che un processore può svolgere in un secondo. I processori attuali hanno delle frequenze di clock intorno ai 2GHz (2 miliardi di operazioni al secondo). La potenza di un calcolatore quindi dipende chiaramente dal suo processore. La memoria principale Svolge un ruolo determinante, in quanto contiene: la sequenza di istruzioni elementari che compongono i programmi che il processore esegue e i dati sui quali vanno fatte le elaborazioni. Il suo ruolo è quindi quello di un contenitore di informazioni a cui il processore accede in continuazione. La memoria principale è normalmente denominata dalla sigla RAM, acronimo di Random Access Memory. Il termine random (casuale), indica che l’accesso non viene fatto in maniera sequenziale e che il processore può accedere in qualsiasi momento ad una delle qualsiasi celle che compongono la RAM. Una caratteristica della RAM è che il suo contenuto è volatile, ovvero non viene mantenuto quando il calcolatore è spento. Per questo esistono altre memorie, denominate ROM (Read Only Memory) che hanno la caratteristica di mantenere l’informazione anche a calcolatore spento. La memoria secondaria Il suo compito principale è quello di mantenere la memorizzazione dei dati anche quando il calcolatore viene spento. La memoria secondaria è costituita da diversi tipi di dispositivi: i floppy disk, gli hard disk, i pen drive, i CD-ROM, i DVD-ROM e i nastri magnetici. La caratteristica che accomuna le memorie secondarie è che sono molto più lente della RAM e che quindi il processore non accede direttamente al loro contenuto. I dati e i programmi memorizzati in memoria secondaria devono essere quindi trasferiti in memoria centrale per essere utilizzati. Questa operazione è nota come swap e indica lo scambio continuo dei dati tra la RAM e l’hard disk. Una caratteristica rilevante è la velocità di accesso ai dati, ovvero il tempo che passa dall’avvio di un particolare programma e il momento in cui il programma è in esecuzione. Inoltre, dato che la memoria RAM è di taglia molto più piccola rispetto agli hard disk (2/4 GB), se finisce la memoria a disposizione, esiste un programma che sposta pezzi di memoria dalla RAM all’hard disk. Quanto ci mette a spostarli? Leggere un dato sulla memoria centrale costa 1 microsecondo, spostarlo nell’hard disk 1000 microsecondi. Il problema sorge quando si hanno tanti programmi aperti e il computer comincia a rallentare perché fa continuamente questo scambio, questi microsecondi si accumulano e diventano decimi di secondo o addirittura secondi. Le periferiche È necessario che un calcolatore sia fornito di un dispositivo in grado di acquisire i dati dall’esterno, le cosiddette periferiche di input, che generalmente sono la tastiera e il mouse. Il calcolatore deve però anche essere in grado di fornire all’utente i risultati delle elaborazioni e deve quindi essere munito delle periferiche di output, come il monitor e la stampante. Software I sistemi informatici moderni raggiungono alcuni obiettivi (un esempio è il cloud storage) grazie alla definizione di “macchine virtuali” che vengono realizzate al di sopra della macchina hardware reale. Una macchina virtuale costituisce un livello di software che realizza una macchina astratta con le funzionalità desiderate e facile da utilizzare. Il termine macchina virtuale indica un software che crea un ambiente virtuale in cui l'utente può̀ eseguire delle applicazioni. Il termine software indica un programma, o un insieme di programmi, in grado di funzionare su un calcolatore. Un software è quindi un programma installato ed eseguito. Cos’è però un programma? E qual è l’obiettivo di un software? Si parte dalla definizione di problema, perché un software è un risolutore di problemi. Un problema è una classe di domande omogenee alla quale è possibile dare una risposta (domande che in qualche modo si somigliano tra loro perchè riguardano lo stesso argomento (qual è il risultato della somma tra due numeri è un problema perché in questa domanda ricadono tutti i casi di somme tra numeri) attraverso un metodo o una procedura uniforme. Esistono soluzioni diverse per uno stesso problema ed alcune possono essere più rapide di altre. Ogni specifica domanda della classe si chiama istanza del problema. Un problema deve contenere uno o più termini variabili: quando le variabili assumono un valore, generano diverse istanze del problema, che si chiamano variabili di ingresso o dati (input). Il risultato (output) di un problema è anch’esso un termine variabile che dipende dai dati di input. Quindi ogni problema ha un input e un output. Che cos’è un programma? È una trascrizione di un algoritmo in un linguaggio comprensibile per il computer (linguaggio di programmazione). Esistono due classi di software: - i software di sistema (system software o software di base): sono i sistemi operativi. Sono programmi complessi che permettono di utilizzare le risorse del computer: salvare file, interagire tra monitor e tastiera, utilizzare memoria centrale. Formano quindi il sistema operativo e i driver dei dispositivi input/output. - Software applicativi: le applicazioni. “Vivono” nel sistema operativo (si installano applicazioni sul sistema operativo). Programmi di traduzione assistita sono software applicativi Software di sistema Un componente essenziale del software di base è il sistema operativo. Il sistema operativo (SO) è un insieme complesso di programmi che, in modo coordinato, controlla le risorse del sistema e i processi che usano queste risorse. Per evidenziare le funzionalità delle parti del sistema e le interazioni fra esse si utilizza un modello basato su livelli di macchina virtuale (virtualizzazione delle risorse). Il SO è organizzato in strati funzionali dove ciascun strato realizza una macchina virtuale. I linguaggi di interazione fra l’utente e il sistema operativo sono profondamente diversi al variare del sistema operativo. In generale, si possono distinguere due tipologie di interazione: - - interazione testuale (Textual User Interface TUI): l’utente fornisce i comandi al sistema mediante un linguaggio testuale, ogni comando ha un suo nome e una sintassi di interazione ben precisa; l’utente deve ricordarsi nome e sintassi di ciascun comando; interazione grafica (Graphical User Interface GUI): sono rese disponibili all’utente delle rappresentazioni grafiche delle funzioni disponibili; ogni rappresentazione grafica può̀ essere selezionata mediante strumenti di puntamento, tipicamente il mouse; in questo caso non è necessario che l’utente si ricordi nomi e sintassi dei comandi. Il sistema operativo (SO) è un insieme complesso di programmi che, in modo coordinato, controlla le risorse del sistema e i processi che usano queste risorse. Un generico sistema operativo moderno si compone di alcune parti ben definite: - un kernel, nucleo del sistema (a seconda del SO può̀ ricoprire diverse funzioni). - uno scheduler che assicura ai vari processi in esecuzione una ben definita quantità di tempo di elaborazione, - un gestore di memoria che alloca la memoria centrale in base alle richieste dei processi e liberarla al momento opportuno, - un gestore di file system che si occupa di esaudire le richieste di accesso alle memorie di massa, - una interfaccia utente (TUI o GUI) che permette agli esseri umani di interagire con la macchina. Un altro strato del sistema operativo con cui l’utente interagisce è il sistema di gestione file o file system. Il file system fornisce un meccanismo per creare e identificare i file, associando lo spazio fisico sulle memorie secondarie a un nome. L’effettiva struttura fisica del supporto è trasparente all’utente e l’occupazione dello spazio libero e di quello ricavato da cancellazioni è gestito automaticamente. Inoltre, fornisce le funzioni di lettura e modifica dei dati: fornisce opportuni metodi per accedere ai dati e realizza meccanismi di protezione dei dati che permettono di stabilire chi e come può̀ accedere alle informazioni memorizzate sui supporti. Per rappresentare il contenuto di un disco o altra unità di memorizzazione permanente ad accesso diretto si utilizza una struttura gerarchica ad albero. I file vengono inclusi all’interno di strutture, dette directory (o cartelle). Le directory possono contenere diversi file e anche avere al loro interno diverse sotto-directory; Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice della struttura fino al file stesso. Tutti i file o directory presenti in una medesima directory devono avere un nome differente, di conseguenza ogni pathname è unico. Software applicativi Un software può essere libero o proprietario: - Libero. Ci sono vari livelli di libertà crescenti: o eseguire il programma per qualsiasi scopo; o studiare come funziona il programma e modificarlo in modo da adattarlo alle proprie necessità (accesso al codice sorgente); o ridistribuire il software; o migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio (accesso al codice sorgente). I software più liberi possiedono tutti questi gradi di libertà. - Proprietario. Tutto quello che non è libero. Anche qui ci sono gradi diversi. Il suo utilizzo, la ridistribuzione o modifica sono proibiti o richiedono un permesso o sono sottoposti a tali vincoli che in pratica non si possono fare liberamente. Mezzi tecnici: non mettere a disposizione il codice. Mezzi legali: copyright, brevetti. I software proprietari possono essere: freeware, shareware o commerciali. o Il termine “freeware” non ha una definizione comunemente accettata, ma è solitamente utilizzato per i pacchetti software che possono essere redistributi ma non modificati (il loro codice sorgente non è disponibile). Sono programmi assolutamente gratuiti. o Lo “shareware” è un software che dà la possibilità̀ di ridistribuire copie, ma impone a chiunque continui ad usarne una copia di pagarne la licenza d’uso. Sono programmi distribuiti gratuitamente in versione dimostrativa, utilizzabili normalmente per un periodo di prova. o Software “commerciale” è un software sviluppato da un’azienda allo scopo di guadagnare dal suo uso. “Commerciale” e “proprietario” non sono la stessa cosa. Esistono anche altri tipi di software applicativi: - Demoware: particolare tipologia di programmi shareware che ha un numero di funzionalità a disposizione dell’utente così limitato da servire all’utente solo per farsi un’idea generale del programma. - Adware: programmi freeware che contengono dei messaggi pubblicitari. - Malware: programmi con scopi malevoli, che creano danni all’utente. Spesso chiamati virus. - Spyware: il loro scopo è spiare i dati privati dell’utente e sono un sottoinsieme dei programmi malware. 5.11.19 Internet e Web Un Mainframe è un tipo di sistema centralizzato in cui un computer con prestazioni di calcolo elevate fornisce servizi a vari terminali. Una rete di computer è un insieme di dispositivi hardware e software collegati da canali di comunicazione che permette il passaggio di dati. Il passaggio di informazioni avviene tramite lo scambio di flussi di dati che sono rappresentati in forma binaria. La velocità di trasmissione si misura in bit al secondo (bps): valori abituali per le reti di comunicazione sono dell’ordine dei kilobit/sec (kbps), Megabit/sec (Mbps) e Gigabit/sec (Gbps). I dati vengono trasmessi raccolti in sottoinsiemi denominati pacchetti o packet, che hanno una dimensione determinata e che hanno l’indirizzo del calcolatore al quale sono destinati. È possibile scambiare dati fra diversi calcolatori elettronici se almeno uno di questi è dotato dei programmi necessari a mettere a disposizione dei file. Un calcolatore di questo tipo si chiama calcolatore servente o server. Quando abbiamo un calcolatore servente, gli altri calcolatori lo possono utilizzare per acquisire file di interesse, e ciascuno di loro, quando lo utilizza, lo fa come cliente del calcolatore servente. Questo modo di operare viene definito modello cliente-servente. Le reti di trasmissione dati possono essere classificate in base alle loro dimensioni o distanza che intercorre fra i diversi calcolatori. - LAN (Local Area Network) la rete di dimensioni più contenute perché ha un’estensione limitata o locale. Viene utilizzata di solito all’interno di un edificio per interconnettere calcolatori ad uso personale a stazioni di lavoro. - MAN (Metropolitan Area Network) una versione più ampia perché può raggiungere l’estensione di un insieme di diversi edifici o di una città. - WAN (Wide Area Network) copre un’area geografica molto ampia, può raggiungere la dimensione di una nazione o continente - Wireless network o GAN (Global Area Network) rete che non richiede di posare dei fili. Internet è una rete di computer connessi su scala mondiale. Si tratta di un'interconnessione globale tra reti informatiche di natura e di estensione diversa, resa possibile da un insieme di protocolli di comunicazione che costituiscono la "lingua" comune che i computer utilizzano per trasferire dati. È necessario però utilizzare un’architettura di rete capace di supportare questa situazione. Questa architettura è nota come modello di riferimento TCP/IP, nome legato ai suoi due protocolli principali: - TCP (Transfer Control Protocol) il protocollo di trasferimento dati; - IP (Internet Protocol) il protocollo che definisce il formato ufficiale del pacchetto dati da trasmettere e le indicazioni di indirizzamento. Esempi di protocolli: - TELNET: TELetype NETwork: protocollo sviluppato per ARPANET per permettere agli utenti di un computer di connettersi e usare le risorse di un altro computer. - FTP: File Transfer Protocol: protocollo applicativo per il trasferimento di file in rete da computer a computer. - DNS: Domain Name System: protocollo applicativo per la traduzione di un indirizzo numerico ad un nome. - HTTP: HyperText Transport Protocol: protocollo applicativo per sistemi ipertestuali (ipermediali) distribuiti - IMAP: Internet Message Access Protocol (IMAP): protocollo che permette ad un client (programma di posta elettronica oppure servizio di webmail) di accedere, leggere e cancellare le e-mail da un server. Indirizzi delle risorse in rete è il metodo utilizzato per identificare la localizzazione di una risorsa informativa di una rete (un qualsiasi computer connesso alla rete Internet). Indirizzo IP: è una sequenza di 32 bit (4 numeri da 4 byte) che identifica univocamente ciascun computer nella rete Internet. L’indirizzo IP viene assegnato da enti nazionali ed internazionali: ICANN (Internet Corporation for Assigned Names and Numbers). Di solito gli utenti e i programmi fanno riferimento alle risorse Internet usando dei nomi e non numeri (indirizzi IP). Quindi è necessaria una traduzione da numero a nome per mezzo del Domain Name System (DNS). Si parla di "livelli di dominio", solitamente primo/secondo/ terzo livello. World Wide Web Il World Wide Web è una collezione di informazioni fra loro collegate e mantenute su computer connessi alla rete Internet in varie parti del mondo. Nel 1989, Tim Berners Lee propone l’idea del “Web” (http://info.cern.ch/Proposal.html). È un sistema cliente/servente: il cliente di solito chiede al servente che uno specifico lavoro sia eseguito e il servente svolge il lavoro ed invia la risposta al cliente. - Il cliente nell’architettura Web è uno strumento software chiamato browser Web, perché viene utilizzato per navigare e scorrere le informazioni disponibili attraverso Web. Esempi di browser sono Internet Explorer o Mozilla Firefox. Le azioni più importanti che svolge per l’utente sono: l’acquisizione della pagina richiesta; l’analisi della pagina, che permette poi al software di interpretare i comandi di presentazione nel linguaggio di markup chiamato HyperText Markup Language (HTML); la presentazione della pagina sullo schermo. Il servente Web è il software che gestisce sia le pagine Web che il software in grado di inviare ad un browser Web una pagina tra quelle che gestisce. La comunicazione tra cliente e servente avviene mediante il protocollo http (HyperText Transfer Protocol), che definisce le richieste e le risposte ed è un protocollo che prevede che il cliente e il servente instaurino un colloquio senza il mantenimento di informazioni di stato. Ad ogni pagina Web è assegnato un nome unico a livello mondiale, chiamato URL: - Uniform (o Universal) Resource Locator – URL, è un meccanismo di indirizzamento che permette di associare informazioni o documenti Web in maniera univoca. I documenti possono essere residenti su computer presenti in un qualsiasi nodo della rete Internet. Ad esempio: http://www.unipd.it/index.html http è il protocollo di comunicazione; www.unipd.it è l’indirizzo del server Web (tradotto in indirizzo IP dal DNS); index.html è il file della pagina Web che vogliamo leggere. Le informazioni che vengono mantenute e rese disponibili sono strutturate in file che vengono creati e mantenuti da privati o da organizzazioni su computer chiamati server Web. Tecnologie del Web - HTML - HyperText Markup Language è il linguaggio che deve essere usato per descrivere la struttura e come deve presentarsi una pagina Web in un browser. - URL - Uniform (o Universal) Resource Locator: un meccanismo di indirizzamento che permette di associare informazioni o documenti Web, che possono essere residenti su calcolatori presenti in un qualsiasi nodo della rete Internet, in maniera univoca. - HTTP - HyperText Transfer Protocol: insieme di regole che stabiliscono come devono essere spediti i messaggi per permettere il “colloquio” e il trasferimento di file fra un server Web e un client Web. È il protocollo più importante. (http error 404: il server non trova il file che sto cercando = pagina non trovata) - MIME - Multipurpose Internet Mail (o Messaging) Extensions: il sistema di supporto alla codifica e invio di informazioni del tipo: allegati non testuali, corpo del messaggio composto da varie parti, codifica di caratteri internazionale. Terminologia Web - Sito Web: è una collezione di informazioni che l’utente percepisce in modo unitario. Spesso le pagine di un sito Web risiedono in un solo server Web anche se grandi siti possono essere ospitati su diversi calcolatori e, quindi, gestiti da diversi server Web. - Home page (o pagina iniziale): è la pagina introduttiva di una collezione di informazioni Web. - Bottone (o ancora): ogni bottone fornisce un collegamento ipertestuale (hyperlink) ad un’altra pagina Web. I bottoni permettono agli utenti di “navigare” fra le pagine di un sito/siti Web - Link (o collegamento): il collegamento ipertestuale tra una pagina Web ed un’altra (oppure due punti diversi di una stessa pagina Web) attraverso un indirizzo URL. Il collegamento ha una "direzione" (una pagina fa riferimento ad un’altra). Reperimento dell’informazione Come faccio a recuperare pagina di interesse? Conoscendo indirizzo o navigando fino a trovare la pagina. i motori di ricerca funzionano nel secondo modo. Nel reperimento dell’informazione l’utente gioca un ruolo determinante e l’efficacia del recupero dipende da: quanto l’utente sa cosa sta cercando; - come l’utente esprime le sue esigenze informative; - la capacità dell’utente di valutare la pertinenza dei documenti ritrovati e di riformulare le interrogazioni. Il termine reperimento dell’informazione identifica tutte quelle attività utilizzate per scegliere, da una data collezione di documenti, quei documenti che risultano di interesse in relazione ad una specifica esigenza informativa. L’utente ha quindi una specifica esigenza informativa, che esprime attraverso una sintesi, una query in gergo tecnico, inoltrando la richiesta ad un sistema di ricerca. Il sistema interpreta la richiesta e “tenta”, vista l’informazione parziale, di recuperare i documenti più̀ rilevanti. Finalità: selezione dei documenti che sono verosimilmente rilevanti per le esigenze informative dell’utente. Tipologie: - interrogazione in forma testuale (non solo) - navigazione ipertesti (spesso combinate) Modalità : sotto forma di ciclo presentazione/valutazione. Il reperimento dell’informazione può essere inteso come un processo complessivo all’interno del quale possono essere individuate due fasi: - la fase di inserimento documenti: il contenuto deve essere rappresentato mediante un processo che viene definito di indicizzazione. I documenti sono poi inseriti nella collezione gestita dal sistema insieme agli indici che ne descrivono il contenuto informativo. - la fase di interrogazione dell’utente al sistema: l’utente rappresenta le proprie esigenze informative al sistema. Problema della disponibilità di informazioni. Gli utenti dovrebbero poter sapere: - Quali informazioni sono disponibili, ovvero se le informazioni a loro necessarie sono presenti. - Come raggiungere le informazioni disponibili. La "catalogazione" descrive, in maniera sintetica e di rapido accesso, il contenuto informativo dei documenti presenti in una collezione. Catalogazione manuale o automatica? Il problema di come reperire le informazioni aumenta con la mole dei dati messi a disposizione. Ad esempio, nelle biblioteche esiste un indice catalografico ed un ordinamento per argomento, autore, ecc. La catalogazione viene di solito svolta manualmente ed è quindi molto lunga (e passibile di errori). L’informatica consente di automatizzare l’organizzazione dei dati e il loro reperimento. Indicizzazione automatica - come faccio a estrarre il contenuto che mi interessa di un documento? È possibile automatizzare l’estrazione del contenuto informativo, operazione che viene definita indicizzazione. Per fare ciò, occorre creare un modello che consenta di estrarre le informazioni rilevanti in modo automatico. Nei documenti testuali l’informazione è contenuta nelle parole che compongono i documenti. È più difficile definire il contenuto semantico di documenti in formati non testuali, ad esempio musica o immagini. Una volta indicizzati i documenti, è possibile effettuare delle ricerche negli indici dei documenti. La ricerca negli indici richiede meno operazioni (è quindi più efficiente). Reperimento dell’informazione sul Web - qual è il problema dell’indicizzazione web? Indicizzare è facile quando hai un numero finito di documenti. Il problema del web è che è in continuo aggiornamento (nuovi documenti, documenti modificati o cancellati ogni secondo). Non è possibile quindi stabilire il numero di pagine web indicizzabili. Il Web è una collezione di documenti ma non è gestito in maniera unitaria e/o controllata, chiunque può creare una pagina o un sito Web, nel quale può mettere qualsiasi informazione. Non è possibile quindi effettuare controlli sul contenuto dei siti e sulla loro attendibilità. Ogni giorno vengono creati centinaia di nuovi siti, e altrettanti siti scompaiono. È impossibile stabilire il numero di pagine Web (centinaia di miliardi?) senza l’ausilio di strumenti informatici. Il problema principale è scoprire dove si trova l’informazione. Motori di ricerca (su Web) La rapida espansione del Web ha reso necessaria la scrittura di programmi che aiutino l’utente a reperire l’informazione. Un motore di ricerca è un sistema di programmi per il reperimento dell’informazione. Un motore di ricerca del Web è un sistema in grado di: individuare, indicizzare e reperire le pagine Web. Individuazione delle pagine Web Il Web Search Agent (WSA anche chiamato crawler, o spider) è quel componente di un motore di ricerca che viene impiegato per l’individuazione delle pagine Web. Il WSA localizza le pagine Web, e in generale tutti documenti accessibili sui server Web, lavorando ricorsivamente. Si parte da una lista di URL noti; si analizzano i documenti per vedere se ci sono link a nuovi URL al di fuori della lista; si aggiorna la lista di URL e visita i documenti agli URL aggiunti; si ripete fino a che non si sono esplorati tutti i link. Aggiornamento della lista delle pagine Web Il processo automatico di individuazione delle pagine Web permette di fare una “copia” dei documenti di un sito Web in un certo istante di tempo (vedi Web Archive). Ciò dignifica che le pagine che ha individuato il WSA diventeranno presto “vecchie” rispetto alla versione attuale. Per questo motivo, i motori di ricerca “navigano” costantemente il Web per raggiornare la collezione di pagine (vedi Google Regular Crawling) Indicizzazione “È possibile automatizzare l’estrazione del contenuto informativo, operazione che viene definita indicizzazione.” Una volta raccolta (individuata) la collezione di documenti, è necessario indicizzarla per permettere una ricerca più̀ efficiente. Quello che si vuole evitare è leggere “tutti” i documenti per poter ottenere l’informazione che si sta cercando. Un indice è un’organizzazione dei dati che permette all’utente di trovare rapidamente l’informazione che sta cercando. Fasi: Analisi lessicale —>Rimozione parole comuni —>Lemmatizzazione o Stemming —> Pesatura —> Creazione indice Queste azioni sono nascoste dietro i tokenizer. 1. Analisi lessicale: capire quali sono le parole di un testo. Scansionare le sequenze di caratteri che stabiliscono inizio e fine di una parola (spazio, punteggiatura). 2. Rimozione parole comuni: dato un testo, quali sono le parole più importanti? Sicuramente non congiunzioni, articoli o preposizioni. Ai fini dell’indicizzazione si rimuovono quelle parole che appaiono molto frequentemente, che sono proprio articoli congiunzioni e preposizioni. Visto che sono parole che appaiono ovunque, molto probabilmente non sono d’interesse ai fini della ricerca. 3. Lemmatizzazione o stemming: cercare la radice della parola. stemmer = programmi che cercano di ritagliare parte finale della parola per lasciare l’inizio perchè magari possono essere prese in considerazione durante una ricerca (es. tavolo- tavolino- tavoli..), perchè contengono termini molto simili alla mia ricerca. 4. Pesatura: come si fa a dire che un termine è più importante di un altro? C’è una doppia pesatura: in quanti documenti appare (tavolo appare in 80 e tavolino in 20) quante volte appare in un documento (tavolino nei 20 documenti appare 80 volte). 5. Creazione indice: bisogna basarsi sulla pesatura (in quanti documenti e quante volte in un documento). Modelli di recupero Che strategia posso usare recuperare i documenti all’interno di una collezione? L’obiettivo è recuperare i documenti che sono “probabilmente” rilevanti rispetto all’interrogazione dell’utente. Un modello di recupero (o di reperimento dell’informazione) è un insieme di costrutti che sono formalizzati allo scopo di rendere possibile la rappresentazione del contenuto informativo di documenti e interrogazioni, nonché di definire l’algoritmo di reperimento dei documenti in risposta ad un’interrogazione. Vi sono vari modelli di recupero, che possono essere suddivisi in due grandi famiglie. (Molto simile alla strategia usata dalle memorie di traduzione (match totale/parziale)): exact match: vengono individuati in modo esatto i documenti che soddisfano l'interrogazione e quelli che non la soddisfano. best match: viene effettuata una stima della rilevanza di un documento ad una data interrogazione. I documenti vengono ordinati per una misura di similarità con l'interrogazione e sono proposti quelli sopra una prefissata soglia. Exact match: modello Booleano I termini dell’interrogazione sono collegati mediante operatori logici (AND, OR, NOT). Ad esempio, cerco di documenti che: - contengono il termine t1 e il termine t2: t1 AND t2 (moltiplicazione logica) - non contengono il termine t2: NOT t2 (differenza logica) - contengono il termine t1 o il termine t2: t1 OR t2 (somma logica) Vengono recuperati solo i documenti che soddisfano esattamente l’espressione richiesta. Alcuni sistemi permettono l’utilizzo operatori di prossimità (termine t1 “vicino” a t2) o troncamento dei termini. Richiede (un minimo) di conoscenza dell’algebra Booleana. Ci sono alcuni svantaggi: Poco “user friendly”. - Mancanza di controllo sulla dimensione dell’insieme dei documenti recuperati. Non è possibile l’ordinamento dei documenti. - Sono tutti importanti allo stesso modo. - Non è possibile pesare i termini (un termine è presente o no). Best match: Tf-Idf Non tutte le parole di un documento ne descrivono il contenuto con la stessa “quantità di informazione”. Questa quantità si può misurare associando un “peso” che ne quantifica l’importanza. Il peso di un termine tiene normalmente conto della frequenza del termine nel documento e nella collezione. - - - Term Frequency (Tf) Frequenza di una parola all’interno di un documento (o di una query) Quante volte appare la parola? Quante volte appare la parola rispetto al numero totale di parole presenti nel documento? Document Frequency (Df) Frequenza di una parola all’interno di una collezione di documenti In quanti documenti appare la parola? In quanti documenti appare la parola, rispetto al numero totale di documenti della collezione? Inverse Document Frequency (Idf) = 1/df Rilevanza di un documento La bontà di un sistema di reperimento dipende da quanti documenti reperiti sono effettivamente rilevanti per l’esigenza informativa dell’utente. Le prestazioni di un motore di ricerca potrebbero essere calcolate se si conoscesse l’insieme totale dei documenti che rispondono alle esigenze informative dell’utente. È praticamente impossibile conoscere la rilevanza di milioni di documenti, o miliardi se ci si riferisce al Web. La rilevanza è soggettiva e può variare nel tempo. Il giudizio sulla rilevanza di un documento influisce sul giudizio dei successivi Valutazione È auspicabile che un sistema per il reperimento delle informazioni presenti tutti e soli i documenti rilevanti per l’utente. Se così fosse, l’utente non avrebbe bisogno di valutare i documenti, e la ricerca si esaurirebbe in un’unica iterazione. Vi sono due possibili comportamenti negativi, che rendono difficile la valutazione e oneroso il reperimento: - Effetto rumore Il sistema reperisce anche documenti non rilevanti; la valutazione e la consultazione sono più onerose perché i documenti rilevanti sono diluiti - Effetto silenzio Il sistema non reperisce alcuni documenti che sarebbero invece rilevanti; l’utente non può accedere ad una parte dell’informazione 20.11.19 Flusso di lavoro (workflow) e XLIFF L’idea è come gestire le fasi di flusso del lavoro e come gestire i file in maniera da portare avanti un lavoro. L’XML è una struttura che permette di gestire un flusso di lavoro…?? linguaggio di etichettatura per strutturare le informazioni. TBX permette di raggruppare termini database terminologico TMX Translation Memory eXchange (TMX) tbx e tmx standardizzazione testuale L’ultimo standard XML che vediamo è l’XML Localisation Interchange Format File (XLIFF) formato per lo scambio di file di localizzazione. Formato basato sull’XML per la standardizzazione del processo di localizzazione. Organization for the Advancement of Structured Information Standards (OASIS), 2002: Versione 1.2 del 2008 Qual è l’idea di fondo? Tenere traccia della fase o del punto in cui uno arriva nella traduzione. Salva la fase in cui il traduttore arriva, salva tutti i segmenti tradotti. Un progetto di localizzazione è composto da una serie di passaggi che coinvolgono vari attori. In una visione “tradizionale”, il workflow è il seguente Translation agency Se il documento contiene parti sensibili o porzioni da non tradurre come si fa a scegliere solo quegli elementi che ci interessano e nascondere tutto il resto affinchè l’agenzia di traduzione riesca comunque a svolgere il lavoro? Translation agency Dato un testo, selezionare solo le porzioni interessanti estrarre automaticamente queste porzioni salvare il testo in xml inviare il testo in xml all’agenzia di traduzione recuperare le traduzioni nel file XML tradotto e reinserire il testo nel formato originale. Struttura XLIFF Come faccio a passare una traduzione ancora in fase di lavoro (segmenti aperti, non tradotti...)? Esiste uno standard che tiene queste informazioni che ha estensione .xliff Localization Interchange File Format. <trans-unit approved="no" id="1" resname="res1"> translation unit All’interno di ogni translation unit c’è la porzione del file sorgente e quella del file di arrivo. <source> <target> qui ci sono le etichette source e target, a differenza delle memorie di traduzione, poiché c’è una direzione di lavoro che dev’essere mantenuta. Per ogni traduzione possono essere documentate traduzioni alternative, è possibile tenere traccia di varianti: match-quality <trans-unit approved="no" id="1" resname="res1"> <source xml:lang="en">Corporate Headquarters</source> <target xml:lang="es">Casa Central de la Compañía</target> <alt-trans match-quality="100" origin="web" tool="TM Search"> <source xml:lang="en">Corporate Headquarters</source> <target xml:lang="es">Casa Central de la Compañía</target> </alt-trans> <alt-trans match-quality="92" origin="web" tool="TM Search"> <source xml:lang="en">"Corporate Headquarters"</source> <target xml:lang="es">"Casa Central de la Compañiá "</target> </alt-trans> </trans-unit> 26.11.19 L’automazione della traduzione L’idea di usare il computer per tradurre testi da un linguaggio naturale ad un altro appare per la prima volta nel 1949, in un documento intitolato Memorandum on Translation di Warren Weaver. Le prime ricerche vengono poi svolte nel 1951 al Massachusetts Institute of Technology. Nel 1962 viene fondata la Association for Machine Translation and Computational Linguistics, seguita due anni dopo dalla Automatic Language Processing Advisory Committee (ALPAC). Vengono poi fondate società come Trados (1984). Oggi abbiamo una buona varietà di software di traduzione sia commerciali che gratuiti e la maggior parte sono disponibili su più piattaforme, sia per tipologia di sistema operativo che per hardware (desktop, versione mobile, online…). Si classificano le varianti in base al grado di intervento del traduttore umano: - Machine Assisted Human Translation (MAHT) viene denominata anche Computer Aided Translation, CAT. La traduzione viene effettuata dal traduttore umano, che però si avvale di strumenti disponibili sul computer che rendono più veloce il processo di traduzione. I principali strumenti offerti da questi software sono: o Dizionario o Glossario, costruito sulla base di traduzioni effettuate in precedenza, che suggerisce la traduzione più frequente. Nella sua forma più evoluta viene denominata Translation Memory. o Spelling checker , che controlla l’ortografia o Style checker, che verifica la rispondenza del testo alle norme di stile: punteggiatura, uso dei tempi verbali, lunghezza delle frasi. o Controllo della consistenza terminologica, cioè che una data parola venga sempre tradotta con la stessa parola. - - Human Assisted Machine Translation (HAMT) la traduzione viene effettuata dal computer, con il traduttore umano che interviene nella fase di pre-editing e post-editing. Le attività di preediting possono riguardare la modifica dell’ordine delle parole in modo da adattarsi più facilmente all’ordine tipico della lingua di destinazione, oppure nella riscrittura del testo di partenza in modo da semplificarne il linguaggio. Fully Automatic Machine Translation (FAMT) non è previsto alcun intervento del traduttore umano. Non esistono sistemi automatici perfettamente affidabili, però si tende allo sviluppo di sistemi automatici in grado di garantire una traduzione di alta qualità, i FAHQT (Fully Automatic High Quality Translation). La differenza tra MAHT e HAMT dal punto di vista pratico è molto sottile, poiché molti software MAHT suggeriscono la traduzione nel caso in cui la memoria di traduzione non contenga un termine o un’espressione utilizzabile. Sono entrambe semi-automatizzate L’ambito della traduzione assistita è limitato soprattutto alla traduzione tecnica piuttosto che a quella letterale. Strutture e dati Linguaggio XML La sigla XML è l’abbreviazione di eXtensible Markup Language, ovvero linguaggio a marcatori estendibile. È un linguaggio che permette di presentare un testo strutturato, utilizzando dei marcatori per indicare di volta in volta il particolare ruolo che riveste la singola unità del testo. Viene definito un meta-linguaggio, perché i marcatori non sono pre-definiti come in HTML. Qui abbiamo la possibilità di definire i marcatori che vogliamo utilizzare e quindi definire il linguaggio che utilizzeremo per descrivere il testo strutturato che vogliamo rappresentare. Le specifiche tecniche di XML non sono proprietarie, quindi sono pubbliche e questo ha permesso la diffusione su larga scala. Sono file di puro testo e possono quindi essere letti, creati o modificati con qualunque editor di testi senza l’uso di particolari programmi. Le istruzioni di formattazione e di elaborazione sono standardizzate e non dipendono dalla particolare piattaforma. Anche la codifica dei caratteri è definita da uno standard internazionale mediante un insieme di carattere universale noto come Unicode. Il notevole vantaggio di XML è che l’indicazione del ruolo delle diverse porzioni del testo ne permette l’elaborazione automatica. Un documento XML è costituito da una serie di elementi, chiamati porzioni di testo, ordinati gerarchicamente. Ogni elemento può essere contenuto in un elemento di ordine superiore (embedding dell’elemento) e può essere decomposto in un insieme di elementi di ordine inferiore. Ogni elemento è delimitato da una coppia di marcatori, a sua volta racchiuso tra una coppia di apici. <?xml version=”1.0> indica che si tratta di un documento XML. Non obbligatoria ma consigliata. Si chiama prologo. La struttura di un documento XML è quindi formata di un elemento radice che può avere degli elementi figli, che a loro volta possono avere altri figli, formando così una struttura gerarchica. <Libro> elemento radice <Capitolo> elemento figlio Questo è il primo capitolo </Capitolo> fine elemento figlio </Libro> fine elemento radice Regole sintattiche Esistono inoltre delle regole sintattiche e un documento viene detto ben formato (well formed) se rispetta questa sintassi. È costituito da un prologo e dall’elemento radice che a sua volta può contenere altri elementi. Il prologo può contenere la dichiarazione XML, eventuali istruzioni per l’elaborazione del documento ed informazioni sulla grammatica utilizzata nel documento, ovvero la definizione delle tipologie di elementi che si possono utilizzare nel documento. Le regole sintattiche elementari sono: - C’è uno e un solo elemento radice, che racchiude tutto il documento; Ogni elemento deve essere completamente racchiuso nell’elemento radice o in un altro elemento; Per ogni elemento deve essere presente la coppia di marcatori di inizio e fine. Regole per la nomenclatura degli elementi - - Il nome di un elemento può cominciare solo con una lettera, con il segno di sottolineatura (_) o con i due punti Libro; _Libro; :Libro. Ad ogni elemento possono essere associati degli attributi, che possono prendere dei valori. Potremmo associare ad un elemento Libro gli attributi Numero e Titolo. Gli attributi vengono inseriti all’interno del marcatore d’inizio. Si prevede che gli attributi debbano prendere dei valori, che vengono racchiusi tra virgolette: <Libro Numero=”1” Titolo=”Introduzione”> Gli attributi si possono comunque inserire sotto forma di elementi figli: <Libro> <Numero> 1 </Numero> <Titolo> Introduzione </Titolo> Possiamo inserire dei commenti all’interno di un documento, ma sempre dopo la dichiarazione e mai all’interno di un marcatore di un altro elemento. I commenti devono essere racchiusi tra i marcatori <!—e --> : <?xml version=”1.0”> <!—questo è un esempio di documento XML --> Grammatica del documento Bisogna definire cosa è possibile inserire e cosa no. La definizione degli elementi obbligatori e di quelli facoltativi, del loro numero e dei loro attributi viene realizzata mediante le grammatiche DTD (Document Type Definition). Un documento XML si definisce valido se, oltre a rispettare le regole sintattiche, rispetta anche la propria grammatica DTD. Le grammatiche possono essere collocate all’interno del documento o in un file esterno (richiamato all’interno del documento). La grammatica deve essere contenuta dentro il marcatore seguente, in cui al posto di Nome va inserito il nome dell’elemento radice del documento XML: <! DOCTYPE Nome [ ….. ]> all’interno di questa coppia di marcatori vanno inseriti tutti gli elementi previsti per quel documento. Ogni elemento viene inserito all’interno di un marcatore < ! ELEMENT >. Per tutti gli elementi che presentano elementi figli la dichiarazione < ! ELEMENT > contiene il nome dell’elemento seguito dalla lista di tutti gli elementi figli racchiusi tra parentesi tonde. È obbligatorio che l’ordine della dichiarazione sia lo stesso utilizzato nel documento. Inoltre, nella lista ogni elemento compare con l’indicazione del numero di elementi di quel tipo ammessi nel documento: - Se il nome dell’elemento compare senza indicazione, quell’elemento è obbligatorio e singolo; - Se è seguito dal simbolo +, possiamo avere uno o più elementi di quel tipo; - Se è seguito dal simbolo ?, significa che quell’elemento è facoltativo; - Se è seguito dal simbolo *, significa che è facoltativo e può essere presente più volte. Per gli elementi che non possiedono elementi figli, la dichiarazione < ! ELEMENT > contiene il nome dell’elemento seguito dal tipo di dati racchiuso tra parentesi tonde, per esempio (PCDATA) per indicare che si tratta di testo. <?xml version=”1.0”> <! DOCTYPE Libro [ <!ELEMENT Libro (Autore+, Titolo, Editor, ISBN, Prefazione?, Capitoli)> <!ELEMENT Autore (#PCDATA) …. ]> Se si vuole definire la grammatica in un file esterno, l’estensione di questo deve essere .dtd e deve contenere tutte le definizioni < !ELEMENT >. La stessa grammatica può essere usata per diversi documenti XML dello stesso tipo. Mentre in HTML vengono definiti sia gli aspetti strutturali che quelli grafici, in XML si ha una separazione tra dati e rappresentazione. La descrizione dei dati e della loro struttura è affidata al documento XML e alla grammatica. La definizione della rappresentazione grafica è invece affidati ai fogli di stile (stylesheet) e alla trasformazione del documento XML mediante un insieme di istruzioni codificate con il linguaggio XSLT (eXstensible Style Language Transformation). Con questo linguaggio è possibile trasformare il documento XML in un qualsiasi documento testuale oppure in HTML. I file XML vengono rappresentati con diagrammi ad albero con nodi. È un linguaggio per il trasporto dei dati, non per la visualizzazione di essi. Anche i file HTML sono rappresentati con diagrammi ad albero con nodi. <h1> indica la grandezza del file, va da h1 ad h6. Alberi Un albero è una struttura gerarchica costituita da elementi chiamati nodi. Ogni nodo viene identificato tipicamente da una lettera, da una parola o da un numero ed è associato ad altri nodi da relazioni di parentale. Queste relazioni vengono rappresentate da segmenti che uniscono i nodi, che vengono chiamati rami. Quando due nodi sono direttamente uniti da un ramo, uno dei due assume il ruolo di padre e l’altro il ruolo di figlio. Il padre è il nodo che sta più in alto e il figlio quello che sta più in basso. Ci sono poi nodi con un ruolo speciale: il nodo collocato in assoluto più in alto si chiama nodo radice, mentre i nodi collocati nelle posizioni estreme in basso sono le foglie dell’albero. Nel caso dello XML i nodi sono gli elementi definiti dalla grammatica. Una sequenza di nodi in cui ogni nodo è padre del nodo che segue costituisce un percorso interno all’albero. La profondità di un nodo viene calcolata a partire dalla radice, misurando la lunghezza del percorso da seguire per giungere a quel nodo. Funzioni della traduzione assistita Dizionari macchina I dizionari macchina sono dizionari informatici realizzati in maniera tale da essere utilizzati dal computer stesso, ovvero disponibili per altre applicazioni. È un file contenente una selezione più o meno ampia dei vocaboli della lingua e ad ogni vocabolo sono associati tutti i contenuti tecnici che si trovano in un dizionario normale. Ci sono due categorie di dizionari machina: - Dizionari lemmatizzati contengono solo le forme canoniche delle parole, i lemmi. I lemmi sono le radici da cui vengono formate le versioni flesse. L’operazione che permette di individuare il lemma a partire da una versione flessa viene detta lemmatizzazione. Questi dizionari consentono una velocità di consultazione maggiore poiché hanno dimensioni ridotte. - Dizionari completi ( full form dictionary) contengono tutte le forme flesse. L’insieme delle informazioni contenute per ogni voce possono dividersi in due grandi gruppi: - Le categorie grammaticali oltre la categoria grammaticale della parola, contiene informazioni più dettagliate mediante l’uso di sottocategorie, per esempio se un verbo è transitivo o intransitivo. - I vincoli contestuali vengono indicati quali termini possono essere utilizzati assieme alla parola data. Per esempio, le forme del verbo eat possono avere come soggetto solamente un soggetto animato (subj animate). I vincoli contestuali costituiscono quindi un vincolo nella selezione dei significati da associare ai termini rimanenti. Un’altra informazione utile è l’indicazione del settore, o dominio, in cui quella parola è usata con quel significato. Ci sono dizionari macchina che non hanno un equivalente cartaceo ma sono stati progettati proprio per l’uso con app o software di traduzione: GoldenDict, StarDict, Babylon, Dictd e ABBYY Lingvo. La tokenizzazione La tokenizzazione è la scomposizione del testo in unità elementari che possono essere trattate dal traduttore. È essenziale sia per il riconoscimento della singola parola che per la segmentazione del testo. Le unità elementari in cui viene scomposto il testo vengono chiamati token. I token non coincidono necessariamente con una sola parola, può essere costituito da numeri, single, segni di punteggiatura… Una prima soluzione per individuare i token può essere rappresentata dall’uso degli spazi, ma questo è possibile solo per le cosiddette lingue ad ortografia continua (italiano). La procedura di tokenizzazione deve gestire diverse situazioni: - gestione in maniera unitaria delle varianti ortografiche (semi lavorato, semi-lavorato; semilavorato). sequenze di caratteri che costituiscono token multipli, come C’era, che deve essere riconosciuto come costituito da due token. - sequenze di caratteri che contengono spazi ma costituiscono un unico token, come La Spezia. - i segni di punteggiatura vengono riconosciuti come token autonomi, ma anche qui ci sono delle eccezioni, come le sigle e le abbreviazioni. - Presenza di maiuscole e minuscole, la procedura di tokenizzazione deve riuscire a distinguere tra questi due casi. - Token complessi, come quelli costituiti da nomi propri. - Espressioni invariabili, come di rado; espressioni alfanumeriche come unità di misura, date o numeri telefonici. Anche la segmentazione si deve basare su un insieme di regole euristiche e di eccezioni da considerare, e per questo sono stati proposti vari standard per la condivisione di queste regole. Uno standard molto diffuso è il Segmentation Rules eXchange (SRX), che è usato dalla memoria di traduzione OmegaT. Lo standard SRX è basato su XML. Un documento SRX ha come elemento radice un elemento <srx>, che contiene due elementi, <header> e <body>: - <header> può contenere fino a tre elementi <formathandle> o <formathandle> definisce come deve essere trattata la formattazione che cade sul confine di un segmento, ovvero se deve essere considerata parte del segmento o no. - <body> contiene i due elementi <languagerules> e <maprules>. o <languagerules> contiene informazioni sulle regole di segmentazione e contiene più elementi <languagerule> che a loro volta contengono vere e proprie regole di segmentazione, ognuna delle quali è definita con <rule>. o <maprules> contiene le informazioni su come deve essere segmentata ogni lingua, definendo tramite gli elementi <languagemap> le regole che devono essere applicate per ogni lingua. <?xml version=”1.0”?> <srx version=”2.0” ………. > <header ……. > <formathadle …. > <formathandle …… > </header> <body> <languagerules> <languagerule> <rule> </rule> </languagerule> ……… </languagerules> <maprules> ………… </maprules> </body> </srx> Controllo ortografico Nel caso della traduzione assistita, questa funzione interviene in fase di post-editing e si basa comunque sull’impiego di un dizionario macchina. L’azione di un controllore ortografico (o spell checker) si svolge così: - Scansione del testo ed estrazione delle parole - Confronto di ogni parola con quelle contenute nel dizionario macchina il controllore ortografico deve riconoscere la presenza di una versione flessa. Se il dizionario macchina presenta solo il lemma, il controllore ortografico deve effettuare preventivamente la tematizzazione della parola; se invece il dizionario include tutte le forme flesse, allora il confronto si effettua direttamente. Il confronto da luogo a due situazioni: se la parola è presente nel dizionario viene considerata corretta; se invece non è presente viene considerata errata e si propongono una o più alternative. - Proposta di una o più parole in sostituzione di quella non trovata nel dizionario macchina. Memorie di traduzione La memoria di traduzione è una base di dati contenenti tutti i termini precedentemente tradotti. In genere gli elementi gestiti dalla memoria di traduzione sono frasi o spezzoni di frasi, indicati generalmente come segmenti o unità di traduzione. Propone quindi una corrispondenza tra segmenti nella lingua di partenza e segmenti nella lingua d’arrivo. Più precisamente, effettua le seguenti operazioni: - Importazione una memoria di traduzione può accettare file solo in alcuni formati specificati. - Scansione e analisi linguistica il documento viene passato in scansione sequenzialmente: viene individuata la sua struttura in frasi mediante la punteggiatura e ogni frase viene analizzata per identificare i suoi singoli elementi. - Segmentazione il testo viene suddiviso in unità elementari, per ognuno dei quali si cerca nella memoria del programma la traduzione corretta. La ricerca della concordanza può dare un risultato esatto (exact match) o approssimato (fuzzy match). Per la corrispondenza approssimata è disponibile un livello minimo di corrispondenza, in genere del 70%. - Estrazione del termine La memoria di traduzione può essere anche alimentata con un testo già tradotto. In questo caso i due testi vengono segmentati e si procede al loro allineamento, ovvero all’individuazione delle corrispondenze tra i segmenti dei due testi. Un esempio software commerciale MAHT basato sull’uso di una memoria di traduzione è SDL Trados Studio. Esistono però molte memorie di traduzione liberamente disponibili: la più nota è la banca dati dell’Unione Europea, che raccoglie testi in 22 lingue. Altre memorie di traduzione sono MyMemory, TAUS e Linguee. Le memorie di traduzione sono tipicamente memorizzate come semplici file di testo e rappresentate mediante semplici sistemi con marcatori. Uno standard molto diffuso è il formato TMX (Translation Memory eXchange). È un formato aperto codificato in XML, inizialmente sviluppato dal gruppo OSCAR (Open Standards for Container/Content Allowing Re- use) (a special interest group of LISA (Localization Industry Standards Association), and first released in 1997). L’ultima versionw è la 1.4b del 2005. “TMX (Translation Memory eXchange) is the vendor-neutral open XML standard for the exchange of Translation Memory (TM) data created by Computer Aided Translation (CAT) and localization tools. The purpose of TMX is to allow easier exchange of translation memory data between tools and/or translation vendors with little or no loss of critical data during the process.” Both specifications, XLIFF and TMX, contain all the elements necessary to store source document formatting information in XML format. A good CAT tool will allow a translator to reuse a sentence from an HTML page when translating a Rich Text Format (RTF) document, keeping text layout intact. This is the key reason why TMX format should be used as a complement to XLIFF. Un documento TMX è racchiuso all’interno dell’elemento radice <tmx> e contiene due elementi <header> e <body>: - <header> contiene meta-dati riguardo al documento - <body> contiene l’insieme delle unità di traduzione, ognuna delle quali è racchiusa dentro un elemento <tu> o A sua volta ogni unità di traduzione (<tu>), contiene le varianti dell’unità di traduzione, ovvero i segmenti per ogni specifica lingua, <tuv>. Ogni variante oltre a contenere il segmento di testo, racchiuso dentro l’elemento <seg>, deve contenere anche l’indicazione della lingua a cui appartiene quel segmento. L’indicazione della lingua avviene mediante l’attributo xml:lang. <?xml version=”1.0”?> <tmx version=”1.4”?> <header ……………….. > </header> <body> <tu ……….. <tuv xml:lang=”EN” ……… > <seg> </tuv> Software commerciali Systran Software creato da Peter Toma nel 1968 e sviluppato inizialmente per le traduzioni dal russo all’inglese per conto dell’Aeronautica militare americana. È in grado di tradurre testi in 20 lingue e il numero totale di coppie di lingue gestibili da Systran è attualmente 50. È disponibile una versione desktop con 4 diverse configurazioni, ma anche versioni server mobile e online. - Versione Home può tradurre solo documenti non più lunghi di 2000 parole. La grandezza massima del dizionario è di 500 termini - Versione office il limite di parole sale a 10000. Dizionario uguale alla versione Home. - Versioni Business e Premium non ci sono limiti di parole. Per la versione Business la capacità massima del dizionario è di 2000 parole, mentre per la versione Premium 20000. Impiega una tecnologia ibrida, basata sull’uso congiunto dell’approccio basato su regole e dell’approccio statistico. Fa uso di un gran numero di dizionari: - Dizionario principale Stem dizionario lemmatizzato, che contiene la categoria grammaticale, la valenza, la transitività e la concordanza, il tipo di nome e i marcatori semantici. - Dizionario idiomatico; - Dizionario degli omografi; - Dizionario delle eccezioni alle regole sintattiche; - Dizionario per il trattamento dei composti. Il processo di traduzione è molto articolato e si divide in 4 fasi: - Pre-elaborazione del testo vengono consultati il dizionario principale e idiomatico, viene effettuata l’analisi morfologica e individuati i nomi composti. - Analisi vengono risolti i casi di omografia, vengono segmentate le singole frasi e individuate le relazioni sintattiche. - Trasferimento ci si concentra sulla lingua d’arrivo per identificare un’eventuale traduzione idiomatica o la corretta traduzione di un omografo. - Sintesi ci si occupa dei termini non ancora tradotti, si effettua la generazione morfologica (scelta della flessione e della concordanza), si fanno gli adattamenti di tipo sintattico e si riordina la frase. Wordfast È una memoria di traduzione. Se usato in unione a Microsoft Word può essere usato con qualunque sistema operativo. Può gestire fino a 1 milione di unità di traduzione ed è codificata come puro testo, quindi può essere aperta con qualsiasi programma di trattamento testi, ma si può anche importare ed esportare nel formato .tmx. Può impiegare fino a 3 diversi glossari e permette di adottare sia una concordanza esatta che approssimata. È commercializzata in diverse versioni: - Wordfast Professional è una memoria di traduzione standalone, funzionante sui maggiori sistemi operativi. - Wordfast Classic è lo strumento ausiliario a Microsoft Word. - Wordfast Anywhere è la versione online che combina le caratteristiche delle altre due versioni. SDL Trados È una memoria di traduzione, disponibile in 3 diverse versioni: Starter il numero di unità di traduzione è limitato a 5000 e si può lavorare solo su 5 lingue contemporaneamente. - Freelance - Professional Supporta più di 70 tipi di file, tra cui parecchi formati markup come HTML e XML. A partire dal 2011 ha integrato le capacità di traduzione automatica e post-editing. In caso di assenza di concordanze nella memoria di traduzione, può inserire una traduzione automatica. - -single file translation - project package translation project manager, traduttore Crea un nuovo progetto: chiede se esiste un modello di progetto da riutilizzare, se no default. Avanti, nome del progetto. Déjà Vu Si propone come ambiente completo per la traduzione. È disponibile in 4 versioni (X2 Editor, X2 Professional, X2 Workgroup e TEAM Server). La versione Editor permette solamente di lavorare su progetti satellite. Dispone di memorie di traduzione multilingue e database terminologici. Adotta una combinazione di memorie di traduzione e traduzione automatica e sono supportate oltre 200 lingue. Anaphraseus Permette di creare e gestire memorie di traduzione bilingue. Si appoggia sulla suite OpenOffice ed è disponibile gratuitamente. Il formato prescelto è stato inizialmente il formato TM di Wordfast, ma ora può importare ed esportare file anche nel formato TMX. Effettua la segmentazione del testo e fornisce anche corrispondenze approssimate. Può utilizzare come motori di traduzione sia Google Translate che Microsoft Bing e Apertium. I delimitatori di segmento sono accompagnati da numeri che indicano il grado di corrispondenza con i segmenti presenti nella memoria, che può andare da 0 a 100%. La base dati terminologica può essere arricchita con dei glossari creati dall’utente, che sono in formato testo semplice. L’utente durante una traduzione può caricare solo due glossari alla volta, di cui uno fa parte di quelli definiti dall’utente e l’altro è il glossario principale. Il glossario definito dall’utente è modificabile durante la traduzione: se si vuole introdurre un termine nuovo, basta cliccare sul termine e introdurre, oltre al termine nella lingua di partenza, il corrispondente nella lingua d’arrivo ed eventuali commenti. Al contrario di OmegaT, non è possibile il ricorso a dizionari esterni. OmegaT È una memoria di traduzione gratuita. È scritta in Java e quindi può essere utilizzata sia su piattaforma Windows che Mac o Linux. In ingresso può accettare diversi formati, tra cui tutti i formati Microsoft Office, quelli OpenDocument, i formati HTML e XHTML e il formato LaTeX. Permette di utilizzare più memorie di traduzione. È compatibile con altre applicazioni per memorie di traduzione TMX, TTX, XML, XLIFF, SDLXLIFF. Per usare memorie di traduzione nel formato TMX, è sufficiente inserire il file TMX. Dentro un’apposita cartella tra quelle create dal programma per il progetto di traduzione perché venga subito riconosciuto dal programma. Permette di utilizzare anche più glossari e il formato di questi file deve essere il semplice formato testo con tabulazione oppure il formato TBX (Term-Base eXchange), che è un formato basato su XML per lo scambio di glossari tra piattaforme diverse. Permette di creare un glossario di progetto aggiungendo i singoli termini mentre si sta traducendo. Oltre al dizionario, permette anche l’uso del correttore ortografico, che va però preventivamente impostato. Il correttore usato da OmegaT è Hunspell. Riconosce anche le concordanze parziali (fuzzy matches), impostando una soglia per la percentuale di coincidenza (tipicamente 90). In alcuni casi vengono inserite automaticamente nel testo tradotto, anche se viene premessa l’etichetta [fuzzy]. Non gestisce le forme flesse. Permette il ricorso a sistemi di traduzione automatica, selezionando tra le impostazioni uno o più motori di traduzione automatica tra quelli disponibili. Effettua una segmentazione prima a livello di paragrafo e poi a livello di frase. La segmentazione viene evidenziata mediante una serie di marcatori e vengono utilizzate le regole dello standard SRX (Segmentation Rules eXchange). Presenta, su due finestre diverse, il testo da tradurre e quello che si sta traducendo, segmento per segmento, oltre alle concordanze e ai termini del glossario relativi al segmento in corso di traduzione. Progetto > nuovo > cartella vuota dove salvare il progetto > salva. Nella creazione di un progetto di traduzione assistita, oltre al nome del progetto (cosa comune di tutti i software) hanno la parte di selezione dei file di traduzione (più avanti però), ed è opportuno notare che si possono tradurre anche più file. Opzioni del programma: Lingua partenza – Lingua di arrivo cercare nella memoria di traduzione segmenti che ci sono già in quelle lingue per attivare traduzione automatica e glossario corrispondente. Tokenizer non si devono toccare, sono sottoprogrammi, ed è il programma che regola come viene letto il file e come suddivise le varie parole. Se la segmentazione viene fatta a livello di frase (standard: si sceglie “.” Per dire sequenza finita). Auto-propagazione delle traduzioni (mantenere attivo) il software riconoscerà il segmento già tradotto identico, automaticamente lo sostituisce già con la traduzione. Altrimenti non lo fa automaticamente e quando arriveremo di fronte al segmento già tradotto ci verrà data la proposta. Rimozione dei tag TAG= sono elementi all’interno di file di testo che danno formattazione /struttura all’interno di esso. Sono tutte questioni relative ad elementi grassetto, corsive font, etc. che normalmente vengono tenuti, per cui se nel file originale ci sono certi tag anche nella proposta di traduzione e quella automatica, il software cerca di mantenerli. Questo potrebbe creare un po’ di confusione le prime volte che si vedono testi taggati. Altra cosa scomoda si trova tornando a come funzionano software di traduzione assistita: questi software vanno a cercare all’interno del testo segmenti già tradotti. I tag contano come caratteri, se è stata tradotta già una frase senza tag e facciamo la traduzione della stessa frase ma senza grassetto, non c’è una perfetta corrispondenza. Questo può essere problema perché: 1) automaticamente non si auto-propaga qualcosa che abbiamo già fatto; 2) se abbiamo una frase lunga e complicata in termini di tag, potremo arrivare alla situazione in cui il software non propone la nostra traduzione perché non riesce a riconoscere un numero sufficiente di caratteri simili. Le strade quindi sono 2, o rimuovere i tag e quindi rifare tutto il lavoro di reinserimento (stile testo a mano). Con pagine web la cosa è più complessa. Ultime righe non c’è motivo di modificarle, e non sono altro che la struttura delle sottocartelle del progetto. Essendo sottocartelle possiamo cambiarle per andare a salvare i vari file. Posizioni dei file: (va mantenuta cosi com’è) - file di partenza: file che dobbiamo tradurre - memoria di traduzione - glossario - dizionario: dizionari che si possono caricare - file di arrivo: dove verranno prodotti i file quando verrà completata traduzione Finestra dei file del progetto cosa contiene la cartella dei file di partenza. O trascinare il file dentro o cliccare copia i file nella cartella di partenza. Terza colonna: codifica dei caratteri. Concordanze parziali: se c’è corrispondenza perfetta con segmenti che ho già tradotto, ma anche se c’è un segmento che si sovrappone parzialmente con qualcosa che ho già fatto. Una volta dato l’OK > nuova finestra: importare i file che vogliamo tradurre che verranno copiati nella cartella source. Abbiamo poi 3 cose interessanti: encoding (come è stato codificato il file da tradurre); numero di segmenti per ogni file (es. solar power ha 3 segmenti) e dice anche quanti sono “Unici”, nel senso che ce ne sono alcuni che si ripetono (ES. solar power ha 3 segmenti diversi, il secondo, solar power long version, ne ha 7 con 4 già visti). Questo evidenzia la quantità di lavoro che ci sarà poi da fare. Possiamo sempre tornare all’inizio con “proprietà progetto” e “file del progetto”. Ogni volta che si fanno modifiche al glossario, per esempio andando proprio nella struttura del progetto, per vederle bisogna ricaricare il progetto. È poi fondamentale andare a vedere quali sono le combinazioni da tastiera utili per il lavoro, ES: - Ctrl+U segmento non tradotto successivo (saltiamo direttamente a quelli che dobbiamo finire di tradurre) - Ctrl+Maiusc+U segmento tradotto successivo C’è poi la possibilità di attivare o disattivare i colori su quali segmenti sono già stati tradotti o no, quali sono copie di altri: se vogliamo mostrare i segmenti sorgente sempre ed altre cose. In Omega T quando un segmento viene tradotto, passa da verde> giallo. Altra cosa interessante è attivare la traduzione automatica: Opzioni > traduzione automatica > scegliere: quelli utilizzabili senza modifica sono “my memory human” e “my memory machine”. Per vedere la traduzione automatica, che si trova in basso a sx, posso trascinare (tenendo premuto il testo sx) e mettere l’etichetta dove voglio è semplicemente un modo per avere la visualizzazione che si preferisce. Una volta che si inizia, quasi tutti i software sostituiscono il contenuto del file sorgente e lo mettono al posto di quello tradotto. Posso anche essere portato ad accettare inizialmente tutte le proposte di traduzione automatica. Come si fa? Scriverlo a mano Copiare ed incollare Menù edit (Ctrl+M), rimpiazzo con traduzione automatica. Automaticamente sostituisce la proposta della traduzione automatica. Per la traduzione automatica si deve attivare: Traduzione automatica Traduzione di un unico segmento My memory human e machine Viene proposta una traduzione automatica, possiamo accettarla o no. A questo punto posso decidere di salvare, ed andare così al segmento successivo; la codifica dei colori ora dice che primo elemento è stato tradotto. Il secondo segmento ha due proposte di traduzione che arrivano da due traduzioni automatiche (non human ma enorme quantità di memorie di traduzione), per cui ci si può posizionare su quella che si preferisce (si fa copia incolla o si scrive a mano la proposta). Una volta fatto anche il terzo segmento, ha già sostituito. Avendo attivato l’opzione auto-propaga, i segmenti già tradotti, ne ho alcuni già trasformati, senza aver fatto nulla sono già stati sostituiti. Altrimenti prima avrei ottenuto proposte di traduzione, e scelgo selezionare ciò già fatto più affidabile rispetto traduzione automatica. A questo punto, con Ctrl+U, che sarebbe prossimo segmento non tradotto, va diretto solo sui segmenti che devo ancora tradurre (utile per la velocità); a questo punto, le soluzioni si ritrovano nella cartella /target/. A questo punto appaiono 3 file nuovi nella nostra cartella del progetto: “esempio OmegaT level 1.tmx” “level 2.tmx” e “OmegaT.tmx” il file OmegaT.tmx è una memoria di traduzione, cioè il file che ci porteremo appresso durante tutta la traduzione. Come è composta la memoria di traduzione: Prime due righe sono due righe, una un commento e l’altra una definizione. La seconda riga è un commento che da un’informazione di che tipo è il documento. La prima riga dice “io questo file lo sto scrivendo con il linguaggio xml versione 1.0 encoding UTF-8”. XML= linguaggio di etichettatura per strutturare le informazioni; 1.0 perché per l’XML esistono standard di varie versioni per dire quali etichette sono ammissibili. Encoding UTF-8 memoria di traduzione sta usando questa codifica. Ogni documento strutturato inizia e finisce con un’etichetta, la quale per le memorie di traduzione è tmx (translation memory exchange), c’è una proprietà di questa etichetta che dice che la versione che sto usando è la 1.1. Poi c’è un’etichetta heather che è un’intestazione come pagina web e serve per dare un’informazione in più al documento, i cosiddetti metadati; questa intestazione dice che il file è stato creato con Omega T, so che la lingua computer è inglese-USA, che il tipo di dati su cui sto lavorando è di tipo testuale, la versione è Omega T 3.6, la segmentazione è di tipo 7, e la lingua sorgente è l’inglese. Sono dati che riguardano informazioni sullo strumento che ha usato Omega T ed il tipo di file che sto usando. Poi, Unità di traduzione sono elementi che dicono che qui in cui inizia e qui finisce una varietà, ovvero un gruppo di varianti che fanno riferimento allo stesso segmento: ogni variante di traduzione è indicata con tuv ha la proprietà lingua. C’è anche l’etichetta <seg> che sta per segmento, e la differenza rispetto l’esempio fatto a mano, riguarda la lingua di arrivo. Nelle memorie di traduzione non esistono più lingue di partenza ed arrivo in quanto sono segmenti che possono essere intercambiabili in una direzione o nell’altra, la differenza qui è che mentre la lingua inglese deriva dal documento sorgente, per cui non ho informazioni su chi ha fatto il segmento e quando, la lingua italiana ha delle proprietà in più che dicono chi ha fatto una modifica, quindi è il nome dell’utente quando è stata fatta. In un lavoro collaborativo, se si passa memoria di traduzione a qualcun’altro che modifica i dati, vedremo chi ha fatto l’ultima modifica. Per i segmenti tradotti ci sono tutte queste informazioni. A cosa serve questo file di memoria di traduzione? È quello che ci porteremo dietro durante tutti i lavori di traduzione, il file tmx è quello che va tenuto e riportiamo all’interno di altri progetti per ottenere suggerimenti. Omega T atti notarili (26.11) Segmentazione rendi specifiche… quando deve o non deve essere applicata la regola del punto, se appare dopo quella sequenza di caratteri che indica un’abbreviazione, per esempio DOC. non deve essere segmentato. “modello dopo” dice cosa si deve fare dopo quella data abbreviazione /s copia quello che c’è scritto e vai avanti. Queste eccezioni alle regole possono essere modificate, possono essere aggiunte Matecat Software di traduzione assistita che lavora online, via Cloud. Opzione del subject: argomento trattato Valutazione dei sistemi di traduzione Capacità linguistiche Sono le capacità del sistema di fornire una traduzione corretta e ruotano essenzialmente intorno a 3 aspetti: - La fedeltà all’originale la capacità di riportare esattamente tutti i contenuti informativi presenti nel testo originale. Questo concetto di fedeltà è diverso da una fedeltà sintattica. - La chiarezza è legata alla leggibilità di un testo, alla qualità del testo nella lingua di destinazione, che però potrebbe nascondere una traduzione poco fedele o errata. - Lo stile si riferisce all’utilizzo di un linguaggio appropriato sia per il contenuto che per il contesto e le intenzioni dell’autore. Si possono verificare criticità nella traduzione, soprattutto per quanta riguarda i nomi composti e gli omografi. Per quanto riguarda la sintassi, le criticità riguardano soprattutto le costruzioni telegrafiche (per esempio i titoli) e in genere tutti i frammenti e le frasi che includono parentesi. Si sono proposte molte metriche per valutare la qualità linguistica: - La BLEU (Bilingual Evaluation Understudy) algoritmo che valuta la qualità del testo tradotto da una macchina confrontandolo con una traduzione di riferimento effettuata da un traduttore umano. Tanto più è elevata la corrispondenza tra le due traduzioni, tanto migliore sarà giudicata la traduzione. L’algoritmo fornisce un numero compreso tra 0 e 1: più alto è il valore, migliore viene giudicata la qualità della traduzione. - La TER (Translation Error Rate) utilizza come la BLEU le traduzioni di riferimento effettuate da traduttori umani. La distanza tra il testo candidato e quello di riferimento viene però calcolata come il numero di modifiche necessarie per trasformare il testo candidato prodotto dalla macchina nel testo di riferimento. Questa quantità viene poi divisa per il numero di parole nel testo per ottenere il valore del TER. Tanto più il valore del TER è prossimo a 0, migliore sarà la traduzione. Entrambi sono basate sull’uso di traduzioni di riferimento. Il vantaggio di questo tipo di approccio è che lo stesso insieme di traduzioni considerate per una prova di un sistema di traduzione può essere utilizzato per un altro sistema e quindi confrontare i due. Un aspetto critico è la disponibilità di traduzioni di riferimento ed il fatto che la loro scelta è comunque soggettiva. Una metrica per valutare la chiarezza è l’indice di Flesch F, calcolato mediante una formula che penalizza le frasi e le parole troppo lunghe: F= 206.835 - 0.846 x S - 1.1015 x P S è il numero delle sillabe e P è il numero medio di parole per frase. La leggibilità del testo viene considerata alta se F è superiore a 60, media se è compreso tra 50 e 60 e bassa se è minore di 50. Il valore massimo è 120. Questa formula è stata adattata alla lingua italiana: F= 206 – 0.65 x S – P La comprensibilità di un testo è valutata tramite la procedura cloze, che coinvolge un gruppo di lettori e si effettua secondo i seguenti passi: - Si cancella una parola ogni n sostituendola con uno spazio bianco; - Si chiede ad ogni lettore di leggere il testo così modificato e di sostituire le parole mancanti; - Il punteggio di ogni singolo partecipante è dato dalla percentuale di parole mancanti indovinate; - Il punteggio complessivo è la media dei punteggi dei partecipanti. Si considera un testo ragionevolmente comprensibile se il punteggio finale supera il 60%. Capacità operative Si riferiscono alle funzionalità dei software di traduzione e riguardano la flessibilità e la facilità di impiego di queste funzionalità. - Disponibilità del software per diverse piattaforme. - - Capacità di lavorare con il maggior numero possibile di formati di file sorgente. Adesso una buona parte delle attività di traduzione si realizza su file di cui si dispone solo il file pdf, oppure riguarda documenti in HTML o XML. Disponibilità di dizionari e glossari, in particolari la facilità di crearli e aggiornarli. Utilizzo di formati standard o largamente diffusi. Facilità delle fasi di pre-editing e post-editing. La maggior parte di queste capacità operative sono valutabili con un semplice test binario: se la funzionalità è presente o no. Si può anche utilizzare una metrica di produttività, misurando il tempo speso rispettivamente nella traduzione di un segmento e nel suo post-editing. 10.12.19 Traduzione assistita Computer Assisted Translation (CAT) traduzione effettuata da un utente mediante l’aiuto del computer Sono sistemi integrati software per agevolare la traduzione nell’ambito della CAT. integrati= mettono a disposizione vari elementi per poter procedere con la traduzione, nell’ambito delle CAT. Integra le memorie di traduzione e i CAT. I software più avanzati permettono anche di trasformare un documento immagine (pdf, jpg) in una sequenza di caratteri. Molto vantaggioso. Gli elementi fondamentali di un sistema integrato sono: - Memoria di traduzione - Database terminologico Memoria di traduzione È un tipo di database multilingue che viene utilizzato per memorizzare e ricercare testi, un archivio multilingue contenente varie unità di traduzione. Ciascuna unità di traduzione è composta da almeno un segmento di testo rappresentante una variante di traduzione, oltre a eventuali attributi quali data di creazione, utente, ultima modifica, ecc… I concetti di unità di traduzione e segmento sono dibattuti. Segmentazione Un segmento oscilla fra un periodo, una frase e un sintagma. Il testo salvato nella memoria di traduzione è il risultato di una segmentazione operata dal sistema integrato sulla base di regole che vertono fondamentalmente sulla punteggiatura e sono modificabili da parte dell’utente. Un segmento andrebbe definito come una porzione di testo compresa fra due delimitatori impostati nelle regole di segmentazione. Database (o banca dati) terminologico La banca dati terminologica (mono- o multilingua) fa parte dei sistemi integrati: glossari, dizionari, thesaurus, ecc… Analisi dei requisiti - Stabilire se un CAT tool è utile in quel particolare ambito. In particolare, quando esistono ripetizioni all’interno del testo. - Disponibilità in formato elettronico o OCR del testo. - Formati supportati dal CAT tool scelto. - Risorse linguistiche disponibili per la lingua di partenza e la lingua d’arrivo. Traduzione automatica Machine translation MT: - Maht - Hamt Famt La traduzione (semi-)automatica si distingue dalla traduzione assistita per almeno due aspetti: 1) L’origine della traduzione. Una memoria di traduzione memorizza e recupera traduzioni esistenti che possono essere riutilizzate qualora il testo da tradurre sia identico o simile al testo presente all’interno della stessa. Nel caso della traduzione (semi-)automatica, invece, il software elabora una traduzione sulla base di regole e/o di corpora creando un testo nuovo. 2) L’intervento umano. Nel caso della traduzione assistita è invece una persona non solo a tradurre parti nuove, ma anche a decidere se una traduzione esistente debba essere utilizzata o meno. Nella traduzione automatica (FAMT) la trasposizione linguistica viene effettuata da un software, senza l’intervento di alcuna persona. Cognitive Linguistic Approach Four "memories" identified by the researchers for their work: - knowledge of the language system - knowledge of the language usage - knowledge of the world - knowledge of the situation Rule Based MT (RBMT) The source text is parsed and an intermediate representation is produced. The target language text is generated from the intermediate representation. The systems are based on linguistic information about source and target languages (i.e. grammars and dictionaries covering the main semantic, morphological, and syntactic regularities of each language respectively). Direct MT A direct word by word translation of the input source is carried out with the help of a bilingual dictionary and after which some syntactical rearrangement are made. Minimal requirements: - A dictionary that maps each source word to a target word - Rules representing regular source sentence structure - Rules representing regular target sentence structure Pros: - Translation is usually comprehended by the reader with little effort Translation is very effective for languages with similar grammar rules and structure Systems are easy to implement Cons: - Direct MT involves only lexical analysis. It does not consider structure and relationships between words Direct MT systems are developed for a specific language pair and cannot be adapted for different language pairs. Direct MT systems can be quite expensive, for multilingual scenarios Some of the source text meaning can be lost in the translation Interlingua The source language is transformed into an Interlingua, which is an intermediate abstract languageindependent representation. The target language is generated from this Interlingua. Pros: - It gives a meaning-based representation and can be used in applications like information retrieval. An Interlingua system has to resolve all the ambiguities so that translation to any language can take place from the Interlingua representation. The system is more practical when several languages are to be interpreted Cons: - Time efficiency of this system is lower than the Direct Machine Translation system Major problem lies in defining a universal abstract (Interlingua) representation which preserves the meaning of a sentence Transfer Based A database of translation rules is used to translate text from source to target language. Whenever a sentence matches one of the rules, or examples, it is translated directly using a dictionary. The approach uses a dictionary to directly convert source into target whenever a sentence matches one of the transfer rules. Pros: - It has a modular structure The system easily handles ambiguities that carry over from one language to another Cons: - Some of the source text meaning can be lost in the translation Computer based Translation (CBT) It is based on statistical analysis of source and target language corpus. Huge dataset is required for initial statistical analysis. Statistical MT A sentence can be translated from one language to another in many possible ways. In the first stage many output sentence candidates in the target language are generated. This stage involves a bilingual translation lexicon, which gives possible translations for each word or phrase in the input sentence, with a probability assigned to every translation. In the second stage, a search component, called decoder, searches for the best output candidate according to a statistical scoring function. Pros: - There is a great deal of natural language in machine readable format Generally, SMT systems are not tailored to any specific pair of languages Rule-based translation systems require the manual development of linguistic rules, which can be costly, and which often do not generalize to other languages Cons: - Corpus creation can be costly for users with limited resources. The results are unexpected. Superficial fluency can be deceiving. Statistical machine translation do not work well between languages that have significantly different word orders (e.g. Japanese and European languages). The benefits are overemphasized for European languages. Example Based (EBMT) An Example based Machine translation system (EBMT) system maintains a corpus consisting of translation examples between source and target languages. An EBMT system has two modules: - The retrieval module retrieves a similar sentence and its translation from the corpus for the given source sentence. The adaptation module then adapts the retrieved translation to get the final corrected translation. Hybrid MT Statistical Rule Generation; Multi-Engine Machine Translation Evaluation of MT The closer a machine translation is to a professional human translation, the better it is. [Papinemi et alii, 2002] To judge the quality of a machine translation, one measures its closeness to one or more reference human translations according to a numerical metric. Typically, there are many “perfect” translations of a given source sentence. These translations may vary in word choice or in word order even when they use the same words. And yet humans can clearly distinguish a good translation from a bad one. The BLEU Metric Bilingual Evaluation Understudy (BLEU) BLEU scores are calculated for individual translated segments by comparing them with a set of good quality reference translations. Those scores are then averaged over the whole corpus to reach an estimate of the translation's overall quality. Intelligibility or grammatical correctness are not taken into account. BLEU is designed to approximate human judgement at a corpus level and performs badly if used to evaluate the quality of individual sentences. Traditional human Assessment - Intelligibility and Fidelity The requirement that a translation is of high fidelity or accuracy includes that the translation should, as little as possible, twist, distort, or controvert the meaning intended by the original. The requirement that a translation be intelligible means that, as far as possible, the translation should read like normal, well edited prose and be readily understandable in the same way that such a sentence would be understandable if originally composed in the translation language. - Adequacy, Fluency and Comprehension The evaluator is asked to look at each fragment, delimited by syntactic constituent and containing sufficient information, and judge the adequacy on a scale 1-to-5. The results are computed by averaging the judgments over all of the decisions in the translation set. Same for fluency, where the evaluators are asked to determine whether the translation is good English without reference to the correct translation. The modified comprehension develops into the “Informativeness”, whose objective is to measure a system’s ability to produce a translation that conveys sufficient information, such that people can gain necessary information from it. Manual evaluation suffers some disadvantages such as: time-consuming, expensive, not tunable, and not reproducible. Automatic Evaluation Metric - - - Lexical similarity, Edit distance: calculating the minimum number of editing steps to transform output to reference. Operations include: insertion (adding word), deletion (dropping word), and replacement (or substitution, replace one word with another). Lexical similarity, Precision and Recall: BLEU, based on the degree of n-gram overlapping between the strings of words produced by the machine and the human translation references at the corpus level. Lexical similarity, Word Order Linguistic features Syntactic similarity, Semantic similarity