diff --git a/resource-1.0/abstract/Lexicon.gf b/resource-1.0/abstract/Lexicon.gf index 837fac26f..3d82e1eec 100644 --- a/resource-1.0/abstract/Lexicon.gf +++ b/resource-1.0/abstract/Lexicon.gf @@ -1,47 +1,47 @@ ---1 A Lexicon Lexicon - --- This files gives a list of words whose purpose is to test the GF --- resource grammar. It covers all lexical categories of [Cat Cat.html]. --- By containing some of the most common words, --- it is aimed to cover, with high probability, all morphological --- patterns in the different languages. - --- Using this lexicon for translation is not recommended. The linearizations --- of the words in different languages are not guaranteed to be translation --- equivalents. - abstract Lexicon = Cat ** { - fun +fun add_V3 : V3 ; airplane_N : N ; already_Adv : Adv ; + animal_N : N ; answer_V2S : V2 ; apartment_N : N ; apple_N : N ; art_N : N ; + ashes_N : N ; ask_V2Q : V2 ; baby_N : N ; + back_N : N ; bad_A : A ; bank_N : N ; + bark_N : N ; beautiful_A : A ; become_VA : VA ; beer_N : N ; beg_V2V : V2 ; + belly_N : N ; big_A : A ; bike_N : N ; bird_N : N ; + bite_V2 : V2 ; black_A : A ; + blood_N : N ; + blow_V : V ; blue_A : A ; boat_N : N ; + bone_N : N ; book_N : N ; boot_N : N ; boss_N : N ; boy_N : N ; bread_N : N ; break_V2 : V2 ; + breast_N : N ; + breathe_V : V ; broad_A : A ; brother_N2 : N2 ; brown_A : A ; + burn_V : V ; butter_N : N ; buy_V2 : V2 ; camera_N : N ; @@ -58,82 +58,147 @@ abstract Lexicon = Cat ** { clean_A : A ; clever_A : A ; close_V2 : V2 ; + cloud_N : N ; coat_N : N ; cold_A : A ; come_V : V ; computer_N : N ; + correct_A : A ; country_N : N ; + count_V2 : V2 ; cousin_N : N ; cow_N : N ; + cut_V2 : V2 ; + day_N : N ; die_V : V ; + dig_V : V ; dirty_A : A ; distance_N3 : N3 ; - do_V2 : V2 ; doctor_N : N ; dog_N : N ; door_N : N ; + do_V2 : V2 ; drink_V2 : V2 ; + drink_V2 : V2 ; + dry_A : A ; + dull_A : A ; + dust_N : N ; + ear_N : N ; + earth_N : N ; easy_A2V : A2 ; eat_V2 : V2 ; - enemy_N : N ; + eat_V2 : V2 ; + egg_N : N ; empty_A : A ; + enemy_N : N ; + eye_N : N ; factory_N : N ; + fall_V : V ; + far_Adv : Adv ; father_N2 : N2 ; + fat_N : N ; fear_VS : VS ; + fear_V2 : V2 ; + feather_N : N ; + fight_V2 : V2 ; find_V2 : V2 ; + fingernail_N : N ; + fire_N : N ; fish_N : N ; + float_V : V ; floor_N : N ; + flower_N : N ; + flow_V : V ; + fly_V : V ; + fog_N : N ; + foot_N : N ; + forest_N : N ; forget_V2 : V2 ; + freeze_V : V ; fridge_N : N ; friend_N : N ; fruit_N : N ; + full_A : A ; + fun fun_AV : A ; garden_N : N ; girl_N : N ; + give_V3 : V3 ; glove_N : N ; gold_N : N ; good_A : A ; go_V : V ; + grass_N : N ; green_A : A ; + guts_N : N ; + hair_N : N ; + hand_N : N ; harbour_N : N ; hate_V2 : V2 ; hat_N : N ; have_V2 : V2 ; + head_N : N ; + heart_N : N ; hear_V2 : V2 ; + hear_V2 : V2 ; + heavy_A : A ; hill_N : N ; + hit_V2 : V2 ; + hold_V2 : V2 ; hope_VS : VS ; + horn_N : N ; horse_N : N ; hot_A : A ; house_N : N ; + hunt_V2 : V2 ; + husband_N : N ; + ice_N : N ; important_A : A ; industry_N : N ; iron_N : N ; jump_V : V ; + kill_V2 : V2 ; king_N : N ; + knee_N : N ; + know_V2 : V2 ; know_V2 : V2 ; lake_N : N ; lamp_N : N ; + laugh_V : V ; + leaf_N : N ; learn_V2 : V2 ; leather_N : N ; leave_V2 : V2 ; + left_Ord : Ord ; + leg_N : N ; + lie_V : V ; like_V2 : V2 ; listen_V2 : V2 ; + liver_N : N ; live_V : V ; long_A : A ; lose_V2 : V2 ; + louse_N : N ; love_N : N ; love_V2 : V2 ; man_N : N ; married_A2 : A2 ; meat_N : N ; + meat_N : N ; milk_N : N ; moon_N : N ; mother_N2 : N2 ; mountain_N : N ; + mouth_N : N ; music_N : N ; + name_N : N ; narrow_A : A ; + near_A : A ; + neck_N : N ; new_A : A ; newspaper_N : N ; + night_N : N ; + nose_N : N ; now_Adv : Adv ; number_N : N ; oil_N : N ; @@ -144,33 +209,52 @@ abstract Lexicon = Cat ** { paris_PN : PN ; peace_N : N ; pen_N : N ; + person_N : N ; planet_N : N ; plastic_N : N ; play_V2 : V2 ; + play_V : V ; policeman_N : N ; priest_N : N ; probable_AS : A ; + pull_V2 : V2 ; + push_V2 : V2 ; put_V2 : V2 ; queen_N : N ; radio_N : N ; + rain_N : N ; rain_V0 : V ; read_V2 : V2 ; red_A : A ; religion_N : N ; restaurant_N : N ; + right_Ord : Ord ; river_N : N ; + road_N : N ; rock_N : N ; roof_N : N ; + root_N : N ; + rope_N : N ; + rotten_A : A ; + round_A : A ; rubber_N : N ; + rub_V2 : V2 ; run_V : V ; + salt_N : N ; + sand_N : N ; say_VS : VS ; school_N : N ; science_N : N ; + scratch_V2 : V2 ; sea_N : N ; + seed_N : N ; seek_V2 : V2 ; see_V2 : V2 ; + see_V2 : V2 ; sell_V3 : V3 ; send_V3 : V3 ; + sew_V : V ; + sharp_A : A ; sheep_N : N ; ship_N : N ; shirt_N : N ; @@ -178,52 +262,87 @@ abstract Lexicon = Cat ** { shop_N : N ; short_A : A ; silver_N : N ; + sing_V : V ; sister_N : N ; + sit_V : V ; + skin_N : N ; + sky_N : N ; sleep_V : V ; small_A : A ; + smell_V : V ; + smoke_N : N ; + smooth_A : A ; snake_N : N ; + snow_N : N ; sock_N : N ; song_N : N ; speak_V2 : V2 ; + spit_V : V ; + split_V2 : V2 ; + squeeze_V2 : V2 ; + stab_V2 : V2 ; + stand_V : V ; star_N : N ; steel_N : N ; + stick_N : N ; stone_N : N ; stop_V : V ; stove_N : N ; + straight_A : A ; student_N : N ; stupid_A : A ; + suck_V2 : V2 ; sun_N : N ; + swell_V : V ; + swim_V : V ; switch8off_V2 : V2 ; switch8on_V2 : V2 ; table_N : N ; + tail_N : N ; talk_V3 : V3 ; teacher_N : N ; teach_V2 : V2 ; television_N : N ; thick_A : A ; thin_A : A ; + think_V : V ; + throw_V2 : V2 ; + tie_V2 : V2 ; + tongue_N : N ; + tooth_N : N ; train_N : N ; travel_V : V ; tree_N : N ; - ---- trousers_N : N ; + turn_V : V ; ugly_A : A ; understand_V2 : V2 ; university_N : N ; village_N : N ; + vomit_V : V ; wait_V2 : V2 ; walk_V : V ; warm_A : A ; war_N : N ; + wash_V2 : V2 ; watch_V2 : V2 ; water_N : N ; + water_N : N ; + wet_A : A ; white_A : A ; + wide_A : A ; + wife_N : N ; + wind_N : N ; window_N : N ; wine_N : N ; + wing_N : N ; win_V2 : V2 ; + wipe_V2 : V2 ; woman_N : N ; wonder_VQ : VQ ; wood_N : N ; + worm_N : N ; write_V2 : V2 ; + year_N : N ; yellow_A : A ; young_A : A ; diff --git a/resource-1.0/abstract/Structural.gf b/resource-1.0/abstract/Structural.gf index 477f969f7..ea3fe0301 100644 --- a/resource-1.0/abstract/Structural.gf +++ b/resource-1.0/abstract/Structural.gf @@ -38,6 +38,7 @@ abstract Structural = Cat ** { everything_NP : NP ; everywhere_Adv : Adv ; first_Ord : Ord ; + few_Det : Det ; from_Prep : Prep ; he_Pron : Pron ; here_Adv : Adv ; diff --git a/resource-1.0/doc/clt2006.html b/resource-1.0/doc/clt2006.html index 4ee440495..b7e180545 100644 --- a/resource-1.0/doc/clt2006.html +++ b/resource-1.0/doc/clt2006.html @@ -7,7 +7,7 @@

The GF Resource Grammar Library Version 1.0

Author: Aarne Ranta <aarne (at) cs.chalmers.se>
-Last update: Sat Mar 4 14:20:07 2006 +Last update: Tue Mar 7 16:01:46 2006

@@ -274,9 +274,7 @@ Rosetta Machine Translation (B

Coverage

-

-===Languages==== -

+

Languages

The current GF Resource Project covers ten languages:

@@ -302,9 +300,7 @@ API 1.0 not yet implemented for Danish and Russian

-

-===Morphology==== -

+

Morphology and lexicon

Complete inflection engine

@@ -315,24 +311,20 @@ Complete inflection engine

-High-level access via ParadigmsX; e.g. Swedish: +Basic lexicon

+ +

+It is more important to enable lexicon extensions than to +provide a huge lexicon. +

+

@@ -340,7 +332,32 @@ High-level access via ParadigmsX; e.g. Swedish:

Syntactic structures

- +Texts: +sequences of phrases with punctuation +

+

+Phrases: +declaratives, questions, imperatives, vocatives +

+

+Tense, mood, and polarity: +present, past, future, conditional ; similtaneous, anterior ; positive, negative +

+

+Questions: +yes-no, "wh" ; direct, indirect +

+

+Clauses: +main, relative, embedded (subject, object, adverbial) +

+

+Verb phrases: +intransitive, transitive, ditransitive, prepositional +

+

+Noun phrases: +proper names, pronouns, determiners, possessives, cardinals and ordinals

@@ -378,15 +395,125 @@ Lines of source code (4/3/2006):

-

Structure

+

Structure of the API

+

Language-independent ground API

+

+ +

-

Language-independent ground API

+

The structure of a text sentence

+
+  John walks.
+  
+  TFullStop              : Phr -> Text -> Text
+    (PhrUtt              : PConj -> Utt -> Voc -> Phr
+      NoPConj
+      (UttS              : S -> Utt
+        (UseCl           : Tense -> Anter -> Pol -> Cl -> S
+          TPres              
+          ASimul 
+          PPos 
+          (PredVP        : NP -> VP -> Cl
+            (UsePN       : PN -> NP 
+              john_PN) 
+            (UseV        : V  -> VP
+              walk_V)))) 
+      NoVoc) 
+    TEmpty
+
+

+

+ +

+

Structure in syntax editor

+

+ +

Language-dependent paradigm modules

+

Regular paradigms

+

+Every language implements these regular patterns that take +"dictionary forms" as arguments. +

+
+    regN : Str -> N
+    regA : Str -> A 
+    regV : Str -> V
+
+

+Their usefulness varies. For instance, they +all are quite good in Finnish and English. +In Swedish, less so: +

+
+    regN "val" ---> val, valen, valar, valarna
+
+

+Initializing a lexicon with regXs is +usually a good starting point in grammar development. +

+

+ +

+

Regular paradigms

+

+In Swedish, giving the gender of N improves a lot +

+
+    regGenN "val" neutrum ---> val, valet, val, valen
+
+

+

+There are also special constructs taking other forms: +

+
+    mk2N : (nyckel,nycklar : Str) -> N
+    mk1N : (bilarna : Str) -> N
+  
+    irregV : (dricka, drack, druckit : Str) -> V
+
+

+

+Regular verbs are actually implemented the +Lexin way +

+
+    regV : (talar : Str) -> N
+
+

+

+ +

+

Worst-case paradigms

+

+To cover all situations, worst-case paradigms are given. E.g. Swedish +

+
+    mkN : (apa,apan,apor,aporna : Str) -> N
+    mkA : (liten, litet, lilla, sma, mindre, minst, minsta : Str) -> A
+    mkV : (supa,super,sup,söp,supit,supen : Str) -> V
+
+

+

+ +

+

Irregular words

+

+Iregular words in IrregX, e.g. Swedish: +

+
+      draga_V : V = 
+        mkV (variants { "dra"; "draga"}) (variants { "drar" ; "drager"}) 
+            (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ;
+
+

+Goal: eliminate the user's need of worst-case functions. +

@@ -395,6 +522,20 @@ Lines of source code (4/3/2006):

Special-purpose APIs

+

+Syntactic structures that are not shared by all languages. +

+

+Not implemented yet. +

+

+Candidates: +

+ +

@@ -402,20 +543,127 @@ Lines of source code (4/3/2006):

+

Compiling

+

+It is a good idea to compile the library, so that it can be opened faster +

+
+    GF/lib/resource-1.0% make
+  
+    writes GF/lib/alltenses
+           GF/lib/present
+           GF/lib/resource-1.0/langs.gfcm
+
+

+If you don't intend to change the library, you never need to process the source +files again. Just do some of +

+
+    gf -nocf langs.gfcm                                    -- all 8 languages
+   
+    gf -nocf -path=alltenses:prelude alltenses/LangSwe.gfc -- Swedish only
+  
+    gf -nocf -path=alltenses:prelude present/LangSwe.gfc   -- Swedish only, present tense only
+
+

+

+ +

Parsing

+The default parser does not work! +

+

+The MCFG parser works in some languages, after waiting appr. 20 seconds +

+
+    p -mcfg -lang=LangEng -cat=S "I would see her"
+  
+    p -mcfg -lang=LangSwe -cat=S "jag skulle se henne"
+  
+    p -mcfg -lang=LangNor -cat=S "jeg ville se henne"
+  
+
+

+Parsing in present/ versions is quicker. +

+

Treebank generation

+Multilingual treebank entry = tree + linearizations +

+

+Some examples on treebank generation, assuming langs.gfcm +

+
+    gr -cat=S   -number=10 -cf | tb                  -- 10 random S
+  
+    gt -cat=Phr -depth=4       | tb -xml | wf ex.xml -- all Phr to depth 4, into file ex.xml
+
+

+Regression testing +

+
+    rf ex.xml | tb -c      -- read treebank from file and compare to present grammars 
+
+

+Updating a treebank +

+
+    rf old.xml | tb -trees | tb -xml | wf new.xml    -- read old from file, write new to file
+
+

+

Treebank-based parsing

+Brute-force method that helps if real parsing is more expensive. +

+
+    make treebank                     -- make treebank with all languages
+  
+    gf -treebank langs.xml            -- start GF by reading the treebank
+  
+    > ut -strings -treebank=LangIta   -- show all Ita strings
+  
+    > ut -treebank=LangIta -raw "Quello non si romperebbe" -- look up a string
+  
+    > i -nocf langs.gfcm              -- read grammar to be able to linearize
+  
+    > ut -treebank=LangIta "Quello non si romperebbe" | l -multi  -- translate to all
+
+

+

Morphology

+Use morphological analyser +

+
+    gf -nocf -retain -path=alltenses:prelude alltenses/LangSwe.gf
+    > ma "jag kan inte höra vad du säger"
+
+

+

+Try out a morphology quiz +

+
+    > mq -cat=V
+
+

+

+Try out inflection patterns +

+
+    gf -retain -path=alltenses:prelude alltenses/ParadigmsSwe.gfr
+    > cc regV "lyser"
+
+

+

@@ -423,6 +671,16 @@ Lines of source code (4/3/2006):

Syntax editing

+We start a demo by +

+
+  gfeditor langs.gfcm
+
+

+

+ +

+

Efficient parsing via application grammar

@@ -469,6 +727,6 @@ Lines of source code (4/3/2006):

Extend old modules or add a new one?

- + diff --git a/resource-1.0/doc/clt2006.txt b/resource-1.0/doc/clt2006.txt index 5b215297a..dd348b2da 100644 --- a/resource-1.0/doc/clt2006.txt +++ b/resource-1.0/doc/clt2006.txt @@ -217,7 +217,7 @@ Rosetta Machine Translation ([Book 1994 http://citeseer.ist.psu.edu/181924.html] ==Coverage== -===Languages==== +===Languages=== The current GF Resource Project covers ten languages: - ``Dan``ish @@ -240,7 +240,7 @@ API 1.0 not yet implemented for Danish and Russian #NEW -===Morphology==== +===Morphology and lexicon=== Complete inflection engine - all word classes @@ -248,24 +248,16 @@ Complete inflection engine - all inflectional paradigms -High-level access via ``ParadigmsX``; e.g. Swedish: -- worst-case functions -``` - mkV : (supa,super,sup,söp,supit,supen : Str) -> V ; -``` -- common patterns -``` - regV : (talar : Str) -> V ; - irregV : (dricka, drack, druckit : Str) -> V ; -``` -- irregular words in ``IrregX``: -``` - draga_V : V = - mkV (variants { "dra"; "draga"}) (variants { "drar" ; "drager"}) - (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ; -``` +Basic lexicon +- 100 structural words +- 350 content words, mainly for testing +- these include the 207 [Swadesh words http://en.wiktionary.org/wiki/Swadesh_List] +It is more important to enable lexicon extensions than to +provide a huge lexicon. +- technical lexica can have very special words, which tend to be regular + @@ -274,7 +266,28 @@ High-level access via ``ParadigmsX``; e.g. Swedish: ===Syntactic structures=== -[Lang.png] +Texts: +sequences of phrases with punctuation + +Phrases: +declaratives, questions, imperatives, vocatives + +Tense, mood, and polarity: +present, past, future, conditional ; similtaneous, anterior ; positive, negative + +Questions: +yes-no, "wh" ; direct, indirect + +Clauses: +main, relative, embedded (subject, object, adverbial) + +Verb phrases: +intransitive, transitive, ditransitive, prepositional + +Noun phrases: +proper names, pronouns, determiners, possessives, cardinals and ordinals + + #NEW @@ -307,16 +320,117 @@ Lines of source code (4/3/2006): #NEW -==Structure== +==Structure of the API== + +===Language-independent ground API=== + +[Lang.png] + #NEW -===Language-independent ground API=== +===The structure of a text sentence=== + +``` +John walks. + +TFullStop : Phr -> Text -> Text + (PhrUtt : PConj -> Utt -> Voc -> Phr + NoPConj + (UttS : S -> Utt + (UseCl : Tense -> Anter -> Pol -> Cl -> S + TPres + ASimul + PPos + (PredVP : NP -> VP -> Cl + (UsePN : PN -> NP + john_PN) + (UseV : V -> VP + walk_V)))) + NoVoc) + TEmpty +``` + +#NEW + +===Structure in syntax editor=== + +[editor.png] + #NEW ===Language-dependent paradigm modules=== +====Regular paradigms==== + +Every language implements these regular patterns that take +"dictionary forms" as arguments. +``` + regN : Str -> N + regA : Str -> A + regV : Str -> V +``` +Their usefulness varies. For instance, they +all are quite good in Finnish and English. +In Swedish, less so: +``` + regN "val" ---> val, valen, valar, valarna +``` +Initializing a lexicon with ``regX``s is +usually a good starting point in grammar development. + + +#NEW + +====Regular paradigms==== + +In Swedish, giving the gender of ``N`` improves a lot +``` + regGenN "val" neutrum ---> val, valet, val, valen +``` + +There are also special constructs taking other forms: +``` + mk2N : (nyckel,nycklar : Str) -> N + mk1N : (bilarna : Str) -> N + + irregV : (dricka, drack, druckit : Str) -> V +``` + +Regular verbs are actually implemented the +[Lexin http://lexin.nada.kth.se/sve-sve.shtml] way +``` + regV : (talar : Str) -> N +``` + + +#NEW + +====Worst-case paradigms==== + +To cover all situations, worst-case paradigms are given. E.g. Swedish +``` + mkN : (apa,apan,apor,aporna : Str) -> N + mkA : (liten, litet, lilla, sma, mindre, minst, minsta : Str) -> A + mkV : (supa,super,sup,söp,supit,supen : Str) -> V +``` + + +#NEW + +====Irregular words==== + +Iregular words in ``IrregX``, e.g. Swedish: +``` + draga_V : V = + mkV (variants { "dra"; "draga"}) (variants { "drar" ; "drager"}) + (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ; +``` +Goal: eliminate the user's need of worst-case functions. + + + #NEW ===Language-dependent syntax extensions=== @@ -325,34 +439,139 @@ Lines of source code (4/3/2006): ===Special-purpose APIs=== +Syntactic structures that are not shared by all languages. + +Not implemented yet. + +Candidates: +- ``Nor`` post-possessives: ``bilen min`` +- ``Fre`` question forms: ``est-ce que tu dors ?`` + #NEW ===How to use as top-level grammar=== +#NEW + +===Compiling=== + +It is a good idea to compile the library, so that it can be opened faster +``` + GF/lib/resource-1.0% make + + writes GF/lib/alltenses + GF/lib/present + GF/lib/resource-1.0/langs.gfcm +``` +If you don't intend to change the library, you never need to process the source +files again. Just do some of +``` + gf -nocf langs.gfcm -- all 8 languages + + gf -nocf -path=alltenses:prelude alltenses/LangSwe.gfc -- Swedish only + + gf -nocf -path=alltenses:prelude present/LangSwe.gfc -- Swedish only, present tense only +``` + + #NEW ===Parsing=== +The default parser does not work! + +The MCFG parser works in some languages, after waiting appr. 20 seconds +``` + p -mcfg -lang=LangEng -cat=S "I would see her" + + p -mcfg -lang=LangSwe -cat=S "jag skulle se henne" + + p -mcfg -lang=LangNor -cat=S "jeg ville se henne" + +``` +Parsing in ``present/`` versions is quicker. + + #NEW ===Treebank generation=== +Multilingual treebank entry = tree + linearizations + +Some examples on treebank generation, assuming ``langs.gfcm`` +``` + gr -cat=S -number=10 -cf | tb -- 10 random S + + gt -cat=Phr -depth=4 | tb -xml | wf ex.xml -- all Phr to depth 4, into file ex.xml +``` +Regression testing +``` + rf ex.xml | tb -c -- read treebank from file and compare to present grammars +``` +Updating a treebank +``` + rf old.xml | tb -trees | tb -xml | wf new.xml -- read old from file, write new to file +``` + + + #NEW ===Treebank-based parsing=== +Brute-force method that helps if real parsing is more expensive. +``` + make treebank -- make treebank with all languages + + gf -treebank langs.xml -- start GF by reading the treebank + + > ut -strings -treebank=LangIta -- show all Ita strings + + > ut -treebank=LangIta -raw "Quello non si romperebbe" -- look up a string + + > i -nocf langs.gfcm -- read grammar to be able to linearize + + > ut -treebank=LangIta "Quello non si romperebbe" | l -multi -- translate to all +``` + + #NEW ===Morphology=== +Use morphological analyser +``` + gf -nocf -retain -path=alltenses:prelude alltenses/LangSwe.gf + > ma "jag kan inte höra vad du säger" +``` + +Try out a morphology quiz +``` + > mq -cat=V +``` + +Try out inflection patterns +``` + gf -retain -path=alltenses:prelude alltenses/ParadigmsSwe.gfr + > cc regV "lyser" +``` + + #NEW + #NEW ===Syntax editing=== +We start a demo by +``` gfeditor langs.gfcm + +[editor.png] + + #NEW ===Efficient parsing via application grammar=== diff --git a/resource-1.0/doc/editor.png b/resource-1.0/doc/editor.png new file mode 100644 index 000000000..63a3161bf Binary files /dev/null and b/resource-1.0/doc/editor.png differ diff --git a/resource-1.0/english/LexiconEng.gf b/resource-1.0/english/LexiconEng.gf index 0415381e5..fb4b4c35e 100644 --- a/resource-1.0/english/LexiconEng.gf +++ b/resource-1.0/english/LexiconEng.gf @@ -1,6 +1,7 @@ --# -path=.:prelude -concrete LexiconEng of Lexicon = CatEng ** open ParadigmsEng, IrregEng in { +concrete LexiconEng of Lexicon = CatEng ** + open ParadigmsEng, IrregEng, Prelude in { flags optimize=values ; @@ -222,4 +223,132 @@ lin stop_V = regDuplV "stop" ; jump_V = regV "jump" ; + left_Ord = ss "left" ; + right_Ord = ss "right" ; + far_Adv = mkAdv "far" ; + correct_A = (regA "correct") ; + dry_A = regA "dry" ; + dull_A = regA "dull" ; + full_A = regA "full" ; + heavy_A = regA "heavy" ; + near_A = regA "near" ; + rotten_A = (regA "rotten") ; + round_A = regA "round" ; + sharp_A = regA "sharp" ; + smooth_A = regA "smooth" ; + straight_A = regA "straight" ; + wet_A = regA "wet" ; ---- + wide_A = regA "wide" ; + animal_N = regN "animal" ; + ashes_N = regN "ash" ; -- FIXME: plural only? + back_N = regN "back" ; + bark_N = regN "bark" ; + belly_N = regN "belly" ; + blood_N = regN "blood" ; + bone_N = regN "bone" ; + breast_N = regN "breast" ; + cloud_N = regN "cloud" ; + day_N = regN "day" ; + dust_N = regN "dust" ; + ear_N = regN "ear" ; + earth_N = regN "earth" ; + egg_N = regN "egg" ; + eye_N = regN "eye" ; + fat_N = regN "fat" ; + feather_N = regN "feather" ; + fingernail_N = regN "fingernail" ; + fire_N = regN "fire" ; + flower_N = regN "flower" ; + fog_N = regN "fog" ; + foot_N = mk2N "foot" "feet" ; + forest_N = regN "forest" ; + grass_N = regN "grass" ; + guts_N = regN "gut" ; -- FIXME: no singular + hair_N = regN "hair" ; + hand_N = regN "hand" ; + head_N = regN "head" ; + heart_N = regN "heart" ; + horn_N = regN "horn" ; + husband_N = genderN masculine (regN "husband") ; + ice_N = regN "ice" ; + knee_N = regN "knee" ; + leaf_N = mk2N "leaf" "leaves" ; + leg_N = regN "leg" ; + liver_N = regN "liver" ; + louse_N = mk2N "louse" "lice" ; + mouth_N = regN "mouth" ; + name_N = regN "name" ; + neck_N = regN "neck" ; + night_N = regN "night" ; + nose_N = regN "nose" ; + person_N = genderN human (regN "person") ; + rain_N = regN "rain" ; + road_N = regN "road" ; + root_N = regN "root" ; + rope_N = regN "rope" ; + salt_N = regN "salt" ; + sand_N = regN "sand" ; + seed_N = regN "seed" ; + skin_N = regN "skin" ; + sky_N = regN "sky" ; + smoke_N = regN "smoke" ; + snow_N = regN "snow" ; + stick_N = regN "stick" ; + tail_N = regN "tail" ; + tongue_N = regN "tongue" ; + tooth_N = mk2N "tooth" "teeth" ; + wife_N = genderN feminine (mk2N "wife" "wives") ; + wind_N = regN "wind" ; + wing_N = regN "wing" ; + worm_N = regN "worm" ; + year_N = regN "year" ; + blow_V = blow_V ; + breathe_V = dirV2 (regV "breathe") ; + burn_V = burn_V ; + dig_V = dig_V ; + fall_V = fall_V ; + float_V = regV "float" ; + flow_V = regV "flow" ; + fly_V = fly_V ; + freeze_V = freeze_V ; + give_V3 = dirV3 give_V "to" ; + laugh_V = regV "laugh" ; + lie_V = lie_V ; + play_V = regV "play" ; + sew_V = sew_V ; + sing_V = sing_V ; + sit_V = sit_V ; + smell_V = regV "smell" ; + spit_V = spit_V ; + stand_V = stand_V ; + swell_V = swell_V ; + swim_V = swim_V ; + think_V = think_V ; + turn_V = regV "turn" ; + vomit_V = regV "vomit" ; + + bite_V2 = dirV2 bite_V ; + count_V2 = dirV2 (regV "count") ; + cut_V2 = dirV2 cut_V ; + fear_V2 = dirV2 (regV "fear") ; + fight_V2 = dirV2 fight_V ; + hit_V2 = dirV2 hit_V ; + hold_V2 = dirV2 hold_V ; + hunt_V2 = dirV2 (regV "hunt") ; + kill_V2 = dirV2 (regV "kill") ; + pull_V2 = dirV2 (regV "pull") ; + push_V2 = dirV2 (regV "push") ; + rub_V2 = dirV2 (regDuplV "rub") ; + scratch_V2 = dirV2 (regV "scratch") ; + split_V2 = dirV2 split_V ; + squeeze_V2 = dirV2 (regV "squeeze") ; + stab_V2 = dirV2 (regDuplV "stab") ; + suck_V2 = dirV2 (regV "suck") ; + throw_V2 = dirV2 throw_V ; + tie_V2 = dirV2 (regV "tie") ; + wash_V2 = dirV2 (regV "wash") ; + wipe_V2 = dirV2 (regV "wipe") ; + +-- other_A = regA "other" ; + } ; diff --git a/resource-1.0/english/StructuralEng.gf b/resource-1.0/english/StructuralEng.gf index fb4979ae3..bfd2ca287 100644 --- a/resource-1.0/english/StructuralEng.gf +++ b/resource-1.0/english/StructuralEng.gf @@ -30,6 +30,7 @@ concrete StructuralEng of Structural = CatEng ** every_Det = mkDeterminer Sg "every" ; everything_NP = regNP "everything" Sg ; everywhere_Adv = ss "everywhere" ; + few_Det = mkDeterminer Pl "few" ; first_Ord = ss "first" ; from_Prep = ss "from" ; he_Pron = mkNP "he" "him" "his" Sg P3 ; @@ -105,6 +106,7 @@ concrete StructuralEng of Structural = CatEng ** youPl_Pron = mkNP "you" "you" "your" Pl P2 ; youPol_Pron = mkNP "you" "you" "your" Sg P2 ; + oper mkQuant : Str -> Str -> {s : Number => Str} = \x,y -> { s = table Number [x ; y] diff --git a/resource-1.0/finnish/LexiconFin.gf b/resource-1.0/finnish/LexiconFin.gf index 0bbe9d8b8..1d3cd997d 100644 --- a/resource-1.0/finnish/LexiconFin.gf +++ b/resource-1.0/finnish/LexiconFin.gf @@ -1,6 +1,6 @@ --# -path=.:prelude -concrete LexiconFin of Lexicon = CatFin ** open ParadigmsFin in { +concrete LexiconFin of Lexicon = CatFin ** open MorphoFin, ParadigmsFin in { flags optimize=values ; @@ -51,8 +51,8 @@ lin "lapsina" "lapsissa" "lasten" "lapsia" "lapsiin" ; church_N = nLukko "kirkko" ; city_N = regN "kaupunki" ; - clean_A = regADeg "puhdas" ; - clever_A = regADeg "viisas" ; + clean_A = regA "puhdas" ; + clever_A = regA "viisas" ; close_V2 = dirV2 (regV "sulkea") ; coat_N = regN "takki" ; cold_A = mkADeg (nLukko "kylmä") "kylmempi" "kylmin" ; @@ -121,7 +121,8 @@ lin love_V2 = caseV2 (regV "rakastaa") partitive ; man_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen" "miehinä" "miehissä" "miesten" "miehiä" "miehiin" ; - married_A2 = mkA2 (mkA (nRae "avioitunut" "avioituneena")) (postPrep genitive "kanssa") ; + married_A2 = + mkA2 (mkA (nRae "avioitunut" "avioituneena")) (postPrep genitive "kanssa") ; meat_N = nLukko "liha" ; milk_N = nLukko "maito" ; moon_N = regN "kuu" ; @@ -149,7 +150,7 @@ lin radio_N = reg2N "radio" "radioita" ; rain_V0 = mkV0 (reg2V "sataa" "satoi") ; read_V2 = dirV2 (regV "lukea") ; - red_A = regADeg "punainen" ; + red_A = regA "punainen" ; religion_N = nLukko "uskonto" ; restaurant_N = nLukko "ravintola" ; river_N = nArpi "joki" ; @@ -172,7 +173,7 @@ lin shirt_N = nLukko "paita" ; shoe_N = nLukko "kenkä" ; shop_N = nLukko "kauppa" ; - short_A = regADeg "lyhyt" ; + short_A = regA "lyhyt" ; silver_N = regN "hopea" ; sister_N = nLukko "sisko" ; sleep_V = regV "nukkua" ; @@ -185,7 +186,7 @@ lin stone_N = nSylki "kivi" ; stove_N = reg3N "liesi" "lieden" "liesiä" ; student_N = reg2N "opiskelija" "opiskelijoita" ; - stupid_A = regADeg "tyhmä" ; + stupid_A = regA "tyhmä" ; sun_N = nLukko "aurinko" ; switch8off_V2 = dirV2 (regV "sammuttaa") ; --- switch8on_V2 = dirV2 (regV "sytyttää") ; --- @@ -194,8 +195,8 @@ lin teacher_N = nLukko "opettaja" ; teach_V2 = dirV2 (regV "opettaa") ; television_N = reg2N "televisio" "televisioita" ; - thick_A = regADeg "paksu" ; - thin_A = regADeg "ohut" ; + thick_A = regA "paksu" ; + thin_A = regA "ohut" ; train_N = nLukko "juna" ; travel_V = regV "matkustaa" ; tree_N = regN "puu" ; @@ -214,7 +215,7 @@ lin war_N = nLukko "sota" ; watch_V2 = dirV2 (regV "katsella") ; water_N = reg3N "vesi" "veden" "vesiä" ; - white_A = regADeg "valkoinen" ; + white_A = regA "valkoinen" ; window_N = reg2N "ikkuna" "ikkunoita" ; wine_N = regN "viini" ; win_V2 = dirV2 (regV "voittaa") ; @@ -222,7 +223,7 @@ lin wonder_VQ = mkVQ (regV "ihmetellä") ; wood_N = regN "puu" ; write_V2 = dirV2 (regV "kirjoittaa") ; - yellow_A = regADeg "keltainen" ; + yellow_A = regA "keltainen" ; young_A = mkADeg (nArpi "nuori") "nuorempi" "nuorin" ; do_V2 = dirV2 ( @@ -237,13 +238,137 @@ lin put_V2 = dirV2 (regV "panna") ; stop_V = regV "pysähtyä" ; jump_V = regV "hypätä" ; -{- - here_Adv = mkAdv "täällä" ; - here7to_Adv = mkAdv "tänne" ; - here7from_Adv = mkAdv "täältä" ; - there_Adv = mkAdv "siellä" ; --- tuolla - there7to_Adv = mkAdv "sinne" ; - there7from_Adv = mkAdv "sieltä" ; --} + left_Ord = mkOrd (regN "vasen") ; + right_Ord = mkOrd (regN "oikea") ; + far_Adv = mkAdv "kaukana" ; + correct_A = regA "oikea" ; + dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ; + dull_A = mkADeg (regN "tylsä") "tylsempi" "tylsin" ; + full_A = mkADeg (reg3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ; + heavy_A = regA "raskas" ; + near_A = regA "läheinen" ; + rotten_A = regA "mätä" ; + round_A = regA "pyöreä" ; + sharp_A = regA "terävä" ; + smooth_A = regA "sileä" ; + straight_A = mkADeg (regN "suora") "suorempi" "suorin" ; + wet_A = mkADeg (regN "märkä") "märempi" "märin" ; + wide_A = regA "leveä" ; + animal_N = reg3N "eläin" "eläimen" "eläimiä" ; + ashes_N = regN "tuhka" ; + back_N = regN "selkä" ; + bark_N = regN "kaarna" ; + belly_N = regN "vatsa" ; + blood_N = nMeri "veri" ; + bone_N = regN "luu" ; + breast_N = regN "rinta" ; + cloud_N = reg2N "pilvi" "pilviä" ; + day_N = regN "päivä" ; + dust_N = regN "pöly" ; + ear_N = regN "korva" ; + earth_N = regN "maa" ; + egg_N = regN "muna" ; + eye_N = regN "silmä" ; + fat_N = regN "rasva" ; + feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ; + fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ; + fire_N = reg2N "tuli" "tulia" ; + flower_N = regN "kukka" ; + fog_N = regN "sumu" ; + foot_N = regN "jalka" ; + forest_N = regN "metsä" ; + grass_N = regN "ruoho" ; + guts_N = regN "sisälmys" ; --- suoli + hair_N = regN "hius" ; + hand_N = reg3N "käsi" "käden" "käsiä" ; + head_N = regN "pää" ; + heart_N = reg3N "sydän" "sydämen" "sydämiä" ; + horn_N = reg2N "sarvi" "sarvia" ; + husband_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen" + "miehinä" "miehissä" "miesten" "miehiä" "miehiin" ; + ice_N = regN "jää" ; + knee_N = reg2N "polvi" "polvia" ; + leaf_N = reg2N "lehti" "lehtiä" ; + leg_N = regN "jalka" ; --- sääri + liver_N = regN "maksa" ; + louse_N = regN "lude" ; + mouth_N = regN "suu" ; + name_N = reg2N "nimi" "nimiä" ; + neck_N = regN "niska" ; + night_N = regN "yö" ; + nose_N = regN "nenä" ; + person_N = regN "henkilö" ; + rain_N = regN "sade" ; + road_N = regN "tie" ; + root_N = reg2N "juuri" "juuria" ; + rope_N = reg3N "köysi" "köyden" "köysiä" ; + salt_N = regN "suola" ; + sand_N = regN "hiekka" ; + seed_N = regN "siemen" ; + skin_N = regN "nahka" ; + sky_N = reg3N "taivas" "taivaan" "taivaita" ; + smoke_N = regN "savu" ; + snow_N = sgpartN (nMeri "lumi") "lunta" ; + stick_N = regN "keppi" ; + tail_N = regN "häntä" ; + tongue_N = reg2N "kieli" "kieliä" ; + tooth_N = regN "hammas" ; + wife_N = regN "vaimo" ; + wind_N = reg2N "tuuli" "tuulia" ; + wing_N = reg2N "siipi" "siipiä" ; + worm_N = regN "mato" ; + year_N = reg3N "vuosi" "vuoden" "vuosia" ; + bite_V2 = dirV2 (regV "purra") ; + blow_V = regV "puhaltaa" ; + burn_V = regV "palaa" ; + count_V2 = dirV2 (regV "laskea") ; + cut_V2 = dirV2 (reg2V "leikata" "leikkasi") ; + dig_V = regV "kaivaa" ; + fall_V = reg3V "pudota" "putoan" "putosi" ; + fear_V2 = dirV2 (reg3V "pelätä" "pelkään" "pelkäsi") ; + fight_V2 = dirV2 (regV "taistella") ; + float_V = regV "kellua" ; + flow_V = reg3V "virrata" "virtaan" "virtasi" ; + fly_V = regV "lentää" ; + freeze_V = regV "jäätyä" ; + give_V3 = dirdirV3 (regV "antaa") ; + hit_V2 = dirV2 (regV "lyödä") ; + hold_V2 = dirV2 (regV "pitää") ; + hunt_V2 = dirV2 (regV "metsästää") ; + kill_V2 = dirV2 (regV "tappaa") ; + laugh_V = reg3V "nauraa" "nauran" "nauroi" ; + lie_V = reg3V "maata" "makaan" "makasi" ; + play_V = regV "pelata" ; + pull_V2 = dirV2 (regV "vetää") ; + push_V2 = dirV2 (regV "työntää") ; + rub_V2 = dirV2 (regV "hieroa") ; + scratch_V2 = dirV2 (regV "raapia") ; + sew_V = regV "kylvää" ; + sing_V = regV "laulaa" ; + sit_V = regV "istua" ; + smell_V = reg2V "haistaa" "haistoi" ; + spit_V = regV "sylkeä" ; + split_V2 = dirV2 (reg2V "halkaista" "halkaisi") ; + squeeze_V2 = dirV2 (regV "puristaa") ; + stab_V2 = dirV2 (regV "pistää") ; + stand_V = mkV "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään" + "seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät + suck_V2 = dirV2 (regV "imeä") ; + swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan" + "turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ; + swim_V = reg3V "uida" "uin" "ui" ; + think_V = reg3V "ajatella" "ajattelen" "ajatteli" ; + throw_V2 = dirV2 (regV "heittää") ; + tie_V2 = dirV2 (regV "sitoa") ; + turn_V = regV "kääntyä" ; + vomit_V = regV "oksentaa" ; + wash_V2 = dirV2 (regV "pestä") ; + wipe_V2 = dirV2 (regV "pyyhkiä") ; + + breathe_V = regV "hengittää" ; + + oper + mkOrd : N -> Ord ; + mkOrd x = {s = \\n,c => x.s ! NCase n c; lock_Ord = <> } ; } ; diff --git a/resource-1.0/finnish/ParadigmsFin.gf b/resource-1.0/finnish/ParadigmsFin.gf index 1f7d8bfa9..0120d62e8 100644 --- a/resource-1.0/finnish/ParadigmsFin.gf +++ b/resource-1.0/finnish/ParadigmsFin.gf @@ -224,7 +224,7 @@ oper -- The regular adjectives are based on $regN$ in the positive. - regADeg : (punainen : Str) -> A ; + regA : (punainen : Str) -> A ; --2 Verbs @@ -490,13 +490,15 @@ reg3N = \vesi,veden,vesi in regAdjective x kivempaa kivinta ** {lock_A = <>} ; - regADeg suuri = + regA suuri = let suur = regN suuri in mkADeg suur (init (suur.s ! NCase Sg Gen) + "mpi") (init (suur.s ! NCase Pl Ess)) ; + regADeg = regA ; -- for bw compat + mkV a b c d e f g h i j k l = mkVerb a b c d e f g h i j k l ** {sc = NPCase Nom ; lock_V = <>} ; diff --git a/resource-1.0/french/LexiconFre.gf b/resource-1.0/french/LexiconFre.gf index 04d57e91d..0467041f3 100644 --- a/resource-1.0/french/LexiconFre.gf +++ b/resource-1.0/french/LexiconFre.gf @@ -1,6 +1,7 @@ --# -path=.:../romance:../common:../abstract:../../prelude -concrete LexiconFre of Lexicon = CatFre ** open ParadigmsFre, IrregFre in { +concrete LexiconFre of Lexicon = CatFre ** + open MorphoFre, ParadigmsFre, IrregFre in { flags optimize=values ; @@ -71,6 +72,7 @@ lin factory_N = regGenN "usine" feminine ; father_N2 = deN2 (regGenN "père" masculine) ; fear_VS = mkVS (v2V craindre_V2) ; + fear_V2 = dirV2 (v2V craindre_V2) ; find_V2 = dirV2 (regV "trouver") ; fish_N = regGenN "poisson" masculine ; floor_N = regGenN "plancher" masculine ; @@ -224,4 +226,127 @@ lin stop_V = reflV (regV "arrêter") ; jump_V = regV "sauter" ; + left_Ord = mkOrd (regA "gauche") ; + right_Ord = mkOrd (regA "droite") ; + far_Adv = mkAdv "loin" ; + correct_A = regA "correct" ; + dry_A = (mkA "sec" "sèche" "secs" "sèches") ; + dull_A = regA "émoussé" ; + full_A = regA "plein" ; + heavy_A = regA "lourd" ; + near_A = regA "proche" ; + rotten_A = regA "pourri" ; + round_A = regA "rond" ; + sharp_A = regA "tranchant" ; + smooth_A = regA "lisse" ; + straight_A = regA "droite" ; + wet_A = regA "mouillé" ; + wide_A = regA "large" ; + animal_N = regN "animal" ; + ashes_N = regGenN "cendre" masculine ; + back_N = regN "dos" ; + bark_N = regN "écorce" ; + belly_N = regGenN "ventre" masculine ; + blood_N = regN "sang" ; + bone_N = regN "os" ; + breast_N = regN "sein" ; --- poitrine + cloud_N = regGenN "nuage" masculine ; + day_N = regN "jour" ; + dust_N = regN "poussière" ; + ear_N = regN "oreille" ; + earth_N = regN "terre" ; + egg_N = regN "oeuf" ; + eye_N = mkN "oeil" "yeux" masculine ; + fat_N = regN "graisse" ; + feather_N = regN "plume" ; + fingernail_N = regGenN "ongle" masculine ; + fire_N = regN "feu" ; + flower_N = regGenN "fleur" feminine ; + fog_N = regN "brouillard" ; + foot_N = regN "pied" ; + forest_N = regGenN "forêt" feminine ; + grass_N = regN "herbe" ; + guts_N = regN "entraille" ; + hair_N = regN "cheveu" ; + hand_N = regGenN "main" feminine ; + head_N = regN "tête" ; + heart_N = regN "coeur" ; + horn_N = regGenN "corne" masculine ; + husband_N = regN "mari" ; + ice_N = regN "glace" ; + knee_N = regN "genou" ; + leaf_N = regN "feuille" ; + leg_N = regN "jambe" ; + liver_N = regGenN "foie" masculine ; + louse_N = regN "pou" ; + mouth_N = regN "bouche" ; + name_N = regN "nom" ; + neck_N = mkN "cou" "cous" masculine ; + night_N = regGenN "nuit" feminine ; + nose_N = regN "nez" ; + person_N = regN "personne" ; + rain_N = regN "pluie" ; + road_N = regN "route" ; + root_N = regN "racine" ; + rope_N = regN "corde" ; + salt_N = regN "sel" ; + sand_N = regGenN "sable" masculine ; + seed_N = regN "graine" ; + skin_N = regN "peau" ; + sky_N = mkN "ciel" "cieux" masculine ; + smoke_N = regN "fumée" ; + snow_N = regN "neige" ; + stick_N = regN "bâton" ; + tail_N = regN "queue" ; + tongue_N = regN "langue" ; + tooth_N = regGenN "dent" feminine ; + wife_N = regN "femme" ; + wind_N = regN "vent" ; + wing_N = regN "aile" ; + worm_N = regN "ver" ; + year_N = regN "an" ; --- année + bite_V2 = mordre_V2 ; + blow_V = regV "souffler" ; + breathe_V = regV "respirer" ; + burn_V = regV "brûler" ; + count_V2 = dirV2 (regV "conter") ; + cut_V2 = dirV2 (regV "tailler") ; + dig_V = regV "creuser" ; + fall_V = regV "tomber" ; + fight_V2 = dirV2 (regV "lutter") ; + float_V = regV "flotter" ; + flow_V = regV "couler" ; + fly_V = regV "voler" ; + freeze_V = reg3V "geler" "gèle" "gèlera" ; + give_V3 = dirdirV3 (regV "donner") ; + hit_V2 = dirV2 (regV "frapper") ; + hunt_V2 = dirV2 (regV "chasser") ; + kill_V2 = dirV2 (regV "tuer") ; + laugh_V = rire_V2 ; + lie_V = reflV étendre_V2 ; + play_V = regV "jouer" ; + pull_V2 = dirV2 (regV "tirer") ; + push_V2 = dirV2 (regV "pousser") ; + rub_V2 = dirV2 (regV "frotter") ; + scratch_V2 = dirV2 (regV "gratter") ; + sew_V = coudre_V2 ; + sing_V = regV "chanter" ; + sit_V = reflV asseoir_V2 ; + smell_V = v2V ( sentir_V2) ; + spit_V = regV "cracher" ; + squeeze_V2 = dirV2 (regV "serrer") ; + stab_V2 = dirV2 (regV "poignarder") ; + stand_V = reflV (reg3V "lever" "lève" "lèvera") ; + suck_V2 = dirV2 (regV "sucer") ; + swell_V = regV "gonfler" ; + swim_V = regV "nager" ; + think_V = regV "penser" ; + throw_V2 = dirV2 (regV "jeter") ; + tie_V2 = dirV2 (regV "lier") ; + turn_V = regV "tourner" ; + vomit_V = regV "vomir" ; + wash_V2 = dirV2 (regV "laver") ; + wipe_V2 = dirV2 (regV "essuyer") ; + + } ; diff --git a/resource-1.0/german/LexiconGer.gf b/resource-1.0/german/LexiconGer.gf index 1193b00a2..d6051e699 100644 --- a/resource-1.0/german/LexiconGer.gf +++ b/resource-1.0/german/LexiconGer.gf @@ -202,7 +202,8 @@ lin tree_N = reg2N "Baum" "Bäume" masculine ; ---- trousers_N = regN "trousers" ; ---- pl t ! ugly_A = regA "häßlich" ; - understand_V2 = dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; + understand_V2 = + dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; university_N = reg2N "Universitet" "Universiteten" feminine ; village_N = reg2N "Dorf" "Dörfer" neuter ; wait_V2 = mkV2 (regV "warten") (mkPrep "auf" accusative) ; @@ -222,4 +223,136 @@ lin yellow_A = regA "gelb" ; young_A = mkA "jung" "jünger" "jüngste" ; + +-- rest of Swadesh words: to be completed! + +{- + left_Ord = ss "link" ; -- should be the adjective! + right_Ord = ss "recht" ; -- adjective! + far_Adv = mkAdv "weit" ; + correct_A = (regA "recht") ; + dry_A = regA "trocken" ; + dull_A = regA "dull" ; + full_A = regA "voll" ; + heavy_A = regA "schwer" ; + near_A = regA "nahe" ; + rotten_A = (regA "rotten") ; + round_A = regA "rund" ; + sharp_A = regA "scharf" ; + smooth_A = regA "eben" ; + straight_A = regA "gerade" ; + wet_A = regA "nass" ; ---- + wide_A = regA "weit" ; + animal_N = regN "Tier" ; + ashes_N = regN "Asch" ; -- FIXME: plural only? + back_N = regN "Ruecke" ; + bark_N = regN "bark" ; + belly_N = regN "Mage" ; + blood_N = regN "Blut" ; + bone_N = regN "Bein" ; + breast_N = regN "Brust" ; + cloud_N = regN "Wolk" ; + day_N = regN "Tag" ; + dust_N = regN "dust" ; + ear_N = regN "Ohre" ; + earth_N = regN "Erde" ; + egg_N = regN "Ei" ; + eye_N = regN "Auge" ; + fat_N = regN "dick" ; + feather_N = regN "feather" ; + fingernail_N = regN "Nagel" ; + fire_N = regN "Feuer" ; + flower_N = regN "Blum" ; + fog_N = regN "fog" ; + foot_N = mk2N "foot" "feet" ; + forest_N = regN "forest" ; + grass_N = regN "grass" ; + guts_N = regN "gut" ; -- FIXME: no singular + hair_N = regN "hair" ; + hand_N = regN "hand" ; + head_N = regN "head" ; + heart_N = regN "heart" ; + horn_N = regN "horn" ; + husband_N = regN "Ehemann" ; + ice_N = regN "ice" ; + knee_N = regN "knee" ; + leaf_N = mk2N "leaf" "leaves" ; + leg_N = regN "leg" ; + liver_N = regN "liver" ; + louse_N = mk2N "louse" "lice" ; + mouth_N = regN "mouth" ; + name_N = regN "name" ; + neck_N = regN "neck" ; + night_N = regN "night" ; + nose_N = regN "nose" ; + person_N = regN "Persone" ; + rain_N = regN "regnen" ; + road_N = regN "Strasse" ; + root_N = regN "root" ; + rope_N = regN "rope" ; + salt_N = regN "salt" ; + sand_N = regN "sand" ; + seed_N = regN "seed" ; + skin_N = regN "skin" ; + sky_N = regN "sky" ; + smoke_N = regN "smoke" ; + snow_N = regN "snow" ; + stick_N = regN "stick" ; + tail_N = regN "tail" ; + tongue_N = regN "tongue" ; + tooth_N = regN "Zahn" ; + wife_N = regN "Frau" ; + wind_N = regN "wind" ; + wing_N = regN "wing" ; + worm_N = regN "worm" ; + year_N = regN "year" ; + blow_V = blow_V ; + breathe_V = dirV2 (regV "breathe") ; + burn_V = burn_V ; + dig_V = dig_V ; + fall_V = fall_V ; + float_V = regV "float" ; + flow_V = regV "flow" ; + fly_V = fly_V ; + freeze_V = freeze_V ; + give_V3 = dirV3 give_V "to" ; + laugh_V = regV "laugh" ; + lie_V = lie_V ; + play_V = regV "play" ; + sew_V = sew_V ; + sing_V = sing_V ; + sit_V = sit_V ; + smell_V = regV "smell" ; + spit_V = spit_V ; + stand_V = stand_V ; + swell_V = swell_V ; + swim_V = swim_V ; + think_V = think_V ; + turn_V = regV "turn" ; + vomit_V = regV "vomit" ; + + bite_V2 = dirV2 bite_V ; + count_V2 = dirV2 (regV "count") ; + cut_V2 = dirV2 cut_V ; + fear_V2 = dirV2 (regV "fear") ; + fight_V2 = dirV2 fight_V ; + hit_V2 = dirV2 hit_V ; + hold_V2 = dirV2 hold_V ; + hunt_V2 = dirV2 (regV "hunt") ; + kill_V2 = dirV2 (regV "kill") ; + pull_V2 = dirV2 (regV "pull") ; + push_V2 = dirV2 (regV "push") ; + rub_V2 = dirV2 (regDuplV "rub") ; + scratch_V2 = dirV2 (regV "scratch") ; + split_V2 = dirV2 split_V ; + squeeze_V2 = dirV2 (regV "squeeze") ; + stab_V2 = dirV2 (regDuplV "stab") ; + suck_V2 = dirV2 (regV "suck") ; + throw_V2 = dirV2 throw_V ; + tie_V2 = dirV2 (regV "tie") ; + wash_V2 = dirV2 (regV "wash") ; + wipe_V2 = dirV2 (regV "wipe") ; + +-} + } ; diff --git a/resource-1.0/italian/LexiconIta.gf b/resource-1.0/italian/LexiconIta.gf index 0676cd975..785771824 100644 --- a/resource-1.0/italian/LexiconIta.gf +++ b/resource-1.0/italian/LexiconIta.gf @@ -1,6 +1,7 @@ --# -path=.:../romance:../common:../abstract:../../prelude -concrete LexiconIta of Lexicon = CatIta ** open ParadigmsIta, BeschIta in { +concrete LexiconIta of Lexicon = CatIta ** open + MorphoIta, ParadigmsIta, BeschIta in { flags optimize=values ; @@ -223,12 +224,130 @@ lin put_V2 = dirV2 (verboV (mettere_57 "mettere")) ; stop_V = reflV (regV "fermare") ; jump_V = regV "saltare" ; -{- - here_Adv = mkAdv "quì" ; - here7to_Adv = mkAdv "quì" ; - here7from_Adv = mkAdv ["da quì"] ; - there_Adv = mkAdv "lì" ; - there7to_Adv = mkAdv "lì" ; - there7from_Adv = mkAdv ["da lì"] ; --} + + left_Ord = mkOrd (regA "sinistro") ; + right_Ord = mkOrd (regA "destro") ; + far_Adv = mkAdv "lontano" ; + correct_A = regA "corretto" ; + dry_A = regA "secco" ; + dull_A = regA "noioso" ; + full_A = regA "pieno" ; + heavy_A = regA "pesante" ; + near_A = regA "vicino" ; + rotten_A = regA "marcio" ; + round_A = regA "rotondo" ; + sharp_A = regA "aguzzo" ; + smooth_A = regA "liscio" ; + straight_A = regA "diretto" ; + wet_A = regA "bagnato" ; + wide_A = regA "largo" ; + animal_N = regN "animale" ; + ashes_N = regN "cenere" ; + back_N = regN "schiena" ; + bark_N = regN "corteccia" ; + belly_N = regN "pancia" ; + blood_N = regN "sangue" ; + bone_N = regN "osso" ; + breast_N = regN "seno" ; + cloud_N = regN "nuvola" ; + day_N = regN "giorno" ; + dust_N = regN "polvere" ; + ear_N = regN "orecchio" ; + earth_N = regN "terra" ; + egg_N = mkN "uovo" "uova" masculine ; -- fem in Pl + eye_N = regN "occhio" ; + fat_N = regN "grasso" ; + feather_N = regN "piuma" ; + fingernail_N = regN "unghia" ; + fire_N = regN "fuoco" ; + flower_N = regN "fiore" ; + fog_N = regN "nebbia" ; + foot_N = regN "piede" ; + forest_N = regN "bosco" ; + grass_N = regN "erba" ; + guts_N = regN "intestino" ; + hair_N = regN "capello" ; + hand_N = femN (regN "mano") ; + head_N = regN "testa" ; + heart_N = regN "cuore" ; + horn_N = regN "corno" ; + husband_N = regN "marito" ; + ice_N = regN "ghiaccio" ; + knee_N = regN "ginocchio" ; + leaf_N = regN "foglia" ; + leg_N = regN "gamba" ; + liver_N = regN "fegato" ; + louse_N = regN "pidocchio" ; + mouth_N = regN "bocca" ; + name_N = regN "nome" ; + neck_N = regN "collo" ; + night_N = femN (regN "notte") ; + nose_N = regN "naso" ; + person_N = regN "persona" ; + rain_N = regN "pioggia" ; + road_N = regN "strada" ; + root_N = femN (regN "radice") ; + rope_N = regN "corda" ; + salt_N = regN "sale" ; + sand_N = regN "sabbia" ; + seed_N = regN "seme" ; + skin_N = femN (regN "pelle") ; + sky_N = regN "cielo" ; + smoke_N = regN "fumo" ; + snow_N = femN (regN "neve") ; + stick_N = regN "bastone" ; + tail_N = regN "coda" ; + tongue_N = regN "lingua" ; + tooth_N = regN "dente" ; + wife_N = regN "donna" ; + wind_N = regN "vento" ; + wing_N = regN "ala" ; + worm_N = regN "verme" ; + year_N = regN "anno" ; + bite_V2 = dirV2 (verboV (esplodere_51 "mordere")) ; + blow_V = regV "soffiare" ; + burn_V = regV "bruciare" ; + count_V2 = dirV2 (regV "contare") ; + cut_V2 = dirV2 (regV "tagliare") ; + dig_V = regV "scavare" ; + fall_V = essereV (verboV (cadere_28 "cadere")) ; + fear_V2 = dirV2 (verboV (temere_20 "temere")) ; + fight_V2 = dirV2 (regV "lottare") ; + float_V = regV "galleggiare" ; + flow_V = verboV (finire_100 "fluire") ; + fly_V = regV "volare" ; + freeze_V = regV "gelare" ; + give_V3 = dirdirV3 (verboV (dare_15 "dare")) ; + hit_V2 = dirV2 (regV "colpire") ; + hold_V2 = dirV2 (verboV (venire_110 "tenire")) ; + hunt_V2 = dirV2 (regV "cacciare") ; + kill_V2 = dirV2 (verboV (ridere_74 "uccidere")) ; + laugh_V = verboV (ridere_74 "ridere") ; + lie_V = verboV (piacere_64 "giacere") ; + play_V = regV "giocare" ; + pull_V2 = dirV2 (regV "tirare") ; + push_V2 = dirV2 (verboV (cingere_31 "spingere")) ; + rub_V2 = dirV2 (regV "strofinare") ; + scratch_V2 = dirV2 (regV "graffiare") ; + sew_V = verboV (cucire_103 "cucire") ; + sing_V = regV "cantare" ; + sit_V = reflV (verboV (sedere_84 "sedere")) ; + smell_V = verboV (sentire_99 "sentire") ; + spit_V = regV "sputare" ; + split_V2 = dirV2 (verboV (ridere_74 "dividere")) ; + squeeze_V2 = dirV2 (verboV (temere_20 "spremere")) ; + stab_V2 = dirV2 (regV "pugnalare") ; + stand_V = verboV (stare_16 "stare") ; ---- in piedi + suck_V2 = dirV2 (regV "succhiare") ; + swell_V = regV "gonfiare" ; + swim_V = regV "nuotare" ; + think_V = regV "pensare" ; + throw_V2 = dirV2 (regV "gettare") ; + tie_V2 = dirV2 (regV "legare") ; + turn_V = regV "tornare" ; + vomit_V = regV "vomitare" ; + wash_V2 = dirV2 (regV "lavare") ; + wipe_V2 = dirV2 (regV "asciugare") ; + breathe_V = (regV "respirare") ; + } ; diff --git a/resource-1.0/minimal/MkLex.hs b/resource-1.0/minimal/MkLex.hs index 3260843d5..94525126f 100644 --- a/resource-1.0/minimal/MkLex.hs +++ b/resource-1.0/minimal/MkLex.hs @@ -1,12 +1,26 @@ module MkLexicon where import Char +import qualified Data.Set as S + +-- apply function o to each line in file f allLines o f = do s <- readFile f mapM_ (putStrLn . o) (filter noComm (lines s)) +-- take each line in file k as a key, and choose those lines in file f +-- that match any of the keys (i.e. whose first word matches it) +chooseKeys k f = do + keys <- readFile k >>= return . (S.fromList . lines) + let choose line = case words line of + w:_ -> S.member w keys + _ -> False + old <- readFile f >>= return . lines + mapM_ (putStrLn . drop 2) $ filter choose old -- to remove extra indent + + -- discard comments and empty lines noComm s = case s of @@ -141,3 +155,10 @@ getAllThose sought given = do gi <- readFile given let so = [w | l <- lines s, w:_ <- [words l]] mapM_ putStrLn $ allThose so $ lines gi + + +-- Swadesh 7/3/2006: replace string defs with f = f ; + +reuseLex line = case words line of + w : "=" : _ | elem '"' line -> " " ++ w ++ " = " ++ w ++ " ;" + _ -> line diff --git a/resource-1.0/norwegian/LexiconNor.gf b/resource-1.0/norwegian/LexiconNor.gf index 9dd4dd0b8..ed9d351c1 100644 --- a/resource-1.0/norwegian/LexiconNor.gf +++ b/resource-1.0/norwegian/LexiconNor.gf @@ -1,6 +1,7 @@ --# -path=.:../scandinavian:../common:../abstract:../../prelude -concrete LexiconNor of Lexicon = CatNor ** open ParadigmsNor, IrregNor in { +concrete LexiconNor of Lexicon = CatNor ** + open Prelude, ParadigmsNor, IrregNor in { flags startcat=Phr ; lexer=textlit ; unlexer=text ; optimize=values ; @@ -221,14 +222,133 @@ lin put_V2 = mkV2 (irregV "sette" "satte" "satt") [] ; stop_V = regV "stanse" ; jump_V = regV "hoppe" ; -{- - here_Adv = mkAdv "her" ; - here7to_Adv = mkAdv "hit" ; - here7from_Adv = mkAdv ["herfra"] ; - there_Adv = mkAdv "der" ; - there7to_Adv = mkAdv "dit" ; - there7from_Adv = mkAdv ["derfra"] ; --} + + left_Ord = {s = "venstre" ; isDet = True} ; + right_Ord = {s = "høyre" ; isDet = True} ; + far_Adv = mkAdv "fjern" ; + correct_A = regA "riktig" ; + dry_A = mk2A "tørr" "tørt" ; + dull_A = regA "sløv" ; + full_A = regA "full" ; + heavy_A = irregADeg "tung" "tyngre" "tyngst" ; + near_A = mkADeg "nære" "nære" "nære" "nærmere" "nærmest" ; + rotten_A = mk3ADeg "råtten" "råttent" "råtne" ; + round_A = regA "rund" ; + sharp_A = mk2A "kvass" "kvast" ; + smooth_A = mk2A "slett" "slett" ; + straight_A = regA "rak" ; + wet_A = regA "våt" ; + wide_A = regA "bred" ; + animal_N = mk2N "dyr" "dyret" ; + ashes_N = mk2N "aske" "aska" ; + back_N = mk2N "rygg" "ryggen" ; + bark_N = mk2N "bark" "barken" ; + belly_N = mk2N "mage" "magen" ; + blood_N = mk2N "blod" "blodet" ; + bone_N = mk2N "bein" "beinet" ; + breast_N = mk2N "bryst" "brystet" ; + cloud_N = mk2N "sky" "skya" ; + day_N = mk2N "dag" "dagen" ; + dust_N = mk2N "støv" "støvet" ; + ear_N = mk2N "øre" "øret" ; + earth_N = mk2N "jord" "jorda" ; + egg_N = mk2N "egg" "egget" ; + eye_N = mkN "øye" "øyet" "øyne" "øynene" ; + fat_N = mk2N "fett" "fettet" ; + feather_N = mk2N "fjør" "fjøra" ; + fingernail_N = mk2N "negl" "neglen" ; + fire_N = mk2N "ild" "ilden" ; + flower_N = mk2N "blomst" "blomsten" ; + fog_N = mk2N "tåke" "tåka" ; + foot_N = mk2N "fot" "føtter" ; + forest_N = mk2N "skog" "skogen" ; + grass_N = mk2N "gras" "graset" ; + guts_N = mk2N "tarm" "tarmen" ; ---- involler + hair_N = mk2N "hår" "håret" ; + hand_N = mk2N "hånd" "hånden" ; + head_N = mk2N "hode" "hodet" ; + heart_N = mk2N "hjerte" "hjertet" ; + horn_N = mk2N "horn" "hornet" ; + husband_N = mkN "ektemann" "ektemannen" "ektemenn" "ektemennen" ; + ice_N = mk2N "is" "isen" ; + knee_N = mkN "kne" "kneet" "knær" "knæne" ; + leaf_N = mk2N "løv" "løvet" ; + leg_N = mk2N "bein" "beinet" ; + liver_N = mkN "lever" "leveren" "levrer" "levrene" ; + louse_N = mk2N "lus" "lusa" ; + mouth_N = mk2N "munn" "munnen" ; + name_N = mk2N "navn" "navnet" ; + neck_N = mk2N "nakke" "nakken" ; + night_N = mkN "natt" "natta" "netter" "nettene" ; + nose_N = mk2N "nese" "nesen" ; + person_N = mk2N "person" "personen" ; + rain_N = mk2N "regn" "regnet" ; + road_N = mk2N "vei" "veien" ; + root_N = mkN "rot" "rota" "røtter" "røttene" ; + rope_N = mk2N "tau" "tauet" ; + salt_N = mk2N "salt" "saltet" ; + sand_N = mk2N "sand" "sanden" ; + seed_N = mk2N "frø" "frøet" ; + skin_N = mk2N "skinn" "skinnet" ; + sky_N = mkN "himmel" "himmelen" "himler" "himlene" ; + smoke_N = mk2N "røyk" "røyken" ; + snow_N = mk2N "snø" "snøen" ; + stick_N = mk2N "pinne" "pinnen" ; + tail_N = mk2N "hale" "halen" ; + tongue_N = mk2N "tunge" "tunga" ; + tooth_N = mkN "tann" "tanna" "tenner" "tennene" ; + wife_N = mk2N "kone" "kona" ; + wind_N = mk2N "vind" "vinden" ; + wing_N = mk2N "vinge" "vingen" ; + worm_N = mk2N "mark" "marken" ; + year_N = mk2N "år" "året" ; + bite_V2 = dirV2 (IrregNor.bite_V) ; + blow_V = mk2V "blåse" "blåste" ; + burn_V = brenne_V ; + count_V2 = dirV2 (regV "regne") ; + cut_V2 = dirV2 (skjære_V) ; + dig_V = mk2V "grave" "gravde" ; + fall_V = falle_V ; + fear_V2 = dirV2 (regV "frykte") ; + fight_V2 = dirV2 (slåss_V) ; + float_V = flyte_V ; + flow_V = renne_V ; + fly_V = fly_V ; + freeze_V = fryse_V ; + give_V3 = dirdirV3 gi_V ; + hit_V2 = dirV2 (slå_V) ; + hold_V2 = dirV2 (holde_V) ; + hunt_V2 = dirV2 (regV "jakte") ; + kill_V2 = dirV2 (mk2V "drepe" "drepte") ; + laugh_V = mkV "le" "ler" "les" "lo" "ledd" "le" ; + lie_V = ligge_V ; + play_V = mk2V "leke" "lekte" ; + pull_V2 = dirV2 (dra_V) ; + push_V2 = dirV2 (irregV "skyve" "skjøv" "skjøvet") ; + rub_V2 = dirV2 (gni_V) ; + scratch_V2 = dirV2 (regV "klø") ; + sew_V = mk2V "sy" "sydde" ; + sing_V = synge_V ; + sit_V = sitte_V ; + smell_V = regV "lukte" ; + spit_V = regV "spytte" ; + split_V2 = dirV2 (mk2V "kløyve" "kløyvde") ; + squeeze_V2 = dirV2 (mk2V "klemme" "klemte") ; + stab_V2 = dirV2 (stikke_V) ; + stand_V = stå_V ; + suck_V2 = dirV2 (suge_V) ; + swell_V = partV (regV "hovne") "opp" ; + swim_V = regV "simme" ; + think_V = mk2V "tenke" "tenkte" ; + throw_V2 = dirV2 (regV "kaste") ; + tie_V2 = dirV2 (regV "knytte") ; + turn_V = mk2V "vende" "vendte" ; + vomit_V = partV (regV "kaste") "opp" ; + wash_V2 = dirV2 (regV "vaske") ; + wipe_V2 = dirV2 (regV "tørke") ; + breathe_V = regV "puste" ; + + } ; -- a" -> e" 86 diff --git a/resource-1.0/romance/CommonRomance.gf b/resource-1.0/romance/CommonRomance.gf index 8ae45774e..1b5769be2 100644 --- a/resource-1.0/romance/CommonRomance.gf +++ b/resource-1.0/romance/CommonRomance.gf @@ -168,6 +168,10 @@ oper vpAgrNone : VPAgr = VPAgrClit (aagr Masc Sg) ; + oper + mkOrd : {s : Degree => AForm => Str} -> {s : AAgr => Str} ; + mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n} ; + param VPAgr = VPAgrSubj -- elle est partie, elle s'est vue @@ -189,5 +193,6 @@ oper ext : Polarity => Str ; -- que je dors / que je dorme } ; + } diff --git a/resource-1.0/spanish/LexiconSpa.gf b/resource-1.0/spanish/LexiconSpa.gf index bb01b102a..659fd8237 100644 --- a/resource-1.0/spanish/LexiconSpa.gf +++ b/resource-1.0/spanish/LexiconSpa.gf @@ -1,6 +1,7 @@ --# -path=.:../romance:../common:../abstract:../../prelude -concrete LexiconSpa of Lexicon = CatSpa ** open ParadigmsSpa, BeschSpa in { +concrete LexiconSpa of Lexicon = CatSpa ** open + MorphoSpa, ParadigmsSpa, BeschSpa in { flags optimize=values ; @@ -222,4 +223,130 @@ lin stop_V = regV "parar" ; jump_V = regV "saltar" ; + left_Ord = mkOrd (regA "izquierda") ; + right_Ord = mkOrd (regA "derecha") ; + far_Adv = mkAdv "lejos" ; ----? + correct_A = regA "correcto" ; + dry_A = regA "seco" ; + dull_A = regA "desafilado" ; + full_A = regA "lleno" ; + heavy_A = regA "pesado" ; + near_A = regA "cerca" ; + rotten_A = regA "podrido" ; + round_A = regA "redondo" ; + sharp_A = regA "filoso" ; -- afilado, puntiagudo + smooth_A = regA "liso" ; -- suave + straight_A = regA "directo" ; + wet_A = regA "mojado" ; + wide_A = regA "ancho" ; -- extenso + animal_N = regN "animal" ; -- masc (sometimes fem when adj) + ashes_N = regN "ceniza" ; + back_N = regN "espalda" ; + bark_N = regN "corteza" ; + belly_N = regN "panza" ; -- barriga + blood_N = femN (regN "sangre") ; + bone_N = regN "hueso" ; + breast_N = regN "seno" ; -- pecho + cloud_N = femN (regN "nube") ; + day_N = mascN (regN "día") ; + dust_N = regN "polvo" ; + ear_N = regN "oreja" ; + earth_N = regN "tierra" ; + egg_N = regN "huevo" ; + eye_N = regN "ojo" ; + fat_N = regN "grasa" ; + feather_N = regN "pluma" ; + fingernail_N = regN "uña" ; + fire_N = regN "fuego" ; + flower_N = femN (regN "flor") ; + fog_N = regN "niebla" ; + foot_N = regN "pie" ; + forest_N = regN "bosque" ; + grass_N = regN "pasto" ; -- hierba, césped (masc) + guts_N = regN "tripa" ; -- gut=intestino ---- pl.t. tripas + hair_N = regN "cabello" ; -- pelo + hand_N = femN (regN "mano") ; + head_N = regN "cabeza" ; + heart_N = mkN "corazón" "corazones" masculine ; + horn_N = regN "cuerno" ; + husband_N = regN "marido" ; -- esposo + ice_N = regN "hielo" ; + knee_N = regN "rodilla" ; + leaf_N = regN "hoja" ; + leg_N = regN "pierna" ; + liver_N = regN "hígado" ; + louse_N = regN "piojo" ; + mouth_N = regN "boca" ; + name_N = regN "nombre" ; + neck_N = regN "cuello" ; + night_N = femN (regN "noche") ; + nose_N = femN (regN "nariz") ; + person_N = regN "persona" ; + rain_N = regN "lluvia" ; + road_N = femN (regN "calle") ; -- camino + root_N = femN (regN "raíz") ; + rope_N = regN "cuerda" ; + salt_N = femN (regN "sal") ; + sand_N = regN "arena" ; + seed_N = regN "semilla" ; + skin_N = femN (regN "piel") ; -- fem + sky_N = regN "cielo" ; + smoke_N = regN "humo" ; + snow_N = femN (regN "nieve") ; -- fem + stick_N = mkN "bastón" "bastones" masculine ; -- palo + tail_N = regN "cola" ; + tongue_N = regN "lengua" ; + tooth_N = regN "diente" ; + wife_N = regN "esposa" ; + wind_N = regN "viento" ; + wing_N = regN "ala" ; + worm_N = regN "gusano" ; -- lombriz (fem) + year_N = regN "año" ; + bite_V2 = dirV2 (verboV (morder_50b "morder")) ; + blow_V = regV "soplar" ; + burn_V = regV "quemar" ; + count_V2 = dirV2 (verboV (contar_38b "contar")) ; + cut_V2 = dirV2 (regV "cortar") ; + dig_V = regV "escarbar" ; + fall_V = verboV (caer_20 "caer") ; + fear_V2 = dirV2 (regV "temer") ; + fight_V2 = dirV2 (regV "pelear") ; + float_V = regV "flotar" ; + flow_V = verboV (influir_45 "fluir") ; -- circular + fly_V = regV "volar" ; + freeze_V = regV "congelar" ; + give_V3 = dirdirV3 (verboV (dar_27 "dar")) ; + hit_V2 = dirV2 (regV "golpear") ; + hold_V2 = dirV2 (verboV (tener_4 "tener")) ; + hunt_V2 = dirV2 (regV "cazar") ; + kill_V2 = dirV2 (regV "matar") ; + laugh_V = regV "reir" ; ----V reír_67 + lie_V = reflV (regV "acostar") ; -- "acostarse" + play_V = regV "jugar" ; + pull_V2 = dirV2 (regV "tirar") ; + push_V2 = dirV2 (regV "empujar") ; + rub_V2 = dirV2 (regV "resfregar") ; + scratch_V2 = dirV2 (regV "rascar") ; + sew_V = regV "coser" ; + sing_V = regV "cantar" ; + sit_V = reflV (regV "sentar") ; + smell_V = verboV (oler_52 "oler") ; + spit_V = regV "escupir" ; + split_V2 = dirV2 (regV "separar") ; -- dividir,) ; + squeeze_V2 = dirV2 (regV "exprimir") ; + stab_V2 = dirV2 (regV "apuñalar") ; + stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ; + suck_V2 = dirV2 (regV "chupar") ; + swell_V = regV "tragar" ; + swim_V = regV "nadar" ; + think_V = regV "pensar" ; + throw_V2 = dirV2 (regV "tirar") ; + tie_V2 = dirV2 (regV "atar") ; + turn_V = regV "doblar" ; + vomit_V = regV "vomitar" ; + wash_V2 = dirV2 (regV "lavar") ; + wipe_V2 = dirV2 (regV "secar") ; + breathe_V = (regV "respirar") ; + + } ; diff --git a/resource-1.0/swedish/LexiconSwe.gf b/resource-1.0/swedish/LexiconSwe.gf index 2b8087c7f..d0cbe996c 100644 --- a/resource-1.0/swedish/LexiconSwe.gf +++ b/resource-1.0/swedish/LexiconSwe.gf @@ -1,6 +1,7 @@ --# -path=.:../scandinavian:../common:../abstract:../../prelude -concrete LexiconSwe of Lexicon = CatSwe ** open ParadigmsSwe, IrregSwe in { +concrete LexiconSwe of Lexicon = CatSwe ** + open Prelude, ParadigmsSwe, IrregSwe in { flags optimize=values ; @@ -223,4 +224,130 @@ lin stop_V = regV "stanna" ; jump_V = regV "hoppa" ; + left_Ord = {s = "vänstra" ; isDet = True} ; + right_Ord = {s = "högra" ; isDet = True} ; + far_Adv = mkAdv "långt" ; + correct_A = regA "riktig" ; + dry_A = regA "torr" ; + dull_A = mk2A "slö" "slött"; + full_A = regA "full" ; + heavy_A = irregA "tung" "tyngre" "tyngst" ; + near_A = mkA "nära" "nära" "nära" "nära" "närmare" "närmast" "närmaste" ; + rotten_A = mk3A "rutten" "ruttet" "ruttna" ; + round_A = regA "rund" ; + sharp_A = regA "vass" ; + smooth_A = regA "slät" ; + straight_A = regA "rak" ; + wet_A = regA "våt" ; + wide_A = mk2A "bred" "brett" ; + animal_N = mk2N "djur" "djur" ; + ashes_N = mk2N "aska" "askor" ; + back_N = mk2N "rygg" "ryggar" ; + bark_N = mk2N "bark" "barkar" ; + belly_N = mk2N "mage" "magar" ; + blood_N = mk2N "blod" "blod" ; + bone_N = mk2N "ben" "ben" ; + breast_N = mk2N "bröst" "bröst" ; + cloud_N = mk2N "moln" "moln" ; + day_N = mk2N "dag" "dagar" ; + dust_N = mk2N "damm" "damm" ; + ear_N = mkN "öra" "örat" "öron" "öronen" ; + earth_N = mk2N "jord" "jordar" ; + egg_N = mk2N "ägg" "ägg" ; + eye_N = mkN "öga" "ögat" "ögon" "ögonen" ; + fat_N = mk2N "fett" "fett" ; + feather_N = mk2N "fjäder" "fjädrar" ; + fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna"; + fire_N = mk2N "eld" "eldar" ; + flower_N = mk2N "blomma" "blommor" ; + fog_N = mk2N "dimma" "dimmor" ; + foot_N = mk2N "fot" "fötter" ; + forest_N = mk2N "skog" "skogar" ; + grass_N = mk2N "gräs" "gräs" ; + guts_N = mk2N "inälva" "inälvor" ; + hair_N = mk2N "hår" "hår" ; + hand_N = mk2N "hand" "händer" ; + head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ; + heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ; + horn_N = mk2N "horn" "horn" ; + husband_N = (mk2N "make" "makar") ; + ice_N = mk2N "is" "isar" ; + knee_N = mkN "knä" "knäet" "knän" "knäna" ; + leaf_N = mk2N "löv" "löv" ; + leg_N = mk2N "ben" "ben" ; + liver_N = mkN "lever" "levern" "levrar" "levrarna"; + louse_N = mkN "lus" "lusen" "löss" "lössen" ; + mouth_N = mkN "mun" "munnen" "munnar" "munnarna" ; + name_N = mk2N "namn" "namn" ; + neck_N = mk2N "nacke" "nackar" ; + night_N = mk2N "natt" "nätter" ; + nose_N = mk2N "näsa" "näsor" ; + person_N = mk2N "person" "personer" ; + rain_N = mk2N "regn" "regn" ; + road_N = mk2N "väg" "vägar" ; + root_N = mk2N "rot" "rötter" ; + rope_N = mk2N "rep" "rep" ; + salt_N = mkN "salt" "saltet" "salter" "salterna"; + sand_N = mk2N "sand" "sander" ; + seed_N = mkN "frö" "fröet" "frön" "fröna" ; + skin_N = mk2N "skinn" "skinn" ; + sky_N = mk2N "himmel" "himlar" ; + smoke_N = mk2N "rök" "rökar" ; + snow_N = mkN "snö" "snön" "snöer" "snöerna" ; + stick_N = mk2N "pinne" "pinnar" ; + tail_N = mk2N "svans" "svansar" ; + tongue_N = mk2N "tunga" "tungor" ; + tooth_N = mk2N "tand" "tänder" ; + wife_N = mk2N "fru" "fruar" ; + wind_N = mk2N "vind" "vindar" ; + wing_N = mk2N "vinge" "vingar" ; + worm_N = mk2N "mask" "maskar" ; + year_N = mk2N "år" "år" ; + bite_V2 = dirV2 (bita_V) ; + blow_V = mk2V "blåsa" "blåste" ; + burn_V = brinna_V ; -- FIXME: bränna? + count_V2 = dirV2 (regV "räkna") ; + cut_V2 = dirV2 (skära_V) ; + dig_V = mk2V "gräva" "grävde" ; + fall_V = falla_V ; + fear_V2 = dirV2 (regV "frukta") ; + float_V = flyta_V ; + flow_V = rinna_V ; + fly_V = flyga_V ; + freeze_V = frysa_V ; + give_V3 = dirV3 giva_V "till"; + hit_V2 = dirV2 (slå_V) ; + hold_V2 = dirV2 (hålla_V) ; + hunt_V2 = dirV2 (regV "jaga") ; + kill_V2 = dirV2 (regV "döda") ; + laugh_V = regV "skratta" ; + lie_V = ligga_V ; + play_V = mk2V "leka" "lekte" ; + pull_V2 = dirV2 (draga_V) ; + push_V2 = dirV2 (mk2V "trycka" "tryckte") ; + rub_V2 = dirV2 (gnida_V) ; + scratch_V2 = dirV2 (regV "klia") ; + sew_V = sy_V ; + sing_V = sjunga_V ; + sit_V = sitta_V ; + smell_V = regV "lukta" ; + spit_V = regV "spotta" ; + split_V2 = dirV2 (klyva_V) ; + squeeze_V2 = dirV2 (klämma_V) ; + stab_V2 = dirV2 (sticka_V) ; + stand_V = stå_V ; + suck_V2 = dirV2 (suga_V) ; + swell_V = svälla_V ; + swim_V = regV "simma" ; + think_V = mk2V "tänka" "tänkte" ; + throw_V2 = dirV2 (regV "kasta") ; + tie_V2 = dirV2 (knyta_V) ; + turn_V = vända_V ; + vomit_V = mk2V "spy" "spydde" ; + wash_V2 = dirV2 (regV "tvätta") ; + wipe_V2 = dirV2 (regV "torka") ; + + breathe_V = depV (regV "anda") ; + fight_V2 = mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") "med" ; + } ;