From 52a6c036053c033aa24720150fa94fdb3048c14f Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 10 Dec 2013 15:17:35 +0000 Subject: [PATCH] Fin.VPSlashPrep is cyclic in the presence of empty-strinc prepositions. Therefore omitted it from ParseFin. --- lib/src/Makefile | 4 +++- lib/src/finnish/ExtraFin.gf | 2 +- lib/src/finnish/IdiomFin.gf | 2 +- lib/src/finnish/StemFin.gf | 6 +++--- lib/src/finnish/VerbFin.gf | 2 +- lib/src/finnish/stemmed/ParseFin.gf | 3 ++- lib/src/finnish/stemmed/StemFin.gf | 6 +++--- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/src/Makefile b/lib/src/Makefile index 9a6d4c114..7be50f4b4 100644 --- a/lib/src/Makefile +++ b/lib/src/Makefile @@ -122,7 +122,9 @@ clean: -Parse: ParseEng ParseBul ParseChi ParseGer ParseSwe ParseHin ParseFin ParseFre +Parse: ParseEng ParseBul ParseChi ParseGer ParseSwe ParseHin ParseFin ParseFre Parse8 + +Parse8: gf -make -literal=Symb -probs=$(PROBSFILE) -name=Parse8 ParseEng.pgf ParseBul.pgf ParseChi.pgf ParseGer.pgf ParseSwe.pgf ParseHin.pgf ParseFin.pgf ParseFre.pgf diff --git a/lib/src/finnish/ExtraFin.gf b/lib/src/finnish/ExtraFin.gf index 86035ce84..9d526ce00 100644 --- a/lib/src/finnish/ExtraFin.gf +++ b/lib/src/finnish/ExtraFin.gf @@ -233,7 +233,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** kohan_Part = mkPart "kohan" "köhän" ; pahan_Part = mkPart "pahan" "pähän" ; - PassVPSlash vp = passVP vp vp.c2.c ; + PassVPSlash vp = passVP vp vp.c2 ; {- ----- s = \\vif,ant,pol,agr => case vif of { diff --git a/lib/src/finnish/IdiomFin.gf b/lib/src/finnish/IdiomFin.gf index 37e320411..5c21b379a 100644 --- a/lib/src/finnish/IdiomFin.gf +++ b/lib/src/finnish/IdiomFin.gf @@ -37,7 +37,7 @@ concrete IdiomFin of Idiom = CatFin ** ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ; - GenericCl vp = mkClause noSubj (agrP3 Sg) (passVP vp (NPCase Nom)) ; + GenericCl vp = mkClause noSubj (agrP3 Sg) (passVP vp (casePrep nominative)) ; ProgrVP vp = let diff --git a/lib/src/finnish/StemFin.gf b/lib/src/finnish/StemFin.gf index 44df30e41..0bdeb2a76 100644 --- a/lib/src/finnish/StemFin.gf +++ b/lib/src/finnish/StemFin.gf @@ -315,9 +315,9 @@ oper vptyp = vp.vptyp --- missään } ; - passVP : VP -> NPForm -> VP = \vp,sc -> { - s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = sc} ; -- minusta pidetään ---- TODO minun päälleni katsotaan - s2 = vp.s2 ; + passVP : VP -> Compl -> VP = \vp,pr -> { + s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = pr.c} ; -- minusta pidetään ---- TODO minun katsotaan päälle + s2 = \\b,p,a => pr.s ++ vp.s2 ! b ! p ! a ; ---- prep after verb ext = vp.ext ; adv = vp.adv ; vptyp = {isNeg = vp.vptyp.isNeg ; isPass = True} ; diff --git a/lib/src/finnish/VerbFin.gf b/lib/src/finnish/VerbFin.gf index 96299283b..5aaf8f698 100644 --- a/lib/src/finnish/VerbFin.gf +++ b/lib/src/finnish/VerbFin.gf @@ -91,7 +91,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in { ReflVP v = insertObjPre False (\fin,b,agr -> appCompl fin b v.c2 (reflPron agr)) v ; - PassV2 v = passVP (predSV v) v.c2.c ; + PassV2 v = passVP (predSV v) v.c2 ; {- ---- s = \\vif,ant,pol,agr => case vif of { diff --git a/lib/src/finnish/stemmed/ParseFin.gf b/lib/src/finnish/stemmed/ParseFin.gf index ad6e9120b..a788fee07 100644 --- a/lib/src/finnish/stemmed/ParseFin.gf +++ b/lib/src/finnish/stemmed/ParseFin.gf @@ -8,7 +8,8 @@ concrete ParseFin of ParseEngAbs = NumeralFin, SymbolFin [PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP], ConjunctionFin, - VerbFin - [SlashV2V, PassV2, UseCopula, ComplVV], + VerbFin - [SlashV2V, PassV2, UseCopula, ComplVV, + VPSlashPrep], -- with empty prepositions, a cyclic rule that leads to overgeneration AdverbFin, PhraseFin, SentenceFin, diff --git a/lib/src/finnish/stemmed/StemFin.gf b/lib/src/finnish/stemmed/StemFin.gf index 8fa82fe43..8087fbb2a 100644 --- a/lib/src/finnish/stemmed/StemFin.gf +++ b/lib/src/finnish/stemmed/StemFin.gf @@ -665,9 +665,9 @@ oper vptyp = vp.vptyp --- missään } ; - passVP : VP -> NPForm -> VP = \vp,sc -> { - s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = sc} ; -- minusta pidetään ---- TODO minun päälleni katsotaan - s2 = vp.s2 ; + passVP : VP -> Compl -> VP = \vp,pr -> { + s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = pr.c} ; -- minusta pidetään ---- TODO minun katsotaan päälle + s2 = \\b,p,a => pr.s ++ vp.s2 ! b ! p ! a ; ---- prep after verb ext = vp.ext ; adv = vp.adv ; vptyp = {isNeg = vp.vptyp.isNeg ; isPass = True} ;