mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-17 16:59:34 -06:00
tagged version of Dut: an experiment for glossing
This commit is contained in:
5
lib/src/dutch/tagged/LangDutTagged.gf
Normal file
5
lib/src/dutch/tagged/LangDutTagged.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:..:../../abstract:../../common
|
||||
|
||||
concrete LangDutTagged of Lang =
|
||||
GrammarDut,
|
||||
LexiconDut ;
|
||||
9
lib/src/dutch/tagged/README
Normal file
9
lib/src/dutch/tagged/README
Normal file
@@ -0,0 +1,9 @@
|
||||
cd GF/lib/src/dutch
|
||||
gf
|
||||
> i -src tagged/LangDutTagged.gf
|
||||
> i -src LangDut.gf
|
||||
|
||||
Lang> gr -cat=Cl | l
|
||||
|
||||
altijd zijn te willen smeekt zich niets niemand gekrast te sturen
|
||||
altijd zijn.V.Inf te willen.V.Inf smeken.V.Pres.Sg.3 zich niets.NP.Neutr.Sg niemand.NP.Utr.Sg krassen.V.Perf te sturen.V.Inf
|
||||
@@ -23,10 +23,10 @@ resource ResDut = ParamX ** open Prelude in {
|
||||
|
||||
mkNoun : (_,_ : Str) -> Gender -> Noun = \sg,pl,g -> {
|
||||
s = table {
|
||||
NF Sg Nom => sg ;
|
||||
NF Sg Gen => add_s sg ;
|
||||
NF Pl Nom => pl ;
|
||||
NF Pl Gen => add_s pl
|
||||
NF Sg Nom => sg + ".N.Sg.Nom" ;
|
||||
NF Sg Gen => sg + ".N.Sg.Gen" ;
|
||||
NF Pl Nom => sg + ".N.Pl.Nom" ;
|
||||
NF Pl Gen => sg + ".N.Pl.Gen"
|
||||
} ;
|
||||
g = g
|
||||
} ;
|
||||
@@ -74,9 +74,9 @@ resource ResDut = ParamX ** open Prelude in {
|
||||
|
||||
mkAdjective : (_,_,_,_,_ : Str) -> Adjective = \ap,aa,ag,ac,as -> {
|
||||
s = table {
|
||||
Posit => table {APred => ap ; AAttr => aa ; AGen => ag} ;
|
||||
Compar => table {APred => ac ; AAttr => ac + "e" ; AGen => ac + "es"} ; ----
|
||||
Superl => table {APred => as ; AAttr => as + "e" ; AGen => as + "es"} ----
|
||||
Posit => table {APred => ap + ".A.Pos.Pred" ; AAttr => ap + ".A.Pos.Attr" ; AGen => ap} ;
|
||||
Compar => table {APred => ap + ".A.Comp.Pred" ; AAttr => ap + ".A.Comp.Attr" ; AGen => ap} ; ----
|
||||
Superl => table {APred => ap + ".A.Sup.Pred" ; AAttr => ap + ".A.Sup.Attr" ; AGen => ap} ----
|
||||
}
|
||||
} ;
|
||||
regAdjective : Str -> Adjective = \s -> ----
|
||||
@@ -123,12 +123,17 @@ resource ResDut = ParamX ** open Prelude in {
|
||||
mkVerb : (_,_,_,_,_,_,_ : Str) ->
|
||||
Verb = \aai, aait, aaien, aaide, _, aaiden, geaaid -> {
|
||||
s = table {
|
||||
VInf | VImpPl | VPresPl => aaien; -- hij/zij/het/wij aaien
|
||||
VPresSg1 | VImp2 => aai; -- ik aai
|
||||
VPresSg2 | VPresSg3 | VImp3 => aait; -- jij aait
|
||||
VPastSg => aaide; -- ik aaide --# notpresent
|
||||
VPastPl => aaiden; -- hij/zij/het/wij aaiden --# notpresent
|
||||
VPerf => geaaid -- ik heb geaaid
|
||||
VInf => aaien + ".V.Inf" ;
|
||||
VImpPl => aaien + ".V.Imp.Pl" ;
|
||||
VPresPl => aaien + ".V.Pres.Pl" ;
|
||||
VPresSg1 => aaien + ".V.Pres.Sg.1" ;
|
||||
VImp2 => aaien + ".V.Imp.2" ;
|
||||
VPresSg2 => aaien + ".V.Pres.Sg.2" ;
|
||||
VPresSg3 => aaien + ".V.Pres.Sg.3" ;
|
||||
VImp3 => aaien + ".V.Imp.3" ;
|
||||
VPastSg => aaien + ".V.Past.Sg" ;
|
||||
VPastPl => aaien + ".V.Past.Pl" ;
|
||||
VPerf => aaien + ".V.Perf"
|
||||
}
|
||||
};
|
||||
|
||||
@@ -137,12 +142,12 @@ resource ResDut = ParamX ** open Prelude in {
|
||||
irregVerb : (breken,brak,gebroken : Str) -> Verb = \breken,brak,gebroken ->
|
||||
let brek = (regVerb breken).s
|
||||
in
|
||||
mkVerb (brek ! VPresSg1) (brek ! VPresSg3) (brek ! VInf) brak brak (brak + "en") gebroken ;
|
||||
mkVerb (brek ! VPresSg1) (brek ! VPresSg3) breken brak brak (brak + "en") gebroken ;
|
||||
|
||||
irregVerb2 : (breken,brak,braken,gebroken : Str) -> Verb = \breken,brak,braken,gebroken ->
|
||||
let brek = (regVerb breken).s
|
||||
in
|
||||
mkVerb (brek ! VPresSg1) (brek ! VPresSg3) (brek ! VInf) brak brak (braken) gebroken ;
|
||||
mkVerb (brek ! VPresSg1) (brek ! VPresSg3) breken brak brak (braken) gebroken ;
|
||||
|
||||
-- To add a prefix (like "ein") to an already existing verb.
|
||||
|
||||
@@ -274,7 +279,13 @@ resource ResDut = ParamX ** open Prelude in {
|
||||
mkVerb hoef (hoef +"t") hoeven (hoef+"de") (hoef+"de") (hoef+"den")
|
||||
("ge"+hoef+"d");
|
||||
|
||||
zijn_V : VVerb = {
|
||||
zijn_V : VVerb = regVerb "zijn" ** {
|
||||
aux = VZijn ;
|
||||
prefix = [] ;
|
||||
vtype = VAct ;
|
||||
} ;
|
||||
|
||||
zzc = {
|
||||
s = table {
|
||||
VInf => "zijn" ;
|
||||
VPresSg1 => "ben" ;
|
||||
@@ -361,9 +372,9 @@ resource ResDut = ParamX ** open Prelude in {
|
||||
|
||||
mkPronoun : (x1,_,_,_,_,x6,x7 : Str) -> Gender -> Number -> Person -> Pronoun =
|
||||
\ik,me,mn,Ik,mij,mijn,mijne,g,n,p -> {
|
||||
unstressed = {nom = ik ; acc = me ; poss = mn} ;
|
||||
stressed = {nom = Ik ; acc = mij ; poss = mijn} ;
|
||||
substposs = mijne ;
|
||||
unstressed = {nom = ik+".Pron.Nom" ; acc = ik+".Pron.Acc" ; poss = ik+".Pron.Poss"} ;
|
||||
stressed = {nom = ik+".Pron.Nom.Str" ; acc = ik+".Pron.Acc.Str" ; poss = ik+".Pron.Poss.Str"} ;
|
||||
substposs = ik+".Pron.Poss.Subst" ;
|
||||
a = {g = g ; n = n ; p = p}
|
||||
} ;
|
||||
|
||||
@@ -631,10 +642,13 @@ param
|
||||
|
||||
infPart : Bool -> Str = \b -> if_then_Str b [] "te" ;
|
||||
|
||||
tagNumber : Number -> Str = \n -> case n of {Sg => ".Sg" ; Pl => ".Pl"} ;
|
||||
tagGender : Gender -> Str = \n -> case n of {Utr => ".Utr" ; Neutr => ".Neutr"} ;
|
||||
|
||||
mkDet : Str -> Str -> Number -> {s,sp : Gender => Str ; n : Number ; a : Adjf} =
|
||||
\deze,dit,n -> {
|
||||
s = \\g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
|
||||
sp = \\g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
|
||||
s = \\g => case <n,g> of {<Sg,Neutr> => dit+".Det.Neutr" ; _ => deze+".Det.Common"}+tagNumber n ;
|
||||
sp = \\g => case <n,g> of {<Sg,Neutr> => dit+".Det.Neutr.Subst" ; _ => deze+".Det.Common.Subst"}+tagNumber n ;
|
||||
n = n ;
|
||||
a = Weak
|
||||
} ;
|
||||
@@ -645,19 +659,19 @@ param
|
||||
a : Adjf
|
||||
} =
|
||||
\deze,dit -> {
|
||||
s = \\_ ,n,g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
|
||||
sp = \\ n,g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
|
||||
s = \\_ ,n,g => case <n,g> of {<Sg,Neutr> => dit+".Quant.Sg.Neutr" ; _ => deze+".Quant.Common"} ;
|
||||
sp = \\ n,g => case <n,g> of {<Sg,Neutr> => dit+".Quant.Sg.Neutr.Subst" ; _ => deze+".Quant.Common.Subst"} ;
|
||||
a = Weak
|
||||
} ;
|
||||
|
||||
mkPredet : Str -> Str -> {s : Number => Gender => Str} =
|
||||
\deze,dit -> {
|
||||
s = \\n,g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze}
|
||||
s = \\n,g => case <n,g> of {<Sg,Neutr> => deze+".Predet.Sg.Neutr" ; _ => deze+".Predet.Common"}
|
||||
} ;
|
||||
|
||||
mkNP : Str -> Gender -> Number -> {s : NPCase => Str ; a : Agr ; isPron : Bool} =
|
||||
\s,g,n -> heavyNP {
|
||||
s = \\_ => s ;
|
||||
s = \\_ => s+".NP"+tagGender g + tagNumber n ;
|
||||
a = agrgP3 g n ;
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user