Specifiche per l`etichettatura pragmatica in XML

Transcript

Specifiche per l`etichettatura pragmatica in XML
Specifiche per l’etichettatura pragmatica in
XML
a cura di
Renata Savy & Simona De Leo
1
0. PREMESSA. ................................................................................................................................3
1.Il linguaggio di mark-up XML.............................................................................3
2. LA DTD .......................................................................................................................................3
2.1. Descrizione delle DTD per Pra.Ti.D................................................................4
2.1.1 Elementi
5
2.1.2 Attributi
5
3. LA PROCEDURA DI ANNOTAZIONE .........................................................................8
2
0. PREMESSA.
Questo documento illustra la DTD costruita e derivata dallo schema di annotazione
pragmatica descritto in “PraTiD_Normario per l'annotazione pragmatica” e le norme
per l’etichettatura in XML dei dati di Pra.Ti.D
1. IL LINGUAGGIO DI MARK-UP XML.
La letteratura dedicata alla Corpus Linguistics e in particolare ai metodi di raccolta
e codifica dei corpora insiste su due raccomandazioni circa le annotazioni
linguistiche:
1) che siano elettronicamente leggibili per poter garantire un accesso automatico e
flessibile al materiale linguistico;
2) che seguano standard di rappresentazione comuni e condivisi che garantiscano
la “portabilità” del corpus.
Tra i formati di rappresentazione linguistica, si è imposto da tempo come standard
in numerosi progetti nazionali ed internazionali l’XML (eXtensible Mark-up
Language), un metalinguaggio studiato per il web, che descrive linguaggi di mark-up,
definendo le etichette e la struttura. Tale linguaggio si presta molto bene ad
annotazioni multilivello, in particolar modo al tagging di livelli dotati di una buona
‘struttura’ e rappresentabili per componenti e categorie ‘gerarchizzate1’. Inoltre, esso
permette e facilita lo scambio dei dati anche con altri programmi a patto che si
dichiari all’inizio il significato delle estensioni effettuate nel documento attraverso la
pubblicazione della DTD.
2. LA DTD
La DTD (Document Type Definition) è l’insieme delle regole di definizione dei
tags ed indica gli elementi e il loro ordine nel documento XML.
1
Savy R., Castagneto M. (2006) Funzioni comunicative e categorie d’analisi pragmatica: dal testo dialogico allo
schema Xml e viceversa, in stampa.
3
Gli elementi (<ELEMENTS>) sono nodi dell’albero e presentano dei Contents ,
cioè ciò di cui sono/o possono essere costituiti, cioè altri <ELEMENTS> o testo
(<PCDATA>); nel secondo caso si parla di “elementi foglia” dell’albero (cioè nodi
che non ramificano).
L’elemento che contiene tutti gli altri è detto “nodo radice”.
Nella lista dei Contents il segno ‘+’ sta ad indicare “una sequenza di uno o più
contenuti”; il segno ‘*’ indica invece “una o più scelte tra i contenuti’, vale a dire
contenuti in alternativa.
Ogni elemento può inoltre ricevere degli “attributi” che svolgono la funzione di
specificare le caratteristiche dell’elemento a cui si riferiscono; essi sono specificati in
una <ATTLIST> (cioè una lista di attributi) che varia a seconda dell’elemento
considerato.
Gli attributi possono essere obbligatori (REQUIRED) o facoltativi (IMPLIED) ed
avere valori bouleiani (vero/falso) o assumere valori diversi elencati per ciascun
attributo.
2.1. Descrizione delle DTD per Pra.Ti.D
La DTD per l’annotazione pragmatica di Pra.Ti.D traduce in una struttura rigida le
gerarchie stabilite nello schema a livelli (cfr. il documento “PraTiD_Normario per
l'annotazione pragmatica”).
In sostanza essa considera il nostro schema come un albero in cui i vari livelli sono
trattati, a seconda dei casi, come “ELEMENTI” del testo o “ATTRIBUTI” degli
elementi stessi.
• le categorie di primo livello costituiscono gli ELEMENTS; tra questi le Mosse
Autonome non hanno attributi (all’infuori di un ID), mentre le Mosse di
Apertura e Chiusura sono analizzabili in Attributi di:
• move_type (tipi di mossa), corrispondenti alle categorie di secondo livello;
• move_spec (specificatori di mossa), corrispondenti alle mosse terminali di
terzo livello.
4
2.1.1 Elementi
Il nodo radice è DIALOG
<!ELEMENT dialog (turn+)>
costituito di uno o più turni dialogici
L’Element TURN è costituito da una o più classi di primo livello (Autonome, di
Apertura, di Chiusura):
<!ELEMENT turn (UNP*|SelfTalk*|Interruption*|Ready*|Comment*|Extra*|
TR_Begin*|Open*|TR_Closure*|End*|Shift_Begin*|
Shift_Closure*)+>
Gli Elements : <UNP>, <SelfTalk>, <Interruption>, <Ready>, <Comment> ed
<extra> (ossia le Mosse Autonome) presentano tutti il content (#PCDATA)> sono
quindi foglie, non ramificanti che contengono informazione testuale.
Gli Elements : < TR_Begin>, <Open>, <TR_Closure>, <End>, <Shift_Begin> ed
<Shift_Closure> (ossia le Mosse di Apertura e Chiusura) presentano tutti il content
(#PCDATA)> sono quindi foglie, non ramificanti che contengono informazione
testuale.
La differenza tra mosse Autonome e Mosse di Apertura/Chiusura risiede nella
assenza/presenza di attributi che completano lo schema.
2.1.2 Attributi
Il nodo DIALOG presenta come unico attributo un ID, cioè un codice
Identificativo obbligatorio, rappresentato dal nome del dialogo:
<!ATTLIST dialog
dialog_id CDATA #REQUIRED
5
Es:
<dialog dialog_id="DGtdA01L">
L’elemento TURN prevede come attributo,
- oltre l’ID (obbligatorio e corrispondente al codice di turno adoperato nella
trascrizione ortografica),
- il “numero di mosse” contenute nel turno (obbligatorio e rappresentato da un
indice numerico),
- una notazione addizionale ‘add’ che include la lista dei valori attribuibili al turno
(change_on | change_off | skipped) marcati #IMPLIED (cioè non obbligatori ma
inseribili quando la circostanza lo richiede).
1. Es di turn senza valore aggiuntivo:
<turn turn_id="P1#1" n_of_moves="3">
2. Es. Di turno con valore aggiuntivo
<turn turn_id="p1#29" add="skipped" n_of_moves="3">
ATTENZIONE:
Gli attributi di DIALOG e TURN sono pensati come note dell’operatore che marcano
le caratteristiche dell’elemento. Tali note non devono essere confuse con le mosse
pragmatiche che invece marcano la funzione,che un segmento svolge all’interno del
contesto, quindi marcano l’intenzione comunicativa dei parlanti, non evidenziata
dalle note dell’annotatore.
Gli attributi degli altri elementi (cfr sotto) posseggono invece valori che ne
specificano la funzione e corrispondono a mosse pragmatiche.
Gli Elementi UNP, SELF TALK, INTERRUPTION, READY, COMMENT ed
EXTRA
(ossia le mosse autonome) prevedono nell’ATTLIST solo un move_ID, ossia il
numero progressivo della mossa.
6
Es: <UNP move_id="13">
Gli Element TR_BEGIN e SHIFT_BEGIN presentano come ATTLIST:
- move_id: che (come per i precedenti <Element>) specifica il numero progressivo
e sequenziale della mossa ed è obbligatorio;
es: <TR_Begin move_id="1"
- move_type: che specifica il tipo di mossa ed ha come valori alternativi
Influencing, Question o Null, cioè alcune delle categorie di 2° livello, anch’esso
obbligatorio;
es: <TR_Begin move_id="1" move_type="influencing"
- move_spec: che identifica lo specificatore di mossa ed ha come valori alternativi
Action_Dir, Open_Option, Explain, Check, Query_Y, Query_W, Info_Req, cioè
alcune delle mosse del 3° livello. Quest’ultimo attributo è #IMPLIED, cioè non
obbligatorio (non va inserito nel caso del Null).
es con specificatore:
<TR_Begin move_id="1"move_type="influencing"move_spec="open_option">
es senza move spec:
<TR_Begin move_id="13" move_type="null">
Gli elementi TR_CLOSURE e SHIFT_ CLOSURE presentano come ATTLIST:
- move_id:
- move_type: che può assumere valori Understanding o Answer cioè alcune delle
mosse di 2° livello, anch’esso obbligatorio;
es: <TR_ Closure move_id="1" move_type="understanding"
- move_spec: che può assumere valori Over, Acknowledge, Repeat_Rephrase,
Fatic, Continue, Clarify, Reply_Y, Reply_N, Reply_W, Reply, cioè alcune delle mosse
del 3° livello. In questo caso l’attributo è #REQUIRED cioè obbligatorio e va inserito
sempre.
7
es:
<TR_Closure
move_id="11"
move_type="understanding"
move_spec="over">
L’Element OPEN prevede come ATTLIST:
- move_id;
- move_type: che può assumere valori Influencing o Question, ed è obbligatorio:
es: <Open move_id="15" move_type="question" "
- move_spec: che può assumere valori Action_Dir, Open_Option, Explain, Align,
Check, Query_Y, Query_W, Info_Req ed è obbligatorio
es: <Open move_id="15" move_type="question" move_spec="query_y">
Infine, l’Elemento END presenta come ATTLIST:
- move_id;
- move_type: con valori Understanding, Answer, obbligatorio;
es: <End move_id="16" move_type="answer"
- move_spec: con valori Over, Acknowledge, Repeat_Rephrase, Fatic, Continue,
Not_Ready, Clarify, Reply_Y, Reply_N, Reply_W, Reply, Hold, Object, Correct,
obbligatorio:
es: <End move_id="16" move_type="answer" move_spec="reply_y">
3. LA PROCEDURA DI ANNOTAZIONE
Ogni documento XML presenta un prologo iniziale contenente una dichiarazione
di versione
<?xml version="1.0" encoding="utf-8"?>
e la dichiarazione della DTD utilizzata
<!DOCTYPE dialog SYSTEM "pragma_vers3.dtd">
8
Il primo tag da aprire è l’elemento radice cui vanno aggiunti gli attributi, come
nell’esempio:
<dialog dialog_id="DGtdA01L">.
Segue l’annotazione del turno con i suoi attributi
<turn turn_id="P1#1" n_of_moves="3">
<turn turn_id="p1#13" add="skipped" n_of_moves="2">.
A questo punto è necessario introdurre, partendo dal nodo turno, il tag per ciascuna
delle mosse in cui il turno è analizzato, aggiungendo i valori per ciascun attributo e
infine il testo:
<TR_Begin move_id="1" move_type="influencing" move_spec="open_option">
Marco andiamo di figura in figura</TR_Begin>.
Prima di proseguire con l’annotazione della mossa successiva, il tag
corrispondente, deve essere chiuso,
</TR_Begin>
Gli Elements TR_Closure, Open, End prevedono tutti le stesse azioni di
annotazione, ovviamente ognuno con i propri attributi e valori.
Esempi:
1.
<Open move_id="3"
sei?</Open>
move_type="question"
move_spec="align">ci
2.
<End move_id="5" move_type="answer" move_spec="reply_y">il cane
sì</End>
3.
<TR_Closure
move_id="11"
move_type="understanding"
move_spec="over">quindi l la prima differenza è questa</TR_Closure>
L’annotazione di TR_Begin e Shift_Begin, invece, prevede la non obbligatorietà
dell’attributo move_spec..
Esempio:
<TR_Begin move_id="13" move_type="null">allora le due gambe</TR_Begin>
9
Chiusa l’ultima mossa del turno è necessario chiudere anche il tag di turno
</turn>
Alla fine dell’annotazione di tutto il testo bisogna, invece, chiudere il tag dialogo:
</dialog>.
Un dialogo annotato secondo la DTD descritta precedentemente risulterà formato
come nell’esempio:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE dialog SYSTEM "PraTiD.dtd">
<dialog dialog_id="DGtdA01L">
<turn turn_id="P1#1" n_of_moves="3">
<TR_Begin move_id="1" move_type="influencing" move_spec="open_option">
Marco andiamo di figura in figura
</TR_Begin>
<Open move_id="2" move_type="influencing" move_spec="explain">
io parto col cane
</Open>
<Open move_id="3" move_type="question" move_spec="align">
ci sei?
</Open>
</turn>
<turn turn_id="p2#2" n_of_moves="2">
<End move_id="4" move_type="understanding" move_spec="acknowledge">
mh
</End>
</turn>
<turn turn_id="p1#3" n_of_moves="2">
<Ready move_id="6">
allora allora il
</Ready>
<Open move_id="7" move_type="question" move_spec="check">
/ la sua coda è dritta ?
</Open>
</turn>
10
<turn turn_id="p2#4" n_of_moves="2">
<End move_id="8" move_type="answer" move_spec="reply_n">
no
</End
<Open move_id="9" move_type="influencing" move_spec="explain">
è a uncino verso l'alto
</Open>
</turn>
<turn turn_id="p1#5" n_of_moves="2">
<End move_id="10" move_type="understanding" move_spec="acknowledge">
okay
</End>
<TR_Closure move_id="11" move_type="understanding" move_spec="over">
quindi l la prima differenza è questa
</TR_Closure>
</turn>
</dialog>
Alcuni suggerimenti:
Il documento deve essere accompagnato sempre dalla omonima DTD.
Un documento XML è definito Well-Formed se rispetta la forma che l’XML
impone es: tag aperti/chiusi, dichiarazioni, presenza di valori per gli attributi etc..:
invece, si definisce un documento Valido se rispetta le norme imposte e gerarchizzate
nella DTD.
Ad esempio se la mossa Open viene annotata come figlio di una mossa TR_Begin,
il documento risulterà non valido in quanto Open e TR_Begin sono entrambi degli
Element, figli entrambi del nodo Turn e, di conseguenza, non possono contenersi
l’uno nell’altro.
Gli attributi sia del turno che delle mosse vanno inseriti, obbligatoriamente,
nell’ordine esposto ossia:
turno:
• turn_id, n_ of moves;
• turn_id, add, n_ of moves (nel caso di un turno marcato dall’annotatore);
11
mosse TR_Closure, Open; End; Shift_Closure:
• move_ id, move_type, move_spec;
mossa TR_Begin, Shift_Begin:
• move_ id, move_type, move_spec. (quando presenti)
• move_ id, move_type, (in caso di mossa “Null”).
Bisogna sempre ricordare che ad un tag di apertura deve corrispondere un tag di
chiusura altrimenti il documento non risulterà ben formato.
12