mirror of
https://github.com/GrammaticalFramework/comp-syntax-gu-mlt.git
synced 2026-02-09 06:41:07 -07:00
python examples added
This commit is contained in:
94
python/QueryEng.gf
Normal file
94
python/QueryEng.gf
Normal file
@@ -0,0 +1,94 @@
|
||||
concrete QueryEng of Query =
|
||||
|
||||
open
|
||||
SyntaxEng, ParadigmsEng,
|
||||
SymbolicEng,
|
||||
MarkupEng,
|
||||
(M = MakeStructuralEng)
|
||||
in {
|
||||
|
||||
lincat
|
||||
Query = Utt ;
|
||||
Kind = CN ;
|
||||
Property = AP ;
|
||||
Term = NP ;
|
||||
Element = NP ;
|
||||
|
||||
lin
|
||||
QWhich kind property =
|
||||
mkUtt (mkQS (mkQCl (mkIP whichPl_IDet kind) property)) -- which numbers are prime
|
||||
| mkUtt (mkImp (mkVP (mkV2 "list") (mkNP all_Predet (mkNP aPl_Det (mkCN property kind))))) -- list all prime numbers
|
||||
| mkUtt (mkNP aPl_Det (mkCN property kind)) -- prime numbers
|
||||
;
|
||||
|
||||
QWhether term property =
|
||||
mkUtt (mkQS (mkQCl (mkCl term property))) -- is 51 prime
|
||||
| mkUtt (mkQS (mkCl term property)) -- 51 is prime
|
||||
;
|
||||
|
||||
QWhat element =
|
||||
mkUtt (mkQS (mkQCl what_IP element)) -- what is 2 + 2
|
||||
| mkUtt (mkImp (mkVP (mkV2 "compute") element)) -- compute 2 + 2
|
||||
| mkUtt element -- 2 + 2
|
||||
;
|
||||
|
||||
TAll kind =
|
||||
mkNP all_Predet (mkNP aPl_Det kind) -- all numbers
|
||||
| mkNP every_Det kind -- every number
|
||||
;
|
||||
|
||||
TAny kind =
|
||||
mkNP someSg_Det kind -- some number
|
||||
| mkNP somePl_Det kind -- some numbers
|
||||
| mkNP (M.mkDet "any" singular) kind -- any number
|
||||
| mkNP (M.mkDet "any" plural) kind -- any numbers
|
||||
;
|
||||
|
||||
TElement element = element ;
|
||||
|
||||
PAnd p q = mkAP and_Conj p q ;
|
||||
POr p q = mkAP or_Conj p q ;
|
||||
PNot p = mkAP (lin AdA {s = "not"}) p ;
|
||||
|
||||
KProperty property kind = mkCN property kind ;
|
||||
|
||||
-- lexicon
|
||||
|
||||
KNumber = mkCN (mkN "number") ;
|
||||
EInteger i = symb i ;
|
||||
PEven = mkAP (mkA "even") ;
|
||||
POdd = mkAP (mkA "odd") ;
|
||||
PPrime = mkAP (mkA "prime") ;
|
||||
PDivisible term = mkAP (mkA2 (mkA "divisible") by8means_Prep) term ;
|
||||
PSmaller term = mkAP (mkA "small") term ;
|
||||
PGreater term = mkAP (mkA "great") term ;
|
||||
PEqual term = mkAP (mkA2 (mkA "equal") to_Prep) term ;
|
||||
PBetween x y = mkAP (mkA2 (mkA "between") (mkPrep "")) (mkNP and_Conj x y) ; ---
|
||||
|
||||
ESum x y =
|
||||
mkNP the_Det (mkCN (mkN2 (mkN "sum")) (mkNP and_Conj x y)) -- the sum of x and y
|
||||
| mkNP (mkConj "+" singular) x y -- x + y
|
||||
| parenthNP (mkNP (mkConj "+" singular) x y) -- ( x + y )
|
||||
;
|
||||
EMinus x y =
|
||||
mkNP the_Det (mkCN (mkN2 (mkN "difference")) (mkNP and_Conj x y)) -- the difference of x and y
|
||||
| mkNP (mkConj "-" singular) x y -- x - y
|
||||
| parenthNP (mkNP (mkConj "-" singular) x y) -- x - y
|
||||
;
|
||||
EProduct x y =
|
||||
mkNP the_Det (mkCN (mkN2 (mkN "product")) (mkNP and_Conj x y)) -- the product of x and y
|
||||
| mkNP (mkConj "*" singular) x y -- x * y
|
||||
;
|
||||
EDivided x y =
|
||||
mkNP (mkConj "divided by" singular) x y -- the product of x and y
|
||||
| mkNP (mkConj "/" singular) x y -- x * y
|
||||
;
|
||||
EFactorial x =
|
||||
mkNP the_Det (mkCN (mkN2 (mkN "factorial")) x) -- the factorial of x
|
||||
| mkNP x (ParadigmsEng.mkAdv "!") -- x !
|
||||
;
|
||||
|
||||
oper
|
||||
parenthNP : NP -> NP = \np -> MarkupNP (lin Mark {begin = "(" ; end = ")"}) np ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user