GF Resource Grammar Library: Synopsis

B. Bringert, T. Hallgren, and A. Ranta

Introduction

The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of currently 32 languages: Afrikaans, Bulgarian, Catalan, Chinese (simplified), Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hindi, Icelandic, Japanese, Italian, Latvian, Maltese, Mongolian, Nepali, Norwegian (bokmål), Norwegial (nynorsk), Persian, Polish, Punjabi, Romanian, Russian, Sindhi, Spanish, Swedish, Thai, Urdu.

This document contains the most important parts of the GF Resource Grammar API, as needed by a GF application programmer. It has been machine-generated from the source files; there are links 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 nicest possible format.

The main contents are:

Other relevant documents:

Many examples in Chapter 2 can be seen in multiple languages by hovering the mouse over the example, as shown in the following screenshot:

Categories

Source 1: ../src/abstract/Common.gf

Source 2: ../src/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
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
DAP determiner with adjective three small
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
Interj interjection alas
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
Temp temporal and aspectual features past anterior
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: ../src/api/Constructors.gf

Source 2: ../src/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
comparAP A -> AP
warmer
mkAP A -> AP
warm
mkAP A -> NP -> AP
warmer than Paris
mkAP A2 -> NP -> AP
married to her
mkAP A2 -> AP
married
mkAP AP -> S -> AP
it is good that she sleeps
mkAP AP -> QS -> AP
it is uncertain who sleeps
mkAP AP -> VP -> AP
she is ready to sleep
mkAP AP -> SC -> AP
she is ready to sleep
mkAP AdA -> A -> AP
very old
mkAP AdA -> AP -> AP
very very old
mkAP Conj -> AP -> AP -> AP
old or young
mkAP Conj -> ListAP -> AP
old , big and warm
mkAP Ord -> AP
oldest
mkAP CAdv -> AP -> NP -> AP
as old as she
reflAP A2 -> AP
married to itself

AdA - adjective-modifying adverb

Function Type Example
almost_AdA AdA
almost red
quite_Adv AdA
quite
so_AdA AdA
so warm
too_AdA AdA
too warm
very_AdA AdA
very warm

AdN - numeral-modifying adverb

Function Type Example
almost_AdN AdN
almost eight
at_least_AdN AdN
at least eight
at_most_AdN AdN
at most eight
mkAdN CAdv -> AdN
more than eight

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
in the house
mkAdv Subj -> S -> Adv
when she sleeps
mkAdv CAdv -> A -> NP -> Adv
more warmly than he
mkAdv CAdv -> A -> S -> Adv
more warmly than he runs
mkAdv AdA -> Adv -> Adv
very warmly
mkAdv Conj -> Adv -> Adv -> Adv
here and now
mkAdv Conj -> ListAdv -> Adv
with her , here and now
somewhere_Adv Adv
somewhere
there7from_Adv Adv
from there
there7to_Adv Adv
there
there_Adv Adv
there

Ant - anteriority

Function Type Example
anteriorAnt Ant
she has slept
simultaneousAnt Ant
she sleeps

CAdv - comparative adverb

Function Type Example
as_CAdv CAdv
as
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 the king
mkCN N3 -> NP -> NP -> CN
distance from this city to Paris
mkCN N2 -> CN
mother
mkCN N3 -> CN
distance
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
man that she loves
mkCN CN -> RS -> CN
old man that she loves
mkCN N -> Adv -> CN
house on the hill
mkCN CN -> Adv -> CN
big house on the hill
mkCN CN -> S -> CN
rule that she sleeps
mkCN CN -> QS -> CN
question if she sleeps
mkCN CN -> VP -> CN
reason to sleep
mkCN CN -> SC -> CN
reason to sleep
mkCN N -> NP -> CN
king John
mkCN CN -> NP -> CN
old king John

Card - cardinal number

Function Type Example
mkCard Str -> Card thirty-five (given as "35"; range 1-999)
mkCard Numeral -> Card
seven
mkCard Digits -> Card 51
mkCard AdN -> Card -> Card almost fifty

Cl - declarative clause, with all tenses

Function Type Example
genericCl VP -> Cl
one sleeps
mkCl NP -> V -> Cl
she sleeps
mkCl NP -> V2 -> NP -> Cl
she loves him
mkCl NP -> V3 -> NP -> NP -> Cl
she sends it to him
mkCl NP -> VV -> VP -> Cl
she wants to sleep
mkCl NP -> VS -> S -> Cl
she says that I sleep
mkCl NP -> VQ -> QS -> Cl
she wonders who sleeps
mkCl NP -> VA -> A -> Cl
she becomes old
mkCl NP -> VA -> AP -> Cl
she becomes very old
mkCl NP -> V2A -> NP -> A -> Cl
she paints it red
mkCl NP -> V2A -> NP -> AP -> Cl
she paints it red
mkCl NP -> V2S -> NP -> S -> Cl
she answers to him that we sleep
mkCl NP -> V2Q -> NP -> QS -> Cl
she asks him who sleeps
mkCl NP -> V2V -> NP -> VP -> Cl
she begs him to sleep
mkCl NP -> VPSlash -> NP -> Cl she begs him to sleep here
mkCl NP -> A -> Cl
she is old
mkCl NP -> A -> NP -> Cl
she is older than he
mkCl NP -> A2 -> NP -> Cl
she is married to him
mkCl NP -> AP -> Cl
she is very old
mkCl NP -> NP -> Cl
she is the woman
mkCl NP -> N -> Cl
she is a woman
mkCl NP -> CN -> Cl
she is an old woman
mkCl NP -> Adv -> Cl
she is here
mkCl NP -> VP -> Cl
she always sleeps
mkCl N -> Cl
there is a house
mkCl CN -> Cl
there is an old house
mkCl NP -> Cl
there are many houses
mkCl NP -> RS -> Cl
it is she that sleeps
mkCl Adv -> S -> Cl
it is here that she sleeps
mkCl V -> Cl
it rains
mkCl VP -> Cl
it is raining
mkCl SC -> VP -> Cl
that she sleeps is good

ClSlash

Function Type Example
mkClSlash NP -> VPSlash -> ClSlash
whom does she see
mkClSlash NP -> V2 -> ClSlash
whom does she see
mkClSlash NP -> VV -> V2 -> ClSlash
whom does she want to see
mkClSlash Cl -> Prep -> ClSlash
whom does she sleep with
mkClSlash ClSlash -> Adv -> ClSlash
whom does she see today
mkClSlash NP -> VS -> SSlash -> ClSlash
whom does she know that we hadn't seen

Comp - complement of copula, such as AP

Function Type Example
mkComp AP -> Comp
to be old
mkComp NP -> Comp
to be this man
mkComp Adv -> Comp
to be here

Conj - conjunction

Function Type Example
and_Conj Conj
here and now
both7and_DConj Conj
both here and there
either7or_DConj Conj
either here or there
if_then_Conj Conj
if here then there
or_Conj Conj
here or there

DAP - determiner with adjective

Lexical category, constructors given in lexical paradigms.

Det - determiner phrase

Function Type Example
aPl_Det Det
women
aSg_Det Det
a woman
a_Det Det
a house
every_Det Det
every woman
few_Det Det
few women
many_Det Det
many houses
mkDet Quant -> Det
this
mkDet Quant -> Card -> Det
these five
mkDet Quant -> Ord -> Det
the fifth
mkDet Quant -> Num -> Ord -> Det
the five best
mkDet Quant -> Num -> Det
these
mkDet Card -> Det
five
mkDet Digits -> Det 51
mkDet Numeral -> Det five
mkDet Pron -> Det my
mkDet Pron -> Num -> Det
my five
much_Det Det
much wine
somePl_Det Det
some women
someSg_Det Det
some wine
that_Det Det
that woman
thePl_Det Det
the houses
theSg_Det Det
the house
the_Det Det
the house
these_Det Det
these women
this_Det Det
this woman
those_Det Det
those women

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 Str -> Digits 35 (from string "35"; ; range 1-9999999)
mkDigits Dig -> Digits
4
mkDigits Dig -> Digits -> Digits
1,233,486

IAdv - interrogative adverb

Function Type Example
how8much_IAdv IAdv
how much
how_IAdv IAdv
how
mkIAdv Prep -> IP -> IAdv
in which city
mkIAdv IAdv -> Adv -> IAdv
where in Paris
when_IAdv IAdv
when
where_IAdv IAdv
where
why_IAdv IAdv
why

IComp - interrogative complement of copula

Function Type Example
mkIComp IAdv -> IComp where (is it)
mkIComp IP -> IComp who (is it)

IDet - interrogative determiner

Function Type Example
how8many_IDet IDet
how many houses
mkIDet IQuant -> Num -> IDet
which houses
mkIDet IQuant -> IDet
which house
whichPl_IDet IDet
which houses
which_IDet IDet
which house

IP - interrogative pronoun

Function Type Example
mkIP IDet -> CN -> IP
which five big cities
mkIP IDet -> N -> IP
which five cities
mkIP IDet -> IP
which five
mkIP IQuant -> CN -> IP
which big city
mkIP IQuant -> Num -> CN -> IP
which five big cities
mkIP IQuant -> N -> IP
which city
mkIP IP -> Adv -> IP
who in Paris
whatPl_IP IP
what
whatSg_IP IP
what
what_IP IP
what
whoPl_IP IP
who
whoSg_IP IP
who
who_IP IP
who

IQuant

Function Type Example
which_IQuant IQuant
which house

Imp - imperative

Function Type Example
mkImp VP -> Imp
come to my house
mkImp V -> Imp
come
mkImp V2 -> NP -> Imp
buy it

ImpForm

Function Type Example
pluralImpForm ImpForm
be men
politeImpForm ImpForm
be a man
singularImpForm ImpForm
be a man

Interj - interjection

Lexical category, constructors given in lexical paradigms.

ListAP

Function Type Example
mkListAP AP -> AP -> ListAP list of two
mkListAP AP -> ListAP -> ListAP list of more

ListAdv

Function Type Example
mkListAdv Adv -> Adv -> ListAdv list of two
mkListAdv Adv -> ListAdv -> ListAdv list of more

ListNP

Function Type Example
mkListNP NP -> NP -> ListNP list of two
mkListNP NP -> ListNP -> ListNP list of more

ListRS

Function Type Example
mkListRS RS -> RS -> ListRS list of two
mkListRS RS -> ListRS -> ListRS list of more

ListS

Function Type Example
mkListS S -> S -> ListS list of two
mkListS S -> ListS -> ListS list of more

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
he_NP NP
he
i_NP NP
I
it_NP NP
it
mkNP Quant -> N -> NP
this man
mkNP Quant -> CN -> NP
this old man
mkNP Quant -> Num -> CN -> NP
these five old men
mkNP Quant -> Num -> N -> NP
these five men
mkNP Det -> CN -> NP
the five old men
mkNP Det -> N -> NP
the five men
mkNP Numeral -> CN -> NP
five old men
mkNP Numeral -> N -> NP
five men
mkNP Digits -> CN -> NP
51 old men
mkNP Digits -> N -> NP
51 men
mkNP Card -> CN -> NP forty-five old men
mkNP Card -> N -> NP forty-five men
mkNP Pron -> CN -> NP
my old man
mkNP Pron -> N -> NP
my man
mkNP PN -> NP
Paris
mkNP Pron -> NP
we
mkNP Quant -> NP
this
mkNP Quant -> Num -> NP
these five
mkNP Det -> NP
the five best
mkNP CN -> NP
old beer
mkNP N -> NP
beer
mkNP Predet -> NP -> NP
only this woman
mkNP NP -> V2 -> NP
the man seen
mkNP NP -> Adv -> NP
Paris today
mkNP NP -> RS -> NP
John, that walks ...
mkNP Conj -> NP -> NP -> NP
this woman or John
mkNP Conj -> ListNP -> NP
this woman , John or I
nobody_NP NP
nobody
nothing_NP NP
nothing
she_NP NP
she
somebody_NP NP
somebody
something_NP NP
something
that_NP NP
that
these_NP NP
these
they_NP NP
they
this_NP NP
this
those_NP NP
those
we_NP NP
we
youPl_NP NP
you
youPol_NP NP
you
you_NP NP
you

Num - number determining element

Function Type Example
mkNum Str -> Num thirty-five (given by "35"; range 1-999)
mkNum Numeral -> Num
...
mkNum Digits -> Num
21
mkNum Digit -> Num five
mkNum Card -> Num
almost five
mkNum AdN -> Card -> Num
almost five
pluralNum Num plural
singularNum Num singular

Numeral - cardinal or ordinal in words

Function Type Example
mkNumeral Unit -> Numeral eight (coerce 1..9)
mkNumeral Sub100 -> Numeral twenty-five (coerce 1..99)
mkNumeral Sub1000 -> Numeral
nine hundred and ...
mkNumeral Sub1000 -> Sub1000 -> Numeral
nine hundred and ...
mkNumeral Str -> Numeral thirty-five (given by "35"; range 1-999)
thousandfoldNumeral Sub1000 -> Numeral
nine hundred and ...

Ord - ordinal number (used in Det)

Function Type Example
mkOrd Numeral -> Ord twentieth
mkOrd Digits -> Ord 51st
mkOrd Digit -> Ord fifth
mkOrd A -> Ord
smallest

PConj - phrase-beginning conjunction

Function Type Example
but_PConj PConj
but
mkPConj Conj -> PConj
and now
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 (PConj) -> Utt -> (Voc) -> Phr
but sleep, my friend
mkPhr S -> Phr
she won't sleep
mkPhr Cl -> Phr
she sleeps
mkPhr QS -> Phr
would she sleep
mkPhr Imp -> Phr
sleep

Pol - polarity

Function Type Example
negativePol Pol
she doesn't sleep
positivePol Pol
she sleeps

Predet - predeterminer (prefixed Quant)

Function Type Example
all_Predet Predet
all the men
most_Predet Predet
most
not_Predet Predet
not everybody
only_Predet Predet
only

Prep - preposition, or just case

Function Type Example
above_Prep Prep
above it
after_Prep Prep
after it
before_Prep Prep
before it
behind_Prep Prep
behind it
between_Prep Prep
between you and me
by8agent_Prep Prep
by it
by8means_Prep Prep
by it
during_Prep Prep
during it
except_Prep Prep
except it
for_Prep Prep
for it
from_Prep Prep
from it
in8front_Prep Prep
in front of it
in_Prep Prep
in it
on_Prep Prep
on it
part_Prep Prep
of it
possess_Prep Prep
of it
through_Prep Prep
through it
to_Prep Prep
to it
under_Prep Prep
under it
with_Prep Prep
with it
without_Prep Prep
without it

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
youPol_Pron Pron
you
youSg_Pron Pron
you

Punct

Function Type Example
exclMarkPunct Punct
yes !
fullStopPunct Punct
yes .
questMarkPunct Punct
yes ?

QCl - question clause, with all tenses

Function Type Example
mkQCl Cl -> QCl
does she sleep
mkQCl IP -> VP -> QCl
who always sleeps
mkQCl IP -> V -> QCl
who sleeps
mkQCl IP -> V2 -> NP -> QCl
who loves her
mkQCl IP -> V3 -> NP -> NP -> QCl
who sends it to her
mkQCl IP -> VV -> VP -> QCl
who wants to sleep
mkQCl IP -> VS -> S -> QCl
who says that I sleep
mkQCl IP -> VQ -> QS -> QCl
who wonders who sleeps
mkQCl IP -> VA -> A -> QCl
who becomes old
mkQCl IP -> VA -> AP -> QCl
who becomes very old
mkQCl IP -> V2A -> NP -> A -> QCl
who paints it red
mkQCl IP -> V2A -> NP -> AP -> QCl
who paints it very red
mkQCl IP -> V2S -> NP -> S -> QCl
who answers to him that we sleep
mkQCl IP -> V2Q -> NP -> QS -> QCl
who asks him who sleeps
mkQCl IP -> V2V -> NP -> VP -> QCl
who begs him to sleep
mkQCl IP -> A -> QCl
who is old
mkQCl IP -> A -> NP -> QCl
who is older than he
mkQCl IP -> A2 -> NP -> QCl
who is married to him
mkQCl IP -> AP -> QCl
who is very old
mkQCl IP -> NP -> QCl
who is the woman
mkQCl IP -> N -> QCl
who is a woman
mkQCl IP -> CN -> QCl
who is an old woman
mkQCl IP -> Adv -> QCl
who is here
mkQCl IP -> NP -> V2 -> QCl
who is her
mkQCl IP -> ClSlash -> QCl
whom does she love today
mkQCl IAdv -> Cl -> QCl
why does she sleep
mkQCl Prep -> IP -> Cl -> QCl
with whom does she sleep
mkQCl IAdv -> NP -> QCl
where is she
mkQCl IComp -> NP -> QCl
who is this man
mkQCl IP -> QCl
which city is there

QS - question

Function Type Example
mkQS (Tense) -> (Ant) -> (Pol) -> QCl -> QS
who wouldn't have slept
mkQS Cl -> QS
does she sleep

Quant - quantifier ('nucleus' of Det)

Function Type Example
a_Quant Quant
a house
mkQuant Pron -> Quant
my house
no_Quant Quant
no house
that_Quant Quant
that house
the_Quant Quant
the house
this_Quant Quant
this house

RCl - relative clause, with all tenses

Function Type Example
mkRCl RP -> VP -> RCl
woman that always sleeps
mkRCl RP -> V -> RCl
woman that sleeps
mkRCl RP -> V2 -> NP -> RCl
woman that loves him
mkRCl RP -> V3 -> NP -> NP -> RCl
woman that sends it to him
mkRCl RP -> VV -> VP -> RCl
woman that wants to sleep
mkRCl RP -> VS -> S -> RCl
woman that says that I sleep
mkRCl RP -> VQ -> QS -> RCl
woman that wonders who sleeps
mkRCl RP -> VA -> A -> RCl
woman that becomes old
mkRCl RP -> VA -> AP -> RCl
woman that becomes very old
mkRCl RP -> V2A -> NP -> A -> RCl
woman that paints it red
mkRCl RP -> V2A -> NP -> AP -> RCl
woman that paints it very red
mkRCl RP -> V2S -> NP -> S -> RCl
woman that answers to him that we sleep
mkRCl RP -> V2Q -> NP -> QS -> RCl
woman that asks him who sleeps
mkRCl RP -> V2V -> NP -> VP -> RCl
woman that begs him to sleep
mkRCl RP -> A -> RCl
woman that is old
mkRCl RP -> A -> NP -> RCl
woman that is older than he
mkRCl RP -> A2 -> NP -> RCl
woman that is married to him
mkRCl RP -> AP -> RCl
woman that is very old
mkRCl RP -> NP -> RCl
woman that is the woman
mkRCl RP -> N -> RCl
student that is a woman
mkRCl RP -> CN -> RCl
student that is an old woman
mkRCl RP -> Adv -> RCl
woman that is here
mkRCl RP -> NP -> V2 -> RCl
woman that we love
mkRCl RP -> ClSlash -> RCl
woman that she loves today
mkRCl Cl -> RCl such that she loves him

RP - relative pronoun

Function Type Example
mkRP Prep -> NP -> RP -> RP
all the cities in which
which_RP RP
which

RS - relative

Function Type Example
mkRS (Tense) -> (Ant) -> (Pol) -> RCl -> RS
woman that wouldn't have slept
mkRS Temp -> (Pol) -> RCl -> RS that wouldn't have slept
mkRS Conj -> RS -> RS -> RS
woman that sleeps or that we love
mkRS Conj -> ListRS -> RS who sleeps, whom I see and who sleeps

S - declarative sentence

Function Type Example
mkS (Tense) -> (Ant) -> (Pol) -> Cl -> S
she wouldn't have slept
mkS Temp -> Pol -> Cl -> S she wouldn't have slept
mkS Conj -> S -> S -> S
she sleeps and I run
mkS Conj -> ListS -> S
she sleeps , I run and you walk
mkS Adv -> S -> S
today she sleeps

SC - embedded sentence or question

Function Type Example
mkSC S -> SC
that she sleeps
mkSC QS -> SC
who sleeps
mkSC VP -> SC
to sleep

SSlash

Function Type Example
mkSSlash Temp -> Pol -> ClSlash -> SSlash
she hadn't seen

Sub100

Function Type Example
mkSub100 Unit -> Sub100
eight
mkSub100 Unit -> Unit -> Sub100
...
tenfoldSub100 Unit -> Sub100
eight

Sub1000

Function Type Example
mkSub1000 Sub100 -> Sub1000
...
mkSub1000 Unit -> Sub1000
nine hundred
mkSub1000 Unit -> Sub100 -> Sub1000
nine hundred and ...

Subj - subjunction

Function Type Example
although_Subj Subj
although she sleeps
because_Subj Subj
because she sleeps
if_Subj Subj
if she sleeps
that_Subj Subj
that she sleeps
when_Subj Subj
when she sleeps

Temp - temporal and aspectual features

Function Type Example
mkTemp Tense -> Ant -> Temp e.g. past + anterior

Tense - tense

Function Type Example
conditionalTense Tense
she would sleep
futureTense Tense
she will sleep
pastTense Tense
she slept
presentTense Tense
she sleeps

Text - text consisting of several phrases

Function Type Example
emptyText Text (empty text)
mkText Phr -> (Punct) -> (Text) -> Text
does she sleep ? yes .
mkText Utt -> (Punct) -> (Text) -> Text Does she sleep? Yes.
mkText S -> Text
she slept .
mkText Cl -> Text
she sleeps .
mkText QS -> Text
did she sleep ?
mkText (Pol) -> Imp -> Text
don't sleep !
mkText Text -> Text -> Text
where ? here . when ? now !

Unit

Function Type Example
n1_Unit Unit
one
n2_Unit Unit
two
n3_Unit Unit
three
n4_Unit Unit
four
n5_Unit Unit
five
n6_Unit Unit
six
n7_Unit Unit
seven
n8_Unit Unit
eight
n9_Unit Unit
nine

Utt - sentence, question, word...

Function Type Example
lets_Utt VP -> Utt
let's sleep
mkUtt S -> Utt
she slept
mkUtt Cl -> Utt
she sleeps
mkUtt QS -> Utt
who didn't sleep
mkUtt QCl -> Utt
who sleeps
mkUtt (ImpForm) -> (Pol) -> Imp -> Utt
don't be men
mkUtt IP -> Utt
who
mkUtt IAdv -> Utt
why
mkUtt NP -> Utt
this man
mkUtt Adv -> Utt
here
mkUtt VP -> Utt
to sleep
mkUtt CN -> Utt
beer
mkUtt AP -> Utt
good
mkUtt Card -> Utt
five
no_Utt Utt
no
yes_Utt Utt
yes

V - one-place verb

Lexical category, constructors given in lexical paradigms.

V2 - two-place verb

Function Type Example
have_V2 V2
to have it

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
to sleep
mkVP V2 -> NP -> VP
to love him
mkVP V3 -> NP -> NP -> VP
to send it to him
mkVP VV -> VP -> VP
to want to sleep
mkVP VS -> S -> VP
to know that she sleeps
mkVP VQ -> QS -> VP
to wonder who sleeps
mkVP VA -> AP -> VP
to become red
mkVP V2A -> NP -> AP -> VP
to paint it red
mkVP V2S -> NP -> S -> VP
to answer to him that she sleeps
mkVP V2Q -> NP -> QS -> VP
to ask him who sleeps
mkVP V2V -> NP -> VP -> VP
to beg him to sleep
mkVP A -> VP
to be old
mkVP A -> NP -> VP
to be older than he
mkVP A2 -> NP -> VP
to be married to him
mkVP AP -> VP
to be very old
mkVP N -> VP
to be a woman
mkVP CN -> VP
to be an old woman
mkVP NP -> VP
to be the woman
mkVP Adv -> VP
to be here
mkVP VP -> Adv -> VP
to sleep here
mkVP AdV -> VP -> VP
to always sleep
mkVP VPSlash -> NP -> VP
to paint it black
mkVP VPSlash -> VP
to paint itself black
mkVP Comp -> VP
to be warm
passiveVP V2 -> VP
to be loved
passiveVP V2 -> NP -> VP
to be loved by her
progressiveVP VP -> VP
to be sleeping
reflexiveVP V2 -> VP
to love itself
reflexiveVP VPSlash -> VP paint itself black

VPSlash - verb phrase missing complement

Function Type Example
mkVPSlash V2 -> VPSlash
whom does she see
mkVPSlash V3 -> NP -> VPSlash
whom does she send it to
mkVPSlash V2A -> AP -> VPSlash
whom does she paint red
mkVPSlash V2Q -> QS -> VPSlash
whom does she ask where I sleep
mkVPSlash V2S -> S -> VPSlash
whom does she answer that I sleep to
mkVPSlash V2V -> VP -> VPSlash
whom does she beg to sleep
mkVPSlash VV -> VPSlash -> VPSlash
whom does she want to see
mkVPSlash V2V -> NP -> VPSlash -> VPSlash
whom does she beg me to see

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
to be able to sleep
can_VV VV
to be able to sleep
must_VV VV
have to
want_VV VV
to want to sleep

Voc - vocative or "please"

Function Type Example
mkVoc NP -> Voc
yes, my friend
please_Voc Voc
please

Lexical Paradigms

Paradigms for Afrikaans

source ../src/afrikaans/ParadigmsAfr.gf

Function Type Explanation
de Gender non-neutrum
het Gender neutrum
--die Gender -
mkN (muis : Str) -> N de muis-muisen, with some predictable exceptions
mkN (bit : Str) -> Gender -> N if gender is not predictable
mkN (gat,gaten : Str) -> Gender -> N worst-case for nouns
mkN2 N -> N2 relational noun with preposition van
mkN2 N -> Prep -> N2 other preposition than van
mkN3 N -> Prep -> Prep -> N3 e.g. afstand + van + naar
mkPN Str -> PN proper name
mkA (vers : Str) -> A regular adjective
mkA (sag, sagte : Str) -> A --"semi-irregular" -
mkA (goed,goede,goeds,beter,best : Str) -> A irregular adjective
invarA Str -> A adjective with just one form
mkA2 A -> Prep -> A2 e.g. getrouwd + met
mkAdv Str -> Adv -
mkPrep Str -> Prep -
van_Prep Prep -
te_Prep Prep -
mkV (aaien : Str) -> V regular verb
mkV (breken,brak,gebroken : Str) -> V theme of irregular verb
mkV (breken,brak,braken,gebroken : Str) -> V also past plural irregular
mkV (aai,aait,aaien,aaide,aaide,aaiden,geaaid : Str) -> V worst-case verb
mkV Str -> V -> V add movable suffix, e.g. af + stappen
zijnV V -> V force zijn as auxiliary (default hebben)
reflV V -> V reflexive verb e.g. zich afvragen
mkV3 V -> V3 geven,(accusative),(dative)
mkV3 V -> Prep -> V3 sturen,(accusative),naar
mkV3 V -> Prep -> Prep -> V3 praten, met, over
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 -

Paradigms for Bulgarian

source ../src/bulgarian/ParadigmsBul.gf

Function Type Explanation
mkN001 Str -> N numbers refer to Krustev, Bulg. Morph. in 187 Tables
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 -
mkN008b Str -> N -
mkN008c 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 -
mkN015a Str -> N -
mkN016 Str -> N -
mkN016a 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 -
mkN076 Str -> N -
mkN077 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 -
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 -
mkV188 Str -> VTable -
adjAdv A -> Str -> A -

Paradigms for Catalan

source ../src/catalan/ParadigmsCat.gf

Function Type Explanation
Gender Type -
masculine Gender -
feminine Gender -
Number Type -
singular Number -
plural Number -
accusative Prep direct object
genitive Prep preposition "de"
dative Prep preposition "a"
mkPrep Str -> Prep other preposition
mkN (llum : Str) -> N regular, with heuristics for plural and gender
mkN Str -> Gender -> N force gender
mkN (disc,discos : Str) -> Gender -> N worst case
compN N -> Str -> N compound, e.g. "número" + "de telèfon"
mkN2 N -> Prep -> N2 e.g. filla + genitive
deN2 N -> N2 relation with genitive
aN2 N -> N2 relation with dative
mkN3 N -> Prep -> Prep -> N3 e.g. connexió + genitive + dative
mkPN (Anna : Str) -> PN feminine for "-a", otherwise masculine
mkPN (Pilar : Str) -> Gender -> PN force gender
mkPN N -> PN -
mkA (sol : Str) -> A regular
mkA (fort,forta,forts,fortes,fortament : Str) -> A worst case
mkA (bo : A) -> (millor : A) -> A special comparison (default with "mas")
prefixA A -> A adjective before noun (default: after)
mkA2 A -> Prep -> A2 e.g. "casat" + dative
mkAdv Str -> Adv -
mkAdV Str -> AdV -
mkAdA Str -> AdA -
mkV (cantar : Str) -> V regular in models I, IIa, IIb
mkV (servir,serveixo : Str) -> V --inchoative verbs and "re" verbs whose 1st person ends in c -
mkV Verbum -> V use verb constructed in BeschCat
mkV V -> Str -> V particle verb
reflV V -> V reflexive verb
mkV2 Str -> V2 regular verb, direct object
mkV2 V -> V2 any verb, direct object
mkV2 V -> Prep -> V2 preposition for complement
mkV3 V -> Prep -> Prep -> V3 parlar, a, de
dirV3 V -> Prep -> V3 donar,(accusative),a
dirdirV3 V -> V3 donar,(dative),(accusative)
mkVS V -> VS -
mkV2S V -> Prep -> V2S -
mkVV V -> VV plain infinitive: "vull parlar"
deVV V -> VV "acabar de parlar"
aVV V -> VV "aprendre a parlar"
mkV2V V -> Prep -> Prep -> V2V -
mkVA V -> VA -
mkV2A V -> Prep -> Prep -> V2A -
mkVQ V -> VQ -
mkV2Q V -> Prep -> V2Q -

Paradigms for Chinese

source ../src/chinese/ParadigmsChi.gf

Function Type Explanation
mkN (man : Str) -> N -
mkN (man : Str) -> Str -> N -
mkN2 Str -> N2 -
mkN3 N -> Prep -> Prep -> N3 -
mkPN (john : Str) -> PN -
foreignPN (john : Str) -> PN -
mkA (small : Str) -> A -
mkA (small : Str) -> Bool -> A -
mkA2 Str -> A2 -
mkV (walk : Str) -> V -
mkV (walk,out : Str) -> V -
mkV (arrive : Str) -> Str -> Str -> Str -> Str -> V -
mkV (arrive : Str) -> Str -> Str -> Str -> Str -> Str -> V -
mkV2 Str -> V2 -
mkV2 V -> V2 -
mkV2 V -> Prep -> V2 -
mkV3 Str -> V3 -
mkV3 V -> V3 -
mkV3 V -> Prep -> Prep -> V3 -
mkVV Str -> VV -
mkVQ Str -> VQ -
mkVQ V -> VQ -
mkVS Str -> VS -
mkVS Str -> Str -> VS -
mkVS V -> VS -
mkVA Str -> VA -
mkVA V -> VA -
mkV2Q V -> V2Q -
mkV2Q Str -> V2Q -
mkV2V Str -> V2V -
mkV2V V -> V2V -
mkV2S Str -> V2S -
mkV2S V -> V2S -
mkV2A Str -> V2A -
mkV2A V -> V2A -
mkAdv Str -> Adv -
mkAdv Str -> Str -> Adv -
mkAdv Str -> AdvType -> Adv -
AdvType Type -
placeAdvType AdvType without "在" included
zai_placeAdvType AdvType with "在" included
timeAdvType AdvType -
mannerAdvType AdvType -
mkPrep Str -> Prep -
mkPrep Str -> Str -> Prep -
mkPrep Str -> Str -> AdvType -> Prep -
mkInterj Str -> Interj -
emptyPrep Preposition -
mkpNP Str -> CatChi.NP -
mkAdV Str -> AdV -
mkAdN Str -> AdN -
mkSubj Str -> Subj -
mkConj Str -> Conj -
mkConj (both,and : Str) -> Conj -
mkpDet Str -> Det -
mkQuant Str -> Quant -
mkAdA Str -> AdA -
mkNum Str -> Num -
mkPredet Str -> Predet -
mkIDet Str -> IDet -
mkPConj Str -> PConj -
mkRP Str -> RP -

Paradigms for Danish

source ../src/danish/ParadigmsDan.gf

Function Type Explanation
Gender Type -
utrum Gender "en" gender
neutrum Gender "et" gender
mkPrep Str -> Prep e.g. "til"
noPrep Prep empty string
mkN (bil : Str) -> N regular noun: "en" gender with plural "-er" or "-r"
mkN (bil,bilen : Str) -> N better prediction from both singular and plural
mkN (dreng,drengen,drenge,drengene : Str) -> N worst case
mkN2 N -> Prep -> N2 e.g. datter + til
mkN3 N -> Prep -> Prep -> N3 e.g. forbindelse + fra + til
mkPN Str -> PN utrum gender
mkPN Str -> Gender -> PN other gender
mkA (fin : Str) -> A regular adjective
mkA (fin,fint : Str) -> A deviant neuter
mkA (galen,galet,galne : Str) -> A also deviant plural
mkA (stor,stort,store,storre,storst : Str) -> A worst case
mkA A -> A force comparison with mer/mest
mkA2 A -> Prep -> A2 e.g. gift + med
mkAdv Str -> Adv after verb, e.g. "idag"
mkAdV Str -> AdV close to verb, e.g. "altid"
mkAdA Str -> AdA modify adjective, e.g. "meget"
mkV (snakke : Str) -> V regular verb
mkV (leve,levde : Str) -> V also give past tense
mkV (drikke, drakk, drukket : Str) -> V theme of irregular verb
mkV (spise,spiser,spises,spiste,spist,spis : Str) -> V worst case
mkV V -> Str -> V particle verb, e.g. lukke + op
vaereV V -> V force auxiliary "være"
depV V -> V deponent, e.g. "undres"
reflV V -> V reflexive, e.g. "forestille sig"
mkV2 V -> V2 direct object
mkV2 V -> Prep -> V2 prepositional object
mkV3 V -> Prep -> Prep -> V3 snakke, med, om
dirV3 V -> Prep -> V3 give,_,til
dirdirV3 V -> V3 give,_,_
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 -

Paradigms for Dutch

source ../src/dutch/ParadigmsDut.gf

Function Type Explanation
de Gender non-neutrum
het Gender neutrum
nominative Case nominative of nouns
genitive Case genitive of nouns
mkN (bank : Str) -> N de bank-banken, with some predictable exceptions
mkN (bit : Str) -> Gender -> N if gender is not predictable
mkN (gat, gaten : Str) -> Gender -> N worst-case for nouns
mkN (werk, plaats : N) -> N compound werkplaats
mkN (station, hal : N) -> Case -> N compound stationshal
mkN2 N -> N2 relational noun with preposition van
mkN2 N -> Prep -> N2 other preposition than van
mkN3 N -> Prep -> Prep -> N3 e.g. afstand + van + naar
mkPN Str -> PN proper name
mkPN N -> PN proper name from noun
mkA (vers : Str) -> A regular adjective
mkA (tweed,tweede : Str) -> A with deviant second form
mkA (goed,goede,goeds,beter,best : Str) -> A irregular adjective
invarA Str -> A adjective with just one form
mkA2 A -> Prep -> A2 e.g. getrouwd + met
mkAdv Str -> Adv -
mkPrep Str -> Prep -
van_Prep Prep -
te_Prep Prep -
mkV (aaien : Str) -> V regular verb
mkV (aaien,aait : Str) -> V regular verb with third person sg pres (giving stem)
mkV (breken,brak,gebroken : Str) -> V theme of irregular verb
mkV (breken,brak,braken,gebroken : Str) -> V also past plural irregular
mkV (aai,aait,aaien,aaide,aaide,aaiden,geaaid : Str) -> V almost worst-case verb, Sg2=Sg3
mkV (aai,aait,aait,aaien,aaide,aaide,aaiden,geaaid : Str) -> V worst-case verb
mkV Str -> V -> V add movable suffix, e.g. af + stappen
no_geV V -> V no participle "ge", e.g. "vertrekken"
fixprefixV Str -> V -> V add prefix such as "be"; implies no_ge
zijnV V -> V force zijn as auxiliary (default hebben)
reflV V -> V reflexive verb e.g. zich afvragen
mkV3 V -> V3 geven,(accusative),(dative)
mkV3 V -> Prep -> V3 sturen,(accusative),naar
mkV3 V -> Prep -> Prep -> V3 praten, met, over
mkVS V -> VS -
mkVV V -> VV with "te"
auxVV V -> VV without "te"
mkV2V V -> Prep -> V2V -
mkV2V V -> V2V -
auxV2V V -> V2V -
auxV2V V -> Prep -> V2V -
mkV2S V -> Prep -> V2S -
mkV2S V -> V2S -
mkV2A V -> Prep -> V2A -
mkV2A V -> V2A -
mkV2Q V -> Prep -> V2Q -
mkV2Q V -> V2Q -
mkVA V -> VA -
mkVQ V -> VQ -

Paradigms for English

source ../src/english/ParadigmsEng.gf

Function Type Explanation
Gender Type -
human Gender -
nonhuman Gender -
Number Type -
singular Number -
plural Number -
npNumber NP -> Number exctract the number of a noun phrase
mkN (flash : Str) -> N plural s, incl. flash-flashes, fly-flies
mkN (man,men : Str) -> N irregular plural
mkN (man,men,man's,men's : Str) -> N irregular genitives
mkN Gender -> N -> N default nonhuman
mkN Str -> N -> N e.g. baby + boom
mkN2 N -> N2 e.g. wife of (default prep. to)
mkN2 N -> Prep -> N2 e.g. access to
mkN3 N -> Prep -> Prep -> N3 e.g. connection from x to y
mkPN Str -> PN -
mkA (happy : Str) -> A regular adj, incl. happy-happier, rude-ruder
mkA (fat,fatter : Str) -> A irreg. comparative
mkA (good,better,best,well : Str) -> A completely irreg.
compoundA A -> A force comparison with more/most
simpleA A -> A force comparison with -er,-est
irregAdv A -> Str -> A adverb irreg, e.g. "fast"
mkA2 A -> Prep -> A2 absent from
mkAdv Str -> Adv e.g. today
mkAdV Str -> AdV e.g. always
mkAdA Str -> AdA e.g. quite
mkAdN Str -> AdN e.g. approximately
mkPrep Str -> Prep e.g. "in front of"
mkPost Str -> Prep e.g. "ago"
noPrep Prep no preposition
mkV (cry : Str) -> V regular, incl. cry-cries, kiss-kisses etc
mkV (stop, stopped : Str) -> V reg. with consonant duplication
mkV (drink, drank, drunk : Str) -> V ordinary irregular
mkV (go, goes, went, gone, going : Str) -> V totally irregular
mkV Str -> V -> V fix compound, e.g. under+take
partV V -> Str -> V with particle, e.g. switch + on
reflV V -> V reflexive e.g. behave oneself
us_britishV Str -> V travel - traveled/travelled
mkV2 V -> V2 transitive, e.g. hit
mkV2 V -> Prep -> V2 with preposiiton, e.g. believe in
mkV3 V -> V3 ditransitive, e.g. give,_,_
mkV3 V -> Prep -> Prep -> V3 two prepositions, e.g. speak, with, about
mkVS V -> VS sentence-compl e.g. say (that S)
mkV2S V -> Prep -> V2S e.g. tell (NP) (that S)
mkVV V -> VV e.g. want (to VP)
infVV V -> VV e.g. want (to VP)
ingVV V -> VV e.g. start (VPing)
mkV2V V -> Prep -> Prep -> V2V e.g. want (noPrep NP) (to VP)
ingV2V V -> Prep -> Prep -> V2V e.g. prevent (noPrep NP) (from VP-ing)
mkVA V -> VA e.g. become (AP)
mkV2A V -> Prep -> V2A e.g. paint (NP) (AP)
mkVQ V -> VQ e.g. wonder (QS)
mkV2Q V -> Prep -> V2Q e.g. ask (NP) (QS)
mkInterj Str -> Interj -

Paradigms for Estonian

source ../src/estonian/ParadigmsEst.gf

Function Type Explanation
Number Type -
singular Number -
plural Number -
Case Type -
nominative Case e.g. "karp"
genitive Case e.g. "karbi"
partitive Case e.g. "karpi"
illative Case e.g. "karbisse/karpi"
inessive Case e.g. "karbis"
elative Case e.g. "karbist"
allative Case e.g. "karbile"
adessive Case e.g. "karbil"
ablative Case e.g. "karbilt"
translative Case e.g. "karbiks"
terminative Case e.g. "karbini"
essive Case e.g. "karbina"
abessive Case e.g. "karbita"
comitative Case e.g. "karbiga"
infDa InfForm e.g. "lugeda"
infDes InfForm e.g. "lugedes"
infMa InfForm e.g. "lugema"
infMas InfForm e.g. "lugemas"
infMaks InfForm e.g. "lugemaks"
infMast InfForm e.g. "lugemast"
infMata InfForm e.g. "lugemata"
prePrep Case -> Str -> Prep preposition, e.g. abessive "ilma"
postPrep Case -> Str -> Prep postposition, e.g. genitive "taga"
postGenPrep Str -> Prep genitive postposition, e.g. "taga"
casePrep Case -> Prep just case, e.g. adessive
mkAdv Str -> Adv -
mkConj Str -> Conj just one word, default number Sg: e.g. "ja"
mkConj Str -> Number -> Conj --just one word + number: e.g. "ja" Pl -
mkConj Str -> Str -> Conj --two words, default number: e.g. "nii" "kui" -
mkConj Str -> Str -> Number -> Conj --two words + number: e.g. "nii" "kui" Pl -
mkPConj Str -> PConj -
mkN (ema : Str) -> N predictable nouns, covers 90%
mkN (tukk,tuku : Str) -> N sg nom,gen: unpredictable stem vowel
mkN (tukk,tuku,tukku : Str) -> N sg nom,gen,part
mkN (pank,panga,panka,panku : Str) -> N sg nom,gen,part, pl.part
mkN (oun,ouna,ouna,ounasse,ounte,ounu : Str) -> N worst case, 6 forms
mkN2 N -> N2 relational noun with genitive
mkN2 N -> Prep -> N2 relational noun another prep.
mkN3 N -> Prep -> Prep -> N3 relation with two complements
mkPN Str -> PN predictable noun made into name
mkPN N -> PN any noun made into name
mkA Str -> A regular noun made into adjective
mkA N -> A any noun made into adjective
mkA N -> (infl : Infl) -> A noun made into adjective, agreement type specified
mkA N -> (parem, parim : Str) -> A deviating comparison forms
mkA2 A -> Prep -> A2 e.g. "vihane" (postGenPrep "peale")
invA Str -> A invariable adjectives, such as genitive attributes ; no agreement to head, no comparison forms.
mkV (lugema : Str) -> V predictable verbs, covers 90 %
mkV (lugema,lugeda : Str) -> V ma infinitive, da infinitive
mkV (lugema,lugeda,loeb : Str) -> V ma, da, present sg 3
mkV (lugema,lugeda,loeb,loetakse : Str) -> V --ma, da, pres sg 3, pres passive -
mkV (tegema,teha,teeb,tehakse,tehke,tegi,teinud,tehtud : Str) -> V worst-case verb, 8 forms
mkV (saama : V) -> (aru : Str) -> V multi-word verbs
caseV Case -> V -> V deviating subj. case, e.g. allative "meeldima"
vOlema V the verb "be"
vMinema V the verb "go"
mkV2 Str -> V2 predictable direct transitive
mkV2 V -> V2 direct transitive
mkV2 V -> Case -> V2 complement just case
mkV2 V -> Prep -> V2 complement pre/postposition
mkV3 V -> Prep -> Prep -> V3 e.g. rääkima, allative, elative
mkV3 Str -> V3 string, default cases accusative + allative
dirV3 V -> Case -> V3 liigutama, (accusative), illative
dirdirV3 V -> V3 andma, (accusative), (allative)
mkVS V -> VS -
mkVS Str -> VS -
mkV2S V -> Prep -> V2S e.g. "ütlema" allative
mkV2S Str -> V2S --default (mkV foo) allative -
mkVV V -> VV e.g. "hakkama"
mkVV Str -> VV -
mkVVf V -> InfForm -> VV e.g. "hakkama" infMa
mkV2V V -> Prep -> V2V e.g. "käskima" adessive
mkV2V Str -> V2V e.g. "käskima" adessive
mkV2Vf V -> Prep -> InfForm -> V2V e.g. "keelama" partitive infMast
mkVA V -> Prep -> VA e.g. "muutuma" translative
mkVA Str -> VA string, default case translative
mkV2A V -> Prep -> Prep -> V2A e.g. "värvima" genitive translative
mkV2A Str -> V2A string, default cases genitive and translative
mkVQ V -> VQ -
mkVQ Str -> VQ -
mkV2Q V -> Prep -> V2Q e.g. "küsima" ablative

Paradigms for Finnish

source ../src/finnish/ParadigmsFin.gf

Function Type Explanation
Number Type -
singular Number -
plural Number -
Case Type -
nominative Case e.g. "talo"
genitive Case e.g. "talon"
partitive Case e.g. "taloa"
essive Case e.g. "talona"
translative Case e.g. "taloksi"
inessive Case e.g. "talossa"
elative Case e.g. "talosta"
illative Case e.g. "taloon"
adessive Case e.g. "talolla"
ablative Case e.g. "talolta"
allative Case e.g. "talolle"
infFirst InfForm e.g. "tehdä"
infIness InfForm e.g. "tekemässä"
infElat InfForm e.g. "tekemästä"
infIllat InfForm e.g. "tekemään"
infPresPart InfForm e.g. "tekevän"
infPresPartAgr InfForm e.g. "tekevänsä"
prePrep Case -> Str -> Prep preposition, e.g. partitive "ilman"
postPrep Case -> Str -> Prep postposition, e.g. genitive "takana"
postGenPrep Str -> Prep genitive postposition, e.g. "takana"
casePrep Case -> Prep just case, e.g. adessive
mkPrep Case -> Prep -
mkPrep Str -> Prep -
mkPrep Case -> Str -> Prep -
mkPrep Str -> Case -> Prep -
accusative Prep -
NK Type Noun from DictFin (Kotus)
AK Type Adjective from DictFin (Kotus)
VK Type Verb from DictFin (Kotus)
AdvK Type Adverb from DictFin (Kotus)
mkN (kukko : Str) -> N predictable nouns, covers 82%
mkN (savi,savia : Str) -> N different pl.part
mkN (vesi,veden,vesiä : Str) -> N also different sg.gen
mkN (vesi,veden,vesiä,vettä : Str) -> N also different sg.part
mkN (olo,n,a,na,oon,jen,ja,ina,issa,ihin : Str) -> N worst case, 10 forms
mkN (pika : Str) -> (juna : N) -> N compound with invariable prefix
mkN (oma : N) -> (tunto : N) -> N compound with inflecting prefix
mkN NK -> N noun from DictFin (Kotus)
mkN V -> N verbal noun: "tekeminen"
exceptNomN N -> Str -> N -
separateN Str -> N -> N -
separateN N -> N -> N -
mkN2 N -> N2 relational noun with genitive
mkN2 N -> Prep -> N2 relational noun another prep.
mkN3 N -> Prep -> Prep -> N3 relation with two complements
mkPN Str -> PN predictable noun made into name
mkPN N -> PN any noun made into name
foreignPN Str -> PN Dieppe-Dieppen
mkA Str -> A regular noun made into adjective
mkA N -> A any noun made into adjective
mkA N -> (kivempi,kivin : Str) -> A deviating comparison forms
mkA (hyva,prmpi,pras : N) -> (hyvin,pmmin,prhten : Str) -> A worst case adj
mkA AK -> A adjective from DictFin (Kotus)
invarA Str -> A invariant adjective, e.g. "kelpo"
mkA2 Str -> A2 e.g. "vihainen" (jollekin)
mkA2 Str -> Prep -> A2 e.g. "jaollinen" (mkPrep adessive)
mkA2 A -> Prep -> A2 e.g. "jaollinen" (mkPrep adessive)
mkV (huutaa : Str) -> V predictable verbs, covers 90%
mkV (huutaa,huusi : Str) -> V deviating past 3sg
mkV (huutaa,huudan,huusi : Str) -> V also deviating pres. 1sg
mkV (huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee : Str) -> V worst-case verb
mkV VK -> V verb from DictFin (Kotus)
mkV V -> Str -> V hakata päälle (particle verb)
mkV Str -> V -> V laimin+lyödä (prefixed verb)
caseV Case -> V -> V deviating subj. case, e.g. genitive "täytyä"
vOlla V the verb "be"
olla_V V -
mkV2 Str -> V2 predictable direct transitive
mkV2 Str -> Case -> V2 predictable with another case
mkV2 V -> V2 direct transitive
mkV2 V -> Case -> V2 complement just case
mkV2 V -> Prep -> V2 complement pre/postposition
mkV2 VK -> V2 direct transitive of Kotus verb
mkV3 Str -> V3 -
mkV3 V -> V3 -
mkV3 V -> Prep -> Prep -> V3 e.g. puhua, allative, elative
dirV3 V -> Case -> V3 siirtää, (accusative), illative
dirdirV3 V -> V3 antaa, (accusative), (allative)
mkVV Str -> VV e.g. "yrittää" (puhua)
mkVV V -> VV e.g. "alkaa" (puhua)
mkVV Str -> InfForm -> VV e.g. "ruveta" (puhumaan)
mkVV V -> InfForm -> VV e.g. "lakata" (puhumasta)
mkVS Str -> VS e.g. "väittää"
mkVS V -> VS e.g. "sanoa"
mkV2V Str -> V2V reg verb, partitive + infIllat
mkV2V V -> V2V partitive + infillat
mkV2V V -> Prep -> V2V e.g. "käskeä" genitive + infFiilat
mkV2V V -> Prep -> InfForm -> V2V e.g. "kieltää" partitive infElat
mkV2V V -> Case -> InfForm -> V2V -
mkV2S V -> Prep -> V2S e.g. "sanoa" allative
mkVVf V -> InfForm -> VV e.g. "ruveta" infIllat
mkV2Vf V -> Prep -> InfForm -> V2V e.g. "kieltää" partitive infElat
mkVA V -> Prep -> VA e.g. "maistua" ablative
mkV2A V -> Prep -> Prep -> V2A e.g. "maalata" accusative translative
mkVQ V -> VQ -
mkV2Q V -> Prep -> V2Q e.g. "kysyä" ablative
mkAdV Str -> AdV -
mkAdA Str -> AdA -
mkAdN Str -> AdN -
mkPConj Str -> PConj -
mkSubj Str -> Subj -
mkPredet Str -> Predet invariable Predet, such as "vain"
mkConj Str -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mkDet Number -> N -> Det -
mkDet (isNeg : Bool) -> Number -> N -> Det use this with True to create a negative determiner
mkDet (isNeg : Bool) -> Number -> N -> Case -> Det paljon + False + partitive, ei yhtään + True + partitive
mkQuant N -> Quant -
mkQuant N -> N -> Quant -
mkInterj Str -> Interj -

Paradigms for French

source ../src/french/ParadigmsFre.gf

Function Type Explanation
Gender Type -
masculine Gender -
feminine Gender -
accusative Prep direct object case
genitive Prep genitive, constructed with "de"
dative Prep dative, usually constructed with "à"
mkPrep Str -> Prep simple preposition (other than "de" and "à")
mkPrep Str -> Prep -> Prep complex preposition e.g. "à côté de"
mkN (cheval : Str) -> N predictable, with variations like cheval-chevaux
mkN (oeil,yeux : Str) -> Gender -> N worst-case noun
mkN N -> Str -> N compound noun, e.g. numéro + de téléphone
mkN2 N -> Prep -> N2 e.g. fille + genitive
mkN3 N -> Prep -> Prep -> N3 e.g. connection + genitive + dative
mkPN Str -> PN feminine if ends with "e", otherwise masculine
mkPN Str -> Gender -> PN gender deviant from the simple rule
mkPN N -> PN gender inherited from noun
mkA (cher : Str) -> A predictable, e.g. cher-chère
mkA (sec,seche : Str) -> A unpredictable feminine
mkA (banal,banale,banaux : Str) -> A -
mkA (banal,banale,banaux,banalement : Str) -> A worst-case adjective
mkA A -> A -> A irregular comparison, e.g. bon-meilleur
prefixA A -> A adjective that comes before noun, e.g. petit
mkA2 A -> Prep -> A2 e.g. supérieur + dative
mkAdv Str -> Adv ordinary adverb
mkAdV Str -> AdV sentential adverb, e.g. toujours
mkAdA Str -> AdA modify adjective, e.g. très
mkV (finir : Str) -> V regular 1/2/3 conjugation
mkV (jeter,jette : Str) -> V 1st and 2nd conjugation variations
mkV (jeter,jette,jettera : Str) -> V 1st conjugation variations
mkV (tenir,tiens,tenons,tiennent,tint,tiendra,tenu : Str) -> V -
mkV (tenir,tiens,tient,tenons,tenez,tiennent,tienne,tenions,tiensI,tint,tiendra,tenu : Str) -> V -
mkV V2 -> V make 2-place to 1-place (e.g. from IrregFre)
mkV V -> Str -> V -
etreV V -> V force auxiliary to be être (default avoir)
reflV V -> V reflexive, implies auxiliary être, e.g. se demander
mkV2 V -> V2 direct transitive
mkV2 V -> Prep -> V2 e.g. se fier + genitive
mkV3 V -> V3 donner (+ accusative + dative)
mkV3 V -> Prep -> V3 placer (+ accusative) + dans
mkV3 V -> Prep -> Prep -> V3 parler + dative + genitive
mkVS V -> VS -
subjVS V -> VS -
mkVV V -> VV plain infinitive: "je veux parler"
deVV V -> VV "j'essaie de parler"
aVV V -> VV "j'arrive à parler"
mkV2S V -> V2S -
mkV2S V -> Prep -> V2S -
mkV2V V -> V2V -
mkV2V V -> Prep -> Prep -> V2V -
mkVA V -> VA -
mkV2A V -> V2A -
mkV2A V -> Prep -> Prep -> V2A -
mkVQ V -> VQ -
mkV2Q V -> Prep -> V2Q -

Paradigms for German

source ../src/german/ParadigmsGer.gf

Function Type Explanation
Gender Type -
masculine Gender -
feminine Gender -
neuter Gender -
Case Type -
nominative Case -
accusative Case -
dative Case -
genitive Case -
vonDat_Case Case -
Number Type -
singular Number -
plural Number -
mkN (Stufe : Str) -> N die Stufe-Stufen, der Tisch-Tische
mkN (Bild,Bilder : Str) -> Gender -> N sg and pl nom, and gender
mkN (Frau : Str) -> Gender -> N masc: e, neutr: er, fem: en
mkN (x1,_,_,_,_,x6 : Str) -> Gender -> N worst case: mann, mann, manne, mannes, männer, männern
mkN Str -> N -> N Auto + Fahrer -> Autofahrer
mkN N -> N -> N Freiheit + Kampf -> Freiheitskampf
changeCompoundN Str -> N -> N kyrko + kyrka_N
dative_eN N -> N -
mkN2 N -> N2 noun + von
mkN2 N -> Prep -> N2 noun + other preposition
mkN3 N -> Prep -> Prep -> N3 noun + two prepositions
mkPN Str -> PN regular name with genitive in "s", masculine
mkPN Str -> Gender -> PN regular name with genitive in "s"
mkPN (nom,gen : Str) -> Gender -> PN name with other genitive
mkPN (nom,acc,dat,gen : Str) -> Gender -> PN name with all case forms
mkPN N -> PN use the singular forms of a noun
mkA Str -> A regular adjective, works for most cases
mkA (gut,besser,beste : Str) -> A irregular comparison
mkA (gut,gute,besser,beste : Str) -> A irregular positive if ending added
invarA Str -> A invariable, e.g. prima
mkA2 A -> Prep -> A2 e.g. teilbar + durch
mkAdv Str -> Adv adverbs have just one form anyway
mkPrep Str -> Case -> Prep e.g. "durch" + accusative
mkPrep Case -> Str -> Prep postposition
mkPrep Str -> Case -> Str -> Prep both sides
accPrep Prep no string, just accusative case
datPrep Prep no string, just dative case
genPrep Prep no string, just genitive case
von_Prep Prep von + dative
zu_Prep Prep zu + dative, with contractions zum, zur
anDat_Prep Prep an + dative, with contraction am
inDat_Prep Prep in + dative, with contraction ins
inAcc_Prep Prep in + accusative, with contraction im
mkV (führen : Str) -> V regular verb
mkV (sehen,sieht,sah,sähe,gesehen : Str) -> V irregular verb theme
mkV (geben, gibt, gib, gab, gäbe, gegeben : Str) -> V worst-case verb
mkV Str -> V -> V movable prefix, e.g. auf+fassen, or fix prefix if one of be,er,ge,ver,zer
no_geV V -> V no participle "ge", e.g. "bedeuten"
fixprefixV Str -> V -> V add prefix such as "be"; implies no_ge
seinV V -> V force "sein" as auxiliary
habenV V -> V force "haben" as auxiliary
reflV V -> Case -> V reflexive, with case
compoundV Str -> V -> V verb with a separate "particle", e.g. "Trinkgeld geben"
mkV2 V -> V2 direct object
mkV2 V -> Prep -> V2 preposition for complement
mkV2 V -> Case -> V2 just case for complement
accdatV3 V -> V3 geben + dat + acc (no prepositions)
dirV3 V -> Prep -> V3 senden + acc + nach (preposition on second arg)
mkV3 V -> V3 geben + dat + acc
mkV3 V -> Prep -> Prep -> V3 sprechen + mit + über
mkVS V -> VS -
mkV2V V -> V2V -
mkV2V V -> Prep -> V2V -
auxV2V V -> V2V -
auxV2V V -> Prep -> V2V -
mkV2A V -> V2A -
mkV2A V -> Prep -> V2A -
mkV2S V -> V2S -
mkV2S V -> Prep -> V2S -
mkV2Q V -> V2Q -
mkV2Q V -> Prep -> V2Q -
mkVV V -> VV with zu
auxVV V -> VV without zu
mkVA V -> VA -
mkVQ V -> VQ -
mkInterj Str -> Interj -

Paradigms for Greek

source ../src/greek/ParadigmsGre.gf

Function Type Explanation
masculine Gender -
feminine Gender -
neutral Gender -
accusative Case -
genitive Case -
indicative Mood -
conjunctive Mood -
singular Number -
plural Number -
mkN (dentro : Str) -> N -
mkN (s : Str) -> Gender -> N -
mkN (s1,s2,s3,s4,p1,p2,p3,p4 : Str) -> Gender -> N -
mkN (s1,s2: Str) -> Gender -> N -
mkN1 Str -> Gender -> N -
mkNending Str -> Str -> Gender -> N -
mkN2 N -> Prep -> N2 ---η μητέρα + γενική -
ofN2 N -> N2 -
mkN3 N -> Prep -> Prep -> N3 -
mkPN (anna : Str) -> PN -
mkPN (nm,gm,am,vm,pn,pa : Str) -> Gender -> PN -
makeNP (_,_,_: Str) -> Number -> Gender -> NP -
makeNP Str -> Number -> Gender ->Bool -> NP -
mkpanta Str -> Str -> Str -> Number -> Gender -> NP -
mkkati Str ->Number -> Gender -> Bool -> NP -
mkA (a : Str) -> A -
mkA (a,b: Str) -> A -
mkAd2 Str -> A -
mkAd3 Str -> A -
mkAd4 Str -> A -
mkAd5 Str -> A -
mkAdIrreg Str -> A -
mkA1 Str -> Str -> A -
mkA2 A -> Prep -> A2 -
mkA2V A -> Prep -> Prep -> A2V; -
mkAV A -> AV -
mkAS A -> AS -
mkV2 V -> V2 -
mkV2 V -> Prep -> V2 -
mkVS V -> VS -
mkVQ V -> VQ -
mkVV V -> VV -
mkVA V -> VA -
acc Prep -
gen Prep -
dat Prep -
prepse Prep -
mkPrep Str -> Preposition -
mkPrep2 Str -> Preposition -
mkPrep3 Str -> Preposition -
mkPrep4 Str -> Preposition -
Preposition Type -
mkPreposition Str -> Preposition -
mkPreposition2 Str -> Preposition -
mkPreposition3 Str -> Preposition -
mkPreposition4 Str -> Preposition -
mkV3 V -> V3 -
mkV3 V -> Prep -> V3 -
mkV3 V -> Prep -> Prep -> V3 -
mkV3 V -> V3 -
mkV3 V -> Prep -> V3 -
mkV3 V -> Prep -> Prep -> V3 -
mmkV3 V -> Prep -> Prep -> V3 milaw, se, gia
dirV3 V -> Prep -> V3 dino,_,se
dirdirV3 V -> V3 dino,_,_
mmkV2 V -> Prep -> V2 -
dirV2 V -> V2 -
mkV2V V -> Prep -> Prep -> V2V -
mkV2S V -> Prep -> V2S -
mkV2Q V -> Prep -> V2Q -
mkV2A V -> Prep -> Prep -> V2A -
mkV0 V -> V0 -
V0 Type -
V0 Type -
mkNV Verb -> V -
compoundV Verb -> Str -> V -

Paradigms for Hindi

source ../src/hindi/ParadigmsHin.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number; -
plural Number; -
mkN Str -> N -
mkN Str -> Gender -> N -
mkN (x1,_,_,_,_,x6 : Str) -> Gender -> N -
mkN2 N -> Prep -> Str -> N2; -
mkN3 N -> Prep -> Str -> Str-> N3 -
mkCmpdNoun Str -> N -> N -
mkPN Str -> PN -
mkPN N -> PN -
personalPN Str -> Str -> Str -> Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron -
demoPN Str -> Str -> Str -> Str -> Quant -
mkDet Str -> Str -> Str -> Str -> Number -> Det -
mkIP (x1,x2,x3:Str) -> Number -> Gender -> IP -
mkAdN Str -> AdN -
mkA Str-> A -
mkA Str -> Str -> A2 -
mkA A -> Str -> A2 -
mkIrregA Str -> A -
mkA2 A -> Str -> A2 -
mkV Str -> V -
mkV2 Str -> V2 -
mkV2 V -> V2 -
mkV2 V -> Str -> V2 -
mkV3 V -> Str -> Str -> V3; -
mkV2V V -> Str -> Str -> Bool -> V2V -
dirV2 V -> V2 -
dirdirV3 V -> V3 -
compoundV Str -> V -> V -
compoundV Str -> V2 -> V -
mkAdv Str -> Adv -
mkPrep Str -> Str -> Prep -
mkIQuant (s1,_,_,_,_,_,_,_,_,_,_,s12:Str) -> IQuant -
mkQuant Pron -> Quant -
mkQuant Pron -> Quant -
mkConj Str -> Conj and (plural agreement)
mkConj Str -> Number -> Conj or (agrement number given as argument)
mkConj Str -> Str -> Conj both ... and (plural)
mkConj Str -> Str -> Number -> Conj either ... or (agrement number given as argument)
mkConj Str -> Conj -
mkConj Str -> Number -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mk2Conj Str -> Str -> Number -> Conj -
mkVS V -> VS; e.g drna
mkVV V -> VV -
mkAdA Str -> AdA -
mkVQ V -> VQ e.g janna
mkInterj Str -> Interj -

Paradigms for Icelandic

source ../src/icelandic/ParadigmsIce.gf

Function Type Explanation
Gender Type -
masculine Gender -
feminine Gender -
neuter Gender -
Number Type -
singular Number -
plural Number -
Case Type -
nominative Case -
accusative Case -
dative Case -
genitive Case -
mkN Str -> Gender -> N -
mkN (_,_ : Str) -> Gender -> N -
mkN (_,_,_ : Str) -> Gender -> N -
mkN (_,_,_,_ : Str) -> Gender -> N -
mkN (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> N -
mkCompoundN Str -> N -> N -
mkNPlGen Str -> Gender -> N -
mk1N Str -> Gender -> N -
mk2N (_,_ : Str) -> Gender -> N -
mk3N (_,_,_ : Str) -> Gender -> N =\x,y,z,g -> case g of { -
mk4N (_,_,_,_ : Str) -> Gender -> N =\a,b,c,d,g -> case g of { -
neutrNForms1 Str -> NForms -
neutrNForms2 (_,_ : Str) -> NForms -
neutrNForms3 (_,_,_ : Str) -> NForms -
neutrNForms4 (_,_,_,_ : Str) -> NForms -
mascNForms1 Str -> NForms -
mascNForms2 (_,_ : Str) -> NForms -
mascNForms3 (_,_,_ : Str) -> NForms =\nom,gen,pl -> case <nom,gen,pl> of { -
mascNForms4 (_,_,_,_ : Str) -> NForms -
femNForms1 Str -> NForms -
femNForms2 (_,_ : Str) -> NForms -
femNForms3 (_,_,_ : Str) -> NForms -
femNForms4 (_,_,_,_ : Str) -> NForms -
mk8N (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> N -
mkPN Str -> Gender -> PN -
mkN2 N -> Preposition -> N2 -
mkN3 N -> (_,_ : Preposition) -> N3 -
mkA Str -> A -
mkA (_,_ : Str) -> A -
mkA (_,_,_ : Str) -> A -
mk1A Str -> A -
mk2A (_,_ : Str) -> A -
mk3A (_,_,_ : Str) -> A -
strongPosit1 Str -> AForms -
strongPosit2 (_,_ : Str) -> AForms -
weakPosit (_,_ : Str) -> AForms -
compar1 Str -> AForms -
compar2 (_,_ : Str) -> AForms -
weakSuperl (_,_ : Str) -> AForms -
strongSuperl1 Str -> AForms -
strongSuperl2 (_,_ : Str) -> AForms -
regAAdv1 Str -> Str -
regAAdv2 (_,_ : Str) -> Str -
addAdv A -> Str -> A -
mkA2 A -> Prep -> A2 -
mkV Str -> V -
mkV (_,_ : Str) -> V -
mkV (_,_,_ : Str) -> V -
mkV (_,_,_,_ : Str) -> V -
mkV (_,_,_,_,_ : Str) -> V -
mkV (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x59 : Str) -> V -
mk1V Str -> V -
mk2V (_,_ : Str) -> V -
mk3V (_,_,_ : Str) -> V -
mk4V (_,_,_,_ : Str) -> V -
mk5V (_,_,_,_,_ : Str) -> V -
indsub1 Str -> MForms -
indsub2 (_,_ : Str) -> MForms -
indsub3 (_,_,_ : Str) -> MForms -
impSg Str -> Str -
impPl Str -> Str -
sup Str -> Str -
presPart Str -> Str -
strongPP Str -> AForms -
weakPP Str -> AForms -
irregV Str -> V -
irregV (_,_ : Str) -> V -
irregV (_,_,_,_ : Str) -> V -
irregV (_,_,_,_,_,_ : Str) -> V -
irregV MForms -> (_,_ : Str) -> V -
irreg1V Str -> V -
irreg2V (_,_ : Str) -> V -
irreg4V (_,_,_,_ : Str) -> V -
irreg6V (_,_,_,_,_,_ : Str) -> V -
irreg9V MForms -> (_,_ : Str) -> V -
impIrregSg Str -> Str -
irregindsub Str -> MForms -
irregindsub3 (_,_,_ : Str) -> MForms -
irregindsub5 (_,_,_,_,_ : Str) -> MForms -
prepV2 V -> Preposition -> V2 -
prepV3 V -> Preposition -> Preposition -> V3 -
accPrep Preposition -
mkV2 V -> V2 -
mkV2 V -> Preposition -> V2 -
mkV3 V -> V3 -
mkV3 V -> Prep -> V3 -
mkV3 V -> Prep -> Prep -> V3 -
vowel pattern Str -
consonant pattern Str -
regPN Str -> Gender -> PN -
mkAdv Str -> Adv -
mkAdA Str -> AdA -
mkAdN CAdv -> AdN -
mkAdV Str -> AdV -
mkPrep Str -> Case -> Prep -
mkConj Str -> Conj -
mkConj Str -> Number -> Conj =\y,n -> mk2Conj [] y n -
mkConj Str -> Str -> Conj =\x,y -> mk2Conj x y plural -
mkConj Str -> Str -> Number -> Conj =\x,y,n -> mk2Conj x y n -
mk2Conj Str -> Str -> Number -> Conj -

Paradigms for Italian

source ../src/italian/ParadigmsIta.gf

Function Type Explanation
Gender Type -
masculine Gender -
feminine Gender -
Number Type -
singular Number -
plural Number -
--Prep Type -
accusative Prep direct object
genitive Prep preposition "di" and its contractions
dative Prep preposition "a" and its contractions
di_Prep Prep -
a_Prep Prep -
con_Prep Prep preposition "con" and its contractions
da_Prep Prep preposition "da" and its contractions
in_Prep Prep preposition "in" and its contractions
su_Prep Prep preposition "su" and its contractions
mkPrep Str -> Prep simple preposition (other than a, di, con, da, in, su)
mkPrep Str -> Prep -> Prep complex preposition e.g. "vicino a"
mkN (cane : Str) -> N regular noun; fem for -"a", masc otherwise
mkN (carne : Str) -> Gender -> N override default gender
mkN (uomo,uomini : Str) -> Gender -> N worst case
mkN N -> Str -> N compound such as "numero" + "di telefono"
mkN2 Str -> N2 regular with genitive, e.g. "figlio" + "di"
mkN2 N -> Prep -> N2 arbitrary noun and preposition
mkN3 N -> Prep -> Prep -> N3 e.g. volo + da + per
mkPN Str -> PN femininne for "-a", otherwise masculine
mkPN Str -> Gender -> PN set gender manually
mkPN N -> PN get gender from noun
mkA (bianco : Str) -> A predictable adjective
mkA (solo,sola,soli,sole,solamente : Str) -> A irregular adjective
mkA A -> A -> A special comparison, e.g. buono - migliore
prefixA A -> A adjective that comes before noun (default: after)
mkA2 A -> Prep -> A2 e.g. divisibile + per
mkAdv Str -> Adv -
mkAdV Str -> AdV -
mkAdA Str -> AdA -
mkV Str -> V regular verbs in "-are"/"-ire"
mkV Verbo -> V verbs formed by BeschIta
mkV (udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito : Str) -> V worst case
mkV V -> Str -> V particle verb
essereV V -> V force "essere" as auxiliary (default avere)
reflV V -> V reflexive verb (implies essere)
mkV2 Str -> V2 regular verb, direct object
mkV2 V -> V2 direct object
mkV2 V -> Prep -> V2 prepositional object
mkV3 V -> V3 donner (+ accusative + dative)
mkV3 V -> Prep -> V3 placer (+ accusative) + dans
mkV3 V -> Prep -> Prep -> V3 parler + dative + genitive
dirV3 V -> Prep -> V3 dare,_,a
dirdirV3 V -> V3 dare,_,_
mkVS V -> VS -
mkVV V -> VV plain infinitive: "voglio parlare"
deVV V -> VV "cerco di parlare"
aVV V -> VV "arrivo a parlare"
mkVA V -> VA -
mkVQ V -> VQ -
mkV2Q V -> Prep -> V2Q -
mkV2S V -> V2S -
mkV2S V -> Prep -> V2S -
mkV2V V -> V2V -
mkV2V V -> Prep -> Prep -> V2V -
mkV2A V -> V2A -
mkV2A V -> Prep -> Prep -> V2A -
mkPredet Str -> Predet -

Paradigms for Japanese

source ../src/japanese/ParadigmsJpn.gf

Function Type Explanation
mkN (man : Str) -> N ---- AR 15/11/2014 -
mkN (man : Str) -> (anim : Animateness) -> N -
mkN (kane,okane : Str) -> (anim : Animateness) -> N -
mkN (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> N -
mkN (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> -
(men Str) -> N -
mkN (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) -> -
(counterReplace Bool) -> N -
mkN (tsuma,okusan : Str) -> (anim : Animateness) -> (counter : Str) -> -
(counterReplace Bool) -> (tsumatachi : Str) -> N -
mkN2 (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> -
(men Str) -> (prep : Str) -> N2 -
mkN3 (distance : Str) -> (prep1: Str) -> (prep2: Str) -> (anim : Animateness) -> N3 -
mkPN (paris : Str) -> PN -
mkPN (jon,jonsan : Str) -> PN -
mkPron (kare : Str) -> (Pron1Sg : Bool) -> (anim : Animateness) -> Pron -
mkPron (boku,watashi : Str) -> (Pron1Sg : Bool) -> (anim : Animateness) -> Pron -
mkA (ookina : Str) -> A -
mkA (kekkonshiteiru,kikonno : Str) -> A -
mkA2 (yasui : Str) -> (prep : Str) -> A2 -
mkA2 (pred : Str) -> (attr : Str) -> (prep : Str) -> A2 -
mkV (yomu : Str) -> V -
mkV (yomu : Str) -> (group : ResJpn.VerbGroup) -> V -
mkV2 (yomu : Str) -> V2 ---- AR 15/11/2014 -
mkV2 (yomu, prep : Str) -> (group : ResJpn.VerbGroup) -> V2 -
mkV3 (yomu : Str) -> V3 -
mkV3 (uru, p1, p2 : Str) -> (group : ResJpn.VerbGroup) -> V3 -
mkVS (yomu : Str) -> VS -
mkVV (yomu : Str) -> VV -
mkV2V (yomu : Str) -> V2V -
mkV2S (yomu : Str) -> V2S -
mkVQ (yomu : Str) -> VQ -
mkVA (yomu : Str) -> VA -
mkV2A (yomu : Str) -> V2A -
mkAdv Str -> Adv ---- AR 15/11/2014 -
mkPrep Str -> Prep ---- AR 15/11/2014 -
mkDet Str -> Det -
mkConj Str -> Conj -
mkInterj Str -> Interj -
mkgoVV VV -

Paradigms for Latvian

source ../src/latvian/ParadigmsLav.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number -
plural Number -
nominative Case -
genitive Case -
dative Case -
accusative Case -
locative Case -
second_conjugation Conjugation -
third_conjugation Conjugation -
active_voice Voice -
passive_voice Voice -
mkN (lemma : Str) -> N -
mkN (lemma : Str) -> Bool -> N -
mkN (lemma : Str) -> Gender -> N -
mkN (lemma : Str) -> Declension -> N -
mkN (lemma : Str) -> Gender -> Bool -> N -
mkN (lemma : Str) -> Declension -> Bool -> N -
mkN (lemma : Str) -> Gender -> Declension -> N -
mkN (lemma : Str) -> Gender -> Declension -> Bool -> N -
mkN (lemma : Str) -> PN -
mkN (lemma : Str) -> Number -> PN -
mkN2 N -> Prep -> N2 -
mkN2 N -> Prep -> Bool -> N2 -
mkN3 N -> Prep -> Prep -> N3 -
mkA (lemma : Str) -> A -
mkA (lemma : Str) -> AType -> A -
mkA (v : V) -> Voice -> A -
mkAS A -> AS -
mkAV A -> AV -
mkA2 A -> Prep -> A2 -
mkA2S A -> Prep -> A2S -
mkA2V A -> Prep -> A2V -
mkV Str -> V -
mkV Str -> Case -> V -
mkV Str -> Conjugation -> V -
mkV Str -> Conjugation -> Case -> V -
mkV Str -> Str -> Str -> V -
mkV Str -> Str -> Str -> Case -> V -
--mkV2 V -> V2 -
--mkV2 V -> Prep -> V2 -
mkV2 V -> V2 -
mkV2 V -> Prep -> V2 -
mkVS V -> Subj -> VS -
mkVS V -> Subj -> Case -> VS -
mkVQ V -> VQ -
mkVQ V -> Case -> VQ -
mkVV V -> VV -
mkVV V -> Case -> VV -
mkV3 V -> V3 -
mkV3 V -> Prep -> Prep -> V3 -
mkVA V -> VA -
mkV2A V -> Prep -> V2A -
mkV2Q V -> Prep -> V2Q -
mkV2V V -> Prep -> V2V -
mkV2S V -> Subj -> Prep -> V2S -
mkPrep Str -> Case -> Case -> Prep -
mkPrep Case -> Prep -
nom_Prep Prep -
gen_Prep Prep -
dat_Prep Prep -
acc_Prep Prep -
loc_Prep Prep -
mkAdv Str -> Adv -
mkAdV Str -> AdV -
mkAdA Str -> AdA -
mkAdN Str -> AdN -
mkCAdv Str -> Str -> Degree -> CAdv -
mkConj Str -> Conj -
mkConj Str -> Number -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mk2Conj Str -> Str -> Number -> Conj -
mkNumReg Str -> Str -> Number -> { s : DForm => CardOrd => Gender => Case => Str } -
mkNumSpec Str -> Str -> Str -> Str -> Number -> { s : DForm => CardOrd => Gender => Case => Str } -
simts CardOrd => Gender => Number => Case => Str -
tuukstotis CardOrd => Gender => Number => Case => Str -

Paradigms for Maltese

source ../src/maltese/ParadigmsMlt.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number -
plural Number -
form1 VDerivedForm Binyan I: daħal
form2 VDerivedForm Binyan II: daħħal
form3 VDerivedForm Binyan III: wieġeb
form4 VDerivedForm Binyan IV: wera
form5 VDerivedForm Binyan V: ddaħħal
form6 VDerivedForm Binyan VI: twieġeb
form7 VDerivedForm Binyan VII: ndaħal
form8 VDerivedForm Binyan VIII: ftakar
form9 VDerivedForm Binyan IX: sfar
form10 VDerivedForm Binyan X: stieden
strong VClass Strong tri. verb: kiteb (k-t-b)
liquidMedial VClass Strong liquid-medial tri. verb: ħareġ (ħ-r-ġ)
geminated VClass Strong geminated tri. verb: ħabb (ħ-b-b)
assimilative VClass Weak-initial tri. verb: wieġeb (w-ġ-b)
hollow VClass Weak-medial tri. verb: ried (r-j-d)
lacking VClass Weak-final tri. verb: mexa (m-x-j)
defective VClass GĦ-final tri. verb: qata' (q-t-għ)
quad VClass Strong quad. verb: ħarbat (ħ-r-b-t)
quadWeak VClass Weak-final quad. verb: kanta (k-n-t-j)
irregular VClass Irregular verb: af ('-'-f)
loan VClass Loan verb: ipparkja (no root)
mkN Str -> N Noun paradigm 1: Take the singular and infer plural
mkN Str -> Gender -> N Noun paradigm 1: Explicit gender
mkN Str -> Str -> N Noun paradigm 1: Take the singular and explicit plural
mkN Str -> Str -> Gender -> N Noun paradigm 1: Explicit gender
mkN Str -> Str -> Str -> N Noun paradigm 1x: Take singular and both plurals
mkN Str -> Str -> Str -> Gender -> N Noun paradigm 1x: Explicit gender
mkNColl Str -> N Noun paradigm 2c: Collective form only
mkNColl Str -> Str -> N Noun paradigm 2b: Collective and plural
mkNColl Str -> Str -> Str -> N Noun paradigm 2: Singular, collective and plural
mkNColl Str -> Str -> Str -> Str -> N Noun paradigm 2x: Singular, collective and both plurals
mkNNoPlural Str -> N Noun paradigm 3: No plural
mkNNoPlural Str -> Gender -> N Noun paradigm 3: Explicit gender
mkNDual Str -> N Noun paradigm 4: Infer dual, plural and gender from singular
mkNDual Str -> Str -> Str -> N Noun paradigm 4: Singular, dual, plural
mkNDual Str -> Str -> Str -> Gender -> N Noun paradigm 4: Explicit gender
mkNDual Str -> Str -> Str -> Str -> N Noun paradigm 4x: Singular, dual, both plurals
mkNDual Str -> Str -> Str -> Str -> Gender -> N Noun paradigm 4x: Explicit gender
mkPN Str -> Gender -> Number -> ProperNoun Proper noun
mkN2 N -> Prep -> N2 -
mkN2 N -> Str -> N2 -
mkN2 N -> N2 use "ta'"
mkN3 Noun -> Prep -> Prep -> N3 -
possN N -> N Mark a noun as taking possessive enclitic pronouns: missieri, missierek...
mkRoot Root Null root
mkRoot Str -> Root From hyphenated string: "k-t-b"
mkRoot Str -> Str -> Str -> Root Tri-consonantal root
mkRoot Str -> Str -> Str -> Str -> Root Quadri-consonantal root
mkVowels Vowels Null vowel sequence
mkVowels Str -> Vowels Only single vowel
mkVowels Str -> Str -> Vowels Two-vowel sequence
mkV Str -> V With no root, automatically treat as loan verb
mkV Str -> Root -> V Take an explicit root, implying it is a root & pattern verb
mkV Str -> Str -> Root -> V Takes an Imperative of the word for when it behaves less predictably
mkV VClass -> VDerivedForm -> Root -> Vowels -> (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> V All forms: mkV (Strong Regular) (FormI) (mkRoot "k-t-b") (mkVowels "i" "e") "ktibt" "ktibt" "kiteb" "kitbet" "ktibna" "ktibtu" "kitbu" "nikteb" "tikteb" "jikteb" "tikteb" "niktbu" "tiktbu" "jiktbu" "ikteb" "iktbu"
mkV_II Str -> Root -> V Form II verb: mkV_II "waqqaf" (mkRoot "w-q-f")
mkV_II Str -> Str -> Root -> V Form II verb with explicit imperative form: mkV_II "waqqaf" "waqqaf" (mkRoot "w-q-f")
mkV_III Str -> Root -> V Form III verb: mkV_III "qiegħed" (mkRoot "q-għ-d")
mkV_V Str -> Root -> V Form V verb: mkV_V "twaqqaf" (mkRoot "w-q-f")
mkV_VI Str -> Root -> V Form VI verb: mkV_VI "tqiegħed" (mkRoot "q-għ-d")
mkV_VII Str -> Str -> Root -> V Form VII verb: mkV_VII "xeħet" "nxteħet" (mkRoot "x-ħ-t")
mkV_VIII Str -> Root -> V Form VIII verb: mkV_VIII "xteħet" (mkRoot "x-ħ-t")
mkV_IX Str -> Root -> V Form IX verb: mkV_IX "sfar" (mkRoot "s-f-r")
mkV_X Str -> Root -> V Form X verb: mkV_X "stagħġeb" (mkRoot "għ-ġ-b")
presPartV Str -> V -> V Add the present participle to a verb: ħiereġ
presPartV Str -> Str -> Str -> V -> V Add the present participle to a verb: ħiereġ, ħierġa, ħierġin
pastPartV Str -> V -> V Add the past participle to a verb: miktub
pastPartV Str -> Str -> Str -> V -> V Add the past participle to a verb: miktub, miktuba, miktubin
mkVS V -> VS sentence-compl
mkV3 V -> V3 ditransitive: give,_,_
mkV3 V -> Prep -> Prep -> V3 two prepositions: speak, with, about
mkV3 V -> Prep -> V3 one preposition: give,_,to
mkV2V V -> Prep -> Prep -> V2V want (noPrep NP) (to VP)
mkConj Str -> Conj Conjunction: wieħed tnejn u tlieta
mkConj Str -> Str -> Conj Conjunction: wieħed , tnejn u tlieta
mkA Str -> A Regular adjective with predictable feminine and plural forms: bravu
mkA Str -> Str -> A Infer feminine from masculine; no comparative form: sabiħ, sbieħ
mkA Str -> Str -> Str -> A Explicit feminine form; no comparative form: sabiħ, sabiħa, sbieħ
mkA Str -> Str -> Str -> Str -> A All forms: sabiħ, sabiħa, sbieħ, isbaħ
sameA Str -> A Adjective with same forms for masculine, feminine and plural: blu
mkA2 A -> Prep -> A2 -
mkA2 A -> Str -> A2 -
mkAS A -> AS -
mkAdv Str -> Adv post-verbal adverb: illum
mkAdV Str -> AdV preverbal adverb: dejjem
mkAdA Str -> AdA adverb modifying adjective: pjuttost
mkAdN Str -> AdN adverb modifying numeral: madwar

Paradigms for Mongolian

source ../src/mongolian/ParadigmsMon.gf

Function Type Explanation
mkN (_,_ : Str) -> Noun -
mk2N (adj : Str) -> Noun -> Noun -
mkLN (_,_ : Str) -> Noun -
regN Str -> Noun -
loanN Str -> Noun -
modDecl (Dcl -> Dcl) -> Str -> Noun -
modDeclL (Dcl -> Dcl) -> Str -> Noun -
mkN01a Str -> Noun -
mkN01b Str -> Noun -
mkN01c Str -> Noun -
mkN01d Str -> Noun -
mkN01e Str -> Noun -
mkN01f Str -> Noun -
mkN01g Str -> Noun -
mkN01h Str -> Noun -
mkLN01c Str -> Noun -
modDecl2 (Dcl -> Dcl) -> Str -> Str -> Noun -
modDecl2L (Dcl -> Dcl) -> Str -> Str -> Noun -
reg2N (nomSg,nomPl : Str) -> Noun -
loan2N (nomSg,nomPl : Str) -> Noun -
mkN02a (nomSg,nomPl : Str) -> Noun -
mkN02b (nomSg,nomPl : Str) -> Noun -
mkN02c Str -> Str -> Noun -
mkN02d (nomSg,nomPl : Str) -> Noun -
mkN02e (nomSg,nomPl : Str) -> Noun -
mkNP Str -> Def -> NP -
regV Str -> Verb -
verbToAux Verb -> Aux -
auxToVerb Aux -> Verb -
mkV Str -> Verb -
auxBe Aux -

Paradigms for Nepali

source ../src/nepali/ParadigmsNep.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number -
plural Number -
human NType -
profession NType -
living NType -
regN Str -> N -
regN Str -> NPerson -> N -
regN Str -> NType -> N -
regN Str -> NType -> NPerson -> N -
mkNF Str -> N -
mkNF Str -> NPerson -> N -
mkNF Str -> NType -> N -
mkNF Str -> NType -> NPerson -> N -
mkNUC Str -> N -
mkNUC Str -> Gender -> N -
mkNUC Str -> Gender -> NType -> N -
mkNUC Str -> Gender -> NType -> NPerson -> N -
--mkNUC Str -> NType -> Gender -> N -
mkN2 N -> Prep -> Str -> N2 -
mkN2 N -> Prep -> Str -> NType -> N2 -
mkN2 N -> Prep -> Str -> NType -> NPerson -> N2 -
mkN2 N -> Prep -> Str -> N2; -
mkN3 N -> Prep -> Prep -> Str-> N3 -
mkN3 N -> Prep -> Prep -> Str-> NType -> N3 -
mkN3 N -> Prep -> Prep -> Str-> N3 -
mkCmpdNoun Str -> N -> N -
mkPN Str -> PN -
mkPN Str -> Gender -> NPerson -> PN -
mkPN Str -> Gender -> NType -> NPerson -> PN -
mkPron Str -> Str -> Number -> Gender -> NPerson -> Pron -
mkPron (x1,_,_,_,_,_,x7 : Str) -> Number -> Gender -> NPerson -> Pron -
demoPN Str -> Str -> Str -> Quant -
mkDet (s1,s2:Str) -> Number -> Det -
mkDet (s1,s2,s3,s4:Str) -> Number -> Det -
mkIDetn (s1,s2:Str) -> Number -> IDet -
mkIP (x1,x2,x3,x4:Str) -> Number -> IP -
mkA Str-> A -
mkA Str -> Str -> A2 -
mkV Str -> V -
mkV2 Str -> V2 -
mkV2 V -> V2 -
mkV2 V -> Str -> V2 -
mkV3 V -> Str -> Str -> V3 -
mkV2V V -> Str -> Str -> Bool -> V2V -
compoundV Str -> V -> V -
compoundV Str -> V2 -> V -
mkAdv Str -> Adv e.g. today
mkAdV Str -> AdV e.g. always
mkAdA Str -> AdA e.g. quite
mkAdN Str -> AdN e.g. approximately
mkPrep Str -> Prep -
noPrep Prep -
--mkQuant Pron -> Quant -
mkQuant (s1,s2,s3,s4:Str) -> Quant -
mkQuant (s1,s2:Str) -> Quant -
mkConj Str -> Conj and (plural agreement)
mkConj Str -> Number -> Conj or (agrement number given as argument)
mkConj Str -> Str -> Conj both ... and (plural)
mkConj Str -> Str -> Number -> Conj either ... or (agrement number given as argument)
mkConj Str -> Conj -
mkConj Str -> Number -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mk2Conj Str -> Str -> Number -> Conj -

Paradigms for Norwegian

source ../src/norwegian/ParadigmsNor.gf

Function Type Explanation
Gender Type -
masculine Gender the "en" gender
feminine Gender the "ei" gender
neutrum Gender the "et" gender
Number Type -
singular Number -
plural Number -
mkPrep Str -> Prep e.g. "etter"
noPrep Prep empty string
mkN Str -> N predictable noun, feminine for "-e" otherwise masculine
mkN Str -> Gender -> N force gender
mkN (dreng,drengen,drenger,drengene : Str) -> N worst case
mkN2 N -> Prep -> N2 e.g. datter + til
mkN3 N -> Prep -> Prep -> N3 e.g forbindelse + fra + til
mkPN Str -> PN masculine
mkPN Str -> Gender -> PN force gender
mkA (fin : Str) -> A predictable adjective
mkA (fin,fint : Str) -> A deviant neuter
mkA (galen,galet,galne : Str) -> A also plural deviant
mkA (stor,stort,store,storre,storst : Str) -> A worst case
mkA A -> A comparison with mer/mest, e.g. "norsk"
mkA2 A -> Prep -> A2 e.g. gift + med
mkAdv Str -> Adv e.g. her
mkAdV Str -> AdV e.g. altid
mkAdA Str -> AdA e.g. mye
mkV (snakke : Str) -> V regular verb (first conjugation)
mkV (leve,levde : Str) -> V other past tense
mkV (drikke, drakk, drukket : Str) -> V theme of irregular verb
mkV (spise,spiser,spises,spiste,spist,spis : Str) -> V worst case
mkV V -> Str -> V verb with particle, e.g. lukke + opp
vaereV V -> V force "være" as auxiliary (default "have")
depV V -> V deponent, e.g "trives"
reflV V -> V reflexive, e.g. "forestille seg"
mkV2 Str -> V2 regular, direct object
mkV2 V -> V2 direct object
mkV2 V -> Prep -> V2 preposition for complement
mkV3 V -> Prep -> Prep -> V3 snakke, med, om
dirV3 V -> Prep -> V3 gi,_,til
dirdirV3 V -> V3 gi,_,_
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 -

Paradigms for Nynorsk

source ../src/nynorsk/ParadigmsNno.gf

Function Type Explanation
Gender Type -
masculine Gender the "ein" gender
feminine Gender the "ei" gender
neutrum Gender the "eit" gender
Number Type -
singular Number -
plural Number -
mkPrep Str -> Prep e.g. "etter"
noPrep Prep empty string
mkN Str -> N predictable noun, feminine for "-e" otherwise masculine
mkN Str -> Gender -> N force gender
mkN (dreng,drengen,drenger,drengene : Str) -> N worst case
mkN2 N -> Prep -> N2 e.g. datter + til
mkN3 N -> Prep -> Prep -> N3 e.g forbindelse + fra + til
mkPN Str -> PN masculine
mkPN Str -> Gender -> PN force gender
mkA (fin : Str) -> A predictable adjective
mkA (fin,fint : Str) -> A deviant neuter
mkA (galen,galet,galne : Str) -> A also plural deviant
mkA (stor,stort,store,storre,storst : Str) -> A worst case
mkA A -> A comparison with mer/mest, e.g. "norsk"
mkA2 A -> Prep -> A2 e.g. gift + med
mkAdv Str -> Adv e.g. her
mkAdV Str -> AdV e.g. altid
mkAdA Str -> AdA e.g. mye
mkV (snakke : Str) -> V regular verb (first conjugation)
mkV (leve,levde : Str) -> V other past tense
mkV (drikke, drakk, drukket : Str) -> V theme of irregular verb
mkV (spise,spiser,spises,spiste,spist,spis : Str) -> V worst case
mkV V -> Str -> V verb with particle, e.g. lukke + opp
vaereV V -> V force "være" as auxiliary (default "have")
depV V -> V deponent, e.g "trives"
reflV V -> V reflexive, e.g. "forestille seg"
mkV2 Str -> V2 regular, direct object
mkV2 V -> V2 direct object
mkV2 V -> Prep -> V2 preposition for complement
mkV3 V -> Prep -> Prep -> V3 snakke, med, om
dirV3 V -> Prep -> V3 gi,_,til
dirdirV3 V -> V3 gi,_,_
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 -

Paradigms for Polish

source ../src/polish/ParadigmsPol.gf

Paradigms for Punjabi

source ../src/punjabi/ParadigmsPnb.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number; -
plural Number; -
mkN2 N -> Prep -> Str -> N2; -
mkN3 N -> Prep -> Str -> Str-> N3 -
mkCmpdNoun Str -> N -> N -
mkPN Str -> PN -
mkPN Str -> Gender -> PN -
personalPN Str -> Str -> Str -> Str -> Str -> Number -> Gender -> PPerson -> Pron -
demoPN Str -> Str -> Str -> Quant -
mkDet Str -> Str -> Str -> Str -> Number -> Det -
mkIP (x1,x2,x3,x4:Str) -> Number -> Gender -> IP -
mkAdN Str -> AdN -
mkA Str-> A -
mkA Str -> Str -> A2 -
mkV Str -> V -
mkV2 Str -> V2 -
mkV2 V -> V2 -
mkV2 V -> Str -> V2 -
mkV3 V -> Str -> Str -> V3; -
mkV2V V -> Str -> Str -> Bool -> V2V -
compoundV Str -> V -> V -
compoundV Str -> V2 -> V -
mkAdv Str -> Adv -
mkPrep Str -> Prep -
mkQuant1 Pron -> Quant -
mkIQuant Str -> Str -> Str -> Str -> IQuant -
mkQuant1 Pron -> Quant -
mkConj Str -> Conj and (plural agreement)
mkConj Str -> Number -> Conj or (agrement number given as argument)
mkConj Str -> Str -> Conj both ... and (plural)
mkConj Str -> Str -> Number -> Conj either ... or (agrement number given as argument)
mkConj Str -> Conj -
mkConj Str -> Number -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mk2Conj Str -> Str -> Number -> Conj -
mkVV V -> VV -

Paradigms for Romanian

source ../src/romanian/ParadigmsRon.gf

Function Type Explanation
NGender Type -
masculine NGender -
feminine NGender -
neuter NGender -
Gender Type -
Masculine Gender -
Feminine Gender -
Anim Type -
animate Anim -
inanimate Anim; -
Number Type -
singular Number -
plural Number -
Preposition Type -
NCase Type -
Acc NCase -
Dat NCase -
Gen NCase -
Nom NCase -
mkPrep Str -> NCase-> Bool -> Prep -
mkPrep Str -> NCase -> Prep; -
noPrep NCase -> Prep -
mkN Str -> N Singular, infers gender and Plural
mkN Str -> Str -> NGender -> N worst case: Singular + Plural + gender
mkN Str -> Str -> Str -> N very irregular nouns - feminine
mkN Str -> Str -> N Singular + Plural, infers gender
mkN Str -> NGender -> N Singular + gender, infers Plural
mkNR Str -> N; -
mkN2 N -> Prep -> N2 -
mkN3 N -> Prep -> Prep -> N3 -
mkPN Str -> PN -
mkPN Str -> Str -> Gender -> Number -> PN -
mkPN Str -> Gender -> PN -
mkPN Str -> Gender -> Number -> PN -
mkInAn PN -> PN -
mkPropNoun Str -> Gender -> PN -
mkA Str -> A regular adjectives
mkA Str -> Str -> Str -> Str -> Str -> A --worst case all 4 forms are needed + form for adverb
mkA Str -> Str -> Str -> Str -> A 4 forms are needed
mkA2 A -> Prep -> A2 -
mkV Str -> V -
mkV2S V -> Prep -> V2S -
mkV2V V -> Prep -> Prep -> V2V -
mkVA V -> VA -
mkV2A V -> Prep -> Prep -> V2A -
mkVQ V -> VQ -
mkV2Q V -> Prep -> V2Q -

Paradigms for Russian

source ../src/russian/ParadigmsRus.gf

Function Type Explanation
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 (karta : Str) -> N -
mkN (tigr : Str) -> Animacy -> N -
mkN (nomSg, genSg, datSg, accSg, instSg, preposSg, prepos2Sg, nomPl, genPl, datPl, accPl, instPl, preposPl : Str) -> Gender -> Animacy -> N -
mkN2 N -> N2 -
mkN2 N -> Prep -> N2 -
mkN3 N -> Prep -> Prep -> N3 -
mkPN Str -> Gender -> Number -> Animacy -> PN "Иван", "Маша"
nounPN N -> PN -
mkA (positive : Str) -> A -
mkA (positive, comparative : Str) -> A -
mkA2 A -> Str -> Case -> A2 "делим на"
mkAdv Str -> Adv -
mkPrep Str -> Case -> Prep as in German
mkV Aspect -> (presSg1,presSg2,presSg3,presPl1,presPl2,presPl3,pastSgMasc,imp,inf: Str) -> V -
mkV2 V -> Str -> Case -> V2 "войти в дом"; "в", accusative
mkV3 V -> Str -> Str -> Case -> Case -> V3 "сложить письмо в конверт"
mkVS V -> VS -
mkVQ V -> VQ -
mkV2V V -> Str -> Case -> V2V -
mkV2S V -> Str -> Case -> V2S -
mkV2Q V -> Str -> Case -> V2Q -
mkV2A V -> Str -> Case -> V2A -
dirV2 V -> V2 "видеть", "любить"
tvDirDir V -> V3 -

Paradigms for Sindhi

source ../src/sindhi/ParadigmsSnd.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number; -
plural Number; -
mkN2 N -> Prep -> Str -> N2; -
mkN3 N -> Prep -> Str -> Str-> N3 -
mkCmpdNoun Str -> N -> N -
mkPN Str -> PN -
mkPN Str -> Gender -> PN -
personalPN Str -> Str -> Str -> Str -> Str -> Number -> Gender -> PPerson -> Pron -
demoPN Str -> Str -> Str -> Quant -
mkDet Str -> Str -> Str -> Str -> Number -> Det -
mkIP (x1,x2,x3,x4:Str) -> Number -> Gender -> IP -
mkAdN Str -> AdN -
mkA Str-> A -
mkA Str -> Str -> A2 -
mkV Str -> V -
mkV2 Str -> V2 -
mkV2 V -> V2 -
mkV2 V -> Str -> V2 -
mkV3 V -> Str -> Str -> V3; -
mkV2V V -> Str -> Str -> Bool -> V2V -
compoundV Str -> V -> V -
compoundV Str -> V2 -> V -
mkAdv Str -> Adv -
mkPrep Str -> Prep -
mkQuant1 Pron -> Quant -
mkIQuant Str -> Str -> Str -> Str -> IQuant -
mkQuant1 Pron -> Quant -
mkConj Str -> Conj and (plural agreement)
mkConj Str -> Number -> Conj or (agrement number given as argument)
mkConj Str -> Str -> Conj both ... and (plural)
mkConj Str -> Str -> Number -> Conj either ... or (agrement number given as argument)
mkConj Str -> Conj -
mkConj Str -> Number -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mk2Conj Str -> Str -> Number -> Conj -
mkVV V -> VV -

Paradigms for Spanish

source ../src/spanish/ParadigmsSpa.gf

Function Type Explanation
Gender Type -
masculine Gender -
feminine Gender -
Number Type -
singular Number -
plural Number -
accusative Prep direct object
genitive Prep preposition "de" and its contractions
dative Prep preposition "a" and its contractions
mkPrep Str -> Prep other preposition
mkPrep Str -> Prep -> Prep compound prepositions, e.g. "antes de", made as mkPrep "antes" genitive
mkN (luz : Str) -> N predictable; feminine for "-a"/"-z", otherwise masculine
mkN Str -> Gender -> N force gender
mkN (baston,bastones : Str) -> Gender -> N worst case
compN N -> Str -> N compound, e.g. "número" + "de teléfono"
mkN2 N -> Prep -> N2 relational noun with preposition
deN2 N -> N2 relational noun with preposition "de"
aN2 N -> N2 relational noun with preposition "a"
mkN3 N -> Prep -> Prep -> N3 prepositions for two complements
mkPN (Anna : Str) -> PN feminine for "-a"
mkPN (Pilar : Str) -> Gender -> PN force gender
mkPN N -> PN gender from noun
mkA (util : Str) -> A predictable adjective
mkA (espanol,espanola : Str) -> A -
mkA (solo,sola,solos,solas,solamente : Str) -> A worst-case
mkA (bueno : A) -> (mejor : A) -> A special comparison (default with "mas")
prefixA A -> A adjective before noun (default after noun)
mkA2 A -> Prep -> A2 e.g. "casado" + dative
mkAdv Str -> Adv -
mkAdV Str -> AdV -
mkAdA Str -> AdA -
mkAdN Str -> AdN -
mkV (pagar : Str) -> V regular in "-ar", "-er", ".ir"
mkV (mostrar,muestro : Str) -> V regular with vowel alternation
mkV Verbum -> V import verb constructed with BeschSpa
mkV V -> Str -> V particle verb
reflV V -> V reflexive verb
special_ppV V -> Str -> V deviant past participle, e.g. abrir - abierto
mkV2 Str -> V2 regular, direct object
mkV2 V -> V2 direct object
mkV2 V -> Prep -> V2 other object
mkV3 V -> V3 donner (+ accusative + dative)
mkV3 V -> Prep -> V3 placer (+ accusative) + dans
mkV3 V -> Prep -> Prep -> V3 parler + dative + genitive
dirV3 V -> Prep -> V3 e.g. dar,(accusative),a
dirdirV3 V -> V3 e.g. dar,(dative),(accusative)
mkVS V -> VS -
mkVV V -> VV plain infinitive: "quiero hablar"
deVV V -> VV "terminar de hablar"
aVV V -> VV "aprender a hablar"
mkVA V -> VA -
mkVQ V -> VQ -
mkV2Q V -> Prep -> V2Q -
mkV2S V -> V2S -
mkV2S V -> Prep -> V2S -
mkV2V V -> V2V -
mkV2V V -> Prep -> Prep -> V2V -
mkV2A V -> V2A -
mkV2A V -> Prep -> Prep -> V2A -

Paradigms for Swedish

source ../src/swedish/ParadigmsSwe.gf

Function Type Explanation
Gender Type -
utrum Gender the "en" gender
neutrum Gender the "ett" gender
Number Type -
singular Number -
plural Number -
mkPrep Str -> Prep e.g. "till"
noPrep Prep empty string
mkN (apa : Str) -> N predictable nouns: apa-apor, rike-riken, or bil-bilar
mkN (nyckel,nycklar : Str) -> N singular and plural suffice for most nouns
mkN (museum,museet,museer,museerna : Str) -> N worst case for nouns
mkN (museum,museet,museer,museerna : Str) -> Gender -> N even worse case for nouns
mkN (regering, makt : N) -> N regeringsmakt, using the co form of regering
mkN Str -> N -> N över + flöde
changeCompoundN Str -> N -> N kyrko + kyrka_N
mkN2 N -> N2 e.g. summan - av
mkN2 N -> Prep -> N2 e.g. syster - till
mkN3 N -> Prep -> Prep -> N3 e.g. flyg - från - till
mkPN Str -> PN default gender utrum
mkPN Str -> Gender -> PN set other gender
mkPN N -> PN get inflection and gender from a noun
mkPN (jesus,jesu : Str) -> Gender -> PN irregular genitive
mkA (billig : Str) -> A -
mkA (bred,brett : Str) -> A predictable adjective
mkA (tung,tyngre,tyngst : Str) -> A irregular comparison
mkA (god,gott,goda,battre,bast : Str) -> A very irregular
mkA (liten,litet,lilla,sma,mindre,minst,minsta : Str) -> A worst case
compoundA A -> A force comparison by mera - mest
invarA Str -> A e.g. äkta
irregAdv A -> Str -> A adverb irreg
mkA2 A -> Prep -> A2 e.g. delbar - med
mkAdv Str -> Adv postverbal, e.g. här
mkAdV Str -> AdV preverbal, e.g. alltid
mkAdA Str -> AdA modify adjective, e.g. tämligen
mkV (stämmer : Str) -> V predictable verb: use present indicative
mkV (slita, slet : Str) -> V i/e/i, u/ö/u, u/a/u
mkV (dricka,drack,druckit : Str) -> V the theme of an irregular verb
mkV (gå,går,gå,gick,gått,gången : Str) -> V worst case
mkV V -> Str -> V particle verb, e.g. passa - på
depV V -> V deponent verb, e.g. andas
reflV V -> V reflexive verb, e.g. ångra sig
mkV2 V -> V2 direct transitive
mkV2 V -> Prep -> V2 preposition for complement
mkV3 V -> V3 direct ditransitive
mkV3 V -> Prep -> V3 preposition for last argument
mkV3 V -> Prep -> Prep -> V3 prepositions for both complements
mkVS V -> VS -
mkV2S V -> V2S -
mkV2S V -> Prep -> V2S -
mkVV V -> VV -
auxVV V -> VV -
mkV2V V -> V2V -
mkV2V V -> Prep -> Prep -> V2V -
mkVA V -> VA -
mkV2A V -> V2A -
mkV2A V -> Prep -> V2A -
mkVQ V -> VQ -
mkV2Q V -> V2Q -
mkV2Q V -> Prep -> V2Q -
mkInterj Str -> Interj -

Paradigms for Thai

source ../src/thai/ParadigmsTha.gf

Function Type Explanation
mkN Str -> N -
mkN Str -> Str -> N -
personN Str -> N -
fooddishN Str -> N -
vehicleN Str -> N -
houseN Str -> N -
animalN Str -> N -
placeN Str -> N -
verbalN Str -> N -
mkN2 N -> Str -> N2 -
mkN3 N -> Str -> Str -> N3 -
mkA Str -> A -
mkPN Str -> PN -
mkA2 A -> Str -> A2 -
mkV Str -> V -
mkV Str -> Str -> V -
mkV2 Str -> V2 -
mkV2 V -> V2 -
mkV2 V -> Str -> V2 -
mkV3 Str -> V3 -
mkV3 V -> V3 -
mkV3 V -> Str -> Str -> V3 -
mkVQ V -> VQ -
mkVS V -> VS -
mkVA V -> VA -
mkV2Q V -> Str -> V2Q -
mkV2V V -> Str -> Str -> V2V -
mkV2S V -> Str -> V2S -
mkV2A V -> Str -> Str -> V2A -
mkAdv Str -> Adv -
mkPrep Str -> Prep -

Paradigms for Urdu

source ../src/urdu/ParadigmsUrd.gf

Function Type Explanation
masculine Gender -
feminine Gender -
singular Number; -
plural Number; -
mkN Str -> N Regular nouns like lRka, gender is judged from noun ending
mkN Str -> Gender -> N nouns whose gender is irregular like Admy
mkN (x1,_,_,_,_,x6 : Str) -> Gender -> N worst case
mkN2 N -> Prep -> Str -> N2; e.g maN ky
mkN3 N -> Prep -> Str -> Str-> N3 e.g faSlh - sE - ka
mkCmpdNoun Str -> N -> N e.g t-alb elm
mkPN Str -> PN -
personalPN Str -> Str -> Str -> Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron -
demoPN Str -> Str -> Str -> Quant -
mkDet Str -> Str -> Str -> Str -> Number -> Det -
mkIP (x1,x2,x3:Str) -> Number -> Gender -> IP -
mkAdN Str -> AdN -
mkA Str-> A e.g ach'a
mkA Str -> Str -> A2 e.g sE Xady krna
mkA2 A -> Str -> A2 -
mkCompoundA Str -> Str -> A e.g dra hwa
mkV Str -> V regular verbs like swna
mkV2 Str -> V2 e.g pyna
mkV2 V -> V2 e.g pyna
mkV2 V -> Str -> V2 e.g bnd krna
dirV2 V -> V2 -
mkV3 V -> Str -> Str -> V3; e.g bycna
mkV2V V -> Str -> Str -> Bool -> V2V e.g eltja krna - sE - kw
dirdirV3 V -> V3 -
compoundV Str -> V -> V e.g barX hwna
compoundV Str -> V2 -> V e.g bnd krna
mkAdv Str -> Adv e.g yhaN
mkAdv Str -> Str -> Adv -
mkPrep Str -> Str -> Prep e.g ka - ky
mkIQuant Str -> IQuant -
mkConj Str -> Conj and (plural agreement)
mkConj Str -> Number -> Conj or (agrement number given as argument)
mkConj Str -> Str -> Conj both ... and (plural)
mkConj Str -> Str -> Number -> Conj either ... or (agrement number given as argument)
mkConj Str -> Conj -
mkConj Str -> Number -> Conj -
mkConj Str -> Str -> Conj -
mkConj Str -> Str -> Number -> Conj -
mk2Conj Str -> Str -> Number -> Conj -
mkVS V -> VS; e.g drna
mkVV V -> VV -
mkAdA Str -> AdA -
mkVQ V -> VQ e.g janna

Additional Libraries

The Prelude module

The Prelude defines commonly used utility functions, in particular for strings and booleans.

Oper Type Explanation
SS Type the type {s : Str}
ss Str -> SS record from string
nonExist Str missing form
optStr Str -> Str optional string
bothWays (x,y : Str) -> Str either x ++ y or y ++ x
Bool PType values True and False
andB (_,_ : Bool) -> Bool conjunction
orB (_,_ : Bool) -> Bool disjunction
notB Bool -> Bool negation
if_then_else (A:Type)->Bool->A->A->A conditional
init Str -> Str drop last character
last Str -> Str return last character
glue Str -> Str -> Str glue tokens together

The Predefined module

These functions are hard-coded in GF. They are available without explicit opening, by the used of qualified names, e.g. Predef.tk.

operation type explanation
PBool PType PTrue | PFalse
Error Type the empty type
Integer Type the type of integers
Ints Integer -> Type integers from 0 to n
error Str -> Error forms error message
length Str -> Int length of string
drop Integer -> Str -> Str drop prefix of length
take Integer -> Str -> Str take prefix of length
tk Integer -> Str -> Str drop suffix of length
dp Integer -> Str -> Str take suffix of length
eqInt Integer -> Integer -> PBool test if equal integers
lessInt Integer -> Integer -> PBool test order of integers
plus Integer -> Integer -> Integer add integers
eqStr Str -> Str -> PBool test if equal strings
occur Str -> Str -> PBool test if occurs as substring
occurs Str -> Str -> PBool test if any char occurs
show (P : Type) -> P -> Str convert param to string
toStr (L : Type) -> L -> Str find the "first" string

The Formal module

This module is used for defining formal languages, in particular ones that use precedence levels and parentheses for grouping subexpressions.

Oper Type Explanation
Prec PType precedence levels 0..4
TermPrec Type string with precedence
mkPrec Prec -> Str -> TermPrec construct a TermPrec
top TermPrec -> Str top term (lowest prec.)
constant Str -> TermPrec atomic (highest prec.)
infixl Prec->Str->(_,_:TermPrec)->TermPrec left-assoc. infix
infixr Prec->Str->(_,_:TermPrec)->TermPrec right-assoc. infix
infixn Prec->Str->(_,_:TermPrec)->TermPrec non-assoc. infix
usePrec Prec -> TermPrec -> Str use term on given level

The Symbolic module

This module is used for embedding symbolic notation in natural-language text constructed by the resource grammar API. It works for all resource languages.

Function Type Example
symb Str -> NP x
symb Int -> NP 23
symb Float -> NP 0.99
symb CN -> Numeral -> NP level four
symb Det -> N+ -> Numeral -> NP the level four
symb Det -> CN -> [Symb] -> NP the levels i, j and k
symb Symb -> S A (formula)
symb Symb -> Card n (number)
mkSymb Str -> Symb x

The Combinators module

This module gives shortcuts for defining predicates (pred) and function expressions (app). It works for all resource languages.

Function Type Example
pred V -> NP -> Cl x converges
pred V2 -> NP -> NP -> Cl x intersects y
pred V -> NP -> NP -> Cl x and y intersect
pred A -> NP -> Cl x is even
pred A2 -> NP -> NP -> Cl x is divisible by y
pred A -> NP -> NP -> Cl x and y are equal
pred N -> NP -> Cl x is a maximum
pred N -> NP -> NP -> Cl x and y are inverses
pred Adv -> NP -> Cl x is in scope
pred Prep -> NP -> NP -> Cl x is outside y
app N -> NP the bottom
app N2 -> NP -> NP the successor of x
app N3 -> NP -> NP -> NP the distance from x to y
app N2 -> NP -> NP -> NP the sum of x and y
app N2 -> N -> CN set of integers
app N2 -> NP -> CN divisor of x
app N3 -> NP -> NP -> CN path from x to y
app N2 -> NP -> NP -> CN path between x and y

Browsing the libraries with GF commands

Note: You can browse using the syntax editor directly on the web.

All of the following assume that GF_LIB_PATH points to the directory GF/lib with compiled libraries.

To try out inflection paradigms:

    > i -retain alltenses/ParadigmsGer.gfo
    > cc mkN "Farbe"

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

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

Table of Contents