forked from GitHub/gf-core
gfdocs
This commit is contained in:
382
lib/resource-0.6/doc/Combinations.html
Normal file
382
lib/resource-0.6/doc/Combinations.html
Normal 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>
|
||||||
211
lib/resource-0.6/doc/ParadigmsEng.html
Normal file
211
lib/resource-0.6/doc/ParadigmsEng.html
Normal 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>
|
||||||
268
lib/resource-0.6/doc/ParadigmsFin.html
Normal file
268
lib/resource-0.6/doc/ParadigmsFin.html
Normal 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>tä</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>
|
||||||
175
lib/resource-0.6/doc/ParadigmsFre.html
Normal file
175
lib/resource-0.6/doc/ParadigmsFre.html
Normal 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>
|
||||||
273
lib/resource-0.6/doc/ParadigmsGer.html
Normal file
273
lib/resource-0.6/doc/ParadigmsGer.html
Normal 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>
|
||||||
192
lib/resource-0.6/doc/ParadigmsIta.html
Normal file
192
lib/resource-0.6/doc/ParadigmsIta.html
Normal 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>
|
||||||
238
lib/resource-0.6/doc/ParadigmsRus.html
Normal file
238
lib/resource-0.6/doc/ParadigmsRus.html
Normal 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>
|
||||||
217
lib/resource-0.6/doc/ParadigmsSwe.html
Normal file
217
lib/resource-0.6/doc/ParadigmsSwe.html
Normal 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>på</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>
|
||||||
106
lib/resource-0.6/doc/Predication.html
Normal file
106
lib/resource-0.6/doc/Predication.html
Normal 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>
|
||||||
114
lib/resource-0.6/doc/Structural.html
Normal file
114
lib/resource-0.6/doc/Structural.html
Normal 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>
|
||||||
Reference in New Issue
Block a user