summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-11-14 17:39:05 +0000
committeraarne <aarne@cs.chalmers.se>2008-11-14 17:39:05 +0000
commit6b4f9715e6acb87e05b8229bafd1f41d906e6409 (patch)
tree518851d83cee0d75283694f65ceddf671d299bc9
parentd5fa908250517476d69fae92ec7648a207007c0a (diff)
attempto almost complete to spec now
-rw-r--r--examples/attempto/Attempto.gf18
-rw-r--r--examples/attempto/AttemptoI.gf39
-rw-r--r--examples/attempto/LexAttempto.gf4
-rw-r--r--examples/attempto/LexAttemptoEng.gf8
-rw-r--r--examples/attempto/LexAttemptoFre.gf11
-rw-r--r--examples/attempto/LexAttemptoGer.gf11
-rw-r--r--examples/attempto/LexAttemptoSwe.gf11
7 files changed, 73 insertions, 29 deletions
diff --git a/examples/attempto/Attempto.gf b/examples/attempto/Attempto.gf
index c52ad2c29..546e525eb 100644
--- a/examples/attempto/Attempto.gf
+++ b/examples/attempto/Attempto.gf
@@ -24,6 +24,7 @@ cat IP ;
cat IAdv ;
cat QS ;
cat Text ;
+cat RP ;
fun aNP : CN -> NP ;
fun theNP : CN -> NP ;
@@ -81,12 +82,12 @@ fun they_NP : NP ;
-- reflexive pronouns: itself, himself, herself, himself/herself, themselves
-fun someone_NP : NP ;
+--fun someone_NP : NP ;
fun somebody_NP : NP ;
fun something_NP : NP ;
-fun noone_NP : NP ;
+--fun noone_NP : NP ;
fun nothing_NP : NP ;
-fun not_everyoneNP : NP ;
+--fun not_everyoneNP : NP ;
fun not_everybodyNP : NP ;
fun not_everythingNP : NP ;
@@ -127,13 +128,14 @@ fun relCN : CN -> RS -> CN ;
fun relNP : NP -> RS -> NP ;
fun andRS : RS -> RS -> RS ;
fun orRS : RS -> RS -> RS ;
-fun eachRS : RS -> RS ; -- each of who
fun suchCN : CN -> S -> CN ;
-fun predRS : VP -> RS ;
-fun slashRS : NP -> V2 -> RS ;
+fun predRS : RP -> VP -> RS ;
+fun slashRS : RP -> NP -> V2 -> RS ;
+fun which_RP : RP ;
+fun eachRP : RP ;
-- 2.2.4
@@ -191,8 +193,8 @@ fun coordS : Conj -> S -> S -> S ;
fun and_Conj : Conj ;
fun or_Conj : Conj ;
-fun comma_and_Conj : Conj ; -- lower precedence
-fun comma_or_Conj : Conj ;
+fun commaAnd_Conj : Conj ; -- lower precedence
+fun commaOr_Conj : Conj ;
-- 3.4.3
diff --git a/examples/attempto/AttemptoI.gf b/examples/attempto/AttemptoI.gf
index 6f7ae91ff..1841cd197 100644
--- a/examples/attempto/AttemptoI.gf
+++ b/examples/attempto/AttemptoI.gf
@@ -27,6 +27,7 @@ lincat IAdv = Syntax.IAdv ;
lincat QS = Syntax.QS ;
lincat Text = Syntax.Text ;
lincat ACEText = Syntax.Text ;
+lincat RP = Syntax.RP ;
lincat MCN = Syntax.CN ;
lincat PP = Adv ;
@@ -67,6 +68,7 @@ lin floatNP = symb ;
lin it_NP = mkNP it_Pron ;
lin he_NP = mkNP he_Pron ;
lin she_NP = mkNP she_Pron ;
+lin he_she_NP = mkNP slash_Conj (mkNP he_Pron) (mkNP she_Pron) ;
lin they_NP = mkNP they_Pron ;
lin conjNP = mkNP and_Conj ;
@@ -89,10 +91,10 @@ lin not_at_mostNP ca cn = mkNP not_Predet (mkNP (mkCard at_most_AdN ca) cn) ;
lin more_thanNP ca = mkNP (mkCard (mkAdN more_CAdv) ca) ;
lin not_more_thanNP ca cn = mkNP not_Predet (mkNP (mkCard (mkAdN more_CAdv) ca) cn) ;
-lin nothing_butNP cn = mkNP nothing_but_Predet (mkNP a_Art plNum cn) ;
-lin nothing_butMassNP cn = mkNP nothing_but_Predet (mkNP cn) ;
---lin nobody_butNP : PN -> NP ; -- nobody but John
---lin no_butNP : CN -> PN -> NP ; -- no man but John
+lin nothing_butNP cn = mkNP nothing_NP (mkAdv except_Prep (mkNP a_Art plNum cn)) ;
+lin nothing_butMassNP cn = mkNP nothing_NP (mkAdv except_Prep (mkNP cn)) ;
+lin nobody_butNP pn = mkNP nobody_NP (mkAdv except_Prep (mkNP pn)) ;
+lin no_butNP cn pn = mkNP (mkNP no_Quant plNum cn) (mkAdv except_Prep (mkNP pn)) ;
lincat Unit = CN ;
@@ -118,16 +120,16 @@ lin superlAP a = mkAP (mkOrd a) ;
lin relCN = mkCN ;
--lin relNP = mkNP ;
-{-
-lin andRS : RS -> RS -> RS ;
-lin orRS : RS -> RS -> RS ;
-lin eachRS : RS -> RS ; -- each of who
--}
+
+lin andRS = mkRS and_Conj ;
+lin orRS = mkRS or_Conj ;
+lin eachRP = mkRP part_Prep (mkNP each_Det) Syntax.which_RP ;
lin suchCN cn s = mkCN (mkAP (mkAP such_A) s) cn ;
-lin predRS vp = mkRS (mkRCl which_RP vp) ;
-lin slashRS np v2 = mkRS (mkRCl which_RP np v2) ;
+lin predRS rp vp = mkRS (mkRCl rp vp) ;
+lin slashRS rp np v2 = mkRS (mkRCl rp np v2) ;
+lin which_RP = Syntax.which_RP ;
-- 2.2.4
@@ -140,8 +142,7 @@ lin genOwnNP np cn = genitiveNP np (mkCN own_A cn) ;
lin vpS np vp = mkS (mkCl np vp) ;
lin neg_vpS np vp = mkS negativePol (mkCl np vp) ;
-
---lin not_provably_vpS : NP -> VP -> S ;
+lin not_provably_vpS np vp = mkS negativePol (mkCl np (mkVP vp provably_Adv)) ;
lin vVP = mkVP ;
lin v2VP = mkVP ;
@@ -194,15 +195,17 @@ lin coordS = mkS ;
lin and_Conj = Syntax.and_Conj ;
lin or_Conj = Syntax.or_Conj ;
---lin comma_and_Conj : Conj ; -- lower precedence
---lin comma_or_Conj : Conj ;
+lin commaAnd_Conj = comma_and_Conj ;
+lin commaOr_Conj = comma_or_Conj ;
-- 3.4.3
lin for_everyS cn = mkS (mkAdv for_Prep (mkNP every_Det cn)) ;
lin for_eachS cn = mkS (mkAdv for_Prep (mkNP each_Det cn)) ;
---lin for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men
---lin for_allMassS : MCN -> S -> S ; -- for all water
+lin for_each_ofS card cn =
+ mkS (mkAdv for_Prep (mkNP (mkNP each_Det) (mkAdv part_Prep (mkNP card cn)))) ;
+lin for_allMassS cn =
+ mkS (mkAdv for_Prep (mkNP all_Predet (mkNP cn))) ;
-- 3.4.4
@@ -219,7 +222,7 @@ lin necessaryS s = mkS (adj_thatCl necessary_A s) ;
lin not_necessaryS s = mkS negativePol (adj_thatCl necessary_A s) ;
---lin thatS s t = mkS ;
+--lin thatS s t = mkS s (mkAdv that_Subj t) ;
-- 3.5
diff --git a/examples/attempto/LexAttempto.gf b/examples/attempto/LexAttempto.gf
index 5b2ce5d9f..7bfa593d3 100644
--- a/examples/attempto/LexAttempto.gf
+++ b/examples/attempto/LexAttempto.gf
@@ -17,5 +17,9 @@ oper
-- kg_Unit : Unit ;
each_Det : Det ;
+ that_Subj : Subj ;
+
+ comma_and_Conj : Conj ;
+ comma_or_Conj : Conj ;
}
diff --git a/examples/attempto/LexAttemptoEng.gf b/examples/attempto/LexAttemptoEng.gf
index c1ea27b4c..65ed0aa28 100644
--- a/examples/attempto/LexAttemptoEng.gf
+++ b/examples/attempto/LexAttemptoEng.gf
@@ -4,6 +4,7 @@ instance LexAttemptoEng of LexAttempto =
SyntaxEng,
ParadigmsEng,
ConstructX,
+ MakeStructuralEng,
IrregEng in {
oper
@@ -22,4 +23,11 @@ oper
each_Det = ExtraEng.each_Det ;
+ that_Subj = mkSubj "that" ;
+
+ comma_and_Conj = mkConj [] ", and" plural ;
+ comma_or_Conj = mkConj [] ", or" singular ;
+ slash_Conj = mkConj [] "/" singular ;
+
+
}
diff --git a/examples/attempto/LexAttemptoFre.gf b/examples/attempto/LexAttemptoFre.gf
index 91ebc32c4..91cd2eadf 100644
--- a/examples/attempto/LexAttemptoFre.gf
+++ b/examples/attempto/LexAttemptoFre.gf
@@ -1,5 +1,7 @@
instance LexAttemptoFre of LexAttempto =
- open ExtraFre, SyntaxFre, ParadigmsFre, ConstructX, IrregFre in {
+ open ExtraFre, SyntaxFre, ParadigmsFre, ConstructX,
+ MakeStructuralFre,
+ IrregFre in {
oper
possible_A = mkA "possible" ;
@@ -15,4 +17,11 @@ oper
each_Det = every_Det ; ----
+ that_Subj = mkSubj "que" ; ---- qu'
+
+ comma_and_Conj = mkConj [] ", et" plural ;
+ comma_or_Conj = mkConj [] ", ou" singular ;
+ slash_Conj = mkConj [] "/" singular ;
+
+
}
diff --git a/examples/attempto/LexAttemptoGer.gf b/examples/attempto/LexAttemptoGer.gf
index 9274d80f3..38bc4935d 100644
--- a/examples/attempto/LexAttemptoGer.gf
+++ b/examples/attempto/LexAttemptoGer.gf
@@ -1,5 +1,7 @@
instance LexAttemptoGer of LexAttempto =
- open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX, IrregGer in {
+ open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX,
+ MakeStructuralGer,
+ IrregGer in {
oper
possible_A = mkA "möglich" ;
@@ -15,4 +17,11 @@ oper
each_Det = every_Det ;
+ that_Subj = mkSubj "daß" ;
+
+ comma_and_Conj = mkConj [] ", und" plural ;
+ comma_or_Conj = mkConj [] ", oder" singular ;
+ slash_Conj = mkConj [] "/" singular ;
+
+
}
diff --git a/examples/attempto/LexAttemptoSwe.gf b/examples/attempto/LexAttemptoSwe.gf
index 04cf4398c..31d145f19 100644
--- a/examples/attempto/LexAttemptoSwe.gf
+++ b/examples/attempto/LexAttemptoSwe.gf
@@ -1,5 +1,6 @@
instance LexAttemptoSwe of LexAttempto =
- open ExtraSwe, SyntaxSwe, ParadigmsSwe, ConstructX, IrregSwe in {
+ open ExtraSwe, SyntaxSwe, ParadigmsSwe, ConstructX,
+ MakeStructuralSwe, IrregSwe in {
oper
possible_A = mkA "möjlig" ;
@@ -14,4 +15,12 @@ oper
genitiveNP np = mkNP (GenNP np) ;
each_Det = every_Det ; ----
+
+ that_Subj = mkSubj "att" ;
+
+ comma_and_Conj = mkConj [] ", och" plural ;
+ comma_or_Conj = mkConj [] ", eller" singular ;
+ slash_Conj = mkConj [] "/" singular ;
+
+
}