forked from GitHub/gf-core
Added the FraCaS Treebank to the examples
This commit is contained in:
77
examples/fracas/src/Additions.gf
Normal file
77
examples/fracas/src/Additions.gf
Normal file
@@ -0,0 +1,77 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
-- Additions to the resource grammar
|
||||
|
||||
abstract Additions = Cat ** {
|
||||
|
||||
-- First we start with the contents of the RGL's Extra.gf, as it looked like in October 2011.
|
||||
|
||||
fun
|
||||
GenNP : NP -> Quant ; -- this man's
|
||||
ComplBareVS : VS -> S -> VP ; -- know you go
|
||||
|
||||
StrandRelSlash : RP -> ClSlash -> RCl ; -- that he lives in
|
||||
EmptyRelSlash : ClSlash -> RCl ; -- he lives in
|
||||
|
||||
cat
|
||||
VPI ;
|
||||
[VPI] {2} ;
|
||||
|
||||
fun
|
||||
MkVPI : VP -> VPI ;
|
||||
ConjVPI : Conj -> [VPI] -> VPI ;
|
||||
ComplVPIVV : VV -> VPI -> VP ;
|
||||
|
||||
cat
|
||||
VPS ;
|
||||
[VPS] {2} ;
|
||||
|
||||
fun
|
||||
MkVPS : Temp -> Pol -> VP -> VPS ;
|
||||
ConjVPS : Conj -> [VPS] -> VPS ;
|
||||
PredVPS : NP -> VPS -> S ;
|
||||
|
||||
fun
|
||||
PartVP : VP -> AP ; -- (the man) looking at Mary
|
||||
EmbedPresPart : VP -> SC ; -- looking at Mary (is fun)
|
||||
|
||||
PassVPSlash : VPSlash -> VP ; -- be forced to sleep
|
||||
|
||||
-- And then we give some FraCaS-specific additions to the original Extra.gf.
|
||||
|
||||
cat
|
||||
[QS]{2} ;
|
||||
[Det]{2} ;
|
||||
|
||||
fun
|
||||
-- NP relative phrases, without comma
|
||||
RelNPa : NP -> RS -> NP ;
|
||||
|
||||
-- just to overcome a bug in AdjectiveScand.gf
|
||||
UseComparA_prefix : A -> AP ;
|
||||
|
||||
-- s-form passive
|
||||
PassV2s : V2 -> VP ;
|
||||
|
||||
-- idiom "so do I", "so did she"
|
||||
SoDoI : NP -> Cl ;
|
||||
|
||||
-- as ExtAdvS, but for questions
|
||||
ExtAdvQS : Adv -> QS -> QS ;
|
||||
|
||||
-- question conjunction
|
||||
ConjQS : Conj -> [QS] -> QS ;
|
||||
|
||||
-- determiner conjunction
|
||||
ConjDet : Conj -> [Det] -> Det ;
|
||||
|
||||
-- -- possible additional functions:
|
||||
-- AdVAdv : Adv -> AdV ;
|
||||
-- PassV2V : V2V -> VV ;
|
||||
-- ComplVPIV2V : V2V -> VPI -> VPSlash ;
|
||||
-- ComplVV : VV -> VP -> VP ;
|
||||
-- ComparAdvNoun : CAdv -> CN -> NP -> NP ;
|
||||
-- ComparAdvNounS : CAdv -> CN -> S -> NP ;
|
||||
-- ConjVPSlash : Conj -> VPSlash -> VPSlash -> VPSlash ;
|
||||
|
||||
}
|
||||
104
examples/fracas/src/AdditionsEng.gf
Normal file
104
examples/fracas/src/AdditionsEng.gf
Normal file
@@ -0,0 +1,104 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
concrete AdditionsEng of Additions = CatEng **
|
||||
open ResEng, Coordination, Prelude, MorphoEng, ParadigmsEng,
|
||||
(E=ExtraEng),
|
||||
(R=ResEng),
|
||||
(G=GrammarEng),
|
||||
(P=ParadigmsEng),
|
||||
(X=ParamX),
|
||||
(C=Coordination)
|
||||
in {
|
||||
|
||||
-- First we start with the contents of the RGL's ExtraEng.gf, as it looked like in October 2011.
|
||||
|
||||
lin
|
||||
GenNP = E.GenNP ;
|
||||
ComplBareVS = E.ComplBareVS ;
|
||||
StrandRelSlash = E.StrandRelSlash ;
|
||||
EmptyRelSlash = E.EmptyRelSlash ;
|
||||
|
||||
lincat
|
||||
VPI = E.VPI ;
|
||||
[VPI] = E.ListVPI ;
|
||||
|
||||
lin
|
||||
BaseVPI = E.BaseVPI ;
|
||||
ConsVPI = E.ConsVPI ;
|
||||
MkVPI = E.MkVPI ;
|
||||
ConjVPI = E.ConjVPI ;
|
||||
ComplVPIVV = E.ComplVPIVV ;
|
||||
|
||||
lincat
|
||||
VPS = E.VPS ;
|
||||
[VPS] = E.ListVPS ;
|
||||
|
||||
lin
|
||||
BaseVPS = E.BaseVPS ;
|
||||
ConsVPS = E.ConsVPS ;
|
||||
PredVPS = E.PredVPS ;
|
||||
MkVPS = E.MkVPS ;
|
||||
ConjVPS = E.ConjVPS ;
|
||||
|
||||
lin
|
||||
PassVPSlash = E.PassVPSlash ;
|
||||
PartVP = E.PartVP ;
|
||||
EmbedPresPart = E.EmbedPresPart ;
|
||||
|
||||
-- And then we give some FraCaS-specific additions to the original ExtraEng.gf.
|
||||
|
||||
lincat
|
||||
[QS] = {s1,s2 : X.QForm => Str} ;
|
||||
[Det] = {s1,s2 : Str ; sp1,sp2 : R.NPCase => Str ; n : X.Number ; hasNum : Bool} ;
|
||||
|
||||
lin
|
||||
RelNPa np rs = {
|
||||
s = \\c => np.s ! c ++ rs.s ! np.a ;
|
||||
a = np.a
|
||||
} ;
|
||||
|
||||
UseComparA_prefix = G.UseComparA ;
|
||||
|
||||
PassV2s = G.PassV2 ;
|
||||
|
||||
SoDoI subj = {
|
||||
s = \\t,a,b,o =>
|
||||
let
|
||||
so = case b of {
|
||||
R.CPos => "so" ;
|
||||
R.CNeg c => "neither"
|
||||
} ;
|
||||
did = case <t,a> of {
|
||||
<X.Pres,X.Simul> => R.agrVerb "does" "do" subj.a ;
|
||||
<X.Pres,X.Anter> => R.agrVerb "has" "have" subj.a ;
|
||||
<X.Past,X.Simul> => "did" ;
|
||||
<X.Past,X.Anter> => "had" ;
|
||||
<X.Fut ,_ > => "will" ;
|
||||
<X.Cond,_ > => "would"
|
||||
}
|
||||
in
|
||||
case o of {
|
||||
R.ODir => so ++ did ++ (subj.s ! R.npNom) ;
|
||||
R.OQuest => did ++ (subj.s ! R.npNom) ++ so
|
||||
}
|
||||
} ;
|
||||
|
||||
ExtAdvQS a s = {s = \\q => a.s ++ "," ++ s.s ! q} ;
|
||||
|
||||
ConjQS conj ss = C.conjunctDistrTable X.QForm conj ss ;
|
||||
BaseQS x y = C.twoTable X.QForm x y ;
|
||||
ConsQS x xs = C.consrTable X.QForm C.comma x xs ;
|
||||
|
||||
ConjDet conj ss = C.conjunctDistrSS conj ss ** {
|
||||
sp = \\c => conj.s1 ++ ss.sp1 ! c ++ conj.s2 ++ ss.sp2 ! c;
|
||||
n = X.conjNumber conj.n ss.n; hasNum = ss.hasNum
|
||||
} ;
|
||||
BaseDet x y = C.twoSS x y ** {
|
||||
sp1 = x.sp; sp2 = y.sp; n = X.conjNumber x.n y.n; hasNum = orB x.hasNum y.hasNum
|
||||
} ;
|
||||
ConsDet x xs = C.consrSS C.comma x xs ** {
|
||||
sp1 = \\c => x.sp ! c ++ C.comma ++ xs.sp1 ! c;
|
||||
sp2 = xs.sp2; n = X.conjNumber xs.n x.n; hasNum = orB xs.hasNum x.hasNum
|
||||
} ;
|
||||
|
||||
}
|
||||
83
examples/fracas/src/AdditionsSwe.gf
Normal file
83
examples/fracas/src/AdditionsSwe.gf
Normal file
@@ -0,0 +1,83 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
concrete AdditionsSwe of Additions = CatSwe **
|
||||
open CommonScand, Coordination, ResSwe, ParamX,
|
||||
Prelude,
|
||||
(E=ExtraSwe),
|
||||
(M=MorphoSwe),
|
||||
(P=ParadigmsSwe),
|
||||
(I=IrregSwe),
|
||||
(G=GrammarSwe),
|
||||
(X=ParamX),
|
||||
(C=Coordination)
|
||||
in {
|
||||
|
||||
-- First we start with the contents of the RGL's ExtraSwe.gf, as it looked like in October 2011.
|
||||
|
||||
lin
|
||||
GenNP = E.GenNP ;
|
||||
ComplBareVS = E.ComplBareVS ;
|
||||
StrandRelSlash = E.StrandRelSlash ;
|
||||
EmptyRelSlash = E.EmptyRelSlash ;
|
||||
|
||||
lincat
|
||||
VPI = E.VPI ;
|
||||
[VPI] = E.ListVPI ;
|
||||
|
||||
lin
|
||||
BaseVPI = E.BaseVPI ;
|
||||
ConsVPI = E.ConsVPI ;
|
||||
MkVPI = E.MkVPI ;
|
||||
ConjVPI = E.ConjVPI ;
|
||||
ComplVPIVV = E.ComplVPIVV ;
|
||||
|
||||
lincat
|
||||
VPS = E.VPS ;
|
||||
[VPS] = E.ListVPS ;
|
||||
|
||||
lin
|
||||
BaseVPS = E.BaseVPS ;
|
||||
ConsVPS = E.ConsVPS ;
|
||||
PredVPS = E.PredVPS ;
|
||||
MkVPS = E.MkVPS ;
|
||||
ConjVPS = E.ConjVPS ;
|
||||
|
||||
lin
|
||||
PassVPSlash vps = variants{} ; -- M.insertObj (\\a => "[??]") (UseV M.verbBecome) ;
|
||||
PartVP vp = variants{} ; -- {s = \\ap => "[??]"; isPre = False} ;
|
||||
EmbedPresPart vp = variants{} ;
|
||||
|
||||
-- And then we give some FraCaS-specific additions to the original ExtraSwe.gf.
|
||||
|
||||
lincat
|
||||
[QS] = {s1,s2 : X.QForm => Str} ;
|
||||
[Det] = {s1,s2,sp1,sp2 : Bool => M.NGender => Str ; n : M.Number ; det : M.DetSpecies} ;
|
||||
|
||||
lin
|
||||
RelNPa np rs = {
|
||||
s = \\c => np.s ! c ++ rs.s ! np.a ! M.RNom ;
|
||||
a = np.a ;
|
||||
isMod = np.isMod
|
||||
} ;
|
||||
|
||||
UseComparA_prefix a = {s = (G.UseComparA a).s; isPre = True};
|
||||
|
||||
PassV2s v2 = predV (P.depV (lin V v2)) ;
|
||||
|
||||
SoDoI subj = M.mkClause "det" (M.agrP3 M.neutrum M.Sg)
|
||||
(M.insertObj (\\_ => subj.s ! M.nominative ++ "också") (G.UseV I.göra_V)) ;
|
||||
-- error in Anter: "det har gjort han också"
|
||||
-- error in PNeg: "det gör inte han också" (better: "inte heller")
|
||||
-- probably error in Inv/Sub word order too
|
||||
|
||||
ExtAdvQS a s = {s = \\q => a.s ++ "," ++ s.s ! q} ;
|
||||
|
||||
ConjQS conj ss = C.conjunctDistrTable X.QForm conj ss ;
|
||||
BaseQS x y = C.twoTable X.QForm x y ;
|
||||
ConsQS x xs = C.consrTable X.QForm C.comma x xs ;
|
||||
|
||||
ConjDet conj ss = variants{} ;
|
||||
BaseDet x y = variants{} ;
|
||||
ConsDet x xs = variants{} ;
|
||||
|
||||
}
|
||||
59
examples/fracas/src/FraCaS.gf
Normal file
59
examples/fracas/src/FraCaS.gf
Normal file
@@ -0,0 +1,59 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
abstract FraCaS = Grammar, Additions, FraCaSLex ** {
|
||||
|
||||
flags
|
||||
startcat = Phr ;
|
||||
|
||||
-- language independent functions
|
||||
|
||||
fun
|
||||
ComparAsAs : A -> NP -> AP;
|
||||
|
||||
fun
|
||||
Adverbial : Adv -> Phr;
|
||||
PAdverbial : PConj -> Adv -> Phr;
|
||||
Nounphrase : NP -> Phr;
|
||||
PNounphrase : PConj -> NP -> Phr;
|
||||
Question : QS -> Phr;
|
||||
PQuestion : PConj -> QS -> Phr;
|
||||
Sentence : S -> Phr;
|
||||
PSentence : PConj -> S -> Phr;
|
||||
|
||||
fun
|
||||
Past : Temp;
|
||||
PastPerfect : Temp;
|
||||
Present : Temp;
|
||||
PresentPerfect : Temp;
|
||||
Future : Temp;
|
||||
FuturePerfect : Temp;
|
||||
Conditional : Temp;
|
||||
|
||||
fun
|
||||
ConjCN2 : Conj -> CN -> CN -> CN;
|
||||
ConjNP2 : Conj -> NP -> NP -> NP;
|
||||
ConjNP3 : Conj -> NP -> NP -> NP -> NP;
|
||||
ConjQS2 : Conj -> QS -> QS -> QS;
|
||||
ConjS2 : Conj -> S -> S -> S;
|
||||
ConjVPI2 : Conj -> VP -> VP -> VPI;
|
||||
ConjVPS2 : Conj -> Temp -> Pol -> VP -> Temp -> Pol -> VP -> VPS;
|
||||
|
||||
-- language dependent functions
|
||||
|
||||
fun
|
||||
UncNeg : Pol ;
|
||||
|
||||
fun
|
||||
ComplVSa : VS -> S -> VP ;
|
||||
ProgrVPa : VP -> VP ;
|
||||
|
||||
fun
|
||||
elliptic_V : V ;
|
||||
elliptic_NP_Sg, elliptic_NP_Pl : NP ;
|
||||
elliptic_CN : CN ;
|
||||
elliptic_VP : VP ;
|
||||
elliptic_Cl : Cl ;
|
||||
elliptic_VPSlash : VPSlash ;
|
||||
elliptic_V2V : V2V ;
|
||||
|
||||
}
|
||||
1579
examples/fracas/src/FraCaSBank.gf
Normal file
1579
examples/fracas/src/FraCaSBank.gf
Normal file
File diff suppressed because it is too large
Load Diff
3
examples/fracas/src/FraCaSBankEng.gf
Normal file
3
examples/fracas/src/FraCaSBankEng.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
concrete FraCaSBankEng of FraCaSBank = FraCaSBankI with (FraCaS = FraCaSEng);
|
||||
1579
examples/fracas/src/FraCaSBankI.gf
Normal file
1579
examples/fracas/src/FraCaSBankI.gf
Normal file
File diff suppressed because it is too large
Load Diff
1581
examples/fracas/src/FraCaSBankOriginal.gf
Normal file
1581
examples/fracas/src/FraCaSBankOriginal.gf
Normal file
File diff suppressed because it is too large
Load Diff
3
examples/fracas/src/FraCaSBankSwe.gf
Normal file
3
examples/fracas/src/FraCaSBankSwe.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
concrete FraCaSBankSwe of FraCaSBank = FraCaSBankI with (FraCaS = FraCaSSwe);
|
||||
69
examples/fracas/src/FraCaSEng.gf
Normal file
69
examples/fracas/src/FraCaSEng.gf
Normal file
@@ -0,0 +1,69 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
concrete FraCaSEng of FraCaS = GrammarEng, AdditionsEng, FraCaSLexEng ** open
|
||||
Prelude,
|
||||
(G=GrammarEng),
|
||||
(A=AdditionsEng),
|
||||
(E=ExtraEng),
|
||||
(R=ResEng),
|
||||
(P=ParadigmsEng),
|
||||
(X=ParamX),
|
||||
(C=Coordination)
|
||||
in {
|
||||
|
||||
-- language independent functions
|
||||
|
||||
lin
|
||||
ComparAsAs x0 x1 = (G.CAdvAP (G.as_CAdv) (G.PositA x0) x1);
|
||||
|
||||
lin
|
||||
Adverbial x0 = (PAdverbial (G.NoPConj) x0);
|
||||
PAdverbial x0 x1 = (G.PhrUtt x0 (G.UttAdv x1) (G.NoVoc));
|
||||
Nounphrase x0 = (PNounphrase (G.NoPConj) x0);
|
||||
PNounphrase x0 x1 = (G.PhrUtt x0 (G.UttNP x1) (G.NoVoc));
|
||||
Question x0 = (PQuestion (G.NoPConj) x0);
|
||||
PQuestion x0 x1 = (G.PhrUtt x0 (G.UttQS x1) (G.NoVoc));
|
||||
Sentence x0 = (PSentence (G.NoPConj) x0);
|
||||
PSentence x0 x1 = (G.PhrUtt x0 (G.UttS x1) (G.NoVoc));
|
||||
|
||||
lin
|
||||
Past = (G.TTAnt (G.TPast) (G.ASimul));
|
||||
PastPerfect = (G.TTAnt (G.TPast) (G.AAnter));
|
||||
Present = (G.TTAnt (G.TPres) (G.ASimul));
|
||||
PresentPerfect = (G.TTAnt (G.TPres) (G.AAnter));
|
||||
Future = (G.TTAnt (G.TFut) (G.ASimul));
|
||||
FuturePerfect = (G.TTAnt (G.TFut) (G.AAnter));
|
||||
Conditional = (G.TTAnt (G.TCond) (G.ASimul));
|
||||
|
||||
lin
|
||||
ConjCN2 c n1 n2 = (G.ConjCN c (G.BaseCN n1 n2));
|
||||
ConjNP2 c n1 n2 = (G.ConjNP c (G.BaseNP n1 n2));
|
||||
ConjNP3 c n1 n2 n3 = (G.ConjNP c (G.ConsNP n1 (G.BaseNP n2 n3)));
|
||||
ConjQS2 c q1 q2 = (A.ConjQS c (A.BaseQS q1 q2));
|
||||
ConjS2 c s1 s2 = (G.ConjS c (G.BaseS s1 s2));
|
||||
ConjVPI2 c v1 v2 = (A.ConjVPI c (A.BaseVPI (A.MkVPI v1) (A.MkVPI v2)));
|
||||
ConjVPS2 c t1 p1 v1 t2 p2 v2 = (A.ConjVPS c (A.BaseVPS (A.MkVPS t1 p1 v1) (A.MkVPS t2 p2 v2)));
|
||||
|
||||
-- language dependent functions
|
||||
|
||||
lin
|
||||
UncNeg = E.UncNeg ;
|
||||
|
||||
lin
|
||||
ComplVSa = A.ComplBareVS ;
|
||||
ProgrVPa = G.ProgrVP ;
|
||||
|
||||
lin
|
||||
elliptic_V = P.mkV ellipsis ellipsis ellipsis ellipsis ellipsis ;
|
||||
elliptic_NP_Sg = {s = \\c => ellipsis; a = R.AgP3Sg R.Neutr} ;
|
||||
elliptic_NP_Pl = {s = \\c => ellipsis; a = R.AgP3Pl} ;
|
||||
elliptic_VP = R.predV elliptic_V ;
|
||||
elliptic_Cl = {s = \\_,_,_,_ => ellipsis} ;
|
||||
elliptic_VPSlash = R.predV elliptic_V ** {c2 = ""};
|
||||
elliptic_V2V = P.mkV2V elliptic_V P.noPrep P.noPrep ;
|
||||
elliptic_CN = {s = \\n,c => ellipsis; g = R.Neutr} ;
|
||||
|
||||
oper
|
||||
ellipsis : Str = "[..]" ;
|
||||
|
||||
}
|
||||
519
examples/fracas/src/FraCaSLex.gf
Normal file
519
examples/fracas/src/FraCaSLex.gf
Normal file
@@ -0,0 +1,519 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
-- FraCaSLex: Abstract lexicon for the FraCaS test suite
|
||||
|
||||
abstract FraCaSLex = Cat ** {
|
||||
|
||||
fun
|
||||
-- NOUNS
|
||||
accountant_N : N ;
|
||||
agenda_N : N ;
|
||||
animal_N : N ;
|
||||
apcom_contract_N : N ;
|
||||
apcom_manager_N : N ;
|
||||
auditor_N : N ;
|
||||
authority_N : N ;
|
||||
board_meeting_N : N ;
|
||||
boss_N : N ;
|
||||
business_N : N ;
|
||||
businessman_N : N ;
|
||||
car_N : N ;
|
||||
case_N : N ;
|
||||
chain_N : N ;
|
||||
chairman_N : N ;
|
||||
chairman_N2 : N2 ;
|
||||
charity_N : N ;
|
||||
clause_N : N ;
|
||||
client_N : N ;
|
||||
colleague_N : N ;
|
||||
commissioner_N : N ;
|
||||
committee_N : N ;
|
||||
committee_member_N : N ;
|
||||
company_N : N ;
|
||||
company_car_N : N ;
|
||||
company_director_N : N ;
|
||||
computer_N : N ;
|
||||
concert_N : N ;
|
||||
conference_N : N ;
|
||||
continent_N : N ;
|
||||
contract_N : N ;
|
||||
copy_N : N ;
|
||||
country_N : N ;
|
||||
cover_page_N : N ;
|
||||
customer_N : N ;
|
||||
day_N : N ;
|
||||
delegate_N : N ;
|
||||
demonstration_N : N ;
|
||||
department_N : N ;
|
||||
desk_N : N ;
|
||||
diamond_N : N ;
|
||||
editor_N : N ;
|
||||
elephant_N : N ;
|
||||
european_N : N ;
|
||||
executive_N : N ;
|
||||
factory_N : N ;
|
||||
fee_N : N ;
|
||||
file_N : N ;
|
||||
greek_N : N ;
|
||||
group_N2 : N2 ;
|
||||
hard_disk_N : N ;
|
||||
heart_N : N ;
|
||||
hour_N : N ;
|
||||
house_N : N ;
|
||||
individual_N : N ;
|
||||
inhabitant_N2 : N2 ;
|
||||
invoice_N : N ;
|
||||
irishman_N : N ;
|
||||
italian_N : N ;
|
||||
itel_computer_N : N ;
|
||||
itelxz_N : N ;
|
||||
itelzx_N : N ;
|
||||
itelzy_N : N ;
|
||||
item_N : N ;
|
||||
job_N : N ;
|
||||
labour_mp_N : N ;
|
||||
laptop_computer_N : N ;
|
||||
law_lecturer_N : N ;
|
||||
lawyer_N : N ;
|
||||
line_N : N ;
|
||||
literature_N : N ;
|
||||
lobby_N : N ;
|
||||
loss_N : N ;
|
||||
machine_N : N ;
|
||||
mammal_N : N ;
|
||||
man_N : N ;
|
||||
meeting_N : N ;
|
||||
member_N : N ;
|
||||
member_state_N : N ;
|
||||
memoir_N : N ;
|
||||
mips_N : N ;
|
||||
moment_N : N ;
|
||||
mortgage_interest_N : N ;
|
||||
mouse_N : N ;
|
||||
newspaper_N : N ;
|
||||
nobel_prize_N : N ;
|
||||
nobel_prize_N2 : N2 ;
|
||||
note_N : N ;
|
||||
novel_N : N ;
|
||||
office_building_N : N ;
|
||||
one_N : N ;
|
||||
order_N : N ;
|
||||
paper_N : N ;
|
||||
payrise_N : N ;
|
||||
pc6082_N : N ;
|
||||
performance_N : N ;
|
||||
person_N : N ;
|
||||
philosopher_N : N ;
|
||||
phone_N : N ;
|
||||
politician_N : N ;
|
||||
popular_music_N : N ;
|
||||
program_N : N ;
|
||||
progress_report_N : N ;
|
||||
project_proposal_N : N ;
|
||||
proposal_N : N ;
|
||||
report_N : N ;
|
||||
representative_N : N ;
|
||||
resident_N : N ;
|
||||
resident_in_N2 : N2 ;
|
||||
resident_on_N2 : N2 ;
|
||||
result_N : N ;
|
||||
right_N : N ;
|
||||
sales_department_N : N ;
|
||||
scandinavian_N : N ;
|
||||
secretary_N : N ;
|
||||
service_contract_N : N ;
|
||||
shore_N : N ;
|
||||
software_fault_N : N ;
|
||||
species_N : N ;
|
||||
station_N : N ;
|
||||
stock_market_trader_N : N ;
|
||||
stockmarket_trader_N : N ;
|
||||
story_N : N ;
|
||||
student_N : N ;
|
||||
survey_N : N ;
|
||||
swede_N : N ;
|
||||
system_N : N ;
|
||||
system_failure_N : N ;
|
||||
taxi_N : N ;
|
||||
temper_N : N ;
|
||||
tenor_N : N ;
|
||||
time_N : N ;
|
||||
today_N : N ;
|
||||
traffic_N : N ;
|
||||
train_N : N ;
|
||||
university_graduate_N : N ;
|
||||
university_student_N : N ;
|
||||
week_N : N ;
|
||||
wife_N : N ;
|
||||
woman_N : N ;
|
||||
workstation_N : N ;
|
||||
world_N : N ;
|
||||
year_N : N ;
|
||||
|
||||
-- PROPER NOUNS
|
||||
alan_PN : PN ;
|
||||
anderson_PN : PN ;
|
||||
apcom_PN : PN ;
|
||||
berlin_PN : PN ;
|
||||
bill_PN : PN ;
|
||||
birmingham_PN : PN ;
|
||||
bt_PN : PN ;
|
||||
bug_32985_PN : PN ;
|
||||
cambridge_PN : PN ;
|
||||
carl_PN : PN ;
|
||||
dumbo_PN : PN ;
|
||||
europe_PN : PN ;
|
||||
fido_PN : PN ;
|
||||
florence_PN : PN ;
|
||||
frank_PN : PN ;
|
||||
gfi_PN : PN ;
|
||||
helen_PN : PN ;
|
||||
icm_PN : PN ;
|
||||
itel_PN : PN ;
|
||||
john_PN : PN ;
|
||||
jones_PN : PN ;
|
||||
katmandu_PN : PN ;
|
||||
kim_PN : PN ;
|
||||
luxembourg_PN : PN ;
|
||||
mary_PN : PN ;
|
||||
mfi_PN : PN ;
|
||||
mickey_PN : PN ;
|
||||
mtalk_PN : PN ;
|
||||
paris_PN : PN ;
|
||||
pavarotti_PN : PN ;
|
||||
peter_PN : PN ;
|
||||
portugal_PN : PN ;
|
||||
r95103_PN : PN ;
|
||||
scandinavia_PN : PN ;
|
||||
smith_PN : PN ;
|
||||
southern_europe_PN : PN ;
|
||||
sue_PN : PN ;
|
||||
sweden_PN : PN ;
|
||||
the_cia_PN : PN ;
|
||||
the_m25_PN : PN ;
|
||||
|
||||
-- PRONOUNS
|
||||
anyone_Pron : Pron ;
|
||||
everyone_Pron : Pron ;
|
||||
no_one_Pron : Pron ;
|
||||
someone_Pron : Pron ;
|
||||
nobody_Pron : Pron ;
|
||||
sheRefl_Pron : Pron ;
|
||||
heRefl_Pron : Pron ;
|
||||
theyRefl_Pron : Pron ;
|
||||
itRefl_Pron : Pron ;
|
||||
|
||||
-- RELATIVE PRONOUNS
|
||||
that_RP : RP ;
|
||||
|
||||
-- ADJECTIVES
|
||||
ambitious_A : A ;
|
||||
ancient_A : A ;
|
||||
asleep_A : A ;
|
||||
blue_A : A ;
|
||||
british_A : A ;
|
||||
broke_A : A ;
|
||||
canadian_A : A ;
|
||||
clever_A : A ;
|
||||
competent_A : A ;
|
||||
crucial_A : A ;
|
||||
dedicated_A : A ;
|
||||
different_A : A ;
|
||||
employed_A : A ;
|
||||
excellent_A : A ;
|
||||
false_A : A ;
|
||||
fast_A : A ;
|
||||
fat_A : A ;
|
||||
female_A : A ;
|
||||
former_A : A ;
|
||||
fourlegged_A : A ;
|
||||
free_A : A ;
|
||||
furious_A : A ;
|
||||
genuine_A : A ;
|
||||
german_A : A ;
|
||||
great_A : A ;
|
||||
important_A : A ;
|
||||
impressed_by_A2 : A2 ;
|
||||
indispensable_A : A ;
|
||||
interesting_A : A ;
|
||||
irish_A : A ;
|
||||
italian_A : A ;
|
||||
known_A : A ;
|
||||
large_A : A ;
|
||||
leading_A : A ;
|
||||
legal_A : A ;
|
||||
likely_A : A ;
|
||||
major_A : A ;
|
||||
male_A : A ;
|
||||
many_A : A ;
|
||||
missing_A : A ;
|
||||
modest_A : A ;
|
||||
national_A : A ;
|
||||
new_A : A ;
|
||||
north_american_A : A ;
|
||||
noted_A : A ;
|
||||
own_A : A ;
|
||||
poor8bad_A : A ;
|
||||
poor8penniless_A : A ;
|
||||
portuguese_A : A ;
|
||||
present8attending_A : A ;
|
||||
present8current_A : A ;
|
||||
previous_A : A ;
|
||||
red_A : A ;
|
||||
resident_A : A ;
|
||||
scandinavian_A : A ;
|
||||
serious_A : A ;
|
||||
slow_A : A ;
|
||||
small_A : A ;
|
||||
successful_A : A ;
|
||||
swedish_A : A ;
|
||||
true_A : A ;
|
||||
unemployed_A : A ;
|
||||
western_A : A ;
|
||||
|
||||
-- VERBS
|
||||
accept_V2 : V2 ;
|
||||
allow_V2V : V2V ;
|
||||
answer_V2 : V2 ;
|
||||
appoint_V2 : V2 ;
|
||||
arrive_in_V2 : V2 ;
|
||||
attend_V2 : V2 ;
|
||||
award_V3 : V3 ;
|
||||
beat_V : V ;
|
||||
become_V2 : V2 ;
|
||||
believe_VS : VS ;
|
||||
blame1_V2 : V2 ;
|
||||
blame2_V2 : V2 ;
|
||||
bring_V2V : V2V ;
|
||||
build_V2 : V2 ;
|
||||
buy_V2 : V2 ;
|
||||
catch_V2 : V2 ;
|
||||
chair_V2 : V2 ;
|
||||
claim_VS : VS ;
|
||||
come_cheap_VP : VP ;
|
||||
come_in_V : V ;
|
||||
continue_V : V ;
|
||||
contribute_to_V3 : V3 ;
|
||||
cost_V2 : V2 ;
|
||||
crash_V : V ;
|
||||
cross_out_V2 : V2 ;
|
||||
deliver_V2 : V2 ;
|
||||
deliver_V3 : V3 ;
|
||||
destroy_V2 : V2 ;
|
||||
develop_V2 : V2 ;
|
||||
discover_V2 : V2 ;
|
||||
discover_VS : VS ;
|
||||
do_VV : VV ;
|
||||
dupe_V2 : V2 ;
|
||||
exist_V : V ;
|
||||
expand_V : V ;
|
||||
find_V2 : V2 ;
|
||||
finish_V2 : V2 ;
|
||||
finish_VV : VV ;
|
||||
found_V2 : V2 ;
|
||||
gamble_V : V ;
|
||||
get_V2 : V2 ;
|
||||
going_to_VV : VV ;
|
||||
go8travel_V : V ;
|
||||
go8walk_V : V ;
|
||||
graduate_V : V ;
|
||||
hate_V2 : V2 ;
|
||||
hurt_V2 : V2 ;
|
||||
increase_V : V ;
|
||||
know_VQ : VQ ;
|
||||
know_VS : VS ;
|
||||
last_V2 : V2 ;
|
||||
leave_V : V ;
|
||||
leave_V2 : V2 ;
|
||||
like_V2 : V2 ;
|
||||
live_V : V ;
|
||||
lose_V2 : V2 ;
|
||||
maintain_V2 : V2 ;
|
||||
make8become_V2 : V2 ;
|
||||
make8do_V2 : V2 ;
|
||||
manage_VV : VV ;
|
||||
meet_V : V ;
|
||||
need_V2 : V2 ;
|
||||
need_VV : VV ;
|
||||
obtain_from_V3 : V3 ;
|
||||
open_V2 : V2 ;
|
||||
own_V2 : V2 ;
|
||||
pay_V2 : V2 ;
|
||||
publish_V2 : V2 ;
|
||||
put_in_V3 : V3 ;
|
||||
read_V2 : V2 ;
|
||||
read_out_V2 : V2 ;
|
||||
remove_V2 : V2 ;
|
||||
rent_from_V3 : V3 ;
|
||||
represent_V2 : V2 ;
|
||||
revise_V2 : V2 ;
|
||||
run_V2 : V2 ;
|
||||
say_VS : VS ;
|
||||
see_V2V : V2V ;
|
||||
sell_V2 : V2 ;
|
||||
send_V2 : V2 ;
|
||||
shall_VV : VV ;
|
||||
sign_V2 : V2 ;
|
||||
sing_V2 : V2 ;
|
||||
speak_to_V2 : V2 ;
|
||||
spend_V2 : V2 ;
|
||||
start_V : V ;
|
||||
start_VV : VV ;
|
||||
stop_V : V ;
|
||||
suggest_to_V2S : V2S ;
|
||||
swim_V : V ;
|
||||
take_V2 : V2 ;
|
||||
take_V2V : V2V ;
|
||||
take_part_in_V2 : V2 ;
|
||||
tell_about_V3 : V3 ;
|
||||
travel_V : V ;
|
||||
try_VV : VV ;
|
||||
update_V2 : V2 ;
|
||||
use_V2 : V2 ;
|
||||
use_VV : VV ;
|
||||
vote_for_V2 : V2 ;
|
||||
win_V2 : V2 ;
|
||||
work_V : V ;
|
||||
work_in_V2 : V2 ;
|
||||
write_V2 : V2 ;
|
||||
write_to_V2 : V2 ;
|
||||
|
||||
award_and_be_awarded_V2 : V2 ;
|
||||
|
||||
-- DETERMINERS
|
||||
a_few_Det : Det ;
|
||||
a_lot_of_Det : Det ;
|
||||
another_Det : Det ;
|
||||
anyPl_Det : Det ;
|
||||
anySg_Det : Det ;
|
||||
both_Det : Det ;
|
||||
each_Det : Det ;
|
||||
either_Det : Det ;
|
||||
neither_Det : Det ;
|
||||
one_or_more_Det : Det ;
|
||||
several_Det : Det ;
|
||||
twice_as_many_Det : Det ;
|
||||
|
||||
half_a_Card : Card ;
|
||||
|
||||
the_other_Q : Quant ;
|
||||
|
||||
-- NUMERALS
|
||||
N_one, N_two, N_three, N_four, N_five, N_six, N_eight, N_ten, N_eleven, N_sixteen, N_twenty, N_fortyfive : Numeral ;
|
||||
N_2, N_4, N_8, N_10, N_13, N_14, N_15, N_99, N_100, N_150, N_500, N_2500, N_3000, N_5500 : Numeral ;
|
||||
|
||||
-- ADVERBS
|
||||
anywhere_Adv : Adv ;
|
||||
ever_since_Adv : Adv ;
|
||||
late_Adv : Adv ;
|
||||
long_Adv : Adv ;
|
||||
over_Adv : Adv ;
|
||||
part_time_Adv : Adv ;
|
||||
together_Adv : Adv ;
|
||||
too_Adv : Adv ;
|
||||
twice_Adv : Adv ;
|
||||
yesterday_Adv : Adv ;
|
||||
|
||||
at_home_Adv : Adv ;
|
||||
|
||||
all_AdV : AdV ;
|
||||
already_AdV : AdV ;
|
||||
also_AdV : AdV ;
|
||||
currently_AdV : AdV ;
|
||||
ever_AdV : AdV ;
|
||||
never_AdV : AdV ;
|
||||
now_AdV : AdV ;
|
||||
still_AdV : AdV ;
|
||||
|
||||
really_AdA : AdA ;
|
||||
|
||||
more_than_AdN : AdN ;
|
||||
less_than_AdN : AdN ;
|
||||
|
||||
-- TIME & DATE EXPRESSIONS
|
||||
at_8_am_Adv : Adv ;
|
||||
at_a_quarter_past_five_Adv : Adv ;
|
||||
at_five_oclock_Adv : Adv ;
|
||||
at_four_oclock_Adv : Adv ;
|
||||
by_11_am_Adv : Adv ;
|
||||
for_8_years_Adv : Adv ;
|
||||
for_a_total_of_15_years_or_more_Adv : Adv ;
|
||||
for_a_year_Adv : Adv ;
|
||||
for_an_hour_Adv : Adv ;
|
||||
for_exactly_a_year_Adv : Adv ;
|
||||
for_more_than_10_years_Adv : Adv ;
|
||||
for_more_than_two_years_Adv : Adv ;
|
||||
for_three_days_Adv : Adv ;
|
||||
for_two_hours_Adv : Adv ;
|
||||
for_two_years_Adv : Adv ;
|
||||
friday_13th_Adv : Adv ;
|
||||
from_1988_to_1992_Adv : Adv ;
|
||||
in_1990_Adv : Adv ;
|
||||
in_1991_Adv : Adv ;
|
||||
in_1992_Adv : Adv ;
|
||||
in_1993_Adv : Adv ;
|
||||
in_1994_Adv : Adv ;
|
||||
in_a_few_weeks_Adv : Adv ;
|
||||
in_a_months_time_Adv : Adv ;
|
||||
in_july_1994_Adv : Adv ;
|
||||
in_march_Adv : Adv ;
|
||||
in_march_1993_Adv : Adv ;
|
||||
in_one_hour_Adv : Adv ;
|
||||
in_the_coming_year_Adv : Adv ;
|
||||
in_two_hours_Adv : Adv ;
|
||||
on_friday_Adv : Adv ;
|
||||
on_july_4th_1994_Adv : Adv ;
|
||||
on_july_8th_1994_Adv : Adv ;
|
||||
on_monday_Adv : Adv ;
|
||||
on_the_5th_of_may_1995_Adv : Adv ;
|
||||
on_the_7th_of_may_1995_Adv : Adv ;
|
||||
on_thursday_Adv : Adv ;
|
||||
on_tuesday_Adv : Adv ;
|
||||
on_wednesday_Adv : Adv ;
|
||||
since_1992_Adv : Adv ;
|
||||
in_the_past_Adv : Adv ;
|
||||
at_some_time_Adv : Adv ;
|
||||
at_the_same_time_Adv : Adv ;
|
||||
saturday_july_14th_Adv : Adv ;
|
||||
the_15th_of_may_1995_Adv : Adv ;
|
||||
year_1996_Adv : Adv ;
|
||||
|
||||
every_month_Adv : Adv ;
|
||||
every_week_Adv : Adv ;
|
||||
last_week_Adv : Adv ;
|
||||
two_years_from_now_Adv : Adv ;
|
||||
at_least_four_times : Adv ;
|
||||
on_time_Adv : Adv ;
|
||||
|
||||
-- PREPOSITIONS
|
||||
at_Prep : Prep ;
|
||||
outside_Prep : Prep ;
|
||||
within_Prep : Prep ;
|
||||
than_Prep : Prep ;
|
||||
out_of_Prep : Prep ;
|
||||
|
||||
-- PREDETERMINERS
|
||||
at_least_Predet : Predet ;
|
||||
at_most_Predet : Predet ;
|
||||
exactly_Predet : Predet ;
|
||||
just_Predet : Predet ;
|
||||
most_of_Predet : Predet ;
|
||||
|
||||
-- CONJUNCTIONS
|
||||
andSg_Conj : Conj ;
|
||||
comma_and_Conj : Conj ;
|
||||
semicolon_and_Conj : Conj ;
|
||||
if_comma_then_Conj : Conj ;
|
||||
|
||||
after_Subj : Subj ;
|
||||
before_Subj : Subj ;
|
||||
until_Subj : Subj ;
|
||||
while_Subj : Subj ;
|
||||
than_Subj : Subj ;
|
||||
since_Subj : Subj ;
|
||||
|
||||
that_is_PConj : PConj ;
|
||||
and_PConj : PConj ;
|
||||
then_PConj : PConj ;
|
||||
|
||||
}
|
||||
569
examples/fracas/src/FraCaSLexEng.gf
Normal file
569
examples/fracas/src/FraCaSLexEng.gf
Normal file
@@ -0,0 +1,569 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
-- FraCaSLexEng: Concrete lexicon for the FraCaS test suite
|
||||
|
||||
concrete FraCaSLexEng of FraCaSLex = CatEng **
|
||||
open ParadigmsEng, (I=IrregEng), Prelude, MorphoEng, ResEng, (G=GrammarEng), (E=ExtraEng), (X=ConstructX) in {
|
||||
|
||||
lin
|
||||
-- NOUNS
|
||||
accountant_N = mkN human (mkN "accountant") ;
|
||||
agenda_N = mkN "agenda" ;
|
||||
animal_N = mkN "animal" ;
|
||||
apcom_contract_N = mkN "APCOM contract" ;
|
||||
apcom_manager_N = mkN human (mkN "APCOM manager") ;
|
||||
auditor_N = mkN human (mkN "auditor") ;
|
||||
authority_N = mkN human (mkN "authority") ;
|
||||
board_meeting_N = mkN "board meeting" ;
|
||||
boss_N = mkN human (mkN "boss") ;
|
||||
business_N = mkN "business" ;
|
||||
businessman_N = mkN human (mkN "businessman" "businessmen") ;
|
||||
car_N = mkN "car" ;
|
||||
case_N = mkN "case" ;
|
||||
chain_N = mkN "chain" ;
|
||||
chairman_N = mkN human (mkN "chairman" "chairmen") ;
|
||||
chairman_N2 = mkN2 (mkN human (mkN "chairman" "chairmen")) (mkPrep "of") ;
|
||||
charity_N = mkN "charity" ;
|
||||
clause_N = mkN "clause" ;
|
||||
client_N = mkN human (mkN "client") ;
|
||||
colleague_N = mkN human (mkN "colleague") ;
|
||||
commissioner_N = mkN human (mkN "commissioner") ;
|
||||
committee_N = mkN "committee" ;
|
||||
committee_member_N = mkN human (mkN "committee member") ;
|
||||
company_N = mkN "company" ;
|
||||
company_car_N = mkN "company car" ;
|
||||
company_director_N = mkN human (mkN "company director") ;
|
||||
computer_N = mkN "computer" ;
|
||||
concert_N = mkN "concert" ;
|
||||
conference_N = mkN "conference" ;
|
||||
continent_N = mkN "continent" ;
|
||||
contract_N = mkN "contract" ;
|
||||
copy_N = mkN "copy" ;
|
||||
country_N = mkN "country" ;
|
||||
cover_page_N = mkN "cover page" ;
|
||||
customer_N = mkN human (mkN "customer") ;
|
||||
day_N = mkN "day" ;
|
||||
delegate_N = mkN human (mkN "delegate") ;
|
||||
demonstration_N = mkN "demonstration" ;
|
||||
department_N = mkN "department" ;
|
||||
desk_N = mkN "desk" ;
|
||||
diamond_N = mkN "diamond" ;
|
||||
editor_N = mkN human (mkN "editor") ;
|
||||
elephant_N = mkN "elephant" ;
|
||||
european_N = mkN human (mkN "European") ;
|
||||
executive_N = mkN human (mkN "executive") ;
|
||||
factory_N = mkN "factory" ;
|
||||
fee_N = mkN "fee" ;
|
||||
file_N = mkN "file" ;
|
||||
greek_N = mkN human (mkN "Greek") ;
|
||||
group_N2 = mkN2 (mkN "group") ;
|
||||
hard_disk_N = mkN "hard disk" ;
|
||||
heart_N = mkN "heart" ;
|
||||
hour_N = mkN "hour" ;
|
||||
house_N = mkN "house" ;
|
||||
individual_N = mkN human (mkN "individual") ;
|
||||
inhabitant_N2 = mkN2 (mkN human (mkN "inhabitant")) (mkPrep "of") ;
|
||||
invoice_N = mkN "invoice" ;
|
||||
irishman_N = mkN human (mkN "Irishman" "Irishmen") ;
|
||||
italian_N = mkN human (mkN "Italian") ;
|
||||
itel_computer_N = mkN "ITEL computer" ;
|
||||
itelxz_N = mkN "ITEL-XZ" ;
|
||||
itelzx_N = mkN "ITEL-ZX" ;
|
||||
itelzy_N = mkN "ITEL-ZY" ;
|
||||
item_N = mkN "item" ;
|
||||
job_N = mkN "job" ;
|
||||
labour_mp_N = mkN human (mkN "Labour MP") ;
|
||||
laptop_computer_N = mkN "laptop computer" ;
|
||||
law_lecturer_N = mkN human (mkN "law lecturer") ;
|
||||
lawyer_N = mkN human (mkN "lawyer") ;
|
||||
line_N = mkN "line" ;
|
||||
literature_N = mkN "literature" ;
|
||||
lobby_N = mkN "lobby" ;
|
||||
loss_N = mkN "loss" ;
|
||||
machine_N = mkN "machine" ;
|
||||
mammal_N = mkN "mammal" ;
|
||||
man_N = mkN human (mkN "man" "men") ;
|
||||
meeting_N = mkN "meeting" ;
|
||||
member_N = mkN human (mkN "member") ;
|
||||
member_state_N = mkN "member state" ;
|
||||
memoir_N = mkN "memoir" ;
|
||||
mips_N = mkN "MIPS" "MIPS" "MIPS'" "MIPS'" ;
|
||||
moment_N = mkN "moment" ;
|
||||
mortgage_interest_N = mkN "mortgage interest" ;
|
||||
mouse_N = mkN "mouse" "mice" ;
|
||||
newspaper_N = mkN "newspaper" ;
|
||||
nobel_prize_N = mkN "Nobel prize" ;
|
||||
nobel_prize_N2 = mkN2 (mkN "Nobel prize") (mkPrep "for") ;
|
||||
note_N = mkN "note" ;
|
||||
novel_N = mkN "novel" ;
|
||||
office_building_N = mkN "office building" ;
|
||||
one_N = mkN "one" ;
|
||||
order_N = mkN "order" ;
|
||||
paper_N = mkN "paper" ;
|
||||
payrise_N = mkN "payrise" ;
|
||||
pc6082_N = mkN "PC-6082" ;
|
||||
performance_N = mkN "performance" ;
|
||||
person_N = mkN human (mkN "person" "people") ;
|
||||
philosopher_N = mkN human (mkN "philosopher") ;
|
||||
phone_N = mkN "phone" ;
|
||||
politician_N = mkN human (mkN "politician") ;
|
||||
popular_music_N = mkN "popular music" ;
|
||||
program_N = mkN "program" ;
|
||||
progress_report_N = mkN "progress report" ;
|
||||
project_proposal_N = mkN "project proposal" ;
|
||||
proposal_N = mkN "proposal" ;
|
||||
report_N = mkN "report" ;
|
||||
representative_N = mkN human (mkN "representative") ;
|
||||
resident_N = mkN human (mkN "resident") ;
|
||||
resident_in_N2 = mkN2 (mkN human (mkN "resident")) (mkPrep "of") ;
|
||||
resident_on_N2 = mkN2 (mkN human (mkN "resident")) (mkPrep "of") ;
|
||||
result_N = mkN "result" ;
|
||||
right_N = mkN "right" ;
|
||||
sales_department_N = mkN "sales department" ;
|
||||
scandinavian_N = mkN human (mkN "Scandinavian") ;
|
||||
secretary_N = mkN human (mkN "secretary") ;
|
||||
service_contract_N = mkN "service contract" ;
|
||||
shore_N = mkN "shore" ;
|
||||
software_fault_N = mkN "software fault" ;
|
||||
species_N = mkN "species" "species" ;
|
||||
station_N = mkN "station" ;
|
||||
stock_market_trader_N = mkN human (mkN "stock market trader") ;
|
||||
stockmarket_trader_N = mkN human (mkN "stock-market trader") ;
|
||||
story_N = mkN "story" ;
|
||||
student_N = mkN human (mkN "student") ;
|
||||
survey_N = mkN "survey" ;
|
||||
swede_N = mkN human (mkN "Swede") ;
|
||||
system_N = mkN "system" ;
|
||||
system_failure_N = mkN "system failure" ;
|
||||
taxi_N = mkN "taxi" ;
|
||||
temper_N = mkN "temper" ;
|
||||
tenor_N = mkN human (mkN "tenor") ;
|
||||
time_N = mkN "time" ;
|
||||
today_N = mkN "today" ;
|
||||
traffic_N = mkN "traffic" ;
|
||||
train_N = mkN "train" ;
|
||||
university_graduate_N = mkN human (mkN "university graduate") ;
|
||||
university_student_N = mkN human (mkN "university student") ;
|
||||
week_N = mkN "week" ;
|
||||
wife_N = mkN human (mkN "wife" "wives") ;
|
||||
woman_N = mkN human (mkN "woman" "women") ;
|
||||
workstation_N = mkN "workstation" ;
|
||||
world_N = mkN "world" ;
|
||||
year_N = mkN "year" ;
|
||||
|
||||
-- PROPER NOUNS
|
||||
alan_PN = mkPN "Alan" ;
|
||||
anderson_PN = mkPN "Anderson" ;
|
||||
apcom_PN = mkPN "APCOM" ;
|
||||
berlin_PN = mkPN "Berlin" ;
|
||||
bill_PN = mkPN "Bill" ;
|
||||
birmingham_PN = mkPN "Birmingham" ;
|
||||
bt_PN = mkPN "BT" ;
|
||||
bug_32985_PN = mkPN "Bug # 32-985" ;
|
||||
cambridge_PN = mkPN "Cambridge" ;
|
||||
carl_PN = mkPN "Carl" ;
|
||||
dumbo_PN = mkPN "Dumbo" ;
|
||||
europe_PN = mkPN "Europe" ;
|
||||
fido_PN = mkPN "Fido" ;
|
||||
florence_PN = mkPN "Florence" ;
|
||||
frank_PN = mkPN "Frank" ;
|
||||
gfi_PN = mkPN "GFI" ;
|
||||
helen_PN = mkPN "Helen" ;
|
||||
icm_PN = mkPN "ICM" ;
|
||||
itel_PN = mkPN "ITEL" ;
|
||||
john_PN = mkPN "John" ;
|
||||
jones_PN = mkPN (mkN "Jones" "-" "Jones'" "-") ;
|
||||
katmandu_PN = mkPN "Katmandu" ;
|
||||
kim_PN = mkPN "Kim" ;
|
||||
luxembourg_PN = mkPN "Luxembourg" ;
|
||||
mary_PN = mkPN "Mary" ;
|
||||
mfi_PN = mkPN "MFI" ;
|
||||
mickey_PN = mkPN "Mickey" ;
|
||||
mtalk_PN = mkPN "MTALK" ;
|
||||
paris_PN = mkPN (mkN "Paris" "-" "Paris'" "-") ;
|
||||
pavarotti_PN = mkPN "Pavarotti" ;
|
||||
peter_PN = mkPN "Peter" ;
|
||||
portugal_PN = mkPN "Portugal" ;
|
||||
r95103_PN = mkPN "R-95-103" ;
|
||||
scandinavia_PN = mkPN "Scandinavia" ;
|
||||
smith_PN = mkPN "Smith" ;
|
||||
southern_europe_PN = mkPN "southern Europe" ;
|
||||
sue_PN = mkPN "Sue" ;
|
||||
sweden_PN = mkPN "Sweden" ;
|
||||
the_cia_PN = mkPN "the CIA" ;
|
||||
the_m25_PN = mkPN "the M25" ;
|
||||
|
||||
-- PRONOUNS
|
||||
anyone_Pron = mkPron "anyone" "anyone" "anyone's" "anyone's" singular P3 human ;
|
||||
everyone_Pron = mkPron "everyone" "everyone" "everyone's" "everyone's" singular P3 human ;
|
||||
no_one_Pron = mkPron "no one" "no one" "no one's" "no one's" singular P3 human ;
|
||||
nobody_Pron = mkPron "nobody" "nobody" "nobody's" "nobody's" singular P3 human ;
|
||||
someone_Pron = mkPron "someone" "someone" "someone's" "someone's" singular P3 human ;
|
||||
sheRefl_Pron = G.she_Pron ;
|
||||
heRefl_Pron = G.he_Pron ;
|
||||
theyRefl_Pron = G.they_Pron ;
|
||||
itRefl_Pron = G.it_Pron ;
|
||||
|
||||
-- RELATIVE PRONOUNS
|
||||
that_RP = E.that_RP ;
|
||||
|
||||
-- ADJECTIVES
|
||||
ambitious_A = mkA "ambitious" ;
|
||||
ancient_A = compoundA (mkA "Ancient") ;
|
||||
asleep_A = mkA "asleep" ;
|
||||
blue_A = mkA "blue" ;
|
||||
british_A = mkA "British" ;
|
||||
broke_A = compoundA (mkA "broke") ;
|
||||
canadian_A = mkA "Canadian" ;
|
||||
clever_A = mkA "clever" "cleverer" ;
|
||||
competent_A = mkA "competent" ;
|
||||
crucial_A = mkA "crucial" ;
|
||||
dedicated_A = mkA "dedicated" ;
|
||||
different_A = mkA "different" ;
|
||||
employed_A = mkA "employed" ;
|
||||
excellent_A = mkA "excellent" ;
|
||||
false_A = mkA "false" ;
|
||||
fast_A = mkA "fast" ;
|
||||
fat_A = mkA "fat" ;
|
||||
female_A = mkA "female" ;
|
||||
former_A = mkA "former" ;
|
||||
fourlegged_A = mkA "four-legged" ;
|
||||
free_A = mkA "free" ;
|
||||
furious_A = mkA "furious" ;
|
||||
genuine_A = mkA "genuine" ;
|
||||
german_A = mkA "German" ;
|
||||
great_A = mkA "great" ;
|
||||
important_A = mkA "important" ;
|
||||
impressed_by_A2 = mkA2 "impressed" (mkPrep "by") ;
|
||||
indispensable_A = mkA "indispensable" ;
|
||||
interesting_A = mkA "interesting" ;
|
||||
irish_A = compoundA (mkA "Irish") ;
|
||||
italian_A = mkA "Italian" ;
|
||||
known_A = compoundA (mkA "known") ;
|
||||
large_A = mkA "large" ;
|
||||
leading_A = mkA "leading" ;
|
||||
legal_A = mkA "legal" ;
|
||||
likely_A = mkA "likely" "likelier" ;
|
||||
major_A = mkA "major" ;
|
||||
male_A = compoundA (mkA "male") ;
|
||||
many_A = mkA "many" "more" "most" "mostly" ;
|
||||
missing_A = mkA "missing" ;
|
||||
modest_A = mkA "modest" ;
|
||||
national_A = mkA "national" ;
|
||||
new_A = mkA "new" ;
|
||||
north_american_A = mkA "North American" ;
|
||||
noted_A = mkA "noted" ;
|
||||
own_A = compoundA (mkA "own") ;
|
||||
poor8bad_A = mkA "poor" ;
|
||||
poor8penniless_A = mkA "poor" ;
|
||||
portuguese_A = mkA "Portuguese" ;
|
||||
present8attending_A = mkA "present" ;
|
||||
present8current_A = mkA "present" ;
|
||||
previous_A = mkA "previous" ;
|
||||
red_A = mkA "red" ;
|
||||
resident_A = mkA "resident" ;
|
||||
scandinavian_A = mkA "Scandinavian" ;
|
||||
serious_A = compoundA (mkA "serious") ;
|
||||
slow_A = mkA "slow" ;
|
||||
small_A = mkA "small" ;
|
||||
successful_A = mkA "successful" ;
|
||||
swedish_A = mkA "Swedish" ;
|
||||
true_A = mkA "true" ;
|
||||
unemployed_A = mkA "unemployed" ;
|
||||
western_A = mkA "western" ;
|
||||
|
||||
-- VERBS
|
||||
accept_V2 = mkV2 "accept" ;
|
||||
allow_V2V = mkV2V (mkV "allow") noPrep (mkPrep "to") ;
|
||||
answer_V2 = mkV2 (mkV "answer" "answered") ;
|
||||
appoint_V2 = mkV2 "appoint" ;
|
||||
arrive_in_V2 = mkV2 (mkV "arrive") (mkPrep "in") ;
|
||||
attend_V2 = mkV2 "attend" ;
|
||||
award_V3 = mkV3 "award" ;
|
||||
beat_V = I.beat_V ;
|
||||
become_V2 = mkV2 I.become_V ;
|
||||
believe_VS = mkVS (mkV "believe") ;
|
||||
blame1_V2 = mkV2 "blame" ;
|
||||
blame2_V2 = mkV2 "blame" ;
|
||||
bring_V2V = mkV2V I.bring_V noPrep (mkPrep "to") ;
|
||||
build_V2 = mkV2 I.build_V ;
|
||||
buy_V2 = mkV2 I.buy_V ;
|
||||
catch_V2 = mkV2 I.catch_V ;
|
||||
chair_V2 = mkV2 "chair" ;
|
||||
claim_VS = mkVS (mkV "claim") ;
|
||||
come_cheap_VP = G.UseV (partV I.come_V "cheap") ;
|
||||
come_in_V = partV I.come_V "in" ;
|
||||
continue_V = mkV "continue" ;
|
||||
contribute_to_V3 = mkV3 (mkV "contribute") (mkPrep "to") ;
|
||||
cost_V2 = mkV2 "cost" ;
|
||||
crash_V = mkV "crash" ;
|
||||
cross_out_V2 = mkV2 (partV (mkV "cross") "out") ;
|
||||
deliver_V2 = mkV2 (mkV "deliver" "delivered") ;
|
||||
deliver_V3 = mkV3 (mkV "deliver" "delivered") ;
|
||||
destroy_V2 = mkV2 "destroy" ;
|
||||
develop_V2 = mkV2 (mkV "develop" "developed") ;
|
||||
discover_V2 = mkV2 (mkV "discover" "discovered") ;
|
||||
discover_VS = mkVS (mkV "discover" "discovered") ;
|
||||
dupe_V2 = mkV2 "dupe" ;
|
||||
do_VV = E.do_VV ;
|
||||
exist_V = mkV "exist" ;
|
||||
expand_V = mkV "expand" ;
|
||||
find_V2 = mkV2 I.find_V ;
|
||||
finish_V2 = mkV2 "finish" ;
|
||||
finish_VV = ingVV (mkV "finish") ;
|
||||
found_V2 = mkV2 "found" ;
|
||||
gamble_V = mkV "gamble" ;
|
||||
get_V2 = mkV2 I.get_V ;
|
||||
going_to_VV = mkVV I.go_V ;
|
||||
go8travel_V = I.go_V ;
|
||||
go8walk_V = I.go_V ;
|
||||
graduate_V = mkV "graduate" ;
|
||||
hate_V2 = mkV2 "hate" ;
|
||||
hurt_V2 = mkV2 I.hurt_V ;
|
||||
increase_V = mkV "increase" ;
|
||||
know_VQ = mkVQ (mkV "know" "knew" "known") ; -- misrepresented in IrregEng.gf
|
||||
know_VS = mkVS (mkV "know" "knew" "known") ; -- misrepresented in IrregEng.gf
|
||||
last_V2 = mkV2 (mkV "last") ;
|
||||
leave_V = I.leave_V ;
|
||||
leave_V2 = mkV2 I.leave_V ;
|
||||
like_V2 = mkV2 "like" ;
|
||||
live_V = mkV "live" ;
|
||||
lose_V2 = mkV2 I.lose_V ;
|
||||
maintain_V2 = mkV2 "maintain" ;
|
||||
make8become_V2 = mkV2 I.make_V ;
|
||||
make8do_V2 = mkV2 I.make_V ;
|
||||
manage_VV = mkVV (mkV "manage") ;
|
||||
meet_V = I.meet_V ;
|
||||
need_V2 = mkV2 "need" ;
|
||||
need_VV = mkVV (mkV "need") ;
|
||||
obtain_from_V3 = mkV3 (mkV "obtain") (mkPrep "from") ;
|
||||
open_V2 = mkV2 (mkV "open" "opened") ;
|
||||
own_V2 = mkV2 "own" ;
|
||||
pay_V2 = mkV2 I.pay_V ;
|
||||
publish_V2 = mkV2 "publish" ;
|
||||
put_in_V3 = mkV3 I.put_V (mkPrep "in") ;
|
||||
read_V2 = mkV2 I.read_V ;
|
||||
read_out_V2 = mkV2 (partV I.read_V "out") ;
|
||||
remove_V2 = mkV2 "remove" ;
|
||||
rent_from_V3 = mkV3 (mkV "rent") (mkPrep "from") ;
|
||||
represent_V2 = mkV2 "represent" ;
|
||||
revise_V2 = mkV2 "revise" ;
|
||||
run_V2 = mkV2 I.run_V ;
|
||||
say_VS = mkVS I.say_V ;
|
||||
see_V2V = mkV2V I.see_V noPrep noPrep ;
|
||||
sell_V2 = mkV2 I.sell_V ;
|
||||
send_V2 = mkV2 I.send_V ;
|
||||
shall_VV = {
|
||||
s = table {
|
||||
VVF VInf => ["shall"] ; -- what to do with these forms?
|
||||
VVF VPres => "shall" ;
|
||||
VVF VPPart => ["should"] ;
|
||||
VVF VPresPart => ["should"] ; -- what to do with these forms?
|
||||
VVF VPast => ["should"] ;
|
||||
VVPastNeg => ["shouldn't"] ;
|
||||
VVPresNeg => "shan't"
|
||||
} ;
|
||||
typ = VVAux
|
||||
} ;
|
||||
sign_V2 = mkV2 "sign" ;
|
||||
sing_V2 = mkV2 I.sing_V ;
|
||||
speak_to_V2 = mkV2 I.speak_V (mkPrep "to");
|
||||
spend_V2 = mkV2 I.spend_V ;
|
||||
start_V = mkV "start" ;
|
||||
start_VV = ingVV (mkV "start") ;
|
||||
stop_V = mkV "stop" ;
|
||||
suggest_to_V2S = mkV2S (mkV "suggest") (mkPrep "to") ;
|
||||
swim_V = I.swim_V ;
|
||||
take_V2V = mkV2V I.take_V noPrep (mkPrep "to") ;
|
||||
take_V2 = mkV2 I.take_V ;
|
||||
take_part_in_V2 = mkV2 (partV I.take_V "part") (mkPrep "in") ;
|
||||
tell_about_V3 = mkV3 I.tell_V (mkPrep "about") ;
|
||||
travel_V = mkV "travel" "travelled" ;
|
||||
try_VV = mkVV (mkV "try") ;
|
||||
update_V2 = mkV2 "update" ;
|
||||
use_V2 = mkV2 "use" ;
|
||||
use_VV = mkVV (mkV "used" "used" "used" "used" "used") ; -- e.g. "X used to Y", "X did used to Y"
|
||||
vote_for_V2 = mkV2 (mkV "vote") (mkPrep "for") ;
|
||||
win_V2 = mkV2 I.win_V ;
|
||||
work_V = mkV "work" ;
|
||||
work_in_V2 = mkV2 work_V (mkPrep "in") ;
|
||||
write_V2 = mkV2 I.write_V ;
|
||||
write_to_V2 = mkV2 I.write_V (mkPrep "to") ;
|
||||
|
||||
award_and_be_awarded_V2 = mkV2 (mkV "award and be awarded"
|
||||
"awards and is awarded"
|
||||
"awarded and was awarded"
|
||||
"awarded and been awarded"
|
||||
"awarding and been awarding") ;
|
||||
|
||||
-- DETERMINERS
|
||||
a_few_Det = mkDeterminer plural "a few" ;
|
||||
a_lot_of_Det = mkDeterminer singular "a lot of" ;
|
||||
another_Det = mkDeterminer singular "another" ;
|
||||
anyPl_Det = mkDeterminer plural "any" ;
|
||||
anySg_Det = mkDeterminer singular "any" ;
|
||||
both_Det = mkDeterminer plural "both" ;
|
||||
each_Det = E.each_Det ;
|
||||
either_Det = mkDeterminer singular "either" ;
|
||||
neither_Det = mkDeterminer singular "neither" ;
|
||||
one_or_more_Det = mkDeterminer plural "one or more" ;
|
||||
several_Det = mkDeterminer plural "several" ;
|
||||
twice_as_many_Det = mkDeterminer plural "twice as many" ;
|
||||
|
||||
half_a_Card = {s = \\c => "half a"; n = Sg} ;
|
||||
|
||||
the_other_Q = mkQuant "the other" "the other" ;
|
||||
|
||||
-- NUMERALS
|
||||
|
||||
oper
|
||||
selectSub20 : {s : DForm => CardOrd => ResEng.Case => Str} -> DForm -> Numeral ;
|
||||
selectSub20 num dform = lin Numeral {s = num.s ! dform; n = plural} ;
|
||||
|
||||
prefixNumeral : Str -> {s : CardOrd => ResEng.Case => Str; n : ResEng.Number} -> Numeral ;
|
||||
prefixNumeral prefix num = lin Numeral {s = \\o,c => prefix + num.s ! o ! c; n = num.n} ;
|
||||
|
||||
lin
|
||||
N_one = {s = G.pot01.s ! unit; n = singular} ;
|
||||
N_two = selectSub20 G.n2 unit ;
|
||||
N_three = selectSub20 G.n3 unit ;
|
||||
N_four = selectSub20 G.n4 unit ;
|
||||
N_five = selectSub20 G.n5 unit ;
|
||||
N_six = selectSub20 G.n6 unit ;
|
||||
N_eight = selectSub20 G.n8 unit ;
|
||||
N_ten = selectSub20 G.pot01 ten ;
|
||||
N_eleven = selectSub20 G.pot01 teen ;
|
||||
N_sixteen = selectSub20 G.n6 teen ;
|
||||
N_twenty = selectSub20 G.n2 ten ;
|
||||
N_fortyfive = {s = \\o,c => "forty" ++ N_five.s ! o ! c; n = plural} ;
|
||||
|
||||
N_2 = G.D_2 ;
|
||||
N_4 = G.D_4 ;
|
||||
N_8 = G.D_8 ;
|
||||
N_10 = prefixNumeral "1" G.D_0 ;
|
||||
N_13 = prefixNumeral "1" G.D_3 ;
|
||||
N_14 = prefixNumeral "1" G.D_4 ;
|
||||
N_15 = prefixNumeral "1" G.D_5 ;
|
||||
N_99 = prefixNumeral "9" G.D_9 ;
|
||||
N_100 = prefixNumeral "10" G.D_0 ;
|
||||
N_150 = prefixNumeral "15" G.D_0 ;
|
||||
N_500 = prefixNumeral "50" G.D_0 ;
|
||||
N_2500 = prefixNumeral "250" G.D_0 ;
|
||||
N_3000 = prefixNumeral "300" G.D_0 ;
|
||||
N_5500 = prefixNumeral "550" G.D_0 ;
|
||||
|
||||
|
||||
-- ADVERBS
|
||||
anywhere_Adv = mkAdv "anywhere" ;
|
||||
ever_since_Adv = mkAdv "ever since" ;
|
||||
late_Adv = mkAdv "late" ;
|
||||
long_Adv = mkAdv "long" ;
|
||||
over_Adv = mkAdv "over" ;
|
||||
part_time_Adv = mkAdv "part time" ;
|
||||
together_Adv = mkAdv "together" ;
|
||||
too_Adv = mkAdv "too" ;
|
||||
twice_Adv = mkAdv "twice" ;
|
||||
yesterday_Adv = mkAdv "yesterday" ;
|
||||
|
||||
at_home_Adv = mkAdv "at home" ;
|
||||
|
||||
all_AdV = mkAdV "all" ;
|
||||
already_AdV = mkAdV "already" ;
|
||||
also_AdV = mkAdV "also" ;
|
||||
currently_AdV = mkAdV "currently" ;
|
||||
ever_AdV = mkAdV "ever" ;
|
||||
never_AdV = mkAdV "never" ;
|
||||
now_AdV = mkAdV "now" ;
|
||||
still_AdV = mkAdV "still" ;
|
||||
|
||||
really_AdA = mkAdA "really" ;
|
||||
|
||||
more_than_AdN = mkAdN "more than" ;
|
||||
less_than_AdN = mkAdN "less than" ;
|
||||
|
||||
-- TIME & DATE EXPRESSIONS
|
||||
at_8_am_Adv = mkAdv "at 8 am" ;
|
||||
at_a_quarter_past_five_Adv = mkAdv "at a quarter past five" ;
|
||||
at_five_oclock_Adv = mkAdv "at five o'clock" ;
|
||||
at_four_oclock_Adv = mkAdv "at four o'clock" ;
|
||||
at_least_four_times = mkAdv "at least four times" ;
|
||||
at_some_time_Adv = mkAdv "at some time" ;
|
||||
at_the_same_time_Adv = mkAdv "at the same time" ;
|
||||
by_11_am_Adv = mkAdv "by 11 am" ;
|
||||
every_month_Adv = mkAdv "every month" ;
|
||||
every_week_Adv = mkAdv "every week" ;
|
||||
for_8_years_Adv = mkAdv "for 8 years" ;
|
||||
for_a_total_of_15_years_or_more_Adv = mkAdv "for a total of 15 years or more" ;
|
||||
for_a_year_Adv = mkAdv "for a year" ;
|
||||
for_an_hour_Adv = mkAdv "for an hour" ;
|
||||
for_exactly_a_year_Adv = mkAdv "for exactly a year" ;
|
||||
for_more_than_10_years_Adv = mkAdv "for more than 10 years" ;
|
||||
for_more_than_two_years_Adv = mkAdv "for more than two years" ;
|
||||
for_three_days_Adv = mkAdv "for three days" ;
|
||||
for_two_hours_Adv = mkAdv "for two hours" ;
|
||||
for_two_years_Adv = mkAdv "for two years" ;
|
||||
friday_13th_Adv = mkAdv "Friday , 13th" ;
|
||||
from_1988_to_1992_Adv = mkAdv "from 1988 to 1992" ;
|
||||
in_1990_Adv = mkAdv "in 1990" ;
|
||||
in_1991_Adv = mkAdv "in 1991" ;
|
||||
in_1992_Adv = mkAdv "in 1992" ;
|
||||
in_1993_Adv = mkAdv "in 1993" ;
|
||||
in_1994_Adv = mkAdv "in 1994" ;
|
||||
in_a_few_weeks_Adv = mkAdv "in a few weeks" ;
|
||||
in_a_months_time_Adv = mkAdv "in a month's time" ;
|
||||
in_july_1994_Adv = mkAdv "in July 1994" ;
|
||||
in_march_1993_Adv = mkAdv "in March 1993" ;
|
||||
in_march_Adv = mkAdv "in March" ;
|
||||
in_one_hour_Adv = mkAdv "in one hour" ;
|
||||
in_the_coming_year_Adv = mkAdv "in the coming year" ;
|
||||
in_the_past_Adv = mkAdv "in the past" ;
|
||||
in_two_hours_Adv = mkAdv "in two hours" ;
|
||||
last_week_Adv = mkAdv "last week" ;
|
||||
on_friday_Adv = mkAdv "on Friday" ;
|
||||
on_july_4th_1994_Adv = mkAdv "on July 4th , 1994" ;
|
||||
on_july_8th_1994_Adv = mkAdv "on July 8th , 1994" ;
|
||||
on_monday_Adv = mkAdv "on Monday" ;
|
||||
on_the_5th_of_may_1995_Adv = mkAdv "on the 5th of May , 1995" ;
|
||||
on_the_7th_of_may_1995_Adv = mkAdv "on the 7th of May , 1995" ;
|
||||
on_thursday_Adv = mkAdv "on Thursday" ;
|
||||
on_tuesday_Adv = mkAdv "on Tuesday" ;
|
||||
on_wednesday_Adv = mkAdv "on Wednesday" ;
|
||||
saturday_july_14th_Adv = mkAdv "Saturday , July 14th" ;
|
||||
since_1992_Adv = mkAdv "since 1992" ;
|
||||
the_15th_of_may_1995_Adv = mkAdv "the 15th of May , 1995" ;
|
||||
two_years_from_now_Adv = mkAdv "two years from now" ;
|
||||
year_1996_Adv = mkAdv "1996" ;
|
||||
on_time_Adv = mkAdv "on time" ;
|
||||
|
||||
-- PREPOSITIONS
|
||||
at_Prep = mkPrep "at" ;
|
||||
out_of_Prep = mkPrep "out of" ;
|
||||
outside_Prep = mkPrep "outside" ;
|
||||
than_Prep = mkPrep "than" ;
|
||||
within_Prep = mkPrep "within" ;
|
||||
|
||||
-- PREDETERMINERS
|
||||
at_least_Predet = ss "at least" ;
|
||||
at_most_Predet = ss "at most" ;
|
||||
exactly_Predet = ss "exactly" ;
|
||||
just_Predet = ss "just" ;
|
||||
most_of_Predet = ss "most of" ;
|
||||
|
||||
-- CONJUNCTIONS
|
||||
andSg_Conj = mkConj "and" singular ;
|
||||
comma_and_Conj = mkConj ", and" ;
|
||||
if_comma_then_Conj = mkConj "if" ", then" singular ;
|
||||
semicolon_and_Conj = mkConj "; and" ;
|
||||
|
||||
after_Subj = mkSubj "after" ;
|
||||
before_Subj = mkSubj "before" ;
|
||||
since_Subj = mkSubj "since" ;
|
||||
than_Subj = mkSubj "than" ;
|
||||
until_Subj = mkSubj "until" ;
|
||||
while_Subj = mkSubj "while" ;
|
||||
|
||||
that_is_PConj = ss "that is ,";
|
||||
and_PConj = ss "and" ;
|
||||
then_PConj = ss "then" ;
|
||||
|
||||
}
|
||||
585
examples/fracas/src/FraCaSLexSwe.gf
Normal file
585
examples/fracas/src/FraCaSLexSwe.gf
Normal file
@@ -0,0 +1,585 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
-- FraCaSLexSwe: Concrete lexicon for the FraCaS test suite
|
||||
|
||||
concrete FraCaSLexSwe of FraCaSLex = CatSwe **
|
||||
open ParadigmsSwe, (I=IrregSwe), Prelude, MorphoSwe, ResSwe, (G=GrammarSwe) in {
|
||||
|
||||
lin
|
||||
-- NOUNS
|
||||
accountant_N = mkN "bokförare" Utr ; -- för att skilja från 'auditor'-'revisor'
|
||||
agenda_N = mkN "dagordning" Utr ;
|
||||
animal_N = mkN "djur" Neutr ;
|
||||
apcom_contract_N = mkN "APCOM-kontrakt" Neutr ;
|
||||
apcom_manager_N = mkN "APCOM-direktör" "APCOM-direktörer" ;
|
||||
auditor_N = mkN "revisor" "revisorer" ;
|
||||
authority_N = mkN "fackman" "fackmannen" "fackmän" "fackmännen" ;
|
||||
board_meeting_N = mkN "styrelsemöte" Neutr ;
|
||||
boss_N = mkN "chef" "chefer" ;
|
||||
business_N = mkN "affärsverksamhet" "affärsverksamheter" ;
|
||||
businessman_N = mkN "affärsman" "affärsmannen" "affärsmän" "affärsmännen" ;
|
||||
car_N = mkN "bil" Utr ;
|
||||
case_N = mkN "fall" Neutr ;
|
||||
chain_N = mkN "kedja" Utr ;
|
||||
chairman_N = mkN "ordförande" "ordföranden" "ordförande" "ordförandena" ;
|
||||
chairman_N2 = mkN2 chairman_N (mkPrep "för") ;
|
||||
charity_N = mkN "välgörenhet" "välgörenheter" ;
|
||||
clause_N = mkN "paragraf" "paragrafer" ;
|
||||
client_N = mkN "klient" "klienter" ;
|
||||
colleague_N = mkN "kollega" Utr ;
|
||||
commissioner_N = mkN "ombud" Neutr ;
|
||||
committee_N = mkN "kommitté" "kommittén" "kommittéer" "kommittéerna" ;
|
||||
committee_member_N = mkN "kommittémedlem" "kommittémedlemmen" "kommittémedlemmar" "kommittémedlemmarna" ;
|
||||
company_N = mkN "företag" Neutr ;
|
||||
company_car_N = mkN "tjänstebil" Utr ;
|
||||
company_director_N = mkN "företagsledare" Utr ;
|
||||
computer_N = mkN "dator" "datorer" ;
|
||||
concert_N = mkN "konsert" "konserter" ;
|
||||
conference_N = mkN "konferens" "konferenser" ;
|
||||
continent_N = mkN "kontinent" "kontinenter" ;
|
||||
contract_N = mkN "kontrakt" Neutr ;
|
||||
copy_N = mkN "kopia" Utr ;
|
||||
country_N = mkN "land" "landet" "länder" "länderna" ;
|
||||
cover_page_N = mkN "förstasida" Utr ;
|
||||
customer_N = mkN "kund" "kunder" ;
|
||||
day_N = mkN "dag" Utr ;
|
||||
delegate_N = mkN "delegat" "delegater" ;
|
||||
demonstration_N = mkN "presentation" "presentationer" ;
|
||||
department_N = mkN "avdelning" Utr ;
|
||||
desk_N = mkN "skrivbord" Neutr ;
|
||||
diamond_N = mkN "diamant" "diamanter" ;
|
||||
editor_N = mkN "redigerare" Utr ;
|
||||
elephant_N = mkN "elefant" "elefanter" ;
|
||||
european_N = mkN "europé" "europén" "européer" "européerna" ;
|
||||
executive_N = mkN "företagsledare" Utr ;
|
||||
factory_N = mkN "fabrik" "fabriker" ;
|
||||
fee_N = mkN "arvode" Neutr ;
|
||||
file_N = mkN "fil" "filer" ;
|
||||
greek_N = mkN "grek" "greker" ;
|
||||
group_N2 = mkN2 (mkN "grupp" "grupper") noPrep ;
|
||||
hard_disk_N = mkN "hårddisk" Utr ;
|
||||
heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ;
|
||||
hour_N = mkN "timme" Utr ;
|
||||
house_N = mkN "hus" Neutr ;
|
||||
individual_N = mkN "individ" "individer" ;
|
||||
inhabitant_N2 = mkN2 (mkN "invånare" "invånare") (mkPrep "i") ;
|
||||
invoice_N = mkN "faktura" Utr ;
|
||||
irishman_N = mkN "irländare" Utr ;
|
||||
italian_N = mkN "italienare" "italienare" ;
|
||||
itel_computer_N = mkN "ITEL-dator" "ITEL-datorer" ;
|
||||
itelxz_N = mkN "ITEL-XZ" "ITEL-XZ:an" "ITEL-XZ:ar" "ITEL-XZ:arna" ;
|
||||
itelzx_N = mkN "ITEL-ZX" "ITEL-ZX:an" "ITEL-ZX:ar" "ITEL-ZX:arna" ;
|
||||
itelzy_N = mkN "ITEL-ZY" "ITEL-ZY:an" "ITEL-ZY:ar" "ITEL-ZY:arna" ;
|
||||
item_N = mkN "punkt" "punkter" ;
|
||||
job_N = mkN "jobb" Neutr ;
|
||||
labour_mp_N = mkN "Labour-ledamot" "Labour-ledamöter" ;
|
||||
laptop_computer_N = mkN "laptop" Utr ;
|
||||
law_lecturer_N = mkN "juridiklärare" "juridiklärare" ;
|
||||
lawyer_N = mkN "jurist" "jurister" ;
|
||||
line_N = mkN "linje" "linjer" ;
|
||||
literature_N = mkN "litteratur" "litteraturer" ;
|
||||
lobby_N = mkN "vestibul" "vestibuler" ;
|
||||
loss_N = mkN "förlust" "förluster" ;
|
||||
machine_N = mkN "maskin" "maskiner" ;
|
||||
mammal_N = mkN "däggdjur" Neutr ;
|
||||
man_N = mkN "man" "mannen" "män" "männen" ;
|
||||
meeting_N = mkN "möte" Neutr ;
|
||||
member_N = mkN "medlem" "medlemmen" "medlemmar" "medlemmarna" ;
|
||||
member_state_N = mkN "medlemsstat" "medlemsstater" ;
|
||||
memoir_N = mkN "memoar" "memoarer" ;
|
||||
mips_N = mkN "MIPS" "MIPS" "MIPS" "MIPS" ;
|
||||
moment_N = mkN "ögonblick" Neutr ;
|
||||
mortgage_interest_N = mkN "hypoteksränta" Utr ;
|
||||
mouse_N = mkN "mus" "musen" "möss" "mössen" ;
|
||||
newspaper_N = mkN "tidning" Utr ;
|
||||
nobel_prize_N = mkN "nobelpris" Neutr ;
|
||||
nobel_prize_N2 = mkN2 nobel_prize_N (mkPrep "i") ;
|
||||
note_N = mkN "anteckning" Utr ;
|
||||
novel_N = mkN "roman" "romaner" ;
|
||||
office_building_N = mkN "kontorsbyggnad" "kontorsbyggnader" ;
|
||||
one_N = mkN "en" Utr ;
|
||||
order_N = mkN "order" "ordern" "order" "orderna" ;
|
||||
paper_N = mkN "uppsats" "uppsatser" ;
|
||||
payrise_N = mkN "löneförhöjning" Utr ;
|
||||
pc6082_N = mkN "PC-6082" "PC-6082:an" "PC-6082:or" "PC-6082:orna" ;
|
||||
performance_N = mkN "utförande" Neutr ;
|
||||
person_N = mkN "människa" Utr ;
|
||||
philosopher_N = mkN "filosof" "filosofer" ;
|
||||
phone_N = mkN "telefon" Utr ;
|
||||
politician_N = mkN "politiker" "politikern" "politiker" "politikerna" ;
|
||||
popular_music_N = mkN "populärmusik" "populärmusiken" "populärmusik" "populärmusiken" ;
|
||||
program_N = mkN "program" "programmet" "program" "programmen" ;
|
||||
progress_report_N = mkN "statusrapport" "statusrapporter" ;
|
||||
project_proposal_N = mkN "projektförslag" Neutr ;
|
||||
proposal_N = mkN "förslag" Neutr ;
|
||||
report_N = mkN "rapport" "rapporter" ;
|
||||
representative_N = mkN "representant" "representanter" ;
|
||||
resident_N = mkN "invånare" "invånare" ;
|
||||
resident_in_N2 = mkN2 resident_N (mkPrep "i") ;
|
||||
resident_on_N2 = mkN2 resident_N (mkPrep "på") ;
|
||||
result_N = mkN "resultat" Neutr ;
|
||||
right_N = mkN "rätt" "rätten" "rättigheter" "rättigheterna" ;
|
||||
sales_department_N = mkN "försäljningsavdelning" Utr ;
|
||||
scandinavian_N = mkN "skandinav" "skandinaver" ;
|
||||
secretary_N = mkN "sekreterare" Utr ;
|
||||
service_contract_N = mkN "servicekontrakt" Neutr ;
|
||||
shore_N = mkN "strand" "stränder" ;
|
||||
software_fault_N = mkN "programvarufel" "programvarufel" ;
|
||||
species_N = mkN "art" "arter" ;
|
||||
station_N = mkN "station" "stationer" ;
|
||||
stock_market_trader_N = mkN "aktiehandlare" "aktiehandlare" ;
|
||||
stockmarket_trader_N = mkN "aktiehandlare" Utr ;
|
||||
story_N = mkN "berättelse" "berättelser" ;
|
||||
student_N = mkN "student" "studenter" ;
|
||||
survey_N = mkN "undersökning" Utr ;
|
||||
swede_N = mkN "svensk" Utr ;
|
||||
system_N = mkN "system" Neutr ;
|
||||
system_failure_N = mkN "systemkrasch" "systemkrascher" ;
|
||||
taxi_N = mkN "taxi" "taxin" "taxibilar" "taxibilarna" ;
|
||||
temper_N = mkN "humör" Neutr ;
|
||||
tenor_N = mkN "tenor" "tenorer" ;
|
||||
time_N = mkN "tid" "tider" ; -- 'tidpunkt' behövs ev. också
|
||||
today_N = mkN "idag" ;
|
||||
traffic_N = mkN "trafik" "trafiken" "trafik" "trafiken" ;
|
||||
train_N = mkN "tåg" Neutr ;
|
||||
university_graduate_N = (mkN "universitetsakademiker" "universitetsakademikern"
|
||||
"universitetsakademiker" "universitetsakademikerna") ;
|
||||
university_student_N = mkN "universitetsstudent" "universitetsstudenter" ;
|
||||
week_N = mkN "vecka" Utr ;
|
||||
wife_N = mkN "fru" "fruar" ;
|
||||
woman_N = mkN "kvinna" Utr ;
|
||||
workstation_N = mkN "arbetsstation" "arbetsstationer" ;
|
||||
world_N = mkN "värld" Utr ;
|
||||
year_N = mkN "år" Neutr ;
|
||||
|
||||
-- PROPER NOUNS
|
||||
--march_PN = mkPN "mars" ;
|
||||
--may_PN = mkPN "maj" ;
|
||||
alan_PN = mkPN "Alan" ;
|
||||
anderson_PN = mkPN "Anderson" ;
|
||||
apcom_PN = mkPN "APCOM" ;
|
||||
berlin_PN = mkPN "Berlin" ;
|
||||
bill_PN = mkPN "Bill" ;
|
||||
birmingham_PN = mkPN "Birmingham" ;
|
||||
bt_PN = mkPN "BT" ;
|
||||
bug_32985_PN = mkPN "Bug # 32-985" ;
|
||||
cambridge_PN = mkPN "Cambridge" ;
|
||||
carl_PN = mkPN "Carl" ;
|
||||
dumbo_PN = mkPN "Dumbo" ;
|
||||
europe_PN = mkPN "Europa" ;
|
||||
fido_PN = mkPN "Fido" ;
|
||||
florence_PN = mkPN "Florens" ;
|
||||
frank_PN = mkPN "Frank" ;
|
||||
gfi_PN = mkPN "GFI" ;
|
||||
helen_PN = mkPN "Helen" ;
|
||||
icm_PN = mkPN "ICM" ;
|
||||
itel_PN = mkPN "ITEL" ;
|
||||
john_PN = mkPN "John" ;
|
||||
jones_PN = mkPN "Jones" ;
|
||||
katmandu_PN = mkPN "Katmandu" ;
|
||||
kim_PN = mkPN "Kim" ;
|
||||
luxembourg_PN = mkPN "Luxemburg" ;
|
||||
mary_PN = mkPN "Mary" ;
|
||||
mfi_PN = mkPN "MFI" ;
|
||||
mickey_PN = mkPN "Mickey" ;
|
||||
mtalk_PN = mkPN "MTALK" ;
|
||||
paris_PN = mkPN "Paris" ;
|
||||
pavarotti_PN = mkPN "Pavarotti" ;
|
||||
peter_PN = mkPN "Peter" ;
|
||||
portugal_PN = mkPN "Portugal" ;
|
||||
r95103_PN = mkPN "R-95-103" ;
|
||||
scandinavia_PN = mkPN "Skandinavien" ;
|
||||
smith_PN = mkPN "Smith" ;
|
||||
southern_europe_PN = mkPN "södra Europa" ;
|
||||
sue_PN = mkPN "Sue" ;
|
||||
sweden_PN = mkPN "Sverige" ;
|
||||
the_cia_PN = mkPN "CIA" ;
|
||||
the_m25_PN = mkPN "M25:an" ;
|
||||
|
||||
-- PRONOUNS
|
||||
anyone_Pron = regNP "någon" "någons" Utr Sg ;
|
||||
everyone_Pron = regNP "alla" "allas" Utr Pl ;
|
||||
no_one_Pron = regNP "ingen" "ingens" Utr Sg ;
|
||||
nobody_Pron = regNP "ingen" "ingens" Utr Sg ;
|
||||
someone_Pron = regNP "någon" "någons" Utr Sg ;
|
||||
sheRefl_Pron = mkNP "hon" "sig" "sin" "sitt" "sina" Utr Sg P3 ;
|
||||
heRefl_Pron = mkNP "han" "sig" "sin" "sitt" "sina" Utr Sg P3 ;
|
||||
theyRefl_Pron = mkNP "de" "sig" "sin" "sitt" "sina" Utr Pl P1 ;
|
||||
itRefl_Pron = mkNP "det" "sig" "sin" "sitt" "sina" Neutr Sg P3 ;
|
||||
|
||||
-- RELATIVE PRONOUNS
|
||||
that_RP = G.IdRP ;
|
||||
|
||||
-- ADJECTIVES
|
||||
ambitious_A = compoundA (mkA "ärelysten" "ärelystet") ;
|
||||
ancient_A = compoundA (mkA "antik") ;
|
||||
asleep_A = compoundA (mkA "sovande") ;
|
||||
blue_A = mkA "blå" "blått" ;
|
||||
british_A = compoundA (mkA "brittisk") ;
|
||||
broke_A = mkA "pank" ;
|
||||
canadian_A = compoundA (mkA "kanadensisk") ;
|
||||
clever_A = mkA "smart" "smart" ;
|
||||
-- mkA "begåvad" "begåvat" "begåvade" "begåvade" "mer begåvad" "mest begåvad" "mest begåvade" ;
|
||||
competent_A = compoundA (mkA "kompetent" "kompetent") ;
|
||||
crucial_A = compoundA (mkA "kritisk") ;
|
||||
dedicated_A = mkA "särskild" "särskilt" ;
|
||||
different_A = compoundA (mkA "olik") ;
|
||||
employed_A = compoundA (mkA "anställd" "anställt") ;
|
||||
excellent_A = mkA "förträfflig" ;
|
||||
false_A = mkA "inte sann" "inte sant" ;
|
||||
fast_A = mkA "snabb" ;
|
||||
fat_A = mkA "fet" "fett" ;
|
||||
female_A = mkA "kvinnlig" ;
|
||||
former_A = compoundA (mkA "före detta") ;
|
||||
fourlegged_A = mkA "fyrbent" "fyrbent" ;
|
||||
free_A = mkA "fri" "fritt" ;
|
||||
furious_A = compoundA (mkA "rasande") ;
|
||||
genuine_A = compoundA (mkA "äkta") ;
|
||||
german_A = mkA "tysk" ;
|
||||
great_A = compoundA (mkA "framstående") ;
|
||||
important_A = mkA "viktig" ;
|
||||
impressed_by_A2 = mkA2 (mkA "imponerad" "imponerat" "imponerade" "imponerade" "mer imponerad" "mest imponerad" "mest imponerade") (mkPrep "av") ;
|
||||
indispensable_A = mkA "oumbärlig" ;
|
||||
interesting_A = mkA "intressant" "intressant" ;
|
||||
irish_A = compoundA (mkA "irländsk") ;
|
||||
italian_A = compoundA (mkA "italiensk") ;
|
||||
known_A = mkA "känd" "känt" ; -- jfr 'noted'
|
||||
large_A = mkA "stor" "större" "störst" ;
|
||||
leading_A = compoundA (mkA "ledande") ;
|
||||
legal_A = compoundA (mkA "juridisk") ;
|
||||
likely_A = compoundA (mkA "sannolik") ;
|
||||
major_A = mkA "större" "större" "större" "större" "större" "större" "större" ;
|
||||
male_A = mkA "manlig" ;
|
||||
many_A = mkA "mycken" "mycket" "myckna" "mer" "mest" ;
|
||||
missing_A = compoundA (mkA "försvunnen" "försvunnet" "försvunna" "försvunnare" "försvunnast") ;
|
||||
modest_A = mkA "blygsam" "blygsamt" "blygsamma" "blygsamma" "blygsammare" "blygsammast" "blygsammaste" ;
|
||||
national_A = compoundA (mkA "nationell") ;
|
||||
new_A = mkA "ny" "nytt" ;
|
||||
north_american_A = compoundA (mkA "nordamerikansk") ;
|
||||
noted_A = compoundA (mkA "välkänd") ;
|
||||
own_A = mkA "egen" "eget" ;
|
||||
poor8bad_A = mkA "dålig" "sämre" "sämst" ;
|
||||
poor8penniless_A = mkA "fattig" ;
|
||||
portuguese_A = compoundA (mkA "portugisisk") ;
|
||||
present8attending_A = compoundA (mkA "närvarande") ;
|
||||
present8current_A = compoundA (mkA "nuvarande") ;
|
||||
previous_A = compoundA (mkA "förra") ;
|
||||
red_A = mkA "röd" "rött" ;
|
||||
resident_A = compoundA (mkA "bosatt") ;
|
||||
scandinavian_A = compoundA (mkA "skandinavisk") ;
|
||||
serious_A = mkA "seriös" ;
|
||||
slow_A = mkA "långsam" "långsamt" "långsamma" "långsamma" "långsammare" "långsammast" "långsammaste" ;
|
||||
small_A = mkA "liten" "litet" "lilla" "små" "mindre" "minst" "minsta" ;
|
||||
successful_A = compoundA (mkA "framgångsrik") ;
|
||||
swedish_A = mkA "svensk" ;
|
||||
true_A = mkA "sann" "sant" ;
|
||||
unemployed_A = compoundA (mkA "arbetslös") ;
|
||||
western_A = compoundA (mkA "västerländsk") ;
|
||||
|
||||
-- VERBS
|
||||
oper taga_V : V = mkV "ta" "tar" "ta" "tog" "tagit" "tagen" ;
|
||||
lin
|
||||
accept_V2 = mkV2 (mkV "godkänna" "godkände" "godkänt") ;
|
||||
allow_V2V = mkV2V (mkV "tillåta" "tillät" "tillåtit") noPrep noPrep ;
|
||||
answer_V2 = mkV2 "svarar" (mkPrep "i") ;
|
||||
appoint_V2 = mkV2 "utnämner" ;
|
||||
arrive_in_V2 = mkV2 (mkV "anländer") (mkPrep "till") ;
|
||||
attend_V2 = mkV2 "närvarar" (mkPrep "vid") ;
|
||||
award_V3 = mkV3 (mkV "tilldelar") ;
|
||||
-- be_on_V2 = mkV2 I.ligga_V (mkPrep "på") ;
|
||||
-- be_over_V = partV be_V "over" ;
|
||||
beat_V = I.slå_V ;
|
||||
become_V2 = mkV2 I.bliva_V ;
|
||||
believe_VS = mkVS (mkV "tror") ;
|
||||
blame1_V2 = mkV2 "beskyller" ;
|
||||
blame2_V2 = mkV2 "skyller" ;
|
||||
-- blame_for_V3 = mkV3 (mkV "anklagar") (mkPrep "för") ;
|
||||
-- blame_on_V3 = mkV3 (mkV "skyller") (mkPrep "på") ;
|
||||
bring_V2V = mkV2V (partV taga_V "med") noPrep noPrep ;
|
||||
build_V2 = mkV2 "tillverkar" ;
|
||||
buy_V2 = mkV2 "köper" ;
|
||||
catch_V2 = mkV2 (partV I.komma_V "med") ;
|
||||
chair_V2 = mkV2 (mkV "leda" "ledde" "lett") ;
|
||||
claim_VS = mkVS (mkV "påstå" "påstod" "påstått") ;
|
||||
come_cheap_VP = G.UseComp (G.CompAP (G.PositA (mkA "billig"))) ;
|
||||
come_in_V = partV I.komma_V "in" ;
|
||||
continue_V = mkV "fortsätta" "fortsätter" "fortsätt" "fortsatte" "fortsatt" "fortsatt" ;
|
||||
contribute_to_V3 = mkV3 I.giva_V (mkPrep "till") ;
|
||||
cost_V2 = mkV2 "kostnadsberäknar" ;
|
||||
crash_V = mkV "kraschar" ;
|
||||
cross_out_V2 = mkV2 (partV (mkV "stryka" "strök" "strukit") "över") ;
|
||||
deliver_V2 = mkV2 "lämnar" ;
|
||||
deliver_V3 = mkV3 I.giva_V ;
|
||||
destroy_V2 = mkV2 (mkV "förstöra" "förstör" "förstör" "förstörde" "förstört" "förstörd") ;
|
||||
develop_V2 = mkV2 "utvecklar" ;
|
||||
discover_V2 = mkV2 "upptäcker" ;
|
||||
discover_VS = mkVS (mkV "upptäcker") ;
|
||||
dupe_V2 = mkV2 "lurar" ;
|
||||
exist_V = depV I.finna_V ;
|
||||
expand_V = mkV "expanderar" ;
|
||||
find_V2 = mkV2 "hittar" ;
|
||||
finish_V2 = mkV2 (mkV "slutföra" "slutförde" "slutfört") ;
|
||||
finish_VV = mkVV (mkV "slutar") ;
|
||||
found_V2 = mkV2 "grundar" ;
|
||||
gamble_V = mkV "spelar" ;
|
||||
get_V2 = mkV2 (mkV "få" "fick" "fått") ;
|
||||
go8travel_V = mkV "åker" ;
|
||||
go8walk_V = I.gå_V ;
|
||||
graduate_V = depV (mkV "utexamineras") ;
|
||||
hate_V2 = mkV2 "hatar" ;
|
||||
hurt_V2 = mkV2 "skadar" ;
|
||||
increase_V = mkV "ökar" ;
|
||||
know_VQ = mkVQ (mkV "veta" "vet" "vet" "visste" "vetat" "känd") ;
|
||||
know_VS = mkVS (mkV "veta" "vet" "vet" "visste" "vetat" "känd") ;
|
||||
last_V2 = mkV2 (mkV "varar") ;
|
||||
leave_V = I.gå_V ;
|
||||
leave_V2 = mkV2 "lämnar" ;
|
||||
like_V2 = mkV2 "gillar" ;
|
||||
live_V = mkV "bor" ;
|
||||
lose_V2 = mkV2 "förlorar" ;
|
||||
maintain_V2 = mkV2 (mkV "servar") ; -- (mkV "underhålla" "underhöll" "underhållit") ;
|
||||
make8become_V2 = mkV2 I.bliva_V ;
|
||||
make8do_V2 = mkV2 I.göra_V ;
|
||||
manage_VV = mkVV (depV (mkV "lyckas")) ;
|
||||
meet_V = depV (mkV "träffas") ;
|
||||
need_V2 = mkV2 "behöver" ;
|
||||
need_VV = mkV "behöver" ** {c2 = mkComplement [] ; lock_VV = <>} ;
|
||||
obtain_from_V3 = mkV3 I.erhålla_V (mkPrep "från") ;
|
||||
open_V2 = mkV2 "öppnar" ;
|
||||
own_V2 = mkV2 "äger" ;
|
||||
pay_V2 = mkV2 "betalar" ;
|
||||
publish_V2 = mkV2 "publicerar" ;
|
||||
put_in_V3 = mkV3 (mkV "ställer") (mkPrep "i") ;
|
||||
read_V2 = mkV2 "läser" ;
|
||||
read_out_V2 = mkV2 (partV (mkV "läser") "upp") ;
|
||||
remove_V2 = mkV2 "avlägsnar" ;
|
||||
rent_from_V3 = mkV3 (mkV "hyra" "hyrde" "hyrt") (mkPrep "från") ;
|
||||
represent_V2 = mkV2 "representerar" ;
|
||||
revise_V2 = mkV2 "granskar" ;
|
||||
run_V2 = mkV2 I.driva_V ;
|
||||
say_VS = mkVS I.säga_V ;
|
||||
see_V2V = I.se_V ** {c2,c3 = mkComplement ""} ;
|
||||
sell_V2 = mkV2 (mkV "sälja" "sålde" "sålt") ;
|
||||
send_V2 = mkV2 "skickar" ;
|
||||
shall_VV = mkV "böra" "bör" "bör" "borde" "bort" "bord"
|
||||
** {c2 = mkComplement [] ; lock_VV = <>} ;
|
||||
sign_V2 = mkV2 "undertecknar" ;
|
||||
sing_V2 = mkV2 I.sjunga_V ;
|
||||
speak_to_V2 = mkV2 "talar" (mkPrep "med") ;
|
||||
spend_V2 = mkV2 "tillbringar" ;
|
||||
start_V = mkV "börjar" ;
|
||||
start_VV = mkV "börjar" ** {c2 = mkComplement [] ; lock_VV = <>} ;
|
||||
stop_V = mkV "slutar" ;
|
||||
-- suggest_VS = mkVS (mkV "föreslå" "föreslog" "föreslagit") ;
|
||||
suggest_to_V2S = mkV2S (mkV "föreslå" "föreslog" "föreslagit") (mkPrep "för") ;
|
||||
swim_V = mkV "simmar" ;
|
||||
take_V2 = mkV2 taga_V ;
|
||||
take_part_in_V2 = mkV2 (mkV "delta" "deltog" "deltagit") (mkPrep "i") ;
|
||||
tell_about_V3 = mkV3 (mkV "berättar") (mkPrep "för") (mkPrep "om") ;
|
||||
travel_V = mkV "reser" ;
|
||||
try_VV = mkVV (mkV "försöker") ;
|
||||
update_V2 = mkV2 "uppdaterar" ;
|
||||
use_V2 = mkV2 "använder" ;
|
||||
-- use_VV = mkVV (mkV "brukar") ;
|
||||
use_VV = mkV "brukar" ** {c2 = mkComplement [] ; lock_VV = <>} ;
|
||||
vote_for_V2 = mkV2 (mkV "röstar") (mkPrep "för") ;
|
||||
win_V2 = mkV2 I.vinna_V ;
|
||||
work_V = mkV "arbetar" ;
|
||||
work_in_V2 = mkV2 (mkV "arbetar") (mkPrep "på") ;
|
||||
write_V2 = mkV2 I.skriva_V ;
|
||||
write_to_V2 = mkV2 I.skriva_V (mkPrep "till") ;
|
||||
|
||||
do_VV = I.göra_V ** {c2 = mkComplement [] ; lock_VV = <>} ;
|
||||
going_to_VV = mkVV I.komma_V ;
|
||||
take_V2V = mkV2V taga_V noPrep noPrep ;
|
||||
|
||||
award_and_be_awarded_V2 = mkV2 (mkV "tilldela och tilldelas"
|
||||
"tilldelar och tilldelas"
|
||||
"tilldela och tilldelas"
|
||||
"tilldelade och tilldelades"
|
||||
"tilldelat och tilldelats"
|
||||
"tilldelad och bliven tilldelad") ;
|
||||
|
||||
-- DETERMINERS
|
||||
a_few_Det = {s,sp = \\_,_ => "ett fåtal" ; n = Pl ; det = DIndef} ;
|
||||
a_lot_of_Det = {s,sp = \\_,_ => "mycket" ; n = Sg ; det = DIndef} ;
|
||||
another_Det = {s,sp = \\_ => genderForms "en annan" "ett annat" ; n = Sg ; det = DIndef} ;
|
||||
anyPl_Det = G.somePl_Det ;
|
||||
anySg_Det = G.someSg_Det ;
|
||||
both_Det = {s,sp = \\b,_ => "båda" ++ if_then_Str b "de" "" ;
|
||||
n = Pl ; det = DDef Def} ;
|
||||
each_Det = G.every_Det ;
|
||||
either_Det = {s,sp = \\b,g => genderForms "någon av" "något av" ! g ++ if_then_Str b "de" "" ;
|
||||
n = Pl ; det = DDef Def} ;
|
||||
neither_Det = {s,sp = \\b,g => genderForms "ingen av" "inget av" ! g ++ if_then_Str b "de" "" ;
|
||||
n = Pl ; det = DDef Def} ;
|
||||
one_or_more_Det = {s,sp = \\_ => genderForms "en eller flera" "ett eller flera" ;
|
||||
n = Pl ; det = DIndef} ;
|
||||
several_Det = {s,sp = \\_,_ => "flera" ; n = Pl ; det = DIndef} ;
|
||||
twice_as_many_Det = {s,sp = \\_,_ => "dubbelt så många" ; n = Pl ; det = DIndef} ;
|
||||
|
||||
half_a_Card = {s = table {Utr => "en halv"; Neutr => "ett halvt"} ; n = Sg} ;
|
||||
|
||||
the_other_Q = {s,sp = table {Sg => \\_,_ => genderForms ["den andra"] ["det andra"];
|
||||
Pl => \\_,_,_ => ["de andra"]};
|
||||
det = DDef Def} ;
|
||||
|
||||
-- NUMERALS
|
||||
|
||||
oper
|
||||
selectSub20 : {s : DForm => CardOrd => Str} -> DForm -> Numeral ;
|
||||
selectSub20 num dform = lin Numeral {s = num.s ! dform; n = plural} ;
|
||||
|
||||
prefixNumeral : Str -> {s : CardOrd => Str; n : MorphoSwe.Number} -> Numeral ;
|
||||
prefixNumeral prefix num = lin Numeral {s = \\o => prefix + num.s ! o; n = num.n} ;
|
||||
|
||||
lin
|
||||
N_one = G.num (G.pot2as3 (G.pot1as2 (G.pot0as1 G.pot01))) ; -- {s = G.pot01.s ! ental; n = singular} ;
|
||||
N_two = selectSub20 G.n2 ental ;
|
||||
N_three = selectSub20 G.n3 ental ;
|
||||
N_four = selectSub20 G.n4 ental ;
|
||||
N_five = selectSub20 G.n5 ental ;
|
||||
N_six = selectSub20 G.n6 ental ;
|
||||
N_eight = selectSub20 G.n8 ental ;
|
||||
N_ten = G.num (G.pot2as3 (G.pot1as2 G.pot110)) ; -- selectSub20 G.pot01 tiotal ;
|
||||
N_eleven = G.num (G.pot2as3 (G.pot1as2 G.pot111)) ;
|
||||
N_sixteen = selectSub20 G.n6 ton ;
|
||||
N_twenty = selectSub20 G.n2 tiotal ;
|
||||
N_fortyfive = {s = \\o => "fyrtio" + N_five.s ! o; n = plural} ;
|
||||
|
||||
N_2 = G.D_2 ;
|
||||
N_4 = G.D_4 ;
|
||||
N_8 = G.D_8 ;
|
||||
N_10 = prefixNumeral "1" G.D_0 ;
|
||||
N_13 = prefixNumeral "1" G.D_3 ;
|
||||
N_14 = prefixNumeral "1" G.D_4 ;
|
||||
N_15 = prefixNumeral "1" G.D_5 ;
|
||||
N_99 = prefixNumeral "9" G.D_9 ;
|
||||
N_100 = prefixNumeral "10" G.D_0 ;
|
||||
N_150 = prefixNumeral "15" G.D_0 ;
|
||||
N_500 = prefixNumeral "50" G.D_0 ;
|
||||
N_2500 = prefixNumeral "250" G.D_0 ;
|
||||
N_3000 = prefixNumeral "300" G.D_0 ;
|
||||
N_5500 = prefixNumeral "550" G.D_0 ;
|
||||
|
||||
|
||||
-- ADVERBS
|
||||
anywhere_Adv = mkAdv "var som helst" ;
|
||||
at_home_Adv = mkAdv "hemma" ;
|
||||
at_some_time_Adv = mkAdv "vid någon tidpunkt" ;
|
||||
at_the_same_time_Adv = mkAdv "samtidigt" ;
|
||||
ever_since_Adv = mkAdv "ända sedan dess" ;
|
||||
-- freely_Adv = mkAdv "fritt" ;
|
||||
in_the_past_Adv = mkAdv "tidigare" ;
|
||||
late_Adv = mkAdv "sent" ;
|
||||
long_Adv = mkAdv "länge" ;
|
||||
-- now_Adv = mkAdv "nu" ;
|
||||
on_time_Adv = mkAdv "i tid" ;
|
||||
part_time_Adv = mkAdv "deltid" ;
|
||||
-- seriously_Adv = mkAdv "på allvar" ;
|
||||
together_Adv = mkAdv "tillsammans" ;
|
||||
too_Adv = mkAdv "också" ;
|
||||
twice_Adv = mkAdv "två gånger" ;
|
||||
yesterday_Adv = mkAdv "igår" ;
|
||||
-- four_times_Adv = mkAdv "fyra gånger" ;
|
||||
over_Adv = mkAdv "slut" ;
|
||||
|
||||
all_AdV = mkAdV "alla" ;
|
||||
already_AdV = mkAdV "redan" ;
|
||||
also_AdV = mkAdV "även" ;
|
||||
currently_AdV = mkAdV "för närvarande" ;
|
||||
ever_AdV = mkAdV "någonsin" ;
|
||||
never_AdV = mkAdV "aldrig" ;
|
||||
now_AdV = mkAdV "nu" ;
|
||||
still_AdV = mkAdV "fortfarande" ;
|
||||
|
||||
really_AdA = mkAdA "verkligt" ;
|
||||
|
||||
more_than_AdN = ss "mer än" ;
|
||||
less_than_AdN = ss "mindre än" ;
|
||||
|
||||
-- exactly_AdN = mkAdA "exakt" ;
|
||||
-- just_AdN = mkAdA "endast" ;
|
||||
|
||||
-- TIME & DATE EXPRESSIONS
|
||||
at_8_am_Adv = mkAdv "klockan 8" ;
|
||||
at_a_quarter_past_five_Adv = mkAdv "kvart över fem" ;
|
||||
at_five_oclock_Adv = mkAdv "klockan fem" ;
|
||||
at_four_oclock_Adv = mkAdv "klockan fyra" ;
|
||||
at_least_four_times = mkAdv "minst fyra gånger" ;
|
||||
by_11_am_Adv = mkAdv "klockan 11" ;
|
||||
every_month_Adv = mkAdv "varje månad" ;
|
||||
every_week_Adv = mkAdv "varje vecka" ;
|
||||
for_8_years_Adv = mkAdv "i 8 år" ;
|
||||
for_a_total_of_15_years_or_more_Adv = mkAdv "i totalt 15 år eller mer" ;
|
||||
for_a_year_Adv = mkAdv "i ett år" ;
|
||||
for_an_hour_Adv = mkAdv "i en timme" ;
|
||||
for_exactly_a_year_Adv = mkAdv "i exakt ett år" ;
|
||||
for_more_than_10_years_Adv = mkAdv "i mer än 10 år" ;
|
||||
for_more_than_two_years_Adv = mkAdv "i mer än två år" ;
|
||||
for_three_days_Adv = mkAdv "i tre dagar" ;
|
||||
for_two_hours_Adv = mkAdv "i två timmar" ;
|
||||
for_two_years_Adv = mkAdv "i två år" ;
|
||||
friday_13th_Adv = mkAdv "fredagen den 13:e" ;
|
||||
from_1988_to_1992_Adv = mkAdv "från 1988 till 1992" ;
|
||||
in_1990_Adv = mkAdv "1990" ;
|
||||
in_1991_Adv = mkAdv "1991" ;
|
||||
in_1992_Adv = mkAdv "1992" ;
|
||||
in_1993_Adv = mkAdv "1993" ;
|
||||
in_1994_Adv = mkAdv "1994" ;
|
||||
in_a_few_weeks_Adv = mkAdv "om några veckor" ;
|
||||
in_a_months_time_Adv = mkAdv "om en månad" ;
|
||||
in_july_1994_Adv = mkAdv "i juli 1994" ;
|
||||
in_march_1993_Adv = mkAdv "i mars 1993" ;
|
||||
in_march_Adv = mkAdv "i mars" ;
|
||||
in_one_hour_Adv = mkAdv "på en timme" ;
|
||||
in_the_coming_year_Adv = mkAdv "under det kommande året" ;
|
||||
in_two_hours_Adv = mkAdv "på två timmar" ;
|
||||
last_week_Adv = mkAdv "förra veckan" ;
|
||||
on_friday_Adv = mkAdv "på fredagen" ;
|
||||
on_july_4th_1994_Adv = mkAdv "4:e juli 1994" ;
|
||||
on_july_8th_1994_Adv = mkAdv "8:e juli 1994" ;
|
||||
on_monday_Adv = mkAdv "på måndagen" ;
|
||||
on_the_5th_of_may_1995_Adv = mkAdv "den 5:e maj 1995" ;
|
||||
on_the_7th_of_may_1995_Adv = mkAdv "den 7:e maj 1995" ;
|
||||
on_thursday_Adv = mkAdv "på torsdagen" ;
|
||||
on_tuesday_Adv = mkAdv "på tisdagen" ;
|
||||
on_wednesday_Adv = mkAdv "på onsdagen" ;
|
||||
saturday_july_14th_Adv = mkAdv "lördagen den 14 juli" ;
|
||||
since_1992_Adv = mkAdv "sedan 1992" ;
|
||||
the_15th_of_may_1995_Adv = mkAdv "den 15 maj 1995" ;
|
||||
two_years_from_now_Adv = mkAdv "om två år" ;
|
||||
year_1996_Adv = mkAdv "1996" ;
|
||||
|
||||
-- PREPOSITIONS
|
||||
at_Prep = mkPrep "på" ;
|
||||
out_of_Prep = mkPrep "av" ;
|
||||
outside_Prep = mkPrep "utanför" ;
|
||||
than_Prep = mkPrep "än" ;
|
||||
within_Prep = mkPrep "inom" ;
|
||||
|
||||
-- PREDETERMINERS
|
||||
at_least_Predet = {s = \\_,_ => "minst" ; p = [] ; a = PNoAg} ;
|
||||
at_most_Predet = {s = \\_,_ => "högst" ; p = [] ; a = PNoAg} ;
|
||||
exactly_Predet = {s = \\_,_ => "exakt" ; p = [] ; a = PNoAg} ;
|
||||
just_Predet = {s = \\_,_ => "endast" ; p = [] ; a = PNoAg} ;
|
||||
most_of_Predet = {s = \\_,_ => "de flesta" ; p = "av" ; a = PNoAg} ;
|
||||
|
||||
-- CONJUNCTIONS
|
||||
andSg_Conj = {s1 = [] ; s2 = "och" ; n = Sg} ;
|
||||
comma_and_Conj = {s1 = [] ; s2 = ", och" ; n = Pl} ;
|
||||
if_comma_then_Conj = {s1 = "om" ; s2 = "så" ; n = Sg} ;
|
||||
semicolon_and_Conj = {s1 = [] ; s2 = "; och" ; n = Pl} ;
|
||||
|
||||
after_Subj = ss "efter det att" ;
|
||||
before_Subj = ss "innan" ;
|
||||
since_Subj = ss "sedan" ;
|
||||
than_Subj = ss "än" ;
|
||||
until_Subj = ss "förrän" ;
|
||||
while_Subj = ss "medan" ;
|
||||
|
||||
that_is_PConj = ss "det vill säga ,";
|
||||
and_PConj = ss "och" ;
|
||||
then_PConj = ss "sedan" ;
|
||||
|
||||
}
|
||||
69
examples/fracas/src/FraCaSSwe.gf
Normal file
69
examples/fracas/src/FraCaSSwe.gf
Normal file
@@ -0,0 +1,69 @@
|
||||
--# -path=.:alltenses
|
||||
|
||||
concrete FraCaSSwe of FraCaS = GrammarSwe, AdditionsSwe, FraCaSLexSwe ** open
|
||||
Prelude,
|
||||
(G=GrammarSwe),
|
||||
(A=AdditionsSwe),
|
||||
(I=IrregSwe),
|
||||
(M=MorphoSwe),
|
||||
(P=ParadigmsSwe),
|
||||
(X=ParamX),
|
||||
(C=Coordination)
|
||||
in {
|
||||
|
||||
-- language independent functions
|
||||
|
||||
lin
|
||||
ComparAsAs x0 x1 = (G.CAdvAP (G.as_CAdv) (G.PositA x0) x1);
|
||||
|
||||
lin
|
||||
Adverbial x0 = (PAdverbial (G.NoPConj) x0);
|
||||
PAdverbial x0 x1 = (G.PhrUtt x0 (G.UttAdv x1) (G.NoVoc));
|
||||
Nounphrase x0 = (PNounphrase (G.NoPConj) x0);
|
||||
PNounphrase x0 x1 = (G.PhrUtt x0 (G.UttNP x1) (G.NoVoc));
|
||||
Question x0 = (PQuestion (G.NoPConj) x0);
|
||||
PQuestion x0 x1 = (G.PhrUtt x0 (G.UttQS x1) (G.NoVoc));
|
||||
Sentence x0 = (PSentence (G.NoPConj) x0);
|
||||
PSentence x0 x1 = (G.PhrUtt x0 (G.UttS x1) (G.NoVoc));
|
||||
|
||||
lin
|
||||
Past = (G.TTAnt (G.TPast) (G.ASimul));
|
||||
PastPerfect = (G.TTAnt (G.TPast) (G.AAnter));
|
||||
Present = (G.TTAnt (G.TPres) (G.ASimul));
|
||||
PresentPerfect = (G.TTAnt (G.TPres) (G.AAnter));
|
||||
Future = (G.TTAnt (G.TFut) (G.ASimul));
|
||||
FuturePerfect = (G.TTAnt (G.TFut) (G.AAnter));
|
||||
Conditional = (G.TTAnt (G.TCond) (G.ASimul));
|
||||
|
||||
lin
|
||||
ConjCN2 c n1 n2 = (G.ConjCN c (G.BaseCN n1 n2));
|
||||
ConjNP2 c n1 n2 = (G.ConjNP c (G.BaseNP n1 n2));
|
||||
ConjNP3 c n1 n2 n3 = (G.ConjNP c (G.ConsNP n1 (G.BaseNP n2 n3)));
|
||||
ConjQS2 c q1 q2 = (A.ConjQS c (A.BaseQS q1 q2));
|
||||
ConjS2 c s1 s2 = (G.ConjS c (G.BaseS s1 s2));
|
||||
ConjVPI2 c v1 v2 = (A.ConjVPI c (A.BaseVPI (A.MkVPI v1) (A.MkVPI v2)));
|
||||
ConjVPS2 c t1 p1 v1 t2 p2 v2 = (A.ConjVPS c (A.BaseVPS (A.MkVPS t1 p1 v1) (A.MkVPS t2 p2 v2)));
|
||||
|
||||
-- language dependent functions
|
||||
|
||||
lin
|
||||
UncNeg = G.PNeg ;
|
||||
|
||||
lin
|
||||
ComplVSa = G.ComplVS ;
|
||||
ProgrVPa vp = vp ;
|
||||
|
||||
lin
|
||||
elliptic_V = {s = \\_ => ellipsis; part = ""; vtype = M.VAct};
|
||||
elliptic_NP_Sg = {s = \\_ => ellipsis; a = M.agrP3 M.utrum M.Sg} ;
|
||||
elliptic_NP_Pl = {s = \\_ => ellipsis; a = M.agrP3 M.utrum M.Pl} ;
|
||||
elliptic_VP = G.UseV elliptic_V ;
|
||||
elliptic_Cl = {s = \\_,_,_,_ => ellipsis} ;
|
||||
elliptic_VPSlash = G.UseV elliptic_V ** {c2 = {s=ellipsis; hasPrep=False}; n3 = \\_ => ellipsis};
|
||||
elliptic_V2V = elliptic_V ** {c2,c3 = M.mkComplement ""} ;
|
||||
elliptic_CN = {s = \\_,_,_ => ellipsis; g = M.utrum; isMod = False} ;
|
||||
|
||||
oper
|
||||
ellipsis : Str = "[..]" ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user