summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorinari <inari@chalmers.se>2014-06-19 10:02:23 +0000
committerinari <inari@chalmers.se>2014-06-19 10:02:23 +0000
commit12fb4ab1a248e2ef8b5a658015e295086604acb1 (patch)
treeafd01f2b9624825635fa940f6e040c8942f192f2 /examples
parentceb4beeb84d065b1bbb8d705f79e0ac83a642871 (diff)
fixed negation in PhrasebookDut
Diffstat (limited to 'examples')
-rw-r--r--examples/phrasebook/SentencesDut.gf47
-rw-r--r--examples/phrasebook/WordsDut.gf65
2 files changed, 78 insertions, 34 deletions
diff --git a/examples/phrasebook/SentencesDut.gf b/examples/phrasebook/SentencesDut.gf
index d97bf2e35..acad8d77e 100644
--- a/examples/phrasebook/SentencesDut.gf
+++ b/examples/phrasebook/SentencesDut.gf
@@ -1,13 +1,52 @@
concrete SentencesDut of Sentences = NumeralDut ** SentencesI -
- [SHaveNo,SHaveNoMass]
+ [SHaveNo,SHaveNoMass,
+ Proposition,Action, Is, IsMass, SProp, SPropNot, QProp,
+ AHaveCurr, ACitizen, ABePlace, AKnowSentence, AKnowPerson, AKnowQuestion,
+-- Nationality, Language,
+ QDoHave, QWhereDoVerbPhrase, QModVerbPhrase, QWhereModVerbPhrase, SHave, SHaveNo,
+ ADoVerbPhrase, AModVerbPhrase, ADoVerbPhrasePlace, AModVerbPhrasePlace]
with
(Syntax = SyntaxDut),
(Symbolic = SymbolicDut),
(Lexicon = LexiconDut) ** open Prelude, SyntaxDut in {
- lin
- SHaveNo p k = mkS (mkCl p.name have_V2 (mkNP no_Quant plNum k)) ;
- SHaveNoMass p k = mkS (mkCl p.name have_V2 (mkNP no_Quant k)) ;
+ lincat
+ Proposition, Action = Prop ;
+ oper
+ Prop = {pos : Cl ; neg : S} ; -- x F y ; x F niet/geen y
+ mkProp : Cl -> S -> Prop = \pos,neg -> {pos = pos ; neg = neg} ;
+ prop : Cl -> Prop = \cl -> mkProp cl (mkS negativePol cl) ;
+
+ lin
+ Is i q = prop (mkCl i q) ;
+ IsMass m q = prop (mkCl (mkNP m) q) ;
+ SProp p = mkS p.pos ;
+ SPropNot p = p.neg ;
+ QProp p = mkQS (mkQCl p.pos) ;
+
+ AHaveCurr p curr = prop (mkCl p.name have_V2 (mkNP aPl_Det curr)) ;
+ ACitizen p n = prop (mkCl p.name n) ;
+ ABePlace p place = prop (mkCl p.name place.at) ;
+
+ AKnowSentence p s = prop (mkCl p.name Lexicon.know_VS s) ;
+ AKnowQuestion p s = prop (mkCl p.name Lexicon.know_VQ s) ;
+ AKnowPerson p q = prop (mkCl p.name Lexicon.know_V2 q.name) ;
+
+ lincat
+ Nationality = {lang : CN ; country : NP ; prop : A} ;
+ Language = CN ; -- kein Deutsch
+
+-- the new things
+ lin
+ ADoVerbPhrase p vp = prop (mkCl p.name vp) ;
+ AModVerbPhrase m p vp = prop (mkCl p.name (mkVP m vp)) ;
+ ADoVerbPhrasePlace p vp x = prop (mkCl p.name (mkVP vp x.at)) ;
+ AModVerbPhrasePlace m p vp x = prop (mkCl p.name (mkVP m (mkVP vp x.at))) ;
+
+-- the old things
+-- lin
+-- SHaveNo p k = mkS (mkCl p.name have_V2 (mkNP no_Quant plNum k)) ;
+-- SHaveNoMass p k = mkS (mkCl p.name have_V2 (mkNP no_Quant k)) ;
}
diff --git a/examples/phrasebook/WordsDut.gf b/examples/phrasebook/WordsDut.gf
index cd7e7f472..7746e0fe4 100644
--- a/examples/phrasebook/WordsDut.gf
+++ b/examples/phrasebook/WordsDut.gf
@@ -3,7 +3,7 @@
concrete WordsDut of Words = SentencesDut **
- open SyntaxDut, (P = ParadigmsDut), (I = IrregDut), (L = LexiconDut), ExtraDut, Prelude in {
+ open SyntaxDut, (P = ParadigmsDut), (I = IrregDut), (L = LexiconDut), (R=ResDut), ExtraDut, Prelude in {
lin
@@ -133,45 +133,50 @@ ik ga te voet/ ik ga lopend
-- actions
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ; -- ik ben ... jaar
- AHasName p name = mkCl p.name (P.mkV2 I.heten_V) name ; -- ik heet ...
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ; -- ik heb ... kinderen
- AHasRoom p num = mkCl p.name have_V2
+ AHasAge p num = prop (mkCl p.name (mkNP num L.year_N)) ; -- ik ben ... jaar
+ AHasName p name = prop (mkCl p.name (P.mkV2 I.heten_V) name) ; -- ik heet ...
+ AHasChildren p num = prop (mkCl p.name have_V2 (mkNP num L.child_N)) ; -- ik heb ... kinderen
+ AHasRoom p num = prop (mkCl p.name have_V2
(mkNP (mkNP a_Det (P.mkN "kamer"))
- (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))) ; -- ik heb een ... persoons kamer/ ik heb een kamer voor ... personen
- AHasTable p num = mkCl p.name have_V2
+ (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon"))))) ; -- ik heb een ... persoons kamer/ ik heb een kamer voor ... personen
+ AHasTable p num = prop (mkCl p.name have_V2
(mkNP (mkNP a_Det (P.mkN "tafel"))
- (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))) ;
- AHungry p = mkCl p.name have_V2 (mkNP (P.mkN "honger")) ; -- to have
- AIll p = mkCl p.name (P.mkA "ziek") ; -- to be ?
- AKnow p = mkCl p.name I.weten_V ; -- ik weet het.
- ALike p item = mkCl p.name (P.mkV2 I.houden_V P.van_Prep) item ; -- lekker
- ALive p co = mkCl p.name (mkVP (mkVP (P.mkV "wonen")) (SyntaxDut.mkAdv in_Prep co)) ; -- woon
- ALove p q = mkCl p.name (P.mkV2 (P.mkV "lief" P.hebben_V)) q.name ; -- houden van
- AMarried p = mkCl p.name (P.mkA "getrouwd") ; -- ik ben getrouwd
- AReady p = mkCl p.name (P.mkA "klaar") ; -- ik ben klaar
- AScared p = mkCl p.name (P.mkA "bang") ; -- ik ben bang
- ASpeak p lang = mkCl p.name (P.mkV2 I.spreken_V) lang ; -- ik spreek .../ ik versta ...
- AThirsty p = mkCl p.name have_V2 (mkNP (P.mkN "dorst")) ; -- ik heb dorst
- ATired p = mkCl p.name (P.mkA "moe") ; -- ik ben moe
- AUnderstand p = mkCl p.name (P.mkV "verstaan" "verstond" "verstonden" "verstaan") ;
- AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; -- ik wil
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; -- ik wil naar ...
+ (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon"))))) ;
+ AHungry p = mkProp (mkCl p.name have_V2 (mkNP (P.mkN "honger")))
+ (mkS (mkCl p.name have_V2 (mkNP no_Quant (P.mkN "honger")))) ; -- to have
+ AIll p = prop (mkCl p.name (P.mkA "ziek")) ; -- to be ?
+ AKnow p = prop (mkCl p.name I.weten_V) ; -- ik weet het.
+ ALike p item = prop (mkCl p.name (P.mkV2 I.houden_V P.van_Prep) item) ; -- lekker
+ ALive p co = prop (mkCl p.name (mkVP (mkVP (P.mkV "wonen")) (SyntaxDut.mkAdv in_Prep co))) ; -- woon
+ ALove p q = prop (mkCl p.name L.love_V2 q.name) ; -- houden van
+ AMarried p = prop (mkCl p.name (P.mkA "getrouwd")) ; -- ik ben getrouwd
+ AReady p = prop (mkCl p.name (P.mkA "klaar")) ; -- ik ben klaar
+ AScared p = prop (mkCl p.name (P.mkA "bang")) ; -- ik ben bang
+ ASpeak p lang =
+ let no_Predet = R.mkPredet "geen" "geen" ; --using Predet instead of Quant, because lang is NP
+ in mkProp (mkCl p.name (P.mkV2 I.spreken_V) lang)
+ (mkS (mkCl p.name (P.mkV2 I.spreken_V) (mkNP no_Predet lang))); -- ik spreek .../ ik spreek geen ...
+ AThirsty p = mkProp (mkCl p.name have_V2 (mkNP (P.mkN "dorst")))
+ (mkS (mkCl p.name have_V2 (mkNP no_Quant (P.mkN "dorst")))) ; --ik heb dorst / ik heb geen dorst
+ ATired p = prop (mkCl p.name (P.mkA "moe")) ; -- ik ben moe
+ AUnderstand p = prop (mkCl p.name (P.mkV "verstaan" "verstond" "verstonden" "verstaan")) ;
+ AWant p obj = prop (mkCl p.name want_VV (mkVP have_V2 obj)) ; -- ik wil
+ AWantGo p place = prop (mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to)) ; -- ik wil naar ...
-- miscellaneous
QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name I.heten_V)) ; --hoe heet je
QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (P.mkV "kosten"))) ; --hoeveel kost...
- ItCost item price = mkCl item (P.mkV2 (P.mkV "kosten")) price ; --..item.. kost ..price..
+ ItCost item price = prop (mkCl item (P.mkV2 (P.mkV "kosten")) price) ; --..item.. kost ..price..
- PropOpen p = mkCl p.name open_A ;
- PropClosed p = mkCl p.name closed_A ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; --de winkel is geopend op vrijdag(s)
+ PropOpen p = prop (mkCl p.name open_A) ;
+ PropClosed p = prop (mkCl p.name closed_A) ;
+ PropOpenDate p d = prop (mkCl p.name (mkVP (mkVP open_A) d)) ; --de winkel is geopend op vrijdag(s)
--normaal gesproken ga ik op vrijdag ..action../vrijdags ga ik ..action..
- PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; -- gesloten
- PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ;
+ PropClosedDate p d = prop (mkCl p.name (mkVP (mkVP closed_A) d)) ; -- gesloten
+ PropOpenDay p d = prop (mkCl p.name (mkVP (mkVP open_A) d.habitual)) ;
+ PropClosedDay p d = prop (mkCl p.name (mkVP (mkVP closed_A) d.habitual)) ;
-- Building phrases from strings is complicated: the solution is to use
-- mkText : Text -> Text -> Text ;