1
0
forked from GitHub/gf-core

Added the FraCaS Treebank to the examples

This commit is contained in:
peter.ljunglof
2012-01-27 22:56:14 +00:00
parent 92cbbe9173
commit f275db930c
21 changed files with 14183 additions and 0 deletions

View 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 ;
}

View 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
} ;
}

View 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{} ;
}

View 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 ;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
--# -path=.:alltenses:prelude
concrete FraCaSBankEng of FraCaSBank = FraCaSBankI with (FraCaS = FraCaSEng);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
--# -path=.:alltenses:prelude
concrete FraCaSBankSwe of FraCaSBank = FraCaSBankI with (FraCaS = FraCaSSwe);

View 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 = "[..]" ;
}

View 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 ;
}

View 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" ;
}

View 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" ;
}

View 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 = "[..]" ;
}