From 6065e7373898cdf6c3a2178f778f8757d926019a Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 15 Jun 2006 16:24:09 +0000 Subject: [PATCH] adjustments in Paradigms ; lang-specific modules for all except Rus, Ara --- resource-1.0/Makefile | 42 +++++-- resource-1.0/arabic/ParadigmsAra.gf | 2 +- resource-1.0/danish/Danish.gf | 7 ++ resource-1.0/danish/DanishAbs.gf | 5 + resource-1.0/danish/ExtraDan.gf | 3 + resource-1.0/danish/ExtraDanAbs.gf | 7 ++ resource-1.0/danish/ExtraScandDan.gf | 2 + resource-1.0/danish/LexiconDan.gf | 40 +++---- resource-1.0/danish/ParadigmsDan.gf | 72 ++++++------ resource-1.0/doc/gfdoc/Adjective.html | 13 +-- resource-1.0/doc/gfdoc/Adverb.html | 13 +-- resource-1.0/doc/gfdoc/Cat.html | 48 ++++---- resource-1.0/doc/gfdoc/Common.html | 24 ++-- resource-1.0/doc/gfdoc/Conjunction.html | 24 ++-- resource-1.0/doc/gfdoc/Grammar.html | 13 +-- resource-1.0/doc/gfdoc/Idiom.html | 13 +-- resource-1.0/doc/gfdoc/Lang.html | 19 +--- resource-1.0/doc/gfdoc/Mathematical.html | 9 +- resource-1.0/doc/gfdoc/Multi.html | 9 +- resource-1.0/doc/gfdoc/Noun.html | 28 ++--- resource-1.0/doc/gfdoc/Numeral.html | 9 +- resource-1.0/doc/gfdoc/ParadigmsDan.html | 134 +++++++++-------------- resource-1.0/doc/gfdoc/ParadigmsEng.html | 133 ++++++++++------------ resource-1.0/doc/gfdoc/ParadigmsFin.html | 47 +++----- resource-1.0/doc/gfdoc/ParadigmsFre.html | 123 +++++++++------------ resource-1.0/doc/gfdoc/ParadigmsGer.html | 65 ++++------- resource-1.0/doc/gfdoc/ParadigmsIta.html | 128 ++++++++++------------ resource-1.0/doc/gfdoc/ParadigmsNor.html | 133 +++++++++------------- resource-1.0/doc/gfdoc/ParadigmsRus.html | 43 +++----- resource-1.0/doc/gfdoc/ParadigmsSpa.html | 122 +++++++++------------ resource-1.0/doc/gfdoc/ParadigmsSwe.html | 122 +++++++++------------ resource-1.0/doc/gfdoc/Phrase.html | 13 +-- resource-1.0/doc/gfdoc/Precedence.html | 6 +- resource-1.0/doc/gfdoc/Predef.html | 9 +- resource-1.0/doc/gfdoc/PredefAbs.html | 6 +- resource-1.0/doc/gfdoc/Predication.html | 32 +++--- resource-1.0/doc/gfdoc/Prelude.html | 36 +++--- resource-1.0/doc/gfdoc/Question.html | 13 +-- resource-1.0/doc/gfdoc/Relative.html | 9 +- resource-1.0/doc/gfdoc/Sentence.html | 32 +++--- resource-1.0/doc/gfdoc/Structural.html | 16 +-- resource-1.0/doc/gfdoc/Symbol.html | 20 ++-- resource-1.0/doc/gfdoc/Tense.html | 9 +- resource-1.0/doc/gfdoc/Text.html | 26 ++--- resource-1.0/doc/gfdoc/Verb.html | 24 ++-- resource-1.0/english/LexiconEng.gf | 41 ++++--- resource-1.0/english/ParadigmsEng.gf | 73 ++++++------ resource-1.0/finnish/ParadigmsFin.gf | 4 +- resource-1.0/french/ParadigmsFre.gf | 54 +++++---- resource-1.0/german/ParadigmsGer.gf | 5 +- resource-1.0/italian/ExtraIta.gf | 5 + resource-1.0/italian/ExtraItaAbs.gf | 6 + resource-1.0/italian/ExtraRomanceIta.gf | 2 + resource-1.0/italian/Italian.gf | 7 ++ resource-1.0/italian/ItalianAbs.gf | 5 + resource-1.0/italian/LexiconIta.gf | 2 +- resource-1.0/italian/ParadigmsIta.gf | 55 +++++----- resource-1.0/italian/StructuralIta.gf | 28 ++--- resource-1.0/norwegian/LexiconNor.gf | 38 +++---- resource-1.0/norwegian/ParadigmsNor.gf | 65 ++++++----- resource-1.0/romance/CatRomance.gf | 2 +- resource-1.0/russian/ParadigmsRus.gf | 8 +- resource-1.0/spanish/ExtraRomanceSpa.gf | 2 + resource-1.0/spanish/ExtraSpa.gf | 5 + resource-1.0/spanish/ExtraSpaAbs.gf | 6 + resource-1.0/spanish/LexiconSpa.gf | 2 +- resource-1.0/spanish/ParadigmsSpa.gf | 49 +++++---- resource-1.0/spanish/Spanish.gf | 7 ++ resource-1.0/spanish/SpanishAbs.gf | 5 + resource-1.0/spanish/StructuralSpa.gf | 22 ++-- resource-1.0/swedish/ExtraSweAbs.gf | 7 ++ resource-1.0/swedish/LexiconSwe.gf | 45 ++++---- resource-1.0/swedish/ParadigmsSwe.gf | 62 +++++------ 73 files changed, 1048 insertions(+), 1267 deletions(-) create mode 100644 resource-1.0/danish/Danish.gf create mode 100644 resource-1.0/danish/DanishAbs.gf create mode 100644 resource-1.0/danish/ExtraDan.gf create mode 100644 resource-1.0/danish/ExtraDanAbs.gf create mode 100644 resource-1.0/danish/ExtraScandDan.gf create mode 100644 resource-1.0/italian/ExtraIta.gf create mode 100644 resource-1.0/italian/ExtraItaAbs.gf create mode 100644 resource-1.0/italian/ExtraRomanceIta.gf create mode 100644 resource-1.0/italian/Italian.gf create mode 100644 resource-1.0/italian/ItalianAbs.gf create mode 100644 resource-1.0/spanish/ExtraRomanceSpa.gf create mode 100644 resource-1.0/spanish/ExtraSpa.gf create mode 100644 resource-1.0/spanish/ExtraSpaAbs.gf create mode 100644 resource-1.0/spanish/Spanish.gf create mode 100644 resource-1.0/spanish/SpanishAbs.gf create mode 100644 resource-1.0/swedish/ExtraSweAbs.gf diff --git a/resource-1.0/Makefile b/resource-1.0/Makefile index c00b6f79..1dc36527 100644 --- a/resource-1.0/Makefile +++ b/resource-1.0/Makefile @@ -1,8 +1,13 @@ -GF=../../bin/gf +GF=gf +RTS=+RTS -M800M -K100M +GFCC=$(GF) -nocf -make +GFC=$(GFCC) -src +GFCP=$(GFC) -preproc=./mkPresent -.PHONY: show-path all test pretest langs present mathematical multimodal compiled treebank stat gfdoc clean -all: show-path langs multimodal present mathematical compiled +.PHONY: show-path all test alltenses pretest langs present mathematical multimodal compiled treebank stat gfdoc clean + +all: show-path present alltenses langs multimodal mathematical compiled show-path: @echo GF_LIB_PATH=$(GF_LIB_PATH) @@ -13,13 +18,36 @@ test: pretest: echo "gr -cat=Cl -number=11 -prob | tb" | $(GF) -probs=lang.gfprob -path=present:prelude -nocf ../present/Lang???.gfc -langs: - echo "s ;; pm | wf langs.gfcm" | $(GF) -nocf -src */Lang??*.gf english/LangEng.gf +RTS -M800M -K100M +alltenses: +# $(GFC) arabic/LangAra.gf + $(GFC) danish/Danish.gf + $(GFC) english/English.gf + $(GFC) finnish/Finnish.gf + $(GFC) french/French.gf + $(GFC) german/German.gf + $(GFC) italian/Italian.gf + $(GFC) norwegian/Norwegian.gf + $(GFC) russian/LangRus.gf + $(GFC) spanish/Spanish.gf + $(GFC) swedish/Swedish.gf cp -p */*.gfc */*.gfr ../alltenses +langs: + echo "s ;; pm | wf langs.gfcm" | $(GFCC) -path=alltenses:prelude ../alltenses/Lang???.gfc $(RTS) + + present: - chmod u+x mkPresent - $(GF) -make -src -preproc=./mkPresent */Lang??*.gf +RTS -M800M -K100M +# $(GFCP) arabic/LangAra.gf + $(GFCP) danish/Danish.gf + $(GFCP) english/English.gf + $(GFCP) finnish/Finnish.gf + $(GFCP) french/French.gf + $(GFCP) german/German.gf + $(GFCP) italian/Italian.gf + $(GFCP) norwegian/Norwegian.gf + $(GFCP) russian/LangRus.gf + $(GFCP) spanish/Spanish.gf + $(GFCP) swedish/Swedish.gf mv */*.gfc */*.gfr ../present mathematical: diff --git a/resource-1.0/arabic/ParadigmsAra.gf b/resource-1.0/arabic/ParadigmsAra.gf index 65d9d345..cec7ffb7 100644 --- a/resource-1.0/arabic/ParadigmsAra.gf +++ b/resource-1.0/arabic/ParadigmsAra.gf @@ -2,7 +2,7 @@ --1 Arabic Lexical Paradigms -- --- Aarne Ranta 2003--2005 +-- Ali El Dada 2005--2006 -- -- This is an API to the user of the resource grammar -- for adding lexical items. It gives functions for forming diff --git a/resource-1.0/danish/Danish.gf b/resource-1.0/danish/Danish.gf new file mode 100644 index 00000000..6626048c --- /dev/null +++ b/resource-1.0/danish/Danish.gf @@ -0,0 +1,7 @@ +--# -path=.:../scandinavian:../abstract:../common:prelude + +concrete Danish of DanishAbs = + LangDan, + IrregDan - [fly_V], + ExtraDan + ** {} ; diff --git a/resource-1.0/danish/DanishAbs.gf b/resource-1.0/danish/DanishAbs.gf new file mode 100644 index 00000000..734717b6 --- /dev/null +++ b/resource-1.0/danish/DanishAbs.gf @@ -0,0 +1,5 @@ +abstract DanishAbs = + Lang, + IrregDanAbs - [fly_V], + ExtraDanAbs + ** {} ; diff --git a/resource-1.0/danish/ExtraDan.gf b/resource-1.0/danish/ExtraDan.gf new file mode 100644 index 00000000..28083b20 --- /dev/null +++ b/resource-1.0/danish/ExtraDan.gf @@ -0,0 +1,3 @@ +concrete ExtraDan of ExtraDanAbs = ExtraScandDan ** open CommonScand, ResDan in { + +} diff --git a/resource-1.0/danish/ExtraDanAbs.gf b/resource-1.0/danish/ExtraDanAbs.gf new file mode 100644 index 00000000..45ac7529 --- /dev/null +++ b/resource-1.0/danish/ExtraDanAbs.gf @@ -0,0 +1,7 @@ +-- Structures special for Danish. These are not implemented in other +-- Scandinavian languages. + +abstract ExtraDanAbs = ExtraScandAbs ** { + + +} \ No newline at end of file diff --git a/resource-1.0/danish/ExtraScandDan.gf b/resource-1.0/danish/ExtraScandDan.gf new file mode 100644 index 00000000..26fa8f39 --- /dev/null +++ b/resource-1.0/danish/ExtraScandDan.gf @@ -0,0 +1,2 @@ +concrete ExtraScandDan of ExtraScandAbs = CatDan ** ExtraScand with + (ResScand = ResDan) ; diff --git a/resource-1.0/danish/LexiconDan.gf b/resource-1.0/danish/LexiconDan.gf index 8c5b4da6..a7ed48bd 100644 --- a/resource-1.0/danish/LexiconDan.gf +++ b/resource-1.0/danish/LexiconDan.gf @@ -10,18 +10,18 @@ flags startcat=Phr ; lexer=textlit ; unlexer=text ; lin airplane_N = mk2N "fly" "flyet" ; - answer_V2S = mkV2S (regV "svare") "til" ; + answer_V2S = mkV2S (regV "svare") (mkPrep "til") ; apartment_N = mk2N "værelse" "værelsen" ; apple_N = mk3N "æble" "æblet" "æbler" ; art_N = mk2N "kunst" "kunsten" ; - ask_V2Q = mkV2Q spørge_V [] ; + ask_V2Q = mkV2Q spørge_V noPrep ; baby_N = mk2N "baby" "babyen" ; ---- babyen bad_A = regADeg "dårlig" ; ---- bank_N = mk2N "bank" "banken" ; beautiful_A = mk3ADeg "smuk" "smukt" "smukke" ; ---- become_VA = mkVA blive_V ; beer_N = mk2N "øl" "ølet" ; - beg_V2V = mkV2V bede_V [] "at" ; + beg_V2V = mkV2V bede_V noPrep (mkPrep "at") ; big_A = irregADeg "stor" "større" "størst"; bike_N = mkN "cykel" "cykeln" "cykler" "cyklerne" ; ---- bird_N = mk2N "fugl" "fuglen" ; @@ -35,7 +35,7 @@ lin bread_N = mk2N "brød" "brødet" ; break_V2 = dirV2 (mk2V "knuse" "knuste") ; broad_A = regADeg "bred" ; - brother_N2 = mkN2 (mk3N "broder" "brodren" "brødre") "til" ; ---- + brother_N2 = mkN2 (mk3N "broder" "brodren" "brødre") (mkPrep "til") ; ---- brown_A = regADeg "brun" ; butter_N = mk2N "smør" "smøret" ; buy_V2 = dirV2 (mk2V "købe" "købte") ; ---- @@ -62,17 +62,17 @@ lin cow_N = mk2N "ku" "kuen" ; ---- die_V = vaereV dø_V ; dirty_A = regADeg "smudsig" ; ---- - distance_N3 = mkN3 (regGenN "afstand" utrum) "fra" "til" ; + distance_N3 = mkN3 (regGenN "afstand" utrum) (mkPrep "fra") (mkPrep "til") ; doctor_N = mk2N "læge" "lægen" ; dog_N = mk2N "hund" "hunden" ; door_N = mk2N "dør" "døren" ; drink_V2 = dirV2 drikke_V ; - easy_A2V = mkA2V (regA "nem") "for" ; ---- + easy_A2V = mkA2V (regA "nem") (mkPrep "for") ; ---- eat_V2 = dirV2 (mk2V "spise" "spiste") ; empty_A = mkADeg "tøm" "tømt" "tømme" "tømmere" "tømmest" ; ---- enemy_N = mk2N "fjende" "fjenden" ; factory_N = mk2N "fabrik" "fabriken" ; - father_N2 = mkN2 ( (mk3N "far" "fadren" "fædre")) "til" ; ---- + father_N2 = mkN2 ( (mk3N "far" "fadren" "fædre")) (mkPrep "til") ; ---- fear_VS = mkVS (regV "frygte") ; find_V2 = dirV2 (irregV "finde" "fand" "fundet") ; ---- fish_N = mk2N "fisk" "fisken" ; @@ -109,19 +109,19 @@ lin learn_V2 = dirV2 (mk2V "lære" "lærte") ; leather_N = mk2N "læder" "lædret" ; leave_V2 = dirV2 forlade_V ; - like_V2 = mkV2 holde_V "af" ; + like_V2 = mkV2 holde_V (mkPrep "af") ; listen_V2 = dirV2 (regV "lytte") ; live_V = mk2V "leve" "levde" ; long_A = irregADeg "lang" "længere" "længst" ; ---- lose_V2 = dirV2 (regV "tabe") ; love_N = mk2N "kærlighed" "kærligheden" ; love_V2 = dirV2 (regV "elske") ; - man_N = mk3N "mand" "manden" "mænd" ; ---- - married_A2 = mkA2 (mk2A "gift" "gift") "med" ; + man_N = mkN "mand" "manden" "mænd" "mændene" ; + married_A2 = mkA2 (mk2A "gift" "gift") (mkPrep "med") ; meat_N = mk2N "kød" "kødet" ; milk_N = mk2N "mælk" "mælken" ; moon_N = mk2N "måne" "månen" ; - mother_N2 = mkN2 (mkN "moder" "moderen" "mødre" "mødrene") "til" ; ---- + mother_N2 = mkN2 (mkN "moder" "moderen" "mødre" "mødrene") (mkPrep "til") ; ---- mountain_N = mk2N "bjerg" "bjerget" ; music_N = mk2N "musik" "musiken" ; narrow_A = regADeg "smal" ; @@ -130,9 +130,9 @@ lin oil_N = mk2N "olie" "olien" ; old_A = mkADeg "gammel" "gammelt" "gamle" "ældre" "ældst" ; ---- open_V2 = dirV2 (regV "åbne") ; - paint_V2A = mkV2A (regV "male") [] ; + paint_V2A = mkV2A (regV "male") noPrep ; paper_N = mk2N "papir" "papiret" ; - paris_PN = regPN "Paris" neutrum ; + paris_PN = mkPN "Paris" neutrum ; peace_N = mk2N "fred" "freden" ; pen_N = mk2N "pen" "penen" ; planet_N = mk2N "planet" "planeten" ; @@ -158,9 +158,9 @@ lin science_N = mk2N "videnskab" "videnskaben" ; sea_N = mk2N "hav" "havet" ; see_V2 = dirV2 se_V ; - seek_V2 = mkV2 (mk2V "søge" "søgte") "efter" ; - sell_V3 = dirV3 sælge_V "til" ; - send_V3 = dirV3 (mk2V "sende" "sendte") "til" ; + seek_V2 = mkV2 (mk2V "søge" "søgte") (mkPrep "efter") ; + sell_V3 = dirV3 sælge_V (mkPrep "til") ; + send_V3 = dirV3 (mk2V "sende" "sendte") (mkPrep "til") ; sheep_N = mk2N "får" "fåret" ; ship_N = mk2N "skib" "skibet" ; shirt_N = mk2N "skjorte" "skjorten" ; @@ -184,7 +184,7 @@ lin switch8off_V2 = dirV2 (partV (regV "lukke") "for") ; switch8on_V2 = dirV2 (partV (regV "lukke") "op") ; table_N = mk2N "bord" "bordet" ; - talk_V3 = mkV3 (regV "tale") "til" "om" ; + talk_V3 = mkV3 (regV "tale") (mkPrep "til") (mkPrep "om") ; teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ; teach_V2 = dirV2 (mk2V "undervise" "underviste") ; television_N = mk2N "fjernsyn" "fjernsynet" ; @@ -198,11 +198,11 @@ lin understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ; university_N = mk2N "universitet" "universitetet" ; village_N = mk2N "landsby" "landsbyen" ; - wait_V2 = mkV2 (regV "vente") "på" ; + wait_V2 = mkV2 (regV "vente") (mkPrep "på") ; walk_V = vaereV gå_V ; warm_A = regADeg "varm" ; war_N = mk2N "krig" "krigen" ; - watch_V2 = mkV2 se_V "på" ; + watch_V2 = mkV2 se_V (mkPrep "på") ; water_N = mk2N "vand" "vandet" ; white_A = regADeg "hvid" ; window_N = mkN "vindue" "vinduet" "vinduer" "vinduene" ; ---- er? @@ -219,7 +219,7 @@ lin now_Adv = mkAdv "nu" ; already_Adv = mkAdv "allerede" ; song_N = mk2N "sang" "sangen" ; - add_V3 = mkV3 (regV "tilføje") [] "til" ; ---- + add_V3 = mkV3 (regV "tilføje") noPrep (mkPrep "til") ; ---- number_N = mk2N "nummer" "numret" ; ---- put_V2 = dirV2 sætte_V ; stop_V = vaereV (regV "standse") ; diff --git a/resource-1.0/danish/ParadigmsDan.gf b/resource-1.0/danish/ParadigmsDan.gf index c38810bd..bc571882 100644 --- a/resource-1.0/danish/ParadigmsDan.gf +++ b/resource-1.0/danish/ParadigmsDan.gf @@ -59,7 +59,8 @@ oper -- Prepositions used in many-argument functions are just strings. - Preposition : Type = Str ; + mkPrep : Str -> Prep ; + noPrep : Prep ; -- empty string --2 Nouns @@ -100,19 +101,20 @@ oper -- -- Relational nouns ("daughter of x") need a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common preposition is "av", and the following is a -- shortcut for regular, $nonhuman$ relational nouns with "av". regN2 : Str -> Gender -> N2 ; --- Use the function $mkPreposition$ or see the section on prepositions below to +-- Use the function $mkPrep$ or see the section on prepositions below to -- form other prepositions. -- --- Three-place relational nouns ("the connection from x to y") need two prepositions. +-- Three-place relational nouns ("the connection from x to y") +-- need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -127,7 +129,8 @@ oper -- -- Proper names, with a regular genitive, are formed as follows - regPN : Str -> Gender -> PN ; -- John, John's + mkPN : Str -> Gender -> PN ; -- Paris neutrum + regPN : Str -> PN ; -- utrum gender -- Sometimes you can reuse a common noun as a proper name, e.g. "Bank". @@ -156,7 +159,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; -- Comparison adjectives may need as many as five forms. @@ -194,11 +197,6 @@ oper mkAdA : Str -> AdA ; ---2 Prepositions --- --- A preposition is just a string. - - mkPreposition : Str -> Preposition ; --2 Verbs -- @@ -249,7 +247,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -258,8 +256,8 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Str -> Str -> V3 ; -- speak, with, about - dirV3 : V -> Str -> V3 ; -- give,_,to + mkV3 : V -> Prep -> Prep -> V3 ; -- speak, with, about + dirV3 : V -> Prep -> V3 ; -- give,_,to dirdirV3 : V -> V3 ; -- give,_,_ --3 Other complement patterns @@ -269,18 +267,18 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Str -> V2S ; + mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; - mkV2V : V -> Str -> Str -> V2V ; + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Str -> V2A ; + mkV2A : V -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Str -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Str -> A2S ; + mkA2S : A -> Prep -> A2S ; mkAV : A -> AV ; - mkA2V : A -> Str -> A2V ; + mkA2V : A -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -290,12 +288,13 @@ oper V0, V2S, V2V, V2A, V2Q : Type ; AS, A2S, AV, A2V : Type ; +--. --2 Definitions of the paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. + Gender = MorphoDan.Gender ; Number = MorphoDan.Number ; @@ -307,6 +306,14 @@ oper nominative = Nom ; genitive = Gen ; + Preposition : Type = Str ; -- obsolete + + mkPreposition : Str -> Prep ; -- obsolete + mkPreposition = mkPrep ; + + mkPrep p = {s = p ; lock_Prep = <>} ; + noPrep = mkPrep [] ; + mkN x y z u = mkSubstantive x y z u ** {g = extNGen y ; lock_N = <>} ; regN x = regGenN x Utr ; @@ -330,11 +337,12 @@ oper mk3N x y z = let u = ifTok Str x z "ene" "ne" in mkN x y z (z + u) ; - mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ; + mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ; regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ; - mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; + mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ; - regPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ; + mkPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ; + regPN n = mkPN n utrum ; nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ; mkNP x y n g = {s = table {NPPoss _ => x ; _ => y} ; a = agrP3 g n ; @@ -344,7 +352,7 @@ oper mk2A a b = mkA a b (a + "e") ; regA a = (regADeg a) ** {lock_A = <>} ; - mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ; + mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ; mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ; @@ -368,8 +376,6 @@ oper mkAdV x = ss x ** {lock_AdV = <>} ; mkAdA x = ss x ** {lock_AdA = <>} ; - mkPreposition p = p ; - mkV a b c d e f = mkVerb6 a b c d e f ** {part = [] ; vtype = VAct ; lock_V = <> ; isVaere = False} ; @@ -418,12 +424,12 @@ oper s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <> } ; - mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ; - dirV2 v = mkV2 v [] ; + mkV2 v p = v ** {c2 = p.s ; lock_V2 = <>} ; + dirV2 v = mkV2 v (mkPrep []) ; - mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ; - dirV3 v p = mkV3 v [] p ; - dirdirV3 v = dirV3 v [] ; + mkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ; + dirV3 v p = mkV3 v noPrep p ; + dirdirV3 v = dirV3 v noPrep ; mkV0 v = v ** {lock_V0 = <>} ; mkVS v = v ** {lock_VS = <>} ; diff --git a/resource-1.0/doc/gfdoc/Adjective.html b/resource-1.0/doc/gfdoc/Adjective.html index fb54a7e1..b164fc12 100644 --- a/resource-1.0/doc/gfdoc/Adjective.html +++ b/resource-1.0/doc/gfdoc/Adjective.html @@ -2,21 +2,16 @@ - Adjectives and adjectival phrases + Adjective: Adjectives and Adjectival Phrases -

Adjectives and adjectival phrases

+

Adjective: Adjectives and Adjectival Phrases

-Author:
-Last update: Tue Jun 13 11:42:38 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Adjectives and adjectival phrases

     abstract Adjective = Cat ** {
     
diff --git a/resource-1.0/doc/gfdoc/Adverb.html b/resource-1.0/doc/gfdoc/Adverb.html
index 2dd71c97..2f707f31 100644
--- a/resource-1.0/doc/gfdoc/Adverb.html
+++ b/resource-1.0/doc/gfdoc/Adverb.html
@@ -2,21 +2,16 @@
 
 
 
- Adverbs and adverbial phrases
+ Adverb: Adverbs and Adverbial Phrases
 
-

Adverbs and adverbial phrases

+

Adverb: Adverbs and Adverbial Phrases

-Author:
-Last update: Tue Jun 13 11:42:38 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Adverbs and adverbial phrases

     abstract Adverb = Cat ** {
     
diff --git a/resource-1.0/doc/gfdoc/Cat.html b/resource-1.0/doc/gfdoc/Cat.html
index f047efd4..25ac5597 100644
--- a/resource-1.0/doc/gfdoc/Cat.html
+++ b/resource-1.0/doc/gfdoc/Cat.html
@@ -2,31 +2,27 @@
 
 
 
- The category system
+ Cat: the Category System
 
-

The category system

+

Cat: the Category System

-Author:
-Last update: Tue Jun 13 11:42:38 2006 +Last update: 2006-06-15 09:19:39 CEST


-


@@ -36,8 +32,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The category system

The category system is central to the library in the sense that the other modules (Adjective, Adverb, Noun, Verb etc) @@ -64,7 +58,7 @@ are defined on Conjunction and only used locally there. cat

- +

Sentences and clauses

Constructed in Sentence, and also in @@ -79,7 +73,7 @@ Constructed in Sentence, and also in Imp ; -- imperative e.g. "look at this"

- +

Questions and interrogatives

Constructed in Question. @@ -91,7 +85,7 @@ Constructed in Question. IDet ; -- interrogative determiner e.g. "which"

- +

Relative clauses and pronouns

Constructed in Relative. @@ -101,7 +95,7 @@ Constructed in Relative. RP ; -- relative pronoun e.g. "in which"

- +

Verb phrases

Constructed in Verb. @@ -111,7 +105,7 @@ Constructed in Verb. Comp ; -- complement of copula, such as AP e.g. "very warm"

- +

Adjectival phrases

Constructed in Adjective. @@ -120,7 +114,7 @@ Constructed in Adjective. AP ; -- adjectival phrase e.g. "very warm"

- +

Nouns and noun phrases

Constructed in Noun. @@ -147,7 +141,7 @@ as defined in Noun. Ord ; -- ordinal number (used in Det) e.g. "seventh"

- +

Numerals

Constructed in Numeral. @@ -156,7 +150,7 @@ Constructed in Numeral. Numeral;-- cardinal or ordinal, e.g. "five/fifth"

- +

Structural words

Constructed in Structural. @@ -168,7 +162,7 @@ Constructed in Structural. Prep ; -- preposition, or just case e.g. "in"

- +

Words of open classes

These are constructed in Lexicon and in diff --git a/resource-1.0/doc/gfdoc/Common.html b/resource-1.0/doc/gfdoc/Common.html index c6a9669a..8fc32086 100644 --- a/resource-1.0/doc/gfdoc/Common.html +++ b/resource-1.0/doc/gfdoc/Common.html @@ -2,25 +2,21 @@ - Infrastructure with common implementations. + Common: Structures with Common Implementations. -

Infrastructure with common implementations.

+

Common: Structures with Common Implementations.

-Author:
-Last update: Tue Jun 13 11:42:38 2006 +Last update: 2006-06-15 09:19:39 CEST


-


@@ -30,8 +26,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Infrastructure with common implementations.

This module defines the categories that uniformly have the linearization {s : Str} in all languages. @@ -48,7 +42,7 @@ Romance languages. cat

- +

Top-level units

Constructed in Text: Text. @@ -74,7 +68,7 @@ Constructed in Sentence: SC ; -- embedded sentence or question e.g. "that it rains"

- +

Adverbs

Constructed in Adverb. @@ -89,7 +83,7 @@ Many adverbs are constructed in Structural. CAdv ; -- comparative adverb e.g. "more"

- +

Tense, polarity, and anteriority

         Tense ; -- tense: present, past, future, conditional
diff --git a/resource-1.0/doc/gfdoc/Conjunction.html b/resource-1.0/doc/gfdoc/Conjunction.html
index 48f5b2b3..18246dd7 100644
--- a/resource-1.0/doc/gfdoc/Conjunction.html
+++ b/resource-1.0/doc/gfdoc/Conjunction.html
@@ -2,25 +2,21 @@
 
 
 
- Coordination
+ Conjunction: Coordination
 
-

Coordination

+

Conjunction: Coordination

-Author:
-Last update: Tue Jun 13 11:42:39 2006 +Last update: 2006-06-15 09:19:39 CEST


-


@@ -30,8 +26,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Coordination

Coordination is defined for many different categories; here is a sample. The rules apply to lists of two or more elements, @@ -51,7 +45,7 @@ compatibility with API 0.9 is needed, use abstract Conjunction = Cat ** {

- +

Rules

       fun
@@ -66,7 +60,7 @@ compatibility with API 0.9 is needed, use
         DConjAdv : DConj -> [Adv] -> Adv; -- "both badly and slowly"
 

- +

Categories

These categories are only used in this module. @@ -79,7 +73,7 @@ These categories are only used in this module. [AP]{2} ;

- +

List constructors

The list constructors are derived from the list notation and therefore diff --git a/resource-1.0/doc/gfdoc/Grammar.html b/resource-1.0/doc/gfdoc/Grammar.html index f68e408b..b4c131f8 100644 --- a/resource-1.0/doc/gfdoc/Grammar.html +++ b/resource-1.0/doc/gfdoc/Grammar.html @@ -2,21 +2,16 @@ - The Main Module of the Resource Grammar + Grammar: the Main Module of the Resource Grammar -

The Main Module of the Resource Grammar

+

Grammar: the Main Module of the Resource Grammar

-Author:
-Last update: Tue Jun 13 11:42:39 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The Main Module of the Resource Grammar

This grammar a collection of the different grammar modules, To test the resource, import Lang, which also contains diff --git a/resource-1.0/doc/gfdoc/Idiom.html b/resource-1.0/doc/gfdoc/Idiom.html index 665fb764..e808d2c2 100644 --- a/resource-1.0/doc/gfdoc/Idiom.html +++ b/resource-1.0/doc/gfdoc/Idiom.html @@ -2,21 +2,16 @@ - Idiomatic expressions + Idiom: Idiomatic Expressions -

Idiomatic expressions

+

Idiom: Idiomatic Expressions

-Author:
-Last update: Tue Jun 13 11:42:39 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Idiomatic expressions

     abstract Idiom = Cat ** {
 
diff --git a/resource-1.0/doc/gfdoc/Lang.html b/resource-1.0/doc/gfdoc/Lang.html index 751aa89e..fc916718 100644 --- a/resource-1.0/doc/gfdoc/Lang.html +++ b/resource-1.0/doc/gfdoc/Lang.html @@ -2,21 +2,16 @@ - The Main Module of the Resource Grammar + Lang: a Test Module for the Resource Grammar -

The Main Module of the Resource Grammar

+

Lang: a Test Module for the Resource Grammar

-Author:
-Last update: Tue Jun 13 11:42:40 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,12 +20,10 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The Main Module of the Resource Grammar

-This grammar is just a collection of the different modules, -and the one that can be imported when one wants to test the -grammar. A module without a lexicon is Grammar, +This grammar is for testing the resource as included in the +language-independent API, consisting of a grammar and a lexicon. +The grammar without a lexicon is Grammar, which may be more suitable to open in applications.

diff --git a/resource-1.0/doc/gfdoc/Mathematical.html b/resource-1.0/doc/gfdoc/Mathematical.html
index 83e6bf82..70ef813a 100644
--- a/resource-1.0/doc/gfdoc/Mathematical.html
+++ b/resource-1.0/doc/gfdoc/Mathematical.html
@@ -6,17 +6,12 @@
 
 

The Mathematics API to the Resource Grammar

-Author:
-Last update: Tue Jun 13 11:42:44 2006 +Last update: 2006-02-28 09:26:58 CET


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The Mathematics API to the Resource Grammar

This grammar is a collection of the different modules. It differs from Lang in two main ways: diff --git a/resource-1.0/doc/gfdoc/Multi.html b/resource-1.0/doc/gfdoc/Multi.html index 4b1e2b9a..e94882d8 100644 --- a/resource-1.0/doc/gfdoc/Multi.html +++ b/resource-1.0/doc/gfdoc/Multi.html @@ -6,17 +6,12 @@

Multimodal additions to the resource grammar library

-Author:
-Last update: Tue Jun 13 11:42:44 2006 +Last update: 2006-05-24 15:08:56 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Multimodal additions to the resource grammar library

     abstract Multi = Lang ** {
     
diff --git a/resource-1.0/doc/gfdoc/Noun.html b/resource-1.0/doc/gfdoc/Noun.html
index 87c0d9e8..90b866dd 100644
--- a/resource-1.0/doc/gfdoc/Noun.html
+++ b/resource-1.0/doc/gfdoc/Noun.html
@@ -2,26 +2,22 @@
 
 
 
- The construction of nouns, noun phrases, and determiners
+ Noun: Nouns, noun phrases, and determiners
 
-

The construction of nouns, noun phrases, and determiners

+

Noun: Nouns, noun phrases, and determiners

-Author:
-Last update: Tue Jun 13 11:42:40 2006 +Last update: 2006-06-15 09:19:39 CEST


-


@@ -31,13 +27,11 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The construction of nouns, noun phrases, and determiners

     abstract Noun = Cat ** {
 

- +

Noun phrases

The three main types of noun phrases are @@ -72,7 +66,7 @@ verb or by an adverb. AdvNP : NP -> Adv -> NP ; -- Paris at midnight

- +

Determiners

The determiner has a fine-grained structure, in which a 'nucleus' @@ -166,7 +160,7 @@ in semantically odd expressions.

Other determiners are defined in Structural.

- +

Common nouns

Simple nouns can be used as nouns outright. @@ -212,7 +206,7 @@ to decide. Sentential complements are defined in Verb. SentCN : CN -> SC -> CN ; -- fact that John smokes, question if he does

- +

Apposition

This is certainly overgenerating. diff --git a/resource-1.0/doc/gfdoc/Numeral.html b/resource-1.0/doc/gfdoc/Numeral.html index 2139cd31..6406bf1a 100644 --- a/resource-1.0/doc/gfdoc/Numeral.html +++ b/resource-1.0/doc/gfdoc/Numeral.html @@ -6,17 +6,12 @@

Numerals

-Author:
-Last update: Tue Jun 13 11:42:40 2006 +Last update: 2006-01-25 12:10:58 CET


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Numerals

This grammar defines numerals from 1 to 999999. The implementations are adapted from the diff --git a/resource-1.0/doc/gfdoc/ParadigmsDan.html b/resource-1.0/doc/gfdoc/ParadigmsDan.html index 72b0a5bc..81267511 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsDan.html +++ b/resource-1.0/doc/gfdoc/ParadigmsDan.html @@ -2,64 +2,50 @@ + Danish Lexical Paradigms +

Danish Lexical Paradigms

+Last update: 2006-06-15 14:44:29 CEST


-


-Author: -Last update: Tue Jun 13 11:42:42 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../scandinavian:../common:../abstract:../../prelude -

- -

Danish Lexical Paradigms

-

Aarne Ranta 2003

@@ -97,7 +83,7 @@ words. CatDan in {

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -134,10 +120,11 @@ To abstract over case names, we define the following. Prepositions used in many-argument functions are just strings.

-      Preposition : Type = Str ;
+      mkPrep : Str -> Prep ;
+      noPrep : Prep ;         -- empty string
 

- +

Nouns

Worst case: give all four forms. The gender is computed from the @@ -180,19 +167,19 @@ indefinite mk3N : (bil,bilen,biler : Str) -> N ;

- +

Compound nouns

All the functions above work quite as well to form compound nouns, such as fotboll.

- +

Relational nouns

Relational nouns (daughter of x) need a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -204,17 +191,18 @@ shortcut for regular, nonhuman relational nouns with av.

-Use the function mkPreposition or see the section on prepositions below to +Use the function mkPrep or see the section on prepositions below to form other prepositions.

-Three-place relational nouns (the connection from x to y) need two prepositions. +Three-place relational nouns (the connection from x to y) +need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a @@ -222,13 +210,14 @@ relational noun (e.g. the old town hall of). However, N2 and N3 are purely lexical categories. But you can use the AdvCN and PrepNP constructions to build phrases like this.

- +

Proper names and noun phrases

Proper names, with a regular genitive, are formed as follows

-      regPN : Str -> Gender -> PN ;          -- John, John's
+      mkPN  : Str -> Gender -> PN ;          -- Paris neutrum
+      regPN : Str -> PN ;                    -- utrum gender
 

@@ -246,7 +235,7 @@ genitive, you can use the worst-case function. mkNP : Str -> Str -> Number -> Gender -> NP ;

- +

Adjectives

Non-comparison one-place adjectives need three forms: @@ -269,13 +258,13 @@ In most cases, two forms are enough. mk2A : (stor,stort : Str) -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

@@ -316,7 +305,7 @@ long adjective, the following pattern is used: compoundA : A -> A ; -- -/mer/mest norsk

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -334,16 +323,7 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- -

Prepositions

-

-A preposition is just a string. -

-
-      mkPreposition : Str -> Preposition ;
-
-

- +

Verbs

The worst case needs six forms. @@ -374,7 +354,7 @@ In practice, it is enough to give three forms, as in school books. irregV : (drikke, drakk, drukket : Str) -> V ;

- +

Verbs with //være// as auxiliary

By default, the auxiliary is have. This function changes it to være. @@ -383,7 +363,7 @@ By default, the auxiliary is have. This function changes it to v vaereV : V -> V ;

- +

Verbs with a particle

The particle, such as in switch on, is given as a string. @@ -392,7 +372,7 @@ The particle, such as in switch on, is given as a string. partV : V -> Str -> V ;

- +

Deponent verbs

Some words are used in passive forms only, e.g. hoppas, some as @@ -403,31 +383,31 @@ reflexive e.g. reflV : V -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Str -> Str -> V3 ;    -- speak, with, about
-      dirV3    : V -> Str -> V3 ;           -- give,_,to
+      mkV3     : V -> Prep -> Prep -> V3 ;    -- speak, with, about
+      dirV3    : V -> Prep -> V3 ;           -- give,_,to
       dirdirV3 : V -> V3 ;                  -- give,_,_
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -436,18 +416,18 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Str -> V2S ;
+      mkV2S : V -> Prep -> V2S ;
       mkVV  : V -> VV ;
-      mkV2V : V -> Str -> Str -> V2V ;
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Str -> V2A ;
+      mkV2A : V -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Str -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Str -> A2S ;
+      mkA2S : A -> Prep -> A2S ;
       mkAV  : A -> AV ;
-      mkA2V : A -> Str -> A2V ;
+      mkA2V : A -> Prep -> A2V ;
 

@@ -461,12 +441,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

Definitions of the paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsEng.html b/resource-1.0/doc/gfdoc/ParadigmsEng.html index 8d3ba8d2..884d264f 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsEng.html +++ b/resource-1.0/doc/gfdoc/ParadigmsEng.html @@ -2,63 +2,50 @@ + English Lexical Paradigms +

English Lexical Paradigms

+Last update: 2006-06-15 16:21:43 CEST


-


-Author: -Last update: Tue Jun 13 11:42:42 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../abstract:../../prelude:../common -

- -

English Lexical Paradigms

-

Aarne Ranta 2003--2005

@@ -97,7 +84,7 @@ The following modules are presupposed: in {

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -133,12 +120,9 @@ To abstract over case names, we define the following.

Prepositions are used in many-argument functions for rection. +The resource category Prep is used.

-
-      Preposition : Type ;
-
-

- +

Nouns

Worst case: give all four forms and the semantic gender. @@ -172,7 +156,7 @@ function: genderN : Gender -> N -> N ;

- +

Compound nouns

A compound noun ia an uninflected string attached to an inflected noun, @@ -182,13 +166,13 @@ such as baby boom, chief executive officer. compoundN : Str -> N -> N ;

- +

Relational nouns

Relational nouns (daughter of x) need a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -200,34 +184,35 @@ shortcut for regular relational nouns with of.

-Use the function mkPreposition or see the section on prepositions below to +Use the function mkPrep or see the section on prepositions below to form other prepositions.

Three-place relational nouns (the connection from x to y) need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a relational noun (e.g. the old town hall of).

-      cnN2 : CN -> Preposition -> N2 ;
-      cnN3 : CN -> Preposition -> Preposition -> N3 ;
+      cnN2 : CN -> Prep -> N2 ;
+      cnN3 : CN -> Prep -> Prep -> N3 ;
 

- +

Proper names and noun phrases

Proper names, with a regular genitive, are formed as follows

-      regPN : Str -> Gender -> PN ;          -- John, John's
+      regPN    : Str -> PN ;          
+      regGenPN : Str -> Gender -> PN ;     -- John, John's
 

@@ -245,7 +230,7 @@ genitive, you can use the worst-case function. mkNP : Str -> Str -> Number -> Gender -> NP ;

- +

Adjectives

Non-comparison one-place adjectives need two forms: one for @@ -263,13 +248,13 @@ even for cases with the variation happy - happily. regA : Str -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

@@ -313,7 +298,7 @@ From a given ADeg, it is possible to get back to A. adegA : ADeg -> A ;

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -331,21 +316,21 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- +

Prepositions

A preposition as used for rection in the lexicon, as well as to build PPs in the resource API, just requires a string.

-      mkPreposition : Str -> Preposition ;
-      mkPrep        : Str -> Prep ;
+      mkPrep : Str -> Prep ;
+      noPrep : Prep ;
 

(These two functions are synonyms.)

- +

Verbs

Except for be, the worst case needs five forms: the infinitive and @@ -384,7 +369,7 @@ duplication in the present participle. irregDuplV : (get, got, gotten : Str) -> V ;

- +

Verbs with a particle.

The particle, such as in switch on, is given as a string. @@ -393,7 +378,7 @@ The particle, such as in switch on, is given as a string. partV : V -> Str -> V ;

- +

Reflexive verbs

By default, verbs are not reflexive; this function makes them that. @@ -402,31 +387,31 @@ By default, verbs are not reflexive; this function makes them that. reflV : V -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Preposition -> Preposition -> V3 ; -- speak, with, about
-      dirV3    : V -> Preposition -> V3 ;                -- give,_,to
-      dirdirV3 : V -> V3 ;                               -- give,_,_
+      mkV3     : V -> Prep -> Prep -> V3 ;   -- speak, with, about
+      dirV3    : V -> Prep -> V3 ;           -- give,_,to
+      dirdirV3 : V -> V3 ;                   -- give,_,_
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -435,18 +420,18 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Str -> V2S ;
+      mkV2S : V -> Prep -> V2S ;
       mkVV  : V -> VV ;
-      mkV2V : V -> Str -> Str -> V2V ;
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Str -> V2A ;
+      mkV2A : V -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Str -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Str -> A2S ;
+      mkA2S : A -> Prep -> A2S ;
       mkAV  : A -> AV ;
-      mkA2V : A -> Str -> A2V ;
+      mkA2V : A -> Prep -> A2V ;
 

@@ -460,12 +445,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

Definitions of paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsFin.html b/resource-1.0/doc/gfdoc/ParadigmsFin.html index f7922bc5..dd81e391 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsFin.html +++ b/resource-1.0/doc/gfdoc/ParadigmsFin.html @@ -2,48 +2,36 @@ + Finnish Lexical Paradigms +

Finnish Lexical Paradigms

+Last update: 2006-06-15 15:06:49 CEST


-


-Author: -Last update: Tue Jun 13 11:42:42 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../abstract:../common:../../prelude -

- -

Finnish Lexical Paradigms

-

Aarne Ranta 2003--2005

@@ -89,7 +77,7 @@ flags optimize=all ; flags optimize=noexpand ;

- +

Parameters

To abstract over gender, number, and (some) case names, @@ -129,7 +117,7 @@ just a case, or a pre/postposition and a case. casePrep : Case -> Prep ; -- adessive

- +

Nouns

The worst case gives ten forms and the semantic gender. @@ -325,11 +313,12 @@ Proper names can be formed by using declensions for nouns. The plural forms are filtered away by the compiler.

+      regPN : Str -> PN ;
       mkPN  : N -> PN ;
       mkNP  : N -> Number -> NP ; 
 

- +

Adjectives

Non-comparison one-place adjectives are just like nouns. @@ -361,7 +350,7 @@ The regular adjectives are based on regN in the positive. regA : (punainen : Str) -> A ;

- +

Verbs

The grammar does not cover the potential mood and some nominal @@ -467,7 +456,7 @@ But this is taken care of by ClauseFin. dirV2 : V -> V2 ;

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which @@ -479,7 +468,7 @@ the first one or both can be absent. dirdirV3 : V -> V3 ; -- acc, allat

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -513,10 +502,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsFre.html b/resource-1.0/doc/gfdoc/ParadigmsFre.html index 51c1b1fc..58847f94 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsFre.html +++ b/resource-1.0/doc/gfdoc/ParadigmsFre.html @@ -2,61 +2,48 @@ + French Lexical Paradigms +

French Lexical Paradigms

+Last update: 2006-06-15 15:08:18 CEST


-


-Author: -Last update: Tue Jun 13 11:42:43 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../romance:../common:../abstract:../../prelude -

- -

French Lexical Paradigms

-

Aarne Ranta 2003

@@ -96,7 +83,7 @@ words. flags optimize=all ;

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -126,16 +113,14 @@ amalgamate with the following word (the 'genitive' de and the 'dative' à).

-      Preposition : Type ;
+      accusative : Prep ;
+      genitive   : Prep ;
+      dative     : Prep ;
     
-      accusative : Preposition ;
-      genitive   : Preposition ;
-      dative     : Preposition ;
-    
-      mkPreposition : Str -> Preposition ;
+      mkPrep : Str -> Prep ;
 

- +

Nouns

Worst case: give both two forms and the gender. @@ -165,7 +150,7 @@ Adding gender information widens the scope of the foregoing function. regGenN : Str -> Gender -> N ;

- +

Compound nouns

Some nouns are ones where the first part is inflected as a noun but @@ -177,13 +162,13 @@ they are frequent in lexica. compN : N -> Str -> N ;

- +

Relational nouns

Relational nouns (fille de x) need a case and a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -199,10 +184,10 @@ with the empty preposition. Three-place relational nouns (la connection de x à y) need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a @@ -210,13 +195,15 @@ relational noun (e.g. the old town hall of). However, N2 and N3 are purely lexical categories. But you can use the AdvCN and PrepNP constructions to build phrases like this.

- +

Proper names and noun phrases

Proper names need a string and a gender.

-      mkPN : Str -> Gender -> PN ;          -- Jean
+      mkPN  : Str -> Gender -> PN ;    -- Jean
+    
+      regPN : Str -> PN ;              -- masculine
 

@@ -227,7 +214,7 @@ you can use the worst-case function. mkNP : Str -> Gender -> Number -> NP ;

- +

Adjectives

Non-comparison one-place adjectives need four forms in the worst @@ -258,16 +245,16 @@ provided. prefA : A -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

- +

Comparison adjectives

Comparison adjectives are in the worst case put up from two @@ -293,7 +280,7 @@ provided. prefA : A -> A ;

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -317,7 +304,7 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- +

Verbs

Irregular verbs are given in the module VerbsFre. @@ -354,14 +341,14 @@ To change it to reflV : V -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 
@@ -373,19 +360,19 @@ You can reuse a V2 verb in V. v2V : V2 -> V ;

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Preposition -> Preposition -> V3 ; -- parler, à, de
-      dirV3    : V -> Preposition -> V3 ;                -- donner,_,à
-      dirdirV3 : V -> V3 ;                               -- donner,_,_
+      mkV3     : V -> Prep -> Prep -> V3 ;  -- parler, à, de
+      dirV3    : V -> Prep -> V3 ;          -- donner,_,à
+      dirdirV3 : V -> V3 ;                  -- donner,_,_
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -394,20 +381,20 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Preposition -> V2S ;
+      mkV2S : V -> Prep -> V2S ;
       mkVV  : V -> VV ;  -- plain infinitive: "je veux parler"
       deVV  : V -> VV ;  -- "j'essaie de parler"
       aVV   : V -> VV ;  -- "j'arrive à parler"
-      mkV2V : V -> Preposition -> Preposition -> V2V ;
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Preposition -> Preposition -> V2A ;
+      mkV2A : V -> Prep -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Preposition -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Preposition -> A2S ;
-      mkAV  : A -> Preposition -> AV ;
-      mkA2V : A -> Preposition -> Preposition -> A2V ;
+      mkA2S : A -> Prep -> A2S ;
+      mkAV  : A -> Prep -> AV ;
+      mkA2V : A -> Prep -> Prep -> A2V ;
 

@@ -421,12 +408,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

Definitions of the paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsGer.html b/resource-1.0/doc/gfdoc/ParadigmsGer.html index ef042f88..e10d4a88 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsGer.html +++ b/resource-1.0/doc/gfdoc/ParadigmsGer.html @@ -2,55 +2,42 @@ + German Lexical Paradigms +

German Lexical Paradigms

+Last update: 2006-06-15 14:53:14 CEST


-


-Author: -Last update: Tue Jun 13 11:42:43 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../common:../abstract:../../prelude -

- -

German Lexical Paradigms

-

Aarne Ranta & Harald Hammarström 2003--2006

@@ -86,7 +73,7 @@ words. in {

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -122,7 +109,7 @@ To abstract over number names, we define the following. plural : Number ;

- +

Nouns

Worst case: give all four singular forms, two plural forms (others + dative), @@ -172,7 +159,7 @@ Three-place relational nouns (die Verbindung von x nach y) need two prepo mkN3 : N -> Prep -> Prep -> N3 ;

- +

Proper names and noun phrases

Proper names, with a regular genitive, are formed as follows @@ -183,7 +170,7 @@ The regular genitive is s, omitted after s. regPN : (Johann : Str) -> PN ; -- Johann, Johanns ; Johannes, Johannes

- +

Adjectives

Adjectives need three forms, one for each degree. @@ -214,7 +201,7 @@ Two-place adjectives are formed by adding a preposition to an adjective. mkA2 : A -> Prep -> A2 ;

- +

Adverbs

Adverbs are just strings. @@ -223,7 +210,7 @@ Adverbs are just strings. mkAdv : Str -> Adv ;

- +

Prepositions

A preposition is formed from a string and a case. @@ -249,7 +236,7 @@ A couple of common prepositions (always with the dative). zu_Prep : Prep ;

- +

Verbs

The worst-case constructor needs six forms: @@ -312,7 +299,7 @@ Reflexive verbs can take reflexive pronouns of different cases. reflV : V -> Case -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object @@ -325,7 +312,7 @@ Two-place verbs need a preposition, except the special case with direct object datV2 : V -> V2 ;

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which @@ -337,7 +324,7 @@ the first one or both can be absent. accdatV3 : V -> V3 ; -- give,_,_

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -371,12 +358,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

Definitions of paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsIta.html b/resource-1.0/doc/gfdoc/ParadigmsIta.html index a81f78bc..1b928060 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsIta.html +++ b/resource-1.0/doc/gfdoc/ParadigmsIta.html @@ -2,61 +2,48 @@ + Italian Lexical Paradigms +

Italian Lexical Paradigms

+Last update: 2006-06-15 16:38:46 CEST


-


-Author: -Last update: Tue Jun 13 11:42:43 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../romance:../common:../abstract:../../prelude -

- -

Italian Lexical Paradigms

-

Aarne Ranta 2003

@@ -97,7 +84,7 @@ words. flags optimize=all ;

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -127,16 +114,16 @@ amalgamate with the following word (the 'genitive' de and the 'dative' à).

-      Preposition : Type ;
+      Prep : Type ;
     
-      accusative : Preposition ;
-      genitive   : Preposition ;
-      dative     : Preposition ;
+      accusative : Prep ;
+      genitive   : Prep ;
+      dative     : Prep ;
     
-      mkPreposition : Str -> Preposition ;
+      mkPrep : Str -> Prep ;
 

- +

Nouns

Worst case: give both two forms and the gender. @@ -163,7 +150,7 @@ To force a different gender, use one of the following functions. femN : N -> N ;

- +

Compound nouns

Some nouns are ones where the first part is inflected as a noun but @@ -175,13 +162,13 @@ they are frequent in lexica. compN : N -> Str -> N ;

- +

Relational nouns

Relational nouns (figlio di x) need a case and a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -197,10 +184,10 @@ with the empty preposition. Three-place relational nouns (la connessione di x a y) need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a @@ -208,13 +195,14 @@ relational noun (e.g. the old town hall of). However, N2 and N3 are purely lexical categories. But you can use the AdvCN and PrepNP constructions to build phrases like this.

- +

Proper names and noun phrases

Proper names need a string and a gender.

-      mkPN : Str -> Gender -> PN ;          -- Jean
+      mkPN  : Str -> Gender -> PN ;
+      regPN : Str -> PN ;             -- masculine
 

@@ -225,7 +213,7 @@ you can use the worst-case function. mkNP : Str -> Gender -> Number -> NP ;

- +

Adjectives

Non-comparison one-place adjectives need five forms in the worst @@ -253,16 +241,16 @@ provided. prefA : A -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

- +

Comparison adjectives

Comparison adjectives are in the worst case put up from two @@ -288,7 +276,7 @@ with comparison by plus. regADeg : Str -> A ;

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -312,7 +300,7 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- +

Verbs

Regular verbs are ones with the infinitive er or ir, the @@ -343,14 +331,14 @@ Reflexive implies essere. reflV : V -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 
@@ -362,19 +350,19 @@ You can reuse a V2 verb in V. v2V : V2 -> V ;

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Preposition -> Preposition -> V3 ; -- parler, à, de
-      dirV3    : V -> Preposition -> V3 ;                -- donner,_,à
-      dirdirV3 : V -> V3 ;                               -- donner,_,_
+      mkV3     : V -> Prep -> Prep -> V3 ; -- parlare, a, di
+      dirV3    : V -> Prep -> V3 ;         -- dare,_,a
+      dirdirV3 : V -> V3 ;                 -- dare,_,_
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -383,20 +371,20 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Preposition -> V2S ;
-      mkVV  : V -> VV ;  -- plain infinitive: "je veux parler"
-      deVV  : V -> VV ;  -- "j'essaie de parler"
-      aVV   : V -> VV ;  -- "j'arrive à parler"
-      mkV2V : V -> Preposition -> Preposition -> V2V ;
+      mkV2S : V -> Prep -> V2S ;
+      mkVV  : V -> VV ;  -- plain infinitive: "voglio parlare"
+      deVV  : V -> VV ;  -- "cerco di parlare"
+      aVV   : V -> VV ;  -- "arrivo a parlare"
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Preposition -> Preposition -> V2A ;
+      mkV2A : V -> Prep -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Preposition -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Preposition -> A2S ;
-      mkAV  : A -> Preposition -> AV ;
-      mkA2V : A -> Preposition -> Preposition -> A2V ;
+      mkA2S : A -> Prep -> A2S ;
+      mkAV  : A -> Prep -> AV ;
+      mkA2V : A -> Prep -> Prep -> A2V ;
 

@@ -410,12 +398,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

The definitions of the paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsNor.html b/resource-1.0/doc/gfdoc/ParadigmsNor.html index 9608ffdb..22f67f43 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsNor.html +++ b/resource-1.0/doc/gfdoc/ParadigmsNor.html @@ -2,64 +2,50 @@ + Norwegian Lexical Paradigms +

Norwegian Lexical Paradigms

+Last update: 2006-06-15 15:58:53 CEST


-


-Author: -Last update: Tue Jun 13 11:42:43 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../scandinavian:../common:../abstract:../../prelude -

- -

Norwegian Lexical Paradigms

-

Aarne Ranta 2003

@@ -97,7 +83,7 @@ words. CatNor in {

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -135,10 +121,11 @@ To abstract over case names, we define the following. Prepositions used in many-argument functions are just strings.

-      Preposition : Type = Str ;
+      mkPrep : Str -> Prep ;
+      noPrep : Prep ;        -- empty string
 

- +

Nouns

Worst case: give all four forms. The gender is computed from the @@ -174,19 +161,19 @@ gender is computed from the definite form. mk2N : (bil,bilen : Str) -> N ;

- +

Compound nouns

All the functions above work quite as well to form compound nouns, such as fotboll.

- +

Relational nouns

Relational nouns (daughter of x) need a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -198,17 +185,17 @@ shortcut for regular, nonhuman relational nouns with av.

-Use the function mkPreposition or see the section on prepositions below to +Use the function mkPrep or see the section on prepositions below to form other prepositions.

Three-place relational nouns (the connection from x to y) need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a @@ -216,13 +203,14 @@ relational noun (e.g. the old town hall of). However, N2 and N3 are purely lexical categories. But you can use the AdvCN and PrepNP constructions to build phrases like this.

- +

Proper names and noun phrases

Proper names, with a regular genitive, are formed as follows

-      regPN : Str -> Gender -> PN ;          -- John, John's
+      regPN    : Str -> PN ;            -- utrum
+      regGenPN : Str -> Gender -> PN ;  
 

@@ -240,7 +228,7 @@ genitive, you can use the worst-case function. mkNP : Str -> Str -> Number -> Gender -> NP ;

- +

Adjectives

Non-comparison one-place adjectives need three forms: @@ -263,13 +251,13 @@ In most cases, two forms are enough. mk2A : (stor,stort : Str) -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

@@ -310,7 +298,7 @@ long adjective, the following pattern is used: compoundA : A -> A ; -- -/mer/mest norsk

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -328,16 +316,7 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- -

Prepositions

-

-A preposition is just a string. -

-
-      mkPreposition : Str -> Preposition ;
-
-

- +

Verbs

The worst case needs six forms. @@ -368,7 +347,7 @@ In practice, it is enough to give three forms, as in school books. irregV : (drikke, drakk, drukket : Str) -> V ;

- +

Verbs with //være// as auxiliary

By default, the auxiliary is have. This function changes it to være. @@ -377,7 +356,7 @@ By default, the auxiliary is have. This function changes it to v vaereV : V -> V ;

- +

Verbs with a particle.

The particle, such as in switch on, is given as a string. @@ -386,7 +365,7 @@ The particle, such as in switch on, is given as a string. partV : V -> Str -> V ;

- +

Deponent verbs.

Some words are used in passive forms only, e.g. hoppas, some as @@ -397,31 +376,31 @@ reflexive e.g. reflV : V -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Str -> Str -> V3 ;    -- speak, with, about
-      dirV3    : V -> Str -> V3 ;           -- give,_,to
-      dirdirV3 : V -> V3 ;                  -- give,_,_
+      mkV3     : V -> Prep -> Prep -> V3 ;    -- speak, with, about
+      dirV3    : V -> Prep -> V3 ;            -- give,_,to
+      dirdirV3 : V -> V3 ;                    -- give,_,_
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -430,18 +409,18 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Str -> V2S ;
+      mkV2S : V -> Prep -> V2S ;
       mkVV  : V -> VV ;
-      mkV2V : V -> Str -> Str -> V2V ;
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Str -> V2A ;
+      mkV2A : V -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Str -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Str -> A2S ;
+      mkA2S : A -> Prep -> A2S ;
       mkAV  : A -> AV ;
-      mkA2V : A -> Str -> A2V ;
+      mkA2V : A -> Prep -> A2V ;
 

@@ -455,12 +434,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

Definitions of the paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsRus.html b/resource-1.0/doc/gfdoc/ParadigmsRus.html index 97d85fbf..db97b8cd 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsRus.html +++ b/resource-1.0/doc/gfdoc/ParadigmsRus.html @@ -2,45 +2,33 @@ + Russian Lexical Paradigms +

Russian Lexical Paradigms

+Last update: 2006-06-15 16:42:18 CEST


-


-Author: -Last update: Tue Jun 13 11:42:43 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../abstract:../../prelude:../common -

- -

Russian Lexical Paradigms

-

Janna Khegai 2003--2005

@@ -82,7 +70,7 @@ The following modules are presupposed: flags coding=utf8 ;

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -122,7 +110,7 @@ To abstract over number names, we define the following. plural : Number ;

- +

Nouns

Best case: indeclinabe nouns: кофе, пальто, ВУЗ. @@ -221,6 +209,7 @@ Proper names.

       mkPN  : Str -> Gender -> Animacy -> PN ;          -- "Иван", "Маша"
+      regPN : Str -> PN ;
       nounPN : N -> PN ;
 

@@ -233,7 +222,7 @@ On the top level, it is maybe CN that is used rather than N

- +

Adjectives

Non-comparison (only positive degree) one-place adjectives need 28 (4 by 7) @@ -297,7 +286,7 @@ On top level, there are adjectival phrases. The most common case is just to use a one-place adjective. ap : A -> IsPostfixAdj -> AP ;

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -307,7 +296,7 @@ after the verb. Some can be preverbal (e.g. always). mkAdv : Str -> Adv ;

- +

Verbs

In our lexicon description (Verbum) there are 62 forms: @@ -395,10 +384,6 @@ a particle can be included in a V. tvDirDir : V -> V3 ;

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsSpa.html b/resource-1.0/doc/gfdoc/ParadigmsSpa.html index f4ea81d3..7374df77 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsSpa.html +++ b/resource-1.0/doc/gfdoc/ParadigmsSpa.html @@ -2,61 +2,48 @@ + Spanish Lexical Paradigms +

Spanish Lexical Paradigms

+Last update: 2006-06-15 16:29:51 CEST


-


-Author: -Last update: Tue Jun 13 11:42:43 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../romance:../common:../abstract:../../prelude -

- -

Spanish Lexical Paradigms

-

Aarne Ranta 2003

@@ -94,7 +81,7 @@ escape to construct the most irregular words of type C. flags optimize=all ;

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -124,16 +111,16 @@ amalgamate with the following word (the 'genitive' de and the 'dative' à).

-      Preposition : Type ;
+      Prep : Type ;
     
-      accusative : Preposition ;
-      genitive   : Preposition ;
-      dative     : Preposition ;
+      accusative : Prep ;
+      genitive   : Prep ;
+      dative     : Prep ;
     
-      mkPreposition : Str -> Preposition ;
+      mkPrep : Str -> Prep ;
 

- +

Nouns

Worst case: two forms (singular + plural), @@ -164,7 +151,7 @@ To force a different gender, use one of the following functions. femN : N -> N ;

- +

Compound nouns

Some nouns are ones where the first part is inflected as a noun but @@ -176,13 +163,13 @@ they are frequent in lexica. compN : N -> Str -> N ;

- +

Relational nouns

Relational nouns (fille de x) need a case and a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -198,10 +185,10 @@ with the empty preposition. Three-place relational nouns (la connessione di x a y) need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a @@ -209,13 +196,14 @@ relational noun (e.g. the old town hall of). However, N2 and N3 are purely lexical categories. But you can use the AdvCN and PrepNP constructions to build phrases like this.

- +

Proper names and noun phrases

Proper names need a string and a gender.

-      mkPN : Str -> Gender -> PN ;          -- Jean
+      mkPN  : Str -> Gender -> PN ;         -- Jean
+      regPN : Str -> PN ;                   -- masculine
 

@@ -226,7 +214,7 @@ you can use the worst-case function. mkNP : Str -> Gender -> Number -> NP ;

- +

Adjectives

Non-comparison one-place adjectives need five forms in the worst @@ -255,16 +243,16 @@ provided. prefA : A -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

- +

Comparison adjectives

Comparison adjectives are in the worst case put up from two @@ -290,7 +278,7 @@ with comparison by mas. regADeg : Str -> A ;

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -314,7 +302,7 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- +

Verbs

Regular verbs are ones inflected like cortar, deber, or vivir. @@ -350,14 +338,14 @@ in masculine singular form as second argument. special_ppV : V -> Str -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 
@@ -369,19 +357,19 @@ You can reuse a V2 verb in V. v2V : V2 -> V ;

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Preposition -> Preposition -> V3 ; -- parler, à, de
-      dirV3    : V -> Preposition -> V3 ;                -- donner,_,à
-      dirdirV3 : V -> V3 ;                               -- donner,_,_
+      mkV3     : V -> Prep -> Prep -> V3 ;   -- parler, à, de
+      dirV3    : V -> Prep -> V3 ;           -- donner,_,à
+      dirdirV3 : V -> V3 ;                   -- donner,_,_
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -390,20 +378,20 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Preposition -> V2S ;
+      mkV2S : V -> Prep -> V2S ;
       mkVV  : V -> VV ;  -- plain infinitive: "je veux parler"
       deVV  : V -> VV ;  -- "j'essaie de parler"
       aVV   : V -> VV ;  -- "j'arrive à parler"
-      mkV2V : V -> Preposition -> Preposition -> V2V ;
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Preposition -> Preposition -> V2A ;
+      mkV2A : V -> Prep -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Preposition -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Preposition -> A2S ;
-      mkAV  : A -> Preposition -> AV ;
-      mkA2V : A -> Preposition -> Preposition -> A2V ;
+      mkA2S : A -> Prep -> A2S ;
+      mkAV  : A -> Prep -> AV ;
+      mkA2V : A -> Prep -> Prep -> A2V ;
 

@@ -417,12 +405,6 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- -

The definitions of the paradigms

-

-The definitions should not bother the user of the API. So they are -hidden from the document. -

diff --git a/resource-1.0/doc/gfdoc/ParadigmsSwe.html b/resource-1.0/doc/gfdoc/ParadigmsSwe.html index 662e8042..8e2cf156 100644 --- a/resource-1.0/doc/gfdoc/ParadigmsSwe.html +++ b/resource-1.0/doc/gfdoc/ParadigmsSwe.html @@ -2,63 +2,50 @@ + Swedish Lexical Paradigms +

Swedish Lexical Paradigms

+Last update: 2006-06-15 16:03:55 CEST


-


-Author: -Last update: Tue Jun 13 11:42:44 2006 -

-

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

-# -path=.:../scandinavian:../common:../abstract:../../prelude -

- -

Swedish Lexical Paradigms

-

Aarne Ranta 2003

@@ -96,7 +83,7 @@ words. CatSwe in {

- +

Parameters

To abstract over gender names, we define the following identifiers. @@ -133,10 +120,11 @@ To abstract over case names, we define the following. Prepositions used in many-argument functions are just strings.

-      Preposition : Type = Str ;
+      mkPrep : Str -> Prep ;
+      noPrep : Prep ;         -- empty string
 

- +

Nouns

Worst case: give all four forms. The gender is computed from the @@ -179,19 +167,19 @@ It does not work if there are changes in the stem. mk1N : (bilarna : Str) -> N ;

- +

Compound nouns

All the functions above work quite as well to form compound nouns, such as fotboll.

- +

Relational nouns

Relational nouns (daughter of x) need a preposition.

-      mkN2 : N -> Preposition -> N2 ;
+      mkN2 : N -> Prep -> N2 ;
 

@@ -210,10 +198,10 @@ form other prepositions. Three-place relational nouns (the connection from x to y) need two prepositions.

-      mkN3 : N -> Preposition -> Preposition -> N3 ;
+      mkN3 : N -> Prep -> Prep -> N3 ;
 

- +

Relational common noun phrases

In some cases, you may want to make a complex CN into a @@ -221,13 +209,14 @@ relational noun (e.g. the old town hall of). However, N2 and N3 are purely lexical categories. But you can use the AdvCN and PrepNP constructions to build phrases like this.

- +

Proper names and noun phrases

Proper names, with a regular genitive, are formed as follows

-      regPN : Str -> Gender -> PN ;          -- John, John's
+      regGenPN : Str -> Gender -> PN ;
+      regPN    : Str -> PN ;            -- utrum
 

@@ -245,7 +234,7 @@ genitive, you can use the worst-case function. mkNP : Str -> Str -> Number -> Gender -> NP ;

- +

Adjectives

Adjectives may need as many as seven forms. @@ -284,16 +273,16 @@ Comparison forms may be compound (mera svensk - mest svensk). compoundA : A -> A ;

- +

Two-place adjectives

Two-place adjectives need a preposition for their second argument.

-      mkA2 : A -> Preposition -> A2 ;
+      mkA2 : A -> Prep -> A2 ;
 

- +

Adverbs

Adverbs are not inflected. Most lexical ones have position @@ -311,16 +300,7 @@ Adverbs modifying adjectives and sentences can also be formed. mkAdA : Str -> AdA ;

- -

Prepositions

-

-A preposition is just a string. -

-
-      mkPreposition : Str -> Preposition ;
-
-

- +

Verbs

The worst case needs five forms. @@ -358,7 +338,7 @@ In practice, it is enough to give three forms, as in school books. irregV : (dricka, drack, druckit : Str) -> V ;

- +

Verbs with a particle.

The particle, such as in passa på, is given as a string. @@ -367,7 +347,7 @@ The particle, such as in passa p partV : V -> Str -> V ;

- +

Deponent verbs.

Some words are used in passive forms only, e.g. hoppas, some as @@ -378,31 +358,31 @@ reflexive e.g. reflV : V -> V ;

- +

Two-place verbs

Two-place verbs need a preposition, except the special case with direct object. (transitive verbs). Notice that a particle comes from the V.

-      mkV2  : V -> Preposition -> V2 ;
+      mkV2  : V -> Prep -> V2 ;
     
       dirV2 : V -> V2 ;
 

- +

Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

-      mkV3     : V -> Preposition -> Preposition -> V3 ; -- tala med om
-      dirV3    : V -> Preposition -> V3 ;                -- ge _ till
+      mkV3     : V -> Prep -> Prep -> V3 ; -- tala med om
+      dirV3    : V -> Prep -> V3 ;                -- ge _ till
       dirdirV3 : V -> V3 ;                               -- ge _ _
 

- +

Other complement patterns

Verbs and adjectives can take complements such as sentences, @@ -411,18 +391,18 @@ questions, verb phrases, and adjectives.

       mkV0  : V -> V0 ;
       mkVS  : V -> VS ;
-      mkV2S : V -> Str -> V2S ;
+      mkV2S : V -> Prep -> V2S ;
       mkVV  : V -> VV ;
-      mkV2V : V -> Str -> Str -> V2V ;
+      mkV2V : V -> Prep -> Prep -> V2V ;
       mkVA  : V -> VA ;
-      mkV2A : V -> Str -> V2A ;
+      mkV2A : V -> Prep -> V2A ;
       mkVQ  : V -> VQ ;
-      mkV2Q : V -> Str -> V2Q ;
+      mkV2Q : V -> Prep -> V2Q ;
     
       mkAS  : A -> AS ;
-      mkA2S : A -> Str -> A2S ;
+      mkA2S : A -> Prep -> A2S ;
       mkAV  : A -> AV ;
-      mkA2V : A -> Str -> A2V ;
+      mkA2V : A -> Prep -> A2V ;
 

@@ -436,7 +416,7 @@ as an adverb. Likewise AS, A2S, AV, A2V are just A. AS, A2S, AV, A2V : Type ;

- +

Definitions of the paradigms

The definitions should not bother the user of the API. So they are diff --git a/resource-1.0/doc/gfdoc/Phrase.html b/resource-1.0/doc/gfdoc/Phrase.html index 7102c652..bc9bae55 100644 --- a/resource-1.0/doc/gfdoc/Phrase.html +++ b/resource-1.0/doc/gfdoc/Phrase.html @@ -2,21 +2,16 @@ - Phrases and utterances + Phrase: Phrases and Utterances -

Phrases and utterances

+

Phrase: Phrases and Utterances

-Author:
-Last update: Tue Jun 13 11:42:40 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Phrases and utterances

     abstract Phrase = Cat ** {
 
diff --git a/resource-1.0/doc/gfdoc/Precedence.html b/resource-1.0/doc/gfdoc/Precedence.html index 378255b7..63b42152 100644 --- a/resource-1.0/doc/gfdoc/Precedence.html +++ b/resource-1.0/doc/gfdoc/Precedence.html @@ -13,8 +13,7 @@

-Author: -Last update: Tue Jun 13 11:42:45 2006 +Last update: 2005-11-23 09:16:18 CET

Produced by @@ -22,9 +21,6 @@ gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-== -

-

operations for precedence-dependent strings. five levels: p4 (constants), p3 (applications), p2 (products), p1 (sums), p0 (arrows) diff --git a/resource-1.0/doc/gfdoc/Predef.html b/resource-1.0/doc/gfdoc/Predef.html index 3256d722..60a36d44 100644 --- a/resource-1.0/doc/gfdoc/Predef.html +++ b/resource-1.0/doc/gfdoc/Predef.html @@ -6,17 +6,12 @@

Predefined functions for concrete syntax

-Author:
-Last update: Tue Jun 13 11:42:45 2006 +Last update: 2006-02-27 09:41:31 CET


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Predefined functions for concrete syntax

The definitions of these constants are hard-coded in GF, and defined in AppPredefined.hs. Applying diff --git a/resource-1.0/doc/gfdoc/PredefAbs.html b/resource-1.0/doc/gfdoc/PredefAbs.html index 393042e4..8bd03dae 100644 --- a/resource-1.0/doc/gfdoc/PredefAbs.html +++ b/resource-1.0/doc/gfdoc/PredefAbs.html @@ -13,17 +13,13 @@


-Author: -Last update: Tue Jun 13 11:42:45 2006 +Last update: 2006-06-02 17:49:44 CEST

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

-

-== -

     abstract PredefAbs = {
       cat Int ; String ; Float ; 
diff --git a/resource-1.0/doc/gfdoc/Predication.html b/resource-1.0/doc/gfdoc/Predication.html
index a1c9022b..3278694a 100644
--- a/resource-1.0/doc/gfdoc/Predication.html
+++ b/resource-1.0/doc/gfdoc/Predication.html
@@ -6,24 +6,20 @@
 
 

A Small Predication Library

-Author:
-Last update: Tue Jun 13 11:42:44 2006 +Last update: 2006-02-28 09:26:58 CET


-


@@ -33,8 +29,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

A Small Predication Library

(c) Aarne Ranta 2003-2006 under Gnu GPL.

@@ -46,7 +40,7 @@ API of resource grammars. abstract Predication = Cat ** {

- +

The category of atomic sentences

We want to use sentences in positive and negative forms but do not care about @@ -58,7 +52,7 @@ tenses. NegCl : Cl -> S ; -- negative sentence: "x doesn't intersect y"

- +

Predication patterns.

       predV     : V  -> NP -> Cl ;         -- one-place verb:      "x converges"
@@ -76,14 +70,14 @@ tenses.
       predPrep  : Prep -> NP -> NP -> Cl ; -- preposition:         "x is outside y"
 

- +

Imperatives and infinitives.

       impV2     : V2 -> NP -> Phr ;        -- imperative:          "solve the equation E"
       infV2     : V2 -> NP -> Phr ;        -- infinitive:          "to solve the equation E"
 

- +

Individual-valued function applications

       appN2     : N2 -> NP -> NP ;         -- one-place function:  "the successor of x"
@@ -91,7 +85,7 @@ tenses.
       appColl   : N2 -> NP -> NP -> NP ;   -- collective function: "the sum of x and y"
 

- +

Families of types

These are expressed by relational nouns applied to arguments. @@ -102,7 +96,7 @@ These are expressed by relational nouns applied to arguments. famColl : N2 -> NP -> NP -> CN ; -- collective family: "path between x and y"

- +

Type constructor

This is similar to a family except that the argument is a type. diff --git a/resource-1.0/doc/gfdoc/Prelude.html b/resource-1.0/doc/gfdoc/Prelude.html index f354cecb..6f1bbde2 100644 --- a/resource-1.0/doc/gfdoc/Prelude.html +++ b/resource-1.0/doc/gfdoc/Prelude.html @@ -6,25 +6,21 @@

The GF Prelude

-Author:
-Last update: Tue Jun 13 11:42:46 2006 +Last update: 2006-02-27 09:41:31 CET


-


@@ -34,8 +30,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The GF Prelude

This file defines some prelude facilities usable in all grammars.

@@ -45,7 +39,7 @@ This file defines some prelude facilities usable in all grammars. oper

- +

Strings, records, and tables

       SS  : Type = {s : Str} ;
@@ -74,7 +68,7 @@ Discontinuous constituents.
       sd2 : (_,_ : Str) -> SD2 = \x,y -> {s1 = x ; s2 = y} ;
 

- +

Optional elements

Missing form. @@ -106,7 +100,7 @@ Parametric order between two strings. if_then_Str pr (x ++ y) (y ++ x) ;

- +

Infixes. prefixes, and postfixes

Fixes with precedences are defined in Precedence. @@ -118,7 +112,7 @@ Fixes with precedences are defined in Precedence. embedSS : Str -> Str -> SS -> SS = \f,g,x -> ss (f ++ x.s ++ g) ;

- +

Booleans

      param Bool = True | False ;
@@ -154,7 +148,7 @@ Interface to internal booleans
       last : Tok -> Tok = Predef.dp 1 ;
 

- +

High-level acces to Predef operations

       isNil : Tok -> Bool = \b -> pbool2bool (Predef.eqStr [] b) ;
@@ -163,7 +157,7 @@ Interface to internal booleans
         case Predef.eqStr t u of {Predef.PTrue => a ; Predef.PFalse => b} ;
 

- +

Lexer-related operations

Bind together two tokens in some lexers, either obligatorily or optionally @@ -191,7 +185,7 @@ These should be hidden, and never changed since they are hardcoded in (un)lexers CAPIT : Str = "&|" ;

- +

Miscellaneous

Identity function diff --git a/resource-1.0/doc/gfdoc/Question.html b/resource-1.0/doc/gfdoc/Question.html index 2949564f..5c0446cb 100644 --- a/resource-1.0/doc/gfdoc/Question.html +++ b/resource-1.0/doc/gfdoc/Question.html @@ -2,21 +2,16 @@ - Questions and interrogative pronouns + Question: Questions and Interrogative Pronouns -

Questions and interrogative pronouns

+

Question: Questions and Interrogative Pronouns

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Questions and interrogative pronouns

     abstract Question = Cat ** {
 
diff --git a/resource-1.0/doc/gfdoc/Relative.html b/resource-1.0/doc/gfdoc/Relative.html index 0b200ef3..1ea23738 100644 --- a/resource-1.0/doc/gfdoc/Relative.html +++ b/resource-1.0/doc/gfdoc/Relative.html @@ -6,17 +6,12 @@

Relative clauses and pronouns

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-01-25 12:10:58 CET


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Relative clauses and pronouns

     abstract Relative = Cat ** {
     
diff --git a/resource-1.0/doc/gfdoc/Sentence.html b/resource-1.0/doc/gfdoc/Sentence.html
index 1faac79e..2d2be7ee 100644
--- a/resource-1.0/doc/gfdoc/Sentence.html
+++ b/resource-1.0/doc/gfdoc/Sentence.html
@@ -2,27 +2,23 @@
 
 
 
- Sentences, clauses, imperatives, and sentential complements
+ Sentence: Sentences, Clauses, and Imperatives
 
-

Sentences, clauses, imperatives, and sentential complements

+

Sentence: Sentences, Clauses, and Imperatives

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-06-15 09:19:39 CEST


-


@@ -32,13 +28,11 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Sentences, clauses, imperatives, and sentential complements

     abstract Sentence = Cat ** {
 

- +

Clauses

The NP VP predication rule form a clause whose linearization @@ -59,7 +53,7 @@ is only meaningful for some verb phrases. PredSCVP : SC -> VP -> Cl ; -- that you go makes me happy

- +

Clauses missing object noun phrases

This category is a variant of the 'slash category' S/NP of @@ -77,7 +71,7 @@ the style of CCG. SlashPrep : Cl -> Prep -> Slash ; -- (with whom) he walks

- +

Imperatives

An imperative is straightforwardly formed from a verb phrase. @@ -88,7 +82,7 @@ To fix these parameters, see Phrase. ImpVP : VP -> Imp ; -- go

- +

Embedded sentences

Sentences, questions, and infinitival phrases can be used as @@ -100,7 +94,7 @@ subjects and (adverbial) complements. EmbedVP : VP -> SC ; -- to go

- +

Sentences

These are the 2 x 4 x 4 = 16 forms generated by different diff --git a/resource-1.0/doc/gfdoc/Structural.html b/resource-1.0/doc/gfdoc/Structural.html index 32650aec..f7c9c8a9 100644 --- a/resource-1.0/doc/gfdoc/Structural.html +++ b/resource-1.0/doc/gfdoc/Structural.html @@ -2,21 +2,16 @@ - GF Resource Grammar API for Structural Words + Structural: Structural Words -

GF Resource Grammar API for Structural Words

+

Structural: Structural Words

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,11 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

GF Resource Grammar API for Structural Words

-

-AR 21/11/2003 -- 30/11/2005 -

Here we have some words belonging to closed classes and appearing in all languages we have considered. diff --git a/resource-1.0/doc/gfdoc/Symbol.html b/resource-1.0/doc/gfdoc/Symbol.html index 7e071431..5fef735c 100644 --- a/resource-1.0/doc/gfdoc/Symbol.html +++ b/resource-1.0/doc/gfdoc/Symbol.html @@ -6,21 +6,17 @@

Symbolic expressions

-Author:
-Last update: Tue Jun 13 11:42:44 2006 +Last update: 2006-03-17 14:11:37 CET


-


@@ -30,8 +26,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Symbolic expressions

Note. This module is not automatically included in the main grammar Lang. @@ -40,7 +34,7 @@ grammar Lang. abstract Symbol = Cat, PredefAbs ** {

- +

Noun phrases with symbols and numbers

     fun
@@ -52,13 +46,13 @@ grammar Lang.
       CNSymbNP : Det -> CN -> [Symb] -> NP ; -- (the) (2) numbers x and y
 

- +

Sentence consisting of a formula

       SymbS    : Symb -> S ;                 -- A
 

- +

Symbol lists

A symbol list has at least two elements. The last two are separated diff --git a/resource-1.0/doc/gfdoc/Tense.html b/resource-1.0/doc/gfdoc/Tense.html index 511cb96e..3ed4c71a 100644 --- a/resource-1.0/doc/gfdoc/Tense.html +++ b/resource-1.0/doc/gfdoc/Tense.html @@ -6,17 +6,12 @@

Tense, Polarity, and Anteriority

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-02-27 09:41:31 CET


- -


@@ -25,8 +20,6 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Tense, Polarity, and Anteriority

This module defines the abstract parameters of tense, polarity, and anteriority, which are used in Tensed to generate different diff --git a/resource-1.0/doc/gfdoc/Text.html b/resource-1.0/doc/gfdoc/Text.html index 021306b6..8ab03c9e 100644 --- a/resource-1.0/doc/gfdoc/Text.html +++ b/resource-1.0/doc/gfdoc/Text.html @@ -2,21 +2,16 @@ - Texts + Text: Texts -

Texts

+

Text: Texts

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-06-15 09:19:39 CEST


- -


@@ -25,16 +20,19 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

Texts

+

+Texts are built from an empty text by adding Phrases, +using as constructors the punctuation marks ., ?, and !. +Any punctuation mark can be attached to any kind of phrase. +

     abstract Text = Common ** {
     
       fun
-        TEmpty : Text ;
-        TFullStop : Phr -> Text -> Text ;
-        TQuestMark : Phr -> Text -> Text ;
-        TExclMark : Phr -> Text -> Text ;
+        TEmpty     : Text ;                 --
+        TFullStop  : Phr -> Text -> Text ;  -- John walks. ...
+        TQuestMark : Phr -> Text -> Text ;  -- Are you OK? ...
+        TExclMark  : Phr -> Text -> Text ;  -- John walks! ...
     
     }
 
diff --git a/resource-1.0/doc/gfdoc/Verb.html b/resource-1.0/doc/gfdoc/Verb.html index fcd77387..ce260bf7 100644 --- a/resource-1.0/doc/gfdoc/Verb.html +++ b/resource-1.0/doc/gfdoc/Verb.html @@ -6,22 +6,18 @@

The construction of verb phrases

-Author:
-Last update: Tue Jun 13 11:42:41 2006 +Last update: 2006-02-27 09:41:31 CET


-


@@ -31,13 +27,11 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

- -

The construction of verb phrases

     abstract Verb = Cat ** {
 

- +

Complementization rules

Verb phrases are constructed from verbs by providing their @@ -57,7 +51,7 @@ complements. There is one rule for each verb category. ComplV2A : V2A -> NP -> AP -> VP ; -- paint the house red

- +

Other ways of forming verb phrases

Verb phrases can also be constructed reflexively and from @@ -98,7 +92,7 @@ vs. next to (or before) the verb. Agents of passives are constructed as adverbs with the preposition Structural.8agent_Prep.

- +

Complements to copula

Adjectival phrases, noun phrases, and adverbs can be used. @@ -109,7 +103,7 @@ Adjectival phrases, noun phrases, and adverbs can be used. CompAdv : Adv -> Comp ; -- (be) here

- +

Coercions

Verbs can change subcategorization patterns in systematic ways, diff --git a/resource-1.0/english/LexiconEng.gf b/resource-1.0/english/LexiconEng.gf index b2d845ae..7a85896c 100644 --- a/resource-1.0/english/LexiconEng.gf +++ b/resource-1.0/english/LexiconEng.gf @@ -8,18 +8,18 @@ flags lin airplane_N = regN "airplane" ; - answer_V2S = mkV2S (regV "answer") "to" ; + answer_V2S = mkV2S (regV "answer") toP ; apartment_N = regN "apartment" ; apple_N = regN "apple" ; art_N = regN "art" ; - ask_V2Q = mkV2Q (regV "ask") [] ; + ask_V2Q = mkV2Q (regV "ask") noPrep ; baby_N = regN "baby" ; bad_A = mkADeg "bad" "badly" "worse" "worst" ; bank_N = regN "bank" ; beautiful_A = regADeg "beautiful" ; become_VA = mkVA (irregV "become" "became" "become") ; beer_N = regN "beer" ; - beg_V2V = mkV2V (regDuplV "beg") [] "to" ; + beg_V2V = mkV2V (regDuplV "beg") noPrep toP ; big_A = duplADeg "big" ; bike_N = regN "bike" ; bird_N = regN "bird" ; @@ -60,12 +60,12 @@ lin cow_N = regN "cow" ; die_V = (regV "die") ; dirty_A = regADeg "dirty" ; - distance_N3 = mkN3 (regN "distance") "from" "to" ; + distance_N3 = mkN3 (regN "distance") fromP toP ; doctor_N = regN "doctor" ; dog_N = regN "dog" ; door_N = regN "door" ; drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ; - easy_A2V = mkA2V (regA "easy") "for" ; + easy_A2V = mkA2V (regA "easy") forP ; eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ; empty_A = regADeg "empty" ; enemy_N = regN "enemy" ; @@ -108,14 +108,14 @@ lin leather_N = regN "leather" ; leave_V2 = dirV2 (irregV "leave" "left" "left") ; like_V2 = dirV2 (regV "like") ; - listen_V2 = mkV2 (regV "listen") "to" ; + listen_V2 = mkV2 (regV "listen") toP ; live_V = (regV "live") ; long_A = regADeg "long" ; lose_V2 = dirV2 (irregV "lose" "lost" "lost") ; love_N = regN "love" ; love_V2 = dirV2 (regV "love") ; man_N = mk2N "man" "men" ; - married_A2 = mkA2 (regA "married") "to" ; + married_A2 = mkA2 (regA "married") toP ; meat_N = regN "meat" ; milk_N = regN "milk" ; moon_N = regN "moon" ; @@ -128,9 +128,9 @@ lin oil_N = regN "oil" ; old_A = regADeg "old" ; open_V2 = dirV2 (regV "open") ; - paint_V2A = mkV2A (regV "paint") [] ; + paint_V2A = mkV2A (regV "paint") noPrep ; paper_N = regN "paper" ; - paris_PN = regPN "Paris" nonhuman ; + paris_PN = regPN "Paris" ; peace_N = regN "peace" ; pen_N = regN "pen" ; planet_N = regN "planet" ; @@ -157,8 +157,8 @@ lin sea_N = regN "sea" ; 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" ; + sell_V3 = dirV3 (irregV "sell" "sold" "sold") toP ; + send_V3 = dirV3 (irregV "send" "sent" "sent") toP ; sheep_N = mk2N "sheep" "sheep" ; ship_N = regN "ship" ; shirt_N = regN "shirt" ; @@ -182,7 +182,7 @@ lin 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" ; + talk_V3 = mkV3 (regV "talk") toP aboutP ; teacher_N = regN "teacher" ; teach_V2 = dirV2 (irregV "teach" "taught" "taught") ; television_N = regN "television" ; @@ -196,7 +196,7 @@ lin understand_V2 = dirV2 (irregV "understand" "understood" "understood") ; university_N = regN "university" ; village_N = regN "village" ; - wait_V2 = mkV2 (regV "wait") "for" ; + wait_V2 = mkV2 (regV "wait") forP ; walk_V = (regV "walk") ; warm_A = regADeg "warm" ; war_N = regN "war" ; @@ -217,9 +217,9 @@ lin now_Adv = mkAdv "now" ; already_Adv = mkAdv "already" ; song_N = regN "song" ; - add_V3 = dirV3 (regV "add") "to" ; + add_V3 = dirV3 (regV "add") toP ; number_N = regN "number" ; - put_V2 = mkV2 (irregDuplV "put" "put" "put") [] ; + put_V2 = mkV2 (irregDuplV "put" "put" "put") noPrep ; stop_V = regDuplV "stop" ; jump_V = regV "jump" ; @@ -311,7 +311,7 @@ lin flow_V = regV "flow" ; fly_V = fly_V ; freeze_V = freeze_V ; - give_V3 = dirV3 give_V "to" ; + give_V3 = dirV3 give_V toP ; laugh_V = regV "laugh" ; lie_V = lie_V ; play_V = regV "play" ; @@ -351,4 +351,13 @@ lin -- other_A = regA "other" ; +oper + aboutP = mkPrep "about" ; + atP = mkPrep "at" ; + forP = mkPrep "for" ; + fromP = mkPrep "from" ; + inP = mkPrep "in" ; + onP = mkPrep "on" ; + toP = mkPrep "to" ; + } ; diff --git a/resource-1.0/english/ParadigmsEng.gf b/resource-1.0/english/ParadigmsEng.gf index 067b8bea..226f6bec 100644 --- a/resource-1.0/english/ParadigmsEng.gf +++ b/resource-1.0/english/ParadigmsEng.gf @@ -58,8 +58,8 @@ oper genitive : Case ; -- Prepositions are used in many-argument functions for rection. +-- The resource category $Prep$ is used. - Preposition : Type ; --2 Nouns @@ -96,19 +96,19 @@ oper -- -- Relational nouns ("daughter of x") need a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common preposition is "of", and the following is a -- shortcut for regular relational nouns with "of". regN2 : Str -> N2 ; --- Use the function $mkPreposition$ or see the section on prepositions below to +-- Use the function $mkPrep$ or see the section on prepositions below to -- form other prepositions. -- -- Three-place relational nouns ("the connection from x to y") need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -116,15 +116,16 @@ oper -- In some cases, you may want to make a complex $CN$ into a -- relational noun (e.g. "the old town hall of"). - cnN2 : CN -> Preposition -> N2 ; - cnN3 : CN -> Preposition -> Preposition -> N3 ; + cnN2 : CN -> Prep -> N2 ; + cnN3 : CN -> Prep -> Prep -> N3 ; -- --3 Proper names and noun phrases -- -- Proper names, with a regular genitive, are formed as follows - regPN : Str -> Gender -> PN ; -- John, John's + regPN : Str -> PN ; + regGenPN : Str -> Gender -> PN ; -- John, John's -- Sometimes you can reuse a common noun as a proper name, e.g. "Bank". @@ -151,7 +152,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; -- Comparison adjectives may two more forms. @@ -197,8 +198,8 @@ oper -- A preposition as used for rection in the lexicon, as well as to -- build $PP$s in the resource API, just requires a string. - mkPreposition : Str -> Preposition ; - mkPrep : Str -> Prep ; + mkPrep : Str -> Prep ; + noPrep : Prep ; -- (These two functions are synonyms.) @@ -247,7 +248,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -256,9 +257,9 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Preposition -> Preposition -> V3 ; -- speak, with, about - dirV3 : V -> Preposition -> V3 ; -- give,_,to - dirdirV3 : V -> V3 ; -- give,_,_ + mkV3 : V -> Prep -> Prep -> V3 ; -- speak, with, about + dirV3 : V -> Prep -> V3 ; -- give,_,to + dirdirV3 : V -> V3 ; -- give,_,_ --3 Other complement patterns -- @@ -267,18 +268,18 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Str -> V2S ; + mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; - mkV2V : V -> Str -> Str -> V2V ; + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Str -> V2A ; + mkV2A : V -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Str -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Str -> A2S ; + mkA2S : A -> Prep -> A2S ; mkAV : A -> AV ; - mkA2V : A -> Str -> A2V ; + mkA2V : A -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -288,12 +289,11 @@ oper V0, V2S, V2V, V2A, V2Q : Type ; AS, A2S, AV, A2V : Type ; - +--. --2 Definitions of paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. Gender = MorphoEng.Gender ; Number = MorphoEng.Number ; @@ -307,7 +307,7 @@ oper nominative = Nom ; genitive = Gen ; - Preposition = Str ; + Preposition : Type = Str ; -- obsolete regN = \ray -> let @@ -345,13 +345,14 @@ oper compoundN s n = {s = \\x,y => s ++ n.s ! x ! y ; g=n.g ; lock_N = <>} ; - mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ; - regN2 n = mkN2 (regN n) (mkPreposition "of") ; - mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; - cnN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ; - cnN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; + mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ; + regN2 n = mkN2 (regN n) (mkPrep "of") ; + mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ; + cnN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ; + cnN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ; - regPN n g = nameReg n g ** {lock_PN = <>} ; + regPN n = regGenPN n human ; + regGenPN n g = nameReg n g ** {lock_PN = <>} ; nounPN n = {s = n.s ! singular ; g = n.g ; lock_PN = <>} ; mkNP x y n g = {s = table {Gen => x ; _ => y} ; a = agrP3 n ; lock_NP = <>} ; @@ -359,7 +360,7 @@ oper mkA a b = mkAdjective a a a b ** {lock_A = <>} ; regA a = regAdjective a ** {lock_A = <>} ; - mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ; + mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ; ADeg = A ; ---- @@ -394,8 +395,8 @@ oper mkAdV x = ss x ** {lock_AdV = <>} ; mkAdA x = ss x ** {lock_AdA = <>} ; - mkPreposition p = p ; mkPrep p = ss p ** {lock_Prep = <>} ; + noPrep = mkPrep [] ; mkV a b c d e = mkVerb a b c d e ** {s1 = [] ; lock_V = <>} ; @@ -434,12 +435,12 @@ oper partV v p = verbPart v p ** {lock_V = <>} ; reflV v = {s = v.s ; part = v.part ; lock_V = v.lock_V ; isRefl = True} ; - mkV2 v p = v ** {s = v.s ; s1 = v.s1 ; c2 = p ; lock_V2 = <>} ; - dirV2 v = mkV2 v [] ; + mkV2 v p = v ** {s = v.s ; s1 = v.s1 ; c2 = p.s ; lock_V2 = <>} ; + dirV2 v = mkV2 v noPrep ; - mkV3 v p q = v ** {s = v.s ; s1 = v.s1 ; c2 = p ; c3 = q ; lock_V3 = <>} ; - dirV3 v p = mkV3 v [] p ; - dirdirV3 v = dirV3 v [] ; + mkV3 v p q = v ** {s = v.s ; s1 = v.s1 ; c2 = p.s ; c3 = q.s ; lock_V3 = <>} ; + dirV3 v p = mkV3 v noPrep p ; + dirdirV3 v = dirV3 v noPrep ; mkVS v = v ** {lock_VS = <>} ; mkVV v = { diff --git a/resource-1.0/finnish/ParadigmsFin.gf b/resource-1.0/finnish/ParadigmsFin.gf index 0120d62e..e297a663 100644 --- a/resource-1.0/finnish/ParadigmsFin.gf +++ b/resource-1.0/finnish/ParadigmsFin.gf @@ -203,6 +203,7 @@ oper -- Proper names can be formed by using declensions for nouns. -- The plural forms are filtered away by the compiler. + regPN : Str -> PN ; mkPN : N -> PN ; mkNP : N -> Number -> NP ; @@ -333,9 +334,9 @@ oper V0, V2S, V2V, V2Q : Type ; AS, A2S, AV, A2V : Type ; +--. -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. Case = MorphoFin.Case ; Number = MorphoFin.Number ; @@ -472,6 +473,7 @@ reg3N = \vesi,veden,vesi mkN2 = \n,c -> n ** {c2 = c ; lock_N2 = <>} ; mkN3 = \n,c,e -> n ** {c2 = c ; c3 = e ; lock_N3 = <>} ; genN2 = \n -> mkN2 n (casePrep genitive) ; + regPN m = mkPN (regN m) ; mkPN n = mkProperName n ** {lock_PN = <>} ; mkNP noun num = { s = \\c => noun.s ! NCase num (npform2case c) ; diff --git a/resource-1.0/french/ParadigmsFre.gf b/resource-1.0/french/ParadigmsFre.gf index 3375bbb1..5d7ec085 100644 --- a/resource-1.0/french/ParadigmsFre.gf +++ b/resource-1.0/french/ParadigmsFre.gf @@ -57,13 +57,11 @@ oper -- amalgamate with the following word (the 'genitive' "de" and the -- 'dative' "à"). - Preposition : Type ; + accusative : Prep ; + genitive : Prep ; + dative : Prep ; - accusative : Preposition ; - genitive : Preposition ; - dative : Preposition ; - - mkPreposition : Str -> Preposition ; + mkPrep : Str -> Prep ; --2 Nouns @@ -102,7 +100,7 @@ oper -- -- Relational nouns ("fille de x") need a case and a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common cases are the genitive "de" and the dative "à", -- with the empty preposition. @@ -112,7 +110,7 @@ oper -- Three-place relational nouns ("la connection de x à y") need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -127,7 +125,10 @@ oper -- -- Proper names need a string and a gender. - mkPN : Str -> Gender -> PN ; -- Jean + mkPN : Str -> Gender -> PN ; -- Jean + + regPN : Str -> PN ; -- masculine + -- To form a noun phrase that can also be plural, -- you can use the worst-case function. @@ -160,7 +161,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; --3 Comparison adjectives @@ -227,7 +228,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -240,9 +241,9 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Preposition -> Preposition -> V3 ; -- parler, à, de - dirV3 : V -> Preposition -> V3 ; -- donner,_,à - dirdirV3 : V -> V3 ; -- donner,_,_ + mkV3 : V -> Prep -> Prep -> V3 ; -- parler, à, de + dirV3 : V -> Prep -> V3 ; -- donner,_,à + dirdirV3 : V -> V3 ; -- donner,_,_ --3 Other complement patterns -- @@ -251,20 +252,20 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Preposition -> V2S ; + mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; -- plain infinitive: "je veux parler" deVV : V -> VV ; -- "j'essaie de parler" aVV : V -> VV ; -- "j'arrive à parler" - mkV2V : V -> Preposition -> Preposition -> V2V ; + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Preposition -> Preposition -> V2A ; + mkV2A : V -> Prep -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Preposition -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Preposition -> A2S ; - mkAV : A -> Preposition -> AV ; - mkA2V : A -> Preposition -> Preposition -> A2V ; + mkA2S : A -> Prep -> A2S ; + mkAV : A -> Prep -> AV ; + mkA2V : A -> Prep -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -274,11 +275,12 @@ oper V0, V2S, V2V, V2Q : Type ; AS, A2S, AV, A2V : Type ; +--. --2 Definitions of the paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. + Gender = MorphoFre.Gender ; Number = MorphoFre.Number ; @@ -291,7 +293,12 @@ oper accusative = complAcc ; genitive = complGen ; dative = complDat ; - mkPreposition p = {s = p ; c = Acc ; isDir = False} ; + mkPrep p = {s = p ; c = Acc ; isDir = False} ; + + --- obsolete + Preposition : Type ; + mkPreposition : Str -> Preposition ; + mkPreposition = mkPrep ; mkN x y g = mkCNomIrreg x y g ** {lock_N = <>} ; regN x = regGenN x g where { @@ -308,6 +315,7 @@ oper aN2 n = mkN2 n dative ; mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; + regPN x = mkPN x masculine ; mkPN x g = {s = x ; g = g} ** {lock_PN = <>} ; mkNP x g n = {s = (pn2np (mkPN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ; diff --git a/resource-1.0/german/ParadigmsGer.gf b/resource-1.0/german/ParadigmsGer.gf index b1d891dd..bb7f3d1d 100644 --- a/resource-1.0/german/ParadigmsGer.gf +++ b/resource-1.0/german/ParadigmsGer.gf @@ -1,5 +1,5 @@ --# -path=.:../common:../abstract:../../prelude --- + --1 German Lexical Paradigms -- -- Aarne Ranta & Harald Hammarström 2003--2006 @@ -235,12 +235,13 @@ oper AS, A2S, AV, A2V : Type ; +--. --2 Definitions of paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. + Gender = MorphoGer.Gender ; Case = MorphoGer.Case ; diff --git a/resource-1.0/italian/ExtraIta.gf b/resource-1.0/italian/ExtraIta.gf new file mode 100644 index 00000000..59d1a8ef --- /dev/null +++ b/resource-1.0/italian/ExtraIta.gf @@ -0,0 +1,5 @@ +concrete ExtraIta of ExtraItaAbs = ExtraRomanceIta ** + open CommonRomance, PhonoIta, ParamX, ResIta in { + + +} diff --git a/resource-1.0/italian/ExtraItaAbs.gf b/resource-1.0/italian/ExtraItaAbs.gf new file mode 100644 index 00000000..55eaddde --- /dev/null +++ b/resource-1.0/italian/ExtraItaAbs.gf @@ -0,0 +1,6 @@ +-- Structures special for Italian. These are not implemented in other +-- Romance languages. + +abstract ExtraItaAbs = ExtraRomanceAbs ** { + +} diff --git a/resource-1.0/italian/ExtraRomanceIta.gf b/resource-1.0/italian/ExtraRomanceIta.gf new file mode 100644 index 00000000..af4bb597 --- /dev/null +++ b/resource-1.0/italian/ExtraRomanceIta.gf @@ -0,0 +1,2 @@ +concrete ExtraRomanceIta of ExtraRomanceAbs = CatIta ** ExtraRomance with + (ResRomance = ResIta) ; diff --git a/resource-1.0/italian/Italian.gf b/resource-1.0/italian/Italian.gf new file mode 100644 index 00000000..72a921af --- /dev/null +++ b/resource-1.0/italian/Italian.gf @@ -0,0 +1,7 @@ +--# -path=.:../romance:../abstract:../common:prelude + +concrete Italian of ItalianAbs = + LangIta, +-- IrregIta, + ExtraIta + ** {} ; diff --git a/resource-1.0/italian/ItalianAbs.gf b/resource-1.0/italian/ItalianAbs.gf new file mode 100644 index 00000000..23272368 --- /dev/null +++ b/resource-1.0/italian/ItalianAbs.gf @@ -0,0 +1,5 @@ +abstract ItalianAbs = + Lang, +-- IrregItaAbs, + ExtraItaAbs + ** {} ; diff --git a/resource-1.0/italian/LexiconIta.gf b/resource-1.0/italian/LexiconIta.gf index 78577182..4652cdff 100644 --- a/resource-1.0/italian/LexiconIta.gf +++ b/resource-1.0/italian/LexiconIta.gf @@ -130,7 +130,7 @@ lin old_A = prefA (regADeg "vecchio") ; open_V2 = dirV2 (verboV (aprire_102 "aprire")) ; paint_V2A = - mkV2A (verboV (cingere_31 "pingere")) accusative (mkPreposition "in") ; + mkV2A (verboV (cingere_31 "pingere")) accusative (mkPrep "in") ; ---- paper_N = regN "carta" ; paris_PN = mkPN "Parigi" masculine ; peace_N = femN (regN "pace") ; diff --git a/resource-1.0/italian/ParadigmsIta.gf b/resource-1.0/italian/ParadigmsIta.gf index 1742721c..ae93829f 100644 --- a/resource-1.0/italian/ParadigmsIta.gf +++ b/resource-1.0/italian/ParadigmsIta.gf @@ -58,13 +58,13 @@ oper -- amalgamate with the following word (the 'genitive' "de" and the -- 'dative' "à"). - Preposition : Type ; + Prep : Type ; - accusative : Preposition ; - genitive : Preposition ; - dative : Preposition ; + accusative : Prep ; + genitive : Prep ; + dative : Prep ; - mkPreposition : Str -> Preposition ; + mkPrep : Str -> Prep ; --2 Nouns @@ -98,7 +98,7 @@ oper -- -- Relational nouns ("figlio di x") need a case and a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common cases are the genitive "di" and the dative "a", -- with the empty preposition. @@ -108,7 +108,7 @@ oper -- Three-place relational nouns ("la connessione di x a y") need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -123,7 +123,8 @@ oper -- -- Proper names need a string and a gender. - mkPN : Str -> Gender -> PN ; -- Jean + mkPN : Str -> Gender -> PN ; + regPN : Str -> PN ; -- masculine -- To form a noun phrase that can also be plural, -- you can use the worst-case function. @@ -153,7 +154,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; --3 Comparison adjectives @@ -217,7 +218,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -230,9 +231,9 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Preposition -> Preposition -> V3 ; -- parler, à, de - dirV3 : V -> Preposition -> V3 ; -- donner,_,à - dirdirV3 : V -> V3 ; -- donner,_,_ + mkV3 : V -> Prep -> Prep -> V3 ; -- parlare, a, di + dirV3 : V -> Prep -> V3 ; -- dare,_,a + dirdirV3 : V -> V3 ; -- dare,_,_ --3 Other complement patterns @@ -242,20 +243,20 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Preposition -> V2S ; - mkVV : V -> VV ; -- plain infinitive: "je veux parler" - deVV : V -> VV ; -- "j'essaie de parler" - aVV : V -> VV ; -- "j'arrive à parler" - mkV2V : V -> Preposition -> Preposition -> V2V ; + mkV2S : V -> Prep -> V2S ; + mkVV : V -> VV ; -- plain infinitive: "voglio parlare" + deVV : V -> VV ; -- "cerco di parlare" + aVV : V -> VV ; -- "arrivo a parlare" + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Preposition -> Preposition -> V2A ; + mkV2A : V -> Prep -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Preposition -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Preposition -> A2S ; - mkAV : A -> Preposition -> AV ; - mkA2V : A -> Preposition -> Preposition -> A2V ; + mkA2S : A -> Prep -> A2S ; + mkAV : A -> Prep -> AV ; + mkA2V : A -> Prep -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -266,11 +267,12 @@ oper AS, A2S, AV, A2V : Type ; +--. --2 The definitions of the paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. + Gender = MorphoIta.Gender ; Number = MorphoIta.Number ; @@ -279,11 +281,11 @@ oper singular = Sg ; plural = Pl ; - Preposition = Compl ; + Prep = Compl ; accusative = complAcc ; genitive = complGen ; dative = complDat ; - mkPreposition p = {s = p ; c = Acc ; isDir = False} ; + mkPrep p = {s = p ; c = Acc ; isDir = False} ; mkN x y g = mkNounIrreg x y g ** {lock_N = <>} ; regN x = mkNomReg x ** {lock_N = <>} ; @@ -298,6 +300,7 @@ oper mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; mkPN x g = {s = x ; g = g} ** {lock_PN = <>} ; + regPN x = mkPN x masculine ; mkNP x g n = {s = (pn2np (mkPN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ; mkA a b c d e = diff --git a/resource-1.0/italian/StructuralIta.gf b/resource-1.0/italian/StructuralIta.gf index b22a4117..bc7e7cec 100644 --- a/resource-1.0/italian/StructuralIta.gf +++ b/resource-1.0/italian/StructuralIta.gf @@ -6,7 +6,7 @@ concrete StructuralIta of Structural = CatIta ** lin above_Prep = {s = ["sopra"] ; c = MorphoIta.genitive ; isDir = False} ; - after_Prep = mkPreposition "dopo" ; + after_Prep = mkPrep "dopo" ; all_Predet = { s = \\a,c => prepCase c ++ aagrForms "tutto" "tutta" "tutti" "tutte" ! a ; c = Nom @@ -16,16 +16,16 @@ lin although_Subj = ss "benché" ** {m = Conjunct} ; and_Conj = ss "e" ** {n = Pl} ; because_Subj = ss "perché" ** {m = Indic} ; - before_Prep = mkPreposition "prima" ; - behind_Prep = mkPreposition "dietro" ; - between_Prep = mkPreposition "fra" ; + before_Prep = mkPrep "prima" ; + behind_Prep = mkPrep "dietro" ; + between_Prep = mkPrep "fra" ; both7and_DConj = {s1,s2 = "e" ; n = Pl} ; but_PConj = ss "ma" ; - by8agent_Prep = {s = [] ; c = CPrep P_da} ; - by8means_Prep = mkPreposition "per" ; + by8agent_Prep = {s = [] ; c = CPrep P_da ; isDir = False} ; + by8means_Prep = mkPrep "per" ; can8know_VV = mkVV (verboV (sapere_78 "sapere")) ; can_VV = mkVV (verboV (potere_69 "potere")) ; - during_Prep = mkPreposition "durante" ; + during_Prep = mkPrep "durante" ; either7or_DConj = {s1,s2 = "o" ; n = Sg} ; everybody_NP = mkNP ["tutti"] Masc Pl ; every_Det = {s = \\_,_ => "ogni" ; n = Sg} ; @@ -44,12 +44,12 @@ lin how_IAdv = ss "come" ; how8many_IDet = {s = \\g,c => prepCase c ++ genForms "quanti" "quante" ! g ; n = Pl} ; if_Subj = ss "se" ** {m = Indic} ; - in8front_Prep = mkPreposition "davanti" ; + in8front_Prep = mkPrep "davanti" ; i_Pron = mkPronoun "io" "mi" "mi" "me" "me" "mio" "mia" "miei" "mie" Fem Sg P1 ; - in_Prep = {s = [] ; c = CPrep P_in} ; + in_Prep = {s = [] ; c = CPrep P_in ; isDir = False} ; it_Pron = mkPronoun "lui" "lo" "gli" "glie" "lui" "suo" "sua" "suoi" "sue" @@ -61,7 +61,7 @@ lin much_Det = {s = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ; n = Sg} ; must_VV = mkVV (verboV (dovere_47 "dovere")) ; no_Phr = ss "no" ; - on_Prep = {s = [] ; c = CPrep P_su} ; + on_Prep = {s = [] ; c = CPrep P_su ; isDir = False} ; one_Quant = {s = \\g,c => prepCase c ++ genForms "uno" "una" ! g} ; only_Predet = {s = \\_,c => prepCase c ++ "soltanto" ; c = Nom} ; --- solo|a|i|e or_Conj = {s = "o" ; n = Sg} ; @@ -103,10 +103,10 @@ lin } ; this_NP = pn2np (mkPN ["questo"] Masc) ; those_NP = mkNP ["quelle"] Fem Pl ; - through_Prep = mkPreposition "per" ; + through_Prep = mkPrep "per" ; too_AdA = ss "troppo" ; to_Prep = complDat ; - under_Prep = mkPreposition "sotto" ; + under_Prep = mkPrep "sotto" ; very_AdA = ss "molto" ; want_VV = mkVV (verboV (volere_96 "volere")) ; we_Pron = @@ -122,8 +122,8 @@ lin whoPl_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Pl} ; whoSg_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Sg} ; why_IAdv = ss "perché" ; - without_Prep = mkPreposition "senza" ; - with_Prep = {s = [] ; c = CPrep P_con} ; + without_Prep = mkPrep "senza" ; + with_Prep = {s = [] ; c = CPrep P_con ; isDir = False} ; yes_Phr = ss "sì" ; youSg_Pron = mkPronoun "tu" "ti" "ti" "te" "te" "tuo" "tua" "tuoi" "tue" diff --git a/resource-1.0/norwegian/LexiconNor.gf b/resource-1.0/norwegian/LexiconNor.gf index fce902fe..ebac3dfa 100644 --- a/resource-1.0/norwegian/LexiconNor.gf +++ b/resource-1.0/norwegian/LexiconNor.gf @@ -8,18 +8,18 @@ flags startcat=Phr ; lexer=textlit ; unlexer=text ; lin airplane_N = mk2N "fly" "flyet" ; - answer_V2S = mkV2S (regV "svare") "til" ; + answer_V2S = mkV2S (regV "svare") (mkPrep "til") ; apartment_N = mk2N "leilighet" "leiligheten" ; apple_N = mk2N "eple" "eplet" ; art_N = mk2N "kunst" "kunsten" ; - ask_V2Q = mkV2Q spørre_V [] ; + ask_V2Q = mkV2Q spørre_V noPrep ; baby_N = mk2N "baby" "babyen" ; bad_A = regADeg "dårlig" ; ---- bank_N = mk2N "bank" "banken" ; beautiful_A = mk3ADeg "vakker" "vakkert" "vakra" ; become_VA = mkVA (vaereV bli_V) ; beer_N = regGenN "øl" neutrum ; - beg_V2V = mkV2V be_V [] "at" ; + beg_V2V = mkV2V be_V noPrep (mkPrep "at") ; big_A = irregADeg "stor" "større" "størst"; bike_N = mkN "sykkel" "sykkelen" "sykler" "syklene" ; bird_N = mk2N "fugl" "fuglen" ; @@ -33,7 +33,7 @@ lin bread_N = regGenN "brød" neutrum ; break_V2 = dirV2 (mk2V "knuse" "knuste") ; broad_A = regADeg "bred" ; - brother_N2 = mkN2 ( (mkN "bror" "broren" "brødre" "brødrene")) "til" ; + brother_N2 = mkN2 ( (mkN "bror" "broren" "brødre" "brødrene")) (mkPrep "til") ; brown_A = regADeg "brun" ; butter_N = regGenN "smør" neutrum ; buy_V2 = dirV2 (mk2V "kjøpe" "kjøpte") ; @@ -60,17 +60,17 @@ lin cow_N = mkN "ku" "kua" "kyr" "kyrne" ; ---- die_V = vaereV dø_V ; dirty_A = mk3ADeg "skitten" "skittent" "skitne" ; ---- - distance_N3 = mkN3 (regGenN "avstand" masculine) "fra" "til" ; + distance_N3 = mkN3 (regGenN "avstand" masculine) (mkPrep "fra") (mkPrep "til") ; doctor_N = mk2N "lege" "legen" ; dog_N = regGenN "hund" masculine ; door_N = regGenN "dør" feminine ; drink_V2 = dirV2 drikke_V ; - easy_A2V = mkA2V (regA "grei") "for" ; + easy_A2V = mkA2V (regA "grei") (mkPrep "for") ; eat_V2 = dirV2 (mk2V "spise" "spiste") ; empty_A = mkADeg "tom" "tomt" "tomme" "tommere" "tommest" ; enemy_N = regGenN "fiende" masculine ; factory_N = mk2N "fabrikk" "fabrikken" ; - father_N2 = mkN2 ( (mkN "far" "faren" "fedre" "fedrene")) "til" ; + father_N2 = mkN2 ( (mkN "far" "faren" "fedre" "fedrene")) (mkPrep "til") ; fear_VS = mkVS (regV "frykte") ; find_V2 = dirV2 (irregV "finne" "fann" "funnet") ; fish_N = mk2N "fisk" "fisken" ; @@ -115,11 +115,11 @@ lin love_N = regGenN "kjærlighet" masculine ; love_V2 = dirV2 (regV "elske") ; man_N = (mkN "mann" "mannen" "menn" "mennen") ; - married_A2 = mkA2 (mk2A "gift" "gift") "med" ; + married_A2 = mkA2 (mk2A "gift" "gift") (mkPrep "med") ; meat_N = regGenN "kjøtt" neutrum ; milk_N = regGenN "melk" masculine ; moon_N = regGenN "måne" masculine ; - mother_N2 = mkN2 (mkN "mor" "moren" "mødre" "mødrene") "til" ; ---- fem + mother_N2 = mkN2 (mkN "mor" "moren" "mødre" "mødrene") (mkPrep "til") ; ---- fem mountain_N = regGenN "berg" neutrum ; music_N = mk2N "musikk" "musikken" ; narrow_A = regADeg "smal" ; @@ -128,9 +128,9 @@ lin oil_N = regGenN "olje" masculine ; old_A = mkADeg "gammel" "gammelt" "gamle" "eldre" "eldst" ; open_V2 = dirV2 (regV "åpne") ; - paint_V2A = mkV2A (regV "male") [] ; + paint_V2A = mkV2A (regV "male") noPrep ; paper_N = regGenN "papir" neutrum ; ---- - paris_PN = regPN "Paris" neutrum ; + paris_PN = regGenPN "Paris" neutrum ; peace_N = regGenN "fred" masculine ; pen_N = regGenN "penn" masculine ; planet_N = mk2N "planet" "planeten" ; @@ -155,10 +155,10 @@ lin school_N = regGenN "skole" feminine; science_N = mk2N "vitenskap" "vitenskapen" ; sea_N = mk2N "sjø" "sjøen" ; - seek_V2 = mkV2 (mk2V "lete" "lette") "etter" ; + seek_V2 = mkV2 (mk2V "lete" "lette") (mkPrep "etter") ; see_V2 = dirV2 se_V ; - sell_V3 = dirV3 selge_V "til" ; - send_V3 = dirV3 (mk2V "sende" "sendte") "til" ; + sell_V3 = dirV3 selge_V (mkPrep "til") ; + send_V3 = dirV3 (mk2V "sende" "sendte") (mkPrep "til") ; sheep_N = mk2N "får" "fåret" ; ship_N = regGenN "skip" neutrum ; shirt_N = regGenN "skjorte" feminine ; @@ -182,7 +182,7 @@ lin switch8off_V2 = dirV2 (partV (irregV "slå" "slo" "slått") "av") ; switch8on_V2 = dirV2 (partV (irregV "slå" "slo" "slått") "på") ; table_N = regGenN "bord" neutrum ; - talk_V3 = mkV3 (regV "snakke") "til" "om" ; + talk_V3 = mkV3 (regV "snakke") (mkPrep "til") (mkPrep "om") ; teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ; teach_V2 = dirV2 (mk2V "undervise" "underviste") ; television_N = mk2N "fjernsyn" "fjernsynet" ; @@ -196,11 +196,11 @@ lin understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ; university_N = regGenN "universitet" neutrum ; village_N = mk2N "grend" "grenda" ; - wait_V2 = mkV2 (regV "vente") "på" ; + wait_V2 = mkV2 (regV "vente") (mkPrep "på") ; walk_V = vaereV gå_V ; warm_A = regADeg "varm" ; war_N = regGenN "krig" masculine ; - watch_V2 = mkV2 se_V "på" ; + watch_V2 = mkV2 se_V (mkPrep "på") ; water_N = mk2N "vatn" "vatnet" ; white_A = regADeg "hvit" ; window_N = mkN "vindu" "vinduet" "vinduer" "vinduene" ; ---- er? @@ -217,9 +217,9 @@ lin now_Adv = mkAdv "nå" ; already_Adv = mkAdv "allerede" ; song_N = mk2N "sang" "sangen" ; - add_V3 = mkV3 (partV (irregV "legge" "la" "lagt") "til") [] "til" ; + add_V3 = mkV3 (partV (irregV "legge" "la" "lagt") "til") noPrep (mkPrep "til") ; number_N = mk2N "nummer" "nummeret" ; - put_V2 = mkV2 (irregV "sette" "satte" "satt") [] ; + put_V2 = mkV2 (irregV "sette" "satte" "satt") noPrep ; stop_V = vaereV (regV "stanse") ; jump_V = regV "hoppe" ; diff --git a/resource-1.0/norwegian/ParadigmsNor.gf b/resource-1.0/norwegian/ParadigmsNor.gf index 2d8a7c3e..8cc30c9c 100644 --- a/resource-1.0/norwegian/ParadigmsNor.gf +++ b/resource-1.0/norwegian/ParadigmsNor.gf @@ -60,7 +60,8 @@ oper -- Prepositions used in many-argument functions are just strings. - Preposition : Type = Str ; + mkPrep : Str -> Prep ; + noPrep : Prep ; -- empty string --2 Nouns @@ -97,19 +98,19 @@ oper -- -- Relational nouns ("daughter of x") need a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common preposition is "av", and the following is a -- shortcut for regular, $nonhuman$ relational nouns with "av". regN2 : Str -> Gender -> N2 ; --- Use the function $mkPreposition$ or see the section on prepositions below to +-- Use the function $mkPrep$ or see the section on prepositions below to -- form other prepositions. -- -- Three-place relational nouns ("the connection from x to y") need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -124,7 +125,8 @@ oper -- -- Proper names, with a regular genitive, are formed as follows - regPN : Str -> Gender -> PN ; -- John, John's + regPN : Str -> PN ; -- utrum + regGenPN : Str -> Gender -> PN ; -- Sometimes you can reuse a common noun as a proper name, e.g. "Bank". @@ -153,7 +155,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; -- Comparison adjectives may need as many as five forms. @@ -191,11 +193,6 @@ oper mkAdA : Str -> AdA ; ---2 Prepositions --- --- A preposition is just a string. - - mkPreposition : Str -> Preposition ; --2 Verbs -- @@ -243,7 +240,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -252,9 +249,9 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Str -> Str -> V3 ; -- speak, with, about - dirV3 : V -> Str -> V3 ; -- give,_,to - dirdirV3 : V -> V3 ; -- give,_,_ + mkV3 : V -> Prep -> Prep -> V3 ; -- speak, with, about + dirV3 : V -> Prep -> V3 ; -- give,_,to + dirdirV3 : V -> V3 ; -- give,_,_ --3 Other complement patterns -- @@ -263,18 +260,18 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Str -> V2S ; + mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; - mkV2V : V -> Str -> Str -> V2V ; + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Str -> V2A ; + mkV2A : V -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Str -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Str -> A2S ; + mkA2S : A -> Prep -> A2S ; mkAV : A -> AV ; - mkA2V : A -> Str -> A2V ; + mkA2V : A -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -285,11 +282,11 @@ oper AS, A2S, AV, A2V : Type ; +--. --2 Definitions of the paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. Gender = MorphoNor.Gender ; Number = MorphoNor.Number ; @@ -331,11 +328,12 @@ oper } ; - mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ; - regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ; - mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; + mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ; + regN2 n g = mkN2 (regGenN n g) (mkPrep "av") ; + mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ; - regPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ; + regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ; + regPN n = regGenPN n utrum ; nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ; mkNP x y n g = {s = table {NPPoss _ => x ; _ => y} ; a = agrP3 g n ; @@ -345,7 +343,7 @@ oper mk2A a b = mkA a b (a + "e") ; regA a = (regADeg a) ** {isComp = False ; lock_A = <>} ; - mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ; + mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ; mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ; regADeg a = case Predef.dp 2 a of { @@ -366,7 +364,8 @@ oper mkAdV x = ss x ** {lock_AdV = <>} ; mkAdA x = ss x ** {lock_AdA = <>} ; - mkPreposition p = p ; + mkPrep p = {s = p ; lock_Prep = <>} ; + noPrep = mkPrep [] ; mkV a b c d e f = mkVerb6 a b c d e f ** {part = [] ; vtype = VAct ; isVaere = False ; lock_V = <>} ; @@ -404,12 +403,12 @@ oper depV v = {s = v.s ; part = v.part ; vtype = VPass ; isVaere = False ; lock_V = <>} ; reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <>} ; - mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ; - dirV2 v = mkV2 v [] ; + mkV2 v p = v ** {c2 = p.s ; lock_V2 = <>} ; + dirV2 v = mkV2 v noPrep ; - mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ; - dirV3 v p = mkV3 v [] p ; - dirdirV3 v = dirV3 v [] ; + mkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ; + dirV3 v p = mkV3 v noPrep p ; + dirdirV3 v = dirV3 v noPrep ; mkV0 v = v ** {lock_V0 = <>} ; mkVS v = v ** {lock_VS = <>} ; diff --git a/resource-1.0/romance/CatRomance.gf b/resource-1.0/romance/CatRomance.gf index a9904bd7..1b03e668 100644 --- a/resource-1.0/romance/CatRomance.gf +++ b/resource-1.0/romance/CatRomance.gf @@ -65,7 +65,7 @@ incomplete concrete CatRomance of Cat = Conj = {s : Str ; n : Number} ; DConj = {s1,s2 : Str ; n : Number} ; Subj = {s : Str ; m : Mood} ; - Prep = {s : Str ; c : Case} ; + Prep = {s : Str ; c : Case ; isDir : Bool} ; -- Open lexical classes, e.g. Lexicon diff --git a/resource-1.0/russian/ParadigmsRus.gf b/resource-1.0/russian/ParadigmsRus.gf index e5e10412..a8e4c826 100644 --- a/resource-1.0/russian/ParadigmsRus.gf +++ b/resource-1.0/russian/ParadigmsRus.gf @@ -143,6 +143,7 @@ nPepel : Str -> N ; -- masculine, inanimate, ending with "-ел"- "пеп-л -- Proper names. mkPN : Str -> Gender -> Animacy -> PN ; -- "Иван", "Маша" + regPN : Str -> PN ; nounPN : N -> PN ; -- On the top level, it is maybe $CN$ that is used rather than $N$, and @@ -292,10 +293,11 @@ perfective: Aspect ; mkV3 : V -> Str -> Str -> Case -> Case -> V3 ; -- "Ñложить пиÑьмо в конверт" dirV2 : V -> V2 ; -- "видеть", "любить" tvDirDir : V -> V3 ; - + +--. -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. + Gender = MorphoRus.Gender ; Case = MorphoRus.Case ; Number = MorphoRus.Number ; @@ -450,6 +452,8 @@ regN = \ray -> Masc => mkProperNameMasc ivan anim ; _ => mkProperNameFem ivan anim } ** {lock_PN =<>}; + regPN x = mkPN x masculine animate ; + nounPN n = {s=\\c => n.s! SF Sg c; anim=n.anim; g=n.g; lock_PN=<>}; mkCN = UseN; diff --git a/resource-1.0/spanish/ExtraRomanceSpa.gf b/resource-1.0/spanish/ExtraRomanceSpa.gf new file mode 100644 index 00000000..d143b961 --- /dev/null +++ b/resource-1.0/spanish/ExtraRomanceSpa.gf @@ -0,0 +1,2 @@ +concrete ExtraRomanceSpa of ExtraRomanceAbs = CatSpa ** ExtraRomance with + (ResRomance = ResSpa) ; diff --git a/resource-1.0/spanish/ExtraSpa.gf b/resource-1.0/spanish/ExtraSpa.gf new file mode 100644 index 00000000..736a9536 --- /dev/null +++ b/resource-1.0/spanish/ExtraSpa.gf @@ -0,0 +1,5 @@ +concrete ExtraSpa of ExtraSpaAbs = ExtraRomanceSpa ** + open CommonRomance, PhonoSpa, ParamX, ResSpa in { + + +} diff --git a/resource-1.0/spanish/ExtraSpaAbs.gf b/resource-1.0/spanish/ExtraSpaAbs.gf new file mode 100644 index 00000000..be1a8ffa --- /dev/null +++ b/resource-1.0/spanish/ExtraSpaAbs.gf @@ -0,0 +1,6 @@ +-- Structures special for Spanish. These are not implemented in other +-- Romance languages. + +abstract ExtraSpaAbs = ExtraRomanceAbs ** { + +} diff --git a/resource-1.0/spanish/LexiconSpa.gf b/resource-1.0/spanish/LexiconSpa.gf index 659fd823..a6da3b48 100644 --- a/resource-1.0/spanish/LexiconSpa.gf +++ b/resource-1.0/spanish/LexiconSpa.gf @@ -128,7 +128,7 @@ lin oil_N = regN "aceite" ; old_A = prefA (regADeg "viejo") ; open_V2 = dirV2 (special_ppV (regV "abrir") "abierto") ; - paint_V2A = mkV2A (regV "pintar") accusative (mkPreposition "en") ; + paint_V2A = mkV2A (regV "pintar") accusative (mkPrep "en") ; paper_N = regN "papel" ; paris_PN = mkPN "Paris" masculine ; peace_N = femN (regN "paz") ; diff --git a/resource-1.0/spanish/ParadigmsSpa.gf b/resource-1.0/spanish/ParadigmsSpa.gf index 61a2519a..f222a903 100644 --- a/resource-1.0/spanish/ParadigmsSpa.gf +++ b/resource-1.0/spanish/ParadigmsSpa.gf @@ -55,13 +55,13 @@ oper -- amalgamate with the following word (the 'genitive' "de" and the -- 'dative' "à"). - Preposition : Type ; + Prep : Type ; - accusative : Preposition ; - genitive : Preposition ; - dative : Preposition ; + accusative : Prep ; + genitive : Prep ; + dative : Prep ; - mkPreposition : Str -> Preposition ; + mkPrep : Str -> Prep ; --2 Nouns @@ -100,7 +100,7 @@ oper -- -- Relational nouns ("fille de x") need a case and a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common cases are the genitive "de" and the dative "a", -- with the empty preposition. @@ -110,7 +110,7 @@ oper -- Three-place relational nouns ("la connessione di x a y") need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -125,7 +125,9 @@ oper -- -- Proper names need a string and a gender. - mkPN : Str -> Gender -> PN ; -- Jean + mkPN : Str -> Gender -> PN ; -- Jean + regPN : Str -> PN ; -- masculine + -- To form a noun phrase that can also be plural, -- you can use the worst-case function. @@ -156,7 +158,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; --3 Comparison adjectives @@ -221,7 +223,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -234,9 +236,9 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Preposition -> Preposition -> V3 ; -- parler, à, de - dirV3 : V -> Preposition -> V3 ; -- donner,_,à - dirdirV3 : V -> V3 ; -- donner,_,_ + mkV3 : V -> Prep -> Prep -> V3 ; -- parler, à, de + dirV3 : V -> Prep -> V3 ; -- donner,_,à + dirdirV3 : V -> V3 ; -- donner,_,_ --3 Other complement patterns -- @@ -245,20 +247,20 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Preposition -> V2S ; + mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; -- plain infinitive: "je veux parler" deVV : V -> VV ; -- "j'essaie de parler" aVV : V -> VV ; -- "j'arrive à parler" - mkV2V : V -> Preposition -> Preposition -> V2V ; + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Preposition -> Preposition -> V2A ; + mkV2A : V -> Prep -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Preposition -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Preposition -> A2S ; - mkAV : A -> Preposition -> AV ; - mkA2V : A -> Preposition -> Preposition -> A2V ; + mkA2S : A -> Prep -> A2S ; + mkAV : A -> Prep -> AV ; + mkA2V : A -> Prep -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -269,11 +271,11 @@ oper AS, A2S, AV, A2V : Type ; +--. --2 The definitions of the paradigms -- -- The definitions should not bother the user of the API. So they are -- hidden from the document. ---. Gender = MorphoSpa.Gender ; Number = MorphoSpa.Number ; @@ -282,11 +284,11 @@ oper singular = Sg ; plural = Pl ; - Preposition = Compl ; + Prep = Compl ; accusative = complAcc ; genitive = complGen ; dative = complDat ; - mkPreposition p = {s = p ; c = Acc ; isDir = False} ; + mkPrep p = {s = p ; c = Acc ; isDir = False} ; mkN x y g = mkNounIrreg x y g ** {lock_N = <>} ; @@ -301,6 +303,7 @@ oper mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; mkPN x g = {s = x ; g = g} ** {lock_PN = <>} ; + regPN x = mkPN x masculine ; mkNP x g n = {s = (pn2np (mkPN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ; mkA a b c d e = diff --git a/resource-1.0/spanish/Spanish.gf b/resource-1.0/spanish/Spanish.gf new file mode 100644 index 00000000..4d71f62c --- /dev/null +++ b/resource-1.0/spanish/Spanish.gf @@ -0,0 +1,7 @@ +--# -path=.:../romance:../abstract:../common:prelude + +concrete Spanish of SpanishAbs = + LangSpa, +-- IrregSpa, + ExtraSpa + ** {} ; diff --git a/resource-1.0/spanish/SpanishAbs.gf b/resource-1.0/spanish/SpanishAbs.gf new file mode 100644 index 00000000..031820a5 --- /dev/null +++ b/resource-1.0/spanish/SpanishAbs.gf @@ -0,0 +1,5 @@ +abstract SpanishAbs = + Lang, +-- IrregSpaAbs, + ExtraSpaAbs + ** {} ; diff --git a/resource-1.0/spanish/StructuralSpa.gf b/resource-1.0/spanish/StructuralSpa.gf index bb62aaf9..24d68080 100644 --- a/resource-1.0/spanish/StructuralSpa.gf +++ b/resource-1.0/spanish/StructuralSpa.gf @@ -5,7 +5,7 @@ concrete StructuralSpa of Structural = CatSpa ** lin - above_Prep = mkPreposition "sobre" ; + above_Prep = mkPrep "sobre" ; after_Prep = {s = ["despues"] ; c = MorphoSpa.genitive ; isDir = False} ; all_Predet = { s = \\a,c => prepCase c ++ aagrForms "todo" "toda" "todos" "todas" ! a ; @@ -18,14 +18,14 @@ lin because_Subj = ss "porque" ** {m = Indic} ; before_Prep = {s = "antes" ; c = MorphoSpa.genitive ; isDir = False} ; behind_Prep = {s = "detrás" ; c = MorphoSpa.genitive ; isDir = False} ; - between_Prep = mkPreposition "entre" ; + between_Prep = mkPrep "entre" ; both7and_DConj = {s1,s2 = etConj.s ; n = Pl} ; but_PConj = ss "pero" ; - by8agent_Prep = mkPreposition "por" ; - by8means_Prep = mkPreposition "por" ; + by8agent_Prep = mkPrep "por" ; + by8means_Prep = mkPrep "por" ; can8know_VV = mkVV (verboV (saber_71 "saber")) ; can_VV = mkVV (verboV (poder_58 "poder")) ; - during_Prep = mkPreposition "durante" ; ---- + during_Prep = mkPrep "durante" ; ---- either7or_DConj = {s1,s2 = "o" ; n = Sg} ; everybody_NP = mkNP ["todos"] Masc Pl ; every_Det = {s = \\_,_ => "cada" ; n = Sg} ; @@ -52,7 +52,7 @@ lin "yo" "me" "me" "mí" "mi" "mi" "mis" "mis" Fem Sg P1 ; - in_Prep = mkPreposition "en" ; + in_Prep = mkPrep "en" ; it_Pron = mkPronoun "el" "lo" "le" "él" @@ -65,7 +65,7 @@ lin much_Det = {s = \\g,c => prepCase c ++ genForms "mucho" "mucha" ! g ; n = Sg} ; must_VV = mkVV (verboV (deber_6 "deber")) ; no_Phr = ss "no" ; - on_Prep = mkPreposition "sobre" ; + on_Prep = mkPrep "sobre" ; one_Quant = {s = \\g,c => prepCase c ++ genForms "uno" "una" ! g} ; only_Predet = {s = \\_,c => prepCase c ++ "solamente" ; c = Nom} ; or_Conj = {s = "o" ; n = Sg} ; @@ -109,10 +109,10 @@ lin } ; this_NP = pn2np (mkPN ["esto"] Masc) ; those_NP = mkNP ["esas"] Fem Pl ; - through_Prep = mkPreposition "por" ; + through_Prep = mkPrep "por" ; too_AdA = ss "demasiado" ; to_Prep = complDat ; - under_Prep = mkPreposition "bajo" ; + under_Prep = mkPrep "bajo" ; very_AdA = ss "muy" ; want_VV = mkVV (verboV (querer_64 "querer")) ; we_Pron = @@ -130,8 +130,8 @@ lin whoPl_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Pl} ; whoSg_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Sg} ; why_IAdv = ss "porqué" ; - without_Prep = mkPreposition "sin" ; - with_Prep = mkPreposition "con" ; + without_Prep = mkPrep "sin" ; + with_Prep = mkPrep "con" ; yes_Phr = ss "sí" ; youSg_Pron = mkPronoun "tu" "te" "te" "tí" diff --git a/resource-1.0/swedish/ExtraSweAbs.gf b/resource-1.0/swedish/ExtraSweAbs.gf new file mode 100644 index 00000000..9371b3e1 --- /dev/null +++ b/resource-1.0/swedish/ExtraSweAbs.gf @@ -0,0 +1,7 @@ +-- Structures special for Swedish. These are not implemented in other +-- Scandinavian languages. + +abstract ExtraSweAbs = ExtraScandAbs ** { + + +} \ No newline at end of file diff --git a/resource-1.0/swedish/LexiconSwe.gf b/resource-1.0/swedish/LexiconSwe.gf index 80e6db9a..b8c7bc75 100644 --- a/resource-1.0/swedish/LexiconSwe.gf +++ b/resource-1.0/swedish/LexiconSwe.gf @@ -8,18 +8,18 @@ flags lin airplane_N = regGenN "flygplan" neutrum ; - answer_V2S = mkV2S (regV "svarar") "till" ; + answer_V2S = mkV2S (regV "svarar") (mkPrep "till") ; apartment_N = mk2N "lägenhet" "lägenheter" ; apple_N = regGenN "äpple" neutrum ; art_N = mk2N "konst" "konster" ; - ask_V2Q = mkV2Q (regV "frågar") [] ; + ask_V2Q = mkV2Q (regV "frågar") noPrep ; baby_N = regGenN "bebis" utrum ; bad_A = irregA "dålig" "sämre" "sämst"; bank_N = mk2N "bank" "banker" ; beautiful_A = mk3A "vacker" "vackert" "vackra" ; become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven") ; beer_N = regGenN "öl" neutrum ; - beg_V2V = mkV2V (mkV "be" "ber""be" "blad" "bett" "bedd") [] "att" ; + beg_V2V = mkV2V (mkV "be" "ber""be" "blad" "bett" "bedd") noPrep (mkPrep "att") ; big_A = irregA "stor" "större" "störst"; bike_N = mk2N "cykel" "cyklar" ; bird_N = mk2N "fågel" "fåglar" ; @@ -33,7 +33,7 @@ lin bread_N = regGenN "bröd" neutrum ; break_V2 = dirV2 (partV (mkV "slå" "slår" "slå" "slog" "slagit" "slagen") "sönder") ; broad_A = mk2A "bred" "brett" ; - brother_N2 = mkN2 ((mkN "bror" "brodern" "bröder" "bröderna")) "till" ; + brother_N2 = mkN2 ((mkN "bror" "brodern" "bröder" "bröderna")) (mkPrep "till") ; brown_A = regA "brun" ; butter_N = regGenN "smör" neutrum ; buy_V2 = dirV2 (mk2V "köpa" "köpte") ; @@ -59,18 +59,18 @@ lin cousin_N = mk2N "kusin" "kusiner" ; cow_N = mk2N "ko" "kor" ; die_V = (mkV "dö" "dör" "dö" "dog" "dött" "dödd") ; ---- - distance_N3 = mkN3 (mk2N "avstånd" "avstånd") "från" "till" ; + distance_N3 = mkN3 (mk2N "avstånd" "avstånd") (mkPrep "från") (mkPrep "till") ; dirty_A = regA "smutsig" ; doctor_N = mk2N "läkare" "läkare" ; dog_N = regGenN "hund" utrum ; door_N = regGenN "dörr" utrum ; drink_V2 = dirV2 (irregV "dricka" "drack" "druckit") ; - easy_A2V = mkA2V (mk2A "lätt" "lätt") "för" ; + easy_A2V = mkA2V (mk2A "lätt" "lätt") (mkPrep "för") ; eat_V2 = dirV2 (irregV "äta" "åt" "ätit") ; empty_A = mkA "tom" "tomt" "tomma" "tomma" "tommare" "tommast" "tommaste" ; enemy_N = regGenN "fiende" neutrum ; factory_N = mk2N "fabrik" "fabriker" ; - father_N2 = mkN2 ((mkN "far" "fadern" "fäder" "fäderna")) "till" ; + father_N2 = mkN2 ((mkN "far" "fadern" "fäder" "fäderna")) (mkPrep "till") ; fear_VS = mkVS (regV "fruktar") ; find_V2 = dirV2 (irregV "finna" "fann" "funnit") ; fish_N = mk2N "fisk" "fiskar" ; @@ -108,19 +108,19 @@ lin learn_V2 = dirV2 (reflV (mkV "lära" "lär" "lär" "lärde" "lärt" "lärd")) ; leather_N = mkN "läder" "lädret" "läder" "lädren" ; leave_V2 = dirV2 (regV "lämnar") ; - like_V2 = mkV2 (mk2V "tycka" "tyckte") "om" ; - listen_V2 = mkV2 (regV "lyssnar") "på" ; + like_V2 = mkV2 (mk2V "tycka" "tyckte") (mkPrep "om") ; + listen_V2 = mkV2 (regV "lyssnar") (mkPrep "på") ; live_V = (irregV "leva" "levde" "levt") ; ---- ? long_A = irregA "lång" "längre" "längst" ; lose_V2 = dirV2 (regV "förlora") ; love_N = regGenN "kärlek" utrum ; love_V2 = dirV2 (regV "älska") ; man_N = (mkN "man" "mannen" "män" "männen") ; - married_A2 = mkA2 (mk2A "gift" "gift") "med" ; + married_A2 = mkA2 (mk2A "gift" "gift") (mkPrep "med") ; meat_N = regGenN "kött" neutrum ; milk_N = regGenN "mjölk" utrum ; ---- -ar? moon_N = regGenN "måne" utrum ; - mother_N2 = mkN2 (mkN "mor" "modern" "mödrar" "mödrarna") "till" ; + mother_N2 = mkN2 (mkN "mor" "modern" "mödrar" "mödrarna") (mkPrep "till") ; mountain_N = regGenN "berg" neutrum ; music_N = mk2N "musik" "musiker" ; ---- er ? narrow_A = regA "smal" ; @@ -129,9 +129,9 @@ lin oil_N = regGenN "olja" utrum ; old_A = mkA "gammal" "gammalt" "gamla" "gamla" "äldre" "äldst" "äldsta" ; open_V2 = dirV2 (regV "öppna") ; - paint_V2A = mkV2A (regV "måla") [] ; + paint_V2A = mkV2A (regV "måla") noPrep ; paper_N = mkN "papper" "pappret" "papper" "pappren" ; - paris_PN = regPN "Paris" neutrum ; + paris_PN = regGenPN "Paris" neutrum ; peace_N = regGenN "fred" utrum ; ---- ar? pen_N = regGenN "penna" utrum ; planet_N = mk2N "planet" "planeter" ; @@ -158,8 +158,8 @@ lin sea_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ; seek_V2 = dirV2 (mk2V "söka" "sökte") ; see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ; - sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") "till" ; - send_V3 = dirV3 (regV "skicka") "till" ; + sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") (mkPrep "till") ; + send_V3 = dirV3 (regV "skicka") (mkPrep "till") ; sheep_N = mk2N "får" "får" ; ship_N = regGenN "skepp" neutrum ; shirt_N = regGenN "skjorta" utrum ; @@ -183,7 +183,7 @@ lin switch8off_V2 = dirV2 (partV (irregV "stänga" "stängde" "stängt") "av") ; switch8on_V2 = dirV2 (partV (irregV "slå" "slog" "slagit") "på") ; table_N = regGenN "bord" neutrum ; - talk_V3 = mkV3 (regV "prata") "till" "om" ; + talk_V3 = mkV3 (regV "prata") (mkPrep "till") (mkPrep "om") ; teacher_N = mk2N "lärare" "lärare" ; teach_V2 = dirV2 (regV "undervisa") ; television_N = mk2N "television" "televisioner" ; @@ -197,11 +197,11 @@ lin understand_V2 = dirV2 (mkV "förstå" "förstår" "förstå" "förstod" "förstått" "förstådd") ; university_N = regGenN "universitet" neutrum ; village_N = mkN "by" "byn" "byar" "byarna" ; - wait_V2 = mkV2 (regV "vänta") "på" ; + wait_V2 = mkV2 (regV "vänta") (mkPrep "på") ; walk_V = (mkV "gå" "går" "gå" "gick" "gått" "gången") ; warm_A = regA "varm" ; war_N = regGenN "krig" neutrum ; - watch_V2 = mkV2 (regV "titta") "på" ; + watch_V2 = mkV2 (regV "titta") (mkPrep "på") ; water_N = mkN "vatten" "vattnet" "vatten" "vattnen" ; white_A = regA "vit" ; window_N = mkN "fönster" "fönstret" "fönster" "fönstren" ; @@ -218,9 +218,9 @@ lin now_Adv = mkAdv "nu" ; already_Adv = mkAdv "redan" ; song_N = mk2N "sång" "sånger" ; - add_V3 = mkV3 (partV (irregV "lägga" "lade" "lagt") "till") [] "till" ; + add_V3 = mkV3 (partV (irregV "lägga" "lade" "lagt") "till") noPrep (mkPrep "till") ; number_N = mkN "nummer" "numret" "numren" "numren" ; - put_V2 = mkV2 (mkV "sätta" "sätter" "sätt" "satte" "satt" "satt") [] ; + put_V2 = mkV2 (mkV "sätta" "sätter" "sätt" "satte" "satt" "satt") noPrep ; stop_V = regV "stanna" ; jump_V = regV "hoppa" ; @@ -315,7 +315,7 @@ lin flow_V = rinna_V ; fly_V = flyga_V ; freeze_V = frysa_V ; - give_V3 = dirV3 giva_V "till"; + give_V3 = dirV3 giva_V (mkPrep "till"); hit_V2 = dirV2 (slå_V) ; hold_V2 = dirV2 (hålla_V) ; hunt_V2 = dirV2 (regV "jaga") ; @@ -348,6 +348,7 @@ lin wipe_V2 = dirV2 (regV "torka") ; breathe_V = depV (regV "anda") ; - fight_V2 = mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") "med" ; + fight_V2 = + mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") (mkPrep "med") ; } ; diff --git a/resource-1.0/swedish/ParadigmsSwe.gf b/resource-1.0/swedish/ParadigmsSwe.gf index 4c98e8b5..287a76e4 100644 --- a/resource-1.0/swedish/ParadigmsSwe.gf +++ b/resource-1.0/swedish/ParadigmsSwe.gf @@ -59,7 +59,8 @@ oper -- Prepositions used in many-argument functions are just strings. - Preposition : Type = Str ; + mkPrep : Str -> Prep ; + noPrep : Prep ; -- empty string --2 Nouns @@ -100,7 +101,7 @@ oper -- -- Relational nouns ("daughter of x") need a preposition. - mkN2 : N -> Preposition -> N2 ; + mkN2 : N -> Prep -> N2 ; -- The most common preposition is "av", and the following is a -- shortcut for regular, $nonhuman$ relational nouns with "av". @@ -112,7 +113,7 @@ oper -- -- Three-place relational nouns ("the connection from x to y") need two prepositions. - mkN3 : N -> Preposition -> Preposition -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; --3 Relational common noun phrases @@ -127,7 +128,8 @@ oper -- -- Proper names, with a regular genitive, are formed as follows - regPN : Str -> Gender -> PN ; -- John, John's + regGenPN : Str -> Gender -> PN ; + regPN : Str -> PN ; -- utrum -- Sometimes you can reuse a common noun as a proper name, e.g. "Bank". @@ -167,7 +169,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Preposition -> A2 ; + mkA2 : A -> Prep -> A2 ; --2 Adverbs @@ -182,12 +184,6 @@ oper mkAdA : Str -> AdA ; ---2 Prepositions --- --- A preposition is just a string. - - mkPreposition : Str -> Preposition ; - --2 Verbs -- -- The worst case needs five forms. @@ -234,7 +230,7 @@ oper -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; @@ -243,8 +239,8 @@ oper -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Preposition -> Preposition -> V3 ; -- tala med om - dirV3 : V -> Preposition -> V3 ; -- ge _ till + mkV3 : V -> Prep -> Prep -> V3 ; -- tala med om + dirV3 : V -> Prep -> V3 ; -- ge _ till dirdirV3 : V -> V3 ; -- ge _ _ --3 Other complement patterns @@ -254,18 +250,18 @@ oper mkV0 : V -> V0 ; mkVS : V -> VS ; - mkV2S : V -> Str -> V2S ; + mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; - mkV2V : V -> Str -> Str -> V2V ; + mkV2V : V -> Prep -> Prep -> V2V ; mkVA : V -> VA ; - mkV2A : V -> Str -> V2A ; + mkV2A : V -> Prep -> V2A ; mkVQ : V -> VQ ; - mkV2Q : V -> Str -> V2Q ; + mkV2Q : V -> Prep -> V2Q ; mkAS : A -> AS ; - mkA2S : A -> Str -> A2S ; + mkA2S : A -> Prep -> A2S ; mkAV : A -> AV ; - mkA2V : A -> Str -> A2V ; + mkA2V : A -> Prep -> A2V ; -- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated -- just as synonyms of $V2$, and the second argument is given @@ -292,6 +288,9 @@ oper nominative = Nom ; genitive = Gen ; + mkPrep p = {s = p ; lock_Prep = <>} ; + noPrep = mkPrep [] ; + mkN = \apa,apan,apor,aporna -> { s = nounForms apa apan apor aporna ; g = case last apan of { @@ -381,11 +380,12 @@ oper } ; - mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ; - regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ; - mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; + mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ; + regN2 n g = mkN2 (regGenN n g) (mkPrep "av") ; + mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ; - regPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ; + regPN n = regGenPN n utrum ; + regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ; nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ; mkNP x y n g = {s = table {NPPoss _ => y ; _ => x} ; a = agrP3 g n ; p = P3 ; @@ -413,14 +413,12 @@ oper compoundA adj = {s = adj.s ; isComp = True ; lock_A = <>} ; - mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ; + mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ; mkAdv x = ss x ** {lock_Adv = <>} ; mkAdV x = ss x ** {lock_AdV = <>} ; mkAdA x = ss x ** {lock_AdA = <>} ; - mkPreposition p = p ; - mkV = \finna,finner,finn,fann,funnit,funnen -> let funn = ptPretForms funnen ; @@ -489,12 +487,12 @@ oper depV v = {s = v.s ; part = v.part ; vtype = VPass ; lock_V = <>} ; reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; lock_V = <>} ; - mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ; - dirV2 v = mkV2 v [] ; + mkV2 v p = v ** {c2 = p.s ; lock_V2 = <>} ; + dirV2 v = mkV2 v noPrep ; - mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ; - dirV3 v p = mkV3 v [] p ; - dirdirV3 v = dirV3 v [] ; + mkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ; + dirV3 v p = mkV3 v noPrep p ; + dirdirV3 v = dirV3 v noPrep ; mkV0 v = v ** {lock_V0 = <>} ; mkVS v = v ** {lock_VS = <>} ;