diff options
46 files changed, 1220 insertions, 1627 deletions
diff --git a/.gitignore b/.gitignore index 97875e85a..fed3570b0 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,19 @@ src/runtime/python/build/ cabal.sandbox.config .stack-work DATA_DIR + +# Generated documentation (not exhaustive) +demos/index-numbers.html +demos/resourcegrammars.html +demos/translation.html +doc/tutorial/gf-tutorial.html +doc/gf-bibliography.html +doc/gf-developers.html +doc/gf-editor-modes.html +doc/gf-people.html +doc/gf-reference.html +doc/gf-shell-reference.html +doc/icfp-2012.html +download/*.html +gf-book/index.html +src/www/gf-web-api.html @@ -20,6 +20,7 @@ doc: clean: cabal clean + bash bin/clean_html gf: cabal build rgl-none diff --git a/bin/_template.html b/bin/_template.html new file mode 100644 index 000000000..9e966857a --- /dev/null +++ b/bin/_template.html @@ -0,0 +1,132 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$> +<head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> +$for(author-meta)$ + <meta name="author" content="$author-meta$" /> +$endfor$ +$if(date-meta)$ + <meta name="dcterms.date" content="$date-meta$" /> +$endif$ +$if(keywords)$ + <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" /> +$endif$ + <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title> +$for(css)$ + <link rel="stylesheet" href="$css$" /> +$endfor$ + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> + <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.2/css/all.css" integrity="sha384-/rXc/GQVaYpyDdyxK+ecHPVYJSN9bmVFBvjA/9eOB+pb3F2w2N6fc5qB9Ew5yIns" crossorigin="anonymous"> +$if(math)$ + $math$ +$endif$ + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +$for(header-includes)$ + $header-includes$ +$endfor$ +</head> +<body> +<div class="container-fluid my-5" style="max-width:1200px"> + +$if(title)$ +<header id="title-block-header"> +<a href="$rel-root$" title="Home"> + <img src="$rel-root$/doc/Logos/gf1.svg" height="200px" class="float-md-right mb-3 bg-white" alt="GF Logo"> +</a> +<h1 class="title">$title$</h1> +$if(subtitle)$ +<p class="subtitle">$subtitle$</p> +$endif$ +$for(author)$ +<p class="author">$author$</p> +$endfor$ +$if(date)$ +<p class="date">$date$</p> +$endif$ +</header> +$endif$ +$if(toc)$ +<nav id="$idprefix$TOC"> +$table-of-contents$ +</nav> +$endif$ +$body$ +</div><!-- .container --> + +<footer class="bg-light mt-5 py-5"> + <div class="container"> + <div class="row"> + + <div class="col-6 col-sm-3"> + <a href="$rel-root$"> + <i class="fas fa-home"></i> + Home + </a> + <h6 class="text-muted mt-3">Get started</h6> + <ul class="list-unstyled"> + <li><a href="https://www.youtube.com/watch?v=x1LFbDQhbso">Google Tech Talk</a></li> + <li><a href="http://cloud.grammaticalframework.org/">GF Cloud</a></li> + <li><a href="$rel-root$/doc/tutorial/gf-tutorial.html">Tutorial</a></li> + <li><a href="$rel-root$/download">Download GF</a></li> + </ul> + </div> + + <div class="col-6 col-sm-3"> + <h6 class="text-muted">Learn more</h6> + <ul class="list-unstyled"> + <li><a href="$rel-root$/gf-book">The GF Book</a></li> + <li><a href="$rel-root$/doc/gf-refman.html">Reference Manual</a></li> + <li><a href="$rel-root$/doc/gf-shell-reference.html">GF Shell Reference</a></li> + <li><a href="http://www.molto-project.eu/sites/default/files/MOLTO_D2.3.pdf">Best Practices</a></li> + <li><a href="$rel-root$/lib/doc/synopsis/index.html">RGL Library Synopsis</a></li> + </ul> + </div> + + <div class="col-6 col-sm-3"> + <h6 class="text-muted">Develop</h6> + <ul class="list-unstyled"> + <li><a href="$rel-root$/doc/gf-developers.html">Developers Guide</a></li> + <li><a href="http://hackage.haskell.org/package/gf/docs/PGF.html">PGF library API (Haskell runtime)</a></li> + <li><a href="$rel-root$/doc/runtime-api.html">PGF library API (C runtime)</a></li> + <li><a href="http://hackage.haskell.org/package/gf/docs/GF.html">GF compiler API</a></li> + <li><a href="$rel-root$/doc/gf-editor-modes.html">Text Editor Support</a></li> + </ul> + </div> + + <div class="col-6 col-sm-3"> + <h6 class="text-muted">Contribute</i> + </h6> + <ul class="list-unstyled"> + <li><a href="http://groups.google.com/group/gf-dev">Mailing List</a></li> + <li><a href="https://github.com/GrammaticalFramework/gf-core/issues">Issue Tracker</a></li> + <li><a href="$rel-root$/doc/gf-people.html">Authors</a></li> + <li><a href="http://school.grammaticalframework.org/2018/">Summer School</a></li> + </ul> + <h6 class="text-muted"> + Repositories + <i class="fab fa-github ml-1"></i> + </h6> + <ul class="list-unstyled"> + <li><a href="https://github.com/GrammaticalFramework/gf-core">GF Core</a></li> + <li><a href="https://github.com/GrammaticalFramework/gf-rgl">RGL</a></li> + <li><a href="https://github.com/GrammaticalFramework/gf-contrib">Contrib</a></li> + </ul> + </div> + <div> + <div> +</footer> + +<script type="text/javascript"> +var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); +document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); +</script> +<script type="text/javascript"> +try { +var pageTracker = _gat._getTracker("UA-7811807-3"); +pageTracker._trackPageview(); +} catch(err) {}</script> +</body> +</html> diff --git a/bin/clean_html b/bin/clean_html new file mode 100755 index 000000000..e2bf0e799 --- /dev/null +++ b/bin/clean_html @@ -0,0 +1,8 @@ +#!/bin/bash + +### This script finds all .t2t (txt2tags) files and deletes the corresponding html file + +find . -name '*.t2t' | while read t2t ; do + html="${t2t%.t2t}.html" + rm -f "$html" +done diff --git a/bin/update_html b/bin/update_html index 75f54b13e..ec82ec491 100755 --- a/bin/update_html +++ b/bin/update_html @@ -1,11 +1,114 @@ #!/bin/bash -### This script finds all .t2t (txt2tags) files and updates the corresponding -### .html file, if it is out-of-date. +# Path to directory where this script is +# https://stackoverflow.com/a/246128/98600 +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" -find . -name '*.t2t' | while read t2t ; do - html="${t2t%.t2t}.html" - if [ "$t2t" -nt "$html" ] ; then - txt2tags -thtml "$t2t" +# Render txt2tags into html file +# Arguments: +# 1. txt2tags source file, e.g. download/index.t2t +# 2. html target file, e.g. download/index.html +function render_t2t_html { + t2t="$1" + html="$2" + tmp="$2.tmp" + relroot="$( dirname $t2t | sed -E 's/^.\///' | sed -E 's/[^/]+/../g' )" + + # First render with txt2tags to handle pre/post processing + txt2tags \ + --target=html \ + --no-headers \ + --quiet \ + --outfile="$tmp" \ + --infile="$t2t" + + # Capture first 3 lines of t2t file: title, author, date + # Documentation here: https://txt2tags.org/userguide/headerarea + l1=$(head -n 1 "$t2t") + l2=$(tail -n+2 "$t2t" | head -n 1) + l3=$(tail -n+3 "$t2t" | head -n 1) + title= + author= + date= + if [ -n "$l1" ] ; then + title="$l1" + if [ -n "$l2" ] ; then author="$l2" ; fi + if [ -n "$l3" ] ; then date="$l3" ; fi + fi + + # Run txt2tag's HTML through Pandoc for cleanup + pandoc \ + --from=html \ + --to=html5 \ + --standalone \ + --template="$DIR/_template.html" \ + --variable="rel-root:$relroot" \ + --metadata="title:$title" \ + --metadata="author:$author" \ + --metadata="date:$date" \ + "$tmp" \ + --output="$html" + rm -f "$tmp" + + # Final post-processing + if [ -f "$html" ] ; then + sed -i.bak "s/<table/<table class=\"table\"/" "$html" && rm "$html.bak" + echo "$html" fi -done
\ No newline at end of file +} + +# Render markdown into html file +# Arguments: +# 1. markdown source file, e.g. download/index.md +# 2. html target filen, e.g. download/index.html +function render_md_html { + md="$1" + html="$2" + relroot="$( dirname $md | sed -E 's/^.\///' | sed -E 's/[^/]+/../g' )" + + pandoc \ + --from=markdown \ + --to=html5 \ + --standalone \ + --template="$DIR/_template.html" \ + --variable="rel-root:$relroot" \ + "$md" \ + --output="$html" + + # Final post-processing + if [ -f "$html" ] ; then + sed -i.bak "s/<table/<table class=\"table\"/" "$html" && rm "$html.bak" + echo "$html" + fi +} + +if [ $# -gt 0 ] ; then + # Render specific file(s) from args, ignoring dates + for file in "$@" ; do + ext="${file##*.}" + html="${file%.$ext}.html" + case $ext in + "md") + render_md_html "$file" "$html" + ;; + "t2t") + render_t2t_html "$file" "$html" + ;; + esac + done +else + # Render all files found in cwd and deeper if source is newer + find . -name '*.t2t' | while read file ; do + html="${file%.t2t}.html" + if [ "$file" -nt "$html" ] ; then + render_t2t_html "$file" "$html" + fi + done + find . -name '*.md' | while read file ; do + if [[ "$file" == *"README.md" ]] ; then continue ; fi + html="${file%.md}.html" + if [ "$file" -nt "$html" ] ; then + render_md_html "$file" "$html" + fi + done +fi diff --git a/doc/Makefile b/doc/Makefile index 5251cde8b..bb1be8de3 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,18 +1,3 @@ -resource: - gfdoc -txt2 ../lib/resource-1.0/abstract/*.gf - gfdoc -txt2 ../lib/resource-1.0/*/Paradigms*.gf - txt2tags --toc resource.txt -# cat resource-preamble resource.tex >final-resource.tex - sed -i 's/\\docum/%\\docum/g' resource.tex - sed -i 's/ion\*{/ion{/g' resource.tex - sed -i 's/\\paragraph{}//g' resource.tex - sed -i 's/}\\\\/}/g' resource.tex - cat resource-preamble resource.tex >resource.tmp - mv resource.tmp resource.tex - latex resource.tex - latex resource.tex - dvipdf resource.dvi - gf-help-full.txt:: { echo ; echo ; echo ; } > $@ echo help -full -t2t | gf -run >> $@ diff --git a/doc/gf-developers.t2t b/doc/gf-developers.t2t index dbc7fe960..f90feb115 100644 --- a/doc/gf-developers.t2t +++ b/doc/gf-developers.t2t @@ -1,16 +1,8 @@ GF Developers Guide -Authors: Björn Bringert, Krasimir Angelov and Thomas Hallgren -Last update: %%mtime(%F, %H:%M) -% NOTE: this is a txt2tags file. -% Create an html file from this file using: -% txt2tags -t html gf-developers.t2t +2018-07-26 -%!style:../css/style.css -%!target:html %!options(html): --toc -%!encoding:utf-8 -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> == Before you start == @@ -63,18 +55,6 @@ Other required tools included in the Haskell Platform are and [Happy http://www.haskell.org/happy/]. -%=== Darcs === -% -%To get the GF source code, you also need //Darcs//, version 2 or later. -%Darcs 2.10 is recommended (July 2015). -% -%//Darcs// -%is a distributed version control system, see http://darcs.net/ for -%more information. There are precompiled packages for many platforms -%available and source code if you want to compile it yourself. Darcs -%is also written in Haskell and so you can use GHC to compile it. - - === Git === To get the GF source code, you also need //Git//. diff --git a/doc/gf-faq.t2t b/doc/gf-faq.t2t deleted file mode 100644 index 016511cf0..000000000 --- a/doc/gf-faq.t2t +++ /dev/null @@ -1,91 +0,0 @@ -Grammatical Framework: Frequently Asked Quuestions -Aarne Ranta -%%date(%c) - -% NOTE: this is a txt2tags file. -% Create an html file from this file using: -% txt2tags gf-bibliography.t2t - -%!style:../css/style.css -%!target:html -%!options(html): --toc -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): #BR <br> -%!encoding:utf-8 -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - - -===What has been done with GF?=== - -**Translation**: systems with any number of parallel languages, with input in one language and output in all the others. - -**Natural language generation** (NLG): translation from a formal language to natural languages. - -**Ontology verbalization** is a special case of NLG. - -**Language training**: grammar and vocabulary training systems. - -**Human-computer interaction**: natural language interfaces, spoken dialogue systems. - -**Linguistics**: comparisons between languages. - - - -===What parts does GF have?=== - -A **grammar compiler**, used for compiling grammars to parsing, generation, and translation code. - -A **run-time system**, used for parsing, generation and translation. The run-time system is available in several languages: -Haskell, Java, C, C++, Javascript, and Python. The point with this is that you can include GF-based parsing and generation in -larger programs written in any of these languages. - -A **resource grammar library**, containing the morphology and basic syntax of currently 26 languages. - -A **web application toolkit**, containing server-side (Haskell) and client-side (Javascript) libraries. - -An **integrated development environment**, the GF-Eclipse plug-in. - -A **shell**, i.e. a command interpreter for testing and developing GF grammars. This is the program started by the command ``gf`` in a terminal. - - - -===Is GF open-source?=== - - -===Can I use GF for commercial applications?=== - -Yes. Those parts of GF that you will need to distribute - the run-time system and the libraries - are licensed under LGPL and BSD; it's up to you to choose which. - - - -===When was GF started?=== - - -===Where does the name GF come from?=== - -GF = Grammatical Framework = LF + concrete syntax - -LF = Logical Framework - -Logical Frameworks are implementations of type theory, which have been built since the 1980's to support formalized mathematics. GF has its roots in -type theory, which is widely used in the semantics of natural language. Some of these ideas were first implemented in ALF, Another Logical Framework, -in 1992; the book //Type-Theoretical Grammar// (by A. Ranta, OUP 1994) has a chapter and an appendix on this. The first implementations did not have -a parser, and GF proper, started in 1998, was an implementation of yet another LF together with concrete syntax supporting generation and parsing. -Grammatical Framework was a natural name for this. We tried to avoid it in the beginning, because it sounded pretentious in its generality. But the -name was just too natural to be avoided. - - - -===Is GF backward compatible?=== - - - -===Do I need Haskell to use GF?=== - -No. GF is a language of its own, and you don't need to know Haskell. And if you download the GF binary, you don't need any Haskell tools. But if you want to -become a GF developer, then it's better you install GF from the latest source, and then you need the GHC Haskell compiler to compile GF. But even then, you -don't need to know Haskell yourself. - - -===What is a lock field?=== - diff --git a/doc/gf-help-full.txt b/doc/gf-help-full.txt index c10e60494..1b9c31705 100644 --- a/doc/gf-help-full.txt +++ b/doc/gf-help-full.txt @@ -68,9 +68,9 @@ metavariables and the type of the expression. Prints a set of strings in the .dot format (the graphviz format). The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file -which is processed by graphviz and displayed by the program indicated -by the flag. The target format is postscript, unless overridden by the -flag -format. +which is processed by 'dot' (graphviz) and displayed by the program indicated +by the view flag. The target format is png, unless overridden by the +flag -format. Results from multiple trees are combined to pdf with convert (ImageMagick). - Options: @@ -151,6 +151,7 @@ of a pipe. | ``-one`` | pick the first strings, if there is any, from records and tables | ``-table`` | show all strings labelled by parameters | ``-unqual`` | hide qualifying module names + | ``-trace`` | trace computations #NORMAL @@ -242,7 +243,7 @@ and thus cannot be a part of a pipe. ====e = empty==== #NOINDENT -``e`` = ``empty``: //empty the environment.// +``e`` = ``empty``: //empty the environment (except the command history).// #TINY @@ -283,6 +284,19 @@ but the resulting .gf file must be imported separately. #VSPACE +====eh = execute_history==== +#NOINDENT +``eh`` = ``execute_history``: //read commands from a file and execute them.// + +#TINY + +- Syntax: ``eh FILE`` + +#NORMAL + + +#VSPACE + ====gr = generate_random==== #NOINDENT ``gr`` = ``generate_random``: //generate random trees in the current abstract syntax.// @@ -434,12 +448,14 @@ sequences; see example. | ``-list`` | show all forms and variants, comma-separated on one line (cf. l -all) | ``-multi`` | linearize to all languages (default) | ``-table`` | show all forms labelled by parameters + | ``-tabtreebank`` | show the tree and its linearizations on a tab-separated line | ``-treebank`` | show the tree and tag linearizations with language names | ``-bind`` | bind tokens separated by Prelude.BIND, i.e. &+ | ``-chars`` | lexer that makes every non-space character a token | ``-from_amharic`` | from unicode to GF Amharic transliteration | ``-from_ancientgreek`` | from unicode to GF ancient Greek transliteration | ``-from_arabic`` | from unicode to GF Arabic transliteration + | ``-from_arabic_unvocalized`` | from unicode to GF unvocalized Arabic transliteration | ``-from_cp1251`` | decode from cp1251 (Cyrillic used in Bulgarian resource) | ``-from_devanagari`` | from unicode to GF Devanagari transliteration | ``-from_greek`` | from unicode to GF modern Greek transliteration @@ -453,11 +469,14 @@ sequences; see example. | ``-from_urdu`` | from unicode to GF Urdu transliteration | ``-from_utf8`` | decode from utf8 (default) | ``-lexcode`` | code-like lexer + | ``-lexgreek`` | lexer normalizing ancient Greek accentuation + | ``-lexgreek2`` | lexer normalizing ancient Greek accentuation for text with vowel length annotations | ``-lexmixed`` | mixture of text and code, as in LaTeX (code between $...$, \(...)\, \[...\]) | ``-lextext`` | text-like lexer | ``-to_amharic`` | from GF Amharic transliteration to unicode | ``-to_ancientgreek`` | from GF ancient Greek transliteration to unicode | ``-to_arabic`` | from GF Arabic transliteration to unicode + | ``-to_arabic_unvocalized`` | from GF unvocalized Arabic transliteration to unicode | ``-to_cp1251`` | encode to cp1251 (Cyrillic used in Bulgarian resource) | ``-to_devanagari`` | from GF Devanagari transliteration to unicode | ``-to_greek`` | from GF modern Greek transliteration to unicode @@ -473,6 +492,7 @@ sequences; see example. | ``-to_utf8`` | encode to utf8 (default) | ``-unchars`` | unlexer that puts no spaces between tokens | ``-unlexcode`` | code-like unlexer + | ``-unlexgreek`` | unlexer de-normalizing ancient Greek accentuation | ``-unlexmixed`` | mixture of text and code (code between $...$, \(...)\, \[...\]) | ``-unlextext`` | text-like unlexer | ``-unwords`` | unlexer that puts a single space between tokens (default) @@ -513,6 +533,7 @@ trees where a function node is a metavariable. | ``-from_amharic`` | from unicode to GF Amharic transliteration | ``-from_ancientgreek`` | from unicode to GF ancient Greek transliteration | ``-from_arabic`` | from unicode to GF Arabic transliteration + | ``-from_arabic_unvocalized`` | from unicode to GF unvocalized Arabic transliteration | ``-from_cp1251`` | decode from cp1251 (Cyrillic used in Bulgarian resource) | ``-from_devanagari`` | from unicode to GF Devanagari transliteration | ``-from_greek`` | from unicode to GF modern Greek transliteration @@ -526,11 +547,14 @@ trees where a function node is a metavariable. | ``-from_urdu`` | from unicode to GF Urdu transliteration | ``-from_utf8`` | decode from utf8 (default) | ``-lexcode`` | code-like lexer + | ``-lexgreek`` | lexer normalizing ancient Greek accentuation + | ``-lexgreek2`` | lexer normalizing ancient Greek accentuation for text with vowel length annotations | ``-lexmixed`` | mixture of text and code, as in LaTeX (code between $...$, \(...)\, \[...\]) | ``-lextext`` | text-like lexer | ``-to_amharic`` | from GF Amharic transliteration to unicode | ``-to_ancientgreek`` | from GF ancient Greek transliteration to unicode | ``-to_arabic`` | from GF Arabic transliteration to unicode + | ``-to_arabic_unvocalized`` | from GF unvocalized Arabic transliteration to unicode | ``-to_cp1251`` | encode to cp1251 (Cyrillic used in Bulgarian resource) | ``-to_devanagari`` | from GF Devanagari transliteration to unicode | ``-to_greek`` | from GF modern Greek transliteration to unicode @@ -546,6 +570,7 @@ trees where a function node is a metavariable. | ``-to_utf8`` | encode to utf8 (default) | ``-unchars`` | unlexer that puts no spaces between tokens | ``-unlexcode`` | code-like unlexer + | ``-unlexgreek`` | unlexer de-normalizing ancient Greek accentuation | ``-unlexmixed`` | mixture of text and code (code between $...$, \(...)\, \[...\]) | ``-unlextext`` | text-like unlexer | ``-unwords`` | unlexer that puts a single space between tokens (default) @@ -666,10 +691,9 @@ command (flag -printer): fa finite automaton in graphviz format gsl Nuance speech recognition format haskell Haskell (abstract syntax) + java Java (abstract syntax) js JavaScript (whole grammar) jsgf JSGF speech recognition format - lambda_prolog LambdaProlog (abstract syntax) - lp_byte_code Bytecode for Teyjus (abstract syntax, experimental) pgf_pretty human-readable pgf prolog Prolog (whole grammar) python Python (whole grammar) @@ -753,6 +777,7 @@ To see transliteration tables, use command ut. | ``-from_amharic`` | from unicode to GF Amharic transliteration | ``-from_ancientgreek`` | from unicode to GF ancient Greek transliteration | ``-from_arabic`` | from unicode to GF Arabic transliteration + | ``-from_arabic_unvocalized`` | from unicode to GF unvocalized Arabic transliteration | ``-from_cp1251`` | decode from cp1251 (Cyrillic used in Bulgarian resource) | ``-from_devanagari`` | from unicode to GF Devanagari transliteration | ``-from_greek`` | from unicode to GF modern Greek transliteration @@ -766,11 +791,14 @@ To see transliteration tables, use command ut. | ``-from_urdu`` | from unicode to GF Urdu transliteration | ``-from_utf8`` | decode from utf8 (default) | ``-lexcode`` | code-like lexer + | ``-lexgreek`` | lexer normalizing ancient Greek accentuation + | ``-lexgreek2`` | lexer normalizing ancient Greek accentuation for text with vowel length annotations | ``-lexmixed`` | mixture of text and code, as in LaTeX (code between $...$, \(...)\, \[...\]) | ``-lextext`` | text-like lexer | ``-to_amharic`` | from GF Amharic transliteration to unicode | ``-to_ancientgreek`` | from GF ancient Greek transliteration to unicode | ``-to_arabic`` | from GF Arabic transliteration to unicode + | ``-to_arabic_unvocalized`` | from GF unvocalized Arabic transliteration to unicode | ``-to_cp1251`` | encode to cp1251 (Cyrillic used in Bulgarian resource) | ``-to_devanagari`` | from GF Devanagari transliteration to unicode | ``-to_greek`` | from GF modern Greek transliteration to unicode @@ -786,6 +814,7 @@ To see transliteration tables, use command ut. | ``-to_utf8`` | encode to utf8 (default) | ``-unchars`` | unlexer that puts no spaces between tokens | ``-unlexcode`` | code-like unlexer + | ``-unlexgreek`` | unlexer de-normalizing ancient Greek accentuation | ``-unlexmixed`` | mixture of text and code (code between $...$, \(...)\, \[...\]) | ``-unlextext`` | text-like unlexer | ``-unwords`` | unlexer that puts a single space between tokens (default) @@ -799,13 +828,14 @@ To see transliteration tables, use command ut. - Examples: - | ``l (EAdd 3 4) | ps -code`` | linearize code-like output - | ``ps -lexer=code | p -cat=Exp`` | parse code-like input + | ``l (EAdd 3 4) | ps -unlexcode`` | linearize code-like output + | ``ps -lexcode | p -cat=Exp`` | parse code-like input | ``gr -cat=QCl | l | ps -bind`` | linearization output from LangFin | ``ps -to_devanagari "A-p"`` | show Devanagari in UTF8 terminal | ``rf -file=Hin.gf | ps -env=quotes -to_devanagari`` | convert translit to UTF8 | ``rf -file=Ara.gf | ps -from_utf8 -env=quotes -from_arabic`` | convert UTF8 to transliteration | ``ps -to=chinese.trans "abc"`` | apply transliteration defined in file chinese.trans + | ``ps -lexgreek "a)gavoi` a)'nvrwpoi' tines*"`` | normalize ancient greek accentuation #NORMAL @@ -828,7 +858,6 @@ are type checking and semantic computation. - Options: | ``-compute`` | compute by using semantic definitions (def) - | ``-paraphrase`` | paraphrase by using semantic definitions (def) | ``-largest`` | sort trees from largest to smallest, in number of nodes | ``-nub`` | remove duplicate trees | ``-smallest`` | sort trees from smallest to largest, in number of nodes @@ -838,12 +867,10 @@ are type checking and semantic computation. - Flags: | ``-number`` | take at most this many trees - | ``-transfer`` | syntactic transfer by applying function, recursively in subtrees - Examples: | ``pt -compute (plus one two)`` | compute value - | ``p "4 dogs love 5 cats" | pt -transfer=digits2numeral | l`` | four...five... #NORMAL @@ -990,8 +1017,6 @@ This command requires a source grammar to be in scope, imported with 'import -re The operations include the parameter constructors that are in scope. The optional TYPE filters according to the value type. The grep STRINGs filter according to other substrings of the type signatures. -This command must be a line of its own, and thus cannot be a part -of a pipe. - Syntax: ``so (-grep=STRING)* TYPE?`` - Options: @@ -1002,6 +1027,12 @@ of a pipe. | ``-grep`` | substring used for filtering (the command can have many of these) +- Examples: + + | ``so Det`` | show all opers that create a Det + | ``so -grep=Prep`` | find opers relating to Prep + | ``so | wf -file=/tmp/opers`` | write the list of opers to a file + #NORMAL @@ -1113,6 +1144,7 @@ This command must be a line of its own, and thus cannot be a part of a pipe. | ``-amharic`` | Amharic | ``-ancientgreek`` | ancient Greek | ``-arabic`` | Arabic + | ``-arabic_unvocalized`` | unvocalized Arabic | ``-devanagari`` | Devanagari | ``-greek`` | modern Greek | ``-hebrew`` | unvocalized Hebrew @@ -1137,35 +1169,41 @@ This command must be a line of its own, and thus cannot be a part of a pipe. #TINY Prints a dependency tree in the .dot format (the graphviz format, default) +or LaTeX (flag -output=latex) or the CoNLL/MaltParser format (flag -output=conll for training, malt_input for unanalysed input). By default, the last argument is the head of every abstract syntax function; moreover, the head depends on the head of the function above. The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file -which is processed by graphviz and displayed by the program indicated -by the flag. The target format is png, unless overridden by the -flag -format. +which is processed by dot (graphviz) and displayed by the program indicated +by the view flag. The target format is png, unless overridden by the +flag -format. Results from multiple trees are combined to pdf with convert (ImageMagick). +See also 'vp -showdep' for another visualization of dependencies. - Options: | ``-v`` | show extra information + | ``-conll2latex`` | convert conll to latex - Flags: - | ``-file`` | configuration file for labels per fun, format 'fun l1 ... label ... l2' - | ``-format`` | format of the visualization file (default "png") - | ``-output`` | output format of graph source (default "dot") - | ``-view`` | program to open the resulting file (default "open") + | ``-abslabels`` | abstract configuration file for labels, format per line 'fun label*' + | ``-cnclabels`` | concrete configuration file for labels, format per line 'fun {words|*} pos label head' + | ``-file`` | same as abslabels (abstract configuration file) + | ``-format`` | format of the visualization file using dot (default "png") + | ``-output`` | output format of graph source (latex, conll, dot (default but deprecated)) + | ``-view`` | program to open the resulting graph file (default "open") | ``-lang`` | the language of analysis - Examples: | ``gr | vd`` | generate a tree and show dependency tree in .dot - | ``gr | vd -view=open`` | generate a tree and display dependency tree on a Mac - | ``gr -number=1000 | vd -file=dep.labels -output=malt`` | generate training treebank - | ``gr -number=100 | vd -file=dep.labels -output=malt_input`` | generate test sentences + | ``gr | vd -view=open`` | generate a tree and display dependency tree on with Mac's 'open' + | ``gr | vd -view=open -output=latex`` | generate a tree and display latex dependency tree with Mac's 'open' + | ``gr -number=1000 | vd -abslabels=Lang.labels -cnclabels=LangSwe.labels -output=conll`` | generate a random treebank + | ``rf -file=ex.conll | vd -conll2latex | wf -file=ex.tex`` | convert conll file to latex #NORMAL @@ -1182,15 +1220,16 @@ flag -format. Prints a parse tree in the .dot format (the graphviz format). The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file -which is processed by graphviz and displayed by the program indicated -by the flag. The target format is png, unless overridden by the -flag -format. +which is processed by dot (graphviz) and displayed by the program indicated +by the view flag. The target format is png, unless overridden by the +flag -format. Results from multiple trees are combined to pdf with convert (ImageMagick). - Options: | ``-showcat`` | show categories in the tree nodes (default) | ``-nocat`` | don't show categories + | ``-showdep`` | show dependency labels | ``-showfun`` | show function names in the tree nodes | ``-nofun`` | don't show function names (default) | ``-showleaves`` | show the leaves of the tree (default) @@ -1198,6 +1237,8 @@ flag -format. - Flags: + | ``-lang`` | the language to visualize + | ``-file`` | configuration file for dependency labels with -deps, format per line 'fun label*' | ``-format`` | format of the visualization file (default "png") | ``-view`` | program to open the resulting file (default "open") | ``-nodefont`` | font for tree nodes (default: Times -- graphviz standard font) @@ -1210,7 +1251,8 @@ flag -format. - Examples: | ``p "John walks" | vp`` | generate a tree and show parse tree as .dot script - | ``gr | vp -view="open"`` | generate a tree and display parse tree on a Mac + | ``gr | vp -view=open`` | generate a tree and display parse tree on a Mac + | ``p "she loves us" | vp -view=open -showdep -file=uddeps.labels -nocat`` | show a visual variant of a dependency tree #NORMAL @@ -1227,9 +1269,9 @@ flag -format. Prints a set of trees in the .dot format (the graphviz format). The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file -which is processed by graphviz and displayed by the program indicated -by the flag. The target format is postscript, unless overridden by the -flag -format. +which is processed by dot (graphviz) and displayed by the command indicated +by the view flag. The target format is postscript, unless overridden by the +flag -format. Results from multiple trees are combined to pdf with convert (ImageMagick). With option -mk, use for showing library style function names of form 'mkC'. diff --git a/doc/gf-lrec-2010.pdf b/doc/gf-lrec-2010.pdf Binary files differdeleted file mode 100644 index 83d1a58cf..000000000 --- a/doc/gf-lrec-2010.pdf +++ /dev/null diff --git a/doc/gf-people.html b/doc/gf-people.html deleted file mode 100644 index 37e430ae7..000000000 --- a/doc/gf-people.html +++ /dev/null @@ -1,132 +0,0 @@ -<!DOCTYPE html> -<html> - -<head> -<title>GF People</title> -<meta charset="UTF-8"> -<link rel=stylesheet href="../css/style.css"> -<meta name = "viewport" content = "width = device-width"> -</head> - -<body> - -<center> -<IMG SRC="Logos/gf0.png" alt="[GF]"> - -<h1>Grammatical Framework: Authors and Acknowledgements</h1> - -</center> - -The current developers and maintainers are -<a href="http://www.chalmers.se/cse/EN/organization/divisions/computing-science/people/angelov-krasimir">Krasimir Angelov</a>, -<a href="http://www.cse.chalmers.se/~hallgren/">Thomas Hallgren</a>, -and -<a href="http://www.cse.chalmers.se/~aarne/">Aarne Ranta</a>. Bug reports should be -posted via the -<a href="http://code.google.com/p/grammatical-framework/issues/list">GF bug tracker</a>. - - -<p> - -Also the following people have contributed code to some of the versions: - -<dl> - -<dt>Grégoire Détrez (University of Gothenburg) -<dt>Ramona Enache (University of Gothenburg) -<dt> -<a href="http://www.cse.chalmers.se/alumni/bringert">Björn Bringert</a> (University of Gothenburg) -<dt> -HÃ¥kan Burden (University of Gothenburg) -<dt> -Hans-Joachim Daniels (Karlsruhe) -<dt> -<a href="http://www.cs.chalmers.se/~markus">Markus Forsberg</a> (Chalmers) -<dt> -<a href="http://www.cs.chalmers.se/~krijo">Kristofer Johannisson</a> (University of Gothenburg) -<dt> -<a href="http://www.cs.chalmers.se/~janna">Janna Khegai</a> (Chalmers) -<dt> -<a href="http://www.cse.chalmers.se/~peb">Peter Ljunglöf</a> (University of Gothenburg) -<dt> -Petri Mäenpää (Nokia) -</dl> - - -At least the following colleagues are thanked for suggestions, -bug reports, and other indirect contributions to the code. (Notice: -these are early contributors - the list has not been updated since 2004 or so). - -<p> - -<a href="http://www.di.unito.it/~stefano/">Stefano Berardi</a> (Torino), - -Pascal Boldini (Paris), - -<a href="http://www.dur.ac.uk/~dcs0pcc/">Paul Callaghan</a> (Durham), - -Lauri Carlson (Helsinki), - -<a href="http://www.cse.chalmers.se/~koen">Koen Claessen</a> (Chalmers), - -<a href="http://www.cling.gu.se/~cooper">Robin Cooper</a> (Gothenburg), - -<a href="http://www.cse.chalmers.se/~coquand">Thierry Coquand</a> (Chalmers), - -<a -href="http://www.xrce.xerox.com/people/dymetman/dymetman.html">Marc -Dymetman</a> (XRCE), - -Bertrand Grégoire (Tudor Institure, Luxembourg), - -<a href="http://www.cse.chalmers.se/~reiner">Reiner Hähnle</a> (Chalmers), - -<a href="http://pauillac.inria.fr/~huet/">Gérard Huet</a> (INRIA), - -<a href="http://www.cse.chalmers.se/~patrikj">Patrik Jansson</a> (Chalmers), - -Bernard Jaulin (Paris), - -<a href="http://www.xrce.xerox.com/people/karttunen/karttunen.html"> -Lauri Karttunen</a> (PARC), - -Matti Kinnunen (Nokia), - -<a -href="http://www.xrce.xerox.com/people/lux/">Veronika -Lux</a> (XRCE), - -Per Martin-Löf (Stockholm), - -<a href="http://www.cse.chalmers.se/~bengt">Bengt Nordström</a> (Chalmers), - -<a -href="http://www.cis.uni-muenchen.de/studenten/stud_homepages/okrslar/reklame.html"> -Martin Okrslar</a> (CIS), - -Jianmin Pang (Durham), - -<a -href="http://www.xrce.xerox.com/people/pogodalla/index.fr.html">Sylvain -Pogodalla</a> (XRCE), - -<a href="http://www.inria.fr/Loic.Pottier">Loïc Pottier</a> (INRIA), - - -<a href="http://www2.parc.com/istl/members/zaenen/">Annie Zaenen</a> (PARC) - -<p> - -The GF logo was designed by Uula Ranta. - -<p> - -From 2001 to 2004, GF enjoyed funding from the -<a href="http://www.vinnova.se">Vinnova</a> foundation, within the -<a href="http://www.cse.chalmers.se/research/group/Language-technology/ILT.html"> -Interactive Languge Technology</a> project. - - -</body> -</html> - diff --git a/doc/gf-people.md b/doc/gf-people.md new file mode 100644 index 000000000..9e0177306 --- /dev/null +++ b/doc/gf-people.md @@ -0,0 +1,63 @@ +--- +title: "Grammatical Framework: Authors and Acknowledgements" +--- + +## Current maintainers + +The current maintainers of GF are + +[Krasimir Angelov](http://www.chalmers.se/cse/EN/organization/divisions/computing-science/people/angelov-krasimir), +[Thomas Hallgren](http://www.cse.chalmers.se/~hallgren/), +[Aarne Ranta](http://www.cse.chalmers.se/~aarne/), +[John J. Camilleri](http://johnjcamilleri.com), and +[Inari Listenmaa](https://inariksit.github.io/). + +This page is otherwise not up to date. +For detailed data about contributors to the code repositories since 2007, see +[here (gf-core)](https://github.com/GrammaticalFramework/gf-core/graphs/contributors) +and +[here (gf-rgl)](https://github.com/GrammaticalFramework/gf-rgl/graphs/contributors). + +## Previous contributors + +The following people have contributed code to some of the versions: + +- Grégoire Détrez (University of Gothenburg) +- Ramona Enache (University of Gothenburg) +- [Björn Bringert](http://www.cse.chalmers.se/alumni/bringert) (University of Gothenburg) +- HÃ¥kan Burden (University of Gothenburg) +- Hans-Joachim Daniels (Karlsruhe) +- [Markus Forsberg](http://www.cs.chalmers.se/~markus) (Chalmers) +- [Kristofer Johannisson](http://www.cs.chalmers.se/~krijo) (University of Gothenburg) +- [Janna Khegai](http://www.cs.chalmers.se/~janna) (Chalmers) +- [Peter Ljunglöf](http://www.cse.chalmers.se/~peb) (University of Gothenburg) +- Petri Mäenpää (Nokia) + +At least the following colleagues are thanked for suggestions, bug +reports, and other indirect contributions to the code. + +- [Stefano Berardi](http://www.di.unito.it/~stefano/) (Torino) +- Pascal Boldini (Paris) +- [Paul Callaghan](http://www.dur.ac.uk/~dcs0pcc/) (Durham) +- Lauri Carlson (Helsinki) +- [Koen Claessen](http://www.cse.chalmers.se/~koen) (Chalmers) +- [Robin Cooper](http://www.cling.gu.se/~cooper) (Gothenburg) +- [Thierry Coquand](http://www.cse.chalmers.se/~coquand) (Chalmers) +- [Marc Dymetman](http://www.xrce.xerox.com/people/dymetman/dymetman.html) (XRCE) +- Bertrand Grégoire (Tudor Institute, Luxembourg) +- [Reiner Hähnle](http://www.cse.chalmers.se/~reiner) (Chalmers) +- [Gérard Huet](http://pauillac.inria.fr/~huet/) (INRIA) +- [Patrik Jansson](http://www.cse.chalmers.se/~patrikj) (Chalmers) +- Bernard Jaulin (Paris) +- [Lauri Karttunen](http://www.xrce.xerox.com/people/karttunen/karttunen.html) (PARC) +- Matti Kinnunen (Nokia) +- [Veronika Lux](http://www.xrce.xerox.com/people/lux/) (XRCE) +- Per Martin-Löf (Stockholm) +- [Bengt Nordström](http://www.cse.chalmers.se/~bengt) (Chalmers) +- [Martin Okrslar](http://www.cis.uni-muenchen.de/studenten/stud_homepages/okrslar/reklame.html) (CIS) +- Jianmin Pang (Durham) +- [Sylvain Pogodalla](http://www.xrce.xerox.com/people/pogodalla/index.fr.html) (XRCE) +- [Loïc Pottier](http://www.inria.fr/Loic.Pottier) (INRIA) +- [Annie Zaenen](http://www2.parc.com/istl/members/zaenen/) (PARC) + +The GF logo was designed by Uula Ranta. diff --git a/doc/gf-quickstart.html b/doc/gf-quickstart.html deleted file mode 100644 index 787c23ce6..000000000 --- a/doc/gf-quickstart.html +++ /dev/null @@ -1,158 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>GF Quickstart</title> -<link rel=stylesheet href="../css/style.css"> -<meta name = "viewport" content = "width = device-width"> -</head> - - -<body> - -<center> -<img src="Logos/gf0.png"> -<p> -Aarne Ranta -<p> -October 2011 for GF 3.3 - -<p> - -<h1>Grammatical Framework Quick Start</h1> - -</center> - -This Quick Start shows a few examples of how GF can be used. -We assume that you have downloaded and installed GF, so that -the command <tt>gf</tt> works for you. See download and install -instructions <a href="../download/index.html">here</a>. - -<h2>Want to try without downloading?</h2> - -<a href="../demos/phrasebook/">Using GF translation</a> with an existing grammar. - -<p> - -<a href="../demos/gfse/">Writing GF grammars</a> in the cloud, without installing GF. - - - - -<h2>Using GF for translation and generation</h2> - -When you have downloaded and installed GF: -<ol> -<li> Copy the files -<a href="../examples/tutorial/food/Food.gf"><tt>Food.gf</tt></a>, -<a href="../examples/tutorial/food/FoodEng.gf"><tt>FoodEng.gf</tt></a>, and -<a href="../examples/tutorial/food/FoodIta.gf"><tt>FoodIta.gf</tt></a>. -Or go to <tt>GF/examples/tutorial/food/</tt>, if you have downloaded the -GF sources. - - <li> Start GF with the shell command (without the prompt <tt>$</tt>) -<pre> - $ gf FoodIta.gf FoodEng.gf -</pre> -Alternatively, start GF with <tt>gf</tt> and give the GF command <tt>import FoodIta.gf FoodEng.gf</tt>. - -<li> <b>Translation</b>. Try your first translation by giving the GF command -<pre> - parse "this cheese is very very Italian" | linearize -</pre> -Notice that the parser accept the tabulator for word completion. - -<li> <b>Generation</b>. Random-generate sentences in two languages: -<pre> - generate_random | linearize -</pre> - -<li> <b>Other commands</b>. Use the help command -<pre> - help -</pre> -<li> <b>More examples</b>. Go to <tt>GF/examples/phrasebook</tt> or some other -subdirectory of <tt>GF/examples/</tt>. Or try a resource grammar by, for instance, -<pre> - import alltenses/LangEng.gfo alltenses/LangGer.gfo - - parse -lang=Eng "I love you" | linearize -treebank -</pre> -The resource grammars are found relative to the value of <tt>GF_LIB_PATH</tt>, which -you may have to set; see <a href="../download/index.html">here</a> for instructions. - - - -</ol> - - - -<h2>Grammar development</h2> - -Add words to the <tt>Food</tt> -grammars and try the above commands again. For instance, add the following lines: -<pre> - Bread : Kind ; -- in Food.gf - Bread = {s = "bread"} ; -- in FoodEng.gf - Bread = {s = "pane"} ; -- in FoodIta.gf -</pre> -and start GF again with the same command. Now you can even translate -<i>this bread is very Italian</i>. -</ol> -To lear more on GF commands and -grammar development, go to the one of the tutorials: -<ul> -<li> <a href="tutorial/gf-tutorial.html">GF Tutorial</a>: older, more programmer-oriented -<li> <a href="gf-lrec-2010.pdf">GF Resource Tutorial</a>: newer, more linguist-oriented -</ul> -To learn about how GF is used for easily writing grammars for 16 languages, consult the -<ul> -<li> <a href="../lib/doc/synopsis.html">GF Resource Grammar Library</a>. -</ul> - - - -<h2>Run-time grammars and web applications</h2> - -GF has its own "machine language", PGF (Portable Grammar Format), -which is recommended for use in applications at run time. To produce a PGF file from -the two grammars above, do -<pre> - gf -make FoodIta.gf FoodEng.gf - wrote Food.pgf -</pre> -You can use this in Haskell and Java programs, and also on web services, such as -<ul> -<li> the - <a href="http://cloud.grammaticalframework.org/minibar/minibar.html">minibar</a> - fridge magnets -</ul> - -The quickest way to provide a GF web service is to start GF with the <tt>-server</tt> option: -<pre> - $ gf -server - This is GF version 3.3 - Built on linux/i386 with ghc-7.0, flags: interrupt server cclazy - Document root = /usr/local/share/gf-3.3/www - Starting HTTP server, open http://localhost:41296/ in your web browser. -</pre> -You can view it locally by pointing your -browser to the URL shown. You can add your own <tt>.pgf</tt> grammar to the service by -copying it over to the <tt>documentRoot</tt> directory. Just push "reload" in -your browser after each such update. - -<p> - -To build more customized web application, consult the -<a href="http://code.google.com/p/grammatical-framework/wiki/SideBar?tm=6">developer wiki</a>. - - -<h2>User group</h2> - -You are welcome to join the <A HREF="http://groups.google.com/group/gf-dev">User Group</A> -to get help and discuss GF-related issues! - - - - - -</body></html> diff --git a/doc/gf-reference.pdf b/doc/gf-reference.pdf Binary files differdeleted file mode 100644 index 6eed355b8..000000000 --- a/doc/gf-reference.pdf +++ /dev/null diff --git a/doc/gf-reference.t2t b/doc/gf-reference.t2t deleted file mode 100644 index aab828f0a..000000000 --- a/doc/gf-reference.t2t +++ /dev/null @@ -1,493 +0,0 @@ -GF Quick Reference -Aarne Ranta -April 4, 2006 - -% NOTE: this is a txt2tags file. -% Create an html file from this file using: -% txt2tags -thtml gf-reference.t2t - -%!style:../css/style.css -%!target:html -%!options: --toc -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - -This is a quick reference on GF grammars. It aims to -cover all forms of expression available when writing -grammars. It assumes basic knowledge of GF, which -can be acquired from the -[GF Tutorial http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html]. -Help on GF commands is obtained on line by the -help command (``help``), and help on invoking -GF with (``gf -help``). - - -===A complete example=== - -This is a complete example of a GF grammar divided -into three modules in files. The grammar recognizes the -phrases //one pizza// and //two pizzas//. - -File ``Order.gf``: -``` -abstract Order = { -cat - Order ; - Item ; -fun - One, Two : Item -> Order ; - Pizza : Item ; -} -``` -File ``OrderEng.gf`` (the top file): -``` ---# -path=.:prelude -concrete OrderEng of Order = - open Res, Prelude in { -flags startcat=Order ; -lincat - Order = SS ; - Item = {s : Num => Str} ; -lin - One it = ss ("one" ++ it.s ! Sg) ; - Two it = ss ("two" ++ it.s ! Pl) ; - Pizza = regNoun "pizza" ; -} -``` -File ``Res.gf``: -``` -resource Res = open Prelude in { -param Num = Sg | Pl ; -oper regNoun : Str -> {s : Num => Str} = - \dog -> {s = table { - Sg => dog ; - _ => dog + "s" - } - } ; -} -``` -To use this example, do -``` - % gf -- in shell: start GF - > i OrderEng.gf -- in GF: import grammar - > p "one pizza" -- parse string - > l Two Pizza -- linearize tree -``` - - - -===Modules and files=== - -One module per file. -File named ``Foo.gf`` contains module named -``Foo``. - -Each module has the structure -``` -moduletypename = - Inherits ** -- optional - open Opens in -- optional - { Judgements } -``` -Inherits are names of modules of the same type. -Inheritance can be restricted: -``` - Mo[f,g], -- inherit only f,g from Mo - Lo-[f,g] -- inheris all but f,g from Lo -``` -Opens are possible in ``concrete`` and ``resource``. -They are names of modules of these two types, possibly -qualified: -``` - (M = Mo), -- refer to f as M.f or Mo.f - (Lo = Lo) -- refer to f as Lo.f -``` -Module types and judgements in them: -``` -abstract A -- cat, fun, def, data -concrete C of A -- lincat, lin, lindef, printname -resource R -- param, oper - -interface I -- like resource, but can have - oper f : T without definition -instance J of I -- like resource, defines opers - that I leaves undefined -incomplete -- functor: concrete that opens - concrete CI of A = one or more interfaces - open I in ... -concrete CJ of A = -- completion: concrete that - CI with instantiates a functor by - (I = J) instances of open interfaces -``` -The forms -``param``, ``oper`` -may appear in ``concrete`` as well, but are then -not inherited to extensions. - -All modules can moreover have ``flags`` and comments. -Comments have the forms -``` --- till the end of line -{- any number of lines between -} ---# used for compiler pragmas -``` -A ``concrete`` can be opened like a ``resource``. -It is translated as follows: -``` -cat C ---> oper C : Type = -lincat C = T T ** {lock_C : {}} - -fun f : G -> C ---> oper f : A* -> C* = \g -> -lin f = t t g ** {lock_C = <>} -``` -An ``abstract`` can be opened like an ``interface``. -Any ``concrete`` of it then works as an ``instance``. - - - -===Judgements=== - -``` -cat C -- declare category C -cat C (x:A)(y:B x) -- dependent category C -cat C A B -- same as C (x : A)(y : B) -fun f : T -- declare function f of type T -def f = t -- define f as t -def f p q = t -- define f by pattern matching -data C = f | g -- set f,g as constructors of C -data f : A -> C -- same as - fun f : A -> C; data C=f - -lincat C = T -- define lin.type of cat C -lin f = t -- define lin. of fun f -lin f x y = t -- same as lin f = \x y -> t -lindef C = \s -> t -- default lin. of cat C -printname fun f = s -- printname shown in menus -printname cat C = s -- printname shown in menus -printname f = s -- same as printname fun f = s - -param P = C | D Q R -- define parameter type P - with constructors - C : P, D : Q -> R -> P -oper h : T = t -- define oper h of type T -oper h = t -- omit type, if inferrable - -flags p=v -- set value of flag p -``` -Judgements are terminated by semicolons (``;``). -Subsequent judgments of the same form may share the -keyword: -``` -cat C ; D ; -- same as cat C ; cat D ; -``` -Judgements can also share RHS: -``` -fun f,g : A -- same as fun f : A ; g : A -``` - - -===Types=== - -Abstract syntax (in ``fun``): -``` -C -- basic type, if cat C -C a b -- basic type for dep. category -(x : A) -> B -- dep. functions from A to B -(_ : A) -> B -- nondep. functions from A to B -(p,q : A) -> B -- same as (p : A)-> (q : A) -> B -A -> B -- same as (_ : A) -> B -Int -- predefined integer type -Float -- predefined float type -String -- predefined string type -``` -Concrete syntax (in ``lincat``): -``` -Str -- token lists -P -- parameter type, if param P -P => B -- table type, if P param. type -{s : Str ; p : P}-- record type -{s,t : Str} -- same as {s : Str ; t : Str} -{a : A} **{b : B}-- record type extension, same as - {a : A ; b : B} -A * B * C -- tuple type, same as - {p1 : A ; p2 : B ; p3 : C} -Ints n -- type of n first integers -``` -Resource (in ``oper``): all those of concrete, plus -``` -Tok -- tokens (subtype of Str) -A -> B -- functions from A to B -Int -- integers -Strs -- list of prefixes (for pre) -PType -- parameter type -Type -- any type -``` -As parameter types, one can use any finite type: -``P`` defined in ``param P``, -``Ints n``, and record types of parameter types. - - - -===Expressions=== - -Syntax trees = full function applications -``` -f a b -- : C if fun f : A -> B -> C -1977 -- : Int -3.14 -- : Float -"foo" -- : String -``` -Higher-Order Abstract syntax (HOAS): functions as arguments: -``` -F a (\x -> c) -- : C if a : A, c : C (x : B), - fun F : A -> (B -> C) -> C -``` -Tokens and token lists -``` -"hello" -- : Tok, singleton Str -"hello" ++ "world" -- : Str -["hello world"] -- : Str, same as "hello" ++ "world" -"hello" + "world" -- : Tok, computes to "helloworld" -[] -- : Str, empty list -``` -Parameters -``` -Sg -- atomic constructor -VPres Sg P2 -- applied constructor -{n = Sg ; p = P3} -- record of parameters -``` -Tables -``` -table { -- by full branches - Sg => "mouse" ; - Pl => "mice" - } -table { -- by pattern matching - Pl => "mice" ; - _ => "mouse" -- wildcard pattern - } -table { - n => regn n "cat" -- variable pattern - } -table Num {...} -- table given with arg. type -table ["ox"; "oxen"] -- table as course of values -\\_ => "fish" -- same as table {_ => "fish"} -\\p,q => t -- same as \\p => \\q => t - -t ! p -- select p from table t -case e of {...} -- same as table {...} ! e -``` -Records -``` -{s = "Liz"; g = Fem} -- record in full form -{s,t = "et"} -- same as {s = "et";t= "et"} -{s = "Liz"} ** -- record extension: same as - {g = Fem} {s = "Liz" ; g = Fem} - -<a,b,c> -- tuple, same as {p1=a;p2=b;p3=c} -``` -Functions -``` -\x -> t -- lambda abstract -\x,y -> t -- same as \x -> \y -> t -\x,_ -> t -- binding not in t -``` -Local definitions -``` -let x : A = d in t -- let definition -let x = d in t -- let defin, type inferred -let x=d ; y=e in t -- same as - let x=d in let y=e in t -let {...} in t -- same as let ... in t - -t where {...} -- same as let ... in t -``` -Free variation -``` -variants {x ; y} -- both x and y possible -variants {} -- nothing possible -``` -Prefix-dependent choices -``` -pre {"a" ; "an" / v} -- "an" before v, "a" otherw. -strs {"a" ; "i" ;"o"}-- list of condition prefixes -``` -Typed expression -``` -<t:T> -- same as t, to help type inference -``` -Accessing bound variables in ``lin``: use fields ``$1, $2, $3,...``. -Example: -``` -fun F : (A : Set) -> (El A -> Prop) -> Prop ; -lin F A B = {s = ["for all"] ++ A.s ++ B.$1 ++ B.s} -``` - - -===Pattern matching=== - -These patterns can be used in branches of ``table`` and -``case`` expressions. Patterns are matched in the order in -which they appear in the grammar. -``` -C -- atomic param constructor -C p q -- param constr. applied to patterns -x -- variable, matches anything -_ -- wildcard, matches anything -"foo" -- string -56 -- integer -{s = p ; y = q} -- record, matches extensions too -<p,q> -- tuple, same as {p1=p ; p2=q} -p | q -- disjunction, binds to first match -x@p -- binds x to what p matches -- p -- negation -p + "s" -- sequence of two string patterns -p* -- repetition of a string pattern -``` - -===Sample library functions=== - -``` --- lib/prelude/Predef.gf -drop : Int -> Tok -> Tok -- drop prefix of length -take : Int -> Tok -> Tok -- take prefix of length -tk : Int -> Tok -> Tok -- drop suffix of length -dp : Int -> Tok -> Tok -- take suffix of length -occur : Tok -> Tok -> PBool -- test if substring -occurs : Tok -> Tok -> PBool -- test if any char occurs -show : (P:Type) -> P ->Tok -- param to string -read : (P:Type) -> Tok-> P -- string to param -toStr : (L:Type) -> L ->Str -- find "first" string - --- lib/prelude/Prelude.gf -param Bool = True | False -oper - SS : Type -- the type {s : Str} - ss : Str -> SS -- construct SS - cc2 : (_,_ : SS) -> SS -- concat SS's - optStr : Str -> Str -- string or empty - strOpt : Str -> Str -- empty or string - bothWays : Str -> Str -> Str -- X++Y or Y++X - init : Tok -> Tok -- all but last char - last : Tok -> Tok -- last char - prefixSS : Str -> SS -> SS - postfixSS : Str -> SS -> SS - infixSS : Str -> SS -> SS -> SS - if_then_else : (A : Type) -> Bool -> A -> A -> A - if_then_Str : Bool -> Str -> Str -> Str -``` - - -===Flags=== - -Flags can appear, with growing priority, -- in files, judgement ``flags`` and without dash (``-``) -- as flags to ``gf`` when invoked, with dash -- as flags to various GF commands, with dash - - -Some common flags used in grammars: -``` -startcat=cat use this category as default - -lexer=literals int and string literals recognized -lexer=code like program code -lexer=text like text: spacing, capitals -lexer=textlit text, unknowns as string lits - -unlexer=code like program code -unlexer=codelit code, remove string lit quotes -unlexer=text like text: punctuation, capitals -unlexer=textlit text, remove string lit quotes -unlexer=concat remove all spaces -unlexer=bind remove spaces around "&+" - -optimize=all_subs best for almost any concrete -optimize=values good for lexicon concrete -optimize=all usually good for resource -optimize=noexpand for resource, if =all too big -``` -For the full set of values for ``FLAG``, -use on-line ``h -FLAG``. - - - -===File import search paths=== - -Colon-separated list of directories searched in the -given order: -``` ---# -path=.:../abstract:../common:prelude -``` -This can be (in order of increasing priority), as -first line in the file, as flag to ``gf`` -when invoked, or as flag to the ``i`` command. -The prefix ``--#`` is used only in files. - -GF attempts to satisfy an ``import`` command by searching for the -import filename in the above search paths, initially qualified -relative to the current working directory. If the file is not found in -that initial expansion, the search paths are re-qualified relative to -the directories given in the ``GF_LIB_PATH`` environment variable. If -``GF_LIB_PATH`` is not defined, its default value is -``/usr/local/share/gf-3.9/lib`` (assuming you have GF version 3.9). - -If your GF resource grammar libraries are installed somewhere else, -you will want to set ``GF_LIB_PATH`` to point there instead. In a -pinch, you can point to the ``GF/lib/src/`` folder in your clone of -the GF source code repository. - -Developers of resource grammars may find it useful to define multiple -directories, colon-separated, in ``GF_LIB_PATH``. - - -===Alternative grammar formats=== - -**Old GF** (before GF 2.0): -all judgements in any kinds of modules, -division into files uses ``include``s. -A file ``Foo.gf`` is recognized as the old format -if it lacks a module header. - -**Context-free** (file ``foo.cf``). The form of rules is e.g. -``` -Fun. S ::= NP "is" AP ; -``` -If ``Fun`` is omitted, it is generated automatically. -Rules must be one per line. The RHS can be empty. - -**Extended BNF** (file ``foo.ebnf``). The form of rules is e.g. -``` -S ::= (NP+ ("is" | "was") AP | V NP*) ; -``` -where the RHS is a regular expression of categories -and quoted tokens: ``"foo", CAT, T U, T|U, T*, T+, T?``, or empty. -Rule labels are generated automatically. - - -**Probabilistic grammars** (not a separate format). -You can set the probability of a function ``f`` (in its value category) by -``` ---# prob f 0.009 -``` -These are put into a file given to GF using the ``probs=File`` flag -on command line. This file can be the grammar file itself. - -**Example-based grammars** (file ``foo.gfe``). Expressions of the form -``` -in Cat "example string" -``` -are preprocessed by using a parser given by the flag -``` ---# -resource=File -``` -and the result is written to ``foo.gf``. - - -===References=== - -[GF Homepage http://www.grammaticalframework.org/] - -A. Ranta, Grammatical Framework: A Type-Theoretical Grammar Formalism. -//The Journal of Functional Programming//, vol. 14:2. 2004, pp. 145-189. - diff --git a/doc/gf-refman.html b/doc/gf-refman.html index edfb2c625..31456b09a 100644 --- a/doc/gf-refman.html +++ b/doc/gf-refman.html @@ -1,16 +1,33 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <HEAD> -<TITLE>GF Language Reference Manual</TITLE> -</HEAD><BODY BGCOLOR="white" TEXT="black"> -<P ALIGN="center"><CENTER><H1>GF Language Reference Manual</H1> + <TITLE>GF Language Reference Manual</TITLE> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> + <style> + code { + color: inherit; + } + center { + margin-bottom: 1rem; + } + </style> +</HEAD> +<BODY> +<div class="container-fluid my-5" style="max-width:1200px"> + +<P ALIGN="center"> + <CENTER> + <a href=".."> + <img src="Logos/gf1.svg" height="200px" class="mb-3" alt="GF Logo"> + </a> + <H1>GF Language Reference Manual</H1> <FONT SIZE="4"> <I>Aarne Ranta</I>, <I>Krasimir Angelov</I><BR>June 2014, GF 3.6 </FONT></CENTER> <P></P> -<HR NOSHADE SIZE=1> -<P></P> <UL> <LI><A HREF="#toc1">Overview of GF</A> <LI><A HREF="#toc2">The module system</A> @@ -92,7 +109,7 @@ </UL> <P></P> -<HR NOSHADE SIZE=1> +<HR> <P></P> <P> @@ -482,7 +499,7 @@ to reuse abstract and concrete modules as resources. The following table gives, for all module types, the possible module types of their <I>extends</I> and <I>opens</I>, as well as the forms of judgement legal in that module type. </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>module type</TH> <TH>extends</TH> @@ -553,7 +570,7 @@ system, replacing modules by types and functions. This model could actually be developed towards treating modules in GF as first-class objects; so far, however, this step has not been motivated by any practical needs. </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>module</TH> <TH COLSPAN="2">object and type</TH> @@ -918,7 +935,7 @@ The table moreover indicates whether the judgement has a default value, and whether it contributes to the <B>name base</B>, i.e. introduces a new name to the scope. </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>judgement</TH> <TH>where</TH> @@ -1658,7 +1675,7 @@ inherited modules. <P> Here are some flags commonly included in grammars. </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>flag</TH> <TH>value</TH> @@ -1721,7 +1738,7 @@ Type and other expressions have a system of <B>precedences</B>. The following ta summarizes all expression forms, from the highest to the lowest precedence. Some expressions are moreover left- or right-associative. </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>prec</TH> <TH>expression example</TH> @@ -2128,7 +2145,7 @@ where GF provides three predefined categories for abstract syntax, with predefined expressions: </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>category</TH> <TH COLSPAN="2">expressions</TH> @@ -2264,7 +2281,7 @@ Expressions of type <CODE>Str</CODE> have the following canonical forms: <LI><B>the empty token list</B>, <CODE>[]</CODE> <LI><B>concatenation</B>, <I>s</I> <CODE>++</CODE> <I>t</I>, where <I>s,t</I> : <CODE>Str</CODE> <LI><B>prefix-dependent choice</B>, - <CODE>pre {p<sub>1</sub> => s<sub>1</sub> ; ... ; p<sub>n</sub> => s<sub>n</sub> ; _ => s }, where + <CODE>pre {p<sub>1</sub> => s<sub>1</sub> ; ... ; p<sub>n</sub> => s<sub>n</sub> ; _ => s }</CODE>, where <UL> <LI><I>s</I>, <i>s</i><sub>1</sub>,...,<i>s</i><sub>n</sub>, <i>p</i><sub>1</sub>,...,<i>p</i><sub>n</sub> : <CODE>Str</CODE> </UL> @@ -3016,7 +3033,7 @@ The following predefined operations are defined in the resource module <CODE>prelude/Predef.gf</CODE>. Their implementations are defined as a part of the GF grammar compiler. </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>operation</TH> <TH>type</TH> @@ -3202,7 +3219,7 @@ the abstract syntax. <B>Compiler pragmas</B> are a special form of comments prefixed with <CODE>--#</CODE>. Currently GF interprets the following pragmas. </P> -<TABLE CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>pragma</TH> <TH COLSPAN="2">explanation</TH> @@ -3300,7 +3317,7 @@ The rules have the form where an <I>RHS</I> can be any regular expression built from quoted strings and category symbols, in the following ways: </P> -<TABLE ALIGN="center" CELLPADDING="4" BORDER="1"> +<TABLE class="table"> <TR> <TH>RHS item</TH> <TH COLSPAN="2">explanation</TH> @@ -4600,6 +4617,6 @@ All other symbols are terminals. </TR> </TABLE> -<P></P> - -</BODY></HTML> +</div> +</BODY> +</HTML> diff --git a/doc/tutorial/gf-tutorial.t2t b/doc/tutorial/gf-tutorial.t2t index 2e3f086f7..581c99ec1 100644 --- a/doc/tutorial/gf-tutorial.t2t +++ b/doc/tutorial/gf-tutorial.t2t @@ -8,7 +8,7 @@ December 2010 for GF 3.2 % txt2tags --toc -ttex gf-tutorial.txt %!target:html -%!encoding: iso-8859-1 +%!encoding: utf-8 %!options: --toc %!postproc(tex) : "\\subsection\*" "\\newslide" @@ -836,8 +836,8 @@ Finnish and an Italian concrete syntaxes: lin Hello recip = {s = "terve" ++ recip.s} ; World = {s = "maailma"} ; - Mum = {s = "äiti"} ; - Friends = {s = "ystävät"} ; + Mum = {s = "äiti"} ; + Friends = {s = "ystävät"} ; } concrete HelloIta of Hello = { @@ -925,7 +925,7 @@ Default of the language flag (``-lang``): the last-imported concrete syntax. **Multilingual generation**: ``` > parse -lang=HelloEng "hello friends" | linearize - terve ystävät + terve ystävät ciao amici hello friends ``` @@ -1335,7 +1335,7 @@ Just (?) replace English words with their dictionary equivalents: Phrase, Item, Kind, Quality = {s : Str} ; lin - Is item quality = {s = item.s ++ "è" ++ quality.s} ; + Is item quality = {s = item.s ++ "è" ++ quality.s} ; This kind = {s = "questo" ++ kind.s} ; That kind = {s = "quel" ++ kind.s} ; QKind quality kind = {s = kind.s ++ quality.s} ; @@ -1446,11 +1446,11 @@ linearizations in different languages: > gr -number=2 | l -treebank Is (That Cheese) (Very Boring) - quel formaggio è molto noioso + quel formaggio è molto noioso that cheese is very boring Is (That Cheese) Fresh - quel formaggio è fresco + quel formaggio è fresco that cheese is fresh ``` @@ -1472,14 +1472,14 @@ answer given in another language. You can interrupt the quiz by entering a line consisting of a dot ('.'). this fish is warm - questo pesce è caldo + questo pesce è caldo > Yes. Score 1/1 this cheese is Italian - questo formaggio è noioso - > No, not questo formaggio è noioso, but - questo formaggio è italiano + questo formaggio è noioso + > No, not questo formaggio è noioso, but + questo formaggio è italiano Score 1/2 this fish is expensive @@ -1756,7 +1756,7 @@ Simultaneous extension and opening: lincat Question = SS ; lin - QIs item quality = ss (item.s ++ "è" ++ quality.s) ; + QIs item quality = ss (item.s ++ "è" ++ quality.s) ; Pizza = ss "pizza" ; } ``` @@ -2364,10 +2364,10 @@ in English, with special care taken of variations with the suffix + Implement the German **Umlaut** operation on word stems. The operation changes the vowel of the stressed stem syllable as follows: -//a// to //ä//, //au// to //äu//, //o// to //ö//, and //u// to //ü//. You +//a// to //ä//, //au// to //äu//, //o// to //ö//, and //u// to //ü//. You can assume that the operation only takes syllables as arguments. Test the -operation to see whether it correctly changes //Arzt// to //Ärzt//, -//Baum// to //Bäum//, //Topf// to //Töpf//, and //Kuh// to //Küh//. +operation to see whether it correctly changes //Arzt// to //Ärzt//, +//Baum// to //Bäum//, //Topf// to //Töpf//, and //Kuh// to //Küh//. @@ -2480,10 +2480,10 @@ The command ``morpho_quiz = mq`` generates inflection exercises. Welcome to GF Morphology Quiz. ... - réapparaître : VFin VCondit Pl P2 - réapparaitriez - > No, not réapparaitriez, but - réapparaîtriez + réapparaître : VFin VCondit Pl P2 + réapparaitriez + > No, not réapparaitriez, but + réapparaîtriez Score 0/1 ``` To create a list for later use, use the command ``morpho_list = ml`` @@ -2563,7 +2563,7 @@ We need only number variation for the copula. ``` copula : Number -> Str = \n -> case n of { - Sg => "è" ; + Sg => "è" ; Pl => "sono" } ; ``` @@ -3305,13 +3305,13 @@ we can write a **functor instantiation**, oper wine_N = mkN "Wein" ; pizza_N = mkN "Pizza" "Pizzen" feminine ; - cheese_N = mkN "Käse" "Käsen" masculine ; + cheese_N = mkN "Käse" "Käsen" masculine ; fish_N = mkN "Fisch" ; fresh_A = mkA "frisch" ; - warm_A = mkA "warm" "wärmer" "wärmste" ; + warm_A = mkA "warm" "wärmer" "wärmste" ; italian_A = mkA "italienisch" ; expensive_A = mkA "teuer" ; - delicious_A = mkA "köstlich" ; + delicious_A = mkA "köstlich" ; boring_A = mkA "langweilig" ; } ``` @@ -3362,11 +3362,11 @@ Lexicon instance cheese_N = mkN "juusto" ; fish_N = mkN "kala" ; fresh_A = mkA "tuore" ; - warm_A = mkA "lämmin" ; + warm_A = mkA "lämmin" ; italian_A = mkA "italialainen" ; expensive_A = mkA "kallis" ; delicious_A = mkA "herkullinen" ; - boring_A = mkA "tylsä" ; + boring_A = mkA "tylsä" ; } ``` Functor instantiation @@ -3626,7 +3626,7 @@ Goals: - semantic definitions These concepts are inherited from **type theory** (more precisely: -constructive type theory, or Martin-Löf type theory). +constructive type theory, or Martin-Löf type theory). Type theory is the basis **logical frameworks**. @@ -4639,7 +4639,7 @@ output. Therefore it can be a part of a pipe and read and write files. The simplest way to translate is to ``echo`` input to the program: ``` % echo "this wine is delicious" | ./trans Food.pgf - questo vino è delizioso + questo vino è delizioso ``` The result is given in all languages except the input language. diff --git a/doc/txt2html.sh b/doc/txt2html.sh deleted file mode 100644 index 801541e95..000000000 --- a/doc/txt2html.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -FILES="darcs.txt transfer-reference.txt transfer-tutorial.txt \ - transfer.txt" - -for f in $FILES; do - h=`basename "$f" ".txt"`.html - if [ "$f" -nt "$h" ]; then - txt2tags $f - else - echo "$h is newer than $f, skipping" - fi -done diff --git a/download/encoding-change.t2t b/download/encoding-change.t2t index b5d7d4059..0a56977de 100644 --- a/download/encoding-change.t2t +++ b/download/encoding-change.t2t @@ -1,10 +1,6 @@ GF character encoding changes Thomas Hallgren -%%mtime(%F) - -%!style:../css/style.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> +2013-12-18 ==Changes to character encodings in GF grammar files == diff --git a/download/index-3.1.6.t2t b/download/index-3.1.6.t2t index ee2ebbc85..2c04291ee 100644 --- a/download/index-3.1.6.t2t +++ b/download/index-3.1.6.t2t @@ -16,7 +16,7 @@ GF 3.1.6 released 23 April 2010. - Windows (zipped executable): [``gf-3.1.6-bin-i486-windows.zip`` gf-3.1.6-bin-i486-windows.zip] (1.6 MB) -- Ubuntu Linux (gzipped executable): +- Ubuntu Linux (gzipped executable): [``gf-3.1.6-bin-i486-linux.gz`` gf-3.1.6-bin-i486-linux.gz] (1.7 MB) - compiled library package: @@ -25,7 +25,7 @@ GF 3.1.6 released 23 April 2010. - full source package (GF system, libraries, examples, documentation): [``gf-3.1.6-src.tar.gz`` gf-3.1.6-src.tar.gz] (11 MB) - + GF is also on [Hackage http://hackage.haskell.org/package/gf] @@ -40,7 +40,7 @@ What's new? See the [release notes release-3.1.6.html]. ==Installation instructions== -The Windows package is installed by just unpacking it anywhere. +The Windows package is installed by just unpacking it anywhere. It finds the libraries relative to the ``.exe`` file. To install a binary package for MacOS X or Linux: uncompress the executable and diff --git a/download/index-3.10.md b/download/index-3.10.md new file mode 100644 index 000000000..5ea18bf90 --- /dev/null +++ b/download/index-3.10.md @@ -0,0 +1,186 @@ +--- +title: Grammatical Framework Download and Installation +... + +**GF 3.10** was released on 28 November 2018. +It is the first version of GF which _does not include the RGL_. + +What's new? See the [release notes](release-3.10.html). + +## Binary packages + +All binary releases are now hosted on [GitHub](https://github.com/GrammaticalFramework/gf-core/releases). + +| Platform | Download | Features | How to install | +|:----------------|:-------------------------------------------------------------|:-----------|:-----------------------------------------------------------| +| macOS | [gf-3.10.pkg](gf-3.10.pkg) | GF,S,C,J,P | Double-click on the package icon | +| macOS | [gf-3.10-bin-intel-mac.tar.gz](gf-3.10-bin-intel-mac.tar.gz) | GF,S,C,J,P | `sudo tar -C /usr/local -zxf gf-3.10-bin-intel-mac.tar.gz` | +| Raspian 9.1 | [gf\_3.10-1\_armhf.deb](gf_3.10-1_armhf.deb) | GF,S,C,J,P | `sudo dpkg -i gf_3.10-1_armhf.deb` | +| Ubuntu (32-bit) | [gf\_3.10-1\_i386.deb](gf_3.10-1_i386.deb) | GF,S,C,J,P | `sudo dpkg -i gf_3.10-1_i386.deb` | +| Ubuntu (64-bit) | [gf\_3.10-1\_amd64.deb](gf_3.10-1_amd64.deb) | GF,S,C,J,P | `sudo dpkg -i gf_3.10-1_amd64.deb` | +| Windows | [gf-3.10-bin-windows.zip](gf-3.10-bin-windows.zip) | GF,S | `unzip gf-3.10-bin-windows.zip` | + +**Features** + +- GF = GF shell and grammar compiler +- S = `gf -server` mode +- C = C run-time system +- J/P = Java/Python binding to the C run-time system + +### Notes + +The Windows package is installed by just unpacking it anywhere. You will +probably need to set the `PATH` and `GF_LIB_PATH` environment variables, +see Inari's notes on [Installing GF on Windows](http://www.grammaticalframework.org/~inari/gf-windows.html#toc3). + +The Ubuntu `.deb` packages should work on Ubuntu 16.04 and 17.04 and +similar Linux distributions. + +The Raspian `.deb` package was created on a Raspberry Pi 3 and will +probably work on other ARM-based systems running Debian 9 (stretch) or +similar Linux distributions. + +The packages for macOS (Mac OS X) should work on at least 10.11 and +10.12 (El Capitan and Sierra). + +The Mac OS and Linux `.tar.gz` packages are designed to be installed in +`/usr/local`. You can install them in other locations, but then you need +to set the `GF_LIB_PATH` environment variable: + +``` +export GF_LIB_PATH=/usr/local/share/gf-3.9/lib +``` + +where `/usr/local` should be replaced with the path to the location +where you unpacked the package. + +## Installing the latest release from source + +[GF is on Hackage](http://hackage.haskell.org/package/gf), so under +normal circumstances the prodedure is fairly simple: + +1. Install a recent version of the [Haskell + Platform](http://hackage.haskell.org/platform), e.g. version 7.10.3 + (see note 2 below) +2. `cabal update` +3. On Linux: install some C libraries from your Linux distribution (see + note 1 below) +4. `cabal install gf` + +You can also download full source packages from GitHub: + +- [GF releases](https://github.com/GrammaticalFramework/gf-core/releases) +- [RGL releases](https://github.com/GrammaticalFramework/gf-rgl/releases) + +### Notes + +**Installation location** + +The above steps installs GF for a single user. The executables are put +in `$HOME/.cabal/bin` (or, with recent versions of the Haskell platform +on Mac OS X, in `$HOME/Library/Haskell/bin`), so it is a good idea to +put a line in your `.bash_profile` or `.profile` to add that directory +to you path: + +``` +PATH=$HOME/.cabal/bin:$PATH +``` + +or + +``` +PATH=$HOME/Library/Haskell/bin:$PATH +``` + +**Build tools** + +*TODO* Alex, Happy + +**Haskeline** + +GF uses [`haskeline`](http://hackage.haskell.org/package/haskeline), which +on Linux depends on some non-Haskell libraries that won't be installed +automatically by cabal, and therefore need to be installed manually. +Here is one way to do this: + +- On Ubuntu: `sudo apt-get install libghc-haskeline-dev` +- On Fedora: `sudo yum install ghc-haskeline-devel` + +**GHC version** + +The GF source code has been updated to compile with GHC +8.2.1. Using older versions of GHC (e.g. 8.0.x and 7.10.3) should still +work too. + +## Installing from the latest developer source code + +If you haven't already, clone our repository with: + +``` +git clone https://github.com/GrammaticalFramework/gf-core.git +``` + +If you've already cloned the repository previously, update with: + +``` +git pull +``` + +Then install with: + +``` +cabal install +``` + +or + +``` +stack install +``` + +The above notes for installing from source apply also in these cases. +For more info on working with the GF source code, see the +[GF Developers Guide](../doc/gf-developers.html). + +## Installing the RGL + +RGL releases are hosted on [GitHub](https://github.com/GrammaticalFramework/gf-rgl/releases). + +### Download pre-compiled + +TODO ... + +### Download release & compile + +TODO ... + +### Download latest developer version & compile + +Similar to the steps above, you need to + +``` +git clone https://github.com/GrammaticalFramework/gf-core.git +``` + +And then run + +``` +make +``` + +For more details about building the RGL, see [this page](https://github.com/GrammaticalFramework/gf-rgl/blob/master/README.md). + +## Older releases + +- [GF 3.9](index-3.9.html) (August 2017) +- [GF 3.8](index-3.8.html) (June 2016) +- [GF 3.7.1](index-3.7.1.html) (October 2015) +- [GF 3.7](index-3.7.html) (June 2015) +- [GF 3.6](index-3.6.html) (June 2014) +- [GF 3.5](index-3.5.html) (August 2013) +- [GF 3.4](index-3.4.html) (January 2013) +- [GF 3.3.3](index-3.3.3.html) (March 2012) +- [GF 3.3](index-3.3.html) (October 2011) +- [GF 3.2.9](index-3.2.9.html) source-only snapshot (September 2011) +- [GF 3.2](index-3.2.html) (December 2010) +- [GF 3.1.6](index-3.1.6.html) (April 2010) diff --git a/download/index-3.2.9.t2t b/download/index-3.2.9.t2t index f43ca30b0..61fa11a45 100644 --- a/download/index-3.2.9.t2t +++ b/download/index-3.2.9.t2t @@ -1,11 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): <TD><B> <TH> -%!postproc(html): </B></TD> </TH> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - **GF 3.2.9** source-only snapshot was released on 12 September 2011. What's new? Faster grammar compilation! @@ -77,9 +72,3 @@ The above notes for installing from source apply also in this case. - [GF 3.2 index-3.2.html] (December 2011). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] - diff --git a/download/index-3.2.t2t b/download/index-3.2.t2t index c71cbcbb8..a1ffc8a0f 100644 --- a/download/index-3.2.t2t +++ b/download/index-3.2.t2t @@ -1,11 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): <TD><B> <TH> -%!postproc(html): </B></TD> </TH> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - **GF 3.2** was released on 23 December 2010. What's new? See the [Release notes release-3.2.html]. @@ -27,7 +22,7 @@ More packages might be added later. ===Notes=== -The Windows package is installed by just unpacking it anywhere. +The Windows package is installed by just unpacking it anywhere. It finds the libraries relative to the ``.exe`` file. The ``.deb`` packages work on Ubuntu 10.04 and 10.10. @@ -105,8 +100,3 @@ Subsequently: ``` The above notes for installing from source apply also in this case. - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] - diff --git a/download/index-3.3.3.t2t b/download/index-3.3.3.t2t index 071041676..dfc77f84c 100644 --- a/download/index-3.3.3.t2t +++ b/download/index-3.3.3.t2t @@ -1,12 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <TD><B> <TH> -%!postproc(html): </B></TD> </TH> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - **GF 3.3.3** was released on 3 March 2012. What's new? See the [Release notes release-3.3.3.html]. @@ -24,7 +18,7 @@ What's new? See the [Release notes release-3.3.3.html]. ===Notes=== -The Windows package is installed by just unpacking it anywhere. +The Windows package is installed by just unpacking it anywhere. It finds the libraries relative to the ``.exe`` file. %The ``.deb`` packages work on Ubuntu 10.04 and 10.10. @@ -127,9 +121,3 @@ For more info, see the [GF Developers Guide ../doc/gf-developers.html]. - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] - diff --git a/download/index-3.3.t2t b/download/index-3.3.t2t index 5c6cdb053..1f04d407a 100644 --- a/download/index-3.3.t2t +++ b/download/index-3.3.t2t @@ -1,11 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): <TD><B> <TH> -%!postproc(html): </B></TD> </TH> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - **GF 3.3** was released on 27 October 2011. What's new? See the [Release notes release-3.3.html]. @@ -27,7 +22,7 @@ More packages might be added later. ===Notes=== -The Windows package is installed by just unpacking it anywhere. +The Windows package is installed by just unpacking it anywhere. It finds the libraries relative to the ``.exe`` file. %The ``.deb`` packages work on Ubuntu 10.04 and 10.10. @@ -115,9 +110,3 @@ The above notes for installing from source apply also in this case. - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] - diff --git a/download/index-3.4.t2t b/download/index-3.4.t2t index b4edbfc01..278b3cb14 100644 --- a/download/index-3.4.t2t +++ b/download/index-3.4.t2t @@ -1,13 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): </HEAD> <STYLE>body { color: #333; } li>code,p>code,pre { color: #730; }</STYLE></HEAD> -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <TD><B> <TH> -%!postproc(html): </B></TD> </TH> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - **GF 3.4** was released on 31 January 2013. What's new? See the [Release notes release-3.4.html]. @@ -20,14 +13,11 @@ What's new? See the [Release notes release-3.4.html]. | Fedora (32-bit) | [Fedora RPMs /~hallgren/tmp/Fedora/] | ``sudo rpm -i ...`` | Ubuntu (32-bit) | [gf_3.4-1_i386.deb gf_3.4-1_i386.deb] | ``sudo dpkg -i gf_3.4-1_i386.deb`` | Ubuntu (64-bit) | [gf_3.4-1_amd64.deb gf_3.4-1_amd64.deb] | ``sudo dpkg -i gf_3.4-1_amd64.deb`` -| Windows | [gf-3.4-bin-windows.zip gf-3.4-bin-windows.zip] | -%| ... | ... | ... - -%More binary packages might be added later. +| Windows | [gf-3.4-bin-windows.zip gf-3.4-bin-windows.zip] | - ===Notes=== -%The Windows package is installed by just unpacking it anywhere. +%The Windows package is installed by just unpacking it anywhere. %It finds the libraries relative to the ``.exe`` file. The ``.deb`` packages work on Ubuntu 12.04, 12.10 and 13.04. @@ -153,8 +143,3 @@ For more info on working with the GF source code, see the - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/index-3.5.t2t b/download/index-3.5.t2t index 9f1bbe4b2..0c1b2cafa 100644 --- a/download/index-3.5.t2t +++ b/download/index-3.5.t2t @@ -1,13 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): </HEAD> <STYLE>body { color: #333; } li>code,p>code,pre { color: #730; }</STYLE></HEAD> -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <TD><B> <TH> -%!postproc(html): </B></TD> </TH> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - **GF 3.5** was released on 6 August 2013. What's new? See the [Release notes release-3.5.html]. @@ -157,8 +150,3 @@ For more info on working with the GF source code, see the - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/index-3.6.t2t b/download/index-3.6.t2t index 4ba7f67fd..9c4482e4d 100644 --- a/download/index-3.6.t2t +++ b/download/index-3.6.t2t @@ -1,13 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): </HEAD> <STYLE>body { color: #333; } li>code,p>code,pre { color: #730; }</STYLE></HEAD> -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> -%!postproc(html): <TD><I> <TD><small> -%!postproc(html): </I></TD> </small></TD> - **GF 3.6** was released on 23 June 2014. What's new? See the [Release notes release-3.6.html]. @@ -177,8 +170,3 @@ For more info on working with the GF source code, see the - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/index-3.7.1.t2t b/download/index-3.7.1.t2t index 0bbba65a9..b87f7d38c 100644 --- a/download/index-3.7.1.t2t +++ b/download/index-3.7.1.t2t @@ -1,12 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/notes.css -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> -%!postproc(html): <TD><I> <TD><small> -%!postproc(html): </I></TD> </small></TD> - **GF 3.7.1** was released on 2 October 2015. What's new? See the [Release notes release-3.7.1.html]. @@ -46,7 +40,7 @@ The ``.deb`` packages work on Ubuntu 12.04, 14.04 and 15.04. The packages for Mac OS X should work on at least 10.9, 10.10 and 10.11 (Mavericks, Yosemite and El Capitan). -(*) **Note** that for compatibility with OS X 10.11, +(*) **Note** that for compatibility with OS X 10.11, ``gf-3.7.1.pkg`` will install the ``gf`` executable in ``/usr/local/bin`` instead of ``/usr/bin``, so make sure ``/usr/local/bin`` is in your ``$PATH``. Also, if you still have an older version of GF installed in ``/usr/bin``, @@ -180,8 +174,3 @@ For more info on working with the GF source code, see the - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/index-3.7.t2t b/download/index-3.7.t2t index d234336e4..c59d04ebd 100644 --- a/download/index-3.7.t2t +++ b/download/index-3.7.t2t @@ -1,13 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/style.css -%!postproc(html): </HEAD> <STYLE>body { color: #333; } li>code,p>code,pre { color: #730; }</STYLE></HEAD> -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> -%!postproc(html): <TD><I> <TD><small> -%!postproc(html): </I></TD> </small></TD> - **GF 3.7** was released on 25 June 2015. What's new? See the [Release notes release-3.7.html]. @@ -173,8 +166,3 @@ For more info on working with the GF source code, see the - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/index-3.8.t2t b/download/index-3.8.t2t index 1222cdff1..9cafd548c 100644 --- a/download/index-3.8.t2t +++ b/download/index-3.8.t2t @@ -1,12 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/notes.css -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> -%!postproc(html): <TD><I> <TD><small> -%!postproc(html): </I></TD> </small></TD> - **GF 3.8** was released on 22 June 2016. What's new? See the [Release notes release-3.8.html]. @@ -49,7 +43,7 @@ Linux distributions. The packages for Mac OS X should work on at least 10.9, 10.10 and 10.11 (Mavericks, Yosemite and El Capitan). -(*) **Note** that for compatibility with OS X 10.11, +(*) **Note** that for compatibility with OS X 10.11, ``gf-3.8.pkg`` will install the ``gf`` executable in ``/usr/local/bin`` instead of ``/usr/bin``, so make sure ``/usr/local/bin`` is in your ``$PATH``. Also, if you still have an older version of GF installed in ``/usr/bin``, @@ -171,8 +165,3 @@ For more info on working with the GF source code, see the - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/index-3.9.t2t b/download/index-3.9.t2t new file mode 100644 index 000000000..aa5b1c5de --- /dev/null +++ b/download/index-3.9.t2t @@ -0,0 +1,192 @@ +Grammatical Framework Download and Installation + + +**GF 3.9** was released on 11 August 2017. + +What's new? See the [Release notes release-3.9.html]. + + +== Binary packages == + +|| Platform | Download | Features | How to install +| macOS | [gf-3.9.pkg gf-3.9.pkg] | //GF+S+C+J+P// | Double-click on the package icon +| macOS | [gf-3.9-bin-intel-mac.tar.gz gf-3.9-bin-intel-mac.tar.gz] | //GF+S+C+J+P// | ``sudo tar -C /usr/local -zxf gf-3.9-bin-intel-mac.tar.gz`` +%| Fedora (32-bit) | [Fedora RPMs /~hallgren/tmp/Fedora/] | //GF+S+C+J+P// | ``sudo rpm -i ...`` +| Raspian 9.1 | [gf_3.9-1_armhf.deb gf_3.9-1_armhf.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.9-1_armhf.deb`` +| Ubuntu (32-bit) | [gf_3.9-1_i386.deb gf_3.9-1_i386.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.9-1_i386.deb`` +| Ubuntu (64-bit) | [gf_3.9-1_amd64.deb gf_3.9-1_amd64.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.9-1_amd64.deb`` +| Windows | [gf-3.9-bin-windows.zip gf-3.9-bin-windows.zip] | //GF+S// | ``unzip gf-3.9-bin-windows.zip`` + +%| MINGW | [gf-3.9-bin-i686-MINGW32_NT-6.1.tar.gz gf-3.9-bin-i686-MINGW32_NT-6.1.tar.gz] | //GF+S+C// | ``tar -C / gf-3.9-bin-i686-MINGW32_NT-6.1.tar.gz`` +%| ... | ... | ... | ... + +Features: GF = GF shell and grammar compiler and the Resource Grammar Library, +S = ``gf -server`` mode, +C = C run-time system, +J/P = Java/Python binding to the C run-time system + +%More binary packages might be added later. + +===Notes=== + +The Windows package is installed by just unpacking it anywhere. +%It finds the libraries relative to the ``.exe`` file. +You will probably need to set the ``PATH`` and ``GF_LIB_PATH`` environment +variables, see Inari's notes on +[Installing GF on Windows http://www.grammaticalframework.org/~inari/gf-windows.html#toc3]. + +%The new experimental MINGW package is for use in the +%[MINGW http://www.mingw.org] environment in Windows. Unpack it in the MSYS shell +%(which is started with ``C:\MinGW\msys\1.0\msys.bat``). +%It should work out of the box without any additional settings. + +The Ubuntu ``.deb`` packages should work on Ubuntu 16.04 and 17.04 and similar +Linux distributions. + +The Raspian ``.deb`` package was created on a Raspberry Pi 3 and will probably +work on other ARM-based systems running Debian 9 (stretch) or similar +Linux distributions. + +The packages for macOS (Mac OS X) should work on at +least 10.11 and 10.12 (El Capitan and Sierra). + +%(*) **Note** that for compatibility with OS X 10.11 and newer, +%``gf-3.9.pkg`` will install the ``gf`` executable in ``/usr/local/bin`` +%instead of ``/usr/bin``, so make sure ``/usr/local/bin`` is in your ``$PATH``. +%Also, if you still have an older version of GF installed in ``/usr/bin``, +%remove it and/or make sure ``/usr/local/bin`` comes before ``/usr/bin`` +%in your ``$PATH`` so you don't accidentally run the old version. + +The Mac OS and Linux ``.tar.gz`` packages are designed to be installed in +``/usr/local``. +You can install them in other locations, but then you need to set the +``GF_LIB_PATH`` environment variable: + +``` + export GF_LIB_PATH=/usr/local/share/gf-3.9/lib +``` + +where ``/usr/local`` should be replaced with the path to the location where you +unpacked the package. + + +==Installing the latest release from source== + +[GF is on Hackage http://hackage.haskell.org/package/gf], so under normal +circumstances the prodedure is fairly simple: + ++ Install a recent version of the + [Haskell Platform http://hackage.haskell.org/platform], + e.g. version 7.10.3 (see note 2 below) ++ ``cabal update`` ++ On Linux: install some C libraries from your Linux distribution + (see note 1 below) ++ ``cabal install gf`` + + +You can also download the full source package from here: +[``gf-3.9.tar.gz`` gf-3.9.tar.gz]. + +=== Notes === + +The above steps installs GF for a single user. +% and does not require root privileges. +The executables are put in ``$HOME/.cabal/bin`` +(or, with recent versions of the Haskell platform on Mac OS X, +in ``$HOME/Library/Haskell/bin``), so it is a good +idea to put a line in your ``.bash_profile`` or ``.profile`` +to add that directory to you path: + +``` + PATH=$HOME/.cabal/bin:$PATH +``` +or +``` + PATH=$HOME/Library/Haskell/bin:$PATH +``` + +**Note 1**. +GF uses [``haskeline`` http://hackage.haskell.org/package/haskeline], which +on Linux depends on some non-Haskell libraries that +won't be installed automatically by cabal, and therefore need to be installed +manually. Here is one way to do this: + +- On Ubuntu: ``sudo apt-get install libghc-haskeline-dev`` +- On Fedora: ``sudo yum install ghc-haskeline-devel`` + + +**Note 2**. +The GF source code has been updated to compile with GHC 8.2.1. Using older +versions of GHC (e.g. 8.0.x and 7.10.3) should still work too. + +%=== Known problems === +% +%There seems to be a bug in some versions of Cabal that can cause +% +%``` +% Distribution/Simple/PackageIndex.hs:124:8-13: Assertion failed +%``` +% +%if the same version of GF is +%already installed. If you encounter this, you can use ``ghc-pkg unregister gf`` +%to remove the installed version of GF and ``ghc-pkg list gf`` to verify that +%it is gone. + +==Installing from the latest developer source code== + +The first time: +%, assuming you already have the Haskell Platform and darcs + +``` + git clone https://github.com/GrammaticalFramework/gf-core.git + cd gf-core + cabal install +``` + +and + +``` + git clone https://github.com/GrammaticalFramework/gf-rgl.git + cd gf-rgl + make +``` + +Subsequently: + +``` + cd gf-core + git pull + cabal install +``` + +and + +``` + cd gf-rgl + git pull + make +``` + +The above notes for installing from source apply also in these cases. +For more info on working with the GF source code, see the +[GF Developers Guide ../doc/gf-developers.html]. + +==Using Stack== + +You can also use [Stack https://www.haskellstack.org] to compile GF, just replace ``cabal install`` above +with ``stack install`` (assuming you already have Stack set up). + +==Older releases== + +- [GF 3.8 index-3.8.html] (June 2016) +- [GF 3.7.1 index-3.7.1.html] (October 2015) +- [GF 3.7 index-3.7.html] (June 2015) +- [GF 3.6 index-3.6.html] (June 2014) +- [GF 3.5 index-3.5.html] (August 2013) +- [GF 3.4 index-3.4.html] (January 2013). +- [GF 3.3.3 index-3.3.3.html] (March 2012). +- [GF 3.3 index-3.3.html] (October 2011). +- [GF 3.2.9 index-3.2.9.html] source-only snapshot (September 2011). +- [GF 3.2 index-3.2.html] (December 2010). +- [GF 3.1.6 index-3.1.6.html] (April 2010). +- [GF 3.1 old-index.html] (December 2009). diff --git a/download/index.t2t b/download/index.t2t index 281c874cf..aa5b1c5de 100644 --- a/download/index.t2t +++ b/download/index.t2t @@ -1,12 +1,6 @@ Grammatical Framework Download and Installation -%!style:../css/notes.css -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> -%!postproc(html): <TD><I> <TD><small> -%!postproc(html): </I></TD> </small></TD> - **GF 3.9** was released on 11 August 2017. What's new? See the [Release notes release-3.9.html]. @@ -22,6 +16,7 @@ What's new? See the [Release notes release-3.9.html]. | Ubuntu (32-bit) | [gf_3.9-1_i386.deb gf_3.9-1_i386.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.9-1_i386.deb`` | Ubuntu (64-bit) | [gf_3.9-1_amd64.deb gf_3.9-1_amd64.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.9-1_amd64.deb`` | Windows | [gf-3.9-bin-windows.zip gf-3.9-bin-windows.zip] | //GF+S// | ``unzip gf-3.9-bin-windows.zip`` + %| MINGW | [gf-3.9-bin-i686-MINGW32_NT-6.1.tar.gz gf-3.9-bin-i686-MINGW32_NT-6.1.tar.gz] | //GF+S+C// | ``tar -C / gf-3.9-bin-i686-MINGW32_NT-6.1.tar.gz`` %| ... | ... | ... | ... @@ -195,8 +190,3 @@ with ``stack install`` (assuming you already have Stack set up). - [GF 3.2 index-3.2.html] (December 2010). - [GF 3.1.6 index-3.1.6.html] (April 2010). - [GF 3.1 old-index.html] (December 2009). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.1.6.t2t b/download/release-3.1.6.t2t index aec8bb650..c3500665a 100644 --- a/download/release-3.1.6.t2t +++ b/download/release-3.1.6.t2t @@ -5,13 +5,13 @@ GF Version 3.1.6 Release Notes =Installation= The binaries now work out of the box for each platform and support -completions (file names and parsing), because readline has been +completions (file names and parsing), because readline has been changed to haskeline. To compile from source, GHC 6.12 is now required. But GHC is not needed if the binary executables are used. -Binaries (``.gfo`` and ``.pgf`` files) compiled with GF 3.1 are incompatible +Binaries (``.gfo`` and ``.pgf`` files) compiled with GF 3.1 are incompatible with 3.1.6 and must either be removed; alternatively, the ``-src`` flag can be used when compiling. @@ -24,8 +24,8 @@ Grammar language - improved support for dependent types (see ``SUMO``, ``nqueens`` in ``examples``) -Shell commands and options (see ``help`` in GF for more information) -- ``eb``: example-based grammar file conversion +Shell commands and options (see ``help`` in GF for more information) +- ``eb``: example-based grammar file conversion (see ``examples/animals/QuestionI.gf``) - ``vd = visualize_dependency``: show dependency tree - ``vp = visualize_parse``: show parse tree @@ -57,8 +57,3 @@ Internal Javascript generation is not updated to the new PGF format. [GF 3.1 old-index.html] should still be used for building Javascript applications. - - - - - diff --git a/download/release-3.10.md b/download/release-3.10.md new file mode 100644 index 000000000..574f82f94 --- /dev/null +++ b/download/release-3.10.md @@ -0,0 +1,16 @@ +--- +title: GF 4.0.0 Release Notes +date: 28 November 2018 +... + +## Installation + +See the [download page](index.html). + +## What's new + +- In this release, the GF "core" (compiler and runtimes) have been split from the RGL. + +### Other + +- A lot of repository cleanup diff --git a/download/release-3.2.t2t b/download/release-3.2.t2t index 3ad975697..60800adc9 100644 --- a/download/release-3.2.t2t +++ b/download/release-3.2.t2t @@ -1,9 +1,6 @@ GF Version 3.2 Release Notes December 2010 -%!style:../css/style.css -%!postproc(html): <H1> <H1><IMG src="../doc/Logos/gf0.png"> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -34,8 +31,3 @@ See the [download page http://www.grammaticalframework.org/download/index.html]. - GF compiler: GPL - Run-time libraries and Resource Grammar Library: LGPL + BSD - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.3.3.t2t b/download/release-3.3.3.t2t index 99387df01..c0f5fba98 100644 --- a/download/release-3.3.3.t2t +++ b/download/release-3.3.3.t2t @@ -1,10 +1,6 @@ GF Version 3.3.3 Release Notes March 2012 -%!style:../css/style.css -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><IMG src="../doc/Logos/gf0.png"> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -25,8 +21,3 @@ See the [download page http://www.grammaticalframework.org/download/index.html]. - Fix for a bug that prevented the shell commands ``abstract_info``, ``generate_random`` and ``generate_trees`` from working properly. - Various other small improvements and bug fixes. - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.3.t2t b/download/release-3.3.t2t index 00dd1bece..6c007afb5 100644 --- a/download/release-3.3.t2t +++ b/download/release-3.3.t2t @@ -1,17 +1,13 @@ GF Version 3.3 Release Notes October 2011 -%!style:../css/style.css -%!postproc(html): <TITLE> <meta name = "viewport" content = "width = device-width"><TITLE> -%!postproc(html): <H1> <H1><IMG src="../doc/Logos/gf0.png"> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. ==New features== -- Source language extension: it is now possible to override the oper definitions in an interface, by using the +- Source language extension: it is now possible to override the oper definitions in an interface, by using the header syntax ``instance Foo of Bar - [f,g,h]``. - New functionalities in GF shell commands (more information with ``help`` command-name). - ``aw`` = ``align_words`` option ``-giza`` prints word alignments in Giza++ format. @@ -29,8 +25,3 @@ See the [download page http://www.grammaticalframework.org/download/index.html]. and the web-based grammar editor. - Faster grammar compilation (also included in the GF 3.2.9 source-only snapshot). - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.4.t2t b/download/release-3.4.t2t index a317f7fd0..fa1f18a0a 100644 --- a/download/release-3.4.t2t +++ b/download/release-3.4.t2t @@ -1,10 +1,6 @@ GF Version 3.4 Release Notes January 2013 -%!style:../css/style.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -46,8 +42,3 @@ See the [download page http://www.grammaticalframework.org/download/index.html]. - Some new functionality in the web-based grammar editor, e.g. preliminary support for public grammars. - Various other small improvements and bug fixes. - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.5.t2t b/download/release-3.5.t2t index c05c36f26..c9ffe568c 100644 --- a/download/release-3.5.t2t +++ b/download/release-3.5.t2t @@ -1,10 +1,6 @@ GF 3.5 Release Notes August 2013 -%!style:../css/style.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -70,7 +66,3 @@ of GF 3.4. [``network-2.4.1.1`` https://github.com/haskell/network/commit/f2168b1f8978b4ad9c504e545755f0795ac869ce]. - Various other small improvements and bug fixes. %- [...] - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.6.t2t b/download/release-3.6.t2t index 084756a42..aa75f5d6a 100644 --- a/download/release-3.6.t2t +++ b/download/release-3.6.t2t @@ -1,10 +1,6 @@ GF 3.6 Release Notes June 2014 -%!style:../css/style.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -26,7 +22,7 @@ Closed [issues http://code.google.com/p/grammatical-framework/issues/list]: as ``--# -coding=``//enc//, instead of ``flags coding=``//enc//. See the separate document [GF character encoding changes encoding-change.html] for more details. -- Record update: in record objects (but not types) of form ``r ** s``, the values assigned +- Record update: in record objects (but not types) of form ``r ** s``, the values assigned in ``s`` now overwrite those in ``r``. In previous versions, record extensions with overlapping assignments in ``r`` and ``s`` were not supported, and their behaviour was unpredictable. @@ -107,8 +103,3 @@ Closed [issues http://code.google.com/p/grammatical-framework/issues/list]: - ``c-wordforword``: this works as ``c-translate`` but does a word-for-word lookup to create a (potentially very low quality) translation that can be used if all else fails. - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.7.1.t2t b/download/release-3.7.1.t2t index 8b2a27aca..c31ee0d93 100644 --- a/download/release-3.7.1.t2t +++ b/download/release-3.7.1.t2t @@ -1,10 +1,6 @@ GF 3.7.1 Release Notes October 2015 -%!style:../css/notes.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -18,10 +14,10 @@ Over 170 changes have been pushed to the source repository since ====New features and notable changes==== -- GF shell: ``cc -trace`` (preliminary): you can now do things like - +- GF shell: ``cc -trace`` (preliminary): you can now do things like + ``cc -trace mkV "debug"`` - + to see a trace of all opers with their arguments and results during the computation of ``mkV "debug"``. @@ -29,7 +25,7 @@ Over 170 changes have been pushed to the source repository since from the GF shell by starting GF with ``gf -cshell`` or ``gf -crun``. Only limited functionality is available when running the shell in these modes (use the ``help`` command in the shell for details): - + - You can only import ``.pgf`` files, not source files. - The ``-retain`` flag can not be used and the commands that require it to work are not available. @@ -77,8 +73,3 @@ Over 170 changes have been pushed to the source repository since you can leave ``&+`` uninterpreted instead of gluing the adjacent tokens. This means that the output is left in a format that can be parsed in a subsequent request. - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.7.t2t b/download/release-3.7.t2t index 8b9badf50..73c52d974 100644 --- a/download/release-3.7.t2t +++ b/download/release-3.7.t2t @@ -1,10 +1,6 @@ GF 3.7 Release Notes June 2015 -%!style:../css/style.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -40,7 +36,7 @@ Over 800 changes have been pushed to the source repository since ``BIND``, ``SOFT_BIND``, ``SOFT_SPACE``, ``CAPIT``, ``ALL_CAPIT`` and ``nonExist``. - It is now possible to define callbacks for literals from the Haskell - binding to the C runtime. This is used for instance in + binding to the C runtime. This is used for instance in the Wide Coverage translator on the Web. @@ -103,8 +99,3 @@ Over 800 changes have been pushed to the source repository since unused for 24 hours, to keep memory use down in long running servers. - PGF service: limit the number of parallel calls to the C run-time parse function to 4 by default. The limit can be changed with the ``-j`` flag. - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.8.t2t b/download/release-3.8.t2t index 669f1235b..05b7b7303 100644 --- a/download/release-3.8.t2t +++ b/download/release-3.8.t2t @@ -1,10 +1,6 @@ GF 3.8 Release Notes June 2016 -%!style:../css/notes.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -25,7 +21,7 @@ Roughly 400 changes have been pushed to the source repository since [universal dependency http://universaldependencies.org/] diagrams in various formats, see ``help vd``. - The C runtime now includes an experimental library for managing - and querying ontologies built on top of the abstract syntax of + and querying ontologies built on top of the abstract syntax of a grammar. Since the ontology is based on an abstract syntax, it is language independent by design. For now the library is only used in the GF Offline Translator. The library uses @@ -100,7 +96,3 @@ Roughly 400 changes have been pushed to the source repository since translations in the domain they cover. You can change the order in which the selected grammars are tried by dragging them up and down in the list. - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/download/release-3.9.t2t b/download/release-3.9.t2t index fc1e71447..c6277adfb 100644 --- a/download/release-3.9.t2t +++ b/download/release-3.9.t2t @@ -1,10 +1,6 @@ GF 3.9 Release Notes August 2017 -%!style:../css/notes.css -%!postproc(html): <TITLE> <meta charset="UTF-8"><meta name = "viewport" content = "width = device-width"> <TITLE> -%!postproc(html): <H1> <H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a> - ==Installation== See the [download page http://www.grammaticalframework.org/download/index.html]. @@ -36,7 +32,7 @@ very innefficient for some grammars. - A new .NET binding for the GF runtime is available. -- The API in the Java binding is extended and it covers more from +- The API in the Java binding is extended and it covers more from the full functionality of the C runtime. @@ -66,8 +62,3 @@ the full functionality of the C runtime. - PGF service: support for language-specific depencency configurations in ``command=deptree``. - - --------------------- - -[www.grammaticalframework.org http://www.grammaticalframework.org] diff --git a/index.html b/index.html index bc621311c..4ec6d1b8a 100644 --- a/index.html +++ b/index.html @@ -1,418 +1,379 @@ -<!DOCTYPE html> -<HTML> -<HEAD> -<TITLE>GF - Grammatical Framework</TITLE> -<meta charset="UTF-8"> -<link rel="stylesheet" href="css/newstyle.css" title="GF"> -<link rel="alternate" href="https://github.com/GrammaticalFramework/gf-core/" title="GF GitHub repository"> -<meta name = "viewport" content = "width = device-width"> -<script type="text/javascript"> -function sitesearch() { - var q=document.forms[0].q.value; - var site=" site:www.grammaticalframework.org"; - var search=encodeURIComponent(q+site) - document.location.href="http://www.google.com/search?q="+search - return false; -} -</script> -<meta name="keywords" content="machine translation"> -</HEAD> +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> -<body class=new> + <title>GF - Grammatical Framework</title> + <meta name="keywords" content="machine translation"> -<div class="header sky blue"> -<img class="gflogo" src="doc/Logos/gf1.svg" alt=""> -<H1>Grammatical Framework</H1> - <small class=tagline>A programming language for multilingual grammar applications</small> -</div> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> + <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.2/css/all.css" integrity="sha384-/rXc/GQVaYpyDdyxK+ecHPVYJSN9bmVFBvjA/9eOB+pb3F2w2N6fc5qB9Ew5yIns" crossorigin="anonymous"> -<div class=menu> - -<div class=links> - <h4>Use GF</h4> - <ul> - <li><a href="http://cloud.grammaticalframework.org/">GF Cloud<img class=right src="src/www/P/gf-cloud.png" alt="GF Cloud Service" title="GF Cloud Service"></a> - <li><A HREF="demos/index.html">Other Demos</A> - </ul> - <ul> - <li><A HREF="http://www.grammaticalframework.org/download/index.html"><b>Download GF</b></A> - <li><a href="doc/gf-editor-modes.html">GF Editor Modes</a> - </ul> - - <ul> - <li><A HREF="http://groups.google.com/group/gf-dev">User Group</A> - <li><a href="https://github.com/GrammaticalFramework/gf-core/issues">Bug Reports</a> - (<a href="http://code.google.com/p/grammatical-framework/issues/list">old</a>) - </ul> -</div> + <link rel="alternate" href="https://github.com/GrammaticalFramework/gf-core/" title="GF GitHub repository"> +</head> -<div class=links> - <h4>Learn GF</h4> - <ul> - <li><a href="https://www.youtube.com/watch?v=x1LFbDQhbso">Google Tech Talk</a> - <li><A HREF="doc/gf-quickstart.html">QuickStart</A> - <li><A HREF="doc/gf-reference.html">QuickRefCard</A> - <li><A HREF="doc/gf-shell-reference.html">GF Shell Reference</A> - <li><a href="http://school.grammaticalframework.org/"><b>GF Summer School</b></a> - </ul> - <ul> - <li><A HREF="gf-book">The GF Book</A> - <li><A HREF="doc/tutorial/gf-tutorial.html">GF Tutorial</A> - <li><A HREF="doc/gf-refman.html">Reference Manual</A> - <li><A HREF="http://www.molto-project.eu/sites/default/files/MOLTO_D2.3.pdf">Best Practices</A> <small>[PDF]</small> - </ul> - <ul> - <li><A HREF="lib/doc/synopsis.html">Library Synopsis</A> - <li><A HREF="doc/gf-lrec-2010.pdf">Library Tutorial</A> <small>[PDF]</small> - <li><A HREF="http://www.postcrashgames.com/gf_world/">Coverage Map</A> - </ul> +<body> +<div class="container-fluid my-5" style="max-width:1200px"> -</div> -<div class=links> - <h4>Develop GF</h4> - <ul> - <li><a href="doc/gf-developers.html">GF Developers Guide</a> - <li><A HREF="https://github.com/GrammaticalFramework/">GF on GitHub</A> - <li><a href="/~hallgren/gf-experiment/browse/">Browse Source Code</a> - <li><A HREF="doc/gf-people.html">Authors</A> - </ul> - <h4>Develop Applications</h4> - <ul> - <li><a href="http://hackage.haskell.org/package/gf-3.9/docs/PGF.html">PGF library API (Old Runtime)</a> - <li><a href="doc/runtime-api.html">PGF library API (New Runtime)</a> - <li><a href="https://github.com/GrammaticalFramework/gf-offline-translator/tree/master/android">GF on Android (new)</a> - <li><A HREF="/android/">GF on Android (old) </A> - </ul> -</div> -<div class=links> - <h4>Related to GF</h4> - <ul> - <li><A HREF="doc/gf-bibliography.html">Publications</A> - <li><A HREF="http://remu.grammaticalframework.org/">The REMU Project</A> - <li><A HREF="http://www.molto-project.eu">The MOLTO Project</A> - <li><a href="http://en.wikipedia.org/wiki/Grammatical_Framework">GF on Wikipedia</a> - <li><p><a href="Http://www.digitalgrammars.com/">Digital Grammars AB</a> - </ul> -</div> +<div class="text-center"> + <img style="height:250px" src="doc/Logos/gf1.svg" alt="GF Logo"> + <h1 class="display-4" style="text-shadow: 1px 1px 5px #999; overflow-x: scroll">Grammatical Framework</h1> + <h4 class="text-black-50">A programming language for multilingual grammar applications</h4> </div> +<div class="row my-4"> -<script type="text/javascript"> -document.write('<div style="float: right; margin-top: 3ex;"> <form onsubmit="return sitesearch()" method=get action="http://www.google.com/search"> <input type=search name="q" placeholder="site search"> <input type=submit value="Search"> </form></div>') -</script> + <div class="col-sm-6 col-md-3"> + <h3>Get started</h3> + <ul> + <li><a href="https://www.youtube.com/watch?v=x1LFbDQhbso">Google Tech Talk</a></li> + <li> + <a href="http://cloud.grammaticalframework.org/"> + GF Cloud + <img src="http://www.grammaticalframework.org/src/www/P/gf-cloud.png" style="height:30px" class="ml-2"> + </a> + </li> + <li><a href="doc/tutorial/gf-tutorial.html">Tutorial</a></li> + </ul> + + <a href="download/index.html" class="btn btn-primary ml-3"> + <i class="fas fa-download mr-1"></i> + Download GF + </a> + </div> -<H2 class=noclear>News</H2> - -<div class=news2> - - <table class=news> -<tr><td>2018-07-25:<td>The GF repository has been split in two: - <a href="https://github.com/GrammaticalFramework/gf-core">gf-core</a> and - <a href="https://github.com/GrammaticalFramework/gf-rgl">gf-rgl</a>. - The original <a href="https://github.com/GrammaticalFramework/GF">GF</a> repository is now archived. -<tr><td>2017-08-11:<td><strong>GF 3.9 released!</strong> - <a href="download/release-3.9.html">Release notes</a>. -<tr><td>2017-06-29:<td>GF is moving to <a href="https://github.com/GrammaticalFramework/GF/">GitHub</a>! -<tr><td>2017-03-13:<td><strong>GF Summer School in Riga (Latvia), 14-25 August 2017</strong> - <a href="http://school.grammaticalframework.org/2017/">Summer - School web page</a>. -<tr><td>2016-09-07:<td><strong>Google Tech Talk on GF</strong> <a - href="https://www.youtube.com/watch?v=x1LFbDQhbso">on Youtube</a>. -<tr><td>2016-07-05:<td>GitHub mirror temporarily not updated, due to server migration. -<tr><td>2016-06-22:<td><strong>GF 3.8 released!</strong> - <a href="download/release-3.8.html">Release notes</a>. -<tr><td>2015-06-21:<td><strong>Summer School in Rule-Based Machine - Translation in Alacant/Alicante (Spain), 11-21 July 2016</strong> - featuring GF, Apertium, Matxin, and TectoMT. - <a href="http://xixona.dlsi.ua.es/rbmt-summer-school/2016/">Summer - School web page</a>. -<tr><td>2016-06-14:<td>New resource grammar language: Nynorsk. -<tr><td>2015-10-02:<td><strong>GF 3.7.1 released!</strong> - <a href="download/release-3.7.1.html">Release notes</a>. -<tr><td>2015-06-25:<td><strong>GF 3.7 released!</strong> - <a href="download/release-3.7.html">Release notes</a>. -<tr><td>2015-03-13:<td>New resource grammar language: Mongolian. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2015-02-09:<td><strong>GF Summer School in Gozo (Malta), 13-24 July 2015</strong> - <a href="http://school.grammaticalframework.org/2015/">Summer - School web page</a>. -<tr><td>2014-06-23:<td><strong>GF 3.6 released!</strong> - <a href="download/release-3.6.html">Release notes</a>. -<tr><td>2014-03-11: - <td>A company for commercial applications of GF has been founded: - <a href="http://www.digitalgrammars.com/">Digital Grammars</a>. -<tr><td>2013-11-25: - <td>The default character encoding in GF grammar files will be changed - from Latin-1 to UTF-8. See - <a href="download/encoding-change.html">GF character encoding changes</a> - for details. -<tr><td>2013-10-18:<td>New resource grammar language: Estonian. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2013-09-18:<td>New <a href="https://github.com/GrammaticalFramework/gf-contrib">GF contributions repository</a>, hosted on GitHub. -<tr><td>2013-08-06:<td><strong>GF 3.5 released!</strong> - <a href="download/release-3.5.html">Release notes</a>. -<tr><td>2013-07-26:<td>Started a page with <A HREF="lib/doc/rgl-publications.html">RGL Documentation and Publications</A>. -<tr><td>2013-06-24:<td>We are now running the IRC channel <a href="https://webchat.freenode.net/?channels=gf"><strong><code>#gf</code></strong></a> on the Freenode network. -<tr><td>2013-06-19:<td>New resource grammar language: Maltese. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2013-04-25:<td>New resource grammar language: Greek. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2013-01-31:<td><strong>GF 3.4 released!</strong> - <a href="download/release-3.4.html">Release notes</a>. -<tr><td>2012-12-10:<td> - <a href="http://www.postcrashgames.com/gf_world/">Resource Grammar Library - coverage map</a>, created by Tommi Nieminen. -<!-- -<tr><td>2012-11-18:<td> - <A HREF="http://school.grammaticalframework.org/2013">GF Summer School</A> - in Frauenchiemsee, 18-30 August 2013. -<tr><td>2012-11-18:<td>New resource grammar language: Chinese. - See <a href="lib/doc/synopsis.html">library synopsis</a>. - Complete but not yet perfect. -<tr><td>2012-06-29:<td>GF sources now mirrored in GitHub, with change - statistics and other browsing features. - See <a href="https://github.com/GrammaticalFramework/GF/"><tt>github.com/GrammaticalFramework/GF</tt></a> -<tr><td>2012-05-07:<td>New resource grammar language: Japanese. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2012-03-23:<td>There will be a - <a href="gf-tutorial-icfp-2012/">GF tutorial at ICFP 2012</a> - in Copenhagen. -<tr><td>2012-03-03:<td><strong>GF 3.3.3 released!</strong> - <a href="download/release-3.3.3.html">Release notes</a>. - <tr><td>2012-02-24:<td>New resource grammar languages: Hindi, Sindhi. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2011-12-29:<td>New resource grammar languages: Latvian, Thai. - See <a href="lib/doc/synopsis.html">library synopsis</a>. -<tr><td>2011-10-27:<td><strong>GF 3.3 released!</strong> - <a href="download/release-3.3.html">Release notes</a>. -<tr><td>2011-09-20:<td>There is now a page collecting - <a href="doc/gf-editor-modes.html">editor modes for GF</a>. - Contributions are welcome! -<tr><td>2011-09-12:<td><strong>GF 3.2.9</strong> source snapshot with faster grammar compilation available. See <a href="download/index.html">Downloads</a>. -<tr><td>2011-04-22:<td><a href="android/tutorial/">JPGF Android Tutorial</a> added. -<tr><td>2011-04-15:<td>The <a href="gf-book">GF Book</a> is available. -<tr><td>2011-01-13:<td><a href="http://www.molto-project.eu/node/1177">Phrasedroid - available on the Android Market</a>. -<tr><td>2011-01-04:<td>GF is part of the - <a href="http://www.clt.gu.se/clt-toolkit">CLT Toolkit</a>. -<tr><td>2010-12-23:<td><strong>GF 3.2 released!</strong> - <a href="download/release-3.2.html">Release notes</a>. ---> -</table> + <div class="col-sm-6 col-md-3"> + <h3>Learn more</h3> + + <ul> + <li><a href="gf-book">The GF Book</a></li> + <li><a href="doc/gf-refman.html">Reference Manual</a></li> + <li><a href="doc/gf-shell-reference.html">Shell Reference</a></li> + <li><a href="http://www.molto-project.eu/sites/default/files/MOLTO_D2.3.pdf">Best Practices</a> <small>[PDF]</small></li> + </ul> + + <a href="lib/doc/synopsis/index.html" class="btn btn-primary ml-3"> + <i class="fab fa-readme mr-1"></i> + RGL Synopsis + </a> + </div> + + <div class="col-sm-6 col-md-3"> + <h3>Develop</h3> + <ul> + <li><a href="doc/gf-developers.html">Developers Guide</a></li> + <!-- <li><a href="/~hallgren/gf-experiment/browse/">Browse Source Code</a></li> --> + <li><a href="http://hackage.haskell.org/package/gf/docs/PGF.html">PGF library API (Haskell runtime)</a></li> + <li><a href="doc/runtime-api.html">PGF library API (C runtime)</a></li> + <li><a href="http://hackage.haskell.org/package/gf/docs/GF.html">GF compiler API</a></li> + <!-- <li><a href="src/ui/android/README">GF on Android (new)</a></li> + <li><a href="/android/">GF on Android (old) </a></li> --> + <li><a href="doc/gf-editor-modes.html">Text Editor Support</a></li> + </ul> + </div> + + <div class="col-sm-6 col-md-3"> + <h3>Contribute</h3> + <ul> + <li><a href="http://groups.google.com/group/gf-dev">Mailing List</a></li> + <li><a href="https://github.com/GrammaticalFramework/gf-core/issues">Issue Tracker</a></li> + <li><a href="doc/gf-people.html">Authors</a></li> + <li><a href="http://school.grammaticalframework.org/2018/">Summer School</a></li> + </ul> + <a href="https://github.com/GrammaticalFramework/" class="btn btn-primary ml-3"> + <i class="fab fa-github mr-1"></i> + GF on GitHub + </a> + </div> </div> -<H2>What is GF</H2> -<P> +<h2>What is GF?</h2> +<p> GF, Grammatical Framework, is a programming language for -<B>multilingual grammar applications</B>. It is -</P> -<UL> -<LI>a <B>special-purpose language for grammars</B>, like +<strong>multilingual grammar applications</strong>. It is +</p> +<ul> +<li>a <strong>special-purpose language for grammars</strong>, like <a href="http://dinosaur.compilertools.net/yacc/">YACC</a>, <a href="http://www.gnu.org/software/bison/">Bison</a>, <a href="http://www.haskell.org/happy/">Happy</a>, <a href="http://bnfc.digitalgrammars.com/">BNFC</a>, but not restricted to programming languages -<LI>a <B>functional programming language</B>, like +</li> +<li>a <strong>functional programming language</strong>, like <a href="http://www.haskell.org/">Haskell</a>, <a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)">Lisp</a>, <a href="http://ocaml.org/">OCaml</a>, <a href="http://www.smlnj.org/">SML</a>, <a href="http://schemers.org/">Scheme</a>, but specialized to grammar writing -<LI>a <B>development platform for natural language grammars</B>, like +</li> +<li>a <strong>development platform for natural language grammars</strong>, like <a href="http://moin.delph-in.net/LkbTop">LKB</a>, <a href="http://www2.parc.com/isl/groups/nltt/xle/">XLE</a>, <a href="http://www.issco.unige.ch/en/research/projects/regulus/news.shtml">Regulus</a>, but based on functional programming and type theory -<LI>a <B>categorial grammar formalism</B>, like +</li> +<li>a <strong>categorial grammar formalism</strong>, like <a href="http://www.loria.fr/equipes/calligramme/acg/">ACG</a>, <a href="http://openccg.sourceforge.net/">CCG</a>, but specialized for multilingual grammars, -<LI>a <B>logical framework</B>, like +</li> +<li>a <strong>logical framework</strong>, like <a href="http://wiki.portal.chalmers.se/agda/pmwiki.php">Agda</a>, <a href="http://coq.inria.fr/">Coq</a>, <a href="http://www.cl.cam.ac.uk/research/hvg/Isabelle/">Isabelle</a>, but equipped with concrete syntax in addition to logic -<li>a <b>platform for machine translation</b>, like +</li> +<li>a <strong>platform for machine translation</strong>, like <a href="http://www.statmt.org/moses/">Moses</a>, <a href="http://www.apertium.org/">Apertium</a>, but based on deep structural analysis (and usually applied for limited fragments of language). -</UL> +</li> +</ul> -<P> +<p> Don't worry if you don't know most of the references above - but if you do know at least one, it may help you to get a first idea of what GF is. -</P> -<H2>Applications</H2> -<P> -GF can be used for building -</P> -<UL> -<LI><A HREF="http://cloud.grammaticalframework.org/translator/">translation systems</A> -<LI><A HREF="http://cloud.grammaticalframework.org/minibar/minibar.html">multilingual web gadgets</A> -<LI><A HREF="http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html">natural-language interfaces</A> -<LI><A HREF="http://www.youtube.com/watch?v=1bfaYHWS6zU">dialogue systems</A> -<LI><A HREF="lib/doc/synopsis.html">natural language resources</A> -</UL> - -<H2>Availability</H2> -<P> -GF is <B>open-source</B>, licensed under <A HREF="LICENSE">GPL</A> (the program) and -<A HREF="./LICENSE">LGPL</A> and <A HREF="./LICENSE">BSD</A> (the libraries). It -is available for -</P> -<UL> -<LI>Linux -<LI>Mac OS X -<LI>Windows -<li>Android mobile platform (via Java; runtime) -<LI>via compilation to JavaScript, almost any platform that has a web browser (runtime) -</UL> - -<H2>Projects</H2> -<P> -GF was first created in 1998 at -<A HREF="http://www.xrce.xerox.com/">Xerox Research Centre Europe</A>, -Grenoble, in the project -Multilingual Document Authoring. At Xerox, it was used for prototypes including -a restaurant phrase book, -a database query system, -a formalization of an alarm system instructions with translations to 5 languages, and -an authoring system for medical drug descriptions. -</P> -<P> -Later projects using GF and involving third parties include, in chronological order, -</P> -<UL> -<LI><A HREF="http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html">GF-Alfa</A>: - natural language interface to formal proofs -<LI><A HREF="http://efficient.citi.tudor.lu/index_noframe.html">Efficient</A>: - authoring tool for business models. -<LI><A HREF="http://www.key-project.org/">GF-KeY</A>: - authoring and translation of software specifications -<LI><A HREF="http://www.talk-project.org">TALK</A>: - multilingual and multimodal spoken dialogue systems -<LI><A HREF="http://webalt.math.helsinki.fi/">WebALT</A>: - multilingual generation of mathematical exercises (commercial project) -<LI><A HREF="http://spraakbanken.gu.se/sal/">SALDO</A>: - Swedish morphological dictionary based on rules developed for GF and - <A HREF="http://www.cse.chalmers.se/alumni/markus/FM/">Functional Morphology</A> -<LI><a href="http://www.molto-project.eu">MOLTO</a>: - multilingual online translation -<LI><a href="http://remu.grammaticalframework.org">REMU</a>: - reliable multilingual digital communication. -</UL> -<p> -Here is a <a -href="http://videos.xrce.xerox.com/index.php/videos/index/618">talk -about GF at XRCE</a>, -14 years later. - -<P> -Academically, GF has been used in at least ten PhD theses and resulted -in more than a hundred -scientific publications (see <A HREF="doc/gf-bibliography.html">GF publication list</A>). -</P> -<H2>Programming in GF</H2> -<P> -GF is easy to learn by following the <A HREF="doc/tutorial/gf-tutorial.html">tutorial</A>. -You can write your first translator in 15 minutes. -</P> -<P> -GF has an interactive command interpreter, as well as a batch compiler. -Grammars can be compiled to parser and translator code in many different -formats. These components can then be embedded in applications written -in other programming languages. The formats currently supported are: -</P> -<UL> -<LI>Haskell -<li>Java, in particular the Android platform -<LI>JavaScript -<LI>Speech recognition: HTK/ATK, Nuance, JSGF -</UL> - -<P> -The GF programming language is high-level and advanced, featuring -</P> -<UL> -<LI>static type checking -<LI>higher-order functions -<LI>dependent types -<LI>pattern matching with data constructors and regular expressions -<LI>module system with multiple inheritance and parametrized modules -</UL> - -<h3>Getting help</h3> -<p> -If you need some help with GF, the first places to start are the <a href="doc/tutorial/gf-tutorial.html">Tutorial</a> and <a href="doc/gf-refman.html">Reference</a> pages. -The printed <a href="gf-book">book</a> contains all the material in the tutorial and some extra bits, and is the recommended reference for GF. </p> -<p> -We run the IRC channel <strong><code>#gf</code></strong> on the Freenode network, where you are welcome to look for help with small questions or just start a general discussion. -IRC logs (in raw format) are available <a href="irc/">here</a>. -If you have a larger question which the community may benefit from, we recommend you ask it on the <a href="http://groups.google.com/group/gf-dev">mailing list</a>. -</p> +<hr> + +<div class="row"> + + <div class="col-md-6"> + <h2>Applications & Availability</h2> + <p> + GF can be used for building + <a href="http://cloud.grammaticalframework.org/translator/">translation systems</a>, + <a href="http://cloud.grammaticalframework.org/minibar/minibar.html">multilingual web gadgets</a>, + <a href="http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html">natural-language interfaces</a>, + <a href="http://www.youtube.com/watch?v=1bfaYHWS6zU">dialogue systems</a>, and + <a href="lib/doc/synopsis/index.html">natural language resources</a>. + </p> + + <p> + GF is <strong>open-source</strong>, licensed under <a href="LICENSE">GPL</a> (the program) and + <a href="LICENSE">LGPL</a> and <a href="LICENSE">BSD</a> (the libraries). It + is available for + </p> + <ul> + <li>Linux</li> + <li>macOS</li> + <li>Windows</li> + <li>Android mobile platform (via Java; runtime)</li> + <li>via compilation to JavaScript, almost any platform that has a web browser (runtime)</li> + </ul> + + <h2>Programming in GF</h2> + <p> + GF is easy to learn by following the <a href="doc/tutorial/gf-tutorial.html">tutorial</a>. + You can write your first translator in 15 minutes. + </p> + <p> + GF has an interactive command interpreter, as well as a batch compiler. + Grammars can be compiled to parser and translator code in many different + formats. These components can then be embedded in applications written + in other programming languages. The formats currently supported are: + </p> + <ul> + <li>Haskell</li> + <li>Java, in particular the Android platform</li> + <li>JavaScript</li> + <li>Speech recognition: HTK/ATK, Nuance, JSGF</li> + </ul> + + <p> + The GF programming language is high-level and advanced, featuring: + </p> + <ul> + <li>static type checking</li> + <li>higher-order functions</li> + <li>dependent types</li> + <li>pattern matching with data constructors and regular expressions</li> + <li>module system with multiple inheritance and parametrized modules</li> + </ul> + + <h3>Getting help</h3> + <p> + If you need some help with GF, the first places to start are the <a href="doc/tutorial/gf-tutorial.html">Tutorial</a> and <a href="doc/gf-refman.html">Reference</a> pages. + The printed <a href="gf-book">book</a> contains all the material in the tutorial and some extra bits, and is the recommended reference for GF. + </p> + + <p> + We run the IRC channel <strong><code>#gf</code></strong> on the Freenode network, where you are welcome to look for help with small questions or just start a general discussion. + IRC logs (in raw format) are available <a href="http://www.grammaticalframework.org/irc/">here</a>. + If you have a larger question which the community may benefit from, we recommend you ask it on the <a href="http://groups.google.com/group/gf-dev">mailing list</a>. + </p> + + </div> -<H2>Libraries</H2> -<P> -Libraries are at the heart of modern software engineering. In natural language -applications, libraries are a way to cope with thousands of details involved in -syntax, lexicon, and inflection. The -<A HREF="lib/doc/synopsis.html">GF resource grammar library</A> has -support for an increasing number of languages, currently including -</P> -<ol class=languages> -<LI>Afrikaans -<LI>Amharic (partial) -<LI>Arabic (partial) -<LI>Bulgarian -<LI>Catalan -<LI>Chinese -<LI>Danish -<LI>Dutch -<LI>English -<LI>Estonian -<LI>Finnish -<LI>French -<LI>German -<li>Greek ancient (partial) -<li>Greek modern -<li>Hebrew (fragments) -<LI>Hindi -<LI><A HREF="http://www.interlingua.com/">Interlingua</A> -<LI>Japanese -<LI>Italian -<LI>Latin (fragments) -<LI>Latvian -<li>Maltese -<li>Mongolian -<LI>Nepali -<LI>Norwegian bokmÃ¥l -<LI>Norwegian nynorsk -<LI>Persian -<LI>Polish -<li>Punjabi -<LI>Romanian -<LI>Russian -<LI>Sindhi -<LI>Slovene (partial) -<LI>Spanish -<li>Swahili (fragments) -<LI>Swedish -<LI>Thai -<LI>Turkish (fragments) -<LI>Urdu -</ol> - -<P> -Adding a language to the resource library takes 3 to 9 -months - contributions -are welcome! You can start with the <A HREF="doc/gf-lrec-2010.pdf">resource grammarian's tutorial</A>. + <div class="col-md-6"> + <h2>News</h2> + <dl class="row"> + <dt class="col-sm-3 text-center">2018-12-03</dt> + <dd class="col-sm-9"> + <a href="http://school.grammaticalframework.org/2018/">Sixth GF Summer School</a> in Stellenbosch (South Africa), 3–14 December 2018 + </dd> + <!-- <dt class="col-sm-3 text-center">2018-11-28</dt> + <dd class="col-sm-9"> + <strong>GF 3.10 released.</strong> + <a href="download/release-3.10.html">Release notes</a> + </dd> --> + <dt class="col-sm-3 text-center">2018-07-25</dt> + <dd class="col-sm-9"> + The GF repository has been split in two: + <a href="https://github.com/GrammaticalFramework/gf-core">gf-core</a> and + <a href="https://github.com/GrammaticalFramework/gf-rgl">gf-rgl</a>. + The original <a href="https://github.com/GrammaticalFramework/GF">GF</a> repository is now archived. + </dd> + <dt class="col-sm-3 text-center">2017-08-11</dt> + <dd class="col-sm-9"> + <strong>GF 3.9 released.</strong> + <a href="download/release-3.9.html">Release notes</a> + </dd> + <dt class="col-sm-3 text-center">2017-06-29</dt> + <dd class="col-sm-9"> + GF is moving to <a href="https://github.com/GrammaticalFramework/GF/">GitHub</a>.</dd> + <dt class="col-sm-3 text-center">2017-03-13</dt> + <dd class="col-sm-9"> + <a href="http://school.grammaticalframework.org/2017/">GF Summer School</a> in Riga (Latvia), 14-25 August 2017 + </dd> + </dl> + + <h2>Projects</h2> + <p> + GF was first created in 1998 at + <a href="http://www.xrce.xerox.com/">Xerox Research Centre Europe</a>, + Grenoble, in the project + Multilingual Document Authoring. At Xerox, it was used for prototypes including + a restaurant phrase book, + a database query system, + a formalization of an alarm system instructions with translations to 5 languages, and + an authoring system for medical drug descriptions. + </p> + <p> + Later projects using GF and involving third parties include, in chronological order: + </p> + <ul> + <li> + <a href="http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html">GF-Alfa</a>: + natural language interface to formal proofs + </li> + <li> + <a href="http://efficient.citi.tudor.lu/index_noframe.html">Efficient</a>: + authoring tool for business models. + </li> + <li> + <a href="http://www.key-project.org/">GF-KeY</a>: + authoring and translation of software specifications + </li> + <li> + <a href="http://www.talk-project.org">TALK</a>: + multilingual and multimodal spoken dialogue systems + </li> + <li> + <a href="http://webalt.math.helsinki.fi/">WebALT</a>: + multilingual generation of mathematical exercises (commercial project) + </li> + <li> + <a href="http://spraakbanken.gu.se/sal/">SALDO</a>: + Swedish morphological dictionary based on rules developed for GF and + <a href="http://www.cse.chalmers.se/alumni/markus/FM/">Functional Morphology</a> + </li> + <li> + <a href="http://www.molto-project.eu">MOLTO</a>: + multilingual online translation + </li> + <li> + <a href="http://remu.grammaticalframework.org">REMU</a>: + reliable multilingual digital communication + </li> + </ul> + <!-- <p> + Here is a <a + href="http://videos.xrce.xerox.com/index.php/videos/index/618">talk + about GF at XRCE</a>, + 14 years later. + </p> --> + + <p> + Academically, GF has been used in at least ten PhD theses and resulted + in more than a hundred scientific publications. + <!-- (see <a href="doc/gf-bibliography.html">GF publication list</a>). --> + </p> + + <h2>Libraries</h2> + <p> + Libraries are at the heart of modern software engineering. In natural language + applications, libraries are a way to cope with thousands of details involved in + syntax, lexicon, and inflection. The + <a href="lib/doc/synopsis/index.html">GF resource grammar library</a> has + support for an increasing number of languages, currently including + Afrikaans, + Amharic (partial), + Arabic (partial), + Bulgarian, + Catalan, + Chinese, + Danish, + Dutch, + English, + Estonian, + Finnish, + French, + German, + Greek ancient (partial), + Greek modern, + Hebrew (fragments), + Hindi, + Interlingua, + Japanese, + Italian, + Latin (fragments), + Latvian, + Maltese, + Mongolian, + Nepali, + Norwegian bokmÃ¥l, + Norwegian nynorsk, + Persian, + Polish, + Punjabi, + Romanian, + Russian, + Sindhi, + Slovene (partial), + Spanish, + Swahili (fragments), + Swedish, + Thai, + Turkish (fragments), + Urdu + </p> + + <p> + Adding a language to the resource library takes 3 to 9 + months - contributions + are welcome! You can start with the <a href="doc/gf-lrec-2010.pdf">resource grammarian's tutorial</a>. + </p> + + </div><!-- .col-6 --> + +</div><!-- .row --> + +</div><!-- .container --> + +<footer class="bg-light mt-5 py-5"> + <div class="container mb-5"> + <div class="row"> + <div> + <div> +</footer> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); @@ -423,5 +384,6 @@ try { var pageTracker = _gat._getTracker("UA-7811807-3"); pageTracker._trackPageview(); } catch(err) {}</script> -</BODY> -</HTML> + +</body> +</html> |
