Rozšíření TrEdu pro anotaci diskurzu

Podpora pro anotaci diskurzu užívá rozšíření TrEdu discourse a nondeprel (non-dependency relations annotation).

Jednoduchý návod k instalaci a použití:

Instalace:

TrEd instalujte ze stránky http://ufal.mff.cuni.cz/tred/
Nainstalujte rozšíření “discourse” - “Discourse Annotation” (Setup → Manage Extensions)

Pro zobrazení skupin uzlů je potřeba nainstalovat perlovou knihovnu Graph::Kruskal.
V Linuxu se to provádí takto:
sudo -s
# cpan -i Graph::Kruskal
Prikaz cpan se při prvním spuštění vyptá na různé věci, většinou to stačí odentrovat.
Nová verze TrEdu (2.*) pro Windows používá Strawberry Perl. Tam se moduly instalují podle návodu z webu takto: “Run “CPAN client” from Strawberry entry in Start menu. Type “install Module::Name” there.”

Ovládání zobrazení:

Pro zobrazení vět, stromů a diskurzních šipek existují tři přednastavené módy, které se přepínají těmito klávesovými zkratkami:
Alt+b - bridging mode - vidět je jeden strom, velké množství kontextových vět vpřed i vzad, šipky: koreference, bridging
Alt+d - pure discourse mode - vidět jsou dva stromy vzad a jeden vpřed, deset vět vzad a pět vpřed, šipky: čistě diskurzní (čili ne koref. a bridging)
Alt+f - full discourse mode - vidět jsou dva stromy vzad a jeden vpřed, deset vět vzad a pět vpřed, šipky: všechny

Zobrazení jednotlivých druhů šipek je možno ovládat nezávisle na přednastaveném módu takto:
Ctrl+b - přepne zobrazení bridging anafory
Ctrl+r - přepne zobrazení gramatické koreference
Ctrl+t - přepne zobrazení textové koreference
Ctrl+d - přepne zobrazení čistě diskurzních šipek

Zobrazení se týká nejen šipek, ale rovněž barevného zvýraznění slov v kontextových větách.

s - vybere zdroj (anotátora), jehož šipky se mají zobrazovat
H (Shift+h) - schová/zobrazí zdroj anotace (anotátora) u typu, rozsahu a komentáře šipky

Ctrl+T (Ctrl+Shift+t) - přepne zobrazení překladu t_lemmatu (obsahu atributu t_lemma_trans) u t-uzlů
Ctrl+I (Ctrl+Shift+i) - přepne zobrazení id u kořene stromu
Ctrl+G (Ctrl+Shift+g) - přepne zobrazování gramatémů/a-forem/ničeho u t-uzlů

Editace diskurzních šipek:

Aktuální uzel se vybírá kliknutím na uzel ve stromech nebo kliknutím na slovo ve větách. Existující skupinu uzlů je rovněž možno vybrat kliknutím na ni.
mezera - přepne označení budoucího cílového uzlu/skupiny diskurzní šipky; možno postupně vybrat více uzlů a skupin; používá se též pro výběr uzlů pro vytvoření skupiny
Ctrl+levé tlačítko na uzlu - podobně jako mezera, zapamatuje si/zapomene tekto-uzel; nemění aktuální uzel
Ctrl+levé tlačítko na slově ve větách - podobně jako mezera, zapamatuje si/zapomene příslušný tekto-uzel; nemění aktuální uzel
Ctrl+mezera - přepne označení u všech uzlů v podstromu aktuálního uzlu (včetně)
Shift+levé tlačítko na slově ve větách - zapamatuje si/zapomene jedno slovo pro následné nastavení konektoru (narozdíl od mezery, takto lze vybrat i samostatnou předložku či cokoliv, co nemá reprezentaci na tekto-rovině)
f (forget) - ruční zapomenutí všech označených uzlů a skupin
d (discourse) - vloží diskurzní šipku (šipky) z aktuální skupiny či aktuálního uzlu do zapamatovaného uzlu či skupiny (či zapamatovaných uzlů a skupin); zobrazí se dialogové okno pro vložení typu, který je v případě více cílů společný; u první vytvářené šipky po spuštění TrEdu se zobrazí okno pro vložení zdroje anotace (vkládáme iniciály anotátorky; u dalších vložených šipek se naposledy vložená hodnota použije automaticky)
D (Discourse) - vloží diskurzní šipku (šipky) z aktuální skupiny či aktuálního uzlu bez určení cílového uzlu
E (Entrel) - vloží diskurzní šipku (šipky) typu Entrel z aktuální skupiny či aktuálního uzlu do zapamatovaného uzlu či skupiny (či zapamatovaných uzlů a skupin)
A (question-Answer) - vloží diskurzní šipku (šipky) typu question-answer z aktuální skupiny či aktuálního uzlu do zapamatovaného uzlu či skupiny (či zapamatovaných uzlů a skupin)
l (list) - vloží diskurzní šipku (šipky) typu list (seznam) z aktuální skupiny či aktuálního uzlu do zapamatovaného uzlu či skupiny (či zapamatovaných uzlů a skupin)
c (comment) - vložení komentáře k diskurzní šipce vedoucí z aktuálního uzlu; zobrazí se dialogové okno pro jeho vložení; existuje-li více šipek vedoucích z aktuálního uzlu, nejprve se zobrazí okno s jejich seznamem, které umožní výběr té správné šipky
r (re-type) - změna typu šipky vedoucí z aktuálního uzlu; zobrazí se dialogové okno pro jeho vložení; existuje-li více šipek vedoucích z aktuálního uzlu, nejprve se zobrazí okno s jejich seznamem, které umožní výběr té správné šipky
o - změna zdroje (atributu src) šipky vedoucí z aktuálního uzlu; zobrazí se dialogové okno pro jeho vložení; existuje-li více šipek vedoucích z aktuálního uzlu, nejprve se zobrazí okno s jejich seznamem, které umožní výběr té správné šipky; naposledy vložená hodnota se použije u dalších vytvářených šipek
M - přepnutí vlastnosti šipky is_implicit; pokud je nastaven, zobrazuje se jako suffix _Imp za diskurzním typem; jeho nastavení na 1 způsobí automatické vyvolání makra pro vložení hodnoty atributu connective_inserted
a - přepnutí vlastnosti šipky is_secondary
t - přepnutí vlastnosti šipky is_negated
I - vložení textové podoby konektoru, pokud standardně anotovaný konektor chybí (u implicitních vztahů) nebo je špatně; pokud je vyplněn, zobrazuje se u počátečního uzlu šipky za “connective_ins:”
p - přepnutí vlastnosti šipky is_NP; pokud je nastaveno na 1, zobrazuje se jako suffix _NP za diskurzním typem
P (is Compositional) - přepnutí vlastnosti šipky is_compositional; pokud je nastaveno na 1, zobrazuje se jako suffix _CP (Compositional Phrase) za nápisem connective
w, e - nastavení rozsahu výchozího a cílového argumentu
x - smazání šipky vedoucí z aktuálního uzlu; existuje-li více šipek vedoucích z aktuálního uzlu, nejprve se zobrazí okno s jejich seznamem, které umožní výběr té správné šipky
n - nastavení označených (pomocí mezery) uzlů jako konektorů diskurzní šipky vedoucí z aktuálního uzlu; pokud z akt. uzlu vede více šipek, uživatel je požádán o vybrání té správné; konektor (povrchové vyjádření) se pak zobrazí v bublině, když se myš na chvíli zastaví nad příslušnou šipkou
m - nastavení označených (pomocí mezery) uzlů jako rozšířené množiny konektorů diskurzní šipky vedoucí z aktuálního uzlu (rozšířený sekundární konektor); pokud z akt. uzlu vede více šipek, uživatel je požádán o vybrání té správné; rozšířený konektor (povrchové vyjádření) se pak zobrazí v bublině, když se myš na chvíli zastaví nad příslušnou šipkou
v - otočí šipku vedoucí z aktuálního uzlu (zamění výchozí a cílový uzel); v případě více šipek zobrazí seznam pro výběr

Práce se skupinami uzlů:

Uzly i z různých stromů je možno seskupovat, diskurzní šipky je možno vést jak mezi jednotlivými uzly, tak mezi skupinami, či kombinovaně - to je reprezentováno diskurzní šipkou vedoucí z/do reprezentujícího uzlu skupiny. Reprezentující uzel skupiny se určí takto:
- v případě, že skupinu tvoří uzly z více stromů, reprezentující uzel skupiny je vždy v nejlevějším stromě
- při rozhodování mezi uzly z jednoho stromu je reprezentující uzel první v průchodu do hloubky
g (group) - vytvoří skupinu z označených uzlů
Ctrl+g - zruší vybranou skupinu
Šipky, které končí či začínají ve skupině uzlů, opticky i datově končí či začínají v reprezentujících uzlech skupin.
V datech je to reprezentováno atributy start_group_id a target_group_id u diskurzní šipky.

Ostatní:

Ctrl+c (comment) - vložení diskurzního komentáře k celému uzlu (bez ohledu na šipky)
F (discourse Feature) - vložení hodnoty atributu discourse_feature
G - vložení hodnoty atributu discourse_macrostructure
Ctrl+k ('k'ompatkní zobrazení) - přepne kompaktní zobrazení uzlů
u ('u'nfold) - ručně rozbalí/znovu sbalí aktuální uzel (v kolapsovaném zobrazení uzlů)
h - vložení hodnoty atributu discourse_special (zastaralé, nahrazeno atributy discourse_feature a discourse_macrostructure)
j - nastaví typ vztahu, který jinak neznačíme, protože nemá oba argumenty finverbální, u aktuálního uzlu (což by měl být hlavní uzel sekundárního konektoru)
k - nastaví příznak negace u vztahu, který jinak neznačíme, protože nemá oba argumenty finverbální, u aktuálního uzlu (což by měl být hlavní uzel sekundárního konektoru)
Ctrl+A (Analytical) - zobrazí analytické stromy (zpět: Ctrl+R (Return))
z - zobrazí seznam žánrů a umožní tak vybrat žánr dokumentu

Makra pro projekt projekce šipek PDTB3 do pražského formátu:

X - smaže šipku PDTB3 vedoucí z aktuálního uzlu (dotáže se, pokud je jich víc)
2 - nastaví začátek commentu (pražské) diskurzní šipky na PHASE:2 MANUAL
3 - manuální nastavení odpovídajícího sense PDTB3 pro (pražskou) diskurzní šipku (nastavuje atribut sense_PDTB3_manual) - mělo by se použít pouze pokud správný sense nejde odvodit automaticky z diskurzního typu
S - manuální nastavení odpovídajícího sense PDTB3 pro (pražskou) diskurzní šipku (nastavuje atribut sense_PDTB3_manual) a zároveň do atributu comment přidá PHASE:3 RESENSED plus info, který sense se změnil na jaký - mělo by se použít pouze pokud správný sense nejde odvodit automaticky z diskurzního typu
C - nastaví začátek commentu (pražské) diskurzní šipky na PHASE:3 TYPECHECKED, což znamená, že typ byl zkontrolován (a nezměněn) a - pokud není nastaveno sense_PDTB3_manual, sense jde odvodit z diskurzního typu automaticky
R - změna diskurzního typu šipky; zároveň do atributu comment přidá PHASE:3 RETYPED plus info, který disk. typ se změnil na jaký
T - vytvoří pražskou šipku podle šipky PDTB3 (kterou smaže), comment nastaví na PHASE:1 MANUALLY-FROM-PDTB; v případě NoRel nastaví atribut discourse_macrostructure
6 - změní startovní uzel diskurzní či PDTB3 šipky na zapamatovaný uzel či zapamatovanou skupinu; dá vybrat šipku, pokud jich z aktuálního uzlu vede víc
7 - změní cílový uzel diskurzní či PDTB3 šipky na zapamatovaný uzel či zapamatovanou skupinu; dá vybrat šipku, pokud jich z aktuálního uzlu vede víc