Merge branch 'new-website'

This commit is contained in:
John J. Camilleri
2018-11-28 22:22:41 +01:00
46 changed files with 1217 additions and 1624 deletions

16
.gitignore vendored
View File

@@ -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

View File

@@ -20,6 +20,7 @@ doc:
clean:
cabal clean
bash bin/clean_html
gf:
cabal build rgl-none

132
bin/_template.html Normal file
View File

@@ -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>

8
bin/clean_html Executable file
View File

@@ -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

View File

@@ -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
done
# 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
}
# 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

View File

@@ -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 >> $@

View File

@@ -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//.

View File

@@ -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?===

View File

@@ -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
@@ -281,6 +282,19 @@ but the resulting .gf file must be imported separately.
#NORMAL
#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====
@@ -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'.

Binary file not shown.

View File

@@ -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>

63
doc/gf-people.md Normal file
View File

@@ -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.

View File

@@ -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>

Binary file not shown.

View File

@@ -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.

View File

@@ -1,15 +1,32 @@
<!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>
@@ -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>

View File

@@ -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.

View File

@@ -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

View File

@@ -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 ==

View File

@@ -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

186
download/index-3.10.md Normal file
View File

@@ -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)

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

192
download/index-3.9.t2t Normal file
View File

@@ -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).

View File

@@ -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]

View File

@@ -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.

16
download/release-3.10.md Normal file
View File

@@ -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

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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>
<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">
<link rel="alternate" href="https://github.com/GrammaticalFramework/gf-core/" title="GF GitHub repository">
</head>
<body>
<div class="container-fluid my-5" style="max-width:1200px">
<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=menu>
<div class="row my-4">
<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>
<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>
<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>
<a href="download/index.html" class="btn btn-primary ml-3">
<i class="fas fa-download mr-1"></i>
Download GF
</a>
</div>
<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>
<div class="col-sm-6 col-md-3">
<h3>Learn more</h3>
</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>
<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>
<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>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>
<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>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>
<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>
<div class="row">
<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>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>
<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), 314 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>