Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADDCOHORT hangs #137

Open
flammie opened this issue Dec 29, 2023 · 1 comment
Open

ADDCOHORT hangs #137

flammie opened this issue Dec 29, 2023 · 1 comment

Comments

@flammie
Copy link

flammie commented Dec 29, 2023

this was discussed in irc before christmas by @lynnda-hill:

$ cd github/giellalt/lang-smj && make
$ echo Dan maŋŋela la Sámedigge giellastivrra ja fylkka bálkáv vaddám. | hfst-tokenise -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/tokeniser-gramcheck-gt-desc.pmhfst'  | divvun-blanktag '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/analyser-gt-whitespace.hfst'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/../../src/cg3/valency.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/../../tools/tokenisers/mwe-dis.cg3'  | cg-mwesplit  | divvun-cgspell -n 10 -b 15.000000 -w 5000.000000 -u 0.400000 -l '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/acceptor.default.hfst' -m '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/errmodel.default.hfst'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/valency-postspell.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/./grc-disambiguator.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/./spellchecker.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/after-speller-disambiguator.cg3' 
"<Dan>"
	"dat" Pron <smj> <smj> Dem Sg Gen <W:0.0> SELECT:2630:GenPo SUBSTITUTE:4194 SUBSTITUTE:4188
;	"Da" N Prop Sem/Org Ess <W:0.0> SELECT:2630:GenPo
;	"Da" N Prop Sem/Org Sg Ine <W:0.0> SELECT:2630:GenPo
;	"Dan" N Prop Sem/Mal Attr <W:0.0> REMOVE:1816
;	"Dan" N Prop Sem/Mal Sg Nom <W:0.0> REMOVE:1816
;	"dat" Pron Dem Sg Err/Infl Ela Attr <W:0.0> SELECT:2630:GenPo
;	"dat" Pron Dem Sg Gen Attr <W:0.0> SELECT:2630:GenPo REMOVE:2168
;	"dat" Pron Dem Sg Ill Attr <W:0.0> SELECT:2630:GenPo
;	"dat" Pron Dem Sg Ine Attr <W:0.0> SELECT:2630:GenPo
: 
"<maŋŋela>"
	"maŋŋela" Po <smj> <smj> <W:0.0> SELECT:2842 SUBSTITUTE:4192 SUBSTITUTE:4186
;	"maŋŋel" N Sem/Dummytag Sg Gen <W:0.0> SELECT:2842
;	"maŋŋela" Adv <W:0.0> SELECT:2842
;	"maŋŋela" Pr <W:0.0> SELECT:2842
: 
"<la>"
	"liehket" V <smj> <smj> IV Ind Prs Sg2 <W:0.0> MAP:3350 SUBSTITUTE:4189 @+FAUXV SUBSTITUTE:4183
	"liehket" V <smj> <smj> IV Ind Prs Sg3 <W:0.0> MAP:3350 SUBSTITUTE:4189 @+FAUXV SUBSTITUTE:4183
;	"liehket" V IV Ind Prs ConNeg <W:0.0> REMOVE:3098
: 
"<Sámedigge>"
	"Sámedigge" N <smj> <smj> Prop Sem/Org Sg Nom <W:0.0> SELECT:3258 SUBSTITUTE:4187 SUBSTITUTE:4181
;	"sámedigge" N Sem/Build_Org Sg Nom <W:0.0> SELECT:3258
;	"digge" N Sem/Org Sg Nom <W:0.0>
;		"sábme" N Sem/Hum_Lang Cmp/SgGen Cmp <W:0.0> REMOVE:2110:longest-match
;	"digge" N Sem/Org Sg Nom <W:0.0>
;		"sáme" A Cmp/Attr Cmp <W:0.0> REMOVE:2110:longest-match
;	"digge" N Sem/Org Sg Nom <W:0.0>
;		"sáme" N Sem/Dummytag Cmp/Unass Cmp <W:0.0> REMOVE:2110:longest-match
: 
"<giellastivrra>"
	"stivrra" N <smj> <smj> Sem/Org Sg Nom <W:0.0> SUBSTITUTE:4187 SUBSTITUTE:4181
		"giella" N Sem/Lang_Tool-catch Cmp/SgNom Cmp <W:0.0>
: 
"<ja>"
	"ja" CC <smj> <smj> <W:0.0> MAP:2012 SELECT:2068 SUBSTITUTE:4195 @CNP SUBSTITUTE:4189
;	"ja" CC <W:0.0> @CVP MAP:2012 SELECT:2068
: 
"<fylkka>"
	"fylkka" v1 N <smj> <smj> Sem/Org Sg Nom <W:0.0> SUBSTITUTE:4187 SUBSTITUTE:4181
: 
"<bálkáv>"
	"bálkká" N <smj> <smj> Sem/Money Sg Acc <W:0.0> SUBSTITUTE:4187 SUBSTITUTE:4181
: 
"<vaddám>"
	"vaddet" V <smj> <smj> <RE-Ill-Ani><TH-Acc-*Ani> <RE-Ill-Ani> TV PrfPrc <W:0.0> SUBSTITUTE:1054 SUBSTITUTE:1061 MAP:3381 SELECT:4072 SUBSTITUTE:4189 @-FMAINV SUBSTITUTE:4183
;	"vadde" N Sem/Hum Gram/NomAg Sg Acc PxSg1 <W:0.0> REMOVE:3980
;	"vadde" N Sem/Hum Gram/NomAg Sg Gen PxSg1 <W:0.0> REMOVE:3538
;	"vadde" N Sem/Hum Gram/NomAg Sg Nom PxSg1 <W:0.0> SELECT:4072
"<.>"
	"." CLB <W:0.0>
:\n

$ echo Dan maŋŋela la Sámedigge giellastivrra ja fylkka bálkáv vaddám. | hfst-tokenise -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/tokeniser-gramcheck-gt-desc.pmhfst'  | divvun-blanktag '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/analyser-gt-whitespace.hfst'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/../../src/cg3/valency.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/../../tools/tokenisers/mwe-dis.cg3'  | cg-mwesplit  | divvun-cgspell -n 10 -b 15.000000 -w 5000.000000 -u 0.400000 -l '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/acceptor.default.hfst' -m '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/errmodel.default.hfst'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/valency-postspell.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/./grc-disambiguator.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/./spellchecker.cg3'  | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/after-speller-disambiguator.cg3' | vislcg3 --trace -g '/home/flammie/github/giellalt/lang-smj/tools/grammarcheckers/./grammarchecker.cg3' 

[hangs up]

The offending rule is commented out in git:

diff --git a/tools/grammarcheckers/grammarchecker.cg3 b/tools/grammarcheckers/grammarchecker.cg3
index 7c3cc6f01..8c4f51e6d 100644
--- a/tools/grammarcheckers/grammarchecker.cg3
+++ b/tools/grammarcheckers/grammarchecker.cg3
@@ -2158,7 +2158,7 @@ COPY:syn-nom_nom-gen_nom (Gen &SUGGEST) EXCEPT (Nom &syn-nom_nom-gen_nom) TARGET
 
 ADD:xsyn-nom-nom-comma (&syn-nom-nom-comma) TARGET (Gram/3syll Actio Nom) OR (N Sg Nom) IF (1 (N Sg Nom) OR (Actio Nom))(2 (CC) LINK 1 (Nom)) (NEGATE 0 (Gen)) (NEGATE 1 (V Ind) OR Adv OR Po) (NEGATE 0 EVEN-VERBS + Der/NomAct) (NEGATE 1 (Gram/TAbbr)) (NEGATE 0 (A Sg Nom)) (NEGATE 1 ("jurra") LINK *1 (V Ind) BARRIER NOT-CC - Adv) (NEGATE -1 (N Sg Nom) LINK 1 (Actio Nom)) (NEGATE 1 (Prop Sg Nom))  ;
    
-#ADDCOHORT  ("<,>" "," CLB &ADDED &syn-nom-nom-comma) AFTER &syn-nom-nom-comma;
+ADDCOHORT  ("<,>" "," CLB &ADDED &syn-nom-nom-comma) AFTER &syn-nom-nom-comma;
 ADDRELATION (RIGHT) (&syn-nom-nom-comma) TO (1 (&ADDED)) ;
    
     ## Dan maŋŋela la Sámedigge giellastivrra ja fylkka bálkáv vaddám.

the pipeline used is tools/grammarcheckers/modes/trace-gramchecker-dev.mode which can be regenerated with make dev in the grammarchers directory.

@TinoDidriksen
Copy link
Member

Without having looked at any code, isn't that simply an endless loop? It's adding a new &syn-nom-nom-comma after every just-added &syn-nom-nom-comma.

Require that it can only hit existing readings: ADDCOHORT ("<,>" "," CLB &ADDED &syn-nom-nom-comma) AFTER &syn-nom-nom-comma - &ADDED; ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants