## Segmentazione del documento originale

- Segmentazione a livello di struttura

- Segmentazione a livello di frase

  - Regole di segmentazione

  - Impostazione delle regole

    - Priorità

    - Creazione delle regole

    - Interruzione/Eccezione

    - Alcuni semplici esempi

- Costrutti delle espressioni regolari

Gli strumenti della memoria di traduzione operano su unità di testo definite “segmenti”. OmegaT utilizza due metodi per segmentare un testo: la segmentazione a livello di paragrafo e quella a livello di frase. Per selezionare il tipo di segmentazione, selezionare Progetto → Proprietà... dalla barra dei menu e attivare la casella ivi presente. Bisogna notare che per la maggior parte dei progetti la segmentazione a livello di frase è la scelta migliore, dato che la segmentazione a livello di paragrafo è molto più datata. Se si seleziona la segmentazione a livello di frase, è possibile impostarne le regole dal menu Opzioni → Segmentazione....

Bisogna altresì notare che buona parte dello sviluppo del programma è stato utilizzato per creare regole di segmentazione indipendenti. Nella maggior parte dei casi, dunque, non si dovrà impegnare tempo a scrivere le proprie regole di segmentazione. D'altro lato, questa funzionalità può essere molto utile in particolari casi, poiché consente di tradurre ciò che deve essere tradotto senza correre il rischio di modificare le parti che devono rimanere inalterate.

Attenzione! La modifica delle opzioni dei filtri mentre è aperto un progetto può provocare la perdita di dati. Se si modificano le opzioni di segmentazione mentre è aperto un qualsiasi progetto, affinché tali regole abbiano effetto sarà necessario ricaricare l'intero progetto.

## Segmentazione a livello di struttura

OmegaT prima analizza il testo alla ricerca di una segmentazione a livello della struttura. Nel corso di questo processo, per la generazione dei segmenti, viene utilizzata solo la struttura del testo di partenza.

Per esempio, i file di testo possono essere segmentati in corrispondenza delle interruzioni di riga, in base alle righe vuote oppure potrebbero non venire affatto segmentati. I file con formattazione (documenti OpenOffice.org, HTML, ecc.) sono segmentati in base ai tag a livello di blocco (paragrafi). Gli attributi dell'oggetto traducibile nei file XHTML o HTML possono essere estratti come segmenti separati.

## Segmentazione a livello di frase

Dopo aver ultimato la segmentazione del file di partenza in unità logiche, OmegaT avvierà un'ulteriore segmentazione di tali blocchi in frasi.

### Regole di segmentazione

Il processo di segmentazione può essere raffigurato nel modo seguente: si immagini il cursore che si sposta lungo il testo, un carattere alla volta. Per ogni posizione del cursore viene applicata ciascuna regole nell'ordine predefinito, per verificare se il modello Prima si applica al testo posto alla sinistra del cursore e il modello Dopo al testo posto alla destra del cursore. Se esiste una corrispondenza con la regola, il programma blocca il controllo delle regole (nel caso della regola per le eccezioni) o crea un nuovo segmento (nel caso di quella per le interruzioni).

La segmentazione a livello di frase è stata implementata grazie allo standard Segmentation Rules eXchange (SRX): si noti che le caratteristiche SRX non sono tutte supportate. Non è possibile importare o esportare le regole definite nel formato SRX. Tuttavia, se si conosce come opera SRX, si sarà in grado di capire anche come OmegaT esegue la segmentazione.

Esistono sono due tipi di regole:

- Le regole di interruzione separano il testo di partenza in segmenti. Per esempio, la frase "Ma tutto questo aveva senso? Non ne ero sicuro." dovrebbe essere separata in due segmenti coincidenti con due proposizioni, e ciò significa che dovrebbe esserci una regola di interruzione per "`?`".

- Le regole di eccezione definiscono quali parti del testo NON devono essere separate. A differenza dei periodi, il sintagma "Sig. Rossi" non dovrebbe essere separato in due segmenti, e dovrebbe essere presente una regola di eccezione per Sig (come pure per Dott e Ing e Avv e via discorrendo), seguita da un punto.

Le regole di interruzione predefinite dovrebbero essere sufficienti per la maggior parte delle lingue europee e per il giapponese. Data la loro flessibilità, è possibile considerare di definire ulteriori regole di eccezione per la lingua da cui si traduce, al fine di ottenere segmenti più comprensibili e coerenti.

### Impostazione delle regole

### Priorità

Tutte le serie di regole di segmentazione corrispondenti a un modello linguistico vengono applicate in un ordine di priorità specifico e, pertanto, sarà necessario che le lingue dalle quali comunemente si traduce si trovino in una posizione precedente rispetto a quelle presenti in modo predefinito. Per esempio, le regole per il francese del Canada (FR-CA) dovrebbero precedere quelle per il francese comune (FR.*) e anche quelle predefinite (.*). A questo punto, quando si tradurrà dal francese del Canada, il progetto adotterà prima le regole definite per questa lingua, quindi quelle per il francese comune, infine quelle predefinite, seguendo l'ordine di priorità corretto.

### Creazione delle regole

Per modificare o espandere una serie di regole esistente, basta fare clic sulla serie nella tabella in alto. Le regole attive verranno visualizzate nella metà inferiore della finestra di dialogo.

Per creare una serie vuota di regole per un nuovo modello linguistico, fare clic sul pulsante Aggiungi nella metà superiore della finestra di dialogo. Apparirà una riga vuota nel fondo della tabella superiore (potrebbe rendersi necessario scorrere la tabella per visualizzare la riga). Cambiare il nome alla serie di regole e al modello linguistico. La sintassi del modello della lingua è conforme a quella di un'espressione regolare. Nel caso in cui la serie di regole gestisca una coppia lingua-nazione, si consiglia di usare il pulsante Sposta in alto per spostarla alla prima posizione della tabella.

### Interruzione/Eccezione

Le caselle di scelta della colonna “Interruzione/Eccezione” determineranno se si tratta di una regola di interruzione (casella attivata) o di eccezione (casella non attivata). Le espressioni delle colonne “Modello prima” e “Modello dopo” definiscono che cosa deve essere eseguito prima e dopo alcune posizioni, in modo da applicare correttamente la regola di eccezione o quella di interruzione.

### Alcuni semplici esempi

Scopo | Prima | Dopo | Nota
impostare un segmento dopo un punto ('`.`') e prima di uno spazio | `\.` | `\s` | "`\.`" corrisponde al carattere "`.`" "`\s`" corrisponde a un qualsiasi carattere di spazio bianco
non segmentare dopo Mr. | `Mr\.` | `\s` | È una regola di eccezione, dunque la casella di scelta della regola non deve essere attivata
impostare un segmento dopo "。" (punto giapponese) | `。` |  | Notare che dopo è vuoto
non segmentare dopo M. Mr. Mrs. e Ms. | `Mr??s??\.` | `\s` | regola di eccezione - si veda l'uso di ? nelle espressioni regolari (identificatori non ripetitivi)

## Costrutti delle espressioni regolari

Le espressioni ammesse per le regole di segmentazione sono quelle riconosciute da Java. È disponibile un breve riepilogo nell'appendice Costrutti delle espressioni regolari. Se si desiderano ulteriori informazioni, consultare la pagina http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html<.

Il Web mette a disposizione varie spiegazioni semplificate sull'uso delle espressioni (si consulti, per esempio, http://www.regular-expressions.info/quickstart.html).

Avvertenze legali | Pagina iniziale | Indice