mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-24 18:28:55 -06:00
relatives, except Finnish
This commit is contained in:
@@ -101,6 +101,7 @@ cat
|
|||||||
|
|
||||||
VP ; -- verb phrase, e.g. "switch the light on"
|
VP ; -- verb phrase, e.g. "switch the light on"
|
||||||
VPI ; -- infinitive verb phrase e.g. "switch the light on", "not have run"
|
VPI ; -- infinitive verb phrase e.g. "switch the light on", "not have run"
|
||||||
|
VCl ; -- same (variable ant.) e.g. "walk"/"have walked"
|
||||||
|
|
||||||
--!
|
--!
|
||||||
--3 Adverbs and prepositions/cases
|
--3 Adverbs and prepositions/cases
|
||||||
@@ -184,5 +185,6 @@ cat
|
|||||||
TP ; -- tense x polarity selector
|
TP ; -- tense x polarity selector
|
||||||
Tense ; -- (abstract) tense
|
Tense ; -- (abstract) tense
|
||||||
Ant ; -- (abstract) anteriority
|
Ant ; -- (abstract) anteriority
|
||||||
|
Pol ; -- polarity (positive or negative)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,40 @@
|
|||||||
--1 Rules for predication forming clauses
|
--1 Rules for predication forming clauses
|
||||||
--
|
--
|
||||||
-- This module treats predications in a shallow way, without right-branching
|
-- This module treats predications in a shallow way, without right-branching
|
||||||
-- $VP$ structures, which have the disadvantage of duplicating rules but the
|
-- $VP$ structures. This has the disadvantage of duplicating rules but the
|
||||||
-- advantage of fast parsing due to elimination of discontinuous constituents.
|
-- advantage of fast parsing due to elimination of discontinuous
|
||||||
|
-- constituents. Also the canonical GF structures (in $.gfc$) files
|
||||||
|
-- get smaller, because much more pruning of case alternatives can
|
||||||
|
-- be performed at compile time.
|
||||||
--
|
--
|
||||||
-- The principal way of forming sentences ($S$) is by combining a noun phrase
|
-- Each of the rules below has the following structure:
|
||||||
-- with a verb and its complements.
|
--
|
||||||
|
-- "Subject -> Verb -> Complements -> Clause"
|
||||||
|
--
|
||||||
|
-- What complements are needed depends on the type of the verb.
|
||||||
|
-- For instance, $V$ takes no complement, $V2$ takes one $NP$
|
||||||
|
-- complement, $VS$ takes an $S$ complement, etc. There is an elegant
|
||||||
|
-- way of expressing this using dependent types:
|
||||||
|
--
|
||||||
|
-- (v : VType) -> Subj -> Verb v -> Compl v -> Clause
|
||||||
|
--
|
||||||
|
-- Since there are 12 verb types in our category system, using this
|
||||||
|
-- rule would be economical. The effect is amplified by another
|
||||||
|
-- distinction that the rules make: there are separate sets of
|
||||||
|
-- rules just differing in what type the subject and
|
||||||
|
-- the resulting clause have. There are four different types:
|
||||||
|
--
|
||||||
|
--* $SPred$ (declarative clause, from $NP$ to $Cl$),
|
||||||
|
--* $QPred$ (interrogative clause, from $IP$ to $QCl$),
|
||||||
|
--* $RPred$ (relative clause, from $RP$ to $RCl$),
|
||||||
|
--* $IPred$ (infinitive clause, from no subject to $VCl$).
|
||||||
|
--
|
||||||
|
-- The ultimate dependent type formalization of all the 4x12 rules is
|
||||||
|
--
|
||||||
|
-- (n : NType) -> (v : VType) -> Subj n -> Verb v -> Compl v -> Clause n
|
||||||
|
--
|
||||||
|
-- In the following, however, an expanded set of rules with no
|
||||||
|
-- dependent types is shown.
|
||||||
|
|
||||||
abstract Clause = Categories ** {
|
abstract Clause = Categories ** {
|
||||||
|
|
||||||
@@ -20,11 +49,11 @@ fun
|
|||||||
SPredVV : NP -> VV -> VPI -> Cl ; -- "John must walk"
|
SPredVV : NP -> VV -> VPI -> Cl ; -- "John must walk"
|
||||||
SPredVQ : NP -> VQ -> QS -> Cl ; -- "John asks who will come"
|
SPredVQ : NP -> VQ -> QS -> Cl ; -- "John asks who will come"
|
||||||
SPredVA : NP -> VA -> AP -> Cl ; -- "John looks ill"
|
SPredVA : NP -> VA -> AP -> Cl ; -- "John looks ill"
|
||||||
SPredV2A : NP -> V2A -> NP ->AP ->Cl ; -- "John paints the house red"
|
SPredV2A : NP -> V2A -> NP -> AP -> Cl ; -- "John paints the house red"
|
||||||
SPredSubjV2V : NP -> V2V -> NP ->VPI ->Cl ; -- "John promises Mary to leave"
|
SPredSubjV2V : NP -> V2V -> NP -> VPI -> Cl ; -- "John promises Mary to leave"
|
||||||
SPredObjV2V : NP -> V2V -> NP -> VPI -> Cl ; -- "John asks me to come"
|
SPredObjV2V : NP -> V2V -> NP -> VPI -> Cl ; -- "John asks me to come"
|
||||||
SPredV2S : NP -> V2S -> NP -> S -> Cl ; -- "John told me that it is good"
|
SPredV2S : NP -> V2S -> NP -> S -> Cl ; -- "John told me that it is good"
|
||||||
SPredV2Q : NP -> V2Q -> NP -> QS -> Cl ; -- "John asked me if it is good"
|
SPredV2Q : NP -> V2Q -> NP -> QS -> Cl ; -- "John asked me if it is good"
|
||||||
|
|
||||||
SPredAP : NP -> AP -> Cl ; -- "John is old"
|
SPredAP : NP -> AP -> Cl ; -- "John is old"
|
||||||
SPredCN : NP -> CN -> Cl ; -- "John is a man"
|
SPredCN : NP -> CN -> Cl ; -- "John is a man"
|
||||||
@@ -54,7 +83,7 @@ fun
|
|||||||
QPredAdv : IP -> Adv -> QCl ; -- "who is in France"
|
QPredAdv : IP -> Adv -> QCl ; -- "who is in France"
|
||||||
|
|
||||||
QPredProgVP : IP -> VPI -> QCl ; -- "who is eating"
|
QPredProgVP : IP -> VPI -> QCl ; -- "who is eating"
|
||||||
{-
|
|
||||||
RPredV : RP -> V -> RCl ; -- "who walks"
|
RPredV : RP -> V -> RCl ; -- "who walks"
|
||||||
RPredPassV : RP -> V -> RCl ; -- "who is seen"
|
RPredPassV : RP -> V -> RCl ; -- "who is seen"
|
||||||
RPredV2 : RP -> V2 -> NP -> RCl ; -- "who sees Mary"
|
RPredV2 : RP -> V2 -> NP -> RCl ; -- "who sees Mary"
|
||||||
@@ -64,11 +93,11 @@ fun
|
|||||||
RPredVV : RP -> VV -> VPI -> RCl ; -- "who must walk"
|
RPredVV : RP -> VV -> VPI -> RCl ; -- "who must walk"
|
||||||
RPredVQ : RP -> VQ -> QS -> RCl ; -- "who asks who will come"
|
RPredVQ : RP -> VQ -> QS -> RCl ; -- "who asks who will come"
|
||||||
RPredVA : RP -> VA -> AP -> RCl ; -- "who looks ill"
|
RPredVA : RP -> VA -> AP -> RCl ; -- "who looks ill"
|
||||||
RPredV2A : RP -> V2A -> NP ->AP ->RCl ; -- "who paints the house red"
|
RPredV2A : RP -> V2A -> NP -> AP -> RCl ; -- "who paints the house red"
|
||||||
RPredSubjV2V : RP -> V2V -> NP ->VPI ->RCl ; -- "who promises Mary to leave"
|
RPredSubjV2V : RP -> V2V -> NP -> VPI -> RCl ; -- "who promises Mary to leave"
|
||||||
RPredObjV2V : RP -> V2V -> NP -> VPI -> RCl ; -- "who asks me to come"
|
RPredObjV2V : RP -> V2V -> NP -> VPI -> RCl ; -- "who asks me to come"
|
||||||
RPredV2S : RP -> V2S -> NP -> S -> RCl ; -- "who told me that it is good"
|
RPredV2S : RP -> V2S -> NP -> S -> RCl ; -- "who told me that it is good"
|
||||||
RPredV2Q : RP -> V2Q -> NP -> QS -> RCl ; -- "who asked me if it is good"
|
RPredV2Q : RP -> V2Q -> NP -> QS -> RCl ; -- "who asked me if it is good"
|
||||||
|
|
||||||
RPredAP : RP -> AP -> RCl ; -- "who is old"
|
RPredAP : RP -> AP -> RCl ; -- "who is old"
|
||||||
RPredCN : RP -> CN -> RCl ; -- "who is a man"
|
RPredCN : RP -> CN -> RCl ; -- "who is a man"
|
||||||
@@ -76,28 +105,28 @@ fun
|
|||||||
RPredAdv : RP -> Adv -> RCl ; -- "who is in France"
|
RPredAdv : RP -> Adv -> RCl ; -- "who is in France"
|
||||||
|
|
||||||
RPredProgVP : RP -> VPI -> RCl ; -- "who is eating"
|
RPredProgVP : RP -> VPI -> RCl ; -- "who is eating"
|
||||||
-}
|
|
||||||
IPredV : Ant -> V -> VPI ; -- "walk"
|
|
||||||
IPredPassV : Ant -> V -> VPI ; -- "be seen"
|
|
||||||
IPredV2 : Ant -> V2 -> NP -> VPI ; -- "see Mary"
|
|
||||||
IPredV3 : Ant -> V3 -> NP -> NP -> VPI ; -- "give Mary food"
|
|
||||||
IPredReflV2 : Ant -> V2 -> VPI ; -- "love himself"
|
|
||||||
IPredVS : Ant -> VS -> S -> VPI ; -- "say that Mary runs"
|
|
||||||
IPredVV : Ant -> VV -> VPI -> VPI ; -- "want to walk"
|
|
||||||
IPredVQ : Ant -> VQ -> QS -> VPI ; -- "ask who will come"
|
|
||||||
IPredVA : Ant -> VA -> AP -> VPI ; -- "look ill"
|
|
||||||
IPredV2A : Ant -> V2A -> NP ->AP ->VPI ; -- "paint the house red"
|
|
||||||
IPredSubjV2V : Ant -> V2V -> NP ->VPI ->VPI ; -- "promise Mary to leave"
|
|
||||||
IPredObjV2V : Ant -> V2V -> NP -> VPI ->VPI ; -- "ask me to come"
|
|
||||||
IPredV2S : Ant -> V2S -> NP -> S -> VPI ; -- "tell me that it is good"
|
|
||||||
IPredV2Q : Ant -> V2Q -> NP -> QS -> VPI ; -- "ask me if it is good"
|
|
||||||
|
|
||||||
IPredAP : Ant -> AP -> VPI ; -- "be old"
|
IPredV : V -> VCl ; -- "walk"
|
||||||
IPredCN : Ant -> CN -> VPI ; -- "be a man"
|
IPredPassV : V -> VCl ; -- "be seen"
|
||||||
IPredNP : Ant -> NP -> VPI ; -- "be Bill"
|
IPredV2 : V2 -> NP -> VCl ; -- "see Mary"
|
||||||
IPredAdv : Ant -> Adv -> VPI ; -- "be in France"
|
IPredV3 : V3 -> NP -> NP -> VCl ; -- "give Mary food"
|
||||||
|
IPredReflV2 : V2 -> VCl ; -- "love himself"
|
||||||
|
IPredVS : VS -> S -> VCl ; -- "say that Mary runs"
|
||||||
|
IPredVV : VV -> VPI -> VCl ; -- "want to walk"
|
||||||
|
IPredVQ : VQ -> QS -> VCl ; -- "ask who will come"
|
||||||
|
IPredVA : VA -> AP -> VCl ; -- "look ill"
|
||||||
|
IPredV2A : V2A -> NP -> AP -> VCl ; -- "paint the house red"
|
||||||
|
IPredSubjV2V : V2V -> NP -> VPI -> VCl ; -- "promise Mary to leave"
|
||||||
|
IPredObjV2V : V2V -> NP -> VPI -> VCl ; -- "ask me to come"
|
||||||
|
IPredV2S : V2S -> NP -> S -> VCl ; -- "tell me that it is good"
|
||||||
|
IPredV2Q : V2Q -> NP -> QS -> VCl ; -- "ask me if it is good"
|
||||||
|
|
||||||
IPredProgVP : Ant -> VPI -> VPI ; -- "be eating"
|
IPredAP : AP -> VCl ; -- "be old"
|
||||||
|
IPredCN : CN -> VCl ; -- "be a man"
|
||||||
|
IPredNP : NP -> VCl ; -- "be Bill"
|
||||||
|
IPredAdv : Adv -> VCl ; -- "be in France"
|
||||||
|
|
||||||
|
IPredProgVP : VPI -> VCl ; -- "be eating"
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
|
|||||||
@@ -50,27 +50,49 @@ incomplete concrete ClauseI of Clause = open Rules, Verbphrase in {
|
|||||||
|
|
||||||
QPredProgVP np vp = IntVP np (PredProgVP vp) ;
|
QPredProgVP np vp = IntVP np (PredProgVP vp) ;
|
||||||
|
|
||||||
IPredV a v = PosVP a (UseV v) ;
|
RPredV np v = RelVP np (UseV v) ;
|
||||||
IPredV2 a v x = PosVP a (ComplV2 v x) ;
|
RPredPassV np v = RelVP np (UsePassV v) ;
|
||||||
IPredPassV a v = PosVP a (UsePassV v) ;
|
RPredV2 np v x = RelVP np (ComplV2 v x) ;
|
||||||
IPredV3 a v x y = PosVP a (ComplV3 v x y) ;
|
RPredV3 np v x y = RelVP np (ComplV3 v x y) ;
|
||||||
IPredReflV2 a v = PosVP a (ComplReflV2 v) ;
|
RPredReflV2 np v = RelVP np (ComplReflV2 v) ;
|
||||||
IPredVS a v x = PosVP a (ComplVS v x) ;
|
RPredVS np v x = RelVP np (ComplVS v x) ;
|
||||||
IPredVV a v x = PosVP a (ComplVV v x) ;
|
RPredVV np v x = RelVP np (ComplVV v x) ;
|
||||||
IPredVQ a v x = PosVP a (ComplVQ v x) ;
|
RPredVQ np v x = RelVP np (ComplVQ v x) ;
|
||||||
IPredVA a v x = PosVP a (ComplVA v x) ;
|
RPredVA np v x = RelVP np (ComplVA v x) ;
|
||||||
IPredV2A a v x y = PosVP a (ComplV2A v x y) ;
|
RPredV2A np v x y = RelVP np (ComplV2A v x y) ;
|
||||||
IPredSubjV2V a v x y = PosVP a (ComplSubjV2V v x y) ;
|
RPredSubjV2V np v x y = RelVP np (ComplSubjV2V v x y) ;
|
||||||
IPredObjV2V a v x y = PosVP a (ComplObjV2V v x y) ;
|
RPredObjV2V np v x y = RelVP np (ComplObjV2V v x y) ;
|
||||||
IPredV2S a v x y = PosVP a (ComplV2S v x y) ;
|
RPredV2S np v x y = RelVP np (ComplV2S v x y) ;
|
||||||
IPredV2Q a v x y = PosVP a (ComplV2Q v x y) ;
|
RPredV2Q np v x y = RelVP np (ComplV2Q v x y) ;
|
||||||
|
|
||||||
IPredAP a v = PosVP a (PredAP v) ;
|
RPredAP np v = RelVP np (PredAP v) ;
|
||||||
IPredCN a v = PosVP a (PredCN v) ;
|
RPredCN np v = RelVP np (PredCN v) ;
|
||||||
IPredNP a v = PosVP a (PredNP v) ;
|
RPredNP np v = RelVP np (PredNP v) ;
|
||||||
IPredAdv a v = PosVP a (PredAdv v) ;
|
RPredAdv np v = RelVP np (PredAdv v) ;
|
||||||
|
|
||||||
IPredProgVP a vp = PosVP a (PredProgVP vp) ;
|
RPredProgVP np vp = RelVP np (PredProgVP vp) ;
|
||||||
|
|
||||||
|
IPredV v = UseVP (UseV v) ;
|
||||||
|
IPredV2 v x = UseVP (ComplV2 v x) ;
|
||||||
|
IPredPassV v = UseVP (UsePassV v) ;
|
||||||
|
IPredV3 v x y = UseVP (ComplV3 v x y) ;
|
||||||
|
IPredReflV2 v = UseVP (ComplReflV2 v) ;
|
||||||
|
IPredVS v x = UseVP (ComplVS v x) ;
|
||||||
|
IPredVV v x = UseVP (ComplVV v x) ;
|
||||||
|
IPredVQ v x = UseVP (ComplVQ v x) ;
|
||||||
|
IPredVA v x = UseVP (ComplVA v x) ;
|
||||||
|
IPredV2A v x y = UseVP (ComplV2A v x y) ;
|
||||||
|
IPredSubjV2V v x y = UseVP (ComplSubjV2V v x y) ;
|
||||||
|
IPredObjV2V v x y = UseVP (ComplObjV2V v x y) ;
|
||||||
|
IPredV2S v x y = UseVP (ComplV2S v x y) ;
|
||||||
|
IPredV2Q v x y = UseVP (ComplV2Q v x y) ;
|
||||||
|
|
||||||
|
IPredAP v = UseVP (PredAP v) ;
|
||||||
|
IPredCN v = UseVP (PredCN v) ;
|
||||||
|
IPredNP v = UseVP (PredNP v) ;
|
||||||
|
IPredAdv v = UseVP (PredAdv v) ;
|
||||||
|
|
||||||
|
IPredProgVP vp = UseVP (PredProgVP vp) ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- Use VPs
|
-- Use VPs
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ fun
|
|||||||
UseA2S : A2S -> AS ;
|
UseA2S : A2S -> AS ;
|
||||||
UseA2V : A2V -> AV ;
|
UseA2V : A2V -> AV ;
|
||||||
|
|
||||||
-- Formation of infinitival phrases.
|
-- Formation of tensed phrases.
|
||||||
|
|
||||||
AdjPart : V -> A ; -- past participle, e.g. "forgotten"
|
AdjPart : V -> A ; -- past participle, e.g. "forgotten"
|
||||||
|
|
||||||
@@ -90,6 +90,8 @@ fun
|
|||||||
UseRCl : TP -> RCl -> RS ;
|
UseRCl : TP -> RCl -> RS ;
|
||||||
UseQCl : TP -> QCl -> QS ;
|
UseQCl : TP -> QCl -> QS ;
|
||||||
|
|
||||||
|
UseVCl : Pol -> Ant -> VCl -> VPI ;
|
||||||
|
|
||||||
PosTP : Tense -> Ant -> TP ;
|
PosTP : Tense -> Ant -> TP ;
|
||||||
NegTP : Tense -> Ant -> TP ;
|
NegTP : Tense -> Ant -> TP ;
|
||||||
|
|
||||||
@@ -101,6 +103,9 @@ fun
|
|||||||
ASimul : Ant ;
|
ASimul : Ant ;
|
||||||
AAnter : Ant ;
|
AAnter : Ant ;
|
||||||
|
|
||||||
|
PPos : Pol ;
|
||||||
|
PNeg : Pol ;
|
||||||
|
|
||||||
--!
|
--!
|
||||||
--3 Adverbs
|
--3 Adverbs
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ abstract Verbphrase = Categories ** {
|
|||||||
RelVP : RP -> VP -> RCl ; -- "who walks", "who doesn't walk"
|
RelVP : RP -> VP -> RCl ; -- "who walks", "who doesn't walk"
|
||||||
IntVP : IP -> VP -> QCl ; -- "who walks"
|
IntVP : IP -> VP -> QCl ; -- "who walks"
|
||||||
|
|
||||||
PosVP, NegVP : Ant -> VP -> VPI ; -- to eat, not to eat
|
UseVP : VP -> VCl ; -- to eat, not to eat
|
||||||
|
|
||||||
AdvVP : VP -> AdV -> VP ; -- "always walks"
|
AdvVP : VP -> AdV -> VP ; -- "always walks"
|
||||||
SubjVP : VP -> Subj -> S -> VP ; -- "(a man who) sings when he runs"
|
SubjVP : VP -> Subj -> S -> VP ; -- "(a man who) sings when he runs"
|
||||||
|
|||||||
@@ -20,13 +20,13 @@ ExactTime h = ss (h.s ++ "akkurat") ;
|
|||||||
NumHour n = {s = n.s ! Neutr} ;
|
NumHour n = {s = n.s ! Neutr} ;
|
||||||
NumMinute n = {s = n.s ! Neutr} ;
|
NumMinute n = {s = n.s ! Neutr} ;
|
||||||
|
|
||||||
monday = regN "mandag" masculine ;
|
monday = regN "mandag" utrum ;
|
||||||
tuesday = regN "tirsdag" masculine ;
|
tuesday = regN "tirsdag" utrum ;
|
||||||
wednesday = regN "onsdag" masculine ;
|
wednesday = regN "onsdag" utrum ;
|
||||||
thursday = regN "torsdag" masculine ;
|
thursday = regN "torsdag" utrum ;
|
||||||
friday = regN "fredag" masculine ;
|
friday = regN "fredag" utrum ;
|
||||||
saturday = regN "lørdag" masculine ;
|
saturday = regN "lørdag" utrum ;
|
||||||
sunday = regN "søndag" masculine ;
|
sunday = regN "søndag" utrum ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ lincat
|
|||||||
-- = {s : VForm => Str ; s1 : Particle}
|
-- = {s : VForm => Str ; s1 : Particle}
|
||||||
VP = {s,s2 : Bool => SForm => Agr => Str ; isAux : Bool} ;
|
VP = {s,s2 : Bool => SForm => Agr => Str ; isAux : Bool} ;
|
||||||
VPI = {s : VIForm => Agr => Str ; s1 : Str} ; -- s1 is "not" or []
|
VPI = {s : VIForm => Agr => Str ; s1 : Str} ; -- s1 is "not" or []
|
||||||
|
VCl = {s : Bool => Anteriority => VIForm => Agr => Str ; s1 : Bool => Str} ;
|
||||||
V2 = TransVerb ;
|
V2 = TransVerb ;
|
||||||
-- = Verb ** {s3 : Preposition} ;
|
-- = Verb ** {s3 : Preposition} ;
|
||||||
V3 = TransVerb ** {s4 : Preposition} ;
|
V3 = TransVerb ** {s4 : Preposition} ;
|
||||||
@@ -69,6 +70,7 @@ lincat
|
|||||||
|
|
||||||
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- the Str field is dummy
|
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- the Str field is dummy
|
||||||
Tense = {s : Str ; t : Tense} ;
|
Tense = {s : Str ; t : Tense} ;
|
||||||
|
Pol = {s : Str ; p : Bool} ;
|
||||||
Ant = {s : Str ; a : Anteriority} ;
|
Ant = {s : Str ; a : Anteriority} ;
|
||||||
|
|
||||||
PP = {s : Str} ;
|
PP = {s : Str} ;
|
||||||
|
|||||||
@@ -51,27 +51,50 @@ concrete ClauseEng of Clause = CategoriesEng **
|
|||||||
|
|
||||||
QPredProgVP np vp = predBeGroupQ np (vp.s ! VIPresPart) ;
|
QPredProgVP np vp = predBeGroupQ np (vp.s ! VIPresPart) ;
|
||||||
|
|
||||||
IPredV a v = predVerbI True a v (complVerb v) ;
|
|
||||||
IPredPassV a v = predVerbI True a v (passVerb v) ;
|
|
||||||
IPredV2 a v x = predVerbI True a v (complTransVerb v x) ;
|
|
||||||
IPredReflV2 a v = predVerbI True a v (reflTransVerb v) ;
|
|
||||||
IPredV3 a v x y = predVerbI True a v (complDitransVerb v x y) ;
|
|
||||||
IPredVS a v x = predVerbI True a v (complSentVerb v x) ;
|
|
||||||
IPredVV a v x = predVerbI True a (aux2verb v) (complVerbVerb v x) ;
|
|
||||||
IPredVQ a v x = predVerbI True a v (complQuestVerb v x) ;
|
|
||||||
IPredVA a v x = predVerbI True a v (complAdjVerb v x) ;
|
|
||||||
IPredV2A a v x y = predVerbI True a v (complDitransAdjVerb v x y) ;
|
|
||||||
IPredSubjV2V a v x y = predVerbI True a v (complDitransVerbVerb False v x y) ;
|
|
||||||
IPredObjV2V a v x y = predVerbI True a v (complDitransVerbVerb True v x y) ;
|
|
||||||
IPredV2S a v x y = predVerbI True a v (complDitransSentVerb v x y) ;
|
|
||||||
IPredV2Q a v x y = predVerbI True a v (complDitransQuestVerb v x y) ;
|
|
||||||
|
|
||||||
IPredAP a v = predBeGroupI True a v.s ;
|
RPredV np v = relVerbClause np v (complVerb v) ;
|
||||||
IPredCN a v = predBeGroupI True a (complCommNoun v) ;
|
RPredPassV np v = predBeGroupR np (passVerb v) ;
|
||||||
IPredNP a v = predBeGroupI True a (complNounPhrase v) ;
|
RPredV2 np v x = relVerbClause np v (complTransVerb v x) ;
|
||||||
IPredAdv a v = predBeGroupI True a (complAdverb v) ;
|
RPredReflV2 np v = relVerbClause np v (reflTransVerb v) ;
|
||||||
|
RPredV3 np v x y = relVerbClause np v (complDitransVerb v x y) ;
|
||||||
|
RPredVS np v x = relVerbClause np v (complSentVerb v x) ;
|
||||||
|
RPredVV np v x = relVerbClause np (aux2verb v) (complVerbVerb v x) ;
|
||||||
|
RPredVQ np v x = relVerbClause np v (complQuestVerb v x) ;
|
||||||
|
RPredVA np v x = relVerbClause np v (complAdjVerb v x) ;
|
||||||
|
RPredV2A np v x y = relVerbClause np v (complDitransAdjVerb v x y) ;
|
||||||
|
RPredSubjV2V np v x y = relVerbClause np v (complDitransVerbVerb False v x y) ;
|
||||||
|
RPredObjV2V np v x y = relVerbClause np v (complDitransVerbVerb True v x y) ;
|
||||||
|
RPredV2S np v x y = relVerbClause np v (complDitransSentVerb v x y) ;
|
||||||
|
RPredV2Q np v x y = relVerbClause np v (complDitransQuestVerb v x y) ;
|
||||||
|
|
||||||
IPredProgVP a vp = predBeGroupI True a (vp.s ! VIPresPart) ;
|
RPredAP np v = predBeGroupR np v.s ;
|
||||||
|
RPredCN np v = predBeGroupR np (complCommNoun v) ;
|
||||||
|
RPredNP np v = predBeGroupR np (complNounPhrase v) ;
|
||||||
|
RPredAdv np v = predBeGroupR np (complAdverb v) ;
|
||||||
|
|
||||||
|
RPredProgVP np vp = predBeGroupR np (vp.s ! VIPresPart) ;
|
||||||
|
|
||||||
|
IPredV v = predVerbI v (complVerb v) ;
|
||||||
|
IPredPassV v = predVerbI v (passVerb v) ;
|
||||||
|
IPredV2 v x = predVerbI v (complTransVerb v x) ;
|
||||||
|
IPredReflV2 v = predVerbI v (reflTransVerb v) ;
|
||||||
|
IPredV3 v x y = predVerbI v (complDitransVerb v x y) ;
|
||||||
|
IPredVS v x = predVerbI v (complSentVerb v x) ;
|
||||||
|
IPredVV v x = predVerbI (aux2verb v) (complVerbVerb v x) ;
|
||||||
|
IPredVQ v x = predVerbI v (complQuestVerb v x) ;
|
||||||
|
IPredVA v x = predVerbI v (complAdjVerb v x) ;
|
||||||
|
IPredV2A v x y = predVerbI v (complDitransAdjVerb v x y) ;
|
||||||
|
IPredSubjV2V v x y = predVerbI v (complDitransVerbVerb False v x y) ;
|
||||||
|
IPredObjV2V v x y = predVerbI v (complDitransVerbVerb True v x y) ;
|
||||||
|
IPredV2S v x y = predVerbI v (complDitransSentVerb v x y) ;
|
||||||
|
IPredV2Q v x y = predVerbI v (complDitransQuestVerb v x y) ;
|
||||||
|
|
||||||
|
IPredAP v = predBeGroupI v.s ;
|
||||||
|
IPredCN v = predBeGroupI (complCommNoun v) ;
|
||||||
|
IPredNP v = predBeGroupI (complNounPhrase v) ;
|
||||||
|
IPredAdv v = predBeGroupI (complAdverb v) ;
|
||||||
|
|
||||||
|
IPredProgVP vp = predBeGroupI (vp.s ! VIPresPart) ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- Use VPs
|
-- Use VPs
|
||||||
|
|||||||
@@ -91,6 +91,10 @@ lin
|
|||||||
UseCl tp cl = {s = tp.s ++ cl.s ! Dir ! tp.b ! VFinite tp.t tp.a} ;
|
UseCl tp cl = {s = tp.s ++ cl.s ! Dir ! tp.b ! VFinite tp.t tp.a} ;
|
||||||
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
|
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
|
||||||
UseRCl tp cl = {s = \\a => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! a} ;
|
UseRCl tp cl = {s = \\a => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! a} ;
|
||||||
|
UseVCl p a cl = {
|
||||||
|
s = \\v,ag => p.s ++ a.s ++ cl.s ! p.p ! a.a ! v ! ag ;
|
||||||
|
s1 = cl.s1 ! p.p
|
||||||
|
} ;
|
||||||
|
|
||||||
PosTP t a = {s = t.s ++ a.s ; b = True ; t = t.t ; a = a.a} ;
|
PosTP t a = {s = t.s ++ a.s ; b = True ; t = t.t ; a = a.a} ;
|
||||||
NegTP t a = {s = t.s ++ a.s ; b = False ; t = t.t ; a = a.a} ;
|
NegTP t a = {s = t.s ++ a.s ; b = False ; t = t.t ; a = a.a} ;
|
||||||
@@ -103,6 +107,9 @@ lin
|
|||||||
ASimul = {s = [] ; a = Simul} ;
|
ASimul = {s = [] ; a = Simul} ;
|
||||||
AAnter = {s = [] ; a = Anter} ;
|
AAnter = {s = [] ; a = Anter} ;
|
||||||
|
|
||||||
|
PPos = {s = [] ; p = True} ;
|
||||||
|
PNeg = {s = [] ; p = False} ;
|
||||||
|
|
||||||
-- Adverbs.
|
-- Adverbs.
|
||||||
|
|
||||||
AdjAdv a = ss (a.s ! AAdv) ;
|
AdjAdv a = ss (a.s ! AAdv) ;
|
||||||
|
|||||||
@@ -428,7 +428,14 @@ oper
|
|||||||
s1 : Str -- "not" or []
|
s1 : Str -- "not" or []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
VerbClause = {
|
||||||
|
s : Bool => Anteriority => VIForm => Agr => Str ;
|
||||||
|
s1 : Bool => Str -- "not" or []
|
||||||
|
} ;
|
||||||
|
|
||||||
-- To form an infinitival group
|
-- To form an infinitival group
|
||||||
|
|
||||||
|
{- ---- obsolete
|
||||||
predVerbGroup : Bool -> {s : Str ; a : Anteriority} -> VerbGroup -> VerbPhrase =
|
predVerbGroup : Bool -> {s : Str ; a : Anteriority} -> VerbGroup -> VerbPhrase =
|
||||||
\b,ant,vg -> {
|
\b,ant,vg -> {
|
||||||
s = table {
|
s = table {
|
||||||
@@ -437,23 +444,22 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
s1 = if_then_Str b [] "not"
|
s1 = if_then_Str b [] "not"
|
||||||
} ;
|
} ;
|
||||||
|
-}
|
||||||
|
|
||||||
-- All negative verb phrase behave as auxiliary ones in questions.
|
predVerbI : Verb -> Complement -> VerbClause =
|
||||||
|
\verb,comp ->
|
||||||
predVerbI : Bool -> {s : Str ; a : Anteriority} -> Verb -> Complement -> VerbPhrase =
|
{s = \\p,a =>
|
||||||
\b,ant,verb,comp ->
|
let
|
||||||
let
|
inf = case a of {
|
||||||
ans = ant.s ; --- just to avoid ? in parsing
|
Simul => verb.s ! InfImp ;
|
||||||
inf = case ant.a of {
|
Anter => "have" ++ verb.s ! PPart
|
||||||
Simul => verb.s ! InfImp ;
|
}
|
||||||
Anter => "have" ++ verb.s ! PPart
|
in
|
||||||
}
|
table {
|
||||||
in
|
VIInfinit => \\ag => inf ++ verb.s1 ++ comp ! ag ;
|
||||||
{s = table {
|
VIPresPart => \\ag => verb.s ! PresPart ++ comp ! ag
|
||||||
VIInfinit => \\a => ans ++ inf ++ verb.s1 ++ comp ! a ;
|
|
||||||
VIPresPart => \\a => ans ++ verb.s ! PresPart ++ comp ! a
|
|
||||||
} ;
|
} ;
|
||||||
s1 = if_then_Str b [] "not"
|
s1 = \\b => if_then_Str b [] "not"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- A simple verb can be made into a verb phrase with an empty complement.
|
-- A simple verb can be made into a verb phrase with an empty complement.
|
||||||
@@ -489,16 +495,16 @@ oper
|
|||||||
|
|
||||||
Complement = Agr => Str ;
|
Complement = Agr => Str ;
|
||||||
|
|
||||||
predBeGroupI : Bool -> {s : Str ; a : Anteriority} -> Complement -> VerbPhrase =
|
predBeGroupI : Complement -> VerbClause =
|
||||||
\b,ant,vg ->
|
\vg ->
|
||||||
{s = table {
|
{s = \\b,ant => table {
|
||||||
VIInfinit => \\a => ant.s ++ case ant.a of {
|
VIInfinit => \\a => case ant of {
|
||||||
Simul => "be" ++ vg ! a ;
|
Simul => "be" ++ vg ! a ;
|
||||||
Anter => "have" ++ "been" ++ vg ! a
|
Anter => "have" ++ "been" ++ vg ! a
|
||||||
} ;
|
} ;
|
||||||
VIPresPart => \\a => "being" ++ vg ! a
|
VIPresPart => \\a => "being" ++ vg ! a
|
||||||
} ;
|
} ;
|
||||||
s1 = if_then_Str b [] "not" ;
|
s1 = \\b => if_then_Str b [] "not" ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -981,9 +987,12 @@ oper
|
|||||||
|
|
||||||
slashVerbVerb : NounPhrase -> VerbVerb -> TransVerb -> ClauseSlashNounPhrase =
|
slashVerbVerb : NounPhrase -> VerbVerb -> TransVerb -> ClauseSlashNounPhrase =
|
||||||
\you,want,lookat ->
|
\you,want,lookat ->
|
||||||
let youlookat = (predVerbClause you (aux2verb want)
|
let
|
||||||
(complVerbVerb want (predVerbI True {s = [] ; a = Simul} lookat
|
tolook = predVerbI lookat (complVerb lookat) ;
|
||||||
(complVerb lookat)))).s
|
youlookat =
|
||||||
|
(predVerbClause you (aux2verb want)
|
||||||
|
(complVerbVerb want
|
||||||
|
{s = tolook.s ! True ! Simul ; s1 = tolook.s1 ! True})).s
|
||||||
in
|
in
|
||||||
{s = table {
|
{s = table {
|
||||||
DirQ => youlookat ! Inv ;
|
DirQ => youlookat ! Inv ;
|
||||||
@@ -1036,6 +1045,25 @@ oper
|
|||||||
(predVerbGroupClause (relNounPhrase who wa.g wa.n) walks).s ! Dir ! b ! sf
|
(predVerbGroupClause (relNounPhrase who wa.g wa.n) walks).s ! Dir ! b ! sf
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
relVerbClause : RelPron -> Verb -> Complement -> RelClause = \who,walk,here ->
|
||||||
|
{s = \\b,sf,a =>
|
||||||
|
let
|
||||||
|
wa = fromAgr a ;
|
||||||
|
who : NounPhrase = relNounPhrase who wa.g wa.n ;
|
||||||
|
whowalks : Clause = predVerbClause who walk here
|
||||||
|
in
|
||||||
|
whowalks.s ! Dir ! b ! sf
|
||||||
|
} ;
|
||||||
|
|
||||||
|
predBeGroupR : RelPron -> Complement -> RelClause = \who,old ->
|
||||||
|
{s = \\b,sf,a =>
|
||||||
|
let
|
||||||
|
wa = fromAgr a ;
|
||||||
|
whoisold = predBeGroup (relNounPhrase who wa.g wa.n) old
|
||||||
|
in
|
||||||
|
whoisold.s ! Dir ! b ! sf
|
||||||
|
} ;
|
||||||
|
|
||||||
relSlash : RelPron -> ClauseSlashNounPhrase -> RelClause = \who,yousee ->
|
relSlash : RelPron -> ClauseSlashNounPhrase -> RelClause = \who,yousee ->
|
||||||
{s = \\b,sf,a =>
|
{s = \\b,sf,a =>
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -137,6 +137,14 @@ oper
|
|||||||
|
|
||||||
param RelForm = RSimple Case | RComplex Gender Number Case ;
|
param RelForm = RSimple Case | RComplex Gender Number Case ;
|
||||||
|
|
||||||
|
oper RelFormA = RelForm ;
|
||||||
|
npRelForm : NPFormA -> RelFormA = \np -> case np of {
|
||||||
|
Ton c => RSimple c ;
|
||||||
|
Aton c => RSimple c ;
|
||||||
|
Poss _ _ => RSimple genitive
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
oper RelFormA = RelForm ;
|
oper RelFormA = RelForm ;
|
||||||
|
|
||||||
-- Verbs: conversion from full verbs to present-tense verbs.
|
-- Verbs: conversion from full verbs to present-tense verbs.
|
||||||
|
|||||||
@@ -97,6 +97,14 @@ oper
|
|||||||
|
|
||||||
oper RelFormA = RelForm ;
|
oper RelFormA = RelForm ;
|
||||||
|
|
||||||
|
npRelForm : NPFormA -> RelFormA = \np -> case np of {
|
||||||
|
Ton c => RSimple c ;
|
||||||
|
Aton c => RSimple c ;
|
||||||
|
Poss _ _ => RSimple genitive
|
||||||
|
} ;
|
||||||
|
|
||||||
|
oper RelFormA = RelForm ;
|
||||||
|
|
||||||
--2 Relative pronouns
|
--2 Relative pronouns
|
||||||
--
|
--
|
||||||
-- The simple (atonic) relative pronoun shows genuine variation in all of the
|
-- The simple (atonic) relative pronoun shows genuine variation in all of the
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ lincat
|
|||||||
-- = {s : VF => Str} ;
|
-- = {s : VF => Str} ;
|
||||||
VP = {s : Bool => Gender => VPForm => Str} ;
|
VP = {s : Bool => Gender => VPForm => Str} ;
|
||||||
VPI = {s : VIForm => Gender => Number => Person => Str} ;
|
VPI = {s : VIForm => Gender => Number => Person => Str} ;
|
||||||
|
VCl = {s : Bool => Anteriority => VIForm => Gender => Number => Person => Str} ;
|
||||||
V2 = TransVerb ;
|
V2 = TransVerb ;
|
||||||
-- = Verb ** {s2 : Preposition ; c : CaseA} ;
|
-- = Verb ** {s2 : Preposition ; c : CaseA} ;
|
||||||
V3 = TransVerb ** {s3 : Preposition ; c3 : CaseA} ;
|
V3 = TransVerb ** {s3 : Preposition ; c3 : CaseA} ;
|
||||||
@@ -73,6 +74,7 @@ lincat
|
|||||||
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- s-field is dummy
|
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- s-field is dummy
|
||||||
Tense = {s : Str ; t : Tense} ;
|
Tense = {s : Str ; t : Tense} ;
|
||||||
Ant = {s : Str ; a : Anteriority} ;
|
Ant = {s : Str ; a : Anteriority} ;
|
||||||
|
Pol = {s : Str ; p : Bool} ;
|
||||||
|
|
||||||
Adv = {s : Str} ;
|
Adv = {s : Str} ;
|
||||||
AdV = {s : Str} ;
|
AdV = {s : Str} ;
|
||||||
|
|||||||
@@ -143,8 +143,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! subj.g ! subj.n ! P3)
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! subj.g ! subj.n ! P3)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
-- QPredProgVP
|
|
||||||
|
|
||||||
QPredAP subj adj =
|
QPredAP subj adj =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) (adj.s ! AF subj.g subj.n)) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) (adj.s ! AF subj.g subj.n)) ;
|
||||||
QPredCN subj cn =
|
QPredCN subj cn =
|
||||||
@@ -156,81 +154,159 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
|
|
||||||
QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ;
|
QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ;
|
||||||
|
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RPredV np v =
|
||||||
|
sats2rel (mkSats (relNounPhrase np) v) ;
|
||||||
|
RPredPassV subj v =
|
||||||
|
sats2rel (mkSatsCopula (relNounPhrase subj) (v.s ! VPart
|
||||||
|
(pgen2gen subj.g) Sg)) ; ---- subj.n
|
||||||
|
RPredV2 np v y =
|
||||||
|
sats2rel (mkSatsObject (relNounPhrase np) v y) ;
|
||||||
|
RPredV3 subj verb obj1 obj2 =
|
||||||
|
sats2rel (
|
||||||
|
insertObject (mkSatsObject (relNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2
|
||||||
|
) ;
|
||||||
|
RPredReflV2 subj verb =
|
||||||
|
sats2rel (
|
||||||
|
mkSatsObject (relNounPhrase subj)
|
||||||
|
{s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse}
|
||||||
|
(reflPronNounPhrase (pgen2gen subj.g) Sg P3)) ;
|
||||||
|
RPredVS subj verb sent =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos (mkSats (relNounPhrase subj) verb)
|
||||||
|
(\\b => embedConj ++ sent.s ! subordMode verb b)) ; ---- mn
|
||||||
|
RPredVQ subj verb quest =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos (mkSats (relNounPhrase subj) verb) (\\_ => quest.s ! IndirQ)) ;
|
||||||
|
RPredV2S subj verb obj sent =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject (relNounPhrase subj) verb obj)
|
||||||
|
(\\b => embedConj ++ sent.s ! subordMode verb b)
|
||||||
|
) ; ---- mn ;
|
||||||
|
RPredV2Q subj verb obj quest =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject (relNounPhrase subj) verb obj)
|
||||||
|
(\\_ => quest.s ! IndirQ)) ;
|
||||||
|
RPredVA subj verb adj =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos (mkSats (relNounPhrase subj) verb)
|
||||||
|
(\\_ => adj.s ! AF (pgen2gen subj.g) Sg)) ; ---- subj.n, etc
|
||||||
|
RPredV2A subj verb obj adj =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject (relNounPhrase subj) verb obj)
|
||||||
|
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
||||||
|
RPredVV subj verb vp =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSats (relNounPhrase subj) verb)
|
||||||
|
(\\_ => prepCase verb.c ++
|
||||||
|
vp.s ! VIInfinit ! (pgen2gen subj.g) ! (relNounPhrase subj).n ! P3)
|
||||||
|
) ;
|
||||||
|
RPredObjV2V subj verb obj vp =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject (relNounPhrase subj) verb obj)
|
||||||
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen obj.g ! obj.n ! obj.p)
|
||||||
|
) ;
|
||||||
|
RPredSubjV2V subj verb obj vp =
|
||||||
|
sats2rel (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject (relNounPhrase subj) verb obj)
|
||||||
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! (pgen2gen subj.g) ! Sg ! P3)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
RPredAP subj adj =
|
||||||
|
sats2rel (mkSatsCopula (relNounPhrase subj) (adj.s ! AF (pgen2gen subj.g) Sg)) ;
|
||||||
|
RPredCN subj cn =
|
||||||
|
sats2rel (mkSatsCopula (relNounPhrase subj) (indefNoun Sg cn)) ;
|
||||||
|
RPredNP subj np =
|
||||||
|
sats2rel (mkSatsCopula (relNounPhrase subj) (np.s ! stressed nominative)) ;
|
||||||
|
RPredAdv subj adv =
|
||||||
|
sats2rel (mkSatsCopula (relNounPhrase subj) adv.s) ;
|
||||||
|
|
||||||
|
RPredProgVP np vp = sats2rel (progressiveSats (relNounPhrase np) vp) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----- gender and number of Adj
|
----- gender and number of Adj
|
||||||
|
|
||||||
IPredV a v =
|
IPredV v =
|
||||||
sats2verbPhrase a (mkSats pronImpers v) ;
|
sats2verbPhrase (mkSats pronImpers v) ;
|
||||||
IPredV2 a v y =
|
IPredV2 v y =
|
||||||
sats2verbPhrase a (mkSatsObject pronImpers v y) ;
|
sats2verbPhrase (mkSatsObject pronImpers v y) ;
|
||||||
IPredAP a adj =
|
IPredAP adj =
|
||||||
sats2verbPhrase a (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ;
|
sats2verbPhrase (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ;
|
||||||
IPredPassV a v =
|
IPredPassV v =
|
||||||
sats2verbPhrase a (mkSatsCopula pronImpers (v.s ! VPart (pgen2gen pronImpers.g) pronImpers.n)) ;
|
sats2verbPhrase (mkSatsCopula pronImpers (v.s ! VPart (pgen2gen pronImpers.g) pronImpers.n)) ;
|
||||||
IPredV3 a verb obj1 obj2 =
|
IPredV3 verb obj1 obj2 =
|
||||||
sats2verbPhrase a (insertObject (mkSatsObject pronImpers verb obj1) verb.c3 verb.s3 obj2) ;
|
sats2verbPhrase (insertObject (mkSatsObject pronImpers verb obj1) verb.c3 verb.s3 obj2) ;
|
||||||
IPredReflV2 a verb =
|
IPredReflV2 verb =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
mkSatsObject pronImpers
|
mkSatsObject pronImpers
|
||||||
{s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse}
|
{s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse}
|
||||||
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
|
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
|
||||||
---- this produces huge cf - find out why! AR 16/3/2005
|
---- this produces huge cf - find out why! AR 16/3/2005
|
||||||
(reflPronNounPhrase (pgen2gen pronImpers.g) pronImpers.n pronImpers.p)) ;
|
(reflPronNounPhrase (pgen2gen pronImpers.g) pronImpers.n pronImpers.p)) ;
|
||||||
IPredVS a verb sent =
|
IPredVS verb sent =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos (mkSats pronImpers verb)
|
insertExtrapos (mkSats pronImpers verb)
|
||||||
(\\b => embedConj ++ sent.s ! subordMode verb b)) ; ---- mn
|
(\\b => embedConj ++ sent.s ! subordMode verb b)) ; ---- mn
|
||||||
IPredVQ a verb quest =
|
IPredVQ verb quest =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos (mkSats pronImpers verb) (\\_ => quest.s ! IndirQ)) ;
|
insertExtrapos (mkSats pronImpers verb) (\\_ => quest.s ! IndirQ)) ;
|
||||||
IPredV2S a verb obj sent =
|
IPredV2S verb obj sent =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject pronImpers verb obj)
|
(mkSatsObject pronImpers verb obj)
|
||||||
(\\b => embedConj ++ sent.s ! subordMode verb b)
|
(\\b => embedConj ++ sent.s ! subordMode verb b)
|
||||||
) ; ---- mn ;
|
) ; ---- mn ;
|
||||||
IPredV2Q a verb obj quest =
|
IPredV2Q verb obj quest =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject pronImpers verb obj)
|
(mkSatsObject pronImpers verb obj)
|
||||||
(\\_ => quest.s ! IndirQ)) ;
|
(\\_ => quest.s ! IndirQ)) ;
|
||||||
IPredVA a verb adj =
|
IPredVA verb adj =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos (mkSats pronImpers verb) (\\_ => adj.s ! AF (pgen2gen pronImpers.g) pronImpers.n)) ;
|
insertExtrapos (mkSats pronImpers verb) (\\_ => adj.s ! AF (pgen2gen pronImpers.g) pronImpers.n)) ;
|
||||||
IPredV2A a verb obj adj =
|
IPredV2A verb obj adj =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject pronImpers verb obj)
|
(mkSatsObject pronImpers verb obj)
|
||||||
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
||||||
IPredVV a verb vp =
|
IPredVV verb vp =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSats pronImpers verb)
|
(mkSats pronImpers verb)
|
||||||
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p)
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
IPredObjV2V a verb obj vp =
|
IPredObjV2V verb obj vp =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject pronImpers verb obj)
|
(mkSatsObject pronImpers verb obj)
|
||||||
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen obj.g ! obj.n ! obj.p)
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen obj.g ! obj.n ! obj.p)
|
||||||
) ;
|
) ;
|
||||||
IPredSubjV2V a verb obj vp =
|
IPredSubjV2V verb obj vp =
|
||||||
sats2verbPhrase a (
|
sats2verbPhrase (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject pronImpers verb obj)
|
(mkSatsObject pronImpers verb obj)
|
||||||
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p)
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
|
|
||||||
IPredCN a cn =
|
IPredCN cn =
|
||||||
sats2verbPhrase a (mkSatsCopula pronImpers (indefNoun pronImpers.n cn)) ;
|
sats2verbPhrase (mkSatsCopula pronImpers (indefNoun pronImpers.n cn)) ;
|
||||||
IPredNP a np =
|
IPredNP np =
|
||||||
sats2verbPhrase a (mkSatsCopula pronImpers (np.s ! stressed nominative)) ;
|
sats2verbPhrase (mkSatsCopula pronImpers (np.s ! stressed nominative)) ;
|
||||||
IPredAdv a adv =
|
IPredAdv adv =
|
||||||
sats2verbPhrase a (mkSatsCopula pronImpers adv.s) ;
|
sats2verbPhrase (mkSatsCopula pronImpers adv.s) ;
|
||||||
|
|
||||||
IPredProgVP a vp = sats2verbPhrase a (progressiveSats pronImpers vp) ;
|
IPredProgVP vp = sats2verbPhrase (progressiveSats pronImpers vp) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -84,6 +84,9 @@ lin
|
|||||||
ASimul = {s = [] ; a = Simul} ;
|
ASimul = {s = [] ; a = Simul} ;
|
||||||
AAnter = {s = [] ; a = Anter} ;
|
AAnter = {s = [] ; a = Anter} ;
|
||||||
|
|
||||||
|
PPos = {s = [] ; p = True} ;
|
||||||
|
PNeg = {s = [] ; p = False} ;
|
||||||
|
|
||||||
-- Adverbs.
|
-- Adverbs.
|
||||||
|
|
||||||
AdjAdv a = {s = a.s ! AA} ;
|
AdjAdv a = {s = a.s ! AA} ;
|
||||||
|
|||||||
@@ -434,6 +434,7 @@ param
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
VerbPhrase = {s : VIForm => Gender => Number => Person => Str} ;
|
VerbPhrase = {s : VIForm => Gender => Number => Person => Str} ;
|
||||||
|
VerbClause = {s : Bool => Anteriority => VIForm => Gender => Number => Person => Str} ;
|
||||||
|
|
||||||
vpf2vf : VPForm -> VF = \vpf -> case vpf of {
|
vpf2vf : VPForm -> VF = \vpf -> case vpf of {
|
||||||
VPF _ vf => vf
|
VPF _ vf => vf
|
||||||
@@ -737,7 +738,7 @@ oper
|
|||||||
RelSentence : Type = {s : Mode => Gender => Number => Person => Str} ;
|
RelSentence : Type = {s : Mode => Gender => Number => Person => Str} ;
|
||||||
|
|
||||||
mkGenRel : RelGen -> Gender -> Gender = \rg,g -> case rg of {
|
mkGenRel : RelGen -> Gender -> Gender = \rg,g -> case rg of {
|
||||||
RG gen => gen ;
|
PGen gen => gen ;
|
||||||
_ => g
|
_ => g
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -1312,12 +1313,32 @@ oper
|
|||||||
in
|
in
|
||||||
{s = \\b,f,_ => cl.s ! b ! f} ;
|
{s = \\b,f,_ => cl.s ! b ! f} ;
|
||||||
|
|
||||||
sats2verbPhrase : {s : Str ; a : Anteriority} -> Sats -> VerbPhrase =
|
|
||||||
\ant,sats -> {s = \\vi,g,n,p => ---- b,cf =>
|
{- ---- this does not yet get agrement right; have to integrate these two
|
||||||
|
RP = {s : RelForm => Str ; g : RelGen} ;
|
||||||
|
NP = {s : NPFormA => Str ; g : PronGen ;
|
||||||
|
n : Number ; p : Person ; c : ClitType} ;
|
||||||
|
RCl = {s : Bool => ClForm => Gender => Number => Person => Str} ;
|
||||||
|
RelGen = RNoGen | RG Gender ;
|
||||||
|
|
||||||
|
-}
|
||||||
|
sats2rel : Sats -> RelClause = \x ->
|
||||||
|
let cl = sats2clause x
|
||||||
|
in
|
||||||
|
{s = \\b,f,_,_,_ => cl.s ! b ! f} ;
|
||||||
|
relNounPhrase : RelPron -> NounPhrase = \r -> {
|
||||||
|
s = \\np => r.s ! npRelForm np ;
|
||||||
|
g = r.g ;
|
||||||
|
n = Sg ; ----
|
||||||
|
p = P3 ; ----
|
||||||
|
c = Clit0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
sats2verbPhrase : Sats -> VerbClause =
|
||||||
|
\sats -> {s = \\b,ant,vi,g,n,p =>
|
||||||
let
|
let
|
||||||
b = True ; ----
|
|
||||||
lui = sats.s3 ;
|
lui = sats.s3 ;
|
||||||
dire = verbVIForm {s = sats.s4 ; aux = sats.aux} ant.a
|
dire = verbVIForm {s = sats.s4 ; aux = sats.aux} ant
|
||||||
vi g n p sats.g2 sats.n2 ;
|
vi g n p sats.g2 sats.n2 ;
|
||||||
ai = dire.p1 ;
|
ai = dire.p1 ;
|
||||||
dit = dire.p2 ;
|
dit = dire.p2 ;
|
||||||
@@ -1328,7 +1349,6 @@ oper
|
|||||||
oui = sats.s7 ! b
|
oui = sats.s7 ! b
|
||||||
in
|
in
|
||||||
ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
|
ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
|
||||||
++ ant.s --- always [] ; hack to avoid ? in parsing
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- What happens to polarity and anteriority ?
|
---- What happens to polarity and anteriority ?
|
||||||
|
|||||||
@@ -25,8 +25,10 @@ param
|
|||||||
-- language. The same concerns those parameter types that depend on case.
|
-- language. The same concerns those parameter types that depend on case.
|
||||||
-- Certain cases can however be defined.
|
-- Certain cases can however be defined.
|
||||||
|
|
||||||
param
|
oper
|
||||||
RelGen = RNoGen | RG Gender ;
|
RelGen = PronGen ;
|
||||||
|
RNoGen = PNoGen ;
|
||||||
|
RG = PGen ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
CaseA : PType ;
|
CaseA : PType ;
|
||||||
@@ -43,6 +45,8 @@ oper
|
|||||||
|
|
||||||
RelFormA : PType ;
|
RelFormA : PType ;
|
||||||
|
|
||||||
|
npRelForm : NPFormA -> RelFormA ;
|
||||||
|
|
||||||
-- The genitive and dative cases are expressed by prepositions, except for
|
-- The genitive and dative cases are expressed by prepositions, except for
|
||||||
-- clitic pronouns. The accusative case only makes a difference for pronouns.
|
-- clitic pronouns. The accusative case only makes a difference for pronouns.
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ lincat
|
|||||||
V = Verb ;
|
V = Verb ;
|
||||||
-- = {s : VerbForm => Str ; s1 : Str} ;
|
-- = {s : VerbForm => Str ; s1 : Str} ;
|
||||||
VP = VerbGroup ;
|
VP = VerbGroup ;
|
||||||
|
VCl = {s : Bool => Anteriority => VIForm => Gender => Number => Person => Str} ;
|
||||||
VPI = {s : VIForm => Gender => Number => Person => Str} ;
|
VPI = {s : VIForm => Gender => Number => Person => Str} ;
|
||||||
V2 = TransVerb ;
|
V2 = TransVerb ;
|
||||||
-- = Verb ** {s2 : Preposition} ;
|
-- = Verb ** {s2 : Preposition} ;
|
||||||
@@ -48,6 +49,7 @@ lincat
|
|||||||
|
|
||||||
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- the Str field is dummy
|
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- the Str field is dummy
|
||||||
Tense = {s : Str ; t : Tense} ;
|
Tense = {s : Str ; t : Tense} ;
|
||||||
|
Pol = {s : Str ; p : Bool} ;
|
||||||
Ant = {s : Str ; a : Anteriority} ;
|
Ant = {s : Str ; a : Anteriority} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -68,7 +70,7 @@ lincat
|
|||||||
RS = {s : GenNum => Person => Str} ;
|
RS = {s : GenNum => Person => Str} ;
|
||||||
RCl = {s : Bool => SForm => GenNum => Person => Str} ;
|
RCl = {s : Bool => SForm => GenNum => Person => Str} ;
|
||||||
|
|
||||||
IP = NounPhrase ;
|
IP = IntPron ; -- = NounPhrase ;
|
||||||
IDet = {s : NounGender => Str ; n : Number ; b : SpeciesP} ;
|
IDet = {s : NounGender => Str ; n : Number ; b : SpeciesP} ;
|
||||||
QS = {s : QuestForm => Str} ;
|
QS = {s : QuestForm => Str} ;
|
||||||
QCl = {s : Bool => SForm => QuestForm => Str} ;
|
QCl = {s : Bool => SForm => QuestForm => Str} ;
|
||||||
|
|||||||
@@ -1,82 +0,0 @@
|
|||||||
--# -path=.:../abstract:../../prelude
|
|
||||||
|
|
||||||
incomplete concrete ClauseScand of Clause = CategoriesScand **
|
|
||||||
open Prelude, SyntaxScand in {
|
|
||||||
|
|
||||||
flags optimize=all ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
SPredV np v = predVerbGroupClause np (predVerb v) ;
|
|
||||||
SPredPassV np v = predVerbGroupClause np (passVerb v) ;
|
|
||||||
SPredV2 np v x = predVerbGroupClause np (complTransVerb v x) ;
|
|
||||||
SPredReflV2 np v = predVerbGroupClause np (reflTransVerb v) ;
|
|
||||||
SPredV3 np v x y = predVerbGroupClause np (complDitransVerb v x y) ;
|
|
||||||
SPredVS np v x = predVerbGroupClause np (complSentVerb v x) ;
|
|
||||||
SPredVV np v x = predVerbGroupClause np (complVerbVerb v x) ;
|
|
||||||
SPredVQ np v x = predVerbGroupClause np (complQuestVerb v x) ;
|
|
||||||
SPredVA np v x = predVerbGroupClause np (complAdjVerb v x) ;
|
|
||||||
SPredV2A np v x y = predVerbGroupClause np (complDitransAdjVerb v x y) ;
|
|
||||||
SPredSubjV2V np v x y = predVerbGroupClause np (complDitransVerbVerb
|
|
||||||
False v x y) ;
|
|
||||||
SPredObjV2V np v x y = predVerbGroupClause np (complDitransVerbVerb
|
|
||||||
True v x y) ;
|
|
||||||
SPredV2S np v x y = predVerbGroupClause np (complDitransSentVerb v x y) ;
|
|
||||||
SPredV2Q np v x y = predVerbGroupClause np (complDitransQuestVerb v x y) ;
|
|
||||||
|
|
||||||
SPredAP np v = predVerbGroupClause np (predAdjective v) ;
|
|
||||||
SPredSuperl np a = predVerbGroupClause np (predAdjective (superlAdjPhrase a)) ;
|
|
||||||
SPredCN np v = predVerbGroupClause np (predCommNoun v) ;
|
|
||||||
SPredNP np v = predVerbGroupClause np (predNounPhrase v) ;
|
|
||||||
SPredPP np v = predVerbGroupClause np (predAdverb v) ;
|
|
||||||
SPredAV np v x = predVerbGroupClause np (complVerbAdj v x) ;
|
|
||||||
SPredObjA2V np v x y = predVerbGroupClause np (complVerbAdj2 True v x y) ;
|
|
||||||
|
|
||||||
SPredProgVP = progressiveClause ;
|
|
||||||
|
|
||||||
QPredV np v = intVerbPhrase np (predVerb v) ;
|
|
||||||
QPredPassV np v = intVerbPhrase np (passVerb v) ;
|
|
||||||
QPredV2 np v x = intVerbPhrase np (complTransVerb v x) ;
|
|
||||||
QPredReflV2 np v = intVerbPhrase np (reflTransVerb v) ;
|
|
||||||
QPredV3 np v x y = intVerbPhrase np (complDitransVerb v x y) ;
|
|
||||||
QPredVS np v x = intVerbPhrase np (complSentVerb v x) ;
|
|
||||||
QPredVV np v x = intVerbPhrase np (complVerbVerb v x) ;
|
|
||||||
QPredVQ np v x = intVerbPhrase np (complQuestVerb v x) ;
|
|
||||||
QPredVA np v x = intVerbPhrase np (complAdjVerb v x) ;
|
|
||||||
QPredV2A np v x y = intVerbPhrase np (complDitransAdjVerb v x y) ;
|
|
||||||
QPredSubjV2V np v x y = intVerbPhrase np (complDitransVerbVerb
|
|
||||||
False v x y) ;
|
|
||||||
QPredObjV2V np v x y = intVerbPhrase np (complDitransVerbVerb
|
|
||||||
True v x y) ;
|
|
||||||
QPredV2S np v x y = intVerbPhrase np (complDitransSentVerb v x y) ;
|
|
||||||
QPredV2Q np v x y = intVerbPhrase np (complDitransQuestVerb v x y) ;
|
|
||||||
|
|
||||||
QPredAP np v = intVerbPhrase np (predAdjective v) ;
|
|
||||||
QPredSuperl np a = intVerbPhrase np (predAdjective (superlAdjPhrase a)) ;
|
|
||||||
QPredCN np v = intVerbPhrase np (predCommNoun v) ;
|
|
||||||
QPredNP np v = intVerbPhrase np (predNounPhrase v) ;
|
|
||||||
QPredPP np v = intVerbPhrase np (predAdverb v) ;
|
|
||||||
QPredAV np v x = intVerbPhrase np (complVerbAdj v x) ;
|
|
||||||
QPredObjA2V np v x y = intVerbPhrase np (complVerbAdj2 True v x y) ;
|
|
||||||
|
|
||||||
QPredProgVP np v = intVerbPhrase np (progressiveVerbPhrase v) ;
|
|
||||||
|
|
||||||
IPredV a v = predVerbGroupI True a (predVerb v) ;
|
|
||||||
IPredV2 a v x = predVerbGroupI True a (complTransVerb v x) ;
|
|
||||||
IPredAP a v = predVerbGroupI True a (predAdjective v) ;
|
|
||||||
|
|
||||||
{-
|
|
||||||
-- Use VPs
|
|
||||||
|
|
||||||
PredVP = predVerbGroupClause ;
|
|
||||||
IntVP = intVerbPhrase ;
|
|
||||||
RelVP = relVerbPhrase ;
|
|
||||||
|
|
||||||
|
|
||||||
PosVP tp = predVerbGroup True tp.a ;
|
|
||||||
NegVP tp = predVerbGroup False tp.a ;
|
|
||||||
|
|
||||||
AdvVP = adVerbPhrase ;
|
|
||||||
SubjVP = subjunctVerbPhrase ;
|
|
||||||
-}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -79,6 +79,9 @@ lin
|
|||||||
UseRCl tp cl =
|
UseRCl tp cl =
|
||||||
{s = \\gn,p => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! gn ! p} ;
|
{s = \\gn,p => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! gn ! p} ;
|
||||||
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
|
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
|
||||||
|
UseVCl po a cl = {
|
||||||
|
s = \\v,g,n,p => po.s ++ a.s ++ cl.s ! po.p ! a.a ! v ! g ! n ! p ;
|
||||||
|
} ;
|
||||||
|
|
||||||
PosTP t a = {s = t.s ++ a.s ; b = True ; t = t.t ; a = a.a} ;
|
PosTP t a = {s = t.s ++ a.s ; b = True ; t = t.t ; a = a.a} ;
|
||||||
NegTP t a = {s = t.s ++ a.s ; b = False ; t = t.t ; a = a.a} ;
|
NegTP t a = {s = t.s ++ a.s ; b = False ; t = t.t ; a = a.a} ;
|
||||||
@@ -91,6 +94,9 @@ lin
|
|||||||
ASimul = {s = [] ; a = Simul} ;
|
ASimul = {s = [] ; a = Simul} ;
|
||||||
AAnter = {s = [] ; a = Anter} ;
|
AAnter = {s = [] ; a = Anter} ;
|
||||||
|
|
||||||
|
PPos = {s = [] ; p = True} ;
|
||||||
|
PNeg = {s = [] ; p = False} ;
|
||||||
|
|
||||||
-- Adverbs.
|
-- Adverbs.
|
||||||
|
|
||||||
AdjAdv a = advPost (a.s ! adverbForm ! Nom) ;
|
AdjAdv a = advPost (a.s ! adverbForm ! Nom) ;
|
||||||
|
|||||||
@@ -559,6 +559,9 @@ oper
|
|||||||
VerbPhrase : Type = {
|
VerbPhrase : Type = {
|
||||||
s : VIForm => Gender => Number => Person => Str
|
s : VIForm => Gender => Number => Person => Str
|
||||||
} ;
|
} ;
|
||||||
|
VerbClause : Type = {
|
||||||
|
s : Bool => Anteriority => VIForm => Gender => Number => Person => Str
|
||||||
|
} ;
|
||||||
|
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
@@ -659,8 +662,21 @@ oper
|
|||||||
} ---- bo shadows b
|
} ---- bo shadows b
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
predVerbGroupI : Bool -> {s : Str ; a : Anteriority} -> VerbGroup -> VerbPhrase =
|
predVerbGroupI : VerbGroup -> VerbClause = \vg ->
|
||||||
predVerbGroup ;
|
let
|
||||||
|
vgs = vg.s1 ;
|
||||||
|
vgs3 : SForm => Gender => Number => Person => Str = \\sf,g,n,p =>
|
||||||
|
vg.s4 ! sf ++ vg.s5 ! g ! n ! p ++ vg.s6 ++ vg.s7 ;
|
||||||
|
in
|
||||||
|
{s = \\b,a =>
|
||||||
|
table {
|
||||||
|
VIInfinit => \\g,n,p =>
|
||||||
|
vgs ! VInfinit a ++ vg.s3 ! b ++ vgs3 ! VInfinit a ! g ! n ! p ;
|
||||||
|
VIImperat bo => \\g,n,p =>
|
||||||
|
vgs ! VImperat ++ vg.s3 ! b ++ vgs3 ! VImperat ! g ! n ! p
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
{- ----
|
{- ----
|
||||||
\b,ant,vg ->
|
\b,ant,vg ->
|
||||||
let vp = predVerbGroup b ant vg in
|
let vp = predVerbGroup b ant vg in
|
||||||
|
|||||||
@@ -51,8 +51,9 @@ incomplete concrete VerbphraseScand of Verbphrase = CategoriesScand **
|
|||||||
RelVP = relVerbPhrase ;
|
RelVP = relVerbPhrase ;
|
||||||
IntVP = intVerbPhrase ;
|
IntVP = intVerbPhrase ;
|
||||||
|
|
||||||
PosVP tp = predVerbGroup True tp ;
|
-- PosVP tp = predVerbGroup True tp ;
|
||||||
NegVP tp = predVerbGroup False tp ;
|
-- NegVP tp = predVerbGroup False tp ;
|
||||||
|
UseVP = predVerbGroupI ;
|
||||||
|
|
||||||
AdvVP = adVerbPhrase ;
|
AdvVP = adVerbPhrase ;
|
||||||
SubjVP = subjunctVerbPhrase ;
|
SubjVP = subjunctVerbPhrase ;
|
||||||
|
|||||||
@@ -93,6 +93,12 @@ oper
|
|||||||
|
|
||||||
oper RelFormA = RelForm ;
|
oper RelFormA = RelForm ;
|
||||||
|
|
||||||
|
npRelForm : NPFormA -> RelFormA = \np -> case np of {
|
||||||
|
Ton c => RSimple c ;
|
||||||
|
Aton c => RSimple c ;
|
||||||
|
Poss _ _ => RSimple genitive
|
||||||
|
} ;
|
||||||
|
|
||||||
--2 Relative pronouns
|
--2 Relative pronouns
|
||||||
--
|
--
|
||||||
-- The simple (atonic) relative pronoun shows genuine variation in all of the
|
-- The simple (atonic) relative pronoun shows genuine variation in all of the
|
||||||
|
|||||||
Reference in New Issue
Block a user