1
0
forked from GitHub/gf-rgl

some more infinitives and their interpretations in Fin

This commit is contained in:
Aarne Ranta
2023-08-21 19:44:20 +03:00
parent a00d41dcfa
commit 20dcab3208
3 changed files with 62 additions and 31 deletions

View File

@@ -33,7 +33,8 @@ fun
Inf1LongRAdv : VP -> RAdv ; -- mennäkse (ni/si/...) Inf1LongRAdv : VP -> RAdv ; -- mennäkse (ni/si/...)
Inf2InessAdv : NP -> VP -> Adv ; -- junan mennessä Inf2InessAdv : NP -> VP -> Adv ; -- junan mennessä
Inf2InessRAdv : VP -> RAdv ; -- mennessään
Inf2InessPassAdv : VP -> Adv ; -- odotettaessa (junaa), touhuttaessa (junan kanssa) Inf2InessPassAdv : VP -> Adv ; -- odotettaessa (junaa), touhuttaessa (junan kanssa)
Inf2InessPassInvAdv : NP -> VPSlash -> Adv ; -- junaa odotettaessa, junan kanssa touhutessa Inf2InessPassInvAdv : NP -> VPSlash -> Adv ; -- junaa odotettaessa, junan kanssa touhutessa
@@ -59,8 +60,8 @@ fun
ComplPresPartActVS : VS -> NP -> VP -> VP ; -- sanoa junan menevän ComplPresPartActVS : VS -> NP -> VP -> VP ; -- sanoa junan menevän
ComplPastPartActVS : VS -> NP -> VP -> VP ; -- sanoa junan menneen ComplPastPartActVS : VS -> NP -> VP -> VP ; -- sanoa junan menneen
ComplPresPartActAgrVS : VS -> VP -> VP ; -- sanoa menevänsä ComplPresPartActReflVS : VS -> VP -> VP ; -- sanoa menevänsä
ComplPastPartActAgrVS : VS -> VP -> VP ; -- sanoa menneensä ComplPastPartActReflVS : VS -> VP -> VP ; -- sanoa menneensä
ComplPresPartPassVS : VS -> NP -> VPSlash -> VP ; -- sanoa junaa odotettavan ComplPresPartPassVS : VS -> NP -> VPSlash -> VP ; -- sanoa junaa odotettavan
ComplPastPartPassVS : VS -> NP -> VPSlash -> VP ; -- sanoa junaa odotetun ComplPastPartPassVS : VS -> NP -> VPSlash -> VP ; -- sanoa junaa odotetun

View File

@@ -87,7 +87,14 @@ lin
s = np.s ! NPCase Gen ++ s = np.s ! NPCase Gen ++
infVP SCNom Pos np.a vp Inf2Iness infVP SCNom Pos np.a vp Inf2Iness
} ; } ;
Inf2InessRAdv vp = {
s = \\a =>
infVP SCNom Pos infAdvAgr vp Inf2Iness ++ BIND ++
case vp.s.h of {Back => possSuffix a ; Front => possSuffixFront a}
} ;
Inf2InessPassAdv vp = { Inf2InessPassAdv vp = {
s = infVP SCNom Pos infAdvAgr vp Inf2InessPass s = infVP SCNom Pos infAdvAgr vp Inf2InessPass
} ; } ;
@@ -158,9 +165,9 @@ lin
ComplPastPartActVS vs np vp = ComplPastPartActVS vs np vp =
insertExtrapos (subjPartVP np vp (NPCase Gen) (PastPartAct (AN (NCase Sg Gen)))) (predSV vs) ; insertExtrapos (subjPartVP np vp (NPCase Gen) (PastPartAct (AN (NCase Sg Gen)))) (predSV vs) ;
ComplPresPartActAgrVS vs vp = ComplPresPartActReflVS vs vp =
insertObj (\\_,_,agr => subjPartAgrVP vp (PresPartAct (AN (NPossGen Sg))) agr) (predSV vs) ; insertObj (\\_,_,agr => subjPartAgrVP vp (PresPartAct (AN (NPossGen Sg))) agr) (predSV vs) ;
ComplPastPartActAgrVS vs vp = ComplPastPartActReflVS vs vp =
insertObj (\\_,_,agr => subjPartAgrVP vp (PastPartAct (AN (NPossGen Sg))) agr) (predSV vs) ; insertObj (\\_,_,agr => subjPartAgrVP vp (PastPartAct (AN (NPossGen Sg))) agr) (predSV vs) ;
ComplPresPartPassVS vs np vps = ComplPresPartPassVS vs np vps =

View File

@@ -10,23 +10,20 @@ data Fact = Fact {
content :: [Fact], content :: [Fact],
tense :: Maybe GTemp, tense :: Maybe GTemp,
polarity :: Maybe GPol, polarity :: Maybe GPol,
source :: Maybe GNP,
attitude :: Maybe GVS,
agent :: Maybe GNP, agent :: Maybe GNP,
action :: Maybe GVP action :: Either GVS GVP
} }
initFact = Fact [] Nothing Nothing Nothing Nothing Nothing Nothing initFact = Fact [] Nothing Nothing Nothing (Left undefined)
factTree fact = case action fact of factTree fact = GUseCl mtense mpolarity (GPredVP magent mvp)
(Just vp) -> where
GUttS $ GUseCl mvp = case action fact of
(maybe presentTense id (tense fact)) Left vs -> GComplVS vs (factTree (head (content fact))) ---- head -> ambiguity
(maybe positivePol id (polarity fact)) Right vp -> vp
(GPredVP mtense = maybe presentTense id (tense fact)
(maybe (maybe Gsomebody_NP id (source fact)) id (agent fact)) mpolarity = maybe positivePol id (polarity fact)
vp) magent = maybe GX_NP id (agent fact)
_ -> GUttNP Gnothing_NP
presentTense = GTTAnt GTPres GASimul presentTense = GTTAnt GTPres GASimul
pastTense = GTTAnt GTPast GASimul pastTense = GTTAnt GTPast GASimul
@@ -38,28 +35,53 @@ negativePol = GPNeg
facts :: Infinitive.Tree a -> [Fact] facts :: Infinitive.Tree a -> [Fact]
facts t = case t of facts t = case t of
GUseCl temp pol s ->
[f{
tense = Just temp,
polarity = Just pol
} | f <- facts s]
GAdjCN (GAgentPartAP np vpslash) cn -> GAdjCN (GAgentPartAP np vpslash) cn ->
[initFact{ [initFact{
tense = Just perfectTense, tense = Just perfectTense,
agent = Just np, agent = Just np,
action = Just (GComplSlash vpslash (GMassNP cn))}] action = Right (GComplSlash vpslash (GMassNP cn))}]
GPredVP np (GComplPresPartActAgrVS vs vp) -> GPredVP ag (GUseComp (GCompAP (GAgentPartAP np vpslash))) ->
[initFact{ [initFact{
attitude = Just vs, tense = Just perfectTense,
source = Just np, agent = Just np,
action = Just vp}] action = Right (GComplSlash vpslash ag)}]
GPredVP np (GComplPastPartActAgrVS vs vp) -> GPredVP np (GComplPresPartActReflVS vs vp) ->
[initFact{tense = Just perfectTense, [initFact{
attitude = Just vs, agent = Just np,
source = Just np, action = Left vs,
action = Just vp}] content = [
initFact{
agent = Just np,
action = Right vp
}]}]
GPredVP np (GComplPastPartActReflVS vs vp) ->
[initFact{
agent = Just np,
action = Left vs,
content = [
initFact{
tense = Just perfectTense,
agent = Just np,
action = Right vp
}]}]
GPredVP np (GAdvVP vp adv) -> GPredVP np (GAdvVP vp adv) ->
[f{source = Just np} | f <- facts vp ++ facts adv] [f{agent = Just np} | f <- facts vp ++ facts adv]
---- GPredVP np (GRAdvVP vp (GInf1LongRAdv vpa)) ->
---- [f{agent = Just np, action = } | f <- facts vp ++ facts adv]
GPredVP np vp -> GPredVP np vp ->
[f{source = Just np} | f <- facts vp] [f{agent = Just np} | f <- facts vp]
GUseV v -> GUseV v ->
[initFact{ [initFact{
action = Just t}] action = Right t}]
GUseV2 v ->
[initFact{
action = Right (GComplSlash (GSlashV2a v) GY_NP)}]
{-
GComplPresPartActVS vs np vp -> GComplPresPartActVS vs np vp ->
[initFact{ [initFact{
attitude = attitude =
@@ -85,6 +107,7 @@ facts t = case t of
tense = Just perfectTense, tense = Just perfectTense,
attitude = Just vs, attitude = Just vs,
action = Just (GComplSlash vpslash np)}] action = Just (GComplSlash vpslash np)}]
-}
_ -> composOpMPlus facts t _ -> composOpMPlus facts t