mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 09:28:54 -06:00
added trivial morphological functions
This commit is contained in:
@@ -36,8 +36,8 @@ concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, Prelude in {
|
|||||||
AP = {s : Number => Case => Str} ;
|
AP = {s : Number => Case => Str} ;
|
||||||
|
|
||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
V, VS, VQ, VA = Verb ;
|
V, VS, VV, VQ, VA = Verb ;
|
||||||
V2, V2Q, V2V, V2A, V2S = Verb ** {c : Prep} ;
|
V2, V2S, V2V, V2Q, V2A = Verb ** {c : Prep} ;
|
||||||
V3 = Verb ** {c1,c2 : Prep} ;
|
V3 = Verb ** {c1,c2 : Prep} ;
|
||||||
|
|
||||||
A = Adjective ;
|
A = Adjective ;
|
||||||
|
|||||||
@@ -51,7 +51,14 @@ resource ParadigmsTur = open
|
|||||||
mkV3 : (konusmak : V) -> Prep -> Prep -> V3 ;
|
mkV3 : (konusmak : V) -> Prep -> Prep -> V3 ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV2S : V -> V2S = \verb -> lin V2S (verb ** {c = no_Prep}) ;
|
mkV2A : V -> V2A = \verb -> lin V2A (verb ** {c = noPrep}) ;
|
||||||
|
mkV2V : V -> V2V = \verb -> lin V2V (verb ** {c = noPrep}) ;
|
||||||
|
mkV2S : V -> V2S = \verb -> lin V2S (verb ** {c = noPrep}) ;
|
||||||
|
|
||||||
|
mkVA : V -> VA = \verb -> verb ;
|
||||||
|
mkVV : V -> VV = \verb -> verb ;
|
||||||
|
mkVS : V -> VS = \verb -> verb ;
|
||||||
|
mkVQ : V -> VQ = \verb -> verb ;
|
||||||
|
|
||||||
-- worst-case function
|
-- worst-case function
|
||||||
-- bases of all forms are required.
|
-- bases of all forms are required.
|
||||||
@@ -78,14 +85,14 @@ resource ParadigmsTur = open
|
|||||||
|
|
||||||
mkV2 = overload {
|
mkV2 = overload {
|
||||||
-- sormak
|
-- sormak
|
||||||
mkV2 : V -> V2 = \verb -> verb ** lin V2 {c = no_Prep} ;
|
mkV2 : V -> V2 = \verb -> verb ** lin V2 {c = noPrep} ;
|
||||||
-- (bir şeyden) korkmak
|
-- (bir şeyden) korkmak
|
||||||
mkV2 : V -> Prep -> V2 = \verb,c -> verb ** lin V2 {c = c} ;
|
mkV2 : V -> Prep -> V2 = \verb,c -> verb ** lin V2 {c = c} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV3 = overload {
|
mkV3 = overload {
|
||||||
-- (birine bir şeyi) satmak
|
-- (birine bir şeyi) satmak
|
||||||
mkV3 : V -> V3 = \verb -> verb ** lin V3 {c1 = no_Prep; c2 = no_Prep} ;
|
mkV3 : V -> V3 = \verb -> verb ** lin V3 {c1 = noPrep; c2 = noPrep} ;
|
||||||
-- (biri ile bir şeyi) konuşmak
|
-- (biri ile bir şeyi) konuşmak
|
||||||
mkV3 : V -> Prep -> Prep -> V3 =
|
mkV3 : V -> Prep -> Prep -> V3 =
|
||||||
\verb,c1,c2 -> verb ** lin V3 {c1 = c1; c2 = c2} ;
|
\verb,c1,c2 -> verb ** lin V3 {c1 = c1; c2 = c2} ;
|
||||||
@@ -110,7 +117,11 @@ resource ParadigmsTur = open
|
|||||||
mkN : (zeytin, yag : N) -> N ;
|
mkN : (zeytin, yag : N) -> N ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkN2 : Str -> N2 ;
|
mkN : overload {
|
||||||
|
-- regular noun, only nominative case is needed
|
||||||
|
mkN2 : Str -> N2 ;
|
||||||
|
mkN2 : N -> N2 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
mkN3 : Str -> N3 ;
|
mkN3 : Str -> N3 ;
|
||||||
|
|
||||||
@@ -191,6 +202,9 @@ resource ParadigmsTur = open
|
|||||||
-- Adverbs
|
-- Adverbs
|
||||||
|
|
||||||
mkAdv : Str -> Adv ;
|
mkAdv : Str -> Adv ;
|
||||||
|
mkAdV : Str -> AdV ;
|
||||||
|
mkAdA : Str -> AdA ;
|
||||||
|
mkAdN : Str -> Case -> AdN ;
|
||||||
|
|
||||||
--Implementation of verb paradigms
|
--Implementation of verb paradigms
|
||||||
|
|
||||||
@@ -456,12 +470,20 @@ resource ParadigmsTur = open
|
|||||||
\n1,n2 -> linkNoun n1 n2 Indef Con ;
|
\n1,n2 -> linkNoun n1 n2 Indef Con ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkN2 base = (mkN base) ** lin N2 {c = lin Prep {s=[]; c=Gen}} ;
|
mkN2 = overload {
|
||||||
|
mkN2 : Str -> N2 =
|
||||||
|
\base -> (mkN base) ** lin N2 {c = lin Prep {s=[]; c=Gen}} ;
|
||||||
|
mkN2 : N -> N2 =
|
||||||
|
\n -> n ** lin N2 {c = lin Prep {s=[]; c=Gen}} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
mkN3 base = (mkN base) ** lin N3 {c1,c2 = lin Prep {s=[]; c=Gen}} ;
|
mkN3 base = (mkN base) ** lin N3 {c1,c2 = lin Prep {s=[]; c=Gen}} ;
|
||||||
|
|
||||||
-- Implementation for adverb paradigms.
|
-- Implementation for adverb paradigms.
|
||||||
mkAdv s = lin Adv { s = s } ;
|
mkAdv s = lin Adv { s = s } ;
|
||||||
|
mkAdV s = lin AdV { s = s } ;
|
||||||
|
mkAdA s = lin AdA { s = s } ;
|
||||||
|
mkAdN s c = lin AdN { s = s; c = c } ;
|
||||||
|
|
||||||
-- Implementation of adjactive paradigms
|
-- Implementation of adjactive paradigms
|
||||||
mkA = overload {
|
mkA = overload {
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Prep
|
-- Prep
|
||||||
no_Prep = mkPrep [] Acc;
|
noPrep = mkPrep [] Acc;
|
||||||
|
|
||||||
mkPrep : Str -> Case -> {s : Str; c : Case; lock_Prep : {}} =
|
mkPrep : Str -> Case -> {s : Str; c : Case; lock_Prep : {}} =
|
||||||
\s, c -> lin Prep {s=s; c=c};
|
\s, c -> lin Prep {s=s; c=c};
|
||||||
|
|||||||
@@ -209,15 +209,15 @@ concrete StructuralTur of Structural = CatTur **
|
|||||||
where_IAdv = {s = "nerede"} ;
|
where_IAdv = {s = "nerede"} ;
|
||||||
|
|
||||||
can8know_VV = {
|
can8know_VV = {
|
||||||
s = "(TODO: can8know_VV)"
|
s = \\_ => "(TODO: can8know_VV)"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
can_VV = {
|
can_VV = {
|
||||||
s = "(TODO: can_VV)"
|
s = \\_ => "(TODO: can_VV)"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
must_VV = {
|
must_VV = {
|
||||||
s = "(TODO: must_VV)"
|
s = \\_ => "(TODO: must_VV)"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
not_Predet = {
|
not_Predet = {
|
||||||
@@ -246,7 +246,7 @@ concrete StructuralTur of Structural = CatTur **
|
|||||||
|
|
||||||
-- TODO: this depends on the linearization for `ComplVV` and is really a
|
-- TODO: this depends on the linearization for `ComplVV` and is really a
|
||||||
-- morphological construct so it might be a bit tricky to implement.
|
-- morphological construct so it might be a bit tricky to implement.
|
||||||
want_VV = { s = "(TODO: want_VV)" } ;
|
want_VV = { s = \\_ => "(TODO: want_VV)" } ;
|
||||||
|
|
||||||
whatPl_IP = { s = "neler" } ;
|
whatPl_IP = { s = "neler" } ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user