forked from GitHub/gf-core
291 lines
4.9 KiB
HTML
291 lines
4.9 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html><head><title></title></head>
|
|
<body bgcolor="#ffffff" text="#000000">
|
|
<center>
|
|
|
|
<img src="gf-logo.gif">
|
|
|
|
<h1>GF Resource Grammar Library</h1>
|
|
|
|
<p>
|
|
|
|
<b>First Draft, Gothenburg, 7 February 2005</b>
|
|
|
|
</p><p>
|
|
|
|
Aarne Ranta
|
|
|
|
</p><p>
|
|
|
|
<tt>aarne@cs.chalmers.se</tt>
|
|
</p></center>
|
|
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>The purpose of the resource grammar library</h2>
|
|
|
|
Basic syntactic structures
|
|
|
|
<p>
|
|
|
|
All morphological paradigms
|
|
|
|
<p>
|
|
|
|
Basic lexicon of structural, common, and irregular words
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Success criteria</h2>
|
|
|
|
Grammatical correctness
|
|
|
|
<p>
|
|
|
|
Semantic coverage
|
|
|
|
<p>
|
|
|
|
Usability as library for non-linguists
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>These are not success criteria</h2>
|
|
|
|
Language coverage
|
|
|
|
<p>
|
|
|
|
Semantic correctness
|
|
<pre>
|
|
colourless green ideas sleep furiously
|
|
|
|
the time is seventy past forty-two
|
|
</pre>
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Languages</h2>
|
|
|
|
<p>
|
|
<li><tt>Dan</tt>ish
|
|
<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>Nor</tt>wegian
|
|
<li><tt>Rus</tt>sian
|
|
<li><tt>Spa</tt>nish
|
|
<li><tt>Swe</tt>dish
|
|
<p>
|
|
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Library structure: overview</h2>
|
|
|
|
Language-independent API
|
|
|
|
<p>
|
|
|
|
Language-dependent resources
|
|
<ul>
|
|
<li> morphological <tt>Paradigms</tt>
|
|
<li> irregular <tt>Verbs</tt>
|
|
</ul>
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Library structure: language-independent API</h2>
|
|
|
|
<center>
|
|
<img src="Lang.gif">
|
|
</center>
|
|
|
|
<!-- NEW -->
|
|
<h2>API documentation</h2>
|
|
|
|
<a href="Categories.html">Categories</a>
|
|
|
|
<p>
|
|
<a href="Rules.html">Rules</a>
|
|
|
|
<p>
|
|
<a href="Clause.html">Clause</a>
|
|
|
|
<p>
|
|
<a href="Structural.html">Structural</a>
|
|
|
|
<p>
|
|
|
|
<a href="Time.html">Time</a>
|
|
|
|
<p>
|
|
<a href="Basic.html">Basic</a>
|
|
|
|
<p>
|
|
|
|
<a href="Lang.html">Lang</a>
|
|
|
|
<p>
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Paradigms documentation</h2>
|
|
|
|
<a href="ParadigmsEng.html">English</a>
|
|
|
|
<p>
|
|
|
|
<a href="VerbsEng.html">English verbs</a>
|
|
|
|
<p>
|
|
|
|
<a href="ParadigmsSwe.html">Swedish</a>
|
|
|
|
<p>
|
|
|
|
<a href="BasicSwe.html">example of Swedish</a>
|
|
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Use as top-level grammar: testing</h2>
|
|
|
|
Import a set of $LangX$ grammars:
|
|
<pre>
|
|
i english/LangEng.gf
|
|
i swedish/LangSwe.gf
|
|
</pre>
|
|
Test with random generation, translation, morphological analysis...
|
|
<pre>
|
|
|
|
|
|
</pre>
|
|
|
|
<!-- NEW -->
|
|
<h2>Use as top-level grammar: language learning quizzes</h2>
|
|
|
|
Morpho quiz with words:
|
|
<pre>
|
|
|
|
|
|
</pre>
|
|
Morpho quiz with phrases:
|
|
<pre>
|
|
|
|
|
|
</pre>
|
|
Translation quiz with sentences:
|
|
<pre>
|
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Use as library</h2>
|
|
|
|
Import directly by <tt>open</tt>:
|
|
<pre>
|
|
concrete AppNor of App = open LangNor, ParadigmsNor in {...}
|
|
</pre>
|
|
No more dummy <tt>reuse</tt> modules and bulky <tt>.gfr</tt> files!
|
|
|
|
<p>
|
|
|
|
If you need to convert resource category records to/from strings, use
|
|
<pre>
|
|
Predef.toStr : (L : Type) -> L -> Str ;
|
|
</pre>
|
|
<tt>L</tt> must be a linearization type. For instance,
|
|
<pre>
|
|
toStr LangNor.CN (ModAP (PositADeg old_ADeg) (UseN car_N))
|
|
---> "gammel bil"
|
|
</pre>
|
|
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Use as library through parser</h2>
|
|
|
|
Use the parser when developing a resource.
|
|
<pre>
|
|
> p -cat=S -v "jag ska åka till Chalmers"
|
|
unknown tokens [TS "åka",TS "Chalmers"]
|
|
|
|
> p -cat=S "jag ska gå till Danmark"
|
|
UseCl (PosTP TFuture ASimul)
|
|
(AdvCl (SPredV i_NP go_V)
|
|
(AdvPP (PrepNP to_Prep (UsePN (PNCountry Denmark)))))
|
|
</pre>
|
|
Extend vocabulary at need.
|
|
<pre>
|
|
åka_V = lexV "åker" ;
|
|
Chalmers = regPN "Chalmers" neutrum ;
|
|
</pre>
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Example application: a small translation system</h2>
|
|
|
|
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Implementation details: the structure of low-level files</h2>
|
|
|
|
<center>
|
|
<img src="Low.gif">
|
|
</center>
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>The use of parametric modules</h2>
|
|
|
|
In two language families:
|
|
<ul>
|
|
<li> Romance: French, Italian, Spanish
|
|
<li> Scandinavian: Danish, Norwegian, Swedish
|
|
</ul>
|
|
<center>
|
|
<img src="Scand.gif">
|
|
</center>
|
|
|
|
|
|
<!-- NEW -->
|
|
<h2>Current status</h2>
|
|
|
|
<table border=1>
|
|
<tr><td>Language</td> <td>v0.6</td> <td>API</td> <td>Paradigms</td> <td>Basic lex</td> <td>Verbs</td></tr>
|
|
<tr><td>Danish</td> <td> </td> <td>X</td> <td></td> <td></td> <td></tr>
|
|
<tr><td>English</td> <td>X</td> <td>X</td> <td>X</td> <td>X</td> <td>X</tr>
|
|
<tr><td>Finnish</td> <td>X</td> <td> </td> <td></td> <td></td> <td></tr>
|
|
<tr><td>French</td> <td>X</td> <td>*</td> <td>*</td> <td></td> <td>*</tr>
|
|
<tr><td>German</td> <td>X</td> <td> </td> <td>*</td> <td></td> <td></tr>
|
|
<tr><td>Italian</td> <td>X</td> <td>*</td> <td>*</td> <td></td> <td>*</tr>
|
|
<tr><td>Norwegian</td> <td> </td> <td>X</td> <td></td> <td></td> <td></tr>
|
|
<tr><td>Russian</td> <td>X</td> <td>*</td> <td>*</td> <td></td> <td></tr>
|
|
<tr><td>Spanish</td> <td> </td> <td>*</td> <td></td> <td></td> <td>*</tr>
|
|
<tr><td>Swedish</td> <td>X</td> <td>X</td> <td>X</td> <td>X</td> <td>*</tr>
|
|
</table>
|
|
|
|
<!-- NEW -->
|
|
<h2>Obtaining it</h2>
|
|
|
|
Now on CVS at Chalmers:
|
|
<pre>
|
|
cvs -d /users/cs/aarne/cvs checkout GF2.0/lib
|
|
</pre>
|
|
|
|
<p>
|
|
|
|
To appear later at GF Homepage:<p>
|
|
|
|
<a href="http://www.cs.chalmers.se/%7Eaarne/GF">
|
|
<tt>http://www.cs.chalmers.se/~aarne/GF</tt></a>
|
|
</p></body></html> |