diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/www/gfmorpho/index.html | 107 | ||||
| -rw-r--r-- | src/www/gfmorpho/morpho.js | 42 | ||||
| -rw-r--r-- | src/www/index.html | 3 |
3 files changed, 151 insertions, 1 deletions
diff --git a/src/www/gfmorpho/index.html b/src/www/gfmorpho/index.html new file mode 100644 index 000000000..0990f351d --- /dev/null +++ b/src/www/gfmorpho/index.html @@ -0,0 +1,107 @@ +<!DOCTYPE html> +<html> <head> +<title>Smart paradigms</title> +<meta charset="UTF-8"> +<meta name = "viewport" content = "width = device-width"> +<link rel=stylesheet href="../cloud.css"> +<style> +.morpho_output { + background: white; + padding: 1ex; + margin: 1ex; + box-shadow: 5px 5px 5px rgba(0,0,0,0.3); +} +th,td { vertical-align: baseline; } +</style> +</head> + +<body> +<header> +<h1><a href="/"><img class=nofloat src="../P/gf-cloud.png" alt=""></a> Word inflection with smart paradigms</h1> +</header> +<main> + +Give language, part of speech, and one or more word forms, to obtain +the inflection table. +<p> +<table> + <tr><th>Examples: + <td> +<input onclick="submit_example(this)" type=button value="Eng N baby"> +<input onclick="submit_example(this)" type=button value="Fin V odottaa odotti"> +<input onclick="submit_example(this)" type=button value="Fre V manger"> +<input onclick="submit_example(this)" type=button value="Ger N Soldat Soldaten _masculine"> +<input onclick="submit_example(this)" type=button value="Hin N बच्छा"> +<input onclick="submit_example(this)" type=button value="Jpn V 答える _Gr2"> + <input onclick="submit_example(this)" type=button value="Lat A vetus veteris"> + </table> +<p> + Thus notice that word forms are given without quotes. In addition + to word forms, in some languages it might be necessary to give + an inherent feature (e.g. gender) and these + are prefixed with an underscore <tt>_</tt>. +<p> +<form name=morpho method=get action="gfmorpho.cgi" onsubmit="submitmorpho();return false" onreset="resetmorpho()"> +Create your own example: +<!-- +<select name=language><option value=Eng>English</option></select> +<select name=category> + <option value=N>Noun</option> + <option value=A>Adjective</option> + <option value=V>Verb</option> +</select> +--> +<input size=40 name=args placeholder="Lang Cat word_forms"> +<input type=submit value="Submit"> +<input type=reset value="Clear"> +</form> + +<pre id=morpho_output></pre> + + +<h2>Language and part of speech</h2> + +The available languages are: +<pre> + Afr Amh Ara Bul Cat Chi Dan Dut Eng Est Eus Fin Fre Ger + Grc Gre Heb Hin Ice Ina Ita Jpn Lat Lav Mlt Mon Nep Nno + Nor Pes Pnb Pol Por Ron Rus Slv Snd Spa Swe Tha Tur Urd +</pre> + +<!-- +In addition, the library has the languages <tt>Ara Bul Pol</tt>, but they +are not yet available in this way; you can however use the full form of +paradigm applications prefixed by "!" as described below. +--> +<p> + +The parts of speech are: N (= noun), A (= adjective), V (= verb). + +<p> + +The way this works is that the program constructs the most probable +inflection table from the forms given. For a vast majority of words in +all languages, it is enough to give just one form. But sometimes more +forms are needed to get the inflection table right. + +<p> + +This is a front-end to the Paradigms modules in the GF Resource Grammar. +See <a href=http://www.grammaticalframework.org/lib/doc/synopsis.html>RGL +Synopsis</a> for more information on available languages and paradigms. + + +</main> +<footer> +<hr> +<div class=modtime><small> + <!-- hhmts start -->Last modified: Tue Dec 3 16:24:08 CET 2019 <!-- hhmts end --> +</small></div> +<address>Thomas H</address> +Based on <a href="gfmorpho.html">GFMorpho</a> by Aarne Ranta 2012. +</body> +<script src="../js/support.js"></script> +<script src="../js/localstorage.js"></script> +<script src="../gfse/cloud2.js"></script> +<script src="morpho.js"></script> +</html> diff --git a/src/www/gfmorpho/morpho.js b/src/www/gfmorpho/morpho.js new file mode 100644 index 000000000..d154b8bf7 --- /dev/null +++ b/src/www/gfmorpho/morpho.js @@ -0,0 +1,42 @@ + +var local=appLocalStorage("gf.morpho.") + +function quote(s) { + return s[0]=="_" ? s.substr(1) : '"'+s+'"' +} + +function show_output(output) { + morpho_output.className=output ? "morpho_output" : "" + replaceChildren(morpho_output,text(output)) +} + +function submitmorpho() { + clear(morpho_output) + var args=morpho.args.value.split(/ +/) + var lang=args[0] + var cat=args[1] + var wordforms=args.slice(2).map(quote).join(" ") + //console.log("submitmorpho",lang,cat,wordforms) + switch("") { + case lang: show_output("No language"); break; + case cat: show_output("No category"); break; + case wordforms: show_output("No word forms"); break; + default: + gfshell("e",function() { + gfshell("i -retain alltenses/Paradigms"+lang+".gfo",function() { + gfshell("cc -table -unqual mk"+cat+wordforms,show_output) + }) + }) + } + return false; +} + +function resetmorpho() { + show_output("") +} + +function submit_example(b) { + //console.log("submit_example",b.value) + morpho.args.value=b.value + submitmorpho() +} diff --git a/src/www/index.html b/src/www/index.html index 317af6cf8..a9af3e917 100644 --- a/src/www/index.html +++ b/src/www/index.html @@ -20,7 +20,8 @@ <li><a href="gfse/">GF online editor for simple multilingual grammars</a> <li><a href="translator/">Simple Translation Tool</a> (bilingual document editor) - <li><a href="wc.html">Wide Coverage Translation Demo</a> + <!--<li><a href="wc.html">Wide Coverage Translation Demo</a>--> + <li><a href="gfmorpho/">Word inflection with smart paradigms</a> </ul> <h2>Documentation</h2> |
