From 65ede6ff3557f785a777710f9a4cc32c577e1380 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 30 Apr 2010 13:44:33 +0000 Subject: [PATCH] globalized the resource tour --- lib/doc/tour/Makefile | 5 +- lib/doc/tour/MkTour.hs | 35 +- lib/doc/tour/tour.txt | 347 +++++++----- lib/doc/tour/tourSwe.html | 1085 +++++++++++++++++++++++++++++++++++++ 4 files changed, 1319 insertions(+), 153 deletions(-) create mode 100644 lib/doc/tour/tourSwe.html diff --git a/lib/doc/tour/Makefile b/lib/doc/tour/Makefile index 6cdd62298..b29fc1181 100644 --- a/lib/doc/tour/Makefile +++ b/lib/doc/tour/Makefile @@ -37,5 +37,8 @@ Spa: runghc MkTour Spa Spanish Swe: - txt2tags -thtml -o tourSwe.html tour.txt + runghc MkTour Swe Swedish + +Urd: + runghc MkTour Urd Urdu diff --git a/lib/doc/tour/MkTour.hs b/lib/doc/tour/MkTour.hs index 7acf555a9..3b9c4e188 100644 --- a/lib/doc/tour/MkTour.hs +++ b/lib/doc/tour/MkTour.hs @@ -1,5 +1,6 @@ module Main where +import Char import System original = "tour.txt" @@ -14,27 +15,30 @@ main = do writeFile txt [] script <- mkTour lan language src txt gfs system $ "gf -s Demo.pgf <" ++ gfs - system $ "txt2tags -thtml " ++ txt + system $ "txt2tags --toc -thtml " ++ txt mkTour :: String -> String -> [String] -> FilePath -> FilePath -> IO () mkTour lan language src txt gfs = mapM_ mk src where - mk line = case line of - '>':command -> do -- gf command - let comm = loc command - apptxt ('>':comm) - appgfs (comm ++ " | " ++ appcomm) - appgfs "\n" - '*':_ -> return () -- gf-generated text - '#':_ -> return () -- Swedish-specific line - _ -> apptxt (loc line) + mk ll = do + let (lans,line) = lansline ll + if (not (null lans) && not (elem lan lans)) -- language-specific, not for lan + then return () + else case line of + '>':command -> do -- gf command + let comm = loc command + apptxt ('>':comm) + appgfs (comm ++ " | " ++ appcomm) + appgfs "\n" + '*':_ -> return () -- gf-generated text + _ -> apptxt (loc line) appgfs line = appendFile gfs line >> appendFile gfs "\n" loc line = case line of - 'S':'w':'e':'d':'i':'s':'h':cs -> language ++ loc cs - 'S':'w':'e' :cs -> lan ++ loc cs + 'L':'A':'N':'G':'U':'A':'G':'E':cs -> language ++ loc cs + 'L':'N':'G' :cs -> lan ++ loc cs c :cs -> c : loc cs _ -> line @@ -42,6 +46,9 @@ mkTour lan language src txt gfs = mapM_ mk src where appcomm = "wf -append -file=" ++ txt + lansline ll = case ll of + '#':cs -> let (la,li) = break isSpace cs in (langs la, drop 1 li) + _ -> ([],ll) + + langs = words . (map (\c -> if c==',' then ' ' else c)) - - diff --git a/lib/doc/tour/tour.txt b/lib/doc/tour/tour.txt index ab9ba1f9d..a6d46057e 100644 --- a/lib/doc/tour/tour.txt +++ b/lib/doc/tour/tour.txt @@ -1,20 +1,20 @@ -A Guided Tour of Swedish Grammar +A Guided Tour of LANGUAGE Grammar Aarne Ranta -%!style(html) : utf8 -%!postproc(html) : "#SWE" "" -%!postproc(html) : "sswedish" "Swedish" -This is an introduction to the basic grammar of Swedish. +%!style(html) : utf8 + + +This is an introduction to the basic grammar of LANGUAGE. It is guided by a computer program that knows the rules of the grammar. All examples shown during the tour have been produced by that program. You can read this document as it is, to get an -overview of Swedish grammar. +overview of LANGUAGE grammar. However, really to exploit the linguistic knowledge included in the program, you should try out every rule by itself and also vary the rules in interaction with the computer. -The same tour is available for 16 languages. +The same tour is (or will be) available for 17 languages. - [Arabic tourAra.html] - [Bulgarian tourBul.html] - [Catalan tourCat.html] @@ -30,16 +30,17 @@ The same tour is available for 16 languages. - [Romanian tourRon.html] - [Russian tourRus.html] - [Spanish tourSpa.html] -- [swedish tour.html] +- [Swedish tourSwe.html] +- [Urdu tourUrd.html] -To contribute a new language, see the -[GF Resource Grammar Project http://grammaticalframework.org/doc/gfss]. +See the last section of this document for how to contribute support for +new languages as a developer. =Computer prerequisites= -To use the Swedish grammar program and test the grammar yourself, you need +To use the LANGUAGE grammar program and test the grammar yourself, you need - a computer with Linux, Mac OS, or Windows - the program GF (Grammatical Framework), downloadable from the [GF website http://grammaticalframework.org] @@ -57,18 +58,18 @@ the shell command ``` Then initialize the shell with a couple of handy commands: -| ``%forms`` | show the forms of a word or a phrase in Swedish | -| ``%numeral`` | translate a number to a Swedish numeral expression | -| ``%table`` | show the inflection table a word or a phrase in Swedish | -| ``%translate`` | translate an utterance from English to Swedish | +| ``%forms`` | show the forms of a word or a phrase in LANGUAGE | +| ``%numeral`` | translate a number to a LANGUAGE numeral expression | +| ``%table`` | show the inflection table a word or a phrase in LANGUAGE | +| ``%translate`` | translate an utterance from English to LANGUAGE | Initialization is made with the command macro definitions in GF: ``` -> dc translate ps -lextext ?0 | parse -cat=Utt -lang=DemoEng | linearize -lang=DemoSwe -> dc table linearize -table -lang=DemoSwe ?0 -> dc forms linearize -list -lang=DemoSwe ?0 -> dc numeral ps -chars ?0 | p -cat=Digits -lang=DemoSwe | pt -transfer=digits2num | l -lang=DemoSwe +> dc translate ps -lextext ?0 | parse -cat=Utt -lang=Eng | linearize -lang=LNG +> dc table linearize -table -lang=LNG ?0 +> dc forms linearize -list -lang=LNG ?0 +> dc numeral ps -chars ?0 | p -cat=Digits -lang=LNG | pt -transfer=digits2num | l -bind -lang=LNG ``` This is just to save you some work afterwards and to make this document clearer; you could quite as well use the basic commands that are predifined @@ -106,7 +107,7 @@ The inflection forms of nouns are shown in the following example: ``` The forms together are an example of an **inflection pattern**. Here are some inflection patterns. -#SWE They show the declensions 1 to 5. +#Swe They show the declensions 1 to 5. ``` > %forms flower_N * blomma, blommas, blomman, blommans, blommor, blommors, blommorna, blommornas @@ -118,17 +119,17 @@ Here are some inflection patterns. * katt, katts, katten, kattens, katter, katters, katterna, katternas > %forms apple_N -* äpple, äpples, äpplet, äpplets, äpplen, äpplens, äpplena, äpplenas +* Ă€pple, Ă€pples, Ă€pplet, Ă€pplets, Ă€pplen, Ă€pplens, Ă€pplena, Ă€pplenas > %forms house_N * hus, hus, huset, husets, hus, hus, husen, husens ``` The symbol ``N`` is used in the program to denote nouns. Here it is suffixed to -English words to indicate the meanings of the Swedish nouns. This meaning +English words to indicate the meanings of the LANGUAGE nouns. This meaning can be approximative, or just cover one of the possible senses. In addition to inflection forms, -Swedish nouns also have a gender. The gender is reflected, among +LANGUAGE nouns also have a gender. The gender is reflected, among other things, in the indefinite article used with the nouns. ``` > %translate "a man" @@ -144,7 +145,7 @@ The grammar training program has a small lexicon, with just 182 nouns. To see all there nouns, together with their inflection forms and senses explained in English, you can do as follows: ``` -> generate_trees -cat=N -number=5 | linearize -treebank -list -lang=DemoSwe +> generate_trees -cat=N -number=5 | linearize -treebank -list -lang=LNG * airplane_N * flygplan, flygplans, flygplanet, flygplanets, flygplan, flygplans, flygplanen, flygplanens @@ -155,12 +156,12 @@ English, you can do as follows: ===Quizzes with nouns=== -If you already know some Swedish, +If you already know some LANGUAGE, you can try out a **morphology quiz**, which lets you train your knowledge -of Swedish noun inflection. You can later train your inflection skills with +of LANGUAGE noun inflection. You can later train your inflection skills with other parts of speech, just changing the symbol ``N`` to some other symbol. ``` - morpho_quiz -cat=N -lang=DemoSwe + morpho_quiz -cat=N -lang=LNG Welcome to GF Morphology Quiz. The quiz is over when you have done at least 10 examples @@ -181,12 +182,12 @@ other parts of speech, just changing the symbol ``N`` to some other symbol. (The above quiz example is swedish for all languages, for technical reasons.) The quiz questions are randomly generated, so you can use the same -quiz for increasing your Swedish skills over and over again. +quiz for increasing your LANGUAGE skills over and over again. Another quiz is the **translation quiz**, which lets you to train translations -of nouns from English to Swedish (or, in fact, of any part of speech from any +of nouns from English to LANGUAGE (or, in fact, of any part of speech from any language to any other one). Here is how it goes -(to swedish, for technical reasons): +(to Swedish, for the sake of example): ``` translation_quiz -from=DemoEng -to=DemoSwe -cat=N Welcome to GF Translation Quiz. @@ -207,25 +208,25 @@ language to any other one). Here is how it goes ==Numerals and determiners== -Numerals are in Swedish the easiest way to build complex noun phrases from nouns, +Numerals are in LANGUAGE the easiest way to build complex noun phrases from nouns, since their forms are independent of the noun; the noun is just inflected in the plural indefinite. This is with the exception of "one", whose form depends on the gender of the noun. Here is a quick way to generate the numerals from 1 to 9: ``` -> generate_trees -cat=Sub10 -number=9 | l -lang=DemoEng,DemoSwe +> generate_trees -cat=Sub10 -number=9 | l -lang=Eng,LNG * en -* tvć +* tvĂ„ * tre * fyra * fem * sex * sju -* ćtta +* Ă„tta * nio ``` Any sequence of digits from 1 to 999999 can be translated -to a Swedish numeral with the ``%numeral`` command: +to a LANGUAGE numeral with the ``%numeral`` command: ``` > %numeral "10" * tio @@ -243,9 +244,9 @@ Numerals can be combined with nouns to form **noun phrases**: > %translate "one boy" * en pojke > %translate "one apple" -* ett äpple +* ett Ă€pple > %translate "two boys" -* tvć pojkar +* tvĂ„ pojkar > %translate "eleven cars" * elva bilar ``` @@ -267,8 +268,8 @@ we already saw the indefinite articles: * ett hus ``` Here are examples with definite articles. -#SWE In Swedish, they are expressed by inflecting the noun -#SWE rather than adding a word like English //the//. +#Swe In LANGUAGE, they are expressed by inflecting the noun +#Swe rather than adding a word like English //the//. ``` > %translate "the man" * mannen @@ -285,7 +286,7 @@ Here are examples with definite articles. Definite articles in the plural: ``` > %translate "the men" -* männen +* mĂ€nnen > %translate "the women" * kvinnorna @@ -301,7 +302,7 @@ English, like many other languages, have no explicit indefinite article: just use the plural form of the noun. ``` > %translate "men" -* män +* mĂ€n > %translate "women" * kvinnor @@ -315,58 +316,58 @@ just use the plural form of the noun. Other common determiners are shown in the following: ``` > %translate "this car" -* den här bilen +* den hĂ€r bilen > %translate "that car" -* den där bilen +* den dĂ€r bilen > %translate "these cars" -* de här bilarna +* de hĂ€r bilarna > %translate "those cars" -* de där bilarna +* de dĂ€r bilarna > %translate "some cars" -* nćgra bilar +* nĂ„gra bilar > %translate "all cars" * alla bilar ``` Generate more examples of nouns with determiners: ``` -> gr -number=11 (UttNP (DetCN ? (UseN ?))) | l -lang=DemoEng,DemoSwe +> gr -number=11 (UttNP (DetCN ? (UseN ?))) | l -lang=Eng,LNG * much reason * mycket anledning * * few grammars -* fć grammatiker +* fĂ„ grammatiker * * some teacher -* nćgon lärare +* nĂ„gon lĂ€rare ``` You will find out that other determiners can combine with numerals, such as in ``` > %translate "these seven sisters" -* de här sju systrarna +* de hĂ€r sju systrarna > %translate "the seven sisters" * de sju systrarna ``` -#SWE thus with a numeral, the definite article suddenly appears as a word. +#Swe thus with a numeral, the definite article suddenly appears as a word. The random generation above used a **pattern** for generating expressions of the form ``(UttNP (DetCN ? (UseN ?)))``, where just the question marks may vary. Such patterns can also be used to fine-tune quizzes. For instance, here is a translation quiz for nouns with determiners: ``` - trans_quiz -from=DemoEng -to=DemoSwe (UttNP (DetCN ? (UseN ?))) + trans_quiz -from=DemoEng -to=DemoLNG (UttNP (DetCN ? (UseN ?))) ``` ==Adjectives== Adjectives generally have more forms than nouns. Here is an example showing the -available forms for Swedish adjectives: +available forms for LANGUAGE adjectives: ``` > %table warm_A * s (AF (APosit (Strong (GSg Utr))) Nom) : varm @@ -392,10 +393,10 @@ words similar to //more// and //most//. Here are some examples of adjective inflections: ``` > %forms good_A -* god, gods, gott, gotts, goda, godas, goda, godas, goda, godas, bättre, bättres, bäst, bästs, bästa, bästas +* god, gods, gott, gotts, goda, godas, goda, godas, goda, godas, bĂ€ttre, bĂ€ttres, bĂ€st, bĂ€sts, bĂ€sta, bĂ€stas > %forms bad_A -* dćlig, dćligs, dćligt, dćligts, dćliga, dćligas, dćliga, dćligas, dćliga, dćligas, sämre, sämres, sämst, sämsts, sämsta, sämstas +* dĂ„lig, dĂ„ligs, dĂ„ligt, dĂ„ligts, dĂ„liga, dĂ„ligas, dĂ„liga, dĂ„ligas, dĂ„liga, dĂ„ligas, sĂ€mre, sĂ€mres, sĂ€mst, sĂ€msts, sĂ€msta, sĂ€mstas > %forms rotten_A * rutten, ruttens, ruttet, ruttets, ruttna, ruttnas, ruttna, ruttnas, ruttna, ruttnas, ruttnare, ruttnares, ruttnast, ruttnasts, ruttnaste, ruttnastes @@ -408,7 +409,7 @@ Here are some examples of adjective inflections: ``` The morpho quiz for adjectives is as one would expect: ``` - morpho_quiz -cat=A -lang=DemoSwe + morpho_quiz -cat=A -lang=DemoLNG ``` ==The use of adjectives== @@ -433,39 +434,39 @@ bare noun: ``` Here are the quizzes for training the adjectival modification of nouns: ``` - translate_quiz -from=DemoEng -to=DemoSwe (AdjCN (PositA ?) (UseN ?)) + translate_quiz -from=DemoEng -to=DemoLNG (AdjCN (PositA ?) (UseN ?)) - morpho_quiz -lang=DemoSwe (AdjCN (PositA ?) (UseN ?)) + morpho_quiz -lang=DemoLNG (AdjCN (PositA ?) (UseN ?)) ``` Adjectives can be combined to **adjectival phrases** (AP). One way to do this is by means of **adadjectives**, such as //very// and //too//: ``` -> p -lang=DemoEng -cat=AP "very old" | l -lang=DemoSwe +> p -lang=Eng -cat=AP "very old" | l -lang=LNG * mycket gammal -> p -lang=DemoEng -cat=AP "too heavy" | l -lang=DemoSwe -* för tung +> p -lang=Eng -cat=AP "too heavy" | l -lang=LNG +* för tung ``` The **comparative** forms can be used for building adjectival phrases together with noun phrase complements: ``` -> p -lang=DemoEng -cat=AP "warmer than the sun" | l -lang=DemoSwe -* varmare än solen +> p -lang=Eng -cat=AP "warmer than the sun" | l -lang=LNG +* varmare Ă€n solen ``` Also these complex AP's can modify common nouns. The word order can be different from modification with simple adjectives. ``` -> p -lang=DemoEng -cat=CN "country warmer than the sun" | l -lang=DemoSwe -* land varmare än solen +> p -lang=Eng -cat=CN "country warmer than the sun" | l -lang=LNG +* land varmare Ă€n solen -> p -lang=DemoEng -cat=CN "very warm country" | l -lang=DemoSwe +> p -lang=Eng -cat=CN "very warm country" | l -lang=LNG * mycket varmt land ``` Quizzes for such constructions are as follows: ``` - translate_quiz -from=DemoEng -to=DemoSwe (AdjCN ? (UseN ?)) + translate_quiz -from=DemoEng -to=DemoLNG (AdjCN ? (UseN ?)) - morpho_quiz -lang=DemoSwe (AdjCN ? (UseN ?)) + morpho_quiz -lang=DemoLNG (AdjCN ? (UseN ?)) ``` @@ -476,11 +477,11 @@ Personal pronouns have many forms: > %table we_Pron * s NPNom : vi * s NPAcc : oss -* s (NPPoss (GSg Utr)) : vćr -* s (NPPoss (GSg Neutr)) : vćrt -* s (NPPoss GPl) : vćra +* s (NPPoss (GSg Utr)) : vĂ„r +* s (NPPoss (GSg Neutr)) : vĂ„rt +* s (NPPoss GPl) : vĂ„ra ``` -Here are the forms of all personal pronouns of Swedish: +Here are the forms of all personal pronouns of LANGUAGE: ``` > %forms i_Pron * jag, mig, min, mitt, mina @@ -498,7 +499,7 @@ Here are the forms of all personal pronouns of Swedish: * hon, henne, hennes, hennes, hennes > %forms we_Pron -* vi, oss, vćr, vćrt, vćra +* vi, oss, vĂ„r, vĂ„rt, vĂ„ra > %forms youPl_Pron * ni, er, er, ert, era @@ -511,7 +512,7 @@ Notice the polite and plural forms of //you//, which English doesn't have. The **possessive** forms of pronouns are used as determiners: ``` > %translate "her house , my car and our children" -* hennes hus , min bil och vćra barn +* hennes hus , min bil och vĂ„ra barn ``` Here's the pattern for training the combination of possessive pronouns and nouns, with the ``morpho_quiz`` and ``translate_quiz`` commands: @@ -535,7 +536,7 @@ word may be shown, but just a different form of the noun phrase. * till mitt gula hus > %translate "from my yellow house" -* frćn mitt gula hus +* frĂ„n mitt gula hus > %translate "with my yellow house" * med mitt gula hus @@ -586,13 +587,13 @@ Here are some inflection examples: * spelar, spelas, spelade, spelades, spela, spelas, spela, spelas, spelat, spelats, spelad, spelads, spelat, spelats, spelade, spelades, spelade, spelades, spelade, spelades, > %forms buy_V2 -* köper, köps, köpte, köptes, köp, köps, köpa, köpas, köpt, köpts, köpt, köpts, köpt, köpts, köpta, köptas, köpta, köptas, köpta, köptas, , +* köper, köps, köpte, köptes, köp, köps, köpa, köpas, köpt, köpts, köpt, köpts, köpt, köpts, köpta, köptas, köpta, köptas, köpta, köptas, , > %forms run_V * springer, springs, sprang, sprangs, spring, springs, springa, springas, sprungit, sprungits, sprungen, sprungens, sprunget, sprungets, sprungna, sprungnas, sprungna, sprungnas, sprungna, sprungnas, > %forms walk_V -* gćr, gćs, gick, gicks, gć, gćs, gć, gćs, gćtt, gćtts, gćngen, gćngens, gćnget, gćngets, gćngna, gćngnas, gćngna, gćngnas, gćngna, gćngnas, +* gĂ„r, gĂ„s, gick, gicks, gĂ„, gĂ„s, gĂ„, gĂ„s, gĂ„tt, gĂ„tts, gĂ„ngen, gĂ„ngens, gĂ„nget, gĂ„ngets, gĂ„ngna, gĂ„ngnas, gĂ„ngna, gĂ„ngnas, gĂ„ngna, gĂ„ngnas, ``` In some languages, verbs can be very irregular. @@ -618,7 +619,7 @@ and the **complements** (what is done, to whom it is done, etc). The simplest predication is with **intransitive verbs**, which only have the subject: ``` > %translate "he walks" -* han gćr +* han gĂ„r > %translate "we sleep" * vi sover @@ -630,66 +631,66 @@ A predication forms a **clause**, which corresponds to many different **sentences**. Each sentence is built by fixing a **tense**, a **polarity** (yes or no), and possibly a word order (inverted question, subordinate clause), a mood (indicative, subjunctive). Here is a table showing what forms a clause -can have in Swedish: +can have in LANGUAGE: ``` -> p -cat=Cl -lang=DemoEng "the man walks" | %table -* s Pres Simul Pos Main : mannen gćr -* s Pres Simul Pos Inv : gćr mannen -* s Pres Simul Pos Sub : mannen gćr -* s Pres Simul Neg Main : mannen gćr inte -* s Pres Simul Neg Inv : gćr mannen inte -* s Pres Simul Neg Sub : mannen inte gćr -* s Pres Anter Pos Main : mannen har gćtt -* s Pres Anter Pos Inv : har mannen gćtt -* s Pres Anter Pos Sub : mannen har gćtt -* s Pres Anter Neg Main : mannen har inte gćtt -* s Pres Anter Neg Inv : har mannen inte gćtt -* s Pres Anter Neg Sub : mannen inte har gćtt +> p -cat=Cl -lang=Eng "the man walks" | %table +* s Pres Simul Pos Main : mannen gĂ„r +* s Pres Simul Pos Inv : gĂ„r mannen +* s Pres Simul Pos Sub : mannen gĂ„r +* s Pres Simul Neg Main : mannen gĂ„r inte +* s Pres Simul Neg Inv : gĂ„r mannen inte +* s Pres Simul Neg Sub : mannen inte gĂ„r +* s Pres Anter Pos Main : mannen har gĂ„tt +* s Pres Anter Pos Inv : har mannen gĂ„tt +* s Pres Anter Pos Sub : mannen har gĂ„tt +* s Pres Anter Neg Main : mannen har inte gĂ„tt +* s Pres Anter Neg Inv : har mannen inte gĂ„tt +* s Pres Anter Neg Sub : mannen inte har gĂ„tt * s Past Simul Pos Main : mannen gick * s Past Simul Pos Inv : gick mannen * s Past Simul Pos Sub : mannen gick * s Past Simul Neg Main : mannen gick inte * s Past Simul Neg Inv : gick mannen inte * s Past Simul Neg Sub : mannen inte gick -* s Past Anter Pos Main : mannen hade gćtt -* s Past Anter Pos Inv : hade mannen gćtt -* s Past Anter Pos Sub : mannen hade gćtt -* s Past Anter Neg Main : mannen hade inte gćtt -* s Past Anter Neg Inv : hade mannen inte gćtt -* s Past Anter Neg Sub : mannen inte hade gćtt -* s Fut Simul Pos Main : mannen ska gć -* s Fut Simul Pos Inv : ska mannen gć -* s Fut Simul Pos Sub : mannen ska gć -* s Fut Simul Neg Main : mannen ska inte gć -* s Fut Simul Neg Inv : ska mannen inte gć -* s Fut Simul Neg Sub : mannen inte ska gć -* s Fut Anter Pos Main : mannen ska ha gćtt -* s Fut Anter Pos Inv : ska mannen ha gćtt -* s Fut Anter Pos Sub : mannen ska ha gćtt -* s Fut Anter Neg Main : mannen ska inte ha gćtt -* s Fut Anter Neg Inv : ska mannen inte ha gćtt -* s Fut Anter Neg Sub : mannen inte ska ha gćtt -* s Cond Simul Pos Main : mannen skulle gć -* s Cond Simul Pos Inv : skulle mannen gć -* s Cond Simul Pos Sub : mannen skulle gć -* s Cond Simul Neg Main : mannen skulle inte gć -* s Cond Simul Neg Inv : skulle mannen inte gć -* s Cond Simul Neg Sub : mannen inte skulle gć -* s Cond Anter Pos Main : mannen skulle ha gćtt -* s Cond Anter Pos Inv : skulle mannen ha gćtt -* s Cond Anter Pos Sub : mannen skulle ha gćtt -* s Cond Anter Neg Main : mannen skulle inte ha gćtt -* s Cond Anter Neg Inv : skulle mannen inte ha gćtt -* s Cond Anter Neg Sub : mannen inte skulle ha gćtt +* s Past Anter Pos Main : mannen hade gĂ„tt +* s Past Anter Pos Inv : hade mannen gĂ„tt +* s Past Anter Pos Sub : mannen hade gĂ„tt +* s Past Anter Neg Main : mannen hade inte gĂ„tt +* s Past Anter Neg Inv : hade mannen inte gĂ„tt +* s Past Anter Neg Sub : mannen inte hade gĂ„tt +* s Fut Simul Pos Main : mannen ska gĂ„ +* s Fut Simul Pos Inv : ska mannen gĂ„ +* s Fut Simul Pos Sub : mannen ska gĂ„ +* s Fut Simul Neg Main : mannen ska inte gĂ„ +* s Fut Simul Neg Inv : ska mannen inte gĂ„ +* s Fut Simul Neg Sub : mannen inte ska gĂ„ +* s Fut Anter Pos Main : mannen ska ha gĂ„tt +* s Fut Anter Pos Inv : ska mannen ha gĂ„tt +* s Fut Anter Pos Sub : mannen ska ha gĂ„tt +* s Fut Anter Neg Main : mannen ska inte ha gĂ„tt +* s Fut Anter Neg Inv : ska mannen inte ha gĂ„tt +* s Fut Anter Neg Sub : mannen inte ska ha gĂ„tt +* s Cond Simul Pos Main : mannen skulle gĂ„ +* s Cond Simul Pos Inv : skulle mannen gĂ„ +* s Cond Simul Pos Sub : mannen skulle gĂ„ +* s Cond Simul Neg Main : mannen skulle inte gĂ„ +* s Cond Simul Neg Inv : skulle mannen inte gĂ„ +* s Cond Simul Neg Sub : mannen inte skulle gĂ„ +* s Cond Anter Pos Main : mannen skulle ha gĂ„tt +* s Cond Anter Pos Inv : skulle mannen ha gĂ„tt +* s Cond Anter Pos Sub : mannen skulle ha gĂ„tt +* s Cond Anter Neg Main : mannen skulle inte ha gĂ„tt +* s Cond Anter Neg Inv : skulle mannen inte ha gĂ„tt +* s Cond Anter Neg Sub : mannen inte skulle ha gĂ„tt ``` The following quiz can be used for training the inflection of intransitive clauses: ``` - morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseV ?)) + morpho_quiz -lang=DemoLNG (PredVP (UsePron ?) (UseV ?)) ``` The following quiz translates English sentences in random tenses and polarities: ``` - translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) (UseV ?))) + translate_quiz -from=DemoEng -to=DemoLNG (UseCl ? ? (PredVP (UsePron ?) (UseV ?))) ``` ==Verbs with different predication patterns== @@ -697,14 +698,14 @@ The following quiz translates English sentences in random tenses and polarities: Transitive verbs take an object in the accusative case (if there is a case): ``` > %translate "he loves her" -* han älskar henne +* han Ă€lskar henne ``` A generalization is two-place verbs, where the object is in some other case, or has a preposition. What is transitive in one language can often require a preposition in another language: ``` > %translate "he waits for her" -* han väntar pć henne +* han vĂ€ntar pĂ„ henne > %translate "he likes her" * han tycker om henne @@ -718,13 +719,13 @@ There are also verbs that have a sentence or a question as an argument, possibly with an object: ``` > %translate "he said that the man walks" -* han sade att mannen gćr +* han sade att mannen gĂ„r > %translate "he wonders who sleeps" * han undrar vem som sover > %translate "he asked me who sleeps" -* han frćgade mig vem som sover +* han frĂ„gade mig vem som sover > %translate "we answer to him that everybody sleeps" * vi svarar till honom att alla sover @@ -732,32 +733,32 @@ possibly with an object: There are also verbs that take other verbs (with their complements) as arguments: ``` > %translate "we must sleep" -* vi mćste sova +* vi mĂ„ste sova > %translate "we want to wait for her" -* vi vill vänta pć henne +* vi vill vĂ€nta pĂ„ henne ``` The verb //to be// takes adjectives and noun phrases as arguments: ``` > %translate "he is very old" -* han är mycket gammal +* han Ă€r mycket gammal > %translate "he is an old man" -* han är en gammal man +* han Ă€r en gammal man ``` The following quiz can be used for training the inflection of clauses with any verb: ``` - morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) ?) + morpho_quiz -lang=DemoLNG (PredVP (UsePron ?) ?) ``` The following quiz can be used for training the inflection of clauses with //to be//: ``` - morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseComp ?)) + morpho_quiz -lang=DemoLNG (PredVP (UsePron ?) (UseComp ?)) ``` The following quiz translates English sentences in random tenses and polarities: ``` - translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) ?)) + translate_quiz -from=DemoEng -to=DemoLNG (UseCl ? ? (PredVP (UsePron ?) ?)) ``` @@ -766,7 +767,7 @@ The following quiz translates English sentences in random tenses and polarities: Questions are similar to sentences, but can have a different word order: ``` > %translate "is he very old" -* är han mycket gammal +* Ă€r han mycket gammal > %translate "would I sleep" * skulle jag sova @@ -778,7 +779,7 @@ instead of norman nouns: * vem sover inte > %translate "whom did she see" -* vem sćg hon +* vem sĂ„g hon ``` Sentences without interrogatives can be made to questions with **interrogative adverbs**: @@ -787,5 +788,75 @@ Sentences without interrogatives can be made to questions with * var ska vi sova > %translate "why didn't she wait for us" -* varför väntade hon inte pć oss +* varför vĂ€ntade hon inte pĂ„ oss ``` + + +=For developers= + +There are three levels of involvement, from the easiest to the hardest, ++ create the default tour for a language that is in the GF resource grammar library + (takes less than a minute, if you have the tools listed below) ++ customize the tour for a language that is in the library + (worth spending a couple of hours on) ++ add a language to the library and build the tour for it + (an undertaking of a few months) + + +1. To create the tour for a language that is in the library, e.g. Spanish, +just run +``` + make Spa +``` +in the directory ``GF/lib/doc/tour``. You need the following things for this +to work out +- the program GF (Grammatical Framework), downloadable from + the [GF website http://grammaticalframework.org] +- the precompiled grammar package ``Demo.pgf``, downloadable from + [here http://grammaticalframework.org/lib/doc/Demo.pgf.gz] or makeable in + ``GF/lib/src`` with ``make demo`` +- the command ``runghc`` available in any [GHC http://www.haskell.org/ghc] installation +- the command [``txt2tags`` http://txt2tags.sourceforge.net/] + + +2. To customize the tour, edit the master file ``GF/lib/doc/tour/tour.txt``. +The customization mainly proceeds by adding lines marked ``#Spa`` (if Spanish is +your target language). This can be done both for text lines, e.g. +``` + #Spa LANGUAGE has separate second-person plural pronouns for both genders. +``` +and for GF command lines, e.g. +``` + #Spa %translate "you are very old" +``` +In both cases, one can also add ``#Spa`` to the existing markings if they are +adequate, e.g. +``` + #Fre,Spa LANGUAGE has two genders: the masculine and the feminine. +``` +It's in particular for this purpose that we recommend using the variable ``LANGUAGE`` +rather than the constant ``Spanish``. The ``make`` procedure replaces the variable with +the constant automatically. Similarly, the language code ``Spa`` used in GF commands +should be avoided and the variable ``LNG`` used instead. + +In general, the master file ``tour.txt`` is processed line by line. It has five kinds +of lines, distinguished by the prefix of the line: +- ``#`` //LANGS// ``>`` //COMMAND// : language-specific GF command +- ``#`` //LANGS// //TEXT// : language-specific text +- ``>`` //COMMAND// : language-independent GF command +- ``*`` : ignored; included for the sake of documentation +- any other text : language-independet text + + +Here //LANGS// is a comma-separated list of 3-letter language codes, +such as ``Fre,Spa,Ita``. + + +3. To contribute a new language to the library, see the +[GF Resource Grammar Project http://grammaticalframework.org/doc/gfss]. + +In cases (2) and (3), please contribute your work to the GF community! + + + + diff --git a/lib/doc/tour/tourSwe.html b/lib/doc/tour/tourSwe.html new file mode 100644 index 000000000..f5c40d7cb --- /dev/null +++ b/lib/doc/tour/tourSwe.html @@ -0,0 +1,1085 @@ + + + + + +A Guided Tour of Swedish Grammar + +

A Guided Tour of Swedish Grammar

+ +Aarne Ranta
+
+ +

+
+

+ + +

+
+

+

+This is an introduction to the basic grammar of Swedish. +It is guided by a computer program that knows the rules of the grammar. +All examples shown during the tour have been produced by that program. +You can read this document as it is, to get an +overview of Swedish grammar. +However, really to exploit the linguistic knowledge included in the program, +you should try out every rule by itself and also vary the rules in +interaction with the computer. +

+

+The same tour is (or will be) available for 17 languages. +

+ + +

+See the last section of this document for how to contribute support for +new languages as a developer. +

+ +

Computer prerequisites

+

+To use the Swedish grammar program and test the grammar yourself, you need +

+ + +

+In the future, we plan to provide a web-based version of this grammar tour, +so that you can ran the program without downloading or installing anything. +

+

+After installing GF (see instructions at GF website), just start it by +the shell command +

+
+    gf Demo.pgf
+
+

+Then initialize the shell with a couple of handy commands: +

+ + + + + + + + + + + + + + + + + +
%formsshow the forms of a word or a phrase in Swedish
%numeraltranslate a number to a Swedish numeral expression
%tableshow the inflection table a word or a phrase in Swedish
%translatetranslate an utterance from English to Swedish
+ +

+Initialization is made with the command macro definitions in GF: +

+
+  > dc translate ps -lextext ?0 | parse -cat=Utt -lang=Eng | linearize -lang=Swe
+  > dc table linearize -table -lang=Swe ?0
+  > dc forms linearize -list -lang=Swe ?0
+  > dc numeral ps -chars ?0 | p -cat=Digits -lang=Swe | pt -transfer=digits2num | l -bind -lang=Swe
+
+

+This is just to save you some work afterwards and to make this document +clearer; you could quite as well use the basic commands that are predifined +in GF, and for some less frequent cases we'll actually use them directly. +

+

+The prompt sign > is produced by GF, and you should only +write what is after it. In this document, we will use two kinds of markings +of type-written lines: +

+ + + +

Words and inflection

+

+We are ready to start the tour. +We begin in the same way as grammar books usually do: +from words and their forms. We will also show the most basic +syntactic combinations, to explain how the words are used, but +syntax proper is treated in the next chapter. +

+ +

Nouns

+

+The inflection forms of nouns are shown in the following example: +

+
+  > %table flower_N
+  s Sg Indef Nom : blomma
+  s Sg Indef Gen : blommas
+  s Sg Def Nom : blomman
+  s Sg Def Gen : blommans
+  s Pl Indef Nom : blommor
+  s Pl Indef Gen : blommors
+  s Pl Def Nom : blommorna
+  s Pl Def Gen : blommornas
+  
+
+

+The forms together are an example of an inflection pattern. +Here are some inflection patterns. +They show the declensions 1 to 5. +

+
+  > %forms flower_N
+  blomma, blommas, blomman, blommans, blommor, blommors, blommorna, blommornas
+  
+  > %forms car_N
+  bil, bils, bilen, bilens, bilar, bilars, bilarna, bilarnas
+  
+  > %forms cat_N
+  katt, katts, katten, kattens, katter, katters, katterna, katternas
+  
+  > %forms apple_N
+  Àpple, Àpples, Àpplet, Àpplets, Àpplen, Àpplens, Àpplena, Àpplenas
+  
+  > %forms house_N
+  hus, hus, huset, husets, hus, hus, husen, husens
+
+

+The symbol N is used in the program to denote nouns. Here it is suffixed to +English words to indicate the meanings of the Swedish nouns. This meaning +can be approximative, or just cover one of the possible senses. +

+

+In addition to inflection forms, +Swedish nouns also have a gender. The gender is reflected, among +other things, in the indefinite article used with the nouns. +

+
+  > %translate "a man"
+  en man
+  
+  > %translate "a woman"
+  en kvinna
+  
+  > %translate "a house"
+  ett hus
+
+

+The grammar training program has a small lexicon, with just 182 nouns. To see +all there nouns, together with their inflection forms and senses explained in +English, you can do as follows: +

+
+  > generate_trees -cat=N -number=5 | linearize -treebank -list -lang=Swe
+  Demo: airplane_N
+  DemoSwe: flygplan, flygplans, flygplanet, flygplanets, flygplan, flygplans, flygplanen, flygplanens
+   Demo: animal_N
+  DemoSwe: djur, djurs, djuret, djurets, djur, djurs, djuren, djurens
+   Demo: apartment_N
+  DemoSwe: lÀgenhet, lÀgenhets, lÀgenheten, lÀgenhetens, lÀgenheter, lÀgenheters, lÀgenheterna, lÀgenheternas
+   Demo: apple_N
+  DemoSwe: Àpple, Àpples, Àpplet, Àpplets, Àpplen, Àpplens, Àpplena, Àpplenas
+   Demo: art_N
+  DemoSwe: konst, konsts, konsten, konstens, konster, konsters, konsterna, konsternas
+  
+  
+
+

+ +

Quizzes with nouns

+

+If you already know some Swedish, +you can try out a morphology quiz, which lets you train your knowledge +of Swedish noun inflection. You can later train your inflection skills with +other parts of speech, just changing the symbol N to some other symbol. +

+
+    morpho_quiz -cat=N -lang=Swe
+  
+    Welcome to GF Morphology Quiz.
+    The quiz is over when you have done at least 10 examples
+    with at least 75 % success.
+    You can interrupt the quiz by entering a line consisting of a dot ('.').
+  
+    vetenskap s Sg Def Gen
+    vetenskapens
+    > Yes.
+    Score 1/1
+  
+    kyrka s Pl Indef Nom
+    kyrker
+    > No, not kyrker, but
+    kyrkor
+    Score 1/2
+
+

+(The above quiz example is swedish for all languages, for technical reasons.) +

+

+The quiz questions are randomly generated, so you can use the same +quiz for increasing your Swedish skills over and over again. +

+

+Another quiz is the translation quiz, which lets you to train translations +of nouns from English to Swedish (or, in fact, of any part of speech from any +language to any other one). Here is how it goes +(to Swedish, for the sake of example): +

+
+    translation_quiz -from=DemoEng -to=DemoSwe -cat=N
+    Welcome to GF Translation Quiz.
+    The quiz is over when you have done at least 10 examples
+    with at least 75 % success.
+    You can interrupt the quiz by entering a line consisting of a dot ('.').
+   
+    ceiling
+    tak
+    > Yes.
+    Score 1/1
+    night
+    nat
+    > No, not nat, but
+    natt
+
+

+ +

Numerals and determiners

+

+Numerals are in Swedish the easiest way to build complex noun phrases from nouns, +since their forms are independent of the noun; the noun is just inflected in +the plural indefinite. This is with the exception of "one", whose form depends +on the gender of the noun. Here is a quick way to generate the numerals from 1 +to 9: +

+
+  > generate_trees -cat=Sub10 -number=9 | l -lang=Eng,Swe
+  two
+  tvÄ
+   three
+  tre
+   four
+  fyra
+   five
+  fem
+   six
+  sex
+   seven
+  sju
+   eight
+  Ätta
+   nine
+  nio
+   two
+  tvÄ
+
+

+Any sequence of digits from 1 to 999999 can be translated +to a Swedish numeral with the %numeral command: +

+
+  > %numeral "10"
+  tio
+  
+  > %numeral "11"
+  elva
+  
+  > %numeral "20"
+  tjugo
+  
+  > %numeral "123"
+  etthundra tjugotre
+  
+  > %numeral "999999"
+  niohundra nittioniotusen niohundra nittionio
+  
+
+

+Numerals can be combined with nouns to form noun phrases: +

+
+  > %translate "one boy"
+  en pojke
+  > %translate "one apple"
+  ett Àpple
+  > %translate "two boys"
+  tvÄ pojkar
+  > %translate "eleven cars"
+  elva bilar
+
+

+Numerals are a special case of determiners: words that are +combined with nouns to +form noun phrases. Articles are anouther special case; +we already saw the indefinite articles: +

+
+  > %translate "a man"
+  en man
+  
+  > %translate "a woman"
+  en kvinna
+  
+  > %translate "a car"
+  en bil
+  
+  > %translate "a house"
+  ett hus
+
+

+Here are examples with definite articles. +In Swedish, they are expressed by inflecting the noun +rather than adding a word like English the. +

+
+  > %translate "the man"
+  mannen
+  
+  > %translate "the woman"
+  kvinnan
+  
+  > %translate "the car"
+  bilen
+  
+  > %translate "the house"
+  huset
+
+

+Definite articles in the plural: +

+
+  > %translate "the men"
+  mÀnnen
+  
+  > %translate "the women"
+  kvinnorna
+  
+  > %translate "the cars"
+  bilarna
+  
+  > %translate "the houses"
+  husen
+
+

+The indefinite forms in the plural form look as follows. +English, like many other languages, have no explicit indefinite article: +just use the plural form of the noun. +

+
+  > %translate "men"
+  mÀn
+  
+  > %translate "women"
+  kvinnor
+  
+  > %translate "cars"
+  bilar
+  
+  > %translate "houses"
+  hus
+
+

+Other common determiners are shown in the following: +

+
+  > %translate "this car"
+  den hÀr bilen
+  
+  > %translate "that car"
+  den dÀr bilen
+  
+  > %translate "these cars"
+  de hÀr bilarna
+  
+  > %translate "those cars"
+  de dÀr bilarna
+  
+  > %translate "some cars"
+  nÄgra bilar
+  
+  > %translate "all cars"
+
+

+Generate more examples of nouns with determiners: +

+
+  > gr -number=11 (UttNP (DetCN ? (UseN ?))) | l -lang=Eng,Swe
+  some sister
+  nÄgon syster
+   many men
+  mÄnga mÀn
+   those dusts
+  de dÀr dammen
+   many pens
+  mÄnga pennor
+   some sticks
+  nÄgra pinnar
+   every boss
+  varje chef
+   few houses
+  fÄ hus
+   some wars
+  nÄgra krig
+   some school
+  nÄgon skola
+   many moons
+  mÄnga mÄnar
+   a flower
+  en blomma
+
+

+You will find out that other determiners can combine with numerals, such as in +

+
+  > %translate "these seven sisters"
+  de hÀr sju systrarna
+  
+  > %translate "the seven sisters"
+  de sju systrarna
+
+

+thus with a numeral, the definite article suddenly appears as a word. +

+

+The random generation above used a pattern for generating +expressions of the form (UttNP (DetCN ? (UseN ?))), where just the +question marks may vary. Such patterns can also be used to fine-tune quizzes. +For instance, here is a translation quiz for nouns with determiners: +

+
+    trans_quiz -from=DemoEng -to=DemoSwe (UttNP (DetCN ? (UseN ?)))
+
+

+ +

Adjectives

+

+Adjectives generally have more forms than nouns. Here is an example showing the +available forms for Swedish adjectives: +

+
+  > %table warm_A
+  s (AF (APosit (Strong (GSg Utr))) Nom) : varm
+  s (AF (APosit (Strong (GSg Utr))) Gen) : varms
+  s (AF (APosit (Strong (GSg Neutr))) Nom) : varmt
+  s (AF (APosit (Strong (GSg Neutr))) Gen) : varmts
+  s (AF (APosit (Strong GPl)) Nom) : varma
+  s (AF (APosit (Strong GPl)) Gen) : varmas
+  s (AF (APosit (Weak Sg)) Nom) : varma
+  s (AF (APosit (Weak Sg)) Gen) : varmas
+  s (AF (APosit (Weak Pl)) Nom) : varma
+  s (AF (APosit (Weak Pl)) Gen) : varmas
+  s (AF ACompar Nom) : varmare
+  s (AF ACompar Gen) : varmares
+  s (AF (ASuperl SupStrong) Nom) : varmast
+  s (AF (ASuperl SupStrong) Gen) : varmasts
+  s (AF (ASuperl SupWeak) Nom) : varmaste
+  s (AF (ASuperl SupWeak) Gen) : varmastes
+  
+
+

+The comparative and superlative forms are often formed syntactically, by using +words similar to more and most. +

+

+Here are some examples of adjective inflections: +

+
+  > %forms good_A
+  god, gods, gott, gotts, goda, godas, goda, godas, goda, godas, bÀttre, bÀttres, bÀst, bÀsts, bÀsta, bÀstas
+  
+  > %forms bad_A
+  dÄlig, dÄligs, dÄligt, dÄligts, dÄliga, dÄligas, dÄliga, dÄligas, dÄliga, dÄligas, sÀmre, sÀmres, sÀmst, sÀmsts, sÀmsta, sÀmstas
+  
+  > %forms rotten_A
+  rutten, ruttens, ruttet, ruttets, ruttna, ruttnas, ruttna, ruttnas, ruttna, ruttnas, ruttnare, ruttnares, ruttnast, ruttnasts, ruttnaste, ruttnastes
+  
+  > %forms important_A
+  viktig, viktigs, viktigt, viktigts, viktiga, viktigas, viktiga, viktigas, viktiga, viktigas, viktigare, viktigares, viktigast, viktigasts, viktigaste, viktigastes
+  
+  > %forms stupid_A
+  dum, dums, dumt, dumts, dumma, dummas, dumma, dummas, dumma, dummas, dummare, dummares, dummast, dummasts, dummaste, dummastes
+
+

+The morpho quiz for adjectives is as one would expect: +

+
+    morpho_quiz -cat=A -lang=DemoSwe
+
+

+ +

The use of adjectives

+

+Adjectives can be used to modify nouns. +The form of the adjective may then depend on the gender of the noun. +

+
+  > %translate "old man"
+  gammal man
+  
+  > %translate "old woman"
+  gammal kvinna
+  
+  > %translate "old house"
+  gammalt hus
+
+

+The adjective+noun combination is inflected for the same forms as the +bare noun: +

+
+  > parse -cat=CN "old house" | %forms
+  gammalt hus, gammalt hus, gamla hus, gamla hus, gamla huset, gamla husets, gamla hus, gamla hus, gamla hus, gamla hus, gamla husen, gamla husens
+
+

+Here are the quizzes for training the adjectival modification of nouns: +

+
+    translate_quiz -from=DemoEng -to=DemoSwe (AdjCN (PositA ?) (UseN ?))
+    
+    morpho_quiz -lang=DemoSwe (AdjCN (PositA ?) (UseN ?))
+
+

+Adjectives can be combined to adjectival phrases (AP). One way to do this +is by means of adadjectives, such as very and too: +

+
+  > p -lang=Eng -cat=AP "very old" | l -lang=Swe
+  mycket gammal
+  
+  > p -lang=Eng -cat=AP "too heavy" | l -lang=Swe
+  för tung
+
+

+The comparative forms can be used for building adjectival phrases together +with noun phrase complements: +

+
+  > p -lang=Eng -cat=AP  "warmer than the sun" | l -lang=Swe
+
+

+Also these complex AP's can modify common nouns. The word order can be different +from modification with simple adjectives. +

+
+  > p -lang=Eng -cat=CN  "country warmer than the sun" | l -lang=Swe
+  
+  > p -lang=Eng -cat=CN  "very warm country" | l -lang=Swe
+  mycket varmt land
+
+

+Quizzes for such constructions are as follows: +

+
+    translate_quiz -from=DemoEng -to=DemoSwe (AdjCN ? (UseN ?))
+    
+    morpho_quiz -lang=DemoSwe (AdjCN ? (UseN ?))
+
+

+ +

Personal pronouns

+

+Personal pronouns have many forms: +

+
+  > %table we_Pron
+  s NPNom : vi
+  s NPAcc : oss
+  s (NPPoss (GSg Utr)) : vÄr
+  s (NPPoss (GSg Neutr)) : vÄrt
+  s (NPPoss GPl) : vÄra
+  
+
+

+Here are the forms of all personal pronouns of Swedish: +

+
+  > %forms i_Pron
+  jag, mig, min, mitt, mina
+  
+  > %forms youSg_Pron
+  du, dig, din, ditt, dina
+  
+  > %forms youPol_Pron
+  ni, er, er, ert, era
+  
+  > %forms he_Pron
+  han, honom, hans, hans, hans
+  
+  > %forms she_Pron
+  hon, henne, hennes, hennes, hennes
+  
+  > %forms we_Pron
+  vi, oss, vÄr, vÄrt, vÄra
+  
+  > %forms youPl_Pron
+  ni, er, er, ert, era
+  
+  > %forms they_Pron
+  de, dem, deras, deras, deras
+
+

+Notice the polite and plural forms of you, which English doesn't have. +

+

+The possessive forms of pronouns are used as determiners: +

+
+  > %translate "her house , my car and our children"
+
+

+Here's the pattern for training the combination of possessive pronouns and +nouns, with the morpho_quiz and translate_quiz commands: +

+
+    (DetCN (DetQuant (PossPron ?) ?) (UseN ?))
+
+

+ +

Prepositions

+

+Prepositions are not inflected. But when attached to noun phrases, they may +affect the inflection of the noun phrase. In some languages, no preposition +word may be shown, but just a different form of the noun phrase. +

+
+  > %translate "my yellow house"
+  mitt gula hus
+  
+  > %translate "in my yellow house"
+  i mitt gula hus
+  
+  > %translate "to my yellow house"
+  till mitt gula hus
+  
+  > %translate "from my yellow house"
+  frÄn mitt gula hus
+  
+  > %translate "with my yellow house"
+  med mitt gula hus
+  
+  > %translate "without my yellow house"
+  utan mitt gula hus
+
+

+Pronouns show in some languages even more variation. +

+

+To train prepositional phrases, use the pattern +

+
+    (PrepNP ? ?)
+
+

+ +

Verbs

+

+Verbs usually have more inflection forms than any other words: +

+
+  > %table sleep_V
+  s (VF (VPres Act)) : sover
+  s (VF (VPres Pass)) : sovs
+  s (VF (VPret Act)) : sov
+  s (VF (VPret Pass)) : sovs
+  s (VF (VImper Act)) : sov
+  s (VF (VImper Pass)) : sovs
+  s (VI (VInfin Act)) : sova
+  s (VI (VInfin Pass)) : sovas
+  s (VI (VSupin Act)) : sovit
+  s (VI (VSupin Pass)) : sovits
+  s (VI (VPtPret (Strong (GSg Utr)) Nom)) : soven
+  s (VI (VPtPret (Strong (GSg Utr)) Gen)) : sovens
+  s (VI (VPtPret (Strong (GSg Neutr)) Nom)) : sovet
+  s (VI (VPtPret (Strong (GSg Neutr)) Gen)) : sovets
+  s (VI (VPtPret (Strong GPl) Nom)) : sovna
+  s (VI (VPtPret (Strong GPl) Gen)) : sovnas
+  s (VI (VPtPret (Weak Sg) Nom)) : sovna
+  s (VI (VPtPret (Weak Sg) Gen)) : sovnas
+  s (VI (VPtPret (Weak Pl) Nom)) : sovna
+  s (VI (VPtPret (Weak Pl) Gen)) : sovnas
+  part : 
+  
+
+

+Here are some inflection examples: +

+
+  > %forms speak_V2
+  talar, talas, talade, talades, tala, talas, tala, talas, talat, talats, talad, talads, talat, talats, talade, talades, talade, talades, talade, talades, , 
+  
+  > %forms play_V2
+  spelar, spelas, spelade, spelades, spela, spelas, spela, spelas, spelat, spelats, spelad, spelads, spelat, spelats, spelade, spelades, spelade, spelades, spelade, spelades, , 
+  
+  > %forms buy_V2
+  köper, köps, köpte, köptes, köp, köps, köpa, köpas, köpt, köpts, köpt, köpts, köpt, köpts, köpta, köptas, köpta, köptas, köpta, köptas, , 
+  
+  > %forms run_V
+  springer, springs, sprang, sprangs, spring, springs, springa, springas, sprungit, sprungits, sprungen, sprungens, sprunget, sprungets, sprungna, sprungnas, sprungna, sprungnas, sprungna, sprungnas, 
+  
+  > %forms walk_V
+  gÄr, gÄs, gick, gicks, gÄ, gÄs, gÄ, gÄs, gÄtt, gÄtts, gÄngen, gÄngens, gÄnget, gÄngets, gÄngna, gÄngnas, gÄngna, gÄngnas, gÄngna, gÄngnas, 
+
+

+In some languages, verbs can be very irregular. +

+

+There are different subcategories of verbs: intransitive verbs (V), two-place +verbs (V2), sentence-complement verbs (VS). The differences have to do with +syntax, and will be discussed later. +

+ +

Syntactic combinations

+

+Above, we have discussed some syntactic combinations: +determination (the car, this car) and adjectival modification +(old car). In this chapter, we concentrate on the formation of +sentences. +

+ +

Predication

+

+In predication, a verb is give its arguments: +the subject (the one who does something) +and the complements (what is done, to whom it is done, etc). The simplest +predication is with intransitive verbs, which only have the subject: +

+
+  > %translate "he walks"
+  han gÄr
+  
+  > %translate "we sleep"
+  vi sover
+  
+  > %translate "the very old woman sings"
+  den mycket gamla kvinnan sjunger
+
+

+A predication forms a clause, which corresponds to many different +(yes or no), and possibly a word order (inverted question, subordinate clause), +a mood (indicative, subjunctive). Here is a table showing what forms a clause +can have in Swedish: +

+
+  > p -cat=Cl -lang=Eng "the man walks" | %table
+  s Pres Simul Pos Main : mannen gÄr
+  s Pres Simul Pos Inv : gÄr mannen
+  s Pres Simul Pos Sub : mannen gÄr
+  s Pres Simul Neg Main : mannen gÄr inte
+  s Pres Simul Neg Inv : gÄr mannen inte
+  s Pres Simul Neg Sub : mannen inte gÄr
+  s Pres Anter Pos Main : mannen har gÄtt
+  s Pres Anter Pos Inv : har mannen gÄtt
+  s Pres Anter Pos Sub : mannen har gÄtt
+  s Pres Anter Neg Main : mannen har inte gÄtt
+  s Pres Anter Neg Inv : har mannen inte gÄtt
+  s Pres Anter Neg Sub : mannen inte har gÄtt
+  s Past Simul Pos Main : mannen gick
+  s Past Simul Pos Inv : gick mannen
+  s Past Simul Pos Sub : mannen gick
+  s Past Simul Neg Main : mannen gick inte
+  s Past Simul Neg Inv : gick mannen inte
+  s Past Simul Neg Sub : mannen inte gick
+  s Past Anter Pos Main : mannen hade gÄtt
+  s Past Anter Pos Inv : hade mannen gÄtt
+  s Past Anter Pos Sub : mannen hade gÄtt
+  s Past Anter Neg Main : mannen hade inte gÄtt
+  s Past Anter Neg Inv : hade mannen inte gÄtt
+  s Past Anter Neg Sub : mannen inte hade gÄtt
+  s Fut Simul Pos Main : mannen ska gÄ
+  s Fut Simul Pos Inv : ska mannen gÄ
+  s Fut Simul Pos Sub : mannen ska gÄ
+  s Fut Simul Neg Main : mannen ska inte gÄ
+  s Fut Simul Neg Inv : ska mannen inte gÄ
+  s Fut Simul Neg Sub : mannen inte ska gÄ
+  s Fut Anter Pos Main : mannen ska ha gÄtt
+  s Fut Anter Pos Inv : ska mannen ha gÄtt
+  s Fut Anter Pos Sub : mannen ska ha gÄtt
+  s Fut Anter Neg Main : mannen ska inte ha gÄtt
+  s Fut Anter Neg Inv : ska mannen inte ha gÄtt
+  s Fut Anter Neg Sub : mannen inte ska ha gÄtt
+  s Cond Simul Pos Main : mannen skulle gÄ
+  s Cond Simul Pos Inv : skulle mannen gÄ
+  s Cond Simul Pos Sub : mannen skulle gÄ
+  s Cond Simul Neg Main : mannen skulle inte gÄ
+  s Cond Simul Neg Inv : skulle mannen inte gÄ
+  s Cond Simul Neg Sub : mannen inte skulle gÄ
+  s Cond Anter Pos Main : mannen skulle ha gÄtt
+  s Cond Anter Pos Inv : skulle mannen ha gÄtt
+  s Cond Anter Pos Sub : mannen skulle ha gÄtt
+  s Cond Anter Neg Main : mannen skulle inte ha gÄtt
+  s Cond Anter Neg Inv : skulle mannen inte ha gÄtt
+  s Cond Anter Neg Sub : mannen inte skulle ha gÄtt
+  
+
+

+The following quiz can be used for training the inflection of intransitive +clauses: +

+
+    morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseV ?))
+
+

+The following quiz translates English sentences in random tenses and polarities: +

+
+    translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) (UseV ?)))
+
+

+ +

Verbs with different predication patterns

+

+Transitive verbs take an object in the accusative case (if there is a case): +

+
+  > %translate "he loves her"
+  han Àlskar henne
+
+

+A generalization is two-place verbs, where the object is in some other case, or +has a preposition. What is transitive in one language can often require a +preposition in another language: +

+
+  > %translate "he waits for her"
+  han vÀntar pÄ henne
+  
+  > %translate "he likes her"
+  han tycker om henne
+
+

+Three-place verbs usually take an object and another argument: +

+
+  > %translate "the king gave the city to the queen"
+  kungen gav staden till drottningen
+
+

+There are also verbs that have a sentence or a question as an argument, +possibly with an object: +

+
+  > %translate "he said that the man walks"
+  han sade att mannen gÄr
+  
+  > %translate "he wonders who sleeps"
+  han undrar vem som sover
+  
+  > %translate "he asked me who sleeps"
+  han frÄgade mig vem som sover
+  
+  > %translate "we answer to him that everybody sleeps"
+  vi svarar till honom att alla sover
+
+

+There are also verbs that take other verbs (with their complements) as arguments: +

+
+  > %translate "we must sleep"
+  vi mÄste sova
+  
+  > %translate "we want to wait for her"
+  vi vill vÀnta pÄ henne
+
+

+The verb to be takes adjectives and noun phrases as arguments: +

+
+  > %translate "he is very old"
+  han Àr mycket gammal
+  
+  > %translate "he is an old man"
+  han Àr en gammal man
+
+

+The following quiz can be used for training the inflection of clauses with +any verb: +

+
+    morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) ?)
+
+

+The following quiz can be used for training the inflection of clauses with +to be: +

+
+    morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseComp ?))
+
+

+The following quiz translates English sentences in random tenses and polarities: +

+
+    translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) ?))
+
+

+ +

Questions

+

+Questions are similar to sentences, but can have a different word order: +

+
+  > %translate "is he very old"
+  Àr han mycket gammal
+  
+  > %translate "would I sleep"
+  skulle jag sova
+
+

+Questions can moreover have interrogatives as their arguments, +instead of norman nouns: +

+
+  > %translate "who doesn't sleep"
+  vem sover inte
+  
+  > %translate "whom did she see"
+  vem sÄg hon
+
+

+Sentences without interrogatives can be made to questions with +

+
+  > %translate "where will we sleep"
+  var ska vi sova
+  
+  > %translate "why didn't she wait for us"
+  varför vÀntade hon inte pÄ oss
+
+

+ +

For developers

+

+There are three levels of involvement, from the easiest to the hardest, +

+
    +
  1. create the default tour for a language that is in the GF resource grammar library + (takes less than a minute, if you have the tools listed below) +
  2. customize the tour for a language that is in the library + (worth spending a couple of hours on) +
  3. add a language to the library and build the tour for it + (an undertaking of a few months) +
+ +

+1. To create the tour for a language that is in the library, e.g. Spanish, +just run +

+
+    make Spa
+
+

+in the directory GF/lib/doc/tour. You need the following things for this +to work out +

+ + +

+2. To customize the tour, edit the master file GF/lib/doc/tour/tour.txt. +The customization mainly proceeds by adding lines marked #Spa (if Spanish is +your target language). This can be done both for text lines, e.g. +

+
+    #Spa Swedish has separate second-person plural pronouns for both genders.
+
+

+and for GF command lines, e.g. +

+
+    #Spa %translate "you are very old"
+
+

+In both cases, one can also add #Spa to the existing markings if they are +adequate, e.g. +

+
+    #Fre,Spa Swedish has two genders: the masculine and the feminine.
+
+

+It's in particular for this purpose that we recommend using the variable Swedish +rather than the constant Spanish. The make procedure replaces the variable with +the constant automatically. Similarly, the language code Spa used in GF commands +should be avoided and the variable Swe used instead. +

+

+In general, the master file tour.txt is processed line by line. It has five kinds +of lines, distinguished by the prefix of the line: +

+ + +

+Here LANGS is a comma-separated list of 3-letter language codes, +such as Fre,Spa,Ita. +

+

+3. To contribute a new language to the library, see the +GF Resource Grammar Project. +

+

+In cases (2) and (3), please contribute your work to the GF community! +

+ + + +