diff --git a/examples/stoneage/StoneageIta.gf b/examples/stoneage/StoneageIta.gf new file mode 100644 index 000000000..03c0ccaf1 --- /dev/null +++ b/examples/stoneage/StoneageIta.gf @@ -0,0 +1,242 @@ +--# -path=.:../../lib/resource/romance:../../lib/resource/abstract:../../lib/resource/italian:../../lib/prelude + +concrete StoneageIta of Stoneage + = open SyntaxIta, RulesIta, StructuralIta, ParadigmsIta, SwadeshLexIta, + StoneageResIta in { + +flags + startcat=S; optimize=share; + +lincat + S = Phr ; + NP = NP ; + N = N; + CN = CN ; + +lin + + -- Sentence conjunction + +-- AndS s1 s2 = { s = s1.s ++ and_Conj.s ++ s2.s } ** { lock_Phr = <> } ; + + -- NP conjunction + +-- AndNP n1 n2 = ConjNP and_Conj (TwoNP n1 n2); + + + Drink = PresV2 (dirV2 drink_V) ; + Eat = PresV2 (dirV2 eat_V) ; + Bite = PresV2 (dirV2 bite_V) ; + Suck = PresV2 (dirV2 suck_V) ; + See = PresV2 (dirV2 see_V) ; + Hear = PresV2 (dirV2 hear_V) ; + Know = PresV2 (dirV2 know_V) ; + Smell = PresV2 (dirV2 smell_V) ; + Fear = PresV2 (dirV2 fear_V) ; + Kill = PresV2 (dirV2 kill_V) ; + Fight = PresV2 (dirV2 fight_V) ; + Hunt = PresV2 (dirV2 hunt_V) ; + Hit = PresV2 (dirV2 hit_V) ; + Cut = PresV2 (dirV2 cut_V) ; + Split = PresV2 (dirV2 split_V) ; + Stab = PresV2 (dirV2 stab_V) ; + Scratch = PresV2 (dirV2 scratch_V) ; + Hold = PresV2 (dirV2 hold_V) ; + Squeeze = PresV2 (dirV2 squeeze_V) ; + Rub = PresV2 (dirV2 rub_V) ; + Wash = PresV2 (dirV2 wash_V) ; + Wipe = PresV2 (dirV2 wipe_V) ; + Pull = PresV2 (dirV2 pull_V) ; + Push = PresV2 (dirV2 push_V) ; + Throw = PresV2 (dirV2 throw_V) ; + Tie = PresV2 (dirV2 tie_V) ; + Count = PresV2 (dirV2 count_V) ; + + Think = PresV think_V ; + Spit = PresV spit_V ; + Vomit = PresV vomit_V ; + Blow = PresV blow_V ; + Breathe = PresV breathe_V ; + Laugh = PresV laugh_V ; + Sleep = PresV sleep_V ; + Live = PresV live_V ; + Die = PresV die_V ; + Dig = PresV dig_V ; + Swim = PresV swim_V ; + Fly = PresV fly_V ; + Walk = PresV walk_V ; + Come = PresV come_V ; + Lie = PresReflV lie_V ; + Sit = PresReflV sit_V ; + Stand = PresReflV stand_V ; + Turn = PresV turn_V ; + Fall = PresV fall_V ; + Sing = PresV sing_V ; + Sew = PresV sew_V ; + Play = PresV play_V ; + Float = PresV float_V ; + Flow = PresV flow_V ; + Freeze = PresV freeze_V ; + Swell = PresV swell_V ; + Burn = PresV burn_V ; + + Give = PresV3 (dirV3 give_V dative) ; + +-- Say = ; + + The_One = DefOneNP ; + The_Many = DefNumNP NoNum ; + A = IndefOneNP ; + This = DetNP this_Det ; + That = DetNP that_Det ; + All = NDetNP all_NDet NoNum ; + Many = DetNP many_Det ; + Some_One = DetNP some_Det ; + Some_Many = NDetNP some_NDet NoNum ; + Few = DetNP few_Det ; + Other = DetNP other_Det ; + + One = IndefNumNP one_Num ; + Two = IndefNumNP two_Num ; + Three = IndefNumNP three_Num ; + Four = IndefNumNP four_Num ; + Five = IndefNumNP five_Num ; + + -- Pronouns + + I = i_NP ; + You_One = thou_NP ; + He = he_NP ; + We = we_NP ; + You_Many = you_NP ; + They = they_NP ; + + -- Nouns + + Woman = UseN woman_N ; + Man = UseN man_N ; + Person = UseN person_N ; + Child = UseN child_N ; + Wife = UseN wife_N ; + Husband = UseN husband_N ; + Mother = UseN mother_N ; + Father = UseN father_N ; + Animal = UseN animal_N ; + Fish = UseN fish_N ; + Bird = UseN bird_N ; + Dog = UseN dog_N ; + Louse = UseN louse_N ; + Snake = UseN snake_N ; + Worm = UseN worm_N ; + Tree = UseN tree_N ; + Forest = UseN forest_N ; + Stick = UseN stick_N ; + Fruit = UseN fruit_N ; + Seed = UseN seed_N ; + Leaf = UseN leaf_N ; + Root = UseN root_N ; + Bark = UseN bark_N ; + Flower = UseN flower_N ; + Grass = UseN grass_N ; + Rope = UseN rope_N ; + Skin = UseN skin_N ; + Meat = UseN meat_N ; + Blood = UseN blood_N ; + Bone = UseN bone_N ; + Fat = UseN fat_N ; + Egg = UseN egg_N ; + Horn = UseN horn_N ; + Tail = UseN tail_N ; + Feather = UseN feather_N ; + Hair = UseN hair_N ; + Head = UseN head_N ; + Ear = UseN ear_N ; + Eye = UseN eye_N ; + Nose = UseN nose_N ; + Mouth = UseN mouth_N ; + Tooth = UseN tooth_N ; + Tongue = UseN tongue_N ; + Fingernail = UseN fingernail_N ; + Foot = UseN foot_N ; + Leg = UseN leg_N ; + Knee = UseN knee_N ; + Hand = UseN hand_N ; + Wing = UseN wing_N ; + Belly = UseN belly_N ; + Guts = UseN guts_N ; + Neck = UseN neck_N ; + Back = UseN back_N ; + Breast = UseN breast_N ; + Heart = UseN heart_N ; + Liver = UseN liver_N ; + Sun = UseN sun_N ; + Moon = UseN moon_N ; + Star = UseN star_N ; + Water = UseN water_N ; + Rain = UseN rain_N ; + River = UseN river_N ; + Lake = UseN lake_N ; + Sea = UseN sea_N ; + Salt = UseN salt_N ; + Stone = UseN stone_N ; + Sand = UseN sand_N ; + Dust = UseN dust_N ; + Earth = UseN earth_N ; + Cloud = UseN cloud_N ; + Fog = UseN fog_N ; + Sky = UseN sky_N ; + Wind = UseN wind_N ; + Snow = UseN snow_N ; + Ice = UseN ice_N ; + Smoke = UseN smoke_N ; + Fire = UseN fire_N ; + Ashes = UseN ashes_N ; + Road = UseN road_N ; + Mountain = UseN mountain_N ; + Night = UseN night_N ; + Day = UseN day_N ; + Year = UseN year_N ; + Name = UseN name_N ; + +-- NameOf = AppN2 name_N2 ; + MotherOf = AppN2 (mkN2 mother_N genitive) ; + FatherOf = AppN2 (mkN2 father_N genitive) ; + + Big = ModPosA big_ADeg ; + Long = ModPosA long_ADeg ; + Wide = ModPosA wide_ADeg ; + Thick = ModPosA thick_ADeg ; + Heavy = ModPosA heavy_ADeg ; + Small = ModPosA small_ADeg ; + Short = ModPosA short_ADeg ; + Narrow = ModPosA narrow_ADeg ; + Thin = ModPosA thin_ADeg ; + Red = ModPosA red_ADeg ; + Green = ModPosA green_ADeg ; + Yellow = ModPosA yellow_ADeg ; + White = ModPosA white_ADeg ; + Black = ModPosA black_ADeg ; + Warm = ModPosA warm_ADeg ; + Cold = ModPosA cold_ADeg ; + Full = ModPosA full_ADeg ; + New = ModPosA new_ADeg ; + Old = ModPosA old_ADeg ; + Good = ModPosA good_ADeg ; + Bad = ModPosA bad_ADeg ; + Rotten = ModPosA rotten_ADeg ; + Dirty = ModPosA dirty_ADeg ; + Straight = ModPosA straight_ADeg ; + Round = ModPosA round_ADeg ; + Sharp = ModPosA sharp_ADeg ; + Dull = ModPosA dull_ADeg ; + Smooth = ModPosA smooth_ADeg ; + Wet = ModPosA wet_ADeg ; + Dry = ModPosA dry_ADeg ; + Correct = ModPosA correct_ADeg ; + Near = ModPosA near_ADeg ; +-- Far = ModPosA far_ADeg ; + + Right = ModAP (UseA right_A) ; + Left = ModAP (UseA left_A) ; + +} \ No newline at end of file diff --git a/examples/stoneage/StoneageResIta.gf b/examples/stoneage/StoneageResIta.gf new file mode 100644 index 000000000..d8b025004 --- /dev/null +++ b/examples/stoneage/StoneageResIta.gf @@ -0,0 +1,25 @@ +resource StoneageResIta = open RulesIta, SyntaxIta, ParadigmsIta in { + +oper + PresV : V -> NP -> Phr = \v,s -> PresCl (mkSats s v) ; + PresV2 : V2 -> NP -> NP -> Phr = \v,s,o -> + PresCl (mkSatsObject s v o) ; + PresV3 : V3 -> NP -> NP -> NP -> Phr = \v,s,o,r -> + PresCl (insertObject (mkSatsObject s v o) v.c3 v.s3 r) ; + PresVasV2 : V -> NP -> NP -> Phr = \ v -> PresV2 (dirV2 v) ; + + PresReflV : V -> NP -> Phr = \v,s -> + PresCl (insertObject (mkSats s v) accusative.p1 [] + (reflPronNounPhrase (pgen2gen s.g) s.n s.p)) ; + + PresCl : Sats -> Phr = \c -> + {s = (UseCl (PosTP TPresent ASimul) + (sats2clause c ** {lock_Cl = <>}) + ).s ! Ind ; + lock_Phr = <> + } ; + + ModPosA : ADeg -> CN -> CN = \a -> ModAP (PositADeg a) ; + ModA : A -> CN -> CN = \a -> ModAP (UseA a) ; + +} \ No newline at end of file diff --git a/lib/resource/french/SwadeshLexFre.gf b/lib/resource/french/SwadeshLexFre.gf index 547ab0b3b..fb817a893 100644 --- a/lib/resource/french/SwadeshLexFre.gf +++ b/lib/resource/french/SwadeshLexFre.gf @@ -131,7 +131,7 @@ concrete SwadeshLexFre of SwadeshLex = CategoriesFre grass_N = regN "herbe" feminine ; guts_N = regN "entraille" feminine ; hair_N = regN "cheveu" masculine ; - hand_N = regN "main" masculine ; + hand_N = regN "main" feminine ; head_N = regN "tête" feminine ; heart_N = regN "coeur" masculine ; horn_N = regN "corne" masculine ; @@ -148,7 +148,7 @@ concrete SwadeshLexFre of SwadeshLex = CategoriesFre moon_N = moon_N ; mother_N = UseN2 mother_N2 ; mountain_N = mountain_N ; - mouth_N = regN "bouche" masculine ; + mouth_N = regN "bouche" feminine ; name_N = regN "nom" masculine ; neck_N = mkN "cou" "cous" masculine ; night_N = regN "nuit" feminine ; @@ -221,7 +221,7 @@ concrete SwadeshLexFre of SwadeshLex = CategoriesFre say_V = UseV2 dire_V2 ; scratch_V = regV "gratter" ; see_V = UseV2 voir_V2 ; - sew_V = reg3V "semer" "sème" "sèmera" ; + sew_V = UseV2 coudre_V2 ; sing_V = regV "chanter" ; sit_V = UseV2 asseoir_V2 ; --- refl sleep_V = UseV2 dormir_V2 ; diff --git a/lib/resource/italian/SwadeshLexIta.gf b/lib/resource/italian/SwadeshLexIta.gf new file mode 100644 index 000000000..203e2fb57 --- /dev/null +++ b/lib/resource/italian/SwadeshLexIta.gf @@ -0,0 +1,246 @@ +--# -path=.:../abstract:../../prelude:../romance + +concrete SwadeshLexIta of SwadeshLex = CategoriesIta + ** open StructuralIta, RulesIta, SyntaxIta, ParadigmsIta, + BasicIta, Prelude in { + + lin + + -- Pronouns + + i_NP = i_NP ; + thou_NP = thou_NP ; + he_NP = he_NP ; + we_NP = we_NP ; + you_NP = you_NP ; + they_NP = they_NP ; + who8many_IP = who8many_IP ; + who8one_IP = who8one_IP ; + what8many_IP = what8many_IP ; + what8one_IP = what8one_IP ; + + -- Determiners + + this_Det = this_Det ; + that_Det = that_Det ; + all_NDet = all_NDet ; + many_Det = many_Det ; + some_Det = some_Det ; + few_Det = mkDeterminer Pl "pochi" "poche" ; + other_Det = mkDeterminer Pl "altri" "altre" ; + + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = justCase dative.p1 ; + in_Prep = StructuralIta.in_Prep ; + with_Prep = StructuralIta.with_Prep ; + + -- Numerals + + one_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))) ; + two_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_ADeg = bad_ADeg ; + big_ADeg = big_ADeg ; + black_ADeg = black_ADeg ; + cold_ADeg = cold_ADeg ; + correct_ADeg = regADeg "correto" ; + dirty_ADeg = dirty_ADeg ; + dry_ADeg = regADeg "secco" ; + dull_ADeg = regADeg "noioso" ; + far_ADeg = regADeg "lontano" ; + full_ADeg = regADeg "pieno" ; + good_ADeg = good_ADeg ; + green_ADeg = green_ADeg ; + heavy_ADeg = regADeg "pesante" ; + long_ADeg = long_ADeg ; + narrow_ADeg = narrow_ADeg ; + near_ADeg = regADeg "vicino" ; + new_ADeg = new_ADeg ; + old_ADeg = old_ADeg ; + red_ADeg = red_ADeg ; + rotten_ADeg = regADeg "marcio" ; + round_ADeg = regADeg "rotondo" ; + sharp_ADeg = regADeg "aguzzo" ; + short_ADeg = short_ADeg ; + small_ADeg = small_ADeg ; + smooth_ADeg = regADeg "liscio" ; + straight_ADeg = regADeg "diretto" ; + thick_ADeg = thick_ADeg ; + thin_ADeg = thin_ADeg ; + warm_ADeg = warm_ADeg ; + wet_ADeg = regADeg "bagnato" ; + white_ADeg = white_ADeg ; + wide_ADeg = regADeg "largo" ; + yellow_ADeg = yellow_ADeg ; + + left_A = regA "sinistro" ; + right_A = regA "destro" ; + + -- Nouns + + animal_N = regN "animale" ; + ashes_N = regN "cenere" ; + back_N = regN "schiena" ; + bark_N = regN "corteccia" ; + belly_N = regN "pancia" ; + bird_N = bird_N; + blood_N = regN "sangue" ; + bone_N = regN "osso" ; + breast_N = regN "seno" ; + child_N = child_N ; + cloud_N = regN "nuvola" ; + day_N = regN "giorno" ; + dog_N = dog_N ; + dust_N = regN "polvere" ; + ear_N = regN "orecchio" ; + earth_N = regN "terra" ; + egg_N = regN "oeuf" ;-- + eye_N = regN "occhio" ; + fat_N = regN "grasso" ; + father_N = UseN2 father_N2 ; + feather_N = regN "piuma" ; + fingernail_N = regN "unghia" ; + fire_N = regN "fuoco" ; + fish_N = fish_N ; + flower_N = regN "fiore" ; + fog_N = regN "nebbia" ; + foot_N = regN "piede" ; + forest_N = regN "bosco" ; + fruit_N = fruit_N ; + 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" ; + lake_N = lake_N ; + leaf_N = regN "foglia" ; + leg_N = regN "gamba" ; + liver_N = regN "fegato" ; + louse_N = regN "pidocchio" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + 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" ; + river_N = river_N ; + road_N = regN "strada" ; + root_N = femN (regN "radice") ; + rope_N = regN "corda" ; + salt_N = regN "sale" ; + sand_N = regN "sabbia" ; + sea_N = sea_N ; + seed_N = regN "seme" ; + skin_N = femN (regN "pelle") ; + sky_N = regN "cielo" ; + smoke_N = regN "fumo" ; + snake_N = snake_N ; + snow_N = femN (regN "neve") ; + star_N = star_N ; + stick_N = regN "bastone" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "coda" ; + tongue_N = regN "lingua" ; + tooth_N = regN "dente" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "donna" ; + wind_N = regN "vento" ; + wing_N = regN "ala" ; + woman_N = woman_N ; + worm_N = regN "verme" ; + year_N = regN "anno" ; + + -- Verbs + +-- bite_V = UseV2 mordre_V2 ;-- + blow_V = regV "soffiare" ; + breathe_V = regV "respirare" ; + burn_V = regV "bruciare" ; +-- come_V = venir_V ; + count_V = regV "contare" ; + cut_V = regV "tagliare" ; +-- die_V = mourir_V ; + dig_V = regV "scavare" ; +-- drink_V = UseV2 boire_V2 ;-- + eat_V = regV "mangiare" ; +-- fall_V = regV "cadere" ;-- +-- fear_V = UseV2 craindre_V2 ;-- + fight_V = regV "lottare" ; + float_V = regV "galleggiare" ; +-- flow_V = regV "fluire" ;-- + fly_V = regV "volare" ; + freeze_V = regV "gelare" ; +-- give_V = regV "dare" ;-- +-- hear_V = UseV2 entendre_V2 ;-- + hit_V = regV "colpire" ; +-- hold_V = UseV2 tenir_V2 ;-- + hunt_V = regV "cacciare" ; +-- kill_V = regV "uccidere" ;-- +-- know_V = UseV2 savoir_V2 ;-- +-- laugh_V = UseV2 rire_V2 ;-- +-- lie_V = UseV2 étendre_V2 ;-- +-- live_V = UseV2 vivre_V2 ;-- + play_V = regV "giocare" ; + pull_V = regV "tirare" ; +-- push_V = regV "spingere" ;-- + rub_V = regV "strofinare" ; +-- say_V = UseV2 dire_V2 ;-- + scratch_V = regV "graffiare" ; +-- see_V = UseV2 voir_V2 ;-- +-- sew_V = cucire-- + sing_V = regV "cantare" ; +-- sit_V = UseV2 asseoir_V2 ;-- --- refl +-- sleep_V = UseV2 dormir_V2 ;-- +-- smell_V = UseV2 sentir_V2 ;-- + spit_V = regV "sputare" ; +-- split_V = UseV2 dividere ;-- +-- squeeze_V = regV "spremere" ;-- + stab_V = regV "pugnalare" ; +-- stand_V = regV "stare" ;-- ---- in piedi + suck_V = regV "succhiare" ; + swell_V = regV "gonfiare" ; + swim_V = regV "nuotare" ; + think_V = regV "pensare" ; + throw_V = regV "gettare" ; + tie_V = regV "legare" ; + turn_V = regV "tornare" ; + vomit_V = regV "vomitare" ; + walk_V = regV "camminare" ; + wash_V = regV "lavare" ; + wipe_V = regV "asciugare" ; + +} \ No newline at end of file