jonorthwash / ud-annotatrix

GNU General Public License v3.0
59 stars 49 forks source link

Enhanced dependencies lost #397

Closed ftyers closed 3 years ago

ftyers commented 4 years ago

When adding trees with some enhanced dependencies they are lost when switching:

    # sent_id = Not_eating_larvae:2
# text = Гым нэмыӄэй нрзб это ны нырычваԓыӈыттыӄэнат нэмыӄэй гым нывинрэтигым нырычвантойгым.
# text[phon] = ɣəm neməqej нрзб это nə nərəswaɬəŋəttəqenat neməqej ɣəm nəwinretiɣəm nərəswantojɣəm
# text[rus] = Собирали личинок, я тоже помогала, доставала личинок.
# text[eng] = We were gathering the grubs, I also helped, I was extracting the grubs.
# labels = incomplete
1   Гым гым PRON    _   Number=Sing|Person=1|PronType=Pers  6   nsubj   _   Gloss=я
2   нэмыӄэй нэмыӄэй ADV _   _   _   _   _   Gloss=тоже
3   нрзб    _   X   _   _   6   discourse   _   Gloss=
4   это _   PART    _   _   6   discourse   _   Gloss=
5   ны  ны  X   _   _   6   reparandum  _   Gloss=FST
6   нырычваԓыӈыттыӄэнат _   VERB    _   _   0   root    _   Gloss=ST-личинка-CATCH-ST.3SG-PL
7   нэмыӄэй нэмыӄэй ADV _   _   9   advmod  _   Gloss=тоже
8   гым гым PRON    _   Number=Sing|Person=1|PronType=Pers  9   nsubj   _   Gloss=я
9   нывинрэтигым    винрэтык    VERB    _   _   6   parataxis   _   Gloss=ST-помогать-NP.1SG
10  нырычвантойгым  _   VERB    _   _   6   parataxis   _   Gloss=ST-личинка-вынимать-NP.1SG    
10.1    рычва   рычва   NOUN    _   _   _   _   10:obj  Gloss=личинка
11  .   .   PUNCT   _   _   6   punct   _   _           
keggsmurph21 commented 4 years ago

This is valid CoNLL-U? It looks like token 10.1 has the value 10:obj for deps but nothing for head. I was under the impression that a token needed a head in order to have deps (i.e., that deps was a superset of the info in head and deprel), although reading thru the spec I don't see an explicit answer.

The problem is that the part of the CoNLL-U parser that determines dependency relations bails out if the heads column is not set.

nschneid commented 4 years ago

From the spec: "Empty nodes must have non-empty ID and DEPS fields and empty fields (i.e. underscores) for HEAD and DEPREL, because they are only part of the enhanced dependency graph."

nschneid commented 4 years ago

In the normal case, where there is a HEAD/DEPREL, it is usually but not always the case that the edge is also included in the Enhanced representation.

As far as I'm concerned, it's simplest to think of Basic Dependencies as forming a tree and Enhanced Dependencies as forming a directed (possibly cyclic!) graph that may overlap with that tree, but need not fully subsume it.

keggsmurph21 commented 4 years ago

From the spec: "Empty nodes must have non-empty ID and DEPS fields and empty fields (i.e. underscores) for HEAD and DEPREL, because they are only part of the enhanced dependency graph."

Ah that makes a lot of sense, thanks! As I now understand it, an empty node must have an empty HEAD and nonempty DEPS. I'm still curious whether it's possible for a non-empty node to have an empty HEAD and nonempty DEPS.

For the empty node case, I can fix the parsing issue later today :^)

nschneid commented 4 years ago

The spec does say:

Further, in UD treebanks the UPOS, HEAD, and DEPREL columns are not allowed to be left unspecified.

The empty nodes are an exception to this (I've suggested it be more explicit: UniversalDependencies/docs/pull/698). So are multiword tokens, which

have a FORM value – the string that occurs in the sentence – but have an underscore in all the remaining fields except MISC

I think the answer to your question is no—only empty nodes will have empty HEAD and nonempty DEPS.

keggsmurph21 commented 4 years ago

I think the answer to your question is no—only empty nodes will have empty HEAD and nonempty DEPS.

Ok, I'll operate under that assumption for now. I'll post here once I make those changes. Thanks again for your help!

keggsmurph21 commented 4 years ago

@ftyers Let me know if this doesn't fix your issue :^)

jonorthwash commented 4 years ago

How does notatrix interact with this issue? Where js the validation done, and how do changes to notatrix get propagated?

ftyers commented 4 years ago

Works now! Captura de 2020-05-05 19-16-17

Although the enhanced deps should be shown differently, maybe in a different colour or something like being able to switch between basic and enhanced and:

  1. in basic, enhanced deps are with dotted lines
  2. in enhanced, basic deps are with dotted lines.
jonorthwash commented 4 years ago

Differentiation issue in #401.

keggsmurph21 commented 4 years ago

How does notatrix interact with this issue? Where js the validation done, and how do changes to notatrix get propagated?

Whenever there's a keystroke in the main textarea, we'll tell the app's corpus object to re-parse the contents of the textarea (that happens here).

This will eventually trigger notatrix to try to interpret a string. In this case, since the string is in CoNNL-U format, we'll end the code path in src/formats/conllu/parser.js. The function that actually parses the HEADs, etc. is this one. Then to display the interpreted string back to the user (i.e., to write into the textarea), we'll call into notatrix again, this time in src/formats/connlu/generator.js. The function that deals with toString()ing it is here.

Basically notatrix fills this role :^)

jonorthwash commented 4 years ago

@keggsmurph21, what about this part of the question?

how do changes to notatrix get propagated?

I meant, when notatrix is updated, how does that code find its way into this repo?

jonorthwash commented 4 years ago

Reported a couple hours ago on IRC by @IlnarSelimcan:

(22:07:52) selimcan: hmm I think I still observe this https://github.com/jonorthwash/ud-annotatrix/issues/397# mis-behaviour on this file https://github.com/taruen/apertium-kaz/blob/master/texts/puupankki/puupankki.kaz.conllu

jonorthwash commented 4 years ago

@IlnarSelimcan says the behaviour he's getting is enhanced dependencies being deleted.

keggsmurph21 commented 4 years ago

I meant, when notatrix is updated, how does that code find its way into this repo?

keggsmurph21 commented 4 years ago

@IlnarSelimcan says the behaviour he's getting is enhanced dependencies being deleted.

@IlnarSelimcan can you post a particular sentence that's misbehaving? The repo posted above contains quite a few :^)

IlnarSelimcan commented 4 years ago
ud-annotatrix$ git log | head
commit bf3992b6f4221efec4e82d279810541c637b1113
Author: Kevin Murphy <keggsmurph21@gmail.com>
Date:   Sun May 31 12:49:03 2020 -0700

    gui: Refocus #graph after deleting deprel

    Since we might be using BACKSPACE to delete the deprel, we want to
    make sure that we don't accidentally trigger a "back" page nav event
    for the client (a possible default action for Firefox users).

Then I typed npm install and then npm run dev-server.

This is how puupankki.kaz.conllu changes when I upload and then download it (without making any changes myself):

diff --git a/texts/puupankki/puupankki.kaz.conllu b/texts/puupankki/puupankki.kaz.conllu
index d527f60..a074752 100644
--- a/texts/puupankki/puupankki.kaz.conllu
+++ b/texts/puupankki/puupankki.kaz.conllu
@@ -1,16 +1,3 @@
-# sent_id = Eurovision_ән_конкурсы_2010.tagged.txt:1:0
-# text = Еуровидение 2010 ән конкурсы Еуровидениенің 55-ші конкурсы болады.
-# labels = checked_IFS
-1  Еуровидение Еуровидение PROPN   np  Case=Nom    4   nmod:poss   _   _
-2  2010    2010    NUM num NumType=Ord 4   amod    _   _
-3  ән  ән  NOUN    n   Case=Nom    4   nmod:poss   _   _
-4  конкурсы    конкурс NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  7   nsubj   _   _
-5  Еуровидениенің  Еуровидение PROPN   np  Case=Gen    7   nmod:poss   _   _
-6  55-ші   55  NUM num NumType=Ord 7   amod    _   _
-7  конкурсы    конкурс NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  0   root    _   _
-8  болады  бол AUX v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin    7   cop _   SpaceAfter=No
-9  .   .   PUNCT   sent    _   7   punct   _   _
-
 # sent_id = әртүрлі.tagged.txt:1:0
 # text = Қой, қазақ бұлармен не ғып соғыса алсын?
 # labels = checked_IFS
@@ -5047,14 +5034,14 @@
 # sent_id = kdt.tagged.txt:71:1154
 # text = Мұның арты үлкен дүрбелеңге шаппасын кім біледі?
 # labels = checked_IFS
-1  Мұның   бұл PRON    prn Case=Gen|PronType=Dem   2   nmod:poss   2:nmod:poss _
-2  арты    арт NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  5   nsubj   5:nsubj _
-3  үлкен   үлкен   ADJ adj _   4   acl 4:acl   _
-4  дүрбелеңге  дүрбелең    NOUN    n   Case=Dat    5   obl 5:obl   _
-5  шаппасын    шап VERB    v   Case=Acc|Number[psor]=Plur,Sing|Person[psor]=3|Polarity=Neg|Tense=Fut|VerbForm=Ger  7   ccomp   7:ccomp _
-6  кім кім PRON    prn Case=Nom|PronType=Int   7   nsubj   7:nsubj _
-7  біледі  біл VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin    0   root    0:root  SpaceAfter=No
-8  ?   ?   PUNCT   sent    _   7   punct   7:punct _
+1  Мұның   бұл PRON    prn Case=Gen|PronType=Dem   2   nmod:poss   _   _
+2  арты    арт NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  5   nsubj   _   _
+3  үлкен   үлкен   ADJ adj _   4   acl _   _
+4  дүрбелеңге  дүрбелең    NOUN    n   Case=Dat    5   obl _   _
+5  шаппасын    шап VERB    v   Case=Acc|Number[psor]=Plur,Sing|Person[psor]=3|Polarity=Neg|Tense=Fut|VerbForm=Ger  7   ccomp   _   _
+6  кім кім PRON    prn Case=Nom|PronType=Int   7   nsubj   _   _
+7  біледі  біл VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin    0   root    _   SpaceAfter=No
+8  ?   ?   PUNCT   sent    _   7   punct   _   _

 # sent_id = kdt.tagged.txt:72:1171
 # text = Ағасы болмаса, бұ қызда не жазық бар еді?..
@@ -5184,14 +5171,14 @@
 # sent_id = kdt.tagged.txt:80:1365
 # text = Мұның бәрі оған құдайдың бұйырған жұмысы тәрізді.
 # labels = checked_IFS
-1  Мұның   бұл PRON    prn Case=Gen|PronType=Dem   2   nmod:poss   2:nmod:poss _
-2  бәрі    бәрі    PRON    prn Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3|PronType=Qnt 6   nsubj   6:nsubj _
-3  оған    ол  PRON    prn Case=Dat|Number=Sing|Person=3|PronType=Prs  5   obl 5:obl   _
-4  құдайдың    құдай   NOUN    n   Case=Gen    5   nsubj   5:nsubj _
-5  бұйырған    бұйыр   VERB    v   Tense=Past|VerbForm=Part    6   acl:relcl   6:acl:relcl _
-6  жұмысы  жұмыс   NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  7   csubj   7:csubj _
-7  тәрізді тәрізді ADP post    _   0   root    0:root  SpaceAfter=No
-8  .   .   PUNCT   sent    _   7   punct   7:punct _
+1  Мұның   бұл PRON    prn Case=Gen|PronType=Dem   2   nmod:poss   _   _
+2  бәрі    бәрі    PRON    prn Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3|PronType=Qnt 6   nsubj   _   _
+3  оған    ол  PRON    prn Case=Dat|Number=Sing|Person=3|PronType=Prs  5   obl _   _
+4  құдайдың    құдай   NOUN    n   Case=Gen    5   nsubj   _   _
+5  бұйырған    бұйыр   VERB    v   Tense=Past|VerbForm=Part    6   acl:relcl   _   _
+6  жұмысы  жұмыс   NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  7   csubj   _   _
+7  тәрізді тәрізді ADP post    _   0   root    _   SpaceAfter=No
+8  .   .   PUNCT   sent    _   7   punct   _   _

 # sent_id = kdt.tagged.txt:81:1382
 # text = Бұл — құдайдың бұйрығы.
@@ -5473,14 +5460,14 @@
 # sent_id = kdt.tagged.txt:108:1747
 # text = Мен саған тағы керек болмасымды қайдан білесің?
 # labels = checked_IFS
-1  Мен мен PRON    prn Case=Nom|Number=Sing|Person=1|PronType=Prs  4   nsubj   4:nsubj _
-2  саған   сен PRON    prn Case=Dat|Number=Sing|Person=2|PronType=Prs  4   obl 4:obl   _
-3  тағы    тағы    ADV adv _   4   advmod  4:advmod    _
-4  керек   керек   ADJ adj _   7   ccomp   7:ccomp _
-5  болмасымды  бол AUX v   Case=Acc|Number[psor]=Sing|Person[psor]=1|Polarity=Neg|Tense=Fut|VerbForm=Ger   4   cop 4:cop   _
-6  қайдан  қайдан  ADV adv PronType=Int    7   advmod  7:advmod    _
-7  білесің біл VERB    v   Mood=Ind|Number=Sing|Person=2|Tense=Aor|VerbForm=Fin    0   root    0:root  SpaceAfter=No
-8  ?   ?   PUNCT   sent    _   7   punct   7:punct _
+1  Мен мен PRON    prn Case=Nom|Number=Sing|Person=1|PronType=Prs  4   nsubj   _   _
+2  саған   сен PRON    prn Case=Dat|Number=Sing|Person=2|PronType=Prs  4   obl _   _
+3  тағы    тағы    ADV adv _   4   advmod  _   _
+4  керек   керек   ADJ adj _   7   ccomp   _   _
+5  болмасымды  бол AUX v   Case=Acc|Number[psor]=Sing|Person[psor]=1|Polarity=Neg|Tense=Fut|VerbForm=Ger   4   cop _   _
+6  қайдан  қайдан  ADV adv PronType=Int    7   advmod  _   _
+7  білесің біл VERB    v   Mood=Ind|Number=Sing|Person=2|Tense=Aor|VerbForm=Fin    0   root    _   SpaceAfter=No
+8  ?   ?   PUNCT   sent    _   7   punct   _   _

 # sent_id = kdt.tagged.txt:109:1764
 # text = Сен бұл жолдан аман-есен қайтарсың, еліңе аман барарсың... — деді.
@@ -5504,12 +5491,12 @@
 # sent_id = kdt.tagged.txt:110:1795
 # text = Кімді әлдилеп, сыбырлап тұрсыңдар?
 # labels = checked_IFS
-1  Кімді   кім PRON    prn Case=Acc|PronType=Int   2   obj 2:obj   _
-2  әлдилеп әлдиле  VERB    v   Aspect=Perf|VerbForm=Conv   4   advcl   4:advcl SpaceAfter=No
-3  ,   ,   PUNCT   cm  _   4   punct   4:punct _
-4  сыбырлап    сыбырла VERB    v   Aspect=Perf|VerbForm=Cov    0   root    0:root  _
-5  тұрсыңдар   тұр AUX vaux    Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin   4   aux 4:aux   SpaceAfter=No
-6  ?   ?   PUNCT   sent    _   4   punct   4:punct _
+1  Кімді   кім PRON    prn Case=Acc|PronType=Int   2   obj _   _
+2  әлдилеп әлдиле  VERB    v   Aspect=Perf|VerbForm=Conv   4   advcl   _   SpaceAfter=No
+3  ,   ,   PUNCT   cm  _   4   punct   _   _
+4  сыбырлап    сыбырла VERB    v   Aspect=Perf|VerbForm=Cov    0   root    _   _
+5  тұрсыңдар   тұр AUX vaux    Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin   4   aux _   SpaceAfter=No
+6  ?   ?   PUNCT   sent    _   4   punct   _   _

 # sent_id = kdt.tagged.txt:111:1808
 # text = Түн түнереді.
@@ -5588,12 +5575,12 @@
 # sent_id = kdt.tagged.txt:119:1900
 # text = Қорқақ аңдар, тілсіз жаулар!
 # labels = checked_IFS
-1  Қорқақ  қорқақ  ADJ adj _   2   amod    2:amod  _
-2  аңдар   аң  NOUN    n   Case=Nom|Number=Plur    0   root    0:root  SpaceAfter=No
-3  ,   ,   PUNCT   cm  _   2   punct   2:punct _
-4  тілсіз  тілсіз  ADJ adj _   5   amod    5:amod  _
-5  жаулар  жау NOUN    n   Case=Nom|Number=Plur    2   parataxis   2:parataxis SpaceAfter=No
-6  !   !   PUNCT   sent    _   2   punct   2:punct _
+1  Қорқақ  қорқақ  ADJ adj _   2   amod    _   _
+2  аңдар   аң  NOUN    n   Case=Nom|Number=Plur    0   root    _   SpaceAfter=No
+3  ,   ,   PUNCT   cm  _   2   punct   _   _
+4  тілсіз  тілсіз  ADJ adj _   5   amod    _   _
+5  жаулар  жау NOUN    n   Case=Nom|Number=Plur    2   parataxis   _   SpaceAfter=No
+6  !   !   PUNCT   sent    _   2   punct   _   _

 # sent_id = kdt.tagged.txt:120:1913
 # text = Қаш, маңыма жолама!
@@ -5692,36 +5679,36 @@
 # sent_id = kdt.tagged.txt:127:2052
 # text = Бір қырдан асқанда көлденең созылған сай килікті...
 # labels = checked_IFS
-1  Бір бір DET det PronType=Ind    2   det 2:det   _
-2  қырдан  қыр NOUN    n   Case=Abl    3   obl 3:obl   _
-3  асқанда ас  VERB    v   Case=Loc|Tense=Past|VerbForm=Ger    7   advcl   7:advcl _
-4  көлденең    көлденең    ADV adv _   5   advmod  5:advmod    _
-5  созылған    соз VERB    v   Tense=Past|VerbForm=Part|Voice=Pass 6   acl:relcl   6:acl:relcl _
-6  сай сай NOUN    n   Case=Nom    7   obj 7:obj   _
-7  килікті килік   VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    0:root  SpaceAfter=No
-8  ... ... PUNCT   sent    _   7   punct   7:punct _
+1  Бір бір DET det PronType=Ind    2   det _   _
+2  қырдан  қыр NOUN    n   Case=Abl    3   obl _   _
+3  асқанда ас  VERB    v   Case=Loc|Tense=Past|VerbForm=Ger    7   advcl   _   _
+4  көлденең    көлденең    ADV adv _   5   advmod  _   _
+5  созылған    соз VERB    v   Tense=Past|VerbForm=Part|Voice=Pass 6   acl:relcl   _   _
+6  сай сай NOUN    n   Case=Nom    7   obj _   _
+7  килікті килік   VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    _   SpaceAfter=No
+8  ... ... PUNCT   sent    _   7   punct   _   _

 # sent_id = kdt.tagged.txt:128:2069
 # text = Арғы қабақта жол жатыр.
 # labels = checked_IFS
-1  Арғы    ары ADV adv Case=Nom    2   amod    2:amod  _
-2  қабақта қабақ   NOUN    n   Case=Loc    3   obl 3:obl   _
-3  жол жол NOUN    n   Case=Nom    4   nsubj   4:nsubj _
-4  жатыр   жат VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin   0   root    0:root  SpaceAfter=No
-5  .   .   PUNCT   sent    _   4   punct   4:punct _
+1  Арғы    ары ADV adv Case=Nom    2   amod    _   _
+2  қабақта қабақ   NOUN    n   Case=Loc    3   obl _   _
+3  жол жол NOUN    n   Case=Nom    4   nsubj   _   _
+4  жатыр   жат VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin   0   root    _   SpaceAfter=No
+5  .   .   PUNCT   sent    _   4   punct   _   _

 # sent_id = kdt.tagged.txt:129:2080
 # text = Ағыны тас домалатқан тасты сайдың тар өзені екен.
 # labels = checked_IFS
-1  Ағыны   ағын    NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  7   nsubj   7:nsubj _
-2  тас тас NOUN    n   Case=Nom    3   obj 3:obj   _
-3  домалатқан  домалат VERB    v   Tense=Past|VerbForm=Part    5   acl:relcl   5:acl:relcl _
-4  тасты   тасты   ADJ adj _   5   amod    5:amod  _
-5  сайдың  сай NOUN    n   Case=Gen    7   nmod:poss   7:nmod:poss _
-6  тар тар ADJ adj _   7   amod    7:amod  _
-7  өзені   өзен    NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  0   root    0:root  _
-8  екен    е   AUX cop Evident=Fh|Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin 7   cop 7:cop   SpaceAfter=No
-9  .   .   PUNCT   sent    _   7   punct   7:punct _
+1  Ағыны   ағын    NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  7   nsubj   _   _
+2  тас тас NOUN    n   Case=Nom    3   obj _   _
+3  домалатқан  домалат VERB    v   Tense=Past|VerbForm=Part    5   acl:relcl   _   _
+4  тасты   тасты   ADJ adj _   5   amod    _   _
+5  сайдың  сай NOUN    n   Case=Gen    7   nmod:poss   _   _
+6  тар тар ADJ adj _   7   amod    _   _
+7  өзені   өзен    NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  0   root    _   _
+8  екен    е   AUX cop Evident=Fh|Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin 7   cop _   SpaceAfter=No
+9  .   .   PUNCT   sent    _   7   punct   _   _

 # sent_id = kdt.tagged.txt:130:2099
 # text = "Оны біз білмейміз-ау!" деген ойлар келді.
@@ -5811,20 +5798,20 @@
 # sent_id = kdt.tagged.txt:138:2210
 # text = Өткел жоқ.
 # labels = checked_IFS
-1  Өткел   өткел   NOUN    n   Case=Nom    2   nsubj   2:nsubj _
-2  жоқ жоқ ADJ adj _   0   root    0:root  SpaceAfter=No
-3  .   .   PUNCT   sent    _   2   punct   2:punct _
+1  Өткел   өткел   NOUN    n   Case=Nom    2   nsubj   _   _
+2  жоқ жоқ ADJ adj _   0   root    _   SpaceAfter=No
+3  .   .   PUNCT   sent    _   2   punct   _   _

 # sent_id = kdt.tagged.txt:139:2217
 # text = Жарты шақырымдай жерде бір дөңес көрінеді.
 # labels = checked_IFS
-1  Жарты   жарты   NOUN    n   Case=Nom    2   nummod  2:nummod    _
-2  шақырымдай  шақырым NOUN    n   _   3   amod    3:amod  _
-3  жерде   жер NOUN    n   Case=Loc    6   obl 6:obl   _
-4  бір бір DET det PronType=Ind    5   det 5:det   _
-5  дөңес   дөңес   NOUN    n   Case=Nom    6   nsubj   6:nsubj _
-6  көрінеді    көр VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin|Voice=Pass 0   root    0:root  SpaceAfter=No
-7  .   .   PUNCT   sent    _   6   punct   6:punct _
+1  Жарты   жарты   NOUN    n   Case=Nom    2   nummod  _   _
+2  шақырымдай  шақырым NOUN    n   _   3   amod    _   _
+3  жерде   жер NOUN    n   Case=Loc    6   obl _   _
+4  бір бір DET det PronType=Ind    5   det _   _
+5  дөңес   дөңес   NOUN    n   Case=Nom    6   nsubj   _   _
+6  көрінеді    көр VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin|Voice=Pass 0   root    _   SpaceAfter=No
+7  .   .   PUNCT   sent    _   6   punct   _   _

 # sent_id = kdt.tagged.txt:140:2232
 # text = Соған шығып ел көздемек.
@@ -5839,15 +5826,15 @@
 # text = Елсіз дала емсіз жарадай көрінеді.
 # labels = checked_IFS
 1-2    Елсіз   _   _   _   _   _   _   _   _
-1  ел  ел  NOUN    n   _   3   nmod    3:nmod  _
-2  сіз сыз ADP post    _   1   case    1:case  _
-3  дала    дала    NOUN    n   Case=Nom    7   nsubj   7:nsubj _
+1  ел  ел  NOUN    n   _   3   nmod    _   _
+2  сіз сыз ADP post    _   1   case    _   _
+3  дала    дала    NOUN    n   Case=Nom    7   nsubj   _   _
 4-5    емсіз   _   _   _   _   _   _   _   _
-4  ем  ем  NOUN    n   _   6   nmod    6:nmod  _
-5  сіз сыз ADP post    _   4   case    4:case  _
-6  жарадай жара    NOUN    n   _   7   obl 7:obl   _
-7  көрінеді    көр VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin|Voice=Pass 0   root    0:root  SpaceAfter=No
-8  .   .   PUNCT   sent    _   7   punct   7:punct _
+4  ем  ем  NOUN    n   _   6   nmod    _   _
+5  сіз сыз ADP post    _   4   case    _   _
+6  жарадай жара    NOUN    n   _   7   obl _   _
+7  көрінеді    көр VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin|Voice=Pass 0   root    _   SpaceAfter=No
+8  .   .   PUNCT   sent    _   7   punct   _   _

 # sent_id = kdt.tagged.txt:142:2258
 # text = Ай, қу дала!
@@ -5861,17 +5848,17 @@
 # sent_id = kdt.tagged.txt:143:2269
 # text = Бір мезгілде әлгі торғай жансыз тастай ағып түсті топ етіп.
 # labels = checked_IFS
-1  Бір бір DET det PronType=Ind    2   det 2:det   _
-2  мезгілде    мезгіл  NOUN    n   Case=Loc    8   obl 8:obl   _
-3  әлгі    әлгі    DET det PronType=Dem    4   det 4:det   _
-4  торғай  торғай  NOUN    n   Case=Nom    8   nsubj   8:nsubj _
-5  жансыз  жансыз  ADJ adj _   6   amod    6:amod  _
-6  тастай  тас NOUN    n   _   7   obl 7:obl   _
-7  ағып    ақ  VERB    v   Aspect=Perf|VerbForm=Conv   8   advcl   8:advcl _
-8  түсті   түс VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    0:root  _
-9  топ топ X   x   Case=Nom    10  dep 10:dep  _
-10 етіп    ет  VERB    v   Aspect=Perf|VerbForm=Conv   8   advcl   8:advcl SpaceAfter=No
-11 .   .   PUNCT   sent    _   8   punct   8:punct _
+1  Бір бір DET det PronType=Ind    2   det _   _
+2  мезгілде    мезгіл  NOUN    n   Case=Loc    8   obl _   _
+3  әлгі    әлгі    DET det PronType=Dem    4   det _   _
+4  торғай  торғай  NOUN    n   Case=Nom    8   nsubj   _   _
+5  жансыз  жансыз  ADJ adj _   6   amod    _   _
+6  тастай  тас NOUN    n   _   7   obl _   _
+7  ағып    ақ  VERB    v   Aspect=Perf|VerbForm=Conv   8   advcl   _   _
+8  түсті   түс VERB    v   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    _   _
+9  топ топ X   x   Case=Nom    10  dep _   _
+10 етіп    ет  VERB    v   Aspect=Perf|VerbForm=Conv   8   advcl   _   SpaceAfter=No
+11 .   .   PUNCT   sent    _   8   punct   _   _

 # sent_id = kdt.tagged.txt:144:2292
 # text = Ол торғайдың түскен жері қалың шөп.
@@ -14035,3 +14022,15 @@
 17 _   е   cop _   aor|p3|sg   16  cop _   _
 18 .   .   sent    _   _   16  punct   _   _

+# sent_id = Eurovision_ән_конкурсы_2010.tagged.txt:1:0
+# text = Еуровидение 2010 ән конкурсы Еуровидениенің 55-ші конкурсы болады.
+# labels = checked_IFS
+1  Еуровидение Еуровидение PROPN   np  Case=Nom    4   nmod:poss   _   _
+2  2010    2010    NUM num NumType=Ord 4   amod    _   _
+3  ән  ән  NOUN    n   Case=Nom    4   nmod:poss   _   _
+4  конкурсы    конкурс NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  7   nsubj   _   _
+5  Еуровидениенің  Еуровидение PROPN   np  Case=Gen    7   nmod:poss   _   _
+6  55-ші   55  NUM num NumType=Ord 7   amod    _   _
+7  конкурсы    конкурс NOUN    n   Case=Nom|Number[psor]=Plur,Sing|Person[psor]=3  0   root    _   _
+8  болады  бол AUX v   Mood=Ind|Number=Sing|Person=3|Tense=Aor|VerbForm=Fin    7   cop _   SpaceAfter=No
+9  .   .   PUNCT   sent    _   7   punct   _   _
\ No newline at end of file

Let me know if there is anything else I should do to help you reproduce it.

keggsmurph21 commented 4 years ago

@IlnarSelimcan

This is how puupankki.kaz.conllu changes when I upload and then download it (without making any changes myself):

I suspect that you just haven't enabled enhanced dependencies in the editor (clicking on the "tree icon" in the bottom right of the text area should do the trick :smile:).

Here's a gif of it working (correctly?) on my machine. Notice that it "hides" the dependencies at first, since the enhanced dependencies mode is off by default.

I think the ideal behavior would be to toggle this mode to "on" if the user inputs text with enhanced dependencies, but that's not currently implemented.

Can you let me know if that helps?

IlnarSelimcan commented 4 years ago

@IlnarSelimcan

This is how puupankki.kaz.conllu changes when I upload and then download it (without making any changes myself):

I suspect that you just haven't enabled enhanced dependencies in the editor (clicking on the "tree icon" in the bottom right of the text area should do the trick smile).

@keggsmurph21 Yes, that was the case :) But see below.

Here's a gif of it working (correctly?) on my machine. Notice that it "hides" the dependencies at first, since the enhanced dependencies mode is off by default.

I think the ideal behavior would be to toggle this mode to "on" if the user inputs text with enhanced dependencies, but that's not currently implemented.

That was my issue: I was inputting text (entire treebank, in fact) in which some of the sentences already had enhanced dependencies.

I agree that the toggling-on solution would be nice to have at some point.

For now I'll be working sentence by sentence ;)

Can you let me know if that helps?

jonorthwash commented 4 years ago

@keggsmurph21, this seems bad. The behaviour should be that nothing is deleted. The enhanced dependencies should just toggle whether they're displayed, not whether they're removed from the source or not. I'm reopening this issue because this really does need to be fixed. (Though maybe it's better to file against notatrix?)

jonorthwash commented 4 years ago
* bump the required version in `ud-annotatrix`'s `package.json` (e.g., [b3a1ab4](https://github.com/jonorthwash/ud-annotatrix/commit/b3a1ab40291f3c50c00b5a78a3fadf783a610a34)) and then update the dependencies via
  ```shell
  $ npm install --save-dev
  ```

So to get this to happen at https://jonorthwash.github.io/ud-annotatrix/ , this needs to be done locally and then all the updates get pushed to the repo?

keggsmurph21 commented 4 years ago

So to get this to happen at https://jonorthwash.github.io/ud-annotatrix/ , this needs to be done locally and then all the updates get pushed to the repo?

I thought the github.io site just served up whatever was on master from this repo? If that's the case, it shouldn't require any special deployment.

jonorthwash commented 4 years ago

So to get this to happen at https://jonorthwash.github.io/ud-annotatrix/ , this needs to be done locally and then all the updates get pushed to the repo?

I thought the github.io site just served up whatever was on master from this repo? If that's the case, it shouldn't require any special deployment.

It does. Then how do we get the latest notarix into this repo?