1
0
forked from GitHub/gf-core
This commit is contained in:
aarne
2004-08-10 13:15:08 +00:00
parent fc36275f5d
commit cc86cd805a
10 changed files with 2176 additions and 0 deletions

View File

@@ -0,0 +1,382 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1> Abstract Syntax for Multilingual Resource Grammar</h1>
<p>
Aarne Ranta 2002 -- 2003
<p>
Although concrete syntax differs a lot between different languages,
many structures can be treated as common, on the level
of abstraction that GF provides.
What we will present in the following is a linguistically oriented abstract
syntax that has been successfully defined for the following languages:
<p>
<li><tt>Eng</tt>lish
<li><tt>Fin</tt>nish
<li><tt>Fre</tt>nch
<li><tt>Ger</tt>man
<li><tt>Ita</tt>lian
<li><tt>Rus</tt>sian
<li><tt>Swe</tt>dish
<p>
The three-letter prefixes are used in file names all over the resource
grammar library; we refer to them commonly as <tt>X</tt> below.
<p>
<!-- NEW -->
The grammar has been applied to define language
fragments on technical or near-to-technical domains: database queries,
video recorder dialogue systems, software specifications, and a
health-related phrase book. Each new application helped to identify some
missing structures in the resource and suggested some additions, but the
number of required additions was usually small.
To use the resource in applications, you need the following
<tt>cat</tt> and <tt>fun</tt> rules in <tt>oper</tt> form, completed by taking the
<tt>lincat</tt> and <tt>lin</tt> judgements of a particular language. This is done
by using, instead of this module, the <tt>reuse</tt> module which has the name
<tt>ResourceX</tt>. It is located in the subdirectory
<tt>grammars/resource/lang</tt> where <tt>lang</tt> is the full name of the language.
<pre>
abstract Combinations = PredefAbs ** {
</pre>
<p>
<!-- NEW -->
<h2> Categories</h2>
<p>
The categories of this resource grammar are mostly 'standard' categories
of linguistics. Their is no claim that they correspond to semantic categories
definable in type theory: to define such correspondences is the business
of applications grammars. In general, the correspondence between linguistic
and semantic categories is many-to-many.
<p>
Categories that may look special are <tt>Adj2</tt>, <tt>Fun</tt>, and <tt>TV</tt>. They are all
instances of endowing another category with a complement, which can be either
a direct object (whose case may vary) or a prepositional phrase. Prepositional
phrases that are not complements belong to the category
<tt>AdV</tt> of adverbials.
<p>
In each group below, some categories are <b>lexical</b> in the sense of only
containing atomic elements. These elements are not necessarily expressed by
one word in all languages; the essential thing is that they have no
constituents. Thus they have no productions in this part of the
resource grammar. The <tt>ParadigmsX</tt> grammars provide ways of defining
lexical elements.
<p>
Lexical categories are listed before other categories
in each group and divided by an empty line.
<p>
<!-- NEW -->
<h3> Nouns and noun phrases</h3>
<p>
<pre>
cat
N ; -- simple common noun, e.g. "car"
PN ; -- proper name, e.g. "John", "New York"
Fun ; -- function word, e.g. "mother (of)"
Fun2 ; -- two-place function, e.g. "flight (from) (to)"
CN ; -- common noun phrase, e.g. "red car", "car that John owns"
NP ; -- noun phrase, e.g. "John", "all cars", "you"
Det ; -- determiner, e.g. "every", "all"
Num ; -- numeral, e.g. "three", "879"
</pre>
<p>
<!-- NEW -->
<h3> Adjectives and adjectival phrases</h3>
<p>
<pre>
Adj1 ; -- one-place adjective, e.g. "even"
Adj2 ; -- two-place adjective, e.g. "divisible (by)"
AdjDeg ; -- degree adjective, e.g. "big/bigger/biggest"
AP ; -- adjective phrase, e.g. "divisible by two", "bigger than John"
</pre>
The difference between <tt>Adj1</tt> and <tt>AdjDeg</tt> is that the former has no
comparison forms.
<p>
<!-- NEW -->
<h3> Verbs and verb phrases</h3>
<p>
<pre>
V ; -- one-place verb, e.g. "walk"
TV ; -- two-place verb, e.g. "love", "wait (for)", "switch on"
V3 ; -- three-place verb, e.g. "give", "prefer (stg) (to stg)"
VS ; -- sentence-compl. verb, e.g. "say", "prove"
VV ; -- verb-compl. verb, e.g. "can", "want"
VG ; -- verbal group, e.g. "switch the light on"
VP ; -- verb phrase, e.g. "switch the light on", "don't run"
</pre>
<p>
<!-- NEW -->
<h3> Adverbials</h3>
<p>
This group has no lexical categories.
<pre>
AdV ; -- adverbial e.g. "now", "in the house"
AdA ; -- ad-adjective e.g. "very"
AdS ; -- sentence adverbial e.g. "therefore", "otherwise"
Prep ; -- pre/postposition, case e.g. "after", Adessive
</pre>
<p>
<!-- NEW -->
<h3> Sentences and relative clauses</h3>
<p>
This group has no lexical categories.
<pre>
S ; -- sentence, e.g. "John walks"
Slash ; -- sentence without NP, e.g. "John waits for (...)"
RP ; -- relative pronoun, e.g. "which", "the mother of whom"
RC ; -- relative clause, e.g. "who walks", "that I wait for"
</pre>
<p>
<!-- NEW -->
<h3> Questions and imperatives</h3>
<p>
This group has no lexical categories.
<pre>
IP ; -- interrogative pronoun, e.g. "who", "whose mother", "which yellow car"
IAdv ; -- interrogative adverb., e.g. "when", "why"
Qu ; -- question, e.g. "who walks"
Imp ; -- imperative, e.g. "walk!"
</pre>
<p>
<!-- NEW -->
<h3> Coordination and subordination</h3>
<p>
<pre>
Conj ; -- conjunction, e.g. "and"
ConjD ; -- distributed conj. e.g. "both - and"
Subj ; -- subjunction, e.g. "if", "when"
ListS ; -- list of sentences
ListAP ; -- list of adjectival phrases
ListNP ; -- list of noun phrases
</pre>
<p>
<!-- NEW -->
<h3> Complete utterances</h3>
<p>
This group has no lexical categories.
<pre>
Phr ; -- full phrase, e.g. "John walks.","Who walks?", "Wait for me!"
Text ; -- sequence of phrases e.g. "One is odd. Therefore, two is even."
</pre>
<p>
<!-- NEW -->
<h2> Rules</h2>
<p>
This set of rules is minimal, in the sense of defining the simplest combinations
of categories and not having redundant rules.
When the resource grammar is used as a library, it will often be useful to
access it through an intermediate library that defines more rules as
'macros' for combinations of the ones below.
<p>
<!-- NEW -->
<h3> Nouns and noun phrases</h3>
<p>
<pre>
fun
UseN : N -> CN ; -- "car"
UsePN : PN -> NP ; -- "John"
UseFun : Fun -> CN ; -- "successor"
UseInt : Int -> Num ; -- "32" --- assumes i > 1
SymbPN : String -> PN ; -- "x"
SymbCN : CN -> String -> CN ; -- "number x"
ModAdj : AP -> CN -> CN ; -- "red car"
DetNP : Det -> CN -> NP ; -- "every car"
MassNP : CN -> NP ; -- "wine"
IndefOneNP : CN -> NP ; -- "a car", "cars"
IndefNumNP : Num -> CN -> NP ; -- "houses", "86 houses"
DefOneNP : CN -> NP ; -- "the car"
DefNumNP : Num -> CN -> NP ; -- "the cars", "the 86 cars"
ModGenOne : NP -> CN -> NP ; -- "John's car"
ModGenNum : Num -> NP -> CN -> NP ; -- "John's cars", "John's 86 cars"
AppFun : Fun -> NP -> CN ; -- "successor of zero"
AppFun2 : Fun2 -> NP -> Fun ; -- "flight from Paris"
CNthatS : CN -> S -> CN ; -- "idea that the Earth is flat"
NoNum : Num ; -- no numeral modifier
</pre>
<p>
<!-- NEW -->
<h3> Adjectives and adjectival phrases</h3>
<p>
<pre>
AdjP1 : Adj1 -> AP ; -- "red"
PositAdjP : AdjDeg -> AP ; -- "old"
ComplAdj : Adj2 -> NP -> AP ; -- "divisible by two"
ComparAdjP : AdjDeg -> NP -> AP ; -- "older than John"
SuperlNP : AdjDeg -> CN -> NP ; -- "the oldest man"
</pre>
<p>
<!-- NEW -->
<h3> Verbs and verb phrases</h3>
<p>
The principal way of forming sentences (<tt>S</tt>) is by combining a noun phrase
with a verb phrase (the <tt>PredVP</tt> rule below). In addition to this, verb
phrases have uses in relative clauses and questions. Verb phrases already
have (or have not) a negation, but they are formed from verbal groups
(<tt>VG</tt>), which have both positive and negative forms.
<pre>
PredV : V -> VG ; -- "walk", "doesn't walk"
PredPassV : V -> VG ; -- "is seen", "is not seen"
PredTV : TV -> NP -> VG ; -- "sees John", "doesn't see John"
PredVS : VS -> S -> VG ; -- "says that I run", "doesn't say..."
PredVV : VV -> VG -> VG ; -- "can run", "can't run", "tries to run"
PredV3 : V3 -> NP -> NP -> VG ; -- "prefers wine to beer"
PredNP : NP -> VG ; -- "is John", "is not John"
PredAdV : AdV -> VG ; -- "is everywhere", "is not in France"
PredAP : AP -> VG ; -- "is old", "isn't old"
PredCN : CN -> VG ; -- "is a man", "isn't a man"
VTrans : TV -> V ; -- "loves"
PosVG,NegVG : VG -> VP ; --
</pre>
<p>
<!-- NEW -->
<h3> Adverbs</h3>
<p>
Here is how complex adverbs can be formed and used.
<pre>
AdjAdv : AP -> AdV ; -- "freely", "more consciously than you"
PrepNP : Prep -> NP -> AdV ; -- "in London", "after the war"
AdvVP : VP -> AdV -> VP ; -- "always walks", "walks in the park"
AdvCN : CN -> AdV -> CN ; -- "house in London", "house today"
AdvAP : AdA -> AP -> AP ; -- "very good"
</pre>
<p>
<!-- NEW -->
<h3> Sentences and relative clauses</h3>
<p>
<pre>
PredVP : NP -> VP -> S ; -- "John walks"
PosSlashTV,NegSlashTV : NP -> TV -> Slash ; -- "John sees", "John doesn't see"
OneVP : VP -> S ; -- "one walks"
ThereNP : NP -> S ; -- "there is a bar","there are 86 bars"
IdRP : RP ; -- "which"
FunRP : Fun -> RP -> RP ; -- "the successor of which"
RelVP : RP -> VP -> RC ; -- "who walks", "who doesn't walk"
RelSlash : RP -> Slash -> RC ; -- "that I wait for"/"for which I wait"
ModRC : CN -> RC -> CN ; -- "man who walks"
RelSuch : S -> RC ; -- "such that it is even"
</pre>
<p>
<!-- NEW -->
<h3> Questions and imperatives</h3>
<p>
<pre>
WhoOne, WhoMany : IP ; -- "who (is)", "who (are)"
WhatOne, WhatMany : IP ; -- "what (is)", "what (are)"
FunIP : Fun -> IP -> IP ; -- "the mother of whom"
NounIPOne, NounIPMany : CN -> IP ; -- "which car", "which cars"
QuestVP : NP -> VP -> Qu ; -- "does John walk"; "doesn't John walk"
IntVP : IP -> VP -> Qu ; -- "who walks"
IntSlash : IP -> Slash -> Qu ; -- "whom does John see"
QuestAdv : IAdv -> NP -> VP -> Qu ; -- "why do you walk"
IsThereNP : NP -> Qu ; -- "is there a bar", "are there (86) bars"
ImperVP : VP -> Imp ; -- "be a man"
IndicPhrase : S -> Phr ; -- "I walk."
QuestPhrase : Qu -> Phr ; -- "Do I walk?"
ImperOne, ImperMany : Imp -> Phr ; -- "Be a man!", "Be men!"
AdvS : AdS -> S -> Phr ; -- "Therefore, 2 is prime."
</pre>
<p>
<!-- NEW -->
<h3> Coordination</h3>
<p>
We consider <i>n</i>-ary coordination, with <i>n</i> > 1. To this end, we have introduced
a <b>list category</b> <tt>ListX</tt> for each category <tt>X</tt> whose expressions we want to
conjoin. Each list category has two constructors, the base case being <tt>TwoX</tt>.
We have not defined coordination of all possible categories here,
since it can be tricky in many languages. For instance, <tt>VP</tt> coordination
is linguistically problematic in German because <tt>VP</tt> is a discontinuous
category.
<pre>
ConjS : Conj -> ListS -> S ; -- "John walks and Mary runs"
ConjAP : Conj -> ListAP -> AP ; -- "even and prime"
ConjNP : Conj -> ListNP -> NP ; -- "John or Mary"
ConjDS : ConjD -> ListS -> S ; -- "either John walks or Mary runs"
ConjDAP : ConjD -> ListAP -> AP ; -- "both even and prime"
ConjDNP : ConjD -> ListNP -> NP ; -- "either John or Mary"
TwoS : S -> S -> ListS ;
ConsS : ListS -> S -> ListS ;
TwoAP : AP -> AP -> ListAP ;
ConsAP : ListAP -> AP -> ListAP ;
TwoNP : NP -> NP -> ListNP ;
ConsNP : ListNP -> NP -> ListNP ;
</pre>
<p>
<!-- NEW -->
<h3> Subordination</h3>
<p>
Subjunctions are different from conjunctions, but form
a uniform category among themselves.
<pre>
SubjS : Subj -> S -> S -> S ; -- "if 2 is odd, 3 is even"
SubjImper : Subj -> S -> Imp -> Imp ; -- "if it is hot, use a glove!"
SubjQu : Subj -> S -> Qu -> Qu ; -- "if you are new, who are you?"
SubjVP : VP -> Subj -> S -> VP ; -- "(a man who) sings when he runs"
</pre>
<p>
<!-- NEW -->
<h2> One-word utterances</h2>
<p>
These are, more generally, <b>one-phrase utterances</b>. The list below
is very incomplete.
<pre>
PhrNP : NP -> Phr ; -- "Some man.", "John."
PhrOneCN, PhrManyCN : CN -> Phr ; -- "A car.", "Cars."
PhrIP : IAdv -> Phr ; -- "Who?"
PhrIAdv : IAdv -> Phr ; -- "Why?"
</pre>
<p>
<!-- NEW -->
<h2> Text formation</h2>
<p>
A text is a sequence of phrases. It is defined like a non-empty list.
<pre>
OnePhr : Phr -> Text ;
ConsPhr : Phr -> Text -> Text ;
} ;
</pre>
</body>
</html>

View File

@@ -0,0 +1,211 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
# -path=.:../abstract:../../prelude
<h1> English Lexical Paradigms</h1>
<p>
Aarne Ranta 2003
<p>
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>Structural.gf</tt>.
<p>
The main difference with <tt>MorphoEng.gf</tt> is that the types
referred to are compiled resource grammar types. We have moreover
had the design principle of always having existing forms, rather
than stems, as string
arguments of the paradigms.
<p>
The following modules are presupposed:
<pre>
resource ParadigmsEng = open (Predef=Predef), Prelude, SyntaxEng, ResourceEng in {
</pre>
<h2> Parameters </h2>
<p>
To abstract over gender names, we define the following identifiers.
<pre>
oper
human : Gender ;
nonhuman : Gender ;
</pre>
To abstract over number names, we define the following.
<pre>
singular : Number ;
plural : Number ;
</pre>
To abstract over case names, we define the following.
<pre>
nominative : Case ;
genitive : Case ;
</pre>
<h2> Nouns</h2>
Worst case: give all four forms and the semantic gender.
In practice the worst case is just: give singular and plural nominative.
<pre>
oper
mkN : (man,men,man's,men's : Str) -> Gender -> N ;
nMan : (man,men : Str) -> Gender -> N ;
</pre>
Regular nouns, nouns ending with <i>s</i>, <i>y</i>, or <i>o</i>, and nouns with the same
plural form as the singular.
<pre>
nReg : Str -> Gender -> N ; -- dog, dogs
nKiss : Str -> Gender -> N ; -- kiss, kisses
nFly : Str -> Gender -> N ; -- fly, flies
nHero : Str -> Gender -> N ; -- hero, heroes (= nKiss !)
nSheep : Str -> Gender -> N ; -- sheep, sheep
</pre>
These use general heuristics, that recognizes the last letter. <b>N.B</b> it
does not get right with <i>boy</i>, <i>rush</i>, since it only looks at one letter.
<pre>
nHuman : Str -> N ; -- gambler/actress/nanny
nNonhuman : Str -> N ; -- dog/kiss/fly
</pre>
Nouns used as functions need a preposition. The most common is <i>of</i>.
<pre>
mkFun : N -> Preposition -> Fun ;
funHuman : Str -> Fun ; -- the father/mistress/daddy of
funNonhuman : Str -> Fun ; -- the successor/address/copy of
</pre>
Proper names, with their regular genitive.
<pre>
pnReg : (John : Str) -> PN ; -- John, John's
</pre>
The most common cases on the higher-level category <tt>CN</tt> have shortcuts.
The regular <i>y</i>/<i>s</i> variation is taken into account.
<pre>
cnNonhuman : Str -> CN ;
cnHuman : Str -> CN ;
npReg : Str -> NP ;
</pre>
In some cases, you may want to make a complex <tt>CN</tt> into a function.
<pre>
mkFunCN : CN -> Preposition -> Fun ;
funOfCN : CN -> Fun ;
</pre>
<h2> Adjectives</h2>
Non-comparison one-place adjectives just have one form.
<pre>
mkAdj1 : (even : Str) -> Adj1 ;
</pre>
Two-place adjectives need a preposition as second argument.
<pre>
mkAdj2 : (divisible, by : Str) -> Adj2 ;
</pre>
Comparison adjectives have three forms. The common irregular
cases are ones ending with <i>y</i> and a consonant that is duplicated;
the <i>y</i> ending is recognized by the function <tt>aReg</tt>.
<pre>
mkAdjDeg : (good,better,best : Str) -> AdjDeg ;
aReg : (long : Str) -> AdjDeg ; -- long, longer, longest
aFat : (fat : Str) -> AdjDeg ; -- fat, fatter, fattest
aRidiculous : (ridiculous : Str) -> AdjDeg ; -- -/more/most ridiculous
</pre>
On higher level, there are adjectival phrases. The most common case is
just to use a one-place adjective.
<pre>
apReg : Str -> AP ;
</pre>
<h2> Adverbs</h2>
Adverbs are not inflected. Most lexical ones have position not
before the verb. Some can be preverbal (e.g. <i>always</i>).
<pre>
mkAdv : Str -> AdV ;
mkAdvPre : Str -> AdV ;
</pre>
Adverbs modifying adjectives and sentences can also be formed.
<pre>
mkAdA : Str -> AdA ;
mkAdS : Str -> AdS ;
</pre>
Prepositional phrases are another productive form of adverbials.
<pre>
mkPP : Str -> NP -> AdV ;
</pre>
<h2> Verbs</h2>
<p>
The fragment now has all verb forms, except the gerund/present participle.
Except for <i>be</i>, the worst case needs four forms: the infinitive and
the third person singular present, the past indicative, and the past participle.
<pre>
mkV : (go, goes, went, gone : Str) -> V ;
vReg : (walk : Str) -> V ; -- walk, walks
vKiss : (kiss : Str) -> V ; -- kiss, kisses
vFly : (fly : Str) -> V ; -- fly, flies
vGo : (go : Str) -> V ; -- go, goes (= vKiss !)
</pre>
This generic function recognizes the special cases where the last
character is <i>y</i>, <i>s</i>, or <i>z</i>. It is not right for <i>finish</i> and <i>convey</i>.
<pre>
vGen : Str -> V ; -- walk/kiss/fly
</pre>
The verbs <i>be</i> and <i>have</i> are special.
<pre>
vBe : V ;
vHave : V ;
</pre>
Verbs with a particle.
<pre>
vPart : (go, goes, went, gone, up : Str) -> V ;
vPartReg : (get, up : Str) -> V ;
</pre>
Two-place verbs, and the special case with direct object.
Notice that a particle can already be included in <tt>V</tt>.
<pre>
mkTV : V -> Str -> TV ; -- look for, kill
tvGen : (look, for : Str) -> TV ; -- look for, talk about
tvDir : V -> TV ; -- switch off
tvGenDir : (kill : Str) -> TV ; -- kill
</pre>
Regular two-place verbs with a particle.
<pre>
tvPartReg : Str -> Str -> Str -> TV ; -- get, along, with
</pre>
Ditransitive verbs.
<pre>
mkV3 : V -> Str -> Str -> V3 ; -- speak, with, about
v3Dir : V -> Str -> V3 ; -- give,_,to
v3DirDir : V -> V3 ; -- give,_,_
</pre>
The definitions should not bother the user of the API. So they are
hidden from the document.
</body>
</html>

View File

@@ -0,0 +1,268 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1> Finnish Lexical Paradigms</h1>
<p>
Aarne Ranta 2003
<p>
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>Structural.gf</tt>.
<p>
The main difference with <tt>MorphoFin.gf</tt> is that the types
referred to are compiled resource grammar types. We have moreover
had the design principle of always having existing forms, not
stems, as string arguments of the paradigms, not stems.
<p>
This is the path to read the grammar from the same directory.
# -path=.:../abstract:../../prelude
<p>
The following modules are presupposed:
<pre>
resource ParadigmsFin = open Prelude, SyntaxFin, ResourceFin in {
</pre>
<h2> Parameters </h2>
<p>
To abstract over gender, number, and (some) case names,
we define the following identifiers.
<pre>
oper
human : Gender ;
nonhuman : Gender ;
singular : Number ;
plural : Number ;
nominative : Case ;
genitive : Case ;
partitive : Case ;
inessive : Case ;
elative : Case ;
illative : Case ;
adessive : Case ;
ablative : Case ;
allative : Case ;
</pre>
<h2> Nouns</h2>
Worst case: give ten forms and the semantic gender.
In practice just a couple of forms are needed, to define the different
stems, vowel alternation, and vowel harmony.
<pre>
oper
mkN :
(talo,talon,talona,taloa,taloon,taloina,taloissa,talojen,taloja,taloihin
: Str) -> Gender -> N ;
</pre>
Nouns with partitive <i>a</i>/<i>ä</i> are a large group.
To determine for grade and vowel alternation, three forms are usually needed:
singular nominative and genitive, and plural partitive.
Examples: <i>talo</i>, <i>kukko</i>, <i>huippu</i>, <i>koira</i>, <i>kukka</i>, <i>syylä</i>, <i>särki</i>...
<pre>
nKukko : (kukko,kukon,kukkoja : Str) -> N ;
</pre>
For convenience, we define 1-argument paradigms as producing the
nonhuman gender; the following function changes this:
<pre>
humanN : N -> N ;
</pre>
A special case are nouns with no alternations:
the vowel harmony is inferred from the last letter,
which must be one of <i>o</i>, <i>u</i>, <i>ö</i>, <i>y</i>.
<pre>
nTalo : (talo : Str) -> N ;
</pre>
Another special case are nouns where the last two consonants
undergo regular weak-grade alternation:
<i>kukko - kukon</i>, <i>rutto - ruton</i>, <i>hyppy - hypyn</i>, <i>sampo - sammon</i>,
<i>kunto - kunnon</i>, <i>sisältö - sisällön</i>, .
<pre>
nLukko : (lukko : Str) -> N ;
</pre>
<i>arpi - arven</i>, <i>sappi - sapen</i>, <i>kampi - kammen</i>;<i>sylki - syljen</i>
<pre>
nArpi : (arpi : Str) -> N ;
nSylki : (sylki : Str) -> N ;
</pre>
Foreign words ending in consonants are actually similar to words like
<i>malli</i>/<i>mallin</i>/<i>malleja</i>, with the exception that the <i>i</i> is not attached
to the singular nominative. Examples: <i>linux</i>, <i>savett</i>, <i>screen</i>.
The singular partitive form is used to get the vowel harmony. (N.B. more than
1-syllabic words ending in <i>n</i> would have variant plural genitive and
partitive forms, like <i>sultanien</i>/<i>sultaneiden</i>, which are not covered.)
<pre>
nLinux : (linuxia : Str) -> N ;
</pre>
Nouns of at least 3 syllables ending with <i>a</i> or <i>ä</i>, like <i>peruna</i>, <i>tavara</i>,
<i>rytinä</i>.
<pre>
nPeruna : (peruna : Str) -> N ;
</pre>
The following paradigm covers both nouns ending in an aspirated <i>e</i>, such as
<i>rae</i>, <i>perhe</i>, <i>savuke</i>, and also many ones ending in a consonant
(<i>rengas</i>, <i>kätkyt</i>). The singular nominative and essive are given.
<pre>
nRae : (rae, rakeena : Str) -> N ;
</pre>
The following covers nouns with partitive <i>ta</i>/<i></i>, such as
<i>susi</i>, <i>vesi</i>, <i>pieni</i>. To get all stems and the vowel harmony, it takes
the singular nominative, genitive, and essive.
<pre>
nSusi : (susi,suden,sutta : Str) -> N ;
</pre>
Nouns ending with a long vowel, such as <i>puu</i>, <i>pää</i>, <i>pii</i>, <i>leikkuu</i>,
are inflected according to the following.
<pre>
nPuu : (puu : Str) -> N ;
</pre>
One-syllable diphthong nouns, such as <i>suo</i>, <i>tie</i>, <i>työ</i>, are inflected by
the following.
<pre>
nSuo : (suo : Str) -> N ;
</pre>
Many adjectives but also nouns have the nominative ending <i>nen</i> which in other
cases becomes <i>s</i>: <i>nainen</i>, <i>ihminen</i>, <i>keltainen</i>.
To capture the vowel harmony, we use the partitive form as the argument.
<pre>
nNainen : (naista : Str) -> N ;
</pre>
The following covers some nouns ending with a consonant, e.g.
<i>tilaus</i>, <i>kaulin</i>, <i>paimen</i>, <i>laidun</i>.
<pre>
nTilaus : (tilaus,tilauksena : Str) -> N ;
</pre>
Special case:
<pre>
nKulaus : (kulaus : Str) -> N ;
</pre>
The following covers nouns like <i>nauris</i> and adjectives like <i>kallis</i>, <i>tyyris</i>.
The partitive form is taken to get the vowel harmony.
<pre>
nNauris : (naurista : Str) -> N ;
</pre>
Separately-written compound nouns, like <i>sambal oelek</i>, <i>Urho Kekkonen</i>,
have only their last part inflected.
<pre>
nComp : Str -> N -> N ;
</pre>
Nouns used as functions need a case, of which by far the commonest is
the genitive.
<pre>
mkFun : N -> Case -> Fun ;
fGen : N -> Fun ;
</pre>
Proper names can be formed by using declensions for nouns.
The plural forms are filtered away by the compiler.
<pre>
mkPN : N -> PN ;
</pre>
<h2> Adjectives</h2>
Non-comparison one-place adjectives are just like nouns.
<pre>
mkAdj1 : N -> Adj1 ;
</pre>
Two-place adjectives need a case for the second argument.
<pre>
mkAdj2 : N -> Case -> Adj2 ;
</pre>
Comparison adjectives have three forms. The comparative and the superlative
are always inflected in the same way, so the nominative of them is actually
enough (except for the superlative <i>paras</i> of <i>hyvä</i>).
<pre>
mkAdjDeg : (kiva : N) -> (kivempaa,kivinta : Str) -> AdjDeg ;
</pre>
<h2> Verbs</h2>
<p>
The fragment only has present tense so far, but in all persons.
The worst case needs five forms, as shown in the following.
<pre>
mkV : (tulla,tulen,tulee,tulevat,tulkaa,tullaan : Str) -> V ;
</pre>
A simple special case is the one with just one stem and no grade alternation.
It covers e.g. <i>sanoa</i>, <i>valua</i>, <i>kysyä</i>.
<pre>
vValua : (valua : Str) -> V ;
</pre>
With two forms, the following function covers a variety of verbs, such as
<i>ottaa</i>, <i>käyttää</i>, <i>löytää</i>, <i>huoltaa</i>, <i>hiihtää</i>, <i>siirtää</i>.
<pre>
vKattaa : (kattaa, katan : Str) -> V ;
</pre>
When grade alternation is not present, just a one-form special case is needed
(<i>poistaa</i>, <i>ryystää</i>).
<pre>
vOstaa : (ostaa : Str) -> V ;
</pre>
The following covers
<i>juosta</i>, <i>piestä</i>, <i>nousta</i>, <i>rangaista</i>, <i>kävellä</i>, <i>surra</i>, <i>panna</i>.
<pre>
vNousta : (nousta, nousen : Str) -> V ;
</pre>
This is for one-syllable diphthong verbs like <i>juoda</i>, <i>syödä</i>.
<pre>
vTuoda : (tuoda : Str) -> V ;
</pre>
The verbs <i>be</i> and the negative auxiliary are special.
<pre>
vOlla : V ;
vEi : V ;
</pre>
Two-place verbs need a case, and can have a pre- or postposition.
At least one of the latter is empty, <tt>[]</tt>.
<pre>
mkTV : V -> Case -> (prep,postp : Str) -> TV ;
</pre>
If both are empty, the following special function can be used.
<pre>
tvCase : V -> Case -> TV ;
</pre>
Verbs with a direct (accusative) object
are special, since their complement case is finally decided in syntax.
<pre>
tvDir : V -> TV ;
</pre>
The definitions should not bother the user of the API. So they are
hidden from the document.
</body>
</html>

View File

@@ -0,0 +1,175 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
# -path=.:../romance:../abstract:../../prelude
<h1> French Lexical Paradigms</h1>
<p>
Aarne Ranta 2003
<p>
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>resource.Abs.gf</tt>.
<p>
The main difference with <tt>MorphoFre.gf</tt> is that the types
referred to are compiled resource grammar types. We have moreover
had the design principle of always having existing forms, not stems, as string
arguments of the paradigms.
<p>
The following modules are presupposed:
<pre>
resource ParadigmsFre =
open Prelude, (Types = TypesFre), SyntaxFre, MorphoFre,
ResourceFre in {
</pre>
<h2> Parameters </h2>
<p>
To abstract over gender names, we define the following identifiers.
<pre>
oper
masculine : Gender ;
feminine : Gender ;
</pre>
To abstract over number names, we define the following.
<pre>
singular : Number ;
plural : Number ;
</pre>
To abstract over case names, we define the following. (Except for
some pronouns, the accusative is equal to the nominative, the
dative is formed by the preposition <i>à</i>, and the genitive by the
preposition <i>de</i>.)
<pre>
nominative : Case ;
accusative : Case ;
dative : Case ;
genitive : Case ;
</pre>
<h2> Nouns</h2>
Worst case: two forms (singular + plural),
and the gender.
<pre>
mkN : (_,_ : Str) -> Gender -> N ; -- oeil, yeux, masculine
</pre>
Often it is enough with one form. Some of them have a typical gender.
<pre>
nReg : Str -> Gender -> N ; -- regular, e.g. maison, (maisons,) feminine
nEau : Str -> Gender -> N ; -- eau, (eaux,) feminine
nCas : Str -> Gender -> N ; -- cas, (cas,) masculine
nCheval : Str -> N ; -- cheval, (chevaux, masculine)
</pre>
Nouns used as functions need a case and a preposition. The most common is <i>de</i>.
<pre>
funPrep : N -> Preposition -> Fun ;
funCase : N -> Case -> Fun ;
funDe : N -> Fun ;
</pre>
Proper names, with their gender.
<pre>
mkPN : Str -> Gender -> PN ; -- Jean, masculine
</pre>
On the top level, it is maybe <tt>CN</tt> that is used rather than <tt>N</tt>, and
<tt>NP</tt> rather than <tt>PN</tt>.
<pre>
mkCN : N -> CN ;
mkNP : Str -> Gender -> NP ;
</pre>
<h2> Adjectives</h2>
Non-comparison one-place adjectives need three forms in the worst case.
A parameter tells if they are pre- or postpositions in modification.
<pre>
Position : Type ;
prepos : Position ;
postpos : Position ;
mkAdj1 : (bon, bonne, bons, bien : Str) -> Position -> Adj1 ;
</pre>
Usually it is enough to give the two singular forms. Fully regular adjectives
only need the masculine singular form.
<pre>
adj1Reg : Str -> Position -> Adj1 ;
adj1Cher : (cher, chère : Str) -> Position -> Adj1 ;
</pre>
Two-place adjectives need a preposition and a case as extra arguments.
<pre>
mkAdj2 : Adj1 -> Preposition -> Case -> Adj2 ; -- divisible par
</pre>
Comparison adjectives may need two adjectives, corresponding to the
positive and other forms.
<pre>
mkAdjDeg : (bon, meilleur : Adj1) -> AdjDeg ;
</pre>
In the completely regular case, the comparison forms are constructed by
the particle <i>plus</i>.
<pre>
aReg : Str -> Position -> AdjDeg ; -- lent (, plus lent)
</pre>
On top level, there are adjectival phrases. The most common case is
just to use a one-place adjective.
<pre>
apReg : Str -> Position -> AP ;
</pre>
<h2> Verbs</h2>
<p>
The fragment only has present tense so far, but in all persons.
These are examples of standard conjugations are available. The full list
of Bescherelle conjugations is given in <tt>MorphoFra.gf</tt>, with all forms
(their type is <tt>Verbum</tt>). The present-tense forms can be extracted by the
function <tt>extractVerb</tt>.
<pre>
vAimer : Str -> V ;
vFinir : Str -> V ;
vDormir : Str -> V ;
vCourir : Str -> V ;
vVenir : Str -> V ;
extractVerb : Verbum -> V ;
</pre>
The verbs 'be' and 'have' are special.
<pre>
vEtre : V ;
vAvoir : V ;
</pre>
Two-place verbs, and the special case with direct object. Notice that
a particle can be included in a <tt>V</tt>.
<pre>
mkTV : V -> Preposition -> Case -> TV ;
tvDir : V -> TV ;
</pre>
The idiom with <i>avoir</i> and an invariable noun, such as <i>peur</i>, <i>faim</i>,
and a two-place variant with <i>de</i> + complement.
<pre>
avoirChose : Str -> V ;
avoirChoseDe : Str -> TV ;
</pre>
The definitions should not bother the user of the API. So they are
hidden from the document.
</body>
</html>

View File

@@ -0,0 +1,273 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
# -path=.:../abstract:../../prelude
<h1> German Lexical Paradigms</h1>
<p>
Aarne Ranta 2003
<p>
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>Resource.gf</tt>.
Their original typings via abstract syntax are in
<tt>Structural.gf</tt>, which also contains documentation.
<p>
The main difference with <tt>MorphoGer.gf</tt> is that the types
referred to are compiled resource grammar types. We have moreover
had the design principle of always having existing forms, not stems, as string
arguments of the paradigms.
<p>
The following modules are presupposed:
<pre>
resource ParadigmsGer =
open Prelude, (Morpho=MorphoGer), SyntaxGer, ResourceGer in {
</pre>
<h2> Parameters </h2>
<p>
To abstract over gender names, we define the following identifiers.
<pre>
oper
masculine : Gender ;
feminine : Gender ;
neuter : Gender ;
</pre>
To abstract over case names, we define the following.
<pre>
nominative : Case ;
accusative : Case ;
dative : Case ;
genitive : Case ;
</pre>
To abstract over number names, we define the following.
<pre>
singular : Number ;
plural : Number ;
</pre>
<h2> Nouns</h2>
Worst case: give all four singular forms, two plural forms (others + dative),
and the gender.
<pre>
mkN : (_,_,_,_,_,_ : Str) -> Gender -> N ;
-- mann, mann, manne, mannes, männer, männern
</pre>
Often it is enough with singular and plural nominatives, and singular
genitive. The plural dative
is computed by the heuristic that it is the same as the nominative this
ends with <i>n</i> or <i>s</i>, otherwise <i>n</i> is added.
<pre>
nGen : Str -> Str -> Str -> Gender -> N ; -- punkt,punktes,punkt
</pre>
Here are some common patterns. Singular nominative or two nominatives are needed.
Two forms are needed in case of Umlaut, which would be complicated to define.
For the same reason, we have separate patterns for multisyllable stems.
The weak masculine pattern <tt>nSoldat</tt> avoids duplicating the final <i>e</i>.
<pre>
nRaum : (_,_ : Str) -> N ; -- Raum, (Raumes,) Räume (masc)
nTisch : Str -> N ; -- Tisch, (Tisches, Tische) (masc)
nVater : (_,_ : Str) -> N ; -- Vater, (Vaters,) Väter (masc)
nFehler : Str -> N ; -- Fehler, (fehlers, Fehler) (masc)
nSoldat : Str -> N ; -- Soldat (, Soldaten) ; Kunde (, Kunden) (masc)
</pre>
Neuter patterns.
<pre>
nBuch : (_,_ : Str) -> N ; -- Buch, (Buches, Bücher) (neut)
nMesser : Str -> N ; -- Messer, (Messers, Messer) (neut)
nAuto : Str -> N ; -- Auto, (Autos, Autos) (neut)
</pre>
Feminine patterns. Duplicated <i>e</i> is avoided in <tt>nFrau</tt>.
<pre>
nHand : (_,_ : Str) -> N ; -- Hand, Hände; Mutter, Mütter (fem)
nFrau : Str -> N ; -- Frau (, Frauen) ; Wiese (, Wiesen) (fem)
</pre>
Nouns used as functions need a preposition. The most common is <i>von</i>.
<pre>
mkFun : N -> Preposition -> Case -> Fun ;
funVon : N -> Fun ;
</pre>
Proper names, with their possibly
irregular genitive. The regular genitive is <i>s</i>, omitted after <i>s</i>.
<pre>
mkPN : (karolus, karoli : Str) -> PN ; -- karolus, karoli
pnReg : (Johann : Str) -> PN ; -- Johann, Johanns ; Johannes, Johannes
</pre>
On the top level, it is maybe <tt>CN</tt> that is used rather than <tt>N</tt>, and
<tt>NP</tt> rather than <tt>PN</tt>.
<pre>
mkCN : N -> CN ;
mkNP : (karolus,karoli : Str) -> NP ;
npReg : Str -> NP ; -- Johann, Johanns
</pre>
In some cases, you may want to make a complex <tt>CN</tt> into a function.
<pre>
mkFunCN : CN -> Preposition -> Case -> Fun ;
funVonCN : CN -> Fun ;
</pre>
<h2> Adjectives</h2>
Non-comparison one-place adjectives need two forms in the worst case:
the one in predication and the one before the ending <i>e</i>.
<pre>
mkAdj1 : (teuer,teur : Str) -> Adj1 ;
</pre>
Invariable adjective are a special case.
<pre>
adjInvar : Str -> Adj1 ; -- prima
</pre>
The following heuristic recognizes the the end of the word, and builds
the second form depending on if it is <i>e</i>, <i>er</i>, or something else.
N.B. a contraction is made with <i>er</i>, which works for <i>teuer</i> but not
for <i>bitter</i>.
<pre>
adjGen : Str -> Adj1 ; -- gut; teuer; böse
</pre>
Two-place adjectives need a preposition and a case as extra arguments.
<pre>
mkAdj2 : Adj1 -> Str -> Case -> Adj2 ; -- teilbar, durch, acc
</pre>
Comparison adjectives may need three adjective, corresponding to the
three comparison forms.
<pre>
mkAdjDeg : (gut,besser,best : Adj1) -> AdjDeg ;
</pre>
In many cases, each of these adjectives is itself regular. Then we only
need three strings. Notice that contraction with <i>er</i> is not performed
(<i>bessere</i>, not <i>bessre</i>).
<pre>
aDeg3 : (gut,besser,best : Str) -> AdjDeg ;
</pre>
In the completely regular case, the comparison forms are constructed by
the endings <i>er</i> and <i>st</i>.
<pre>
aReg : Str -> AdjDeg ; -- billig, billiger, billigst
</pre>
The past participle of a verb can be used as an adjective.
<pre>
aPastPart : V -> Adj1 ; -- gefangen
</pre>
On top level, there are adjectival phrases. The most common case is
just to use a one-place adjective. The variation in <tt>adjGen</tt> is taken
into account.
<pre>
apReg : Str -> AP ;
</pre>
<h2> Verbs</h2>
<p>
The fragment only has present tense so far, but in all persons.
It also has the infinitive and the past participles.
The worst case macro needs four forms: : the infinitive and
the third person singular (where Umlaut may occur), the singular imperative,
and the past participle.
The function recognizes if the stem ends with <i>s</i> or <i>t</i> and performs the
appropriate contractions.
<pre>
mkV : (_,_,_,_ : Str) -> V ; -- geben, gibt, gib, gegeben
</pre>
Regular verbs are those where no Umlaut occurs.
<pre>
vReg : Str -> V ; -- führen
</pre>
The verbs 'be' and 'have' are special.
<pre>
vSein : V ;
vHaben : V ;
</pre>
Some irregular verbs.
<pre>
vFahren : V ;
</pre>
Verbs with a detachable particle, with regular ones as a special case.
<pre>
vPart : (_,_,_,_,_ : Str) -> V ; -- sehen, sieht, sieh, gesehen, aus
vPartReg : (_,_ : Str) -> V ; -- bringen, um
mkVPart : V -> Str -> V ; -- vFahren, aus
</pre>
Two-place verbs, and the special case with direct object. Notice that
a particle can be included in a <tt>V</tt>.
<pre>
mkTV : V -> Str -> Case -> TV ; -- hören, zu, dative
tvReg : Str -> Str -> Case -> TV ; -- hören, zu, dative
tvDir : V -> TV ; -- umbringen
tvDirReg : Str -> TV ; -- lieben
</pre>
Three-place verbs require two prepositions and cases.
<pre>
mkV3 : V -> Str -> Case -> Str -> Case -> V3 ; -- geben,[],dative,[],accusative
</pre>
Sentence-complement verbs are just verbs.
<pre>
mkVS : V -> VS ;
</pre>
Verb-complement verbs either need the <i>zu</i> particle or don't.
The ones that don't are usually auxiliary verbs.
<pre>
vsAux : V -> VV ;
vsZu : V -> VV ;
</pre>
<h2> Adverbials</h2>
<p>
Adverbials for modifying verbs, adjectives, and sentences can be formed
from strings.
<pre>
mkAdV : Str -> AdV ;
mkAdA : Str -> AdA ;
mkAdS : Str -> AdS ;
</pre>
Prepositional phrases are another productive form of adverbials.
<pre>
mkPP : Case -> Str -> NP -> AdV ;
</pre>
One can also use the function <tt>ResourceGer.PrepNP</tt> with one of the given
prepositions or a preposition formed by giving a string and a case:
<pre>
mkPrep : Str -> Case -> Prep ;
</pre>
The definitions should not bother the user of the API. So they are
hidden from the document.
</body>
</html>

View File

@@ -0,0 +1,192 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
# -path=.:../romance:../abstract:../../prelude
<h1> Italian Lexical Paradigms</h1>
<p>
Aarne Ranta 2003
<p>
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>resource.Abs.gf</tt>.
<p>
The main difference with <tt>MorphoIta.gf</tt> is that the types
referred to are compiled resource grammar types. We have moreover
had the design principle of always having existing forms, not stems, as string
arguments of the paradigms.
<p>
The following modules are presupposed:
<pre>
resource ParadigmsIta =
open Prelude, (Types = TypesIta), SyntaxIta, MorphoIta,
ResourceIta in {
</pre>
<h2> Parameters </h2>
<p>
To abstract over gender names, we define the following identifiers.
<pre>
oper
masculine : Gender ;
feminine : Gender ;
</pre>
To abstract over number names, we define the following.
<pre>
singular : Number ;
plural : Number ;
</pre>
To abstract over case names, we define the following. (Except for
some pronouns, the accusative is equal to the nominative, the
dative is formed by the preposition <i>a</i>, and the genitive by the
preposition <i>di</i>.)
<pre>
nominative : Case ;
accusative : Case ;
dative : Case ;
genitive : Case ;
prep_a : Case ;
prep_di : Case ;
prep_da : Case ;
prep_in : Case ;
prep_su : Case ;
prep_con : Case ;
</pre>
<h2> Nouns</h2>
Worst case: two forms (singular + plural),
and the gender.
<pre>
mkN : (_,_ : Str) -> Gender -> N ; -- uomo, uomini, masculine
</pre>
Often it is enough with one form. If it ends with
<i>o</i> or <i>a</i>, no gender is needed; if with something else,
the gender must be given.
<pre>
nVino : Str -> N ; -- vino (, vini, masculine)
nRana : Str -> N ; -- rana (, rane, feminine)
nSale : Str -> Gender -> N ; -- sale (, sali), masculine
nTram : Str -> Gender -> N ; -- tram (, tram), masculine
</pre>
Nouns used as functions need a case and a preposition. The most common is <i>di</i>.
Recall that the prepositions <i>a</i>, <i>di</i>, <i>da</i>, <i>in</i>, <i>su</i>, <i>con</i> are treated
as part of the case (cf. above).
<pre>
funPrep : N -> Preposition -> Fun ;
funCase : N -> Case -> Fun ;
funDi : N -> Fun ;
</pre>
Proper names, with their gender.
<pre>
mkPN : Str -> Gender -> PN ; -- Giovanni, masculine
</pre>
On the top level, it is maybe <tt>CN</tt> that is used rather than <tt>N</tt>, and
<tt>NP</tt> rather than <tt>PN</tt>.
<pre>
mkCN : N -> CN ;
mkNP : Str -> Gender -> NP ;
</pre>
<h2> Adjectives</h2>
Non-comparison one-place adjectives need four forms in the worst case.
A parameter tells if they are pre- or postpositions in modification.
<pre>
Position : Type ;
prepos : Position ;
postpos : Position ;
mkAdj1 : (solo,sola,soli,sole,solamente : Str) -> Position -> Adj1 ;
</pre>
Adjectives ending with <i>o</i> and <i>e</i>, and invariable adjectives,
are the most important regular patterns.
<pre>
adj1Solo : (solo : Str) -> Bool -> Adj1 ;
adj1Tale : (tale : Str) -> Bool -> Adj1 ;
adj1Blu : (blu : Str) -> Bool -> Adj1 ;
</pre>
Two-place adjectives need a preposition and a case as extra arguments.
<pre>
mkAdj2 : Adj1 -> Preposition -> Case -> Adj2 ; -- divisibile per
</pre>
Comparison adjectives may need two adjectives, corresponding to the
positive and other forms.
<pre>
mkAdjDeg : (buono, migliore : Adj1) -> AdjDeg ;
</pre>
In the completely regular case, the comparison forms are constructed by
the particle <i>più</i>.
<pre>
aSolo : Str -> Position -> AdjDeg ; -- lento (, più lento)
aTale : Str -> Position -> AdjDeg ; -- grave (, più grave)
aBlu : Str -> Position -> AdjDeg ; -- blu (, più blu)
</pre>
On top level, there are adjectival phrases. The most common case is
just to use a one-place adjective.
<pre>
apSolo : Str -> Position -> AP ;
apTale : Str -> Position -> AP ;
apBlu : Str -> Position -> AP ;
</pre>
<h2> Verbs</h2>
<p>
The fragment only has present tense so far, but in all persons.
The worst case needs nine forms (and is not very user-friendly).
<pre>
mkV : (_,_,_,_,_,_,_,_,_ : Str) -> V ;
</pre>
These are examples of standard conjugations. Other conjugations
can be extracted from the Italian functional morphology, which has full
<i>Bescherelle</i> tables.
<pre>
vAmare : Str -> V ;
vDormire : Str -> V ;
vFinire : Str -> V ;
vCorrere : (_,_ : Str) -> V ;
</pre>
The verbs 'be' and 'have' are special.
<pre>
vEssere : V ;
vAvere : V ;
</pre>
Two-place verbs, and the special case with direct object. Notice that
a particle can be included in a <tt>V</tt>.
<pre>
mkTV : V -> Preposition -> Case -> TV ;
tvDir : V -> TV ;
</pre>
The idiom with <i>avere</i> and an invariable noun, such as <i>paura</i>, <i>fame</i>,
and a two-place variant with <i>di</i> + complement.
<pre>
averCosa : Str -> V ;
averCosaDi : Str -> TV ;
</pre>
The definitions should not bother the user of the API. So they are
hidden from the document.
</body>
</html>

View File

@@ -0,0 +1,238 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
# -path=.:../abstract:../../prelude
<h1> Russian Lexical Paradigms
</h1>
Aarne Ranta, Janna Khegai 2003
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>resource.Abs.gf</tt>.
The following files are presupposed:
<pre>
resource ParadigmsRus = open (Predef=Predef), Prelude, SyntaxRus, ResourceRus in {
flags coding=utf8 ;
</pre>
<h2> Parameters
</h2>
To abstract over gender names, we define the following identifiers.
<pre>
oper
masculine : Gender ;
feminine : Gender ;
neuter : Gender ;
</pre>
To abstract over case names, we define the following.
<pre>
nominative : Case ;
genitive : Case ;
dative : Case ;
accusative : Case ;
instructive : Case ;
prepositional : Case ;
</pre>
In some (written in English) textbooks accusative case
is put on the second place. However, we follow the case order
standard for Russian textbooks.
To abstract over number names, we define the following.
<pre>
singular : Number ;
plural : Number ;
</pre>
<h2> Nouns
</h2>
Best case: indeclinabe nouns: <i>кофе</i>, <i>пальто</i>, <i>ВУЗ</i>.
<pre>
mkIndeclinableNoun: Str -> Gender -> Animacy -> N ;
</pre>
Worst case - give six singular forms:
Nominative, Genetive, Dative, Accusative, Instructive and Prepositional;
corresponding six plural forms and the gender.
May be the number of forms needed can be reduced,
but this requires a separate investigation.
Animacy parameter (determining whether the Accusative form is equal
to the Nominative or the Genetive one) is actually of no help,
since there are a lot of exceptions and the gain is just one form less.
<pre>
mkN : (_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Animacy -> N ;
-- мужчина, мужчины, мужчине, мужчину, мужчиной, мужчине
-- мужчины, мужчин, мужчинам, мужчин, мужчинами, мужчинах
</pre>
Here are some common patterns. The list is far from complete.
Feminine patterns.
<pre>
nMashina : Str -> N ; -- feminine, inanimate, ending with "-а", Inst -"машин-ой"
nEdinica : Str -> N ; -- feminine, inanimate, ending with "-а", Inst -"единиц-ей"
nZhenchina : Str -> N ; -- feminine, animate, ending with "-a"
nNoga : Str -> N ; -- feminine, inanimate, ending with "г_к_х-a"
nMalyariya : Str -> N ; -- feminine, inanimate, ending with "-ия"
nTetya : Str -> N ; -- feminine, animate, ending with "-я"
nBol : Str -> N ; -- feminine, inanimate, ending with "-ь"(soft sign)
</pre>
Neuter patterns.
<pre>
nObezbolivauchee : Str -> N ; -- neutral, inanimate, ending with "-ee"
nProizvedenie : Str -> N ; -- neutral, inanimate, ending with "-e"
nChislo : Str -> N ; -- neutral, inanimate, ending with "-o"
</pre>
Masculine patterns.
<pre>
nStomatolog : Str -> N ; -- masculine, animate, ending with consonant
-- the next two differ only in
-- plural nominative (= accusative) form(s) :
nAdres : Str -> N ; -- адрес-а
nTelefon : Str -> N ; -- телефон-ы
-- masculine, inanimate, ending with consonant
nNol : Str -> N ; -- masculine, inanimate, ending with "-ь" (soft sign)
nUroven : Str -> N ; -- masculine, inanimate, ending with "-ень"
</pre>
Nouns used as functions need a preposition. The most common is with Genitive.
<pre>
mkFun : N -> Preposition -> Case -> Fun ;
funGen : N -> Fun ;
</pre>
Proper names.
<pre>
mkPN : Str -> Gender -> Animacy -> PN ; -- "Иван", "Маша"
</pre>
On the top level, it is maybe <tt>CN</tt> that is used rather than <tt>N</tt>, and
<tt>NP</tt> rather than <tt>PN</tt>.
<pre>
mkCN : N -> CN ;
mkNP : Str -> Gender -> Animacy -> NP ;
</pre>
<h2> Adjectives
</h2>
Non-comparison (only positive degree) one-place adjectives need 28 (4 by 7)
forms in the worst case:
Masculine | Feminine | Neutral | Plural
Nominative
Genitive
Dative
Accusative Inanimate
Accusative Animate
Instructive
Prepositional
Notice that 4 short forms, which exist for some adjectives are not included
in the current description, otherwise there would be 32 forms for
positive degree.
mkAdj1 : ( : Str) -> Adj1 ;
Invariable adjective is a special case.
<pre>
adjInvar : Str -> Adj1 ; -- khaki, mini, hindi, netto
</pre>
Some regular patterns depending on the ending.
<pre>
adj1Staruyj : Str -> Adj1 ; -- ending with "-ый"
adj1Malenkij : Str -> Adj1 ; -- endign with "-ий"
adj1Molodoj : Str -> Adj1 ; -- ending with "-ой",
-- plural - молод-ые"
adj1Kakoj_Nibud : Str -> Str -> Adj1 ; -- ending with "-ой",
-- plural - "как-ие"
</pre>
Two-place adjectives need a preposition and a case as extra arguments.
<pre>
mkAdj2 : Adj1 -> Str -> Case -> Adj2 ; -- "делим на"
</pre>
Comparison adjectives need a positive adjective
(28 forms without short forms).
Taking only one comparative form (non-syntaxic) and
only one superlative form (syntaxic) we can produce the
comparison adjective with only one extra argument -
non-syntaxic comparative form.
Syntaxic forms are based on the positive forms.
<pre>
mkAdjDeg : Adj1 -> Str -> AdjDeg ;
</pre>
On top level, there are adjectival phrases. The most common case is
just to use a one-place adjective.
<pre>
ap : Adj1 -> IsPostfixAdj -> AP ;
</pre>
<h2> Verbs
</h2>
In our lexicon description (<i>Verbum</i>) there are 62 forms:
2 (Voice) by { 1 (infinitive) + [2(number) by 3 (person)](imperative) +
[ [2(Number) by 3(Person)](present) + [2(Number) by 3(Person)](future) +
4(GenNum)(past) ](indicative)+ 4 (GenNum) (subjunctive) }
Participles (Present and Past) and Gerund forms are not included,
since they fuction more like Adjectives and Adverbs correspondingly
rather than verbs. Aspect regarded as an inherent parameter of a verb.
Notice, that some forms are never used for some verbs. Actually,
the majority of verbs do not have many of the forms.
The worst case need 6 forms of the present tense in indicative mood
(<i>я бегу</i>, <i>ты бежишь</i>, <i>он бежит</i>, <i>мы бежим</i>, <i>вы бежите</i>, <i>они бегут</i>),
a past form (singular, masculine: <i>я бежал</i>), an imperative form
(singular, second person: <i>беги</i>), an infinitive (<i>бежать</i>).
Inherent aspect should also be specified.
<pre>
mkVerbum : Aspect -> (_,_,_,_,_,_,_,_,_ : Str) -> Verbum ;
</pre>
Common conjugation patterns are two conjugations:
first - verbs ending with <i>-ать/-ять</i> and second - <i>-ить/-еть</i>.
Instead of 6 present forms of the worst case, we only need
a present stem and one ending (singular, first person):
<i>я люб-лю</i>, <i>я жд-у</i>, etc. To determine where the border
between stem and ending lies it is sufficient to compare
first person from with second person form:
<i>я люб-лю</i>, <i>ты люб-ишь</i>. Stems shoud be the same.
So the definition for verb <i>любить</i> looks like:
mkRegVerb Imperfective Second <i>люб</i> <i>лю</i> <i>любил</i> <i>люби</i> <i>любить</i>;
<pre>
mkRegVerb :Aspect -> Conjugation -> (_,_,_,_,_ : Str) -> Verbum ;
</pre>
For writing an application grammar one usualy doesn't need
the whole inflection table, since each verb is used in
a particular context that determines some of the parameters
(Tense and Voice while Aspect is fixed from the beginning) for certain usage.
The <i>V</i> type, that have these parameters fixed.
We can extract the <i>V</i> from the lexicon.
<pre>
mkV: Verbum -> Voice -> Tense -> V ;
mkPresentV: Verbum -> Voice -> V ;
</pre>
Two-place verbs, and the special case with direct object. Notice that
a particle can be included in a <tt>V</tt>.
<pre>
mkTV : V -> Str -> Case -> TV ; -- "войти в дом"; "в", accusative
tvDir : V -> TV ; -- "видеть", "любить"
</pre>

View File

@@ -0,0 +1,217 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
# -path=.:../abstract:../../prelude
<h1> Swedish Lexical Paradigms</h1>
<p>
Aarne Ranta 2003
<p>
This is an API to the user of the resource grammar
for adding lexical items. It give shortcuts for forming
expressions of basic categories: nouns, adjectives, verbs.
Closed categories (determiners, pronouns, conjunctions) are
accessed through the resource syntax API, <tt>Structural.gf</tt>.
<p>
The main difference with <tt>MorphoSwe.gf</tt> is that the types
referred to are compiled resource grammar types. We have moreover
had the design principle of always having existing forms, not stems, as string
arguments of the paradigms.
<p>
The following modules are presupposed:
<pre>
resource ParadigmsSwe = open (Predef=Predef), Prelude, SyntaxSwe, ResourceSwe in {
</pre>
<h2> Parameters </h2>
<p>
To abstract over gender names, we define the following identifiers.
<pre>
oper
utrum : Gender ;
neutrum : Gender ;
masculine : Sex ;
nonmasculine : Sex ;
</pre>
To abstract over case names, we define the following.
<pre>
nominative : Case ;
genitive : Case ;
</pre>
To abstract over number names, we define the following.
<pre>
singular : Number ;
plural : Number ;
</pre>
<h2> Nouns</h2>
Worst case: give all nominative forms and the gender.
The genitive is formed automatically, even when the nominative
ends with an <i>s</i>.
<pre>
mkN : (_,_,_,_ : Str) -> Gender -> Sex -> N ;
-- man, mannen, män, männen
</pre>
Here are some common patterns, corresponding to school-gramamr declensions.
Except <tt>nPojke</tt>, <tt>nKarl</tt>, and <tt>nMurare</tt>,
they are defined to be <tt>nonmasculine</tt>, which means that they don't create
the definite adjective form with <i>e</i> but with <i>a</i>.
<pre>
nApa : Str -> N ; -- apa (apan, apor, aporna) ; utrum
nBil : Str -> N ; -- bil (bilen, bilar, bilarna) ; utrum
nKarl : Str -> N ; -- karl (karlen, karlar, karlarna) ; utrum ; masculine
nPojke : Str -> N ; -- pojke (pojken, pojkar, pojkarna) ; utrum ; masculine
nNyckel : Str -> N ; -- nyckel (nyckeln, nycklar, nycklarna) ; utrum
nRisk : Str -> N ; -- risk (risken, risker, riskerna) ; utrum
nDike : Str -> N ; -- dike (diket, diken, dikena) ; neutrum
nRep : Str -> N ; -- rep (repet, rep, repen) ; neutrum
nPapper : Str -> N ; -- papper (pappret, papper, pappren) ; neutrum
nMurare : Str -> N ; -- murare (muraren, murare, murarna) ; utrum ; masculine
nKikare : Str -> N ; -- kikare (kikaren, kikare, kikarna) ; utrum
</pre>
Nouns used as functions need a preposition. The most common ones are <i>av</i>,
<i></i>, and <i>till</i>. A preposition is a string.
<pre>
mkFun : N -> Str -> Fun ;
funAv : N -> Fun ;
funPaa : N -> Fun ;
funTill : N -> Fun ;
</pre>
Proper names, with their possibly
irregular genitive. The regular genitive is <i>s</i>, omitted after <i>s</i>.
<pre>
mkPN : (_,_ : Str) -> Gender -> Sex -> PN ; -- Karolus, Karoli
pnReg : Str -> Gender -> Sex -> PN ; -- Johan,Johans ; Johannes, Johannes
pnS : Str -> Gender -> Sex -> PN ; -- "Burger King(s)"
</pre>
On the top level, it is maybe <tt>CN</tt> that is used rather than <tt>N</tt>, and
<tt>NP</tt> rather than <tt>PN</tt>.
<pre>
mkCN : N -> CN ;
mkNP : (Karolus, Karoli : Str) -> Gender -> NP ;
npReg : Str -> Gender -> NP ; -- Johann, Johanns
</pre>
<h2> Adjectives</h2>
Non-comparison one-place adjectives need four forms in the worst case:
strong singular, weak singular, plural.
<pre>
mkAdj1 : (_,_,_,_ : Str) -> Adj1 ; -- liten, litet, lilla, små
</pre>
Special cases needing one form each are: regular adjectives,
adjectives with unstressed <i>e</i> in the last syllable, those
ending with <i>n</i> as a further special case, and invariable
adjectives.
<pre>
adjReg : Str -> Adj1 ; -- billig (billigt, billiga, billiga)
adjNykter : Str -> Adj1 ; -- nykter (nyktert, nyktra, nyktra)
adjGalen : Str -> Adj1 ; -- galen (galet, galna, galna)
adjInvar : Str -> Adj1 ; -- bra
</pre>
Two-place adjectives need a preposition and a case as extra arguments.
<pre>
mkAdj2 : Adj1 -> Str -> Adj2 ; -- delbar, med
mkAdj2Reg : Str -> Str -> Adj2 ; --
</pre>
Comparison adjectives may need the three four forms for the positive case, plus
three more forms for the comparison cases.
<pre>
mkAdjDeg : (liten, litet, lilla, sma, mindre, minst, minsta : Str) -> AdjDeg ;
</pre>
Some comparison adjectives are completely regular.
<pre>
aReg : Str -> AdjDeg ;
</pre>
On top level, there are adjectival phrases. The most common case is
just to use a one-place adjective. The variation in <tt>adjGen</tt> is taken
into account.
<pre>
apReg : Str -> AP ;
</pre>
<h2> Adverbs</h2>
Adverbs are not inflected. Most lexical ones have position not
before the verb. Some can be preverbal (e.g. <i>alltid</i>).
<pre>
mkAdv : Str -> AdV ;
mkAdvPre : Str -> AdV ;
</pre>
Adverbs modifying adjectives and sentences can also be formed.
<pre>
mkAdA : Str -> AdA ;
mkAdS : Str -> AdS ;
</pre>
Prepositional phrases are another productive form of adverbials.
<pre>
mkPP : Str -> NP -> AdV ;
</pre>
<h2> Verbs</h2>
<p>
The fragment only has present tense so far.
The worst case needs three forms: the infinitive, the indicative, and the
imperative.
<pre>
mkV : (_,_,_ : Str) -> V ; -- vara, är, var; trivas, trivs, trivs
</pre>
The main conjugations need one string each.
<pre>
vKoka : Str -> V ; -- tala (talar, tala)
vSteka : Str -> V ; -- leka (leker, lek)
vBo : Str -> V ; -- bo (bor, bo)
vAndas : Str -> V ; -- andas [all forms the same: also "slåss"]
vTrivas : Str -> V ; -- trivas (trivs, trivs)
</pre>
The verbs 'be' and 'have' are special.
<pre>
vVara : V ;
vHa : V ;
</pre>
Particle verbs are formed by putting together a verb and a particle.
If the verb already has a particle, it is replaced by the new one.
<pre>
mkPartV : V -> Str -> V ; -- stänga av ;
</pre>
Two-place verbs, and the special case with direct object.
<pre>
mkTV : V -> Str -> TV ; -- tycka, om
tvDir : V -> TV ; -- gilla
</pre>
Ditransitive verbs.
<pre>
mkV3 : V -> Str -> Str -> V3 ; -- prata, med, om
v3Dir : V -> Str -> V3 ; -- ge,_,till
v3DirDir : V -> V3 ; -- ge,_,_
</pre>
The definitions should not bother the user of the API. So they are
hidden from the document.
</body>
</html>

View File

@@ -0,0 +1,106 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1></h1>
<h1> A Small Predication Library</h1>
<p>
(c) Aarne Ranta 2003 under Gnu GPL.
<p>
This library is built on a language-independent API of
resource grammars. It has a common part, the type signatures
(defined here), and language-dependent parts. The user of
the library should only have to look at the type signatures.
<pre>
incomplete resource Predication = open Resource, ResourceExt in {
</pre>
We first define a set of predication patterns.
<pre>
oper
predV1 : V -> NP -> S ; -- one-place verb: "John walks"
predV2 : TV -> NP -> NP -> S ; -- two-place verb: "John loves Mary"
predV3 : V3 -> NP -> NP -> NP -> S ;-- three-place verb: "John prefers Mary to Jane"
predVColl : V -> NP -> NP -> S ; -- collective verb: "John and Mary fight"
predA1 : Adj1 -> NP -> S ; -- one-place adjective: "John is old"
predA2 : Adj2 -> NP -> NP -> S ; -- two-place adj: "John is married to Mary"
predAComp : AdjDeg -> NP -> NP -> S ; -- compar adj: "John is older than Mary"
predAColl : Adj1 -> NP -> NP -> S ; -- collective adj: "John and Mary are married"
predN1 : N -> NP -> S ; -- one-place noun: "John is a man"
predN2 : Fun -> NP -> NP -> S ; -- two-place noun: "John is a lover of Mary"
predNColl : N -> NP -> NP -> S ; -- collective noun: "John and Mary are lovers"
predAdv : AdV -> NP -> S ; -- adverb: "Joh is outside"
</pre>
Individual-valued function applications.
<pre>
appFun1 : Fun -> NP -> NP ; -- one-place function: "the successor of x"
appFun2 : Fun2 -> NP -> NP -> NP ; -- two-place function: "the distance from x to y"
appFunColl : Fun -> NP -> NP -> NP ; -- collective function: "the sum of x and y"
</pre>
Families of types, expressed by common nouns depending on arguments.
<pre>
appFam1 : Fun -> NP -> CN ; -- one-place family: "divisor of x"
appFamColl : Fun -> NP -> NP -> CN ; -- collective family: "path between x and y"
</pre>
Type constructor, similar to a family except that the argument is a type.
<pre>
constrTyp1 : Fun -> CN -> CN ;
</pre>
Logical connectives on two sentences.
<pre>
conjS : S -> S -> S ;
disjS : S -> S -> S ;
implS : S -> S -> S ;
</pre>
As an auxiliary, we need two-place conjunction of names (<i>John and Mary</i>),
used in collective predication.
<pre>
conjNP : NP -> NP -> NP ;
</pre>
---------------------------
-- what follows should be an implementation of the preceding
<pre>
oper
predV1 = \F, x -> PredVP x (PosV F) ;
predV2 = \F, x, y -> PredVP x (PosTV F y) ;
predV3 = \F, x, y, z -> PredVP x (PosVG (PredV3 F y z)) ;
predVColl = \F, x, y -> PredVP (conjNP x y) (PosV F) ;
predA1 = \F, x -> PredVP x (PosA (AdjP1 F)) ;
predA2 = \F, x, y -> PredVP x (PosA (ComplAdj F y)) ;
predAComp = \F, x, y -> PredVP x (PosA (ComparAdjP F y)) ;
predAColl = \F, x, y -> PredVP (conjNP x y) (PosA (AdjP1 F)) ;
predN1 = \F, x -> PredVP x (PosCN (UseN F)) ;
predN2 = \F, x, y -> PredVP x (PosCN (AppFun F y)) ;
predNColl = \F, x, y -> PredVP (conjNP x y) (PosCN (UseN F)) ;
predAdv = \F, x -> PredVP x (PosVG (PredAdV F)) ;
appFun1 = \f, x -> DefOneNP (AppFun f x) ;
appFun2 = \f, x, y -> DefOneNP (AppFun (AppFun2 f y) x) ;
appFunColl = \f, x, y -> DefOneNP (AppFun f (conjNP x y)) ;
appFam1 = \F, x -> AppFun F x ;
appFamColl = \F, x, y -> AppFun F (conjNP x y) ;
conjS = \A, B -> ConjS AndConj (TwoS A B) ;
disjS = \A, B -> ConjS OrConj (TwoS A B) ;
implS = \A, B -> SubjS IfSubj A B ;
constrTyp1 = \F, A -> AppFun F (IndefManyNP A) ;
conjNP = \x, y -> ConjNP AndConj (TwoNP x y) ;
} ;
</pre>
</body>
</html>

View File

@@ -0,0 +1,114 @@
<html>
<body>
<i> Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
</i>
<p>
<h1> GF Resource Grammar API for Structural Words</h1>
AR 21/11/2003
<p>
Here we have some words belonging to closed classes and appearing
in all languages we have considered.
Sometimes they are not really meaningful, e.g. <tt>TheyNP</tt> in French
should really be replaced by masculine and feminine variants.
<pre>
abstract Structural = Combinations ** {
fun
</pre>
<p>
<!-- NEW -->
<h2> Determiners and noun phrases</h2>
<p>
Many plural determiners can take a numeral modifier. So can the plural
pronouns <i>we</i> and <i>you</i>.
<pre>
EveryDet, WhichDet, AllMassDet, -- every, sg which, sg all
SomeDet, AnyDet, NoDet, -- sg some, any, no
MostDet, MostsDet, ManyDet, MuchDet : Det ; -- sg most, pl most, many, much
ThisDet, ThatDet : Det ; -- this, that
AllNumDet, WhichNumDet, -- pl all, which (86)
SomeNumDet, AnyNumDet, NoNumDet, -- pl some, any, no
TheseNumDet, ThoseNumDet : Num -> Det ; -- these, those (86)
ThisNP, ThatNP : NP ; -- this, that
TheseNumNP, ThoseNumNP : Num -> NP ; -- these, those (86)
INP, ThouNP, HeNP, SheNP, ItNP : NP ; -- personal pronouns in singular
WeNumNP, YeNumNP : Num -> NP ; -- these pronouns can take numeral
TheyNP : NP ; YouNP : NP ; -- they, the polite you
EverybodyNP, SomebodyNP, NobodyNP, -- everybody, somebody, nobody
EverythingNP, SomethingNP, NothingNP : NP ; -- everything, something, nothing
</pre>
<p>
<!-- NEW -->
<h2> Auxiliary verbs</h2>
<p>
Depending on language, all, some, or none of there verbs belong to
a separate class of <b>auxiliary</b> verbs. The list is incomplete.
<pre>
CanVV, CanKnowVV, MustVV : VV ; -- can (pouvoir,savoir), must
WantVV : VV ; -- want (to do)
</pre>
<p>
<!-- NEW -->
<h2> Adverbials</h2>
<p>
<pre>
WhenIAdv,WhereIAdv,WhyIAdv,HowIAdv : IAdv ; -- when, where, why, how
EverywhereNP, SomewhereNP,NowhereNP : AdV ; -- everywhere, somewhere, nowhere
VeryAdv, TooAdv : AdA ; -- very, too
AlmostAdv, QuiteAdv : AdA ; -- almost, quite
OtherwiseAdv, ThereforeAdv : AdS ; -- therefore, otherwise
</pre>
<p>
<!-- NEW -->
<h2> Conjunctions and subjunctions</h2>
<p>
<pre>
AndConj, OrConj : Conj ; -- and, or
BothAnd, EitherOr, NeitherNor : ConjD ; -- both-and, either-or, neither-nor
IfSubj, WhenSubj, AlthoughSubj : Subj ; -- if, when, although
</pre>
<p>
<!-- NEW -->
<h2> Prepositions</h2>
<p>
We have chosen a set of semantic relations expressible
by prepositions in some languages, by cases or postpositions in
others. Complement uses of prepositions are not included, and
should be treated by the use of many-place verbs, adjectives, and
functions.
<pre>
InPrep, OnPrep, ToPrep, FromPrep, -- spatial relations
ThroughPrep, AbovePrep, UnderPrep,
InFrontPrep, BehindPrep, BetweenPrep : Prep ;
BeforePrep, DuringPrep, AfterPrep : Prep ; -- temporal relations
WithPrep, WithoutPrep, ByMeansPrep : Prep ; -- some other relations
PossessPrep : Prep ; -- possessive/genitive
PartPrep : Prep ; -- partitive "of" ("bottle of wine")
AgentPrep : Prep ; -- agent "by" in passive constructions
</pre>
<p>
<!-- NEW -->
<h2> Affirmation and negation</h2>
<p>
The negative-positive (French <i>si</i>, German <i>doch</i>) is missing.
<pre>
PhrYes, PhrNo : Phr ; -- yes, no
}
</pre>
</body>
</html>