mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 17:12:50 -06:00
part of Attempto controlled language in English and Swedish
This commit is contained in:
236
examples/attempto/Attempto.gf
Normal file
236
examples/attempto/Attempto.gf
Normal file
@@ -0,0 +1,236 @@
|
|||||||
|
abstract Attempto = {
|
||||||
|
|
||||||
|
flags startcat = ACEText ;
|
||||||
|
|
||||||
|
cat CN ;
|
||||||
|
cat NP ;
|
||||||
|
cat Card ;
|
||||||
|
cat PN ;
|
||||||
|
cat A ;
|
||||||
|
cat A2 ;
|
||||||
|
cat AP ;
|
||||||
|
cat RS ;
|
||||||
|
cat Pron ;
|
||||||
|
cat Prep ;
|
||||||
|
cat S ;
|
||||||
|
cat VP ;
|
||||||
|
cat V ;
|
||||||
|
cat V2 ;
|
||||||
|
cat V3 ;
|
||||||
|
cat Adv ;
|
||||||
|
cat Conj ;
|
||||||
|
cat IP ;
|
||||||
|
cat IAdv ;
|
||||||
|
cat QS ;
|
||||||
|
cat Text ;
|
||||||
|
|
||||||
|
fun aNP : CN -> NP ;
|
||||||
|
fun theNP : CN -> NP ;
|
||||||
|
fun cardNP : Card -> CN -> NP ;
|
||||||
|
fun noNP : CN -> NP ;
|
||||||
|
fun everyNP : CN -> NP ;
|
||||||
|
fun eachNP : CN -> NP ;
|
||||||
|
fun notEveryNP : CN -> NP ;
|
||||||
|
fun notEachNP : CN -> NP ;
|
||||||
|
|
||||||
|
|
||||||
|
fun theCollNP : CN -> NP ;
|
||||||
|
fun someCollNP : CN -> NP ;
|
||||||
|
fun allCollNP : CN -> NP ;
|
||||||
|
fun noCollNP : CN -> NP ;
|
||||||
|
|
||||||
|
|
||||||
|
fun eachTheNP : CN -> NP ;
|
||||||
|
fun eachSomeNP : CN -> NP ;
|
||||||
|
fun eachNumNP : Card -> CN -> NP ;
|
||||||
|
|
||||||
|
cat MCN ;
|
||||||
|
|
||||||
|
fun someMassNP : MCN -> NP ;
|
||||||
|
fun noMassNP : MCN -> NP ;
|
||||||
|
fun allMassNP : MCN -> NP ;
|
||||||
|
fun notAllMassNP : MCN -> NP ;
|
||||||
|
|
||||||
|
|
||||||
|
fun pnNP : PN -> NP ;
|
||||||
|
fun intNP : Int -> NP ;
|
||||||
|
fun intNegNP : Int -> NP ;
|
||||||
|
fun floatNP : Float -> NP ;
|
||||||
|
|
||||||
|
|
||||||
|
-- arithmetic expressions with + - * /
|
||||||
|
|
||||||
|
-- strings "foo" and "foo" & "bar
|
||||||
|
|
||||||
|
-- sets {a,b,c}
|
||||||
|
|
||||||
|
-- lists [a,b,c]
|
||||||
|
|
||||||
|
fun it_NP : NP ;
|
||||||
|
fun he_NP : NP ;
|
||||||
|
fun she_NP : NP ;
|
||||||
|
fun he_she_NP : NP ;
|
||||||
|
fun they_NP : NP ;
|
||||||
|
|
||||||
|
|
||||||
|
-- reflexive pronouns: itself, himself, herself, himself/herself, themselves
|
||||||
|
|
||||||
|
fun someone_NP : NP ;
|
||||||
|
fun somebody_NP : NP ;
|
||||||
|
fun something_NP : NP ;
|
||||||
|
fun noone_NP : NP ;
|
||||||
|
fun nothing_NP : NP ;
|
||||||
|
fun not_everyoneNP : NP ;
|
||||||
|
fun not_everybodyNP : NP ;
|
||||||
|
fun not_everythingNP : NP ;
|
||||||
|
|
||||||
|
fun at_leastNP : Card -> CN -> NP ;
|
||||||
|
fun not_at_leastNP : Card -> CN -> NP ;
|
||||||
|
fun at_mostNP : Card -> CN -> NP ;
|
||||||
|
fun not_at_mostNP : Card -> CN -> NP ;
|
||||||
|
fun more_thanNP : Card -> CN -> NP ;
|
||||||
|
fun not_more_thanNP : Card -> CN -> NP ;
|
||||||
|
|
||||||
|
fun nothing_butNP : CN -> NP ; -- nothing but apples
|
||||||
|
fun nothing_butMassNP : MCN -> NP ; -- nothing but water
|
||||||
|
fun nobody_butNP : PN -> NP ; -- nobody but John
|
||||||
|
fun no_butNP : CN -> PN -> NP ; -- no man but John
|
||||||
|
|
||||||
|
cat Unit ; -- SI measurement units
|
||||||
|
cat Var ;
|
||||||
|
|
||||||
|
fun unitNP : Card -> Unit -> NP ;
|
||||||
|
fun unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
|
||||||
|
fun unit_ofMassNP : Card -> Unit -> MCN -> NP ; -- 3 l of water
|
||||||
|
|
||||||
|
fun apposVarCN : CN -> Var -> CN ; -- a man X
|
||||||
|
fun varNP : Var -> NP ;
|
||||||
|
|
||||||
|
fun conjNP : NP -> NP -> NP ;
|
||||||
|
|
||||||
|
-- 2.2.1
|
||||||
|
|
||||||
|
fun adjCN : AP -> CN -> CN ;
|
||||||
|
fun positAP : A -> AP ;
|
||||||
|
fun comparAP : A -> AP ;
|
||||||
|
fun superlAP : A -> AP ;
|
||||||
|
|
||||||
|
|
||||||
|
-- 2.2.2
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
-- 2.2.4
|
||||||
|
|
||||||
|
fun genNP : NP -> CN -> NP ; -- everybody's customer
|
||||||
|
fun ofCN : CN -> NP -> CN ; -- dog of John and Mary
|
||||||
|
fun genOwnNP : NP -> CN -> NP ; -- his own customer
|
||||||
|
|
||||||
|
-- 2.3.1
|
||||||
|
|
||||||
|
fun vpS : NP -> VP -> S ;
|
||||||
|
fun neg_vpS : NP -> VP -> S ;
|
||||||
|
fun not_provably_vpS : NP -> VP -> S ;
|
||||||
|
|
||||||
|
fun vVP : V -> VP ;
|
||||||
|
fun v2VP : V2 -> NP -> VP ;
|
||||||
|
fun v3VP : V3 -> NP -> NP -> VP ;
|
||||||
|
|
||||||
|
-- 2.3.2
|
||||||
|
|
||||||
|
fun apVP : AP -> VP ;
|
||||||
|
fun compVP : A -> NP -> VP ; -- John is richer than Mary
|
||||||
|
fun as_asVP : A -> NP -> VP ; -- John is as rich as Mary
|
||||||
|
|
||||||
|
-- John is as fond-of Mary as Bill
|
||||||
|
-- John is more fond-of Mary than Bill
|
||||||
|
-- John is as fond-of Mary as of Sue
|
||||||
|
-- John is more fond-of Mary than of Sue
|
||||||
|
|
||||||
|
cat PP ;
|
||||||
|
cat [PP] {1} ;
|
||||||
|
fun ppVP : [PP] -> VP ; -- John is in the garden in the morning
|
||||||
|
|
||||||
|
fun prepPP : Prep -> NP -> PP ;
|
||||||
|
|
||||||
|
-- 2.3.5
|
||||||
|
|
||||||
|
fun canVP : VP -> VP ;
|
||||||
|
fun mustVP : VP -> VP ;
|
||||||
|
fun have_toVP : VP -> VP ;
|
||||||
|
|
||||||
|
-- 2.4
|
||||||
|
|
||||||
|
fun modVP : VP -> Adv -> VP ;
|
||||||
|
|
||||||
|
-- 3.2
|
||||||
|
|
||||||
|
fun thereNP : NP -> S ; -- there is/are
|
||||||
|
|
||||||
|
-- 3.3
|
||||||
|
-- Boolean formulas = \= < > <= >=
|
||||||
|
|
||||||
|
-- 3.4.1
|
||||||
|
|
||||||
|
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 ;
|
||||||
|
|
||||||
|
-- 3.4.3
|
||||||
|
|
||||||
|
fun for_everyS : CN -> S -> S ;
|
||||||
|
fun for_eachS : CN -> S -> S ;
|
||||||
|
fun for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men
|
||||||
|
fun for_allMassS : MCN -> S -> S ; -- for all water
|
||||||
|
|
||||||
|
-- 3.4.4
|
||||||
|
|
||||||
|
fun if_thenS : S -> S -> S ;
|
||||||
|
fun falseS : S -> S ; -- it is false that
|
||||||
|
fun not_provableS : S -> S ; -- it is not provable that
|
||||||
|
fun possibleS : S -> S ; -- it is possible that
|
||||||
|
fun not_possibleS : S -> S ;
|
||||||
|
fun necessaryS : S -> S ;
|
||||||
|
fun not_necessaryS : S -> S ;
|
||||||
|
|
||||||
|
fun thatS : S -> S -> S ;
|
||||||
|
|
||||||
|
-- 3.5
|
||||||
|
|
||||||
|
fun npQS : NP -> VP -> QS ;
|
||||||
|
fun ipQS : IP -> VP -> QS ;
|
||||||
|
fun iadvQS : IAdv -> NP -> VP -> QS ;
|
||||||
|
|
||||||
|
fun where_IAdv : IAdv ;
|
||||||
|
fun when_IAdv : IAdv ;
|
||||||
|
fun whoSg_IP : IP ;
|
||||||
|
fun whoPl_IP : IP ;
|
||||||
|
|
||||||
|
fun there_ipQS : IP -> QS ; -- there is who
|
||||||
|
|
||||||
|
fun whoseIP : CN -> IP ; -- whose dog
|
||||||
|
|
||||||
|
-- 3.6
|
||||||
|
|
||||||
|
fun impVP : NP -> VP -> Text ; -- John, go to the bank!
|
||||||
|
|
||||||
|
-- 4
|
||||||
|
|
||||||
|
cat ACEText ;
|
||||||
|
fun consText : Text -> ACEText -> ACEText ;
|
||||||
|
|
||||||
|
fun baseText : Text -> ACEText ;
|
||||||
|
|
||||||
|
fun sText : S -> Text ;
|
||||||
|
fun qsText : QS -> Text ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
29
examples/attempto/Attempto1.gf
Normal file
29
examples/attempto/Attempto1.gf
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
-- 15.58
|
||||||
|
|
||||||
|
abstract Attempto = {
|
||||||
|
|
||||||
|
flags startcat = ACEText ;
|
||||||
|
|
||||||
|
cat
|
||||||
|
ACEText ;
|
||||||
|
Query ;
|
||||||
|
Command ;
|
||||||
|
fun
|
||||||
|
ASpecification : Specification -> ACEText ;
|
||||||
|
AQuery : Query -> ACEText ;
|
||||||
|
ACommand : Command -> ACEText ;
|
||||||
|
cat
|
||||||
|
PropositionOrSentenceCoord ;
|
||||||
|
TopicalisedQuestion ;
|
||||||
|
fun
|
||||||
|
QQuery : PropositionOrSentenceCoord -> Query -> Query ;
|
||||||
|
QTopicalizer : TopicalisedQuestion -> Query ;
|
||||||
|
cat
|
||||||
|
ExistentialQuestionTopic ;
|
||||||
|
SentenceCoord ;
|
||||||
|
fun
|
||||||
|
TExistential : ExistentialQuestionTopic -> SentenceCoord -> TopicalisedQuestion ;
|
||||||
|
TUniversal : UniversalTopic -> TopicalisedQuestion -> TopicalisedQuestion ;
|
||||||
|
TQuestion : Question -> TopicalisedQuestion ;
|
||||||
|
|
||||||
|
}
|
||||||
7
examples/attempto/AttemptoEng.gf
Normal file
7
examples/attempto/AttemptoEng.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
concrete AttemptoEng of Attempto = AttemptoI with
|
||||||
|
(Syntax = SyntaxEng),
|
||||||
|
(Symbolic = SymbolicEng),
|
||||||
|
(LexAttempto = LexAttemptoEng) ;
|
||||||
|
|
||||||
245
examples/attempto/AttemptoI.gf
Normal file
245
examples/attempto/AttemptoI.gf
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
incomplete concrete AttemptoI of Attempto = open
|
||||||
|
Syntax,
|
||||||
|
Symbolic,
|
||||||
|
LexAttempto
|
||||||
|
in {
|
||||||
|
|
||||||
|
lincat CN = Syntax.CN ;
|
||||||
|
lincat NP = Syntax.NP ;
|
||||||
|
lincat Card = Syntax.Card ;
|
||||||
|
lincat PN = Syntax.PN ;
|
||||||
|
lincat A = Syntax.A ;
|
||||||
|
lincat A2 = Syntax.A2 ;
|
||||||
|
lincat AP = Syntax.AP ;
|
||||||
|
lincat RS = Syntax.RS ;
|
||||||
|
lincat Pron = Syntax.Pron ;
|
||||||
|
lincat Prep = Syntax.Prep ;
|
||||||
|
lincat S = Syntax.S ;
|
||||||
|
lincat VP = Syntax.VP ;
|
||||||
|
lincat V = Syntax.V ;
|
||||||
|
lincat V2 = Syntax.V2 ;
|
||||||
|
lincat V3 = Syntax.V3 ;
|
||||||
|
lincat Adv = Syntax.Adv ;
|
||||||
|
lincat Conj = Syntax.Conj ;
|
||||||
|
lincat IP = Syntax.IP ;
|
||||||
|
lincat IAdv = Syntax.IAdv ;
|
||||||
|
lincat QS = Syntax.QS ;
|
||||||
|
lincat Text = Syntax.Text ;
|
||||||
|
lincat ACEText = Syntax.Text ;
|
||||||
|
|
||||||
|
lincat MCN = Syntax.CN ;
|
||||||
|
--lincat Var = Symb ;
|
||||||
|
lincat PP = Adv ;
|
||||||
|
|
||||||
|
lin aNP = mkNP a_Art ;
|
||||||
|
lin theNP = mkNP the_Art ;
|
||||||
|
lin cardNP d = mkNP d ;
|
||||||
|
--lin noNP : CN -> NP ;
|
||||||
|
lin everyNP = mkNP every_Det ;
|
||||||
|
--lin eachNP : CN -> NP ;
|
||||||
|
--lin notEveryNP : CN -> NP ;
|
||||||
|
--lin notEachNP : CN -> NP ;
|
||||||
|
lin theCollNP = mkNP the_Art plNum ;
|
||||||
|
lin someCollNP = mkNP somePl_Det ;
|
||||||
|
lin allCollNP cn = mkNP all_Predet (mkNP a_Art plNum cn) ;
|
||||||
|
|
||||||
|
--lin noCollNP : CN -> NP ;
|
||||||
|
--lin eachTheNP : CN -> NP ;
|
||||||
|
--lin eachSomeNP : CN -> NP ;
|
||||||
|
--lin eachNumNP : Card -> CN -> NP ;
|
||||||
|
|
||||||
|
lin someMassNP = mkNP someSg_Det ;
|
||||||
|
lin allMassNP cn = mkNP all_Predet (mkNP cn) ;
|
||||||
|
|
||||||
|
--lin noMassNP : MCN -> NP ;
|
||||||
|
--lin notAllMassNP : MCN -> NP ;
|
||||||
|
|
||||||
|
lin pnNP = mkNP ;
|
||||||
|
lin intNP = symb ;
|
||||||
|
lin floatNP = symb ;
|
||||||
|
--lin intNegNP : Int -> NP ;
|
||||||
|
|
||||||
|
lin it_NP = mkNP it_Pron ;
|
||||||
|
lin he_NP = mkNP he_Pron ;
|
||||||
|
lin she_NP = mkNP she_Pron ;
|
||||||
|
lin they_NP = mkNP they_Pron ;
|
||||||
|
|
||||||
|
lin conjNP = mkNP and_Conj ;
|
||||||
|
lin adjCN = mkCN ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
lin someone_NP : NP ;
|
||||||
|
lin somebody_NP : NP ;
|
||||||
|
lin something_NP : NP ;
|
||||||
|
lin noone_NP : NP ;
|
||||||
|
lin nothing_NP : NP ;
|
||||||
|
lin not_everyoneNP : NP ;
|
||||||
|
lin not_everybodyNP : NP ;
|
||||||
|
lin not_everythingNP : NP ;
|
||||||
|
|
||||||
|
lin at_leastNP : Card -> CN -> NP ;
|
||||||
|
lin not_at_leastNP : Card -> CN -> NP ;
|
||||||
|
lin at_mostNP : Card -> CN -> NP ;
|
||||||
|
lin not_at_mostNP : Card -> CN -> NP ;
|
||||||
|
lin more_thanNP : Card -> CN -> NP ;
|
||||||
|
lin not_more_thanNP : Card -> CN -> NP ;
|
||||||
|
|
||||||
|
lin nothing_butNP : CN -> NP ; -- nothing but apples
|
||||||
|
lin nothing_butMassNP : MCN -> NP ; -- nothing but water
|
||||||
|
lin nobody_butNP : PN -> NP ; -- nobody but John
|
||||||
|
lin no_butNP : CN -> PN -> NP ; -- no man but John
|
||||||
|
|
||||||
|
cat Unit ; -- SI measurement units
|
||||||
|
cat Var ;
|
||||||
|
|
||||||
|
lin unitNP : Card -> Unit -> NP ;
|
||||||
|
lin unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
|
||||||
|
lin unit_ofMassNP : Card -> Unit -> MCN -> NP ; -- 3 l of water
|
||||||
|
-}
|
||||||
|
lin apposVarCN cn v = mkCN cn (symb v) ;
|
||||||
|
|
||||||
|
lin varNP = symb ;
|
||||||
|
|
||||||
|
-- 2.2.1
|
||||||
|
|
||||||
|
|
||||||
|
lin adjCN = mkCN ;
|
||||||
|
lin positAP = mkAP ;
|
||||||
|
lin comparAP = comparAP ;
|
||||||
|
lin superlAP a = mkAP (mkOrd a) ;
|
||||||
|
|
||||||
|
|
||||||
|
-- 2.2.2
|
||||||
|
|
||||||
|
lin relCN = mkCN ;
|
||||||
|
--lin relNP = mkNP ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
lin andRS : RS -> RS -> RS ;
|
||||||
|
lin orRS : RS -> RS -> RS ;
|
||||||
|
lin eachRS : RS -> RS ; -- each of who
|
||||||
|
-}
|
||||||
|
|
||||||
|
-- 2.2.4
|
||||||
|
|
||||||
|
lin genNP = genitiveNP ;
|
||||||
|
lin ofCN cn np = mkCN cn (mkAdv possess_Prep np) ;
|
||||||
|
lin genOwnNP np cn = genitiveNP np (mkCN own_A cn) ;
|
||||||
|
|
||||||
|
-- 2.3.1
|
||||||
|
|
||||||
|
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 vVP = mkVP ;
|
||||||
|
lin v2VP = mkVP ;
|
||||||
|
lin v3VP = mkVP ;
|
||||||
|
|
||||||
|
-- 2.3.2
|
||||||
|
|
||||||
|
lin apVP = mkVP ;
|
||||||
|
lin compVP a np = mkVP (mkAP a np) ;
|
||||||
|
--lin as_asVP : A -> NP -> S ; -- John is as rich as Mary
|
||||||
|
|
||||||
|
-- John is as fond-of Mary as Bill
|
||||||
|
-- John is more fond-of Mary than Bill
|
||||||
|
-- John is as fond-of Mary as of Sue
|
||||||
|
-- John is more fond-of Mary than of Sue
|
||||||
|
|
||||||
|
|
||||||
|
lincat PP = Adv ;
|
||||||
|
lincat [PP] = Adv ;
|
||||||
|
|
||||||
|
lin BasePP p = p ;
|
||||||
|
|
||||||
|
lin ppVP = mkVP ;
|
||||||
|
|
||||||
|
lin prepPP = mkAdv ;
|
||||||
|
|
||||||
|
-- 2.3.5
|
||||||
|
|
||||||
|
lin canVP = mkVP can_VV ;
|
||||||
|
lin mustVP = mkVP must_VV ;
|
||||||
|
|
||||||
|
lin have_toVP = mkVP have_VV ;
|
||||||
|
|
||||||
|
-- 2.4
|
||||||
|
|
||||||
|
lin modVP = mkVP ;
|
||||||
|
|
||||||
|
-- 3.2
|
||||||
|
|
||||||
|
lin thereNP np = mkS (mkCl np) ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
-- 3.3
|
||||||
|
-- Boolean formulas = \= < > <= >=
|
||||||
|
-}
|
||||||
|
|
||||||
|
-- 3.4.1
|
||||||
|
|
||||||
|
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 ;
|
||||||
|
|
||||||
|
-- 3.4.3
|
||||||
|
{-
|
||||||
|
lin for_everyS : CN -> S -> S ;
|
||||||
|
lin for_eachS : CN -> S -> S ;
|
||||||
|
lin for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men
|
||||||
|
lin for_allMassS : MCN -> S -> S ; -- for all water
|
||||||
|
|
||||||
|
-- 3.4.4
|
||||||
|
|
||||||
|
lin if_thenS : S -> S -> S ;
|
||||||
|
-}
|
||||||
|
|
||||||
|
oper adj_thatCl : A -> S -> Cl = \a,s -> mkCl (mkVP (mkAP (mkAP a) s)) ;
|
||||||
|
|
||||||
|
lin falseS s = mkS (adj_thatCl false_A s) ;
|
||||||
|
lin not_provableS s = mkS negativePol (adj_thatCl provable_A s) ;
|
||||||
|
lin possibleS s = mkS (adj_thatCl possible_A s) ;
|
||||||
|
lin not_possibleS s = mkS negativePol (adj_thatCl possible_A s) ;
|
||||||
|
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 ;
|
||||||
|
|
||||||
|
-- 3.5
|
||||||
|
|
||||||
|
lin npQS np vp = mkQS (mkCl np vp) ;
|
||||||
|
lin ipQS ip vp = mkQS (mkQCl ip vp) ;
|
||||||
|
lin iadvQS iadv np vp = mkQS (mkQCl iadv (mkCl np vp)) ;
|
||||||
|
|
||||||
|
lin where_IAdv = Syntax.where_IAdv ;
|
||||||
|
lin when_IAdv = Syntax.when_IAdv ;
|
||||||
|
lin whoSg_IP = Syntax.whoSg_IP ;
|
||||||
|
lin whoPl_IP = Syntax.whoPl_IP ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
lin there_ipQS : IP -> QS ; -- there is who
|
||||||
|
|
||||||
|
lin whoseIP : CN -> IP ; -- whose dog
|
||||||
|
-}
|
||||||
|
-- 3.6
|
||||||
|
|
||||||
|
lin impVP np vp = mkText (mkPhr (mkUtt (mkImp vp)) (mkVoc np)) exclMarkPunct ;
|
||||||
|
---- John, go to the bank!
|
||||||
|
|
||||||
|
|
||||||
|
lin consText = mkText ;
|
||||||
|
lin baseText t = t ;
|
||||||
|
lin sText = mkText ;
|
||||||
|
lin qsText = mkText ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
7
examples/attempto/AttemptoSwe.gf
Normal file
7
examples/attempto/AttemptoSwe.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
concrete AttemptoSwe of Attempto = AttemptoI with
|
||||||
|
(Syntax = SyntaxSwe),
|
||||||
|
(Symbolic = SymbolicSwe),
|
||||||
|
(LexAttempto = LexAttemptoSwe) ;
|
||||||
|
|
||||||
18
examples/attempto/LexAttempto.gf
Normal file
18
examples/attempto/LexAttempto.gf
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
interface LexAttempto = open Syntax in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
possible_A : A ;
|
||||||
|
necessary_A : A ;
|
||||||
|
own_A : A ;
|
||||||
|
have_VV : VV ;
|
||||||
|
provably_Adv : Adv ;
|
||||||
|
provable_A : A ;
|
||||||
|
false_A : A ;
|
||||||
|
|
||||||
|
genitiveNP : NP -> CN -> NP ;
|
||||||
|
|
||||||
|
-- m_Unit : Unit ;
|
||||||
|
-- l_Unit : Unit ;
|
||||||
|
-- kg_Unit : Unit ;
|
||||||
|
|
||||||
|
}
|
||||||
15
examples/attempto/LexAttemptoEng.gf
Normal file
15
examples/attempto/LexAttemptoEng.gf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
instance LexAttemptoEng of LexAttempto =
|
||||||
|
open ExtraEng, SyntaxEng, ParadigmsEng, ConstructX, IrregEng in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
possible_A = mkA "possible" ;
|
||||||
|
necessary_A = mkA "necessary" ;
|
||||||
|
own_A = mkA "own" ;
|
||||||
|
have_VV = mkVV have_V ;
|
||||||
|
provably_Adv = mkAdv "provably" ;
|
||||||
|
provable_A = mkA "provable" ;
|
||||||
|
false_A = mkA "false" ;
|
||||||
|
|
||||||
|
genitiveNP np = mkNP (GenNP np) ;
|
||||||
|
|
||||||
|
}
|
||||||
15
examples/attempto/LexAttemptoSwe.gf
Normal file
15
examples/attempto/LexAttemptoSwe.gf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
instance LexAttemptoSwe of LexAttempto =
|
||||||
|
open ExtraSwe, SyntaxSwe, ParadigmsSwe, ConstructX, IrregSwe in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
possible_A = mkA "möjlig" ;
|
||||||
|
necessary_A = mkA "nödvändig" ;
|
||||||
|
own_A = mkA "egen" ;
|
||||||
|
have_VV = must_VV ;
|
||||||
|
provably_Adv = mkAdv "bevisbart" ;
|
||||||
|
provable_A = mkA "bevisbar" ;
|
||||||
|
false_A = mkA "falsk" ;
|
||||||
|
|
||||||
|
genitiveNP np = mkNP (GenNP np) ;
|
||||||
|
|
||||||
|
}
|
||||||
82
examples/attempto/TestAttempto.gf
Normal file
82
examples/attempto/TestAttempto.gf
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
abstract TestAttempto = Attempto ** {
|
||||||
|
|
||||||
|
fun
|
||||||
|
card_N : CN ;
|
||||||
|
water_MCN : MCN ;
|
||||||
|
john_PN : PN ;
|
||||||
|
apple_PN : PN ;
|
||||||
|
sleep_V : V ;
|
||||||
|
young_A : A ;
|
||||||
|
dog_N : CN ;
|
||||||
|
animal_N : CN ;
|
||||||
|
wait_V : V ;
|
||||||
|
man_N : CN ;
|
||||||
|
woman_N : CN ;
|
||||||
|
give_V3 : V3 ;
|
||||||
|
tired_A : A ;
|
||||||
|
rich_A : A ;
|
||||||
|
customer_N : CN ;
|
||||||
|
enter_V2 : V2 ;
|
||||||
|
bank_N : CN ;
|
||||||
|
satisfied_A : A ;
|
||||||
|
lucky_A : A ;
|
||||||
|
well_known_A : A ;
|
||||||
|
important_A : A ;
|
||||||
|
expensive_A : A ;
|
||||||
|
fill_in_V2 : V2 ;
|
||||||
|
form_N : CN ;
|
||||||
|
age_N : CN ;
|
||||||
|
teacher_N : CN ;
|
||||||
|
successful_A : A ;
|
||||||
|
fond_A2 : A2 ;
|
||||||
|
garden_N : CN ;
|
||||||
|
morning_N : CN ;
|
||||||
|
code_N : CN ;
|
||||||
|
drinkable_A : A ;
|
||||||
|
work_V : V ;
|
||||||
|
admitted_A : A ;
|
||||||
|
eat_V2 : V2 ;
|
||||||
|
burger_N : CN ;
|
||||||
|
earn_V2 : V2 ;
|
||||||
|
income_N : CN ;
|
||||||
|
england_PN : PN ;
|
||||||
|
beginning_N : CN ;
|
||||||
|
office_N : CN ;
|
||||||
|
interested_A2 : A2 ;
|
||||||
|
morning_N : CN ;
|
||||||
|
classroom_N : CN ;
|
||||||
|
manually_Adv : Adv ;
|
||||||
|
slot_N : CN ;
|
||||||
|
patiently_Adv : Adv ;
|
||||||
|
course_N : CN ;
|
||||||
|
carefully_Adv : Adv ;
|
||||||
|
time_N : CN ;
|
||||||
|
believe_V : V ;
|
||||||
|
seriously_Adv : Adv ;
|
||||||
|
clerk_N : CN ;
|
||||||
|
screen_N : CN ;
|
||||||
|
blink_V : V ;
|
||||||
|
bed_N : CN ;
|
||||||
|
container_N : CN ;
|
||||||
|
automated_teller_N : CN ;
|
||||||
|
reject_V2 : V2 ;
|
||||||
|
accept_V2 : V2 ;
|
||||||
|
type_V2 : V2 ;
|
||||||
|
know_V : V ;
|
||||||
|
manager_N : CN ;
|
||||||
|
oversleep_V : V ;
|
||||||
|
valid_A : A ;
|
||||||
|
see_V2 : V2 ;
|
||||||
|
bark_V : V ;
|
||||||
|
go_V2 : V2 ;
|
||||||
|
brother_N : CN ;
|
||||||
|
mary_PN : PN ;
|
||||||
|
machine_N : CN ;
|
||||||
|
correct_A : A ;
|
||||||
|
|
||||||
|
in_Prep : Prep ;
|
||||||
|
at_Prep : Prep ;
|
||||||
|
into_Prep : Prep ;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
86
examples/attempto/TestAttemptoEng.gf
Normal file
86
examples/attempto/TestAttemptoEng.gf
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
--# -path=.:/Users/aarne/GF/next-lib/present
|
||||||
|
|
||||||
|
concrete TestAttemptoEng of TestAttempto = AttemptoEng **
|
||||||
|
open SyntaxEng, ParadigmsEng, IrregEng, (C = ConstructX) in {
|
||||||
|
|
||||||
|
lin card_N = mkkN "card" ;
|
||||||
|
lin water_MCN = mkCN (mkkN "water") ;
|
||||||
|
lin john_PN = mkPN "john" ;
|
||||||
|
lin apple_PN = mkPN "apple" ;
|
||||||
|
lin sleep_V = IrregEng.sleep_V ;
|
||||||
|
lin young_A = mkA "young" ;
|
||||||
|
lin dog_N = mkkN "dog" ;
|
||||||
|
lin animal_N = mkkN "animal" ;
|
||||||
|
lin wait_V = mkV "wait" ;
|
||||||
|
lin man_N = mkkN "man" ;
|
||||||
|
lin woman_N = mkkN "woman" ;
|
||||||
|
lin give_V3 = mkV3 give_V (mkPrep []) (mkPrep "to") ;
|
||||||
|
lin tired_A = mkA "tired" ;
|
||||||
|
lin rich_A = mkA "rich" ;
|
||||||
|
lin customer_N = mkkN "customer" ;
|
||||||
|
lin enter_V2 = mkV2 "enter" ;
|
||||||
|
lin bank_N = mkkN "bank" ;
|
||||||
|
lin satisfied_A = mkA "satisfied" ;
|
||||||
|
lin lucky_A = mkA "lucky" ;
|
||||||
|
lin well_known_A = mkA "well" ;
|
||||||
|
lin important_A = mkA "important" ;
|
||||||
|
lin expensive_A = mkA "expensive" ;
|
||||||
|
lin fill_in_V2 = mkV2 "fill" ;
|
||||||
|
lin form_N = mkkN "form" ;
|
||||||
|
lin age_N = mkkN "age" ;
|
||||||
|
lin teacher_N = mkkN "teacher" ;
|
||||||
|
lin successful_A = mkA "successful" ;
|
||||||
|
lin fond_A2 = mkA2 (mkA "fond") (mkPrep "of") ;
|
||||||
|
lin garden_N = mkkN "garden" ;
|
||||||
|
lin morning_N = mkkN "morning" ;
|
||||||
|
lin code_N = mkkN "code" ;
|
||||||
|
lin drinkable_A = mkA "drinkable" ;
|
||||||
|
lin work_V = mkV "work" ;
|
||||||
|
lin admitted_A = mkA "admitted" ;
|
||||||
|
lin eat_V2 = mkV2 eat_V ;
|
||||||
|
lin burger_N = mkkN "burger" ;
|
||||||
|
lin earn_V2 = mkV2 "earn" ;
|
||||||
|
lin income_N = mkkN "income" ;
|
||||||
|
lin england_PN = mkPN "england" ;
|
||||||
|
lin beginning_N = mkkN "beginning" ;
|
||||||
|
lin office_N = mkkN "office" ;
|
||||||
|
lin interested_A2 = mkA2 (mkA "interested") (mkPrep "in") ;
|
||||||
|
lin morning_N = mkkN "morning" ;
|
||||||
|
lin classroom_N = mkkN "classroom" ;
|
||||||
|
lin manually_Adv = mkAdv "manually" ;
|
||||||
|
lin slot_N = mkkN "slot" ;
|
||||||
|
lin patiently_Adv = mkAdv "patiently" ;
|
||||||
|
lin course_N = mkkN "course" ;
|
||||||
|
lin carefully_Adv = mkAdv "carefully" ;
|
||||||
|
lin time_N = mkkN "time" ;
|
||||||
|
lin believe_V = mkV "believe" ;
|
||||||
|
lin seriously_Adv = mkAdv "seriously" ;
|
||||||
|
lin clerk_N = mkkN "clerk" ;
|
||||||
|
lin screen_N = mkkN "screen" ;
|
||||||
|
lin blink_V = mkV "blink" ;
|
||||||
|
lin bed_N = mkkN "bed" ;
|
||||||
|
lin container_N = mkkN "container" ;
|
||||||
|
lin automated_teller_N = mkkN "automated" ;
|
||||||
|
lin reject_V2 = mkV2 "reject" ;
|
||||||
|
lin accept_V2 = mkV2 "accept" ;
|
||||||
|
lin type_V2 = mkV2 "type" ;
|
||||||
|
lin know_V = IrregEng.know_V ;
|
||||||
|
lin manager_N = mkkN "manager" ;
|
||||||
|
lin oversleep_V = mkV "oversleep" "overslept" "overslept" ;
|
||||||
|
lin valid_A = mkA "valid" ;
|
||||||
|
lin see_V2 = mkV2 see_V ;
|
||||||
|
lin bark_V = mkV "bark" ;
|
||||||
|
lin go_V2 = mkV2 go_V to_Prep ;
|
||||||
|
lin brother_N = mkkN "brother" ;
|
||||||
|
lin mary_PN = mkPN "mary" ;
|
||||||
|
lin machine_N = mkkN "machine" ;
|
||||||
|
lin correct_A = mkA "correct" ;
|
||||||
|
|
||||||
|
oper mkkN : Str -> CN = \n -> mkCN (ParadigmsEng.mkN n) ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
in_Prep = SyntaxEng.in_Prep ;
|
||||||
|
at_Prep = mkPrep "at" ;
|
||||||
|
into_Prep = mkPrep "into" ;
|
||||||
|
|
||||||
|
}
|
||||||
85
examples/attempto/TestAttemptoSwe.gf
Normal file
85
examples/attempto/TestAttemptoSwe.gf
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
--# -path=.:/Users/aarne/GF/next-lib/present
|
||||||
|
|
||||||
|
concrete TestAttemptoSwe of TestAttempto = AttemptoSwe **
|
||||||
|
open SyntaxSwe, ParadigmsSwe, IrregSwe, (C = ConstructX) in {
|
||||||
|
|
||||||
|
lin card_N = mkkN "kort" neutrum ;
|
||||||
|
lin water_MCN = mkkN "vatten" neutrum ;
|
||||||
|
lin john_PN = mkPN "john" ;
|
||||||
|
lin apple_PN = mkPN "apple" ;
|
||||||
|
lin sleep_V = IrregSwe.sova_V ;
|
||||||
|
lin young_A = mkA "ung" ;
|
||||||
|
lin dog_N = mkkN "hund" utrum ;
|
||||||
|
lin animal_N = mkkN "djur" neutrum ;
|
||||||
|
lin wait_V = mkV "vänta" ;
|
||||||
|
lin man_N = mkCN (mkN "man" "män") ;
|
||||||
|
lin woman_N = mkkN "kvinna" utrum ;
|
||||||
|
lin give_V3 = mkV3 giva_V (mkPrep []) (mkPrep "till") ;
|
||||||
|
lin tired_A = mkA "trött" ;
|
||||||
|
lin rich_A = mkA "rik" ;
|
||||||
|
lin customer_N = mkCN (mkN "kund" "kunder") ;
|
||||||
|
lin enter_V2 = mkV2 "beträda" ;
|
||||||
|
lin bank_N = mkCN (mkN "bank" "banker") ;
|
||||||
|
lin satisfied_A = mkA "nöjd" ;
|
||||||
|
lin lucky_A = mkA "lycklig" ;
|
||||||
|
lin well_known_A = mkA "välkänd" ;
|
||||||
|
lin important_A = mkA "viktig" ;
|
||||||
|
lin expensive_A = mkA "dyr" ;
|
||||||
|
lin fill_in_V2 = mkV2 "fyller" ;
|
||||||
|
lin form_N = mkkN "formulär" neutrum ;
|
||||||
|
lin age_N = mkkN "ålder" utrum ;
|
||||||
|
lin teacher_N = mkkN "lärare" utrum ;
|
||||||
|
lin successful_A = mkA "framgångsrik" ;
|
||||||
|
lin fond_A2 = mkA2 (mkA "kär") (mkPrep "i") ;
|
||||||
|
lin garden_N = mkkN "trädgård" utrum ;
|
||||||
|
lin morning_N = mkCN (mkN "morgon" "morgnar") ;
|
||||||
|
lin code_N = mkCN (mkN "kod" "koder") ;
|
||||||
|
lin drinkable_A = mkA "drickbar" ;
|
||||||
|
lin work_V = mkV "arbeta" ;
|
||||||
|
lin admitted_A = mkA "godkänd" ;
|
||||||
|
lin eat_V2 = mkV2 äta_V ;
|
||||||
|
lin burger_N = mkkN "burgare" utrum ;
|
||||||
|
lin earn_V2 = mkV2 "tjäna" ;
|
||||||
|
lin income_N = mkCN (mkN "inkomst" "inkomster") ;
|
||||||
|
lin england_PN = mkPN "England" ;
|
||||||
|
lin beginning_N = mkCN (mkN "början" "början") ;
|
||||||
|
lin office_N = mkkN "kontor" neutrum ;
|
||||||
|
lin interested_A2 = mkA2 (mkA "intresserad") (mkPrep "i") ;
|
||||||
|
lin classroom_N = mkkN "klassrum" neutrum ;
|
||||||
|
lin manually_Adv = mkAdv "manuellt" ;
|
||||||
|
lin slot_N = mkkN "hål" neutrum ;
|
||||||
|
lin patiently_Adv = mkAdv "tålamodigt" ;
|
||||||
|
lin course_N = mkCN (mkN "kurs" "kurser") ;
|
||||||
|
lin carefully_Adv = mkAdv "försiktigt" ;
|
||||||
|
lin time_N = mkCN (mkN "tid" "tider") ;
|
||||||
|
lin believe_V = mkV "tro" ;
|
||||||
|
lin seriously_Adv = mkAdv "seriöst" ;
|
||||||
|
lin clerk_N = mkkN "bokhållare" utrum ;
|
||||||
|
lin screen_N = mkkN "skärm" neutrum ;
|
||||||
|
lin blink_V = mkV "blinka" ;
|
||||||
|
lin bed_N = mkkN "säng" utrum ;
|
||||||
|
lin container_N = mkkN "behållare" utrum ;
|
||||||
|
lin automated_teller_N = mkCN (mkN "automat" "automater") ;
|
||||||
|
lin reject_V2 = mkV2 "förkasta" ;
|
||||||
|
lin accept_V2 = mkV2 "acceptera" ;
|
||||||
|
lin type_V2 = mkV2 "inmata" ; ----
|
||||||
|
lin know_V = veta_V ;
|
||||||
|
lin manager_N = mkCN (mkN "chef" "chefer") ;
|
||||||
|
lin oversleep_V = mkV "försova" "försov" "försovit" ;
|
||||||
|
lin valid_A = mkA "giltig" ;
|
||||||
|
lin see_V2 = mkV2 se_V ;
|
||||||
|
lin bark_V = mkV "skäller" ;
|
||||||
|
lin go_V2 = mkV2 gå_V to_Prep ;
|
||||||
|
lin brother_N = mkCN (mkN "bror" "bröder") ;
|
||||||
|
lin mary_PN = mkPN "Mary" ;
|
||||||
|
lin machine_N = mkCN (mkN "maskin" "maskiner") ;
|
||||||
|
lin correct_A = mkA "korrekt" ;
|
||||||
|
|
||||||
|
oper mkkN : Str -> Gender -> CN = \n,g -> mkCN (ParadigmsSwe.mkN n g) ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
in_Prep = SyntaxSwe.in_Prep ;
|
||||||
|
at_Prep = mkPrep "på" ;
|
||||||
|
into_Prep = mkPrep "in i" ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user