1
0
forked from GitHub/gf-core

continued restructuring of resources

This commit is contained in:
aarne
2005-02-02 15:23:29 +00:00
parent f7d79e2d14
commit f963aa213d
25 changed files with 581 additions and 821 deletions

View File

@@ -1,24 +1,23 @@
--# -path=.:../abstract:../../prelude
concrete BasicEng of Basic = ShallowEng ** open NewParadigmsEng in {
concrete BasicEng of Basic = CategoriesEng ** open NewParadigmsEng in {
flags startcat=Phr ; lexer=textlit ; parser=chart ; unlexer=text ;
lin
airplane_N = regN "airplane" ;
--- answer_V2S = mkV2S (regV "answer") ;
answer_V2S = mkV2S (regV "answer") "to" ;
apartment_N = regN "apartment" ;
apple_N = regN "apple" ;
art_N = regN "art" ;
---- ask_V2Q = mkV2Q (regV "ask") ;
ask_V2Q = mkV2Q (regV "ask") [] ;
baby_N = regN "baby" ;
bad_ADeg = regADeg "bad" ;
bank_N = regN "bank" ;
beautiful_ADeg = regADeg "beautiful" ;
---- become_VA = mkVA (regV "become") ;
become_VA = mkVA (irregV "become" "became" "become") ;
beer_N = regN "beer" ;
---- beg_VV = mkVV (regV "beg") ;
---- be_V = (regV "be") ;
beg_V2V = mkV2V (regDuplV "beg") [] "to" ;
big_ADeg = regADeg "big" ;
bike_N = regN "bike" ;
bird_N = regN "bird" ;
@@ -30,12 +29,12 @@ lin
boss_N = regN "boss" ;
boy_N = regN "boy" ;
bread_N = regN "bread" ;
break_V2 = dirV2 (regV "break") ;
break_V2 = dirV2 (irregV "break" "broke" "broken") ;
broad_ADeg = regADeg "broad" ;
brother_N = regN "brother" ;
brown_ADeg = regADeg "brown" ;
butter_N = regN "butter" ;
buy_V2 = dirV2 (regV "buy") ;
buy_V2 = dirV2 (irregV "buy" "bought" "bought") ;
camera_N = regN "camera" ;
cap_N = regN "cap" ;
car_N = regN "car" ;
@@ -44,7 +43,7 @@ lin
ceiling_N = regN "ceiling" ;
chair_N = regN "chair" ;
cheese_N = regN "cheese" ;
child_N = regN "child" ;
child_N = mk2N "child" "children" ;
church_N = regN "church" ;
city_N = regN "city" ;
clean_ADeg = regADeg "clean" ;
@@ -52,7 +51,7 @@ lin
close_V2 = dirV2 (regV "close") ;
coat_N = regN "coat" ;
cold_ADeg = regADeg "cold" ;
come_V = (regV "come") ;
come_V = (irregV "come" "came" "come") ;
computer_N = regN "computer" ;
country_N = regN "country" ;
cousin_N = regN "cousin" ;
@@ -62,33 +61,35 @@ lin
doctor_N = regN "doctor" ;
dog_N = regN "dog" ;
door_N = regN "door" ;
drink_V2 = dirV2 (regV "drink") ;
eat_V2 = dirV2 (regV "eat") ;
drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ;
easy_A2V = mkA2V (regA "easy") "for" ;
eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ;
enemy_N = regN "enemy" ;
factory_N = regN "factory" ;
father_N = regN "father" ;
---- fear_VS = mkVS (regV "fear") ;
find_V2 = dirV2 (regV "find") ;
fish_N = regN "fish" ;
fear_VS = mkVS (regV "fear") ;
find_V2 = dirV2 (irregV "find" "found" "found") ;
fish_N = mk2N "fish" "fish" ;
floor_N = regN "floor" ;
forget_V2 = dirV2 (regV "forget") ;
forget_V2 = dirV2 (irregV "forget" "forgot" "forgotten") ;
fridge_N = regN "fridge" ;
friend_N = regN "friend" ;
fruit_N = regN "fruit" ;
fun_AV = mkAV (regA "fun") ;
garden_N = regN "garden" ;
girl_N = regN "girl" ;
glove_N = regN "glove" ;
gold_N = regN "gold" ;
good_ADeg = regADeg "good" ;
go_V = (regV "go") ;
go_V = (mkV "go" "goes" "went" "gone" "going") ;
green_ADeg = regADeg "green" ;
harbour_N = regN "harbour" ;
hate_V2 = dirV2 (regV "hate") ;
hat_N = regN "hat" ;
have_V2 = dirV2 (regV "have") ;
hear_V2 = dirV2 (regV "hear") ;
have_V2 = dirV2 (mkV "have" "has" "had" "had" "having") ;
hear_V2 = dirV2 (irregV "hear" "heard" "heard") ;
hill_N = regN "hill" ;
---- hope_VS = mkVS (regV "hope") ;
hope_VS = mkVS (regV "hope") ;
horse_N = regN "horse" ;
hot_ADeg = regADeg "hot" ;
house_N = regN "house" ;
@@ -96,20 +97,21 @@ lin
industry_N = regN "industry" ;
iron_N = regN "iron" ;
king_N = regN "king" ;
know_V2 = dirV2 (regV "know") ;
know_V2 = dirV2 (irregV "know" "knew" "known") ;
lake_N = regN "lake" ;
lamp_N = regN "lamp" ;
learn_V2 = dirV2 (regV "learn") ;
leather_N = regN "leather" ;
leave_V2 = dirV2 (regV "leave") ;
leave_V2 = dirV2 (irregV "leave" "left" "left") ;
like_V2 = dirV2 (regV "like") ;
listen_V2 = dirV2 (regV "listen") ;
live_V = (regV "live") ;
long_ADeg = regADeg "long" ;
lose_V2 = dirV2 (regV "lose") ;
lose_V2 = dirV2 (irregV "lose" "lost" "lost") ;
love_N = regN "love" ;
love_V2 = dirV2 (regV "love") ;
man_N = regN "man" ;
man_N = mk2N "man" "men" ;
married_A2 = mkA2 (regA "married") "to" ;
meat_N = regN "meat" ;
milk_N = regN "milk" ;
moon_N = regN "moon" ;
@@ -122,6 +124,7 @@ lin
oil_N = regN "oil" ;
old_ADeg = regADeg "old" ;
open_V2 = dirV2 (regV "open") ;
paint_V2A = mkV2A (regV "paint") [] ;
paper_N = regN "paper" ;
peace_N = regN "peace" ;
pen_N = regN "pen" ;
@@ -130,9 +133,11 @@ lin
play_V2 = dirV2 (regV "play") ;
policeman_N = regN "policeman" ;
priest_N = regN "priest" ;
probable_AS = mkAS (regA "probable") ;
queen_N = regN "queen" ;
radio_N = regN "radio" ;
read_V2 = dirV2 (regV "read") ;
rain_V0 = mkV0 (regV "rain") ;
read_V2 = dirV2 (irregV "read" "read" "read") ;
red_ADeg = regADeg "red" ;
religion_N = regN "religion" ;
restaurant_N = regN "restaurant" ;
@@ -140,16 +145,16 @@ lin
rock_N = regN "rock" ;
roof_N = regN "roof" ;
rubber_N = regN "rubber" ;
run_V = (regV "run") ;
---- say_VS = mkVS (regV "say") ;
run_V = (irregV "run" "ran" "run") ;
say_VS = mkVS (irregV "say" "said" "said") ;
school_N = regN "school" ;
science_N = regN "science" ;
sea_N = regN "sea" ;
seek_V2 = dirV2 (regV "seek") ;
see_V2 = dirV2 (regV "see") ;
---- sell_V3 = mkV3 (regV "sell") ;
---- send_V3 = mkV3 (regV "send") ;
sheep_N = regN "sheep" ;
seek_V2 = dirV2 (irregV "seek" "sought" "sought") ;
see_V2 = dirV2 (irregV "see" "saw" "seen") ;
sell_V3 = dirV3 (irregV "sell" "sold" "sold") "to" ;
send_V3 = dirV3 (irregV "send" "sent" "sent") "to" ;
sheep_N = mk2N "sheep" "sheep" ;
ship_N = regN "ship" ;
shirt_N = regN "shirt" ;
shoe_N = regN "shoe" ;
@@ -157,11 +162,11 @@ lin
short_ADeg = regADeg "short" ;
silver_N = regN "silver" ;
sister_N = regN "sister" ;
sleep_V = (regV "sleep") ;
sleep_V = (irregV "sleep" "slept" "slept") ;
small_ADeg = regADeg "small" ;
snake_N = regN "snake" ;
sock_N = regN "sock" ;
speak_V2 = dirV2 (regV "speak") ;
speak_V2 = dirV2 (irregV "speak" "spoke" "spoken") ;
star_N = regN "star" ;
steel_N = regN "steel" ;
stone_N = regN "stone" ;
@@ -169,20 +174,21 @@ lin
student_N = regN "student" ;
stupid_ADeg = regADeg "stupid" ;
sun_N = regN "sun" ;
switch8off_V = (regV "switch8off") ;
switch8on_V = (regV "switch8on") ;
switch8off_V2 = dirV2 (partV (regV "switch") "off") ;
switch8on_V2 = dirV2 (partV (regV "switch") "on") ;
table_N = regN "table" ;
talk_V3 = mkV3 (regV "talk") "to" "about" ;
teacher_N = regN "teacher" ;
teach_V2 = dirV2 (regV "teach") ;
teach_V2 = dirV2 (irregV "teach" "taught" "taught") ;
television_N = regN "television" ;
thick_ADeg = regADeg "thick" ;
thin_ADeg = regADeg "thin" ;
train_N = regN "train" ;
travel_V = (regV "travel") ;
travel_V = (regDuplV "travel") ;
tree_N = regN "tree" ;
trousers_N = regN "trousers" ;
ugly_ADeg = regADeg "ugly" ;
understand_V2 = dirV2 (regV "understand") ;
understand_V2 = dirV2 (irregV "understand" "understood" "understood") ;
university_N = regN "university" ;
village_N = regN "village" ;
wait_V2 = dirV2 (regV "wait") ;
@@ -194,10 +200,11 @@ lin
white_ADeg = regADeg "white" ;
window_N = regN "window" ;
wine_N = regN "wine" ;
win_V2 = dirV2 (regV "win") ;
woman_N = regN "woman" ;
win_V2 = dirV2 (irregV "win" "won" "won") ;
woman_N = mk2N "woman" "women" ;
wonder_VQ = mkVQ (regV "wonder") ;
wood_N = regN "wood" ;
write_V2 = dirV2 (regV "write") ;
write_V2 = dirV2 (irregV "write" "wrote" "written") ;
yellow_ADeg = regADeg "yellow" ;
young_ADeg = regADeg "young" ;
} ;

View File

@@ -0,0 +1,71 @@
--# -path=.:../abstract:../../prelude
concrete ClauseEng of Clause = CategoriesEng **
open Prelude, SyntaxEng in {
lin
SPredV np v = predVerbGroupClause np (predVerb v) ;
SPredPassV np v = predVerbGroupClause np (passVerb v) ;
SPredV2 np v x = predVerbGroupClause np (complTransVerb v x) ;
SPredReflV2 np v = predVerbGroupClause np (reflTransVerb v) ;
SPredVS np v x = predVerbGroupClause np (complSentVerb v x) ;
SPredVV np v x = predVerbGroupClause np (complVerbVerb v x) ;
SPredVQ np v x = predVerbGroupClause np (complQuestVerb v x) ;
SPredVA np v x = predVerbGroupClause np (complAdjVerb v x) ;
SPredV2A np v x y = predVerbGroupClause np (complDitransAdjVerb v x y) ;
SPredSubjV2V np v x y = predVerbGroupClause np (complDitransVerbVerb
False v x y) ;
SPredObjV2V np v x y = predVerbGroupClause np (complDitransVerbVerb
True v x y) ;
SPredV2S np v x y = predVerbGroupClause np (complDitransSentVerb v x y) ;
SPredV2Q np v x y = predVerbGroupClause np (complDitransQuestVerb v x y) ;
SPredAP np v = predVerbGroupClause np (predAdjective v) ;
SPredSuperl np a = predVerbGroupClause np (predAdjective (superlAdjPhrase a)) ;
SPredCN np v = predVerbGroupClause np (predCommNoun v) ;
SPredNP np v = predVerbGroupClause np (predNounPhrase v) ;
SPredPP np v = predVerbGroupClause np (predAdverb v) ;
SPredAV np v x = predVerbGroupClause np (complVerbAdj v x) ;
SPredObjA2V np v x y = predVerbGroupClause np (complVerbAdj2 True v x y) ;
QPredV np v = intVerbPhrase np (predVerb v) ;
QPredPassV np v = intVerbPhrase np (passVerb v) ;
QPredV2 np v x = intVerbPhrase np (complTransVerb v x) ;
QPredReflV2 np v = intVerbPhrase np (reflTransVerb v) ;
QPredVS np v x = intVerbPhrase np (complSentVerb v x) ;
QPredVV np v x = intVerbPhrase np (complVerbVerb v x) ;
QPredVQ np v x = intVerbPhrase np (complQuestVerb v x) ;
QPredVA np v x = intVerbPhrase np (complAdjVerb v x) ;
QPredV2A np v x y = intVerbPhrase np (complDitransAdjVerb v x y) ;
QPredSubjV2V np v x y = intVerbPhrase np (complDitransVerbVerb
False v x y) ;
QPredObjV2V np v x y = intVerbPhrase np (complDitransVerbVerb
True v x y) ;
QPredV2S np v x y = intVerbPhrase np (complDitransSentVerb v x y) ;
QPredV2Q np v x y = intVerbPhrase np (complDitransQuestVerb v x y) ;
QPredAP np v = intVerbPhrase np (predAdjective v) ;
QPredSuperl np a = intVerbPhrase np (predAdjective (superlAdjPhrase a)) ;
QPredCN np v = intVerbPhrase np (predCommNoun v) ;
QPredNP np v = intVerbPhrase np (predNounPhrase v) ;
QPredPP np v = intVerbPhrase np (predAdverb v) ;
QPredAV np v x = intVerbPhrase np (complVerbAdj v x) ;
QPredObjA2V np v x y = intVerbPhrase np (complVerbAdj2 True v x y) ;
{-
-- Use VPs
PredVP = predVerbGroupClause ;
IntVP = intVerbPhrase ;
RelVP = relVerbPhrase ;
PosVP tp = predVerbGroup True tp.a ;
NegVP tp = predVerbGroup False tp.a ;
AdvVP = adVerbPhrase ;
SubjVP = subjunctVerbPhrase ;
-}
}

View File

@@ -0,0 +1,27 @@
concrete CountryEng of Country = open ResourceEng, NewParadigmsEng in {
lincat
Country = PN ;
Nationality = A ;
Language = N ;
lin
Denmark = regPN "Denmark" nonhuman ;
England = regPN "England" nonhuman ;
Finland = regPN "Finland" nonhuman ;
France = regPN "France" nonhuman ;
Germany = regPN "Germany" nonhuman ;
Italy = regPN "Italy" nonhuman ;
Norway = regPN "Norway" nonhuman ;
Russia = regPN "Russia" nonhuman ;
Spain = regPN "Spain" nonhuman ;
Sweden = regPN "Sweden" nonhuman ;
Danish = regA "Danish" ;
English = regA "English" ;
DanishLang = regN "Danish" ;
EnglishLang = regN "English" ;
} ;

View File

@@ -73,7 +73,7 @@ oper
-- In practice the worst case is just: give singular and plural nominative.
reg2N : (man,men : Str) -> N ;
mk2N : (man,men : Str) -> N ;
-- All nouns created by the previous functions are marked as
-- $nonhuman$. If you want a $human$ noun, wrap it with the following
@@ -201,7 +201,7 @@ oper
regV : Str -> V ;
-- The following variant duplicates the in consonant in the forms like
-- The following variant duplicates the last letter in the forms like
-- "rip - ripped - ripping".
regDuplV : Str -> V ;
@@ -239,6 +239,26 @@ oper
dirV3 : V -> Str -> V3 ; -- give,_,to
dirdirV3 : V -> V3 ; -- give,_,_
--3 Other complement patterns
--
-- Verbs and adjectives can take complements such as sentences,
-- questions, verb phrases, and adjectives.
mkV0 : V -> V0 ;
mkVS : V -> VS ;
mkV2S : V -> Str -> V2S ;
mkVV : V -> VV ;
mkV2V : V -> Str -> Str -> V2V ;
mkVA : V -> VA ;
mkV2A : V -> Str -> V2A ;
mkVQ : V -> VQ ;
mkV2Q : V -> Str -> V2Q ;
mkAS : A -> AS ;
mkA2S : A -> Str -> A2S ;
mkAV : A -> AV ;
mkA2V : A -> Str -> A2V ;
--2 Definitions of paradigms
--
@@ -277,9 +297,9 @@ oper
}
}
in
reg2N ray rays ;
mk2N ray rays ;
reg2N = \man,men ->
mk2N = \man,men ->
let mens = case last men of {
"s" => men + "'" ;
_ => men + "'s"
@@ -375,4 +395,19 @@ oper
dirV3 v p = mkV3 v [] p ;
dirdirV3 v = dirV3 v [] ;
mkV0 v = v ** {lock_V0 = <>} ;
mkVS v = v ** {lock_VS = <>} ;
mkV2S v p = mkV2 v p ** {lock_V2S = <>} ;
mkVV v = v ** {isAux = False ; lock_VV = <>} ;
mkV2V v p t = mkV2 v p ** {s4 = t ; lock_V2V = <>} ;
mkVA v = v ** {lock_VA = <>} ;
mkV2A v p = mkV2 v p ** {lock_V2A = <>} ;
mkVQ v = v ** {lock_VQ = <>} ;
mkV2Q v p = mkV2 v p ** {lock_V2Q = <>} ;
mkAS v = v ** {lock_AS = <>} ;
mkA2S v p = mkA2 v p ** {lock_A2S = <>} ;
mkAV v = v ** {lock_AV = <>} ;
mkA2V v p = mkA2 v p ** {lock_A2V = <>} ;
} ;

View File

@@ -68,28 +68,6 @@ lin
-- verbs and verb prases
UseV = predVerb ;
UsePassV = passVerb ;
ComplV2 = complTransVerb ;
ComplReflV2 = reflTransVerb ;
ComplVS = complSentVerb ;
ComplVV = complVerbVerb ;
ComplVQ = complQuestVerb ;
ComplVA = complAdjVerb ;
ComplV2A = complDitransAdjVerb ;
ComplSubjV2V = complDitransVerbVerb False ;
ComplObjV2V = complDitransVerbVerb True ;
ComplV2S = complDitransSentVerb ;
ComplV2Q = complDitransQuestVerb ;
PredAP = predAdjective ;
PredSuperl a = predAdjective (superlAdjPhrase a) ;
PredCN = predCommNoun ;
PredNP = predNounPhrase ;
PredPP = predAdverb ;
PredAV = complVerbAdj ;
PredObjA2V = complVerbAdj2 True ;
PredAS = predAdjSent ;
PredV0 rain = predVerbGroupClause (pronNounPhrase pronIt) (predVerb rain) ;
@@ -111,9 +89,6 @@ lin
-- Formation of infinitival phrases.
PosVP tp = predVerbGroup True tp.a ;
NegVP tp = predVerbGroup False tp.a ;
ProgVG = progressiveVerbPhrase ;
UseCl tp cl = {s = tp.s ++ cl.s ! Dir ! tp.b ! VFinite tp.t tp.a} ;
@@ -136,21 +111,16 @@ lin
AdjAdv a = ss (a.s ! AAdv) ;
AdvPP p = p ;
PrepNP p = prepPhrase p.s ; ---
AdvVP = adVerbPhrase ;
AdvCN = advCommNounPhrase ;
AdvAP = advAdjPhrase ;
--3 Sentences and relative clauses
--
PredVP = predVerbGroupClause ;
SlashV2 = slashTransVerbCl ;
IdRP = identRelPron ;
FunRP = funRelPron ;
RelVP = relVerbPhrase ;
RelSlash = relSlash ;
ModRS = modRelClause ;
RelCl = relSuch ;
@@ -169,7 +139,6 @@ lin
NounIPMany = nounIntPron plural ;
QuestCl = questClause ;
IntVP = intVerbPhrase ;
IntSlash = intSlash ;
QuestAdv = questAdverbial ;
@@ -207,13 +176,13 @@ lin
SubjS = subjunctSentence ;
SubjImper = subjunctImperative ;
SubjQS = subjunctQuestion ;
SubjVP = subjunctVerbPhrase ;
PhrNP = useNounPhrase ;
PhrOneCN = useCommonNounPhrase singular ;
PhrManyCN = useCommonNounPhrase plural ;
PhrIP ip = ip ;
PhrIAdv ia = ia ;
PhrVPI = verbUtterance ;
OnePhr p = p ;
ConsPhr = cc2 ;
@@ -234,15 +203,4 @@ lin
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhraseNum plural nu A)) ;
ExistQCl A = questVerbPhrase
(nameNounPhrase (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhrase singular A)) ;
ExistNumQCl nu A =
questVerbPhrase
(nameNounPhrasePl (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhraseNum plural nu A)) ;
} ;

View File

@@ -1,4 +0,0 @@
--# -path=.:../abstract:../../prelude
concrete ShallowEng of Shallow = ShallowI with (Resource = ResourceEng) ;

View File

@@ -1059,6 +1059,13 @@ oper
imperUtterance : Number -> Imperative -> Utterance = \n,I ->
ss (I.s ! n ++ "!") ;
-- --- Here the agreement feature should really be given in context:
-- "What do you want to do? - Wash myself."
verbUtterance : VerbPhrase -> Utterance = \vp ->
ss (vp.s1 ++ vp.s ! ASgP1) ;
--2 Sentence adverbs
--
-- Sentence adverbs is the largest class and open for

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../../prelude
concrete TestResourceEng of TestResource = RulesEng, StructuralEng **
concrete TestResourceEng of TestResource = RulesEng, ClauseEng, StructuralEng **
open Prelude, SyntaxEng, ParadigmsEng in {
flags startcat=Phr ; lexer=textlit ; parser=chart ; unlexer=text ;

View File

@@ -0,0 +1,3 @@
concrete TimeEng of Time = {
} ;

View File

@@ -0,0 +1,61 @@
--# -path=.:../abstract:../../prelude
--1 The Top-Level English Resource Grammar: Combination Rules
--
-- Aarne Ranta 2002 -- 2003
--
-- This is the English concrete syntax of the multilingual resource
-- grammar. Most of the work is done in the file $syntax.Eng.gf$.
-- However, for the purpose of documentation, we make here explicit the
-- linearization types of each category, so that their structures and
-- dependencies can be seen.
-- Another substantial part are the linearization rules of some
-- structural words.
--
-- The users of the resource grammar should not look at this file for the
-- linearization rules, which are in fact hidden in the document version.
-- They should use $resource.Abs.gf$ to access the syntactic rules.
-- This file can be consulted in those, hopefully rare, occasions in which
-- one has to know how the syntactic categories are
-- implemented. The parameter types are defined in $TypesEng.gf$.
concrete VerbphraseEng of Verbphrase = CategoriesEng **
open Prelude, SyntaxEng in {
lin
UseV = predVerb ;
UsePassV = passVerb ;
ComplV2 = complTransVerb ;
ComplReflV2 = reflTransVerb ;
ComplVS = complSentVerb ;
ComplVV = complVerbVerb ;
ComplVQ = complQuestVerb ;
ComplVA = complAdjVerb ;
ComplV2A = complDitransAdjVerb ;
ComplSubjV2V = complDitransVerbVerb False ;
ComplObjV2V = complDitransVerbVerb True ;
ComplV2S = complDitransSentVerb ;
ComplV2Q = complDitransQuestVerb ;
PredAP = predAdjective ;
PredSuperl a = predAdjective (superlAdjPhrase a) ;
PredCN = predCommNoun ;
PredNP = predNounPhrase ;
PredPP = predAdverb ;
PredAV = complVerbAdj ;
PredObjA2V = complVerbAdj2 True ;
-- Use VPs
PredVP = predVerbGroupClause ;
RelVP = relVerbPhrase ;
IntVP = intVerbPhrase ;
PosVP tp = predVerbGroup True tp.a ;
NegVP tp = predVerbGroup False tp.a ;
AdvVP = adVerbPhrase ;
SubjVP = subjunctVerbPhrase ;
}