forked from GitHub/gf-rgl
@@ -11,7 +11,14 @@ lin
|
||||
-- ComparAdvAdjS : CAdv -> A -> S -> Adv ; -- more warmly than he runs
|
||||
|
||||
-- : Prep -> NP -> Adv ;
|
||||
PrepNP prep np = prep ** {s = [] ; np = nplite np} ;
|
||||
PrepNP prep np = prep ** {
|
||||
np = case prep.isPoss of {
|
||||
True => nplite emptyNP ;
|
||||
False => nplite np } ;
|
||||
miscAdv = case prep.isPoss of {
|
||||
True => np.s ! Abs ++ prep.miscAdv ! np.a ;
|
||||
False => prep.miscAdv ! Sg3 Masc }
|
||||
} ;
|
||||
|
||||
-- Adverbs can be modified by 'adadjectives', just like adjectives.
|
||||
|
||||
|
||||
@@ -84,7 +84,11 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
||||
-- Constructed in StructuralSom.
|
||||
Conj = {s2 : State => Str ; s1 : Str ; n : Number } ;
|
||||
Subj = SS ;
|
||||
Prep = ResSom.Prep ** {c2 : Preposition ; berri, sii, dhex : Str} ;
|
||||
Prep = ResSom.Prep ** {
|
||||
isPoss : Bool ;
|
||||
c2 : Preposition ;
|
||||
berri, sii, dhex : Str ;
|
||||
miscAdv : Agreement => Str } ;
|
||||
|
||||
|
||||
|
||||
@@ -94,9 +98,9 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
||||
-- additional lexicon modules.
|
||||
|
||||
V,
|
||||
-- TODO: eventually proper lincats
|
||||
VV, -- verb-phrase-complement verb e.g. "want"
|
||||
VS, -- sentence-complement verb e.g. "claim" -- TODO: VPs that have VS use waxa as stm? see Nilsson p. 68
|
||||
VV, -- verb-phrase-complement verb e.g. "want" -- TODO: VPs that have sentential complement use waxa as stm? see Nilsson p. 68
|
||||
VS, -- sentence-complement verb e.g. "claim"
|
||||
-- TODO: eventually different lincats
|
||||
VQ, -- question-complement verb e.g. "wonder"
|
||||
VA, -- adjective-complement verb e.g. "look"
|
||||
V2V, -- verb with NP and V complement e.g. "cause"
|
||||
@@ -121,6 +125,6 @@ linref
|
||||
-- Cl = linCl ;
|
||||
VP = linVP VInf ;
|
||||
CN = linCN ;
|
||||
Prep = \prep -> prep.s ! P3_Prep ++ prep.sii ++ prep.dhex ;
|
||||
Prep = \prep -> prep.s ! P3_Prep ++ prep.sii ++ prep.dhex ++ prep.miscAdv ! Sg3 Masc ;
|
||||
S = \s -> linBaseCl (s.s ! False) ;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,13 @@ concrete IdiomSom of Idiom = CatSom ** open Prelude, ResSom, VerbSom in {
|
||||
ExistIPAdv : IP -> Adv -> QCl ; -- which houses are there in Paris
|
||||
-}
|
||||
-- : VP -> VP ;
|
||||
--ProgrVP vp = vp ** { } ;
|
||||
ProgrVP vp = vp ** {
|
||||
s = table {
|
||||
VPres _ agr pol => vp.s ! VPres Progressive agr pol ;
|
||||
VPast _ agr => vp.s ! VPast Progressive agr ;
|
||||
VNegPast _ => vp.s ! VNegPast Progressive ;
|
||||
x => vp.s ! x }
|
||||
} ;
|
||||
|
||||
|
||||
{- TODO: Saeed p. 92 optative
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete LexiconSom of Lexicon = CatSom **
|
||||
open ParadigmsSom,ResSom in {
|
||||
open ParadigmsSom, ResSom in {
|
||||
|
||||
----
|
||||
-- A
|
||||
@@ -63,7 +63,7 @@ lin car_N = mkN "baabuur" masc ;
|
||||
-- lin carpet_N = mkN "" ;
|
||||
lin cat_N = mkN "bisad" ;
|
||||
-- lin ceiling_N = mkN "" ;
|
||||
-- lin chair_N = mkN "" ;
|
||||
lin chair_N = mkN "kursi" ;
|
||||
-- lin cheese_N = mkN "" ;
|
||||
-- lin child_N = mkN "" ;
|
||||
-- lin church_N = mkN "" ;
|
||||
@@ -74,7 +74,7 @@ lin city_N = mkN "magaalo" ;
|
||||
-- lin cloud_N = mkN "" ;
|
||||
-- lin coat_N = mkN "" ;
|
||||
-- lin cold_A = mkA "" ;
|
||||
-- lin come_V = etorri_V ;
|
||||
lin come_V = mkV "iman" ;
|
||||
-- lin computer_N = mkN "" ;
|
||||
-- lin correct_A = mkA "" ;
|
||||
-- lin count_V2 = mkV2 "" ;
|
||||
@@ -193,7 +193,7 @@ lin jump_V = mkV "bood" ;
|
||||
-- lin knee_N = mkN "" ;
|
||||
-- lin know_V2 = mkV2 "" ;
|
||||
-- lin know_VQ = mkVQ "" ;
|
||||
-- lin know_VS = mkVS "" ;
|
||||
lin know_VS = mkV "ogaan" ; -- copula ** {sii = "og"} ;
|
||||
|
||||
|
||||
----
|
||||
@@ -211,7 +211,7 @@ lin language_N = mkN "af" ;
|
||||
-- lin lie_V = mkV "" ;
|
||||
-- lin like_V2 = mkV2 "" ;
|
||||
-- lin listen_V2 = mkV2 "" ;
|
||||
-- lin live_V = mkV "" ;
|
||||
lin live_V = copula ** {sii = "nool"} ;
|
||||
-- lin liver_N = mkN "" ;
|
||||
-- lin long_A = mkA "" ;
|
||||
-- lin lose_V2 = mkV2 "" ;
|
||||
@@ -304,7 +304,7 @@ lin salt_N = mkN "cusbo" ;
|
||||
-- lin school_N = mkN "" ;
|
||||
-- lin science_N = mkN "" ;
|
||||
-- lin scratch_V2 = mkV2 "" ;
|
||||
-- lin sea_N = mkN "" ;
|
||||
lin sea_N = mkN "bad" fem ;
|
||||
lin see_V2 = mkV2 "ark" ;
|
||||
-- lin seed_N = mkN "" ;
|
||||
-- lin seek_V2 = mkV2 "" ;
|
||||
|
||||
@@ -64,13 +64,14 @@ concrete NounSom of Noun = CatSom ** open ResSom, Prelude in {
|
||||
True => glue predet.s det ;
|
||||
False => predet.s
|
||||
} ;
|
||||
in np ** {s = \\c =>
|
||||
case <np.isPron,predet.isPoss> of {
|
||||
<True,True> => np.empty ++ predetS ;
|
||||
_ => np.s ! c ++ predetS}
|
||||
in np ** {
|
||||
s = \\c =>
|
||||
case <np.isPron,predet.isPoss> of {
|
||||
<True,True> => np.empty ++ predetS ;
|
||||
_ => np.s ! c ++ predetS} ;
|
||||
isPron = False ; -- NP it loses its pronoun status when Predet is added
|
||||
} ;
|
||||
|
||||
|
||||
-- A noun phrase can also be postmodified by the past participle of a
|
||||
-- verb, by an adverb, or by a relative clause
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
resource ParadigmsSom = open CatSom, ResSom, ParamSom, Prelude in {
|
||||
resource ParadigmsSom = open CatSom, ResSom, ParamSom, NounSom, Prelude in {
|
||||
|
||||
oper
|
||||
|
||||
@@ -104,17 +104,17 @@ oper
|
||||
|
||||
mkPrep = overload {
|
||||
mkPrep : Str -> CatSom.Prep = \s ->
|
||||
lin Prep ((ResSom.mkPrep s s s s s s) ** {
|
||||
c2=noPrep ; sii,dhex,berri=[]}) ;
|
||||
emptyPrep ** (ResSom.mkPrep s s s s s s) ; -- ** {
|
||||
mkPrep : (x1,_,_,_,_,x6 : Str) -> CatSom.Prep = \a,b,c,d,e,f ->
|
||||
lin Prep ((ResSom.mkPrep a b c d e f) ** {
|
||||
c2=noPrep ; sii,dhex,berri=[]}) ;
|
||||
emptyPrep ** (ResSom.mkPrep a b c d e f) ; --
|
||||
mkPrep : Preposition -> CatSom.Prep = \p ->
|
||||
lin Prep ((prep p) ** {sii,dhex,berri=[]}) ;
|
||||
emptyPrep ** (prep p) ;
|
||||
mkPrep : CatSom.Prep -> (x1,x2,x3 : Str) -> CatSom.Prep = \p,s,t,u ->
|
||||
p ** {berri = s ; sii = t ; dhex = u} ;
|
||||
} ;
|
||||
|
||||
possPrep : N -> CatSom.Prep ; -- Nouns like dhex that are used with possessive suffix to form adverbials
|
||||
|
||||
-- mkConj : (_,_ : Str) -> Number -> Conj = \s1,s2,num ->
|
||||
-- lin Conj { s = s1 ; s2 = s2 } ;
|
||||
|
||||
@@ -125,7 +125,7 @@ oper
|
||||
berri = s ;
|
||||
c2 = noPrep ;
|
||||
np = {s = [] ; a = P3_Prep} ;
|
||||
sii,dhex = []
|
||||
sii,dhex,miscAdv = []
|
||||
} ;
|
||||
|
||||
mkAdV : Str -> AdV = \s -> lin AdV {s = s} ;
|
||||
@@ -216,6 +216,24 @@ oper
|
||||
mkV3 : (sug : Str) -> (_,_ : Preposition) -> V3 = \s,p,q -> lin V3 (regV s ** {c2 = p ; c3 = q}) ;
|
||||
mkV3 : V -> (_,_ : Preposition) -> V2 = \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q}) ;
|
||||
} ;
|
||||
|
||||
possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** {
|
||||
miscAdv = \\agr =>
|
||||
let qnt = PossPron (pronTable ! agr) ;
|
||||
num = getNum agr ;
|
||||
art = gda2da dhex.gda ! Sg ;
|
||||
det = qnt.s ! art ! Abs ; -- this includes BIND
|
||||
in dhex.s ! Def Sg ++ det ;
|
||||
isPoss = True
|
||||
} ;
|
||||
|
||||
emptyPrep : CatSom.Prep = lin Prep {
|
||||
sii,berri,dhex = [] ;
|
||||
miscAdv = \\_ => [] ;
|
||||
s = \\_ => [] ;
|
||||
c2 = noPrep ;
|
||||
isPoss = False
|
||||
} ;
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
}
|
||||
|
||||
@@ -247,7 +247,7 @@ oper
|
||||
s = \\_ => [] ; -- the string `la' comes from Passive (: PrepCombination)
|
||||
a = Impers ; isPron = True ; sp = \\_ => "" ;
|
||||
empty = [] ; st = Definite ;
|
||||
poss = {s, short = quantTable "??" ; sp = gnTable "??" "??" "??"}
|
||||
poss = {s, short = quantTable "iis" ; sp = gnTable "iis" "iis" "uwiis"}
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -463,15 +463,14 @@ oper
|
||||
BaseVerb : Type = {
|
||||
s : VForm => Str ;
|
||||
} ;
|
||||
|
||||
Verb : Type = BaseVerb ** {
|
||||
sii : Str ; -- closed class of particles: sii, soo, kala, wada (Saeed 171)
|
||||
dhex : Str ; -- closed class of adverbials: hoos, kor, dul, dhex, …
|
||||
isCopula : Bool ;
|
||||
} ;
|
||||
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
||||
Verb3 : Type = Verb2 ** {c3 : Preposition} ;
|
||||
|
||||
|
||||
-- Saeed page 79:
|
||||
-- "… the reference form is the imperative singular form
|
||||
-- since it corresponds to the form of the basic root."
|
||||
@@ -566,6 +565,7 @@ oper
|
||||
|
||||
} ;
|
||||
sii, dhex = [] ;
|
||||
isCopula = False ;
|
||||
} ;
|
||||
|
||||
-------------------------
|
||||
@@ -637,7 +637,8 @@ oper
|
||||
VImp Pl pol => if_then_Pol pol "ahaada" "ahaanina" ;
|
||||
VPres _ _ _ => nonExist -- use presCopula instead
|
||||
} ;
|
||||
sii, dhex = []
|
||||
sii, dhex = [] ;
|
||||
isCopula = True
|
||||
} ;
|
||||
|
||||
have_V : Verb =
|
||||
@@ -672,7 +673,8 @@ oper
|
||||
BaseAdv : Type = {
|
||||
sii, -- sii, soo, wala, kada go inside VP.
|
||||
dhex, -- dhex, hoos, koor, dul, … go inside VP.
|
||||
berri : Str -- e.g. "tomorrow"; goes before VP.
|
||||
berri, -- AdV, e.g. "tomorrow"; goes before VP.
|
||||
miscAdv : Str -- dump for any other kind of adverbial.
|
||||
} ;
|
||||
|
||||
Adverb : Type = BaseAdv ** {
|
||||
@@ -690,14 +692,13 @@ oper
|
||||
obj2 : NPLite ; -- {s : Str ; a : PrepAgr}
|
||||
secObj : Str ; -- if two overt pronoun objects
|
||||
vComp : Str ; -- VV complement
|
||||
miscAdv : Str ; -- dump for any other kind of adverb, that isn't
|
||||
} ; -- in a closed class of particles or made with PrepNP.
|
||||
} ;
|
||||
|
||||
VPSlash : Type = VerbPhrase ;
|
||||
|
||||
useV : Verb -> VerbPhrase = \v -> v ** {
|
||||
comp = \\_ => <[],[]> ;
|
||||
pred = NoPred ;
|
||||
pred = case v.isCopula of {True => Copula ; _ => NoPred} ;
|
||||
vComp,berri,miscAdv,refl = [] ;
|
||||
c2 = Single NoPrep ;
|
||||
obj2 = {s = [] ; a = P3_Prep} ;
|
||||
@@ -712,7 +713,7 @@ oper
|
||||
c2 = combine v3.c2 v3.c3 ;
|
||||
} ;
|
||||
|
||||
passV2 : Verb2 -> VerbPhrase = \v2 -> passVP (useV v2) ;
|
||||
passV2 : Verb2 -> VerbPhrase = \v2 -> passVP (useVc v2) ;
|
||||
|
||||
passVP : VerbPhrase -> VerbPhrase = \vp -> vp ** {
|
||||
c2 = case vp.c2 of {
|
||||
@@ -739,9 +740,9 @@ oper
|
||||
} ;
|
||||
|
||||
insertComp : VPSlash -> NounPhrase -> VerbPhrase = \vp,np ->
|
||||
insertCompAgrPlus vp (nplite np) ;
|
||||
insertCompLite vp (nplite np) ;
|
||||
|
||||
insertCompAgrPlus : VPSlash -> NPLite -> VerbPhrase = \vp,nplite ->
|
||||
insertCompLite : VPSlash -> NPLite -> VerbPhrase = \vp,nplite ->
|
||||
case vp.obj2.a of {
|
||||
-- If the old object is 3rd person (or nonexistent), we replace its agreement.
|
||||
-- We keep both old and new string (=noun, if there was one) in obj2.s.
|
||||
@@ -765,20 +766,21 @@ oper
|
||||
NoPrep => vp ** adv'' ; -- the adverb is not formed with PrepNP, e.g. "tomorrow"
|
||||
_ => case vp.c2 of {
|
||||
-- if free complement slots, introduce adv.np with insertComp
|
||||
Single NoPrep => insertCompAgrPlus (vp ** {c2 = Single adv.c2}) adv.np ** adv' ;
|
||||
Single p => insertCompAgrPlus (vp ** {c2 = combine p adv.c2}) adv.np ** adv' ;
|
||||
Single NoPrep => insertCompLite (vp ** {c2 = Single adv.c2}) adv.np ** adv' ;
|
||||
Single p => insertCompLite (vp ** {c2 = combine p adv.c2}) adv.np ** adv' ;
|
||||
|
||||
-- if complement slots are full, just insert strings.
|
||||
_ => vp ** adv''
|
||||
}
|
||||
} where {
|
||||
adv' : {sii,dhex,berri : Str} = { -- adv.np done with insertComp
|
||||
adv' : {sii,dhex,berri,miscAdv : Str} = { -- adv.np done with insertComp
|
||||
sii = vp.sii ++ adv.sii ;
|
||||
dhex = vp.dhex ++ adv.dhex ;
|
||||
berri = vp.berri ++ adv.berri } ;
|
||||
berri = vp.berri ++ adv.berri ;
|
||||
miscAdv = vp.miscAdv ++ adv.miscAdv} ;
|
||||
adv'' : {sii,dhex,berri,miscAdv : Str} -- adv.np inserted into miscAdv
|
||||
= adv' ** {dhex = (prepTable ! adv.c2).s ! adv.np.a ++ adv.dhex ;
|
||||
miscAdv = adv.np.s}
|
||||
miscAdv = adv.miscAdv ++ adv.np.s}
|
||||
} ;
|
||||
--------------------------------------------------------------------------------
|
||||
-- Sentences etc.
|
||||
@@ -839,10 +841,10 @@ oper
|
||||
_ => stmarkerNoContr ! subj.a ! p }} ;
|
||||
in (wordOrder subjnoun subjpron stm obj pred vp) ;
|
||||
} where {
|
||||
vp = case isPassive vps of {
|
||||
vp : VerbPhrase = case isPassive vps of {
|
||||
True => complSlash (insertComp vps np) ;
|
||||
_ => complSlash vps } ;
|
||||
subj = case isPassive vps of {True => impersNP ; _ => np}
|
||||
subj : NounPhrase = case isPassive vps of {True => impersNP ; _ => np}
|
||||
} ;
|
||||
|
||||
wordOrder : (sn,sp : Str) -> (stm,obj : {p1,p2 : Str}) -> {fin,inf : Str} -> VerbPhrase -> BaseCl =
|
||||
@@ -862,7 +864,7 @@ oper
|
||||
++ vp.miscAdv } ; ---- NB. Only used if there are several adverbs.
|
||||
---- Primary places for adverbs are obj, sii or dhex.
|
||||
|
||||
VFun : Type = Tense -> Anteriority -> Polarity -> Agreement -> Verb
|
||||
VFun : Type = Tense -> Anteriority -> Polarity -> Agreement -> BaseVerb
|
||||
-> {fin : Str ; inf : Str} ;
|
||||
|
||||
vf : ClType -> VFun = \clt -> case clt of {
|
||||
@@ -881,13 +883,13 @@ oper
|
||||
}
|
||||
where {
|
||||
agrPol : {agr:Agreement ; pol:Polarity} = {agr=agr; pol=p} ;
|
||||
pastV : Verb -> Str = \v ->
|
||||
pastV : BaseVerb -> Str = \v ->
|
||||
case p of { Neg => v.s ! VNegPast Simple ;
|
||||
Pos => v.s ! VPast Simple (agr2vagr agr) } ;
|
||||
|
||||
presV : Verb -> Str = \v -> v.s ! VPres Simple (agr2vagr agr) p ;
|
||||
presV : BaseVerb -> Str = \v -> v.s ! VPres Simple (agr2vagr agr) p ;
|
||||
|
||||
condNegV : Verb -> Str = \v -> case agr of {
|
||||
condNegV : BaseVerb -> Str = \v -> case agr of {
|
||||
Sg2|Sg3 Fem
|
||||
|Pl2 => v.s ! VNegCond SgFem ;
|
||||
Pl1 _ => v.s ! VNegCond PlInv ;
|
||||
@@ -936,7 +938,8 @@ oper
|
||||
++ adv.sii
|
||||
++ (prepTable ! adv.c2).s ! adv.np.a
|
||||
++ adv.dhex
|
||||
++ adv.np.s ;
|
||||
++ adv.np.s
|
||||
++ adv.miscAdv ;
|
||||
linBaseCl : BaseCl -> Str = \b -> b.beforeSTM ++ b.stm ++ b.afterSTM ;
|
||||
|
||||
}
|
||||
|
||||
@@ -55,11 +55,10 @@ lin or_Conj = {s2 = \\_ => "ama" ; s1 = [] ; n = Sg} ; -- mise with interrogativ
|
||||
--lin how8many_IDet = R.indefDet "" pl ;
|
||||
|
||||
lin all_Predet = {s = "giddi" ; isPoss = True ; da = M GA} ;
|
||||
--lin not_Predet = { s = "" } ;
|
||||
--lin only_Predet = { s = "" } ;
|
||||
lin most_Predet = {s = "badi" ; isPoss = True ; da = F DA} ;
|
||||
{-
|
||||
lin not_Predet = { s = "" } ;
|
||||
lin only_Predet = { s = "" } ;
|
||||
lin most_Predet = { s = "" } ;
|
||||
|
||||
lin every_Det = R.defDet [] pl **
|
||||
{ s = mkVow } ;
|
||||
lin few_Det = R.indefDet "" pl ;
|
||||
@@ -67,12 +66,12 @@ lin many_Det = R.indefDet "" pl ;
|
||||
lin much_Det = R.indefDet "" sg ;
|
||||
-}
|
||||
lin somePl_Det = {
|
||||
sp = \\_,_ => "qaar" ;
|
||||
isPoss, isNum = False ;
|
||||
st = Definite ; -- NB. Indefinite means actually only IndefArt.
|
||||
n = Pl ;
|
||||
s = \\x,_ => BIND ++ defStems ! x ++ BIND ++ "a qaarkood" ;
|
||||
shortPoss = \\x => BIND ++ defStems ! x ++ BIND ++ "a qaarkood" ;
|
||||
sp = \\_,_ => "qaarkood" ;
|
||||
isPoss, isNum = False ;
|
||||
n = Pl ;
|
||||
st = Definite -- NB. Indefinite is really only reserved for IndefArt NumSg.
|
||||
} ;
|
||||
|
||||
lin someSg_Det = somePl_Det ** {
|
||||
@@ -82,8 +81,7 @@ lin someSg_Det = somePl_Det ** {
|
||||
F x => \\_ => BIND ++ defStems ! F x ++ BIND ++ "a qaarkeed" } ;
|
||||
shortPoss = table {
|
||||
M x => BIND ++ defStems ! M x ++ BIND ++ "a qaarkiis" ;
|
||||
F x => BIND ++ defStems ! F x ++ BIND ++ "a qaarkeed" } ;
|
||||
sp = \\g,c => case g of {Fem => "qaarkeed" ; _ => "qaarkiis"}
|
||||
F x => BIND ++ defStems ! F x ++ BIND ++ "a qaarkeed" }
|
||||
} ;
|
||||
|
||||
|
||||
@@ -112,24 +110,26 @@ oper
|
||||
-- Prep
|
||||
|
||||
lin above_Prep = mkPrep (mkPrep ka) [] [] "dul" ;
|
||||
-- lin after_Prep = mkPrep "" ;
|
||||
-- lin after_Prep = mkPrep ""
|
||||
-- lin before_Prep = mkPrep "" ;
|
||||
-- lin behind_Prep = mkPrep "" ;
|
||||
-- lin between_Prep = mkPrep "" ;
|
||||
lin between_Prep = possPrep (nUl "dhex") ;
|
||||
-- lin by8agent_Prep = mkPrep ;
|
||||
-- lin by8means_Prep = mkPrep ;
|
||||
-- lin during_Prep = mkPrep ;
|
||||
-- lin except_Prep = mkPrep ;
|
||||
-- lin for_Prep = mkPrep ;
|
||||
-- lin from_Prep = mkPrep "" ;
|
||||
-- lin in8front_Prep = mkPrep "" ;
|
||||
lin in8front_Prep = possPrep (nUl "hor") ;
|
||||
lin in_Prep = mkPrep ku ;
|
||||
lin on_Prep = mkPrep ku ;
|
||||
-- lin part_Prep = mkPrep ;
|
||||
-- lin possess_Prep = mkPrep ;
|
||||
-- lin through_Prep = mkPrep ;
|
||||
-- lin to_Prep = mkPrep ;
|
||||
-- lin under_Prep = mkPrep "" ;
|
||||
lin under_Prep =
|
||||
let hoos : CatSom.Prep = possPrep (nUl "hoos")
|
||||
in hoos ** {c2 = Ku} ;
|
||||
lin with_Prep = mkPrep la ;
|
||||
-- lin without_Prep = mkPrep ;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
concrete VerbSom of Verb = CatSom ** open ResSom, Prelude in {
|
||||
concrete VerbSom of Verb = CatSom ** open ResSom, AdverbSom, Prelude in {
|
||||
|
||||
|
||||
lin
|
||||
@@ -20,10 +20,14 @@ lin
|
||||
vComp = vp.vComp ++ vp.s ! VInf ;
|
||||
pred = NoPred ;
|
||||
} ;
|
||||
{-
|
||||
-- : VS -> S -> VP ;
|
||||
ComplVS vs s = ;
|
||||
|
||||
-- : VS -> S -> VP ;
|
||||
ComplVS vs s =
|
||||
let vps = useV vs ;
|
||||
subord = SubjS {s="in"} s ;
|
||||
in vps ** {obj2 = {s = subord.berri ; a = P3_Prep}} ;
|
||||
|
||||
{-
|
||||
-- : VQ -> QS -> VP ;
|
||||
ComplVQ vq qs = ;
|
||||
|
||||
|
||||
@@ -63,6 +63,13 @@ Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplSla
|
||||
LangSom: hilib cusbo waa lagu dari karaa
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplVV can_VV (ComplSlash (Slash3V3 add_V3 (MassNP (UseN meat_N))) (MassNP (UseN salt_N))))))) NoVoc
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Other complements
|
||||
|
||||
--LangEng: we knew that he is coming
|
||||
LangSom: in uu imanayo waa aynu ogaannay
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron we_Pron) (ComplVS know_VS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ProgrVP (UseV come_V)))))))) NoVoc
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Adverbials
|
||||
|
||||
@@ -73,3 +80,20 @@ Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_P
|
||||
-- LangEng: you can't jump above me
|
||||
LangSom: iga BIND ma dul boodi karto
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PNeg (PredVP (UsePron youSg_Pron) (AdvVP (ComplVV can_VV (UseV jump_V)) (PrepNP above_Prep (UsePron i_Pron)))))) NoVoc
|
||||
|
||||
-- LangEng: I am taught in front of the house
|
||||
LangSom: waa laygu baraa guri BIND ga hor BIND tiis BIND a
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (AdvVP (PassV2 teach_V2) (PrepNP in8front_Prep (DetCN (DetQuant DefArt NumSg) (UseN house_N))))))) NoVoc
|
||||
|
||||
-- LangEng: I am taught in front of my mother
|
||||
LangSom: waa laygu baraa hooya BIND day hor BIND teed BIND a
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (AdvVP (PassV2 teach_V2) (PrepNP in8front_Prep (DetCN (DetQuant (PossPron i_Pron) NumSg) (UseN2 mother_N2))))))) NoVoc
|
||||
|
||||
-- LangEng: I see a cat under the chair
|
||||
LangSom: bisad waa aan ku arkaa kursi BIND ga hoos BIND tiis BIND a
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (AdvVP (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant IndefArt NumSg) (UseN cat_N))) (PrepNP under_Prep (DetCN (DetQuant DefArt NumSg) (UseN chair_N))))))) NoVoc
|
||||
|
||||
-- LangEng: my mother lives under the sea
|
||||
LangSom: hooya BIND day waa ku nool tahay bad BIND da hoos BIND teed BIND a
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant (PossPron i_Pron) NumSg) (UseN2 mother_N2)) (AdvVP (UseV live_V) (PrepNP under_Prep (DetCN (DetQuant DefArt NumSg) (UseN sea_N))))))) NoVoc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user