1
0
forked from GitHub/gf-core

shallow grammar experiment

This commit is contained in:
aarne
2006-11-01 16:45:07 +00:00
parent 81b973e197
commit b8a454a7d3
4 changed files with 168 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
abstract Shallow = Lexicon, Grammar-[
VP,
ImpersCl, -- : VP -> Cl ; -- it rains
GenericCl, -- : VP -> Cl ; -- one sleeps
ProgrVP, -- : VP -> VP ; -- be sleeping
ImpPl1, -- : VP -> Utt ; -- let's go
UttVP, -- : VP -> Utt ; -- to sleep
QuestVP, -- : IP -> VP -> QCl ; -- who walks
RelVP, -- : RP -> VP -> RCl ; -- who loves John
PredVP, -- : NP -> VP -> Cl ; -- John walks
PredSCVP, -- : SC -> VP -> Cl ; -- that you go makes me happy
ImpVP, -- : VP -> Imp ; -- go
EmbedVP, -- : VP -> SC ; -- to go
UseV , -- : V -> VP ; -- sleep
ComplV2 , -- : V2 -> NP -> VP ; -- use it
ComplV3 , -- : V3 -> NP -> NP -> VP ; -- send a message to her
ComplVV , -- : VV -> VP -> VP ; -- want to run
ComplVS , -- : VS -> S -> VP ; -- know that she runs
ComplVQ , -- : VQ -> QS -> VP ; -- ask if she runs
ComplVA , -- : VA -> AP -> VP ; -- look red
ComplV2A, -- : V2A -> NP -> AP -> VP ; -- paint the house red
ReflV2 , -- : V2 -> VP ; -- use itself
UseComp , -- : Comp -> VP ; -- be warm
PassV2 , -- : V2 -> VP ; -- be used
AdvVP , -- : VP -> Adv -> VP ; -- sleep here
AdVVP -- : AdV -> VP -> VP ; -- always sleep
]
** {
cat
Advs ;
AdVs ;
fun
NoAdv : Advs ;
NoAdV : AdVs ;
ConAdv : Adv -> Advs -> Advs ;
ConAdV : AdV -> AdVs -> AdVs ;
PredUseV : NP -> AdVs -> V -> Advs -> Cl ;
PredComplV2 : NP -> AdVs -> V2 -> NP -> Advs -> Cl ;
PredUseComp : NP -> AdVs -> Comp -> Advs -> Cl ;
QuestUseV : IP -> AdVs -> V -> Advs -> QCl ;
QuestComplV2 : IP -> AdVs -> V2 -> NP -> Advs -> QCl ;
QuestUseComp : IP -> AdVs -> Comp -> Advs -> QCl ;
}

View File

@@ -0,0 +1,33 @@
--# -path=.:alltenses:prelude
concrete ShallowEng of Shallow = LexiconEng, GrammarEng - [
VP,
ImpersCl,
GenericCl,
ProgrVP,
ImpPl1,
UttVP,
QuestVP,
RelVP,
PredVP,
PredSCVP,
ImpVP,
EmbedVP,
UseV ,
ComplV2 ,
ComplV3 ,
ComplVV ,
ComplVS ,
ComplVQ ,
ComplVA ,
ComplV2A,
ReflV2 ,
UseComp ,
PassV2 ,
AdvVP ,
AdVVP
]
** ShallowI with
(Grammar = GrammarEng) ;

View File

@@ -0,0 +1,33 @@
--# -path=.:alltenses:prelude
concrete ShallowFre of Shallow = LexiconFre, GrammarFre - [
VP,
ImpersCl,
GenericCl,
ProgrVP,
ImpPl1,
UttVP,
QuestVP,
RelVP,
PredVP,
PredSCVP,
ImpVP,
EmbedVP,
UseV ,
ComplV2 ,
ComplV3 ,
ComplVV ,
ComplVS ,
ComplVQ ,
ComplVA ,
ComplV2A,
ReflV2 ,
UseComp ,
PassV2 ,
AdvVP ,
AdVVP
]
** ShallowI with
(Grammar = GrammarFre) ;

View File

@@ -0,0 +1,54 @@
incomplete concrete ShallowI of Shallow = Lexicon, Grammar-[
VP,
ImpersCl, -- : VP -> Cl ; -- it rains
GenericCl, -- : VP -> Cl ; -- one sleeps
ProgrVP, -- : VP -> VP ; -- be sleeping
ImpPl1, -- : VP -> Utt ; -- let's go
UttVP, -- : VP -> Utt ; -- to sleep
QuestVP, -- : IP -> VP -> QCl ; -- who walks
RelVP, -- : RP -> VP -> RCl ; -- who loves John
PredVP, -- : NP -> VP -> Cl ; -- John walks
PredSCVP, -- : SC -> VP -> Cl ; -- that you go makes me happy
ImpVP, -- : VP -> Imp ; -- go
EmbedVP, -- : VP -> SC ; -- to go
UseV , -- : V -> VP ; -- sleep
ComplV2 , -- : V2 -> NP -> VP ; -- use it
ComplV3 , -- : V3 -> NP -> NP -> VP ; -- send a message to her
ComplVV , -- : VV -> VP -> VP ; -- want to run
ComplVS , -- : VS -> S -> VP ; -- know that she runs
ComplVQ , -- : VQ -> QS -> VP ; -- ask if she runs
ComplVA , -- : VA -> AP -> VP ; -- look red
ComplV2A, -- : V2A -> NP -> AP -> VP ; -- paint the house red
ReflV2 , -- : V2 -> VP ; -- use itself
UseComp , -- : Comp -> VP ; -- be warm
PassV2 , -- : V2 -> VP ; -- be used
AdvVP , -- : VP -> Adv -> VP ; -- sleep here
AdVVP -- : AdV -> VP -> VP ; -- always sleep
]
** open Grammar, Prelude in {
lincat
Advs = Adv ;
AdVs = AdV ;
lin
NoAdv = {s = [] ; lock_Adv = <>} ;
NoAdV = {s = [] ; lock_AdV = <>} ;
ConAdv a as = {s = a.s ++ as.s ; lock_Adv = <>} ;
ConAdV a as = {s = a.s ++ as.s ; lock_AdV = <>} ;
PredUseV np adVs v advs =
PredVP np (AdvVP (AdVVP adVs (UseV v)) advs) ;
PredComplV2 np adVs v ob advs =
PredVP np (AdvVP (AdVVP adVs (ComplV2 v ob)) advs) ;
PredUseComp np adVs v advs =
PredVP np (AdvVP (AdVVP adVs (UseComp v)) advs) ;
QuestUseV np adVs v advs =
QuestVP np (AdvVP (AdVVP adVs (UseV v)) advs) ;
QuestComplV2 np adVs v ob advs =
QuestVP np (AdvVP (AdVVP adVs (ComplV2 v ob)) advs) ;
QuestUseComp np adVs v advs =
QuestVP np (AdvVP (AdVVP adVs (UseComp v)) advs) ;
}