# 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
  - Art - article
  - CAdv - comparative adverb
  - CN - common noun (without determiner)
  - Card - cardinal number
  - Cl - declarative clause, with all tenses
  - ClSlash
  - Comp - complement of copula, such as AP
  - Conj - conjunction
  - Det - determiner phrase
  - Dig
  - Digits - cardinal or ordinal in digits
  - IAdv - interrogative adverb
  - IComp - interrogative complement of copula
  - IDet - interrogative determiner
  - IP - interrogative pronoun
  - IQuant
  - 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 - number determining element
  - 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)
  - RCl - relative clause, with all tenses
  - RP - relative pronoun
  - RS - relative
  - S - declarative sentence
  - SC - embedded sentence or question
  - 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
  - V2Q - verb with NP and Q complement
  - V2S - verb with NP and S complement
  - V2V - verb with NP and V complement
  - V3 - three-place verb
  - VA - adjective-complement verb
  - VP - verb phrase
  - VPSlash - verb phrase missing complement
  - VQ - question-complement verb
  - VS - sentence-complement verb
  - VV - verb-phrase-complement verb
  - Voc - vocative or "please"
- Lexical Paradigms
  - Paradigms for Bulgarian
  - 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
Art | article | the
CAdv | comparative adverb | more
CN | common noun (without determiner) | red house
Card | cardinal number | seven
Cl | declarative clause, with all tenses | she looks at this
Comp | complement of copula, such as AP | very warm
Conj | conjunction | 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 | how many
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 | number determining element | 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
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
V2Q | verb with NP and Q complement | ask
V2S | verb with NP and S complement | tell
V2V | verb with NP and V complement | cause
V3 | three-place verb | show
VA | adjective-complement verb | look
VP | verb phrase | is very warm
VPSlash | verb phrase missing complement | give to John
VQ | question-complement verb | wonder
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

## AdA - adjective-modifying adverb

Function | Type | Example
--- | --- | ---
`almost_AdA` | AdA | almost
`quite_Adv` | AdA | quite
`so_AdA` | AdA | so
`too_AdA` | AdA | too
`very_AdA` | AdA | very

## AdN - numeral-modifying adverb

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

## AdV - adverb directly attached to verb

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

## Adv - verb-phrase-modifying adverb

Function | Type | Example
--- | --- | ---
`everywhere_Adv` | Adv | everywhere
`here7from_Adv` | Adv | from here
`here7to_Adv` | Adv | to here
`here_Adv` | Adv | here
`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
`somewhere_Adv` | Adv | somewhere
`there7from_Adv` | Adv | from there
`there7to_Adv` | Adv | to there
`there_Adv` | Adv | there

## Ant - anteriority

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

## Art - article

Function | Type | Example
--- | --- | ---
`a_Art` | Art | a
`the_Art` | Art | the

## CAdv - comparative adverb

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

## 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

## Card - cardinal number

Lexical category, constructors given in lexical paradigms.

## 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 `->` V2S `->` NP `->` S `->` Cl | John tells her that we are here
`mkCl` | NP `->` V2Q `->` NP `->` QS `->` Cl | John asks her who is here
`mkCl` | NP `->` V2V `->` NP `->` VP `->` Cl | John forces us to sleep
`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

## ClSlash

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

## Comp - complement of copula, such as AP

Lexical category, constructors given in lexical paradigms.

## Conj - conjunction

Function | Type | Example
--- | --- | ---
`and_Conj` | Conj | and
`both7and_DConj` | Conj | both...and
`either7or_DConj` | Conj | either...or
`or_Conj` | Conj | or

## Det - determiner phrase

Function | Type | Example
--- | --- | ---
`every_Det` | Det | every
`few_Det` | Det | few
`many_Det` | Det | many
`mkDet` | Quant `->` Det | this
`mkDet` | Quant `->` (Ord) `->` Det | this first
`mkDet` | Quant `->` Num `->` Det | these
`mkDet` | Quant `->` Num `->` (Ord) `->` Det | these five best
`mkDet` | Quant `->` Det | this
`mkDet` | Quant `->` Num `->` Det | these five
`mkDet` | Card `->` Det | almost twenty
`mkDet` | Numeral `->` Det | five
`mkDet` | Digits `->` Det | 51
`mkDet` | Pron `->` Det | my (house)
`mkDet` | Pron `->` Num `->` Det | my (houses)
`much_Det` | Det | much
`somePl_Det` | Det | somePl
`someSg_Det` | Det | someSg

## Dig

Function | Type | Example
--- | --- | ---
`n0_Dig` | Dig | 0
`n1_Dig` | Dig | 1
`n2_Dig` | Dig | 2
`n3_Dig` | Dig | 3
`n4_Dig` | Dig | 4
`n5_Dig` | Dig | 5
`n6_Dig` | Dig | 6
`n7_Dig` | Dig | 7
`n8_Dig` | Dig | 8
`n9_Dig` | Dig | 9

## Digits - cardinal or ordinal in digits

Function | Type | Example
--- | --- | ---
`mkDigits` | Dig `->` Digits | 8
`mkDigits` | Dig `->` Digits `->` Digits | 876
`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 | how
`mkIAdv` | Prep `->` IP `->` IAdv | in which city
`when_IAdv` | IAdv | when
`where_IAdv` | IAdv | where
`why_IAdv` | IAdv | why

## IComp - interrogative complement of copula

Lexical category, constructors given in lexical paradigms.

## IDet - interrogative determiner

Function | Type | Example
--- | --- | ---
`how8many_IDet` | IDet | how8many

## IP - interrogative pronoun

Function | Type | Example
--- | --- | ---
`mkIP` | IQuant `->` N `->` IP | which city
`mkIP` | IQuant `->` (Num) `->` CN `->` IP | which five big cities
`mkIP` | IP `->` Adv `->` IP | who in Paris
`whatPl_IP` | IP | what (plural)
`whatSg_IP` | IP | what (singular)
`whoPl_IP` | IP | who (plural)
`whoSg_IP` | IP | who (singular)

## IQuant

Function | Type | Example
--- | --- | ---
`which_IQuant` | IQuant | which

## 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 | everybody
`everything_NP` | NP | everything
`mkNP` | Art `->` NP | the man
`mkNP` | Art `->` (Num) `->` CN `->` NP | the five old men
`mkNP` | Quant `->` N `->` NP | this men
`mkNP` | Det `->` N `->` NP | the first man
`mkNP` | Det `->` CN `->` NP | the first old man
`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` | Card `->` N `->` NP | almost twenty men
`mkNP` | Card `->` 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` | Quant `->` NP | this
`mkNP` | Det `->` NP | these five
`mkNP` | N `->` NP | beer
`mkNP` | CN `->` NP | beer
`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
`somebody_NP` | NP | somebody
`something_NP` | NP | something

==NP;==[NP;]

Function | Type | Example
--- | --- | ---
`mkNP` | Quant `->` (Num) `->` CN `->` `NP;` | these five old men

## Num - number determining element

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

## 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 | but
`mkPConj` | Conj `->` PConj | and
`otherwise_PConj` | PConj | otherwise
`therefore_PConj` | PConj | therefore

## 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

## 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 | all
`most_Predet` | Predet | most
`only_Predet` | Predet | only

## Prep - preposition, or just case

Function | Type | Example
--- | --- | ---
`above_Prep` | Prep | above
`after_Prep` | Prep | after
`before_Prep` | Prep | before
`behind_Prep` | Prep | behind
`between_Prep` | Prep | between
`by8agent_Prep` | Prep | by (agent)
`by8means_Prep` | Prep | by (means of)
`during_Prep` | Prep | during
`for_Prep` | Prep | for
`from_Prep` | Prep | from
`in8front_Prep` | Prep | in front of
`in_Prep` | Prep | in
`on_Prep` | Prep | on
`part_Prep` | Prep | part
`possess_Prep` | Prep | of (possessive)
`through_Prep` | Prep | through
`to_Prep` | Prep | to
`under_Prep` | Prep | under
`with_Prep` | Prep | with
`without_Prep` | Prep | without

## Pron - personal pronoun

Function | Type | Example
--- | --- | ---
`he_Pron` | Pron | he
`i_Pron` | Pron | i
`it_Pron` | Pron | it
`she_Pron` | Pron | she
`they_Pron` | Pron | they
`we_Pron` | Pron | we
`youPl_Pron` | Pron | you (plural)
`youPol_Pron` | Pron | you (polite)
`youSg_Pron` | Pron | you (singular)

## 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 `->` ClSlash `->` 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
--- | --- | ---
`that_Quant` | Quant | that
`this_Quant` | Quant | 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 `->` ClSlash `->` 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` | Adv `->` S `->` S | today, John walks

## SC - embedded sentence or question

Lexical category, constructors given in lexical paradigms.

## Subj - subjunction

Function | Type | Example
--- | --- | ---
`although_Subj` | Subj | although
`because_Subj` | Subj | because
`if_Subj` | Subj | if
`when_Subj` | Subj | when

## 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
`no_Utt` | Utt | no
`yes_Utt` | Utt | yes

## 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.

## V2Q - verb with NP and Q complement

Lexical category, constructors given in lexical paradigms.

## V2S - verb with NP and S complement

Lexical category, constructors given in lexical paradigms.

## V2V - verb with NP and V 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
`mkVP` | VPSlash `->` NP `->` VP | paint it black
`mkVP` | VPSlash `->` VP | paint itself black
`passiveVP` | V2 `->` VP | be loved
`passiveVP` | V2 `->` NP `->` VP | be loved by her
`progressiveVP` | VP `->` VP | be sleeping
`reflexiveVP` | V2 `->` VP | love itself

## VPSlash - verb phrase missing complement

Function | Type | Example
--- | --- | ---
`mkVPSlash` | V2 `->` VPSlash | (whom) (John) loves
`mkVPSlash` | V3 `->` NP `->` VPSlash | (whom) (John) gives an apple
`mkVPSlash` | V2A `->` AP `->` VPSlash | (whom) (John) paints red
`mkVPSlash` | V2Q `->` QS `->` VPSlash | (whom) (John) asks who sleeps
`mkVPSlash` | V2S `->` S `->` VPSlash | (whom) (John) tells that we sleep
`mkVPSlash` | V2V `->` VP `->` VPSlash | (whom) (John) forces to sleep

## 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 | can8know
`can_VV` | VV | can
`must_VV` | VV | must
`want_VV` | VV | want

## Voc - vocative or "please"

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

# Lexical Paradigms

## Paradigms for Bulgarian

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

Function | Type
--- | ---
`mkN001` | `Str` `->` N
`mkN002` | `Str` `->` N
`mkN002a` | `Str` `->` N
`mkN003` | `Str` `->` N
`mkN004` | `Str` `->` N
`mkN005` | `Str` `->` N
`mkN006` | `Str` `->` N
`mkN007` | `Str` `->` N
`mkN007b` | `Str` `->` N
`mkN007a` | `Str` `->` N
`mkN008` | `Str` `->` N
`mkN008a` | `Str` `->` N
`mkN009` | `Str` `->` N
`mkN009a` | `Str` `->` N
`mkN010` | `Str` `->` N
`mkN011` | `Str` `->` N
`mkN012` | `Str` `->` N
`mkN013` | `Str` `->` N
`mkN014` | `Str` `->` N
`mkN014a` | `Str` `->` N
`mkN015` | `Str` `->` N
`mkN016` | `Str` `->` N
`mkN017` | `Str` `->` N
`mkN018` | `Str` `->` N
`mkN018a` | `Str` `->` N
`mkN019` | `Str` `->` N
`mkN019a` | `Str` `->` N
`mkN020` | `Str` `->` N
`mkN021` | `Str` `->` N
`mkN022` | `Str` `->` N
`mkN023` | `Str` `->` N
`mkN024a` | `Str` `->` N
`mkN024` | `Str` `->` N
`mkN025` | `Str` `->` N
`mkN026` | `Str` `->` N
`mkN027` | `Str` `->` N
`mkN028` | `Str` `->` N
`mkN028a` | `Str` `->` N
`mkN029` | `Str` `->` N
`mkN030` | `Str` `->` N
`mkN031` | `Str` `->` N
`mkN031a` | `Str` `->` N
`mkN032` | `Str` `->` N
`mkN032a` | `Str` `->` N
`mkN033` | `Str` `->` N
`mkN034` | `Str` `->` N
`mkN035` | `Str` `->` N
`mkN035a` | `Str` `->` N
`mkN036` | `Str` `->` N
`mkN037` | `Str` `->` N
`mkN038` | `Str` `->` N
`mkN039` | `Str` `->` N
`mkN040` | `Str` `->` N
`mkN040a` | `Str` `->` N
`mkN041` | `Str` `->` N
`mkN041a` | `Str` `->` N
`mkN041b` | `Str` `->` N
`mkN042` | `Str` `->` N
`mkN043` | `Str` `->` N
`mkN043a` | `Str` `->` N
`mkN044` | `Str` `->` N
`mkN045` | `Str` `->` N
`mkN046` | `Str` `->` N
`mkN047` | `Str` `->` N
`mkN048` | `Str` `->` N
`mkN049` | `Str` `->` N
`mkN050` | `Str` `->` N
`mkN051` | `Str` `->` N
`mkN052` | `Str` `->` N
`mkN052a` | `Str` `->` N
`mkN053` | `Str` `->` N
`mkN054` | `Str` `->` N
`mkN055` | `Str` `->` N
`mkN056` | `Str` `->` N
`mkN057` | `Str` `->` N
`mkN057a` | `Str` `->` N
`mkN058` | `Str` `->` N
`mkN059` | `Str` `->` N
`mkN060` | `Str` `->` N
`mkN061` | `Str` `->` N
`mkN062` | `Str` `->` N
`mkN063` | `Str` `->` N
`mkN064` | `Str` `->` N
`mkN065` | `Str` `->` N
`mkN066` | `Str` `->` N
`mkN067` | `Str` `->` N
`mkN068` | `Str` `->` N
`mkN069` | `Str` `->` N
`mkN070` | `Str` `->` N
`mkN071` | `Str` `->` N
`mkN072` | `Str` `->` N
`mkN073` | `Str` `->` N
`mkN074` | `Str` `->` N
`mkN075` | `Str` `->` N
`mkA076` | `Str` `->` A
`mkA077` | `Str` `->` A
`mkA078` | `Str` `->` A
`mkA079` | `Str` `->` A
`mkA080` | `Str` `->` A
`mkA081` | `Str` `->` A
`mkA082` | `Str` `->` A
`mkA082a` | `Str` `->` A
`mkA083` | `Str` `->` A
`mkA084` | `Str` `->` A
`mkA084a` | `Str` `->` A
`mkA085` | `Str` `->` A
`mkA086` | `Str` `->` A
`mkA087` | `Str` `->` A
`mkA088` | `Str` `->` A
`mkA089` | `Str` `->` A
`mkA089a` | `Str` `->` A
`mkV142` | `Str` `->` VTable
`mkV143` | `Str` `->` VTable
`mkV144` | `Str` `->` VTable
`mkV145` | `Str` `->` VTable
`mkV145a` | `Str` `->` VTable
`mkV145b` | `Str` `->` VTable
`mkV146` | `Str` `->` VTable
`mkV146a` | `Str` `->` VTable
`mkV147` | `Str` `->` VTable
`mkV148` | `Str` `->` VTable
`mkV149` | `Str` `->` VTable
`mkV150` | `Str` `->` VTable
`mkV150a` | `Str` `->` VTable
`mkV151` | `Str` `->` VTable
`mkV152` | `Str` `->` VTable
`mkV152a` | `Str` `->` VTable
`mkV153` | `Str` `->` VTable
`mkV154` | `Str` `->` VTable
`mkV155` | `Str` `->` VTable
`mkV156` | `Str` `->` VTable
`mkV157` | `Str` `->` VTable
`mkV158` | `Str` `->` VTable
`mkV159` | `Str` `->` VTable
`mkV160` | `Str` `->` VTable
`mkV160a` | `Str` `->` VTable
`mkV161` | `Str` `->` VTable
`mkV161a` | `Str` `->` VTable
`mkV162` | `Str` `->` VTable
`mkV163` | `Str` `->` VTable
`mkV164` | `Str` `->` VTable
`mkV165` | `Str` `->` VTable
`mkV166` | `Str` `->` VTable
`mkV167` | `Str` `->` VTable
`mkV168` | `Str` `->` VTable
`mkV169` | `Str` `->` VTable
`mkV170` | `Str` `->` VTable
`mkV171` | `Str` `->` VTable
`mkV172` | `Str` `->` VTable
`mkV173` | `Str` `->` VTable
`mkV174` | `Str` `->` VTable
`mkV175` | `Str` `->` VTable
`mkV176` | `Str` `->` VTable
`mkV177` | `Str` `->` VTable
`mkV178` | `Str` `->` VTable
`mkV179` | `Str` `->` VTable
`mkV180` | `Str` `->` VTable
`mkV181` | `Str` `->` VTable
`mkV182` | `Str` `->` VTable
`mkV183` | `Str` `->` VTable
`mkV184` | `Str` `->` VTable
`mkV185` | `Str` `->` VTable
`mkV186` | `Str` `->` VTable
`mkV187` | `Str` `->` VTable
`adjAdv` | A `->` `Str` `->` A `=`

## 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
`V0` | Type

## 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
`feminine` | 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` | Gender `->` N `->` 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
`V0` | Type

## 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` | `(vesi,veden,vesiä,vettä` `:` `Str)` `->` N
`mkN` | `(olo,olon,olona,oloa,oloon,olojen,oloja,oloina,oloissa,oloihin` `:` `Str)` `->` N
`mkN` | `(pika` `:` `Str)` `->` `(juna` `:` `N)` `->` N
`mkN` | `(oma` `:` `N)` `->` `(tunto` `:` `N)` `->` N
`mkN2` | N `->` N2
`mkN2` | N `->` Prep `->` N2
`mkN3` | N `->` Prep `->` Prep `->` N3
`mkPN` | `Str` `->` PN
`mkPN` | N `->` PN
`mkA` | `Str` `->` A
`mkA` | N `->` A
`mkA` | N `->` `(kivempaa,kivinta` `:` `Str)` `->` A
`mkA` | `(hyva,parempi,paras` `:` `N)` `->` `(hyvin,paremmin,parhaiten` `:` `Str)` `->` A
`mkA2` | A `->` Prep `->` A2 `=` `\a,p` `->` `a` `**` `{c2` `=` `p` `lock_A2` `=` `<>};`
`mkV` | `(huutaa` `:` `Str)` `->` V
`mkV` | `(huutaa,huusi` `:` `Str)` `->` V
`mkV` | `(huutaa,huudan,huusi` `:` `Str)` `->` V
`mkV` | `(`
`huusin,huusi,huusisi,huutanut,huudettu,huutanee` | `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
`V0` | Type

## 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
`V0` | Type

## 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
`V0` | Type

## 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
`V0` | Type

## 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
`V0` | Type

## 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
`V0` | Type

## 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
`V0` | Type

# 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 -retain alltenses/ParadigmsGer.gfo
        > cc mkN "Farbe"

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

        > i -path=alltenses -retain alltenses/TryGer.gfo
        > cc mkCl (mkNP this_Quant (mkN "Farbe")) (mkA "dunkel")

# 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) ;