# GF Resource Grammar Library: Synopsis

B. Bringert and A. Ranta

- Introduction
- Categories
  - A hierarchic view
  - Explanations
- Syntax Rules and Structural Words
  - A - one-place adjective
  - A2 - two-place adjective
  - AP - adjectival phrase
  - AdA - adjective-modifying adverb
  - AdN - numeral-modifying adverb
  - AdV - adverb directly attached to verb
  - Adv - verb-phrase-modifying adverb
  - Ant - anteriority
  - CAdv - comparative adverb
  - CN - common noun (without determiner)
  - Cl - declarative clause, with all tenses
  - Comp - complement of copula, such as AP
  - Conj - conjunction
  - DConj - distributed conjunction
  - Det - determiner phrase
  - Digits - cardinal or ordinal in digits
  - IAdv - interrogative adverb
  - IComp - interrogative complement of copula
  - IDet - interrogative determiner
  - IP - interrogative pronoun
  - Imp - imperative
  - ImpForm
  - ListAP
  - ListAdv
  - ListNP
  - ListS
  - N - common noun
  - N2 - relational noun
  - N3 - three-place relational noun
  - NP - noun phrase (subject or object)
  - Num - cardinal number (used with QuantPl)
  - Numeral - cardinal or ordinal in words
  - Ord - ordinal number (used in Det)
  - PConj - phrase-beginning conjunction
  - PN - proper name
  - Phr - phrase in a text
  - Pol - polarity
  - Predet - predeterminer (prefixed Quant)
  - Prep - preposition, or just case
  - Pron - personal pronoun
  - Punct
  - QCl - question clause, with all tenses
  - QS - question
  - Quant - quantifier ('nucleus' of Det)
  - QuantPl
  - QuantSg
  - RCl - relative clause, with all tenses
  - RP - relative pronoun
  - RS - relative
  - S - declarative sentence
  - SC - embedded sentence or question
  - Slash - clause missing NP (S/NP in GPSG)
  - Subj - subjunction
  - Tense - tense
  - Text - text consisting of several phrases
  - Utt - sentence, question, word...
  - V - one-place verb
  - V2 - two-place verb
  - V2A - verb with NP and AP complement
  - V3 - three-place verb
  - VA - adjective-complement verb
  - VP - verb phrase
  - VQ - question-complement verb
  - VS - sentence-complement verb
  - VV - verb-phrase-complement verb
  - Voc - vocative or "please"
- Lexical Paradigms
  - Paradigms for Danish
  - Paradigms for English
  - Paradigms for Finnish
  - Paradigms for French
  - Paradigms for German
  - Paradigms for Italian
  - Paradigms for Norwegian
  - Paradigms for Russian
  - Paradigms for Spanish
  - Paradigms for Swedish
- Browsing the libraries with GF commands
- An Example of Usage

# Introduction

This document contains the most important parts of the GF Resource Grammar API. It has been machine-generated from the source files; each chapter gives a link to the relevant source files, which give more information. Some of the files have not yet been prepared so that the machine generated documentation has the right format.

Since the character encoding is UTF-8 for Russian and Latin-1 for other languages, you may have to change the encoding preference of your browser when reading different parts of the document.

The second-last chapter gives instructions on how to "browse" the library by loading the grammars into the `gf` command editor.

New: Browsing by syntax editor directly on the web.

The last chapter contains a brief example of how application grammars can import resource modules. At the same time, it illustrates a "design pattern" for using the resource API to build functor-based applications

# Categories

Source 1: `http://www.cs.chalmers.se/~aarne/GF/lib/resource/abstract/Common.gf`

Source 2: `http://www.cs.chalmers.se/~aarne/GF/lib/resource/abstract/Cat.gf`

## A hierarchic view

The chart below shows the categories in a hierarchical top-down order. The edges do not define the complete dependency structure; if they did, the graph would have many many more edges, and also many cycles. The precise meaning of a directed edge from C to D is: there is a constructor of C that takes D as an argument. What the constructors exactly are, and what other arguments they take, is described by separate tables for each category.

The rectangular boxes mark open lexical categories, which have constructors also in the `Paradigms` modules.

## Explanations

Category | Explanation | Example
--- | --- | ---
A | one-place adjective | warm
A2 | two-place adjective | divisible
AP | adjectival phrase | very warm
AdA | adjective-modifying adverb | very
AdN | numeral-modifying adverb | more than
AdV | adverb directly attached to verb | always
Adv | verb-phrase-modifying adverb | in the house
Ant | anteriority | simultaneous, anterior
CAdv | comparative adverb | more
CN | common noun (without determiner) | red house
Cl | declarative clause, with all tenses | she looks at this
Comp | complement of copula, such as AP | very warm
Conj | conjunction | and
DConj | distributed conjunction | both - and
Det | determiner phrase | those seven
Digits | cardinal or ordinal in digits | 1,000/1,000th
IAdv | interrogative adverb | why
IComp | interrogative complement of copula | where
IDet | interrogative determiner | which
IP | interrogative pronoun | who
Imp | imperative | look at this
N | common noun | house
N2 | relational noun | son
N3 | three-place relational noun | connection
NP | noun phrase (subject or object) | the red house
Num | cardinal number (used with QuantPl) | seven
Numeral | cardinal or ordinal in words | five/fifth
Ord | ordinal number (used in Det) | seventh
PConj | phrase-beginning conjunction | therefore
PN | proper name | Paris
Phr | phrase in a text | but be quiet please
Pol | polarity | positive, negative
Predet | predeterminer (prefixed Quant) | all
Prep | preposition, or just case | in
Pron | personal pronoun | she
QCl | question clause, with all tenses | why does she walk
QS | question | where did she live
Quant | quantifier ('nucleus' of Det) | this/these
RCl | relative clause, with all tenses | in which she lives
RP | relative pronoun | in which
RS | relative | in which she lived
S | declarative sentence | she lived here
SC | embedded sentence or question | that it rains
Slash | clause missing NP (S/NP in GPSG) | she looks at
Subj | subjunction | if
Tense | tense | present, past, future
Text | text consisting of several phrases | He is here. Why?
Utt | sentence, question, word... | be quiet
V | one-place verb | sleep
V2 | two-place verb | love
V2A | verb with NP and AP complement | paint
V3 | three-place verb | show
VA | adjective-complement verb | look
VP | verb phrase | is very warm
VQ | question-complement verb | ask
VS | sentence-complement verb | claim
VV | verb-phrase-complement verb | want
Voc | vocative or "please" | my darling

# Syntax Rules and Structural Words

Source 1: `http://www.cs.chalmers.se/~aarne/GF/lib/resource/api/Constructors.gf`

Source 2: `http://www.cs.chalmers.se/~aarne/GF/lib/resource/abstract/Structural.gf`

## A - one-place adjective

Lexical category, constructors given in lexical paradigms.

## A2 - two-place adjective

Lexical category, constructors given in lexical paradigms.

## AP - adjectival phrase

Function | Type | Example
--- | --- | ---
`mkAP` | A `->` AP | old
`mkAP` | A `->` NP `->` AP | older than John
`mkAP` | A2 `->` NP `->` AP | married to her
`mkAP` | A2 `->` AP | married to myself
`mkAP` | AP `->` S `->` AP | probable that John walks
`mkAP` | AP `->` QS `->` AP | uncertain if John walks
`mkAP` | AP `->` VP `->` AP | ready to go
`mkAP` | AdA `->` A `->` AP | very old
`mkAP` | AdA `->` AP `->` AP | very very old
`mkAP` | Conj `->` AP `->` AP `->` AP | old and big
`mkAP` | Conj `->` ListAP `->` AP | old, big, and warm
`mkAP` | DConj `->` AP `->` AP `->` AP | either old or big
`mkAP` | DConj `->` ListAP `->` AP | either old, big, or warm

## AdA - adjective-modifying adverb

Function | Type | Example
--- | --- | ---
`almost_AdA` | AdA | -
`quite_Adv` | AdA | -
`so_AdA` | AdA | -
`too_AdA` | AdA | -
`very_AdA` | AdA | -

## AdN - numeral-modifying adverb

Function | Type | Example
--- | --- | ---
`almost_AdN` | AdN | -
`mkAdN` | CAdv `->` AdN | more than

## AdV - adverb directly attached to verb

Function | Type | Example
--- | --- | ---
`always_AdV` | AdV | -

## Adv - verb-phrase-modifying adverb

Function | Type | Example
--- | --- | ---
`everywhere_Adv` | Adv | -
`here7from_Adv` | Adv | -
`here7to_Adv` | Adv | -
`here_Adv` | Adv | -
`mkAdv` | A `->` Adv | warmly
`mkAdv` | Prep `->` NP `->` Adv | with John
`mkAdv` | Subj `->` S `->` Adv | when John walks
`mkAdv` | CAdv `->` A `->` NP `->` Adv | more warmly than John
`mkAdv` | CAdv `->` A `->` S `->` Adv | more warmly than John walks
`mkAdv` | AdA `->` Adv `->` Adv | very warmly
`mkAdv` | Conj `->` Adv `->` Adv `->` Adv | here and now
`mkAdv` | Conj `->` ListAdv `->` Adv | with John, here and now
`mkAdv` | DConj `->` Adv `->` Adv `->` Adv | either here or now
`mkAdv` | DConj `->` ListAdv `->` Adv | either here, now, or with John
`somewhere_Adv` | Adv | -
`there7from_Adv` | Adv | -
`there7to_Adv` | Adv | -
`there_Adv` | Adv | -

## Ant - anteriority

Function | Type | Example
--- | --- | ---
`anteriorAnt` | Ant | (John has walked) --# notpresent
`simultaneousAnt` | Ant | (John walks) [default]

## CAdv - comparative adverb

Function | Type | Example
--- | --- | ---
`less_CAdv` | CAdv | -
`more_CAdv` | CAdv | -

## CN - common noun (without determiner)

Function | Type | Example
--- | --- | ---
`mkCN` | N `->` CN | house
`mkCN` | N2 `->` NP `->` CN | mother of John
`mkCN` | N3 `->` NP `->` NP `->` CN | distance from this city to Paris
`mkCN` | N2 `->` CN | son
`mkCN` | N3 `->` CN | flight
`mkCN` | A `->` N `->` CN | big house
`mkCN` | A `->` CN `->` CN | big blue house
`mkCN` | AP `->` N `->` CN | very big house
`mkCN` | AP `->` CN `->` CN | very big blue house
`mkCN` | N `->` RS `->` CN | house that John loves
`mkCN` | CN `->` RS `->` CN | big house that John loves
`mkCN` | N `->` Adv `->` CN | house in the city
`mkCN` | CN `->` Adv `->` CN | big house in the city
`mkCN` | CN `->` S `->` CN | rule that John walks
`mkCN` | CN `->` QS `->` CN | question if John walks
`mkCN` | CN `->` VP `->` CN | reason to walk
`mkCN` | N `->` NP `->` CN | king John
`mkCN` | CN `->` NP `->` CN | old king John

## Cl - declarative clause, with all tenses

Function | Type | Example
--- | --- | ---
`genericCl` | VP `->` Cl | one walks
`mkCl` | NP `->` V `->` Cl | John walks
`mkCl` | NP `->` V2 `->` NP `->` Cl | John loves her
`mkCl` | NP `->` V3 `->` NP `->` NP `->` Cl | John sends it to her
`mkCl` | NP `->` VV `->` VP `->` Cl | John wants to walk
`mkCl` | NP `->` VS `->` S `->` Cl | John says that it is good
`mkCl` | NP `->` VQ `->` QS `->` Cl | John wonders if it is good
`mkCl` | NP `->` VA `->` AP `->` Cl | John becomes old
`mkCl` | NP `->` V2A `->` NP `->` AP `->` Cl | John paints it red
`mkCl` | NP `->` A `->` Cl | John is old
`mkCl` | NP `->` A `->` NP `->` Cl | John is older than her
`mkCl` | NP `->` A2 `->` NP `->` Cl | John is married to her
`mkCl` | NP `->` AP `->` Cl | John is very old
`mkCl` | NP `->` N `->` Cl | John is a man
`mkCl` | NP `->` CN `->` Cl | John is an old man
`mkCl` | NP `->` NP `->` Cl | John is the man
`mkCl` | NP `->` Adv `->` Cl | John is here
`mkCl` | NP `->` VP `->` Cl | John walks here
`mkCl` | V `->` Cl | it rains
`mkCl` | VP `->` Cl | it is raining
`mkCl` | N `->` Cl | there is a house
`mkCl` | CN `->` Cl | there is an old houses
`mkCl` | NP `->` Cl | there are five houses
`mkCl` | NP `->` RS `->` Cl | it is John that walks
`mkCl` | Adv `->` S `->` Cl | it is here John walks

## Comp - complement of copula, such as AP

Lexical category, constructors given in lexical paradigms.

## Conj - conjunction

Function | Type | Example
--- | --- | ---
`and_Conj` | Conj | -
`or_Conj` | Conj | -

## DConj - distributed conjunction

Function | Type | Example
--- | --- | ---
`both7and_DConj` | DConj | -
`either7or_DConj` | DConj | -

## Det - determiner phrase

Function | Type | Example
--- | --- | ---
`defPlDet` | Det | the (houses)
`defSgDet` | Det | the (house)
`every_Det` | Det | -
`few_Det` | Det | -
`indefPlDet` | Det | (houses)
`indefSgDet` | Det | a (house)
`many_Det` | Det | -
`mkDet` | QuantSg `->` Det | this
`mkDet` | QuantSg `->` (Ord) `->` Det | this first
`mkDet` | QuantPl `->` Det | these
`mkDet` | QuantPl `->` (Num) `->` (Ord) `->` Det | these five best
`mkDet` | Quant `->` Det | this
`mkDet` | Quant `->` Num `->` Det | these five
`mkDet` | Num `->` Det | almost twenty
`mkDet` | Numeral `->` Det | five
`mkDet` | Digits `->` Det | 51
`mkDet` | Pron `->` Det | my
`much_Det` | Det | -
`somePl_Det` | Det | -
`someSg_Det` | Det | -

## Digits - cardinal or ordinal in digits

Function | Type | Example
--- | --- | ---
`n1000_Digits` | Digits | 1,000
`n100_Digits` | Digits | 100
`n10_Digits` | Digits | 10
`n1_Digits` | Digits | 1
`n20_Digits` | Digits | 20
`n2_Digits` | Digits | 2
`n3_Digits` | Digits | 3
`n4_Digits` | Digits | 4
`n5_Digits` | Digits | 5
`n6_Digits` | Digits | 6
`n7_Digits` | Digits | 7
`n8_Digits` | Digits | 8
`n9_Digits` | Digits | 9

## IAdv - interrogative adverb

Function | Type | Example
--- | --- | ---
`how_IAdv` | IAdv | -
`mkIAdv` | Prep `->` IP `->` IAdv | in which city
`when_IAdv` | IAdv | -
`where_IAdv` | IAdv | -
`why_IAdv` | IAdv | -

## IComp - interrogative complement of copula

Lexical category, constructors given in lexical paradigms.

## IDet - interrogative determiner

Function | Type | Example
--- | --- | ---
`how8many_IDet` | IDet | -
`whichPl_IDet` | IDet | -
`whichSg_IDet` | IDet | -

## IP - interrogative pronoun

Function | Type | Example
--- | --- | ---
`mkIP` | IDet `->` N `->` IP | which city
`mkIP` | IDet `->` (Num) `->` (Ord) `->` CN `->` IP | which five best cities
`mkIP` | IP `->` Adv `->` IP | who in Paris
`whatPl_IP` | IP | -
`whatSg_IP` | IP | -
`whoPl_IP` | IP | -
`whoSg_IP` | IP | -

## Imp - imperative

Function | Type | Example
--- | --- | ---
`mkImp` | V `->` Imp | go
`mkImp` | V2 `->` NP `->` Imp | take it
`mkImp` | VP `->` Imp | go there now

## ImpForm

Function | Type | Example
--- | --- | ---
`pluralImpForm` | ImpForm | (help yourselves)
`politeImpForm` | ImpForm | (help yourself) (polite singular)
`singularImpForm` | ImpForm | (help yourself) [default]

## ListAP

Function | Type | Example
--- | --- | ---
`mkListAP` | AP `->` AP `->` ListAP | old, big
`mkListAP` | AP `->` ListAP `->` ListAP | old, big, warm

## ListAdv

Function | Type | Example
--- | --- | ---
`mkListAdv` | Adv `->` Adv `->` ListAdv | here, now
`mkListAdv` | Adv `->` ListAdv `->` ListAdv | to me, here, now

## ListNP

Function | Type | Example
--- | --- | ---
`mkListNP` | NP `->` NP `->` ListNP | John, I
`mkListNP` | NP `->` ListNP `->` ListNP | John, I, that

## ListS

Function | Type | Example
--- | --- | ---
`mkListS` | S `->` S `->` ListS | he walks, I run
`mkListS` | S `->` ListS `->` ListS | John walks, I run, you sleep

## N - common noun

Lexical category, constructors given in lexical paradigms.

## N2 - relational noun

Lexical category, constructors given in lexical paradigms.

## N3 - three-place relational noun

Lexical category, constructors given in lexical paradigms.

## NP - noun phrase (subject or object)

Function | Type | Example
--- | --- | ---
`everybody_NP` | NP | -
`everything_NP` | NP | -
`mkNP` | Det `->` N `->` NP | the first man
`mkNP` | Det `->` CN `->` NP | the first old man
`mkNP` | QuantSg `->` N `->` NP | this man
`mkNP` | QuantSg `->` CN `->` NP | this old man
`mkNP` | QuantPl `->` N `->` NP | these men
`mkNP` | QuantPl `->` CN `->` NP | these old men
`mkNP` | Numeral `->` N `->` NP | twenty men
`mkNP` | Numeral `->` CN `->` NP | twenty old men
`mkNP` | Digits `->` N `->` NP | 45 men
`mkNP` | Digits `->` CN `->` NP | 45 old men
`mkNP` | Num `->` N `->` NP | almost twenty men
`mkNP` | Num `->` CN `->` NP | almost twenty old men
`mkNP` | Pron `->` N `->` NP | my man
`mkNP` | Pron `->` CN `->` NP | my old man
`mkNP` | PN `->` NP | John
`mkNP` | Pron `->` NP | he
`mkNP` | Predet `->` NP `->` NP | only John
`mkNP` | NP `->` V2 `->` NP | John killed
`mkNP` | NP `->` Adv `->` NP | John in Paris
`mkNP` | Conj `->` NP `->` NP `->` NP | John and I
`mkNP` | Conj `->` ListNP `->` NP | John, I, and that
`mkNP` | DConj `->` NP `->` NP `->` NP | either John or I
`mkNP` | DConj `->` ListNP `->` NP | either John, I, or that
`somebody_NP` | NP | -
`something_NP` | NP | -
`that_NP` | NP | -
`these_NP` | NP | -
`this_NP` | NP | -
`those_NP` | NP | -

## Num - cardinal number (used with QuantPl)

Function | Type | Example
--- | --- | ---
`mkNum` | Numeral `->` Num | twenty
`mkNum` | Digits `->` Num | 51
`mkNum` | AdN `->` Num `->` Num | almost ten

## Numeral - cardinal or ordinal in words

Function | Type | Example
--- | --- | ---
`n1000_Numeral` | Numeral | thousand
`n100_Numeral` | Numeral | hundred
`n10_Numeral` | Numeral | ten
`n1_Numeral` | Numeral | one
`n20_Numeral` | Numeral | twenty
`n2_Numeral` | Numeral | two
`n3_Numeral` | Numeral | three
`n4_Numeral` | Numeral | four
`n5_Numeral` | Numeral | five
`n6_Numeral` | Numeral | six
`n7_Numeral` | Numeral | seven
`n8_Numeral` | Numeral | eight
`n9_Numeral` | Numeral | nine

## Ord - ordinal number (used in Det)

Function | Type | Example
--- | --- | ---
`mkOrd` | Numeral `->` Ord | twentieth
`mkOrd` | Digits `->` Ord | 51st
`mkOrd` | A `->` Ord | best

## PConj - phrase-beginning conjunction

Function | Type | Example
--- | --- | ---
`but_PConj` | PConj | -
`mkPConj` | Conj `->` PConj | and
`otherwise_PConj` | PConj | -
`therefore_PConj` | PConj | -

## PN - proper name

Lexical category, constructors given in lexical paradigms.

## Phr - phrase in a text

Function | Type | Example
--- | --- | ---
`mkPhr` | Utt `->` Phr | why
`mkPhr` | (PConj) `->` Utt `->` (Voc) `->` Phr | but why John
`mkPhr` | S `->` Phr | John walked
`mkPhr` | Cl `->` Phr | John walks
`mkPhr` | QS `->` Phr | did John walk
`mkPhr` | Imp `->` Phr | walk
`no_Phr` | Phr | -
`yes_Phr` | Phr | -

## Pol - polarity

Function | Type | Example
--- | --- | ---
`negativePol` | Pol | (John doesn't walk)
`positivePol` | Pol | (John walks) [default]

## Predet - predeterminer (prefixed Quant)

Function | Type | Example
--- | --- | ---
`all_Predet` | Predet | -
`most_Predet` | Predet | -
`only_Predet` | Predet | -

## Prep - preposition, or just case

Function | Type | Example
--- | --- | ---
`above_Prep` | Prep | -
`after_Prep` | Prep | -
`before_Prep` | Prep | -
`behind_Prep` | Prep | -
`between_Prep` | Prep | -
`by8agent_Prep` | Prep | -
`by8means_Prep` | Prep | -
`during_Prep` | Prep | -
`for_Prep` | Prep | -
`from_Prep` | Prep | -
`in8front_Prep` | Prep | -
`in_Prep` | Prep | -
`on_Prep` | Prep | -
`part_Prep` | Prep | -
`possess_Prep` | Prep | -
`through_Prep` | Prep | -
`to_Prep` | Prep | -
`under_Prep` | Prep | -
`with_Prep` | Prep | -
`without_Prep` | Prep | -

## Pron - personal pronoun

Function | Type | Example
--- | --- | ---
`he_Pron` | Pron | -
`i_Pron` | Pron | -
`it_Pron` | Pron | -
`she_Pron` | Pron | -
`they_Pron` | Pron | -
`we_Pron` | Pron | -
`youPl_Pron` | Pron | -
`youPol_Pron` | Pron | -
`youSg_Pron` | Pron | -

## Punct

Function | Type | Example
--- | --- | ---
`exclMarkPunct` | Punct | !
`fullStopPunct` | Punct | .
`questMarkPunct` | Punct | ?

## QCl - question clause, with all tenses

Function | Type | Example
--- | --- | ---
`mkQCl` | Cl `->` QCl | does John walk
`mkQCl` | IP `->` VP `->` QCl | who walks
`mkQCl` | IP `->` NP `->` V2 `->` QCl | whom does John love
`mkQCl` | IP `->` Slash `->` QCl | whom does John love today
`mkQCl` | IAdv `->` Cl `->` QCl | why does John walk
`mkQCl` | Prep `->` IP `->` Cl `->` QCl | with who does John walk
`mkQCl` | IAdv `->` NP `->` QCl | where is John
`mkQCl` | IP `->` QCl | what is there

## QS - question

Function | Type | Example
--- | --- | ---
`mkQS` | QCl `->` QS | who walks
`mkQS` | (Tense) `->` (Ant) `->` (Pol) `->` QCl `->` QS | who wouldn't have walked
`mkQS` | Cl `->` QS | does John walk

## Quant - quantifier ('nucleus' of Det)

Function | Type | Example
--- | --- | ---
`defQuant` | Quant | the
`indefQuant` | Quant | a
`that_Quant` | Quant | -
`this_Quant` | Quant | -

## QuantPl

Function | Type | Example
--- | --- | ---
`a_QuantPl` | QuantPl | (indefinite plural)
`mkQuantPl` | Quant `->` QuantPl | these
`the_QuantPl` | QuantPl | the
`these_QuantPl` | QuantPl | these
`those_QuantPl` | QuantPl | those

## QuantSg

Function | Type | Example
--- | --- | ---
`a_QuantSg` | QuantSg | a
`massQuant` | QuantSg | (mass terms)
`mkQuantSg` | Quant `->` QuantSg | this
`that_QuantSg` | QuantSg | that
`the_QuantSg` | QuantSg | the
`this_QuantSg` | QuantSg | this

## RCl - relative clause, with all tenses

Function | Type | Example
--- | --- | ---
`mkRCl` | RP `->` VP `->` RCl | that walk
`mkRCl` | RP `->` NP `->` V2 `->` RCl | which John loves
`mkRCl` | RP `->` Slash `->` RCl | which John loves today
`mkRCl` | Cl `->` RCl | such that John loves her

## RP - relative pronoun

Function | Type | Example
--- | --- | ---
`mkRP` | Prep `->` NP `->` RP `->` RP | all the houses in which
`which_RP` | RP | which

## RS - relative

Function | Type | Example
--- | --- | ---
`mkRS` | RCl `->` RS | that walk
`mkRS` | (Tense) `->` (Ant) `->` (Pol) `->` RCl `->` RS | that wouldn't have walked

## S - declarative sentence

Function | Type | Example
--- | --- | ---
`mkS` | Cl `->` S | John walks
`mkS` | (Tense) `->` (Ant) `->` (Pol) `->` Cl `->` S | John wouldn't have walked
`mkS` | Conj `->` S `->` S `->` S | John walks and I run
`mkS` | Conj `->` ListS `->` S | John walks, I run and you sleep
`mkS` | DConj `->` S `->` S `->` S | either John walk or I run
`mkS` | DConj `->` ListS `->` S | either John walks, I run or you sleep
`mkS` | Adv `->` S `->` S | today, John walks

## SC - embedded sentence or question

Lexical category, constructors given in lexical paradigms.

## Slash - clause missing NP (S/NP in GPSG)

Function | Type | Example
--- | --- | ---
`mkSlash` | NP `->` V2 `->` Slash | (whom) John loves
`mkSlash` | NP `->` VV `->` V2 `->` Slash | (whom) John wants to see
`mkSlash` | Cl `->` Prep `->` Slash | (with whom) John walks
`mkSlash` | Slash `->` Adv `->` Slash | (whom) John loves today

## Subj - subjunction

Function | Type | Example
--- | --- | ---
`although_Subj` | Subj | -
`because_Subj` | Subj | -
`if_Subj` | Subj | -
`when_Subj` | Subj | -

## Tense - tense

Function | Type | Example
--- | --- | ---
`conditionalTense` | Tense | (John would walk) --# notpresent
`futureTense` | Tense | (John will walk) --# notpresent
`pastTense` | Tense | (John walked) --# notpresent
`presentTense` | Tense | (John walks) [default]

## Text - text consisting of several phrases

Function | Type | Example
--- | --- | ---
`emptyText` | Text | (empty text)
`mkText` | Phr `->` Text | But John walks.
`mkText` | Phr `->` (Punct) `->` (Text) `->` Text | John walks? Yes.
`mkText` | Utt `->` Text | John.
`mkText` | S `->` Text | John walked.
`mkText` | Cl `->` Text | John walks.
`mkText` | QS `->` Text | Did John walk?
`mkText` | Imp `->` Text | Walk!
`mkText` | Text `->` Text `->` Text | Where? When? Here. Now!

## Utt - sentence, question, word...

Function | Type | Example
--- | --- | ---
`lets_Utt` | VP `->` Utt | let's walk
`mkUtt` | S `->` Utt | John walked
`mkUtt` | Cl `->` Utt | John walks
`mkUtt` | QS `->` Utt | did John walk
`mkUtt` | Imp `->` Utt | love yourself
`mkUtt` | (ImpForm) `->` (Pol) `->` Imp `->` Utt | don't love yourselves
`mkUtt` | IP `->` Utt | who
`mkUtt` | IAdv `->` Utt | why
`mkUtt` | NP `->` Utt | John
`mkUtt` | Adv `->` Utt | here
`mkUtt` | VP `->` Utt | to walk

## V - one-place verb

Lexical category, constructors given in lexical paradigms.

## V2 - two-place verb

Lexical category, constructors given in lexical paradigms.

## V2A - verb with NP and AP complement

Lexical category, constructors given in lexical paradigms.

## V3 - three-place verb

Lexical category, constructors given in lexical paradigms.

## VA - adjective-complement verb

Lexical category, constructors given in lexical paradigms.

## VP - verb phrase

Function | Type | Example
--- | --- | ---
`mkVP` | V `->` VP | walk
`mkVP` | V2 `->` NP `->` VP | love her
`mkVP` | V3 `->` NP `->` NP `->` VP | send it to her
`mkVP` | VV `->` VP `->` VP | want to walk
`mkVP` | VS `->` S `->` VP | know that she walks
`mkVP` | VQ `->` QS `->` VP | ask if she walks
`mkVP` | VA `->` AP `->` VP | become old
`mkVP` | V2A `->` NP `->` AP `->` VP | paint it red
`mkVP` | A `->` VP | be warm
`mkVP` | AP `->` VP | be very warm
`mkVP` | A `->` NP `->` VP | be older than her
`mkVP` | A2 `->` NP `->` VP | be married to her
`mkVP` | N `->` VP | be a man
`mkVP` | CN `->` VP | be an old man
`mkVP` | NP `->` VP | be the man
`mkVP` | Adv `->` VP | be here
`mkVP` | VP `->` Adv `->` VP | sleep here
`mkVP` | AdV `->` VP `->` VP | always sleep
`passiveVP` | V2 `->` VP | be loved
`passiveVP` | V2 `->` NP `->` VP | be loved by her
`progressiveVP` | VP `->` VP | be sleeping
`reflexiveVP` | V2 `->` VP | love itself

## VQ - question-complement verb

Lexical category, constructors given in lexical paradigms.

## VS - sentence-complement verb

Lexical category, constructors given in lexical paradigms.

## VV - verb-phrase-complement verb

Function | Type | Example
--- | --- | ---
`can8know_VV` | VV | -
`can_VV` | VV | -
`must_VV` | VV | -
`want_VV` | VV | -

## Voc - vocative or "please"

Function | Type | Example
--- | --- | ---
`mkVoc` | NP `->` Voc | John
`please_Voc` | Voc | -

# Lexical Paradigms

## Paradigms for Danish

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/danish/ParadigmsDan.gf`

Function | Type
--- | ---
`Gender` | Type
`utrum` | Gender
`neutrum` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`Case` | Type
`nominative` | Case
`genitive` | Case
`mkPrep` | `Str` `->` Prep
`noPrep` | Prep
`mkN` | `(bil` `:` `Str)` `->` N
`mkN` | `(hus` `:` `Str)` `->` Gender `->` N
`mkN` | `(bil,bilen` `:` `Str)` `->` N
`mkN` | `(bil,bilen,biler` `:` `Str)` `->` N
`mkN` | `(dreng,drengen,drenge,drengene` `:` `Str)` `->` N
`mkN2` | N `->` Prep `->` N2
`regN2` | `Str` `->` Gender `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | `Str` `->` Gender `->` PN
`mkPN` | N `->` PN
`mkA` | `(fin` `:` `Str)` `->` A
`mkA` | `(fin,fint` `:` `Str)` `->` A
`mkA` | `(galen,galet,galne` `:` `Str)` `->` A
`mkA` | `(stor,stort,store,storre,storst` `:` `Str)` `->` A
`mkA` | A `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkV` | `(snakke` `:` `Str)` `->` V
`mkV` | `(leve,levde` `:` `Str)` `->` V
`mkV` | `(drikke,` `drakk,` `drukket` `:` `Str)` `->` V
`mkV` | `(spise,spiser,spises,spiste,spist,spis` `:` `Str)` `->` V
`mkV` | V `->` `Str` `->` V
`vaereV` | V `->` V
`depV` | V `->` V
`reflV` | V `->` V
`mkV2` | `Str` `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Prep `->` V2
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Prep `->` V3
`dirdirV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` AV
`mkA2V` | A `->` Prep `->` A2V

## Paradigms for English

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/english/ParadigmsEng.gf`

Function | Type
--- | ---
`Gender` | Type
`human` | Gender
`nonhuman` | Gender
`masculine` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`Case` | Type
`nominative` | Case
`genitive` | Case
`mkN` | `(flash` `:` `Str)` `->` N
`mkN` | `(man,men` `:` `Str)` `->` N
`mkN` | `(man,men,man's,men's` `:` `Str)` `->` N
`mkN` | `Str` `->` N `->` N
`mkN2` | N `->` Prep `->` N2
`regN2` | `Str` `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | N `->` PN
`mkA` | `(happy` `:` `Str)` `->` A
`mkA` | `(fat,fatter` `:` `Str)` `->` A
`mkA` | `(good,better,best,well` `:` `Str)` `->` A
`compoundA` | A `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkPrep` | `Str` `->` Prep
`noPrep` | Prep
`mkV` | `(cry` `:` `Str)` `->` V
`mkV` | `(stop,` `stopped` `:` `Str)` `->` V
`mkV` | `(drink,` `drank,` `drunk` `:` `Str)` `->` V
`mkV` | `(run,` `ran,` `run,` `running` `:` `Str)` `->` V
`mkV` | `(go,` `goes,` `went,` `gone,` `going` `:` `Str)` `->` V
`partV` | V `->` `Str` `->` V
`reflV` | V `->` V
`mkV2` | V `->` Prep `->` V2
`mkV2` | V `->` V2
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Prep `->` V3
`dirdirV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` AV
`mkA2V` | A `->` Prep `->` A2V

## Paradigms for Finnish

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/finnish/ParadigmsFin.gf`

Function | Type
--- | ---
`Number` | Type
`singular` | Number
`plural` | Number
`Case` | Type
`nominative` | Case
`genitive` | Case
`partitive` | Case
`translative` | Case
`inessive` | Case
`elative` | Case
`illative` | Case
`adessive` | Case
`ablative` | Case
`allative` | Case
`prePrep` | Case `->` `Str` `->` Prep
`postPrep` | Case `->` `Str` `->` Prep
`postGenPrep` | `Str` `->` Prep
`casePrep` | Case `->` Prep
`mkN` | `(talo` `:` `Str)` `->` N
`mkN` | `(savi,savia` `:` `Str)` `->` N
`mkN` | `(vesi,veden,vesiä` `:` `Str)` `->` N
`mkN` | `(olo,oln,olona,oloa,oloon,oloina,oloissa,olojen,oloja,oloihin` `:` `Str)` `->` N
`sgpartN` | `(meri` `:` `N)` `->` `(merta` `:` `Str)` `->` N
`nMeri` | `(meri` `:` `Str)` `->` N
`nKukko` | `(kukko,kukon,kukkoja` `:` `Str)` `->` N
`nTalo` | `(talo` `:` `Str)` `->` N
`nLukko` | `(lukko` `:` `Str)` `->` N
`nArpi` | `(arpi` `:` `Str)` `->` N
`nSylki` | `(sylki` `:` `Str)` `->` N
`nLinux` | `(linuxia` `:` `Str)` `->` N
`nPeruna` | `(peruna` `:` `Str)` `->` N
`nRae` | `(rae,` `rakeena` `:` `Str)` `->` N
`nSusi` | `(susi,suden,sutta` `:` `Str)` `->` N
`nPuu` | `(puu` `:` `Str)` `->` N
`nSuo` | `(suo` `:` `Str)` `->` N
`nNainen` | `(naista` `:` `Str)` `->` N
`nTilaus` | `(tilaus,tilauksena` `:` `Str)` `->` N
`nKulaus` | `(kulaus` `:` `Str)` `->` N
`nNauris` | `(naurista` `:` `Str)` `->` N
`compN` | `Str` `->` N `->` N
`mkN2` | N `->` N2 `=` `genN2`
`mkN2` | N `->` Prep `->` N2 `=` `mmkN2`
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | N `->` PN
`mkA` | `Str` `->` A
`mkA` | N `->` A
`mkA` | N `->` `(kivempaa,kivinta` `:` `Str)` `->` A
`mkA2` | A `->` Prep `->` A2
`mkV` | `(soutaa` `:` `Str)` `->` V
`mkV` | `(soutaa,souti` `:` `Str)` `->` V
`mkV` | `(soutaa,soudan,souti` `:` `Str)` `->` V
`mkV` | `(tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun` `:` `Str)` `->` V
`mkV` | V `->` Case `->` V
`vValua` | `(valua` `:` `Str)` `->` V
`vKattaa` | `(kattaa,` `katan` `:` `Str)` `->` V
`vOstaa` | `(ostaa` `:` `Str)` `->` V
`vNousta` | `(nousta,` `nousen` `:` `Str)` `->` V
`vTuoda` | `(tuoda` `:` `Str)` `->` V
`caseV` | Case `->` V `->` V
`vOlla` | V
`mkV2` | `Str` `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Case `->` V2
`mkV2` | V `->` Prep `->` V2
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Case `->` V3
`dirdirV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`mkV2V` | V `->` Prep `->` V2V
`mkVA` | V `->` Prep `->` VA
`mkV2A` | V `->` Prep `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` AV
`mkA2V` | A `->` Prep `->` A2V

## Paradigms for French

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/french/ParadigmsFre.gf`

Function | Type
--- | ---
`Gender` | Type
`masculine` | Gender
`feminine` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`accusative` | Prep
`genitive` | Prep
`dative` | Prep
`mkPrep` | `Str` `->` Prep
`mkN` | `(cheval` `:` `Str)` `->` N
`mkN` | `(foie` `:` `Str)` `->` Gender `->` N
`mkN` | `(oeil,yeux` `:` `Str)` `->` Gender `->` N
`mkN` | N `->` `Str` `->` N
`mkN2` | N `->` Prep `->` N2
`deN2` | N `->` N2
`aN2` | N `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | `Str` `->` Gender `->` PN
`mkA` | `(cher` `:` `Str)` `->` A
`mkA` | `(sec,seche` `:` `Str)` `->` A
`mkA` | `(banal,banale,banaux,banalement` `:` `Str)` `->` A
`mkA` | A `->` A `->` A
`prefixA` | A `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkV` | `(finir` `:` `Str)` `->` V
`mkV` | `(jeter,jette,jettera` `:` `Str)` `->` V
`mkV` | V2 `->` V
`etreV` | V `->` V
`reflV` | V `->` V
`mkV2` | V `->` V2 `=` `dirV2`
`mkV2` | V `->` Prep `->` V2 `=` `mmkV2`
`mkV3` | V `->` V3
`mkV3` | V `->` Prep `->` V3
`mkV3` | V `->` Prep `->` Prep `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`deVV` | V `->` VV
`aVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` Prep `->` AV
`mkA2V` | A `->` Prep `->` Prep `->` A2V

## Paradigms for German

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/german/ParadigmsGer.gf`

Function | Type
--- | ---
`Gender` | Type
`masculine` | Gender
`feminine` | Gender
`neuter` | Gender
`Case` | Type
`nominative` | Case
`accusative` | Case
`dative` | Case
`genitive` | Case
`Number` | Type
`singular` | Number
`plural` | Number
`mkN` | `(Stufe` `:` `Str)` `->` N
`mkN` | `(Bild,Bilder` `:` `Str)` `->` Gender `->` N
`mkN` | `(x1,_,_,_,_,x6` `:` `Str)` `->` Gender `->` N
`mkN2` | `Str` `->` N2
`mkN2` | N `->` N2
`mkN2` | N `->` Prep `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | `(nom,gen` `:` `Str)` `->` PN
`mkPN` | `(nom,acc,dat,gen` `:` `Str)` `->` PN
`mkA` | `Str` `->` A
`mkA` | `(gut,besser,beste` `:` `Str)` `->` A
`invarA` | `Str` `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkPrep` | `Str` `->` Case `->` Prep
`accPrep` | Prep
`datPrep` | Prep
`genPrep` | Prep
`von_Prep` | Prep
`zu_Prep` | Prep
`mkV` | `(führen` `:` `Str)` `->` V
`mkV` | `(sehen,sieht,sah,sähe,gesehen` `:` `Str)` `->` V
`mkV` | `(geben,` `gibt,` `gib,` `gab,` `gäbe,` `gegeben` `:` `Str)` `->` V
`mkV` | `Str` `->` V `->` V
`no_geV` | V `->` V
`seinV` | V `->` V
`habenV` | V `->` V
`reflV` | V `->` Case `->` V
`mkV2` | V `->` Prep `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Case `->` V2
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Prep `->` V3
`accdatV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`mkV2V` | V `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` AV
`mkA2V` | A `->` Prep `->` A2V

## Paradigms for Italian

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/italian/ParadigmsIta.gf`

Function | Type
--- | ---
`Gender` | Type
`masculine` | Gender
`feminine` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`--Prep` | Type
`accusative` | Prep
`genitive` | Prep
`dative` | Prep
`mkPrep` | `Str` `->` Prep
`mkN` | `(cane` `:` `Str)` `->` N
`mkN` | `(carne` `:` `Str)` `->` Gender `->` N
`mkN` | `(uomo,uomini` `:` `Str)` `->` Gender `->` N
`mkN` | N `->` `Str` `->` N
`mkN2` | `Str` `->` N2
`mkN2` | N `->` Prep `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | `Str` `->` Gender `->` PN
`mkA` | `(bianco` `:` `Str)` `->` A
`mkA` | `(solo,sola,soli,sole,solamente` `:` `Str)` `->` A
`mkA` | A `->` A `->` A
`prefixA` | A `->` A `=` `prefA`
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkV` | `Str` `->` V
`mkV` | Verbo `->` V
`mkV` | `(udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito` `:` `Str)` `->` V
`essereV` | V `->` V
`reflV` | V `->` V
`mkV2` | `Str` `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Prep `->` V2
`v2V` | V2 `->` V
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Prep `->` V3
`dirdirV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`deVV` | V `->` VV
`aVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` Prep `->` AV
`mkA2V` | A `->` Prep `->` Prep `->` A2V

## Paradigms for Norwegian

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/norwegian/ParadigmsNor.gf`

Function | Type
--- | ---
`Gender` | Type
`masculine` | Gender
`feminine` | Gender
`neutrum` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`Case` | Type
`nominative` | Case
`genitive` | Case
`mkPrep` | `Str` `->` Prep
`noPrep` | Prep
`mkN` | `Str` `->` N
`mkN` | `Str` `->` Gender `->` N
`mkN` | `(bil,bilen` `:` `Str)` `->` N
`mkN` | `(dreng,drengen,drenger,drengene` `:` `Str)` `->` N
`mkN2` | N `->` Prep `->` N2
`regN2` | `Str` `->` Gender `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | `Str` `->` Gender `->` PN
`mkPN` | N `->` PN
`mkA` | `(fin` `:` `Str)` `->` A
`mkA` | `(fin,fint` `:` `Str)` `->` A
`mkA` | `(galen,galet,galne` `:` `Str)` `->` A
`mkA` | `(stor,stort,store,storre,storst` `:` `Str)` `->` A
`mkA` | A `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkV` | `(snakke` `:` `Str)` `->` V
`mkV` | `(leve,levde` `:` `Str)` `->` V
`mkV` | `(drikke,` `drakk,` `drukket` `:` `Str)` `->` V
`mkV` | `(spise,spiser,spises,spiste,spist,spis` `:` `Str)` `->` V
`mkV` | V `->` `Str` `->` V
`vaereV` | V `->` V
`depV` | V `->` V
`reflV` | V `->` V
`mkV2` | `Str` `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Prep `->` V2
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Prep `->` V3
`dirdirV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` AV
`mkA2V` | A `->` Prep `->` A2V

## Paradigms for Russian

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/russian/ParadigmsRus.gf`

Function | Type
--- | ---
`Gender` | Type
`masculine` | Gender
`feminine` | Gender
`neuter` | Gender
`Case` | Type
`nominative` | Case
`genitive` | Case
`dative` | Case
`accusative` | Case
`instructive` | Case
`prepositional` | Case
`Number` | Type
`singular` | Number
`plural` | Number
`mkN` | `(nomSg,` `genSg,` `datSg,` `accSg,` `instSg,` `preposSg,` `prepos2Sg,`
`regN` | `Str` `->` N
`nMashina` | `Str` `->` N
`nEdinica` | `Str` `->` N
`nZhenchina` | `Str` `->` N
`nNoga` | `Str` `->` N
`nMalyariya` | `Str` `->` N
`nTetya` | `Str` `->` N
`nBol` | `Str` `->` N
`nObezbolivauchee` | `Str` `->` N
`nProizvedenie` | `Str` `->` N
`nChislo` | `Str` `->` `Str` `->` N
`nZhivotnoe` | `Str` `->` N
`nPepel` | `Str` `->` N
`nMalush` | `Str` `->` N
`nPotolok` | `Str` `->` N
`nStomatolog` | `Str` `->` N
`nAdres` | `Str` `->` N
`nTelefon` | `Str` `->` N
`nNol` | `Str` `->` N
`nUchitel` | `Str` `->` N
`nUroven` | `Str` `->` N
`nSlovar` | `Str` `->` N
`nMusej` | `Str` `->` N
`nDvorec` | `Str` `->` N
`nTovarish` | `Str` `->` N
`nMesjac` | `Str` `->` N
`nGrazhdanin` | `Str` `->` N
`nRebenok` | `Str` `->` N
`nPut` | `Str` `->` N
`nGospodin` | `Str` `->` N
`nDen` | `Str` `->` N
`nDrug` | `Str` `->` N
`nSyn` | `Str` `->` N
`nLes` | `Str` `->` N
`nMost` | `Str` `->` N
`mkFun` | N `->` Prep `->` N2
`mkN2` | N `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` Gender `->` Animacy `->` PN
`nounPN` | N `->` PN
`regA` | `Str` `->` `Str` `->` A
`adjInvar` | `Str` `->` A
`AStaruyj` | `Str` `->` `Str` `->` A
`AMalenkij` | `Str` `->` `Str` `->` A
`AKhoroshij` | `Str` `->` `Str` `->` A
`AMolodoj` | `Str` `->` `Str` `->` A
`AKakoj_Nibud` | `Str` `->` `Str` `->` `Str` `->` A
`mkA2` | A `->` `Str` `->` Case `->` A2
`mkAdv` | `Str` `->` Adv
`mkV` | Aspect `->` `(presentSgP1,presentSgP2,presentSgP3,`
`pastSgP1,imperative,infinitive` | `Str)` `->` V
`mkV2` | V `->` `Str` `->` Case `->` V2
`mkV3` | V `->` `Str` `->` `Str` `->` Case `->` Case `->` V3
`dirV2` | V `->` V2
`tvDirDir` | V `->` V3

## Paradigms for Spanish

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/spanish/ParadigmsSpa.gf`

Function | Type
--- | ---
`Gender` | Type
`masculine` | Gender
`feminine` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`accusative` | Prep
`genitive` | Prep
`dative` | Prep
`mkPrep` | `Str` `->` Prep
`mkN` | `(luz` `:` `Str)` `->` N
`mkN` | `Str` `->` Gender `->` N
`mkN` | `(baston,bastones` `:` `Str)` `->` Gender `->` N
`compN` | N `->` `Str` `->` N
`mkN2` | N `->` Prep `->` N2
`deN2` | N `->` N2
`aN2` | N `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `(Anna` `:` `Str)` `->` PN
`mkPN` | `(Pilar` `:` `Str)` `->` Gender `->` PN
`mkA` | `(util` `:` `Str)` `->` A
`mkA` | `(solo,sola,solos,solas,solamente` `:` `Str)` `->` A
`mkA` | `(bueno` `:` `A)` `->` `(mejor` `:` `A)` `->` A
`prefixA` | A `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkV` | `(pagar` `:` `Str)` `->` V
`mkV` | `(mostrar,muestro` `:` `Str)` `->` V
`mkV` | Verbum `->` V
`reflV` | V `->` V
`special_ppV` | V `->` `Str` `->` V
`mkV2` | `Str` `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Prep `->` V2
`v2V` | V2 `->` V
`mkV3` | V `->` Prep `->` Prep `->` V3
`dirV3` | V `->` Prep `->` V3
`dirdirV3` | V `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`deVV` | V `->` VV
`aVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` Prep `->` AV
`mkA2V` | A `->` Prep `->` Prep `->` A2V

## Paradigms for Swedish

source `http://www.cs.chalmers.se/~aarne/GF/lib/resource/swedish/ParadigmsSwe.gf`

Function | Type
--- | ---
`Gender` | Type
`utrum` | Gender
`neutrum` | Gender
`Number` | Type
`singular` | Number
`plural` | Number
`Case` | Type
`nominative` | Case
`genitive` | Case
`mkPrep` | `Str` `->` Prep
`noPrep` | Prep
`mkN` | `(apa` `:` `Str)` `->` N
`mkN` | `(lik` `:` `Str)` `->` Gender `->` N
`mkN` | `(nyckel,nycklar` `:` `Str)` `->` N
`mkN` | `(museum,museet,museer,museerna` `:` `Str)` `->` N
`mkN2` | `Str` `->` N2
`mkN2` | N `->` Prep `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | `Str` `->` Gender `->` PN
`mkPN` | `(jesus,jesu` `:` `Str)` `->` Gender `->` PN
`mkA` | `(billig` `:` `Str)` `->` A
`mkA` | `(bred,brett` `:` `Str)` `->` A
`mkA` | `(tung,tyngre,tyngst` `:` `Str)` `->` A
`mkA` | `(god,gott,goda,battre,bast` `:` `Str)` `->` A
`mkA` | `(liten,litet,lilla,sma,mindre,minst,minsta` `:` `Str)` `->` A
`compoundA` | A `->` A
`mkA2` | A `->` Prep `->` A2
`mkAdv` | `Str` `->` Adv
`mkAdV` | `Str` `->` AdV
`mkAdA` | `Str` `->` AdA
`mkV` | `(stämmer` `:` `Str)` `->` V
`mkV` | `(dricka,drack,druckit` `:` `Str)` `->` V
`mkV` | `(gå,går,gå,gick,gått,gången` `:` `Str)` `->` V
`mkV` | V `->` `Str` `->` V
`depV` | V `->` V
`reflV` | V `->` V
`mkV2` | `Str` `->` V2
`mkV2` | V `->` V2
`mkV2` | V `->` Prep `->` V2
`mkV3` | `Str` `->` V3
`mkV3` | V `->` V3
`mkV3` | V `->` Prep `->` V3
`mkV3` | V `->` Prep `->` Prep `->` V3
`mkV0` | V `->` V0
`mkVS` | V `->` VS
`mkV2S` | V `->` Prep `->` V2S
`mkVV` | V `->` VV
`mkV2V` | V `->` Prep `->` Prep `->` V2V
`mkVA` | V `->` VA
`mkV2A` | V `->` Prep `->` V2A
`mkVQ` | V `->` VQ
`mkV2Q` | V `->` Prep `->` V2Q
`mkAS` | A `->` AS
`mkA2S` | A `->` Prep `->` A2S
`mkAV` | A `->` AV
`mkA2V` | A `->` Prep `->` A2V

# Browsing the libraries with GF commands

New: Browsing by syntax editor directly on the web.

All of the following assume

        cd $GF_LIB_PATH

To try out inflection paradigms:

        > i -path=alltenses:prelude -retain alltenses/ParadigmsGer.gfr
        > cc mkN "Farbe"

To try out overloaded syntax, test lexicon, and inflection paradigms:

        > i -path=alltenses:prelude -retain alltenses/TryGer.gfr
        > cc mkCl (mkNP this_QuantSg (mkN "Farbe")) (mkA "dunkel")

To look for a syntax tree in the overload API by parsing:

        > i -path=alltenses:prelude alltenses/OverLangEng.gfc
        > p -cat=S -overload "this grammar is too big"

To view linearizations in all languages by parsing from English:

        > i alltenses/langs.gfcm
        > p -cat=S -lang=LangEng "this grammar is too big" | tb

# An Example of Usage

The standard way of building an application has the following modules.

An abstract syntax:

        abstract Music = {
        cat
          Kind,
          Property ;
        fun
          PropKind : Kind -> Property -> Kind ;
          Song : Kind ;
          American : Property ;
        }

A domain lexicon interface:

        interface LexMusic = open Cat in {
        oper
          song_N : N ;
          american_A : A ;
        }

A functor on `Syntax` and the domain lexicon interface:

        incomplete concrete MusicI of Music = open Syntax, MusicLex in {
        lincat
          Kind = CN ;
          Property = AP ;
        lin
          PropKind k p = mkCN p k ;
          Song = mkCN song_N ;
          American = mkAP american_A ;
        }

For each language, an instance of the domain lexicon:

        instance LexMusicGer of LexMusic = CatGer ** open ParadigmsGer in {
        oper
          song_N = mkN "Lied" "Lieder" neuter ;
          american_A = mkA "amerikanisch" ;
        }

For each language, an instantiation of the functor:

        --# -path=.:present:prelude

        concrete MusicGer of Music = MusicI with
          (Syntax = SyntaxGer),
          (LexMusic = LexMusicGer) ;