Merge branch 'master' into master
@@ -12,7 +12,7 @@ addons:
|
|||||||
- ghc
|
- ghc
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ghc@8.2 && export PATH="/usr/local/opt/ghc@8.2/bin:$PATH" ; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ghc@8.6 && export PATH="/usr/local/opt/ghc@8.6/bin:$PATH" ; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl http://www.grammaticalframework.org/download/gf-3.9-bin-intel-mac.tar.gz > gf.tar.gz && sudo tar --no-same-owner --no-same-permissions -C /usr/local -zxf gf.tar.gz && rm gf.tar.gz; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl http://www.grammaticalframework.org/download/gf-3.9-bin-intel-mac.tar.gz > gf.tar.gz && sudo tar --no-same-owner --no-same-permissions -C /usr/local -zxf gf.tar.gz && rm gf.tar.gz; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then curl http://www.grammaticalframework.org/download/gf_3.9.1-1_amd64-trusty.deb > gf.deb && sudo dpkg -i gf.deb && rm gf.deb ; fi
|
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then curl http://www.grammaticalframework.org/download/gf_3.9.1-1_amd64-trusty.deb > gf.deb && sudo dpkg -i gf.deb && rm gf.deb ; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install ghc --version=8.4.4 && export PATH="/c/ProgramData/chocolatey/lib/ghc/tools/ghc-8.4.4/bin:$PATH"; fi
|
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install ghc --version=8.4.4 && export PATH="/c/ProgramData/chocolatey/lib/ghc/tools/ghc-8.4.4/bin:$PATH"; fi
|
||||||
@@ -20,8 +20,8 @@ before_install:
|
|||||||
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then alias gf='gf.exe' && alias runghc='runghc.exe' ; fi
|
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then alias gf='gf.exe' && alias runghc='runghc.exe' ; fi
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- runghc Make.hs build prelude all --verbose
|
- runghc Setup.hs build prelude all --verbose
|
||||||
- rm -rf dist
|
- rm -rf dist
|
||||||
- mkdir dist-bash ; bash Make.sh --dest=dist-bash --verbose
|
- mkdir dist-bash ; bash Setup.sh --dest=dist-bash --verbose
|
||||||
- rm -rf dist ; mkdir dist-bat
|
- rm -rf dist ; mkdir dist-bat
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then cmd //c Make.bat --dest=dist-bat --verbose ; fi
|
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then cmd //c Setup.bat --dest=dist-bat --verbose ; fi
|
||||||
|
|||||||
206
LICENSE
Normal file
@@ -0,0 +1,206 @@
|
|||||||
|
The GF Resource Grammar Library is under GNU LESSER GENERAL PUBLIC LICENSE and BSD.
|
||||||
|
However the user has the right to choose any license for any application grammar derived from the resource grammar by using the grammar API.
|
||||||
|
|
||||||
|
The Resource Grammar Library also includes large coverage lexicons for some languages.
|
||||||
|
Since these lexicons are derived from external sources they might be under different licenses.
|
||||||
|
Look at the source file for every lexicon for details.
|
||||||
|
|
||||||
|
The rest of this document contains copies of the LGPL and BSD licenses
|
||||||
|
which are applicable to the different components of the Resource Grammar Library as described above.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BSD LICENSE
|
||||||
|
|
||||||
|
Copyright (c) 1998, Grammatical Framework
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the <organization> nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
2
Makefile
@@ -1,6 +1,6 @@
|
|||||||
# A simple wrapper over the Haskell-based RGL build script
|
# A simple wrapper over the Haskell-based RGL build script
|
||||||
|
|
||||||
RUNMAKE=runghc Make.hs
|
RUNMAKE=runghc Setup.hs
|
||||||
|
|
||||||
.PHONY: build copy install doc clean
|
.PHONY: build copy install doc clean
|
||||||
|
|
||||||
|
|||||||
18
README.md
@@ -6,15 +6,15 @@
|
|||||||
|
|
||||||
The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of over 30 languages.
|
The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of over 30 languages.
|
||||||
|
|
||||||
For more about the RGL, see the [synopsis page](http://www.grammaticalframework.org/lib/doc/synopsis.html).
|
For more about the RGL, see the [synopsis page](http://www.grammaticalframework.org/lib/doc/synopsis/).
|
||||||
|
|
||||||
## Choose your build method
|
## Choose your build method
|
||||||
|
|
||||||
There are 3 ways to build and install the RGL:
|
There are 3 ways to build and install the RGL:
|
||||||
|
|
||||||
- Haskell script `Make.hs`
|
- Haskell script `Setup.hs`
|
||||||
- Shell script `Make.sh` (does not require Haskell)
|
- Shell script `Setup.sh` (does not require Haskell)
|
||||||
- Windows batch file `Make.bat` (does not require Haskell)
|
- Windows batch file `Setup.bat` (does not require Haskell)
|
||||||
|
|
||||||
## Install locations
|
## Install locations
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ This file should be kept up-to-date and all build methods should read this confi
|
|||||||
|
|
||||||
If default is `y` then anything other than `n`, including the empty string, is treated as true (and vice versa when default is `n`).
|
If default is `y` then anything other than `n`, including the empty string, is treated as true (and vice versa when default is `n`).
|
||||||
|
|
||||||
## Haskell script: `Make.hs`
|
## Haskell script: `Setup.hs`
|
||||||
|
|
||||||
This build method gives you most options.
|
This build method gives you most options.
|
||||||
You will need Haskell installed on your system.
|
You will need Haskell installed on your system.
|
||||||
@@ -69,7 +69,7 @@ There is also `make clean` available.
|
|||||||
For more fine-grained control over the build process, you can run the build script directly:
|
For more fine-grained control over the build process, you can run the build script directly:
|
||||||
|
|
||||||
```
|
```
|
||||||
runghc Make ...
|
runghc Setup.hs ...
|
||||||
```
|
```
|
||||||
|
|
||||||
Where `...` is one of:
|
Where `...` is one of:
|
||||||
@@ -99,7 +99,7 @@ If ommitted, the default command is `prelude all`.
|
|||||||
- The path to GF installed on your system can be specified via the `--gf` flag (default is that the `gf` executable is in the global system path).
|
- The path to GF installed on your system can be specified via the `--gf` flag (default is that the `gf` executable is in the global system path).
|
||||||
- The `--dest` flag can be used to manually specify where the compiled RGL modules should be copied/installed. This is the same place as `GF_LIB_PATH`.
|
- The `--dest` flag can be used to manually specify where the compiled RGL modules should be copied/installed. This is the same place as `GF_LIB_PATH`.
|
||||||
|
|
||||||
## Shell script: `Make.sh`
|
## Shell script: `Setup.sh`
|
||||||
|
|
||||||
This method is provided as an alternative for those who don't have Haskell installed.
|
This method is provided as an alternative for those who don't have Haskell installed.
|
||||||
Simply run the script to build the entire RGL and install in the default location.
|
Simply run the script to build the entire RGL and install in the default location.
|
||||||
@@ -109,11 +109,11 @@ You can pass the following flags:
|
|||||||
- `--gf=...` to specify the path to the `gf` executable, if not available on the system path
|
- `--gf=...` to specify the path to the `gf` executable, if not available on the system path
|
||||||
- `--verbose` or `-v` to show a list of files being built (errors will always be shown)
|
- `--verbose` or `-v` to show a list of files being built (errors will always be shown)
|
||||||
|
|
||||||
## Windows batch file: `Make.bat`
|
## Windows batch file: `Setup.bat`
|
||||||
|
|
||||||
This method is provided as an alternative for Windows users who don't have Haskell or Bash installed.
|
This method is provided as an alternative for Windows users who don't have Haskell or Bash installed.
|
||||||
|
|
||||||
It is supposed to be a port of `Make.sh` and works in largely the same way.
|
It is supposed to be a port of `Setup.sh` and works in largely the same way.
|
||||||
In particular, it accepts the same flags (in the same format) as described above.
|
In particular, it accepts the same flags (in the same format) as described above.
|
||||||
|
|
||||||
However it currently tries to build all modules for all languages and doesn't consider the details of which modules should be compiled for each language (specified in `languages.csv`)
|
However it currently tries to build all modules for all languages and doesn't consider the details of which modules should be compiled for each language (specified in `languages.csv`)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ REM ---
|
|||||||
|
|
||||||
REM Modules to compile for each language
|
REM Modules to compile for each language
|
||||||
REM TODO read from languages.csv
|
REM TODO read from languages.csv
|
||||||
set langs=Afr Amh Ara Eus Bul Cat Chi Dan Dut Eng Est Fin Fre Grc Gre Heb Hin Ger Ice Ina Ita Jpn Lat Lav Mlt Mon Nep Nor Nno Pes Pol Por Pnb Ron Rus Snd Spa Swe Tha Tur Urd
|
set langs=Afr Amh Ara Eus Bul Cat Chi Cze Dan Dut Eng Est Fin Fre Grc Gre Heb Hin Hun Ger Ice Ina Ita Jpn Lat Lav Mlt Mon Nep Nor Nno Pes Pol Por Pnb Ron Rus Slo Snd Spa Swe Tha Tur Urd
|
||||||
set modules_langs=All Symbol Compatibility
|
set modules_langs=All Symbol Compatibility
|
||||||
set modules_api=Try Symbolic
|
set modules_api=Try Symbolic
|
||||||
|
|
||||||
@@ -29,11 +29,28 @@ goto Loop
|
|||||||
|
|
||||||
REM Try to determine install location
|
REM Try to determine install location
|
||||||
if "%dest%"=="" (
|
if "%dest%"=="" (
|
||||||
set dest=%GF_LIB_PATH%
|
REM Separate paths with search path separator ; and pick first one
|
||||||
|
for %%p in ("%GF_LIB_PATH:;=";"%") do (
|
||||||
|
set dest=%%~p
|
||||||
|
goto BreakLibPath
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
:BreakLibPath
|
||||||
|
|
||||||
|
set DATA_DIR=..\gf-core\DATA_DIR
|
||||||
if "%dest%"=="" (
|
if "%dest%"=="" (
|
||||||
REM TODO Look in ../gf-core/DATA=DIR
|
REM Look in already compiled GF folder
|
||||||
|
if exist %DATA_DIR% (
|
||||||
|
for /f "delims=" %%x in (%DATA_DIR%) do (
|
||||||
|
if not "%%x"=="" (
|
||||||
|
set dest=%%x\lib
|
||||||
|
goto BreakDataDir
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
:BreakDataDir
|
||||||
|
|
||||||
if "%dest%"=="" (
|
if "%dest%"=="" (
|
||||||
echo Unable to determine where to install the RGL. Please do one of the following:
|
echo Unable to determine where to install the RGL. Please do one of the following:
|
||||||
echo - Pass the --dest=... flag to this script
|
echo - Pass the --dest=... flag to this script
|
||||||
@@ -9,7 +9,7 @@ import System.IO.Error (catchIOError)
|
|||||||
import System.Exit (ExitCode(..),exitFailure)
|
import System.Exit (ExitCode(..),exitFailure)
|
||||||
import System.Environment (getArgs,lookupEnv)
|
import System.Environment (getArgs,lookupEnv)
|
||||||
import System.Process (rawSystem)
|
import System.Process (rawSystem)
|
||||||
import System.FilePath ((</>)) -- ,takeFileName,addExtension,dropExtension)
|
import System.FilePath ((</>),splitSearchPath) -- ,takeFileName,addExtension,dropExtension)
|
||||||
import System.Directory (createDirectoryIfMissing,copyFile,getDirectoryContents,removeDirectoryRecursive,findFile)
|
import System.Directory (createDirectoryIfMissing,copyFile,getDirectoryContents,removeDirectoryRecursive,findFile)
|
||||||
#if __GLASGOW_HASKELL__>=800
|
#if __GLASGOW_HASKELL__>=800
|
||||||
import System.Directory (getModificationTime,setModificationTime)
|
import System.Directory (getModificationTime,setModificationTime)
|
||||||
@@ -119,7 +119,7 @@ mkInfo = do
|
|||||||
-- Look for install location in a few different places
|
-- Look for install location in a few different places
|
||||||
let mflag = getFlag destination_flag args
|
let mflag = getFlag destination_flag args
|
||||||
mbuilt <- catchIOError (readFile "../gf-core/DATA_DIR" >>= \d -> return (Just (d </> "lib"))) (\e -> return Nothing)
|
mbuilt <- catchIOError (readFile "../gf-core/DATA_DIR" >>= \d -> return (Just (d </> "lib"))) (\e -> return Nothing)
|
||||||
menvar <- lookupEnv "GF_LIB_PATH"
|
menvar <- lookupEnv "GF_LIB_PATH" >>= return . fmap (head . splitSearchPath)
|
||||||
let
|
let
|
||||||
inst_dir =
|
inst_dir =
|
||||||
case catMaybes [mflag,menvar,mbuilt] of
|
case catMaybes [mflag,menvar,mbuilt] of
|
||||||
@@ -36,7 +36,7 @@ done
|
|||||||
|
|
||||||
# Try to determine install location
|
# Try to determine install location
|
||||||
if [ -z "$dest" ]; then
|
if [ -z "$dest" ]; then
|
||||||
dest="$GF_LIB_PATH"
|
dest=$(echo "$GF_LIB_PATH" | sed 's/:.*$//')
|
||||||
fi
|
fi
|
||||||
if [ -z "$dest" ] && [ -f "../gf-core/DATA_DIR" ]; then
|
if [ -z "$dest" ] && [ -f "../gf-core/DATA_DIR" ]; then
|
||||||
dest=$(cat ../gf-core/DATA_DIR)
|
dest=$(cat ../gf-core/DATA_DIR)
|
||||||
13
doc/.gitignore
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
synopsis/index.txt
|
||||||
|
synopsis/index-t2t.html
|
||||||
|
synopsis/index.html
|
||||||
|
synopsis/api-examples-*.txt
|
||||||
|
synopsis/api-examples.gfs
|
||||||
|
synopsis/categories-imagemap.html
|
||||||
|
synopsis/categories.png
|
||||||
|
|
||||||
|
gfdoc/sources.html
|
||||||
|
|
||||||
|
rgl-publications.html
|
||||||
|
status.html
|
||||||
|
translation.html
|
||||||
1698
doc/CC_eng_tha.txt
99
doc/CountLines.hs
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
import System.Directory
|
||||||
|
import Data.Char
|
||||||
|
import Data.List
|
||||||
|
|
||||||
|
-- counting modules and lines in RGL implementations
|
||||||
|
-- leaving out Lexicon, Structural, dictionaries, Extra, Extend,... (see below the list of prefixes)
|
||||||
|
|
||||||
|
main = do
|
||||||
|
mapM_ getCounts allLanguages
|
||||||
|
|
||||||
|
getCounts (lan,language) = do
|
||||||
|
cs <- mapM (getCount language lan) prefixes
|
||||||
|
let (ms,ls) = unzip cs
|
||||||
|
putStrLn $ unwords [language, show (sum ms), show (sum ls)]
|
||||||
|
|
||||||
|
getCount language lan pref = do
|
||||||
|
let file = concat ["../src/",language,"/",pref,lan,".gf"]
|
||||||
|
--- putStrLn file
|
||||||
|
ms <- readFileIf file
|
||||||
|
case ms of
|
||||||
|
Nothing -> return (0,0)
|
||||||
|
Just s -> return (1,length (codeLines (lines s)))
|
||||||
|
|
||||||
|
codeLines ls = filter (\l -> not (all isSpace l || isPrefixOf "--" l)) ls
|
||||||
|
|
||||||
|
readFileIf name = do
|
||||||
|
b <- doesFileExist name
|
||||||
|
case b of
|
||||||
|
True -> readFile name >>= return . Just
|
||||||
|
False -> return Nothing
|
||||||
|
|
||||||
|
|
||||||
|
prefixes = [
|
||||||
|
"Adjective"
|
||||||
|
,"Adverb"
|
||||||
|
,"Cat"
|
||||||
|
,"Common"
|
||||||
|
,"Conjunction"
|
||||||
|
,"Diff"
|
||||||
|
,"Grammar"
|
||||||
|
,"Lang"
|
||||||
|
-- ,"Lexicon"
|
||||||
|
,"Noun"
|
||||||
|
,"Numeral"
|
||||||
|
,"Phrase"
|
||||||
|
,"Question"
|
||||||
|
,"Relative"
|
||||||
|
,"Sentence"
|
||||||
|
-- ,"Structural"
|
||||||
|
,"Tense"
|
||||||
|
,"Text"
|
||||||
|
,"Verb"
|
||||||
|
,"Res"
|
||||||
|
,"Morpho"
|
||||||
|
,"Phono"
|
||||||
|
,"Paradigms"
|
||||||
|
]
|
||||||
|
|
||||||
|
allLanguages = [
|
||||||
|
("", "abstract")
|
||||||
|
,("Afr","afrikaans")
|
||||||
|
,("Ara","arabic")
|
||||||
|
--- ,("Bul","bulgarian") ---- todo convert to utf8
|
||||||
|
,("Cat","catalan")
|
||||||
|
,("Chi","chinese")
|
||||||
|
,("Dan","danish")
|
||||||
|
,("Dut","dutch")
|
||||||
|
,("Eng","english")
|
||||||
|
,("Est","estonian")
|
||||||
|
,("Eus","basque")
|
||||||
|
,("Fin","finnish")
|
||||||
|
,("Fre","french")
|
||||||
|
,("Ger","german")
|
||||||
|
,("Gre","greek")
|
||||||
|
,("Hin","hindi")
|
||||||
|
,("Ice","icelandic")
|
||||||
|
,("Ita","italian")
|
||||||
|
,("Jpn","japanese")
|
||||||
|
,("Lav","latvian")
|
||||||
|
,("Mlt","maltese")
|
||||||
|
,("Mon","mongolian")
|
||||||
|
,("Nep","nepali")
|
||||||
|
,("Nno","nynorsk")
|
||||||
|
,("Nor","norwegian")
|
||||||
|
,("Pes","persian")
|
||||||
|
,("Pnb","punjabi")
|
||||||
|
,("Pol","polish")
|
||||||
|
,("Por","portuguese")
|
||||||
|
---- ,("Ron","romanian")
|
||||||
|
,("Rus","russian")
|
||||||
|
,("Snd","sindhi")
|
||||||
|
,("Spa","spanish")
|
||||||
|
,("Swe","swedish")
|
||||||
|
,("Tha","thai")
|
||||||
|
,("Urd","urdu")
|
||||||
|
,("Romance","romance")
|
||||||
|
,("Scand","scandinavian")
|
||||||
|
,("Hindustani","hindustani")
|
||||||
|
]
|
||||||
54
doc/Makefile
@@ -1,51 +1,21 @@
|
|||||||
.PHONY: all index status synopsis abstract
|
.PHONY: all status synopsis abstract sources
|
||||||
|
|
||||||
|
GFDOC=gfdoc
|
||||||
|
S=../src
|
||||||
|
|
||||||
all: synopsis
|
all: synopsis
|
||||||
|
|
||||||
GF_alltenses=$(GF_LIB_PATH)/alltenses
|
status: status.html
|
||||||
GF=gf
|
|
||||||
GFDOC=gfdoc
|
|
||||||
|
|
||||||
index:
|
synopsis:
|
||||||
txt2tags -thtml index.txt
|
make -C synopsis GF_LIB_PATH=../$(GF_LIB_PATH)
|
||||||
status:
|
|
||||||
|
sources:
|
||||||
|
make -C gfdoc sources.html
|
||||||
|
|
||||||
|
status.html:
|
||||||
txt2tags -thtml status.txt
|
txt2tags -thtml status.txt
|
||||||
|
|
||||||
synopsis: synopsis.html
|
|
||||||
|
|
||||||
S=../src
|
|
||||||
|
|
||||||
# List of languages extracted from languages.csv, with 'Synopsis' column == y
|
|
||||||
LANGS=$(shell cat ../languages.csv | cut -d',' -f1,11 | grep ',y' | cut -d',' -f1)
|
|
||||||
|
|
||||||
# This list was constructed by observing what files MkSynopsis.hs reads
|
|
||||||
SRC_FILES=$(S)/abstract/Common.gf $(S)/abstract/Cat.gf $(S)/api/Constructors.gf $(S)/abstract/Structural.gf $(patsubst %,$S/*/Paradigms%.gf,$(LANGS))
|
|
||||||
|
|
||||||
EXAMPLES_OUT=$(patsubst %,api-examples-%.txt,$(LANGS))
|
|
||||||
INCLUDES=synopsis-intro.txt categories-intro.txt categories-imagemap.html synopsis-additional.txt synopsis-browse.txt synopsis-example.txt
|
|
||||||
|
|
||||||
synopsis.html: MkSynopsis.hs MkExxTable.hs $(INCLUDES) $(EXAMPLES_OUT) $(SRC_FILES)
|
|
||||||
runghc -i.. MkSynopsis.hs
|
|
||||||
|
|
||||||
categories.png: categories.dot
|
|
||||||
dot -Tpng $^ > $@
|
|
||||||
|
|
||||||
categories-imagemap.html: categories.dot
|
|
||||||
dot -Tcmapx $^ > $@
|
|
||||||
|
|
||||||
abstract:
|
abstract:
|
||||||
$(GFDOC) -txthtml $S/abstract/*.gf
|
$(GFDOC) -txthtml $S/abstract/*.gf
|
||||||
mv $S/abstract/*.html abstract
|
mv $S/abstract/*.html abstract
|
||||||
|
|
||||||
api-examples.gfs: api-examples.txt MkExx.hs
|
|
||||||
runghc MkExx.hs < $< > $@
|
|
||||||
|
|
||||||
# Since .gfo files aren't self-contained, the dependencies given here are
|
|
||||||
# incomplete. But I am thinking that the Try%.gfo file will always be newer
|
|
||||||
# than any other files it depends on, so the rule will trigger when
|
|
||||||
# needed anyway. //TH 2018-10-22
|
|
||||||
api-examples-%.txt: $(GF_alltenses)/Try%.gfo api-examples.gfs
|
|
||||||
GF_LIB_PATH=$(GF_LIB_PATH) $(GF) -retain -s $< <api-examples.gfs >$@
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf synopsis.txt api-examples.gfs $(EXAMPLES_OUT)
|
|
||||||
|
|||||||
22
doc/Test.hs
@@ -1,22 +0,0 @@
|
|||||||
import qualified Data.Map as Map
|
|
||||||
import Data.Char
|
|
||||||
|
|
||||||
gold = "CC_eng_tha.txt"
|
|
||||||
tested = "api-examples-Tha.txt"
|
|
||||||
|
|
||||||
main = do
|
|
||||||
s <- readFile gold
|
|
||||||
let corrects = Map.fromList $ exx 1 5 2 (lines s)
|
|
||||||
-- mapM_ putStrLn $ concat [[t,s] | (t,s) <- Map.toList corrects]
|
|
||||||
t <- readFile tested
|
|
||||||
mapM_ (doTest corrects) (exx 18 22 1 (map (drop 4) (lines t)))
|
|
||||||
|
|
||||||
exx x y z ss = [(ss!!k,ss!!(k+z)) | k <- [x,y .. length ss - 2]]
|
|
||||||
|
|
||||||
doTest corrects (t,s) = case Map.lookup t corrects of
|
|
||||||
Just c -> if unspace s == uncomment c then return () else mapM_ putStrLn [t,unspace s,c]
|
|
||||||
_ -> return ()
|
|
||||||
|
|
||||||
unspace = filter (not . isSpace)
|
|
||||||
uncomment = unspace . takeWhile (/= '-')
|
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 120 KiB |
BIN
doc/editor.png
|
Before Width: | Height: | Size: 20 KiB |
9
doc/example-tables.gfs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- gf -run alltenses/LangIce.gfo <example-tables.gfs
|
||||||
|
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionN ?) "" | l | wf -file="example-tables.html"
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionA ?) "" | l | wf -append -file="example-tables.html"
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionV ?) "" | l | wf -append -file="example-tables.html"
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionV2 ?) "" | l | wf -append -file="example-tables.html"
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionV3 ?) "" | l | wf -append -file="example-tables.html"
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionVV ?) "" | l | wf -append -file="example-tables.html"
|
||||||
|
gt MkDocument (NoDefinition "") (InflectionV2V ?) "" | l | wf -append -file="example-tables.html"
|
||||||
19
doc/gfdoc/Makefile
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
TMP=tmp.html
|
||||||
|
TEMPLATE=../synopsis/template.html
|
||||||
|
ROOT=../..
|
||||||
|
|
||||||
|
TITLE=$(shell head -n 1 sources.txt)
|
||||||
|
sources.html: sources.txt $(TEMPLATE)
|
||||||
|
txt2tags --target=html --no-headers --quiet --outfile=$@ --infile=$<
|
||||||
|
pandoc \
|
||||||
|
--from=html \
|
||||||
|
--to=html5 \
|
||||||
|
--standalone \
|
||||||
|
--template=$(TEMPLATE) \
|
||||||
|
--metadata='title:"$(TITLE)"' \
|
||||||
|
--variable='lang:en' \
|
||||||
|
--variable='rel-root:$(ROOT)/..' \
|
||||||
|
--output=$(TMP) \
|
||||||
|
$@
|
||||||
|
mv $(TMP) $@
|
||||||
|
sed -i.bak "s/<table>/<table class=\"table w-auto\">/" $@ && rm "$@.bak"
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="generator" CONTENT="http://txt2tags.org">
|
|
||||||
<TITLE>More modules in the GF Resource Grammar Library</TITLE>
|
|
||||||
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
|
||||||
<CENTER>
|
|
||||||
<H1>More modules in the GF Resource Grammar Library</H1>
|
|
||||||
</CENTER>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
<A HREF="../synopsis.html">back to synopsis</A>
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Extra syntax modules</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
These modules give language-specific extra constructs not available via the common API.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
<A HREF="../../src/abstract/Extra.gf">common repository</A>
|
|
||||||
<A HREF="../../src/romance/ExtraRomanceAbs.gf">Romance (Cat, Fre, Ita, Spa)</A>
|
|
||||||
<A HREF="../../src/scandinavian/ExtraScandAbs.gf">Scandinavian (Dan, Nor, Swe)</A>
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
<A HREF="../../src/afrikaans/ExtraAfrAbs.gf">Afrikaans</A>
|
|
||||||
<A HREF="../../src/bulgarian/ExtraBulAbs.gf">Bulgarian</A>
|
|
||||||
<A HREF="../../src/catalan/ExtraCatAbs.gf">Catalan</A>
|
|
||||||
<A HREF="../../src/danish/ExtraDanAbs.gf">Danish</A>
|
|
||||||
<A HREF="../../src/dutch/ExtraDutAbs.gf">Dutch</A>
|
|
||||||
<A HREF="../../src/english/ExtraEngAbs.gf">English</A>
|
|
||||||
<A HREF="../../src/finnish/ExtraFinAbs.gf">Finnish</A>
|
|
||||||
<A HREF="../../src/french/ExtraFreAbs.gf">French</A>
|
|
||||||
<A HREF="../../src/german/ExtraGerAbs.gf">German</A>
|
|
||||||
<A HREF="../../src/italian/ExtraItaAbs.gf">Italian</A>
|
|
||||||
<A HREF="../../src/norwegian/ExtraNorAbs.gf">Norwegian</A>
|
|
||||||
<A HREF="../../src/persian/ExtraPesAbs.gf">Persian</A>
|
|
||||||
<A HREF="../../src/polish/ExtraPolAbs.gf">Polish</A>
|
|
||||||
<A HREF="../../src/punjabi/ExtraPnbAbs.gf">Punjabi</A>
|
|
||||||
<A HREF="../../src/romanian/ExtraRonAbs.gf">Romanian</A>
|
|
||||||
<A HREF="../../src/russian/ExtraRusAbs.gf">Russian</A>
|
|
||||||
<A HREF="../../src/spanish/ExtraSpaAbs.gf">Spanish</A>
|
|
||||||
<A HREF="../../src/swedish/ExtraSweAbs.gf">Swedish</A>
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Irregular verbs and other words</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
These modules give lists of irregular words, mostly verbs. Their completeness varies.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
<A HREF="../../src/catalan/IrregCatAbs.gf">Catalan</A>
|
|
||||||
<A HREF="../../src/danish/IrregDanAbs.gf">Danish</A>
|
|
||||||
<A HREF="../../src/dutch/IrregDutAbs.gf">Dutch</A>
|
|
||||||
<A HREF="../../src/english/IrregEngAbs.gf">English</A>
|
|
||||||
<A HREF="../../src/french/IrregFreAbs.gf">French</A>
|
|
||||||
<A HREF="../../src/german/IrregGerAbs.gf">German</A>
|
|
||||||
<A HREF="../../src/norwegian/IrregNorAbs.gf">Norwegian</A>
|
|
||||||
<A HREF="../../src/spanish/IrregSpaAbs.gf">Spanish</A>
|
|
||||||
<A HREF="../../src/swedish/IrregSweAbs.gf">Swedish</A>
|
|
||||||
<A HREF="../../src/turkish/IrregTurAbs.gf">Turkish</A>
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Large-scale dictionaries</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
These morphological dictionaries are extracted from open source lexica by using the resource grammar paradigms. The figures give the approximate number of lemmas.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
<A HREF="../../src/bulgarian/DictBulAbs.gf">Bulgarian</A> 53k
|
|
||||||
<A HREF="../../src/english/DictEngAbs.gf">English</A> 43k
|
|
||||||
<A HREF="../../src/finnish/DictFinAbs.gf">Finnish</A> 42k
|
|
||||||
<A HREF="../../src/french/DictFreAbs.gf">French</A> 92k
|
|
||||||
<A HREF="../../src/swedish/DictSweAbs.gf">Swedish</A> 43k
|
|
||||||
<A HREF="../../src/turkish/DictTurAbs.gf">Turkish</A> 24k
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Abstract Syntax Modules</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
These modules are for internal use of resource grammarians, but the comments give some more linguistic explanation of the different constructs.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="4">
|
|
||||||
<TR>
|
|
||||||
<TH>module</TH>
|
|
||||||
<TH>contents</TH>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Adjective.html">Adjective</A></TD>
|
|
||||||
<TD>constructors for A, AP</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Adverb.html">Adverb</A></TD>
|
|
||||||
<TD>constructors for Adv, AdV</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Cat.html">Cat</A></TD>
|
|
||||||
<TD>lincats of all categories</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Common.html">Common</A></TD>
|
|
||||||
<TD>default lincats for string categories</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Conjunction.html">Conjunction</A></TD>
|
|
||||||
<TD>coordination rules</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Extra.html">Extra</A></TD>
|
|
||||||
<TD>constructs available in some languages only</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Grammar.html">Grammar</A></TD>
|
|
||||||
<TD>everything except content lexicon</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Idiom.html">Idiom</A></TD>
|
|
||||||
<TD>idiomatic constructions</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Lang.html">Lang</A></TD>
|
|
||||||
<TD>everything (Grammar and Lexicon)</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Lexicon.html">Lexicon</A></TD>
|
|
||||||
<TD>content word lexicon</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Noun.html">Noun</A></TD>
|
|
||||||
<TD>constructors for NP, CN, Det</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Numeral.html">Numeral</A></TD>
|
|
||||||
<TD>constructors for Numeral and Digits</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Phrase.html">Phrase</A></TD>
|
|
||||||
<TD>constructors for Phr, Utt</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Question.html">Question</A></TD>
|
|
||||||
<TD>constructors for QS, QCl, IP</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Relative.html">Relative</A></TD>
|
|
||||||
<TD>constructors for RS, RCl, RP</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Sentence.html">Sentence</A></TD>
|
|
||||||
<TD>constructors for S, Cl, SC</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Structural.html">Structural</A></TD>
|
|
||||||
<TD>structural word lexicon</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Symbol.html">Symbol</A></TD>
|
|
||||||
<TD>mixtures of verbal and symbolic expressions</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Tense.html">Tense</A></TD>
|
|
||||||
<TD>common API tense system</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Text.html">Text</A></TD>
|
|
||||||
<TD>constructors for Tex</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD><A HREF="Verb.html">Verb</A></TD>
|
|
||||||
<TD>constructors for VP, VPSlash, Comp</TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H2>The Module Dependency Tree</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
<IMG ALIGN="middle" SRC="Syntax.png" BORDER="0" ALT="">
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
|
|
||||||
<!-- cmdline: txt2tags -thtml sources.txt -->
|
|
||||||
</BODY></HTML>
|
|
||||||
@@ -3,7 +3,7 @@ More modules in the GF Resource Grammar Library
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
[back to synopsis ../synopsis.html]
|
[Back to synopsis ../synopsis/index.html]
|
||||||
|
|
||||||
==Extra syntax modules==
|
==Extra syntax modules==
|
||||||
|
|
||||||
@@ -93,8 +93,3 @@ These modules are for internal use of resource grammarians, but the comments giv
|
|||||||
==The Module Dependency Tree==
|
==The Module Dependency Tree==
|
||||||
|
|
||||||
[Syntax.png]
|
[Syntax.png]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
doc/hovering.png
|
Before Width: | Height: | Size: 166 KiB |
267
doc/index.txt
@@ -1,267 +0,0 @@
|
|||||||
GF Resource Grammar Library v. 1.2
|
|
||||||
Author: Aarne Ranta <aarne (at) cs.chalmers.se>
|
|
||||||
Last update: %%date(%c)
|
|
||||||
|
|
||||||
% NOTE: this is a txt2tags file.
|
|
||||||
% Create an html file from this file using:
|
|
||||||
% txt2tags --toc -thtml index.txt
|
|
||||||
|
|
||||||
%!target:html
|
|
||||||
|
|
||||||
%!postproc(html): #BCEN <center>
|
|
||||||
%!postproc(html): #ECEN </center>
|
|
||||||
|
|
||||||
|
|
||||||
#BCEN
|
|
||||||
|
|
||||||
[10lang-large.png]
|
|
||||||
|
|
||||||
#ECEN
|
|
||||||
|
|
||||||
|
|
||||||
The GF Resource Grammar Library defines the basic grammar of
|
|
||||||
ten languages:
|
|
||||||
Danish, English, Finnish, French, German,
|
|
||||||
Italian, Norwegian, Russian, Spanish, Swedish.
|
|
||||||
Still incomplete implementations for Arabic and Catalan are also
|
|
||||||
included.
|
|
||||||
|
|
||||||
**New** in December 2007: Browsing the library by syntax editor
|
|
||||||
[directly on the web ../../../demos/resource-api/editor.html].
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
==Authors==
|
|
||||||
|
|
||||||
Inger Andersson and Therese Soderberg (Spanish morphology),
|
|
||||||
Nicolas Barth and Sylvain Pogodalla (French verb list),
|
|
||||||
Ali El Dada (Arabic modules),
|
|
||||||
Magda Gerritsen and Ulrich Real (Russian paradigms and lexicon),
|
|
||||||
Janna Khegai (Russian modules),
|
|
||||||
Bjorn Bringert (many Swadesh lexica),
|
|
||||||
Carlos Gonzalía (Spanish cardinals),
|
|
||||||
Harald Hammarström (German morphology),
|
|
||||||
Patrik Jansson (Swedish cardinals),
|
|
||||||
Andreas Priesnitz (German lexicon),
|
|
||||||
Aarne Ranta,
|
|
||||||
Jordi Saludes (Catalan modules),
|
|
||||||
Henning Thielemann (German lexicon).
|
|
||||||
|
|
||||||
|
|
||||||
We are grateful for contributions and
|
|
||||||
comments to several other people who have used this and
|
|
||||||
the previous versions of the resource library, including
|
|
||||||
Ludmilla Bogavac,
|
|
||||||
Ana Bove,
|
|
||||||
David Burke,
|
|
||||||
Lauri Carlson,
|
|
||||||
Gloria Casanellas,
|
|
||||||
Karin Cavallin,
|
|
||||||
Robin Cooper,
|
|
||||||
Hans-Joachim Daniels,
|
|
||||||
Elisabet Engdahl,
|
|
||||||
Markus Forsberg,
|
|
||||||
Kristofer Johannisson,
|
|
||||||
Anni Laine,
|
|
||||||
Hans Leiß,
|
|
||||||
Peter Ljunglöf,
|
|
||||||
Saara Myllyntausta,
|
|
||||||
Wanjiku Ng'ang'a,
|
|
||||||
Nadine Perera,
|
|
||||||
Jordi Saludes.
|
|
||||||
|
|
||||||
|
|
||||||
==License==
|
|
||||||
|
|
||||||
The GF Resource Grammar Library is open-source software licensed under
|
|
||||||
GNU Lesser General Public License (LGPL). See the file [LICENSE ../LICENSE] for more
|
|
||||||
details.
|
|
||||||
|
|
||||||
|
|
||||||
==Scope==
|
|
||||||
|
|
||||||
Coverage, for each language:
|
|
||||||
- complete morphology
|
|
||||||
- lexicon of the ca. 100 most important structural words
|
|
||||||
- test lexicon of ca. 300 content words (rough equivalents in each language)
|
|
||||||
- list of irregular verbs (separately for each language)
|
|
||||||
- representative fragment of syntax (cf. CLE (Core Language Engine))
|
|
||||||
- rather flat semantics (cf. Quasi-Logical Form of CLE)
|
|
||||||
|
|
||||||
|
|
||||||
Organization:
|
|
||||||
- top-level (API) modules
|
|
||||||
- Ground API + special-purpose APIs
|
|
||||||
- "school grammar" concepts rather than advanced linguistic theory
|
|
||||||
|
|
||||||
|
|
||||||
Presentation:
|
|
||||||
- tool ``gfdoc`` for generating HTML from grammars
|
|
||||||
- example collections
|
|
||||||
|
|
||||||
|
|
||||||
==Location==
|
|
||||||
|
|
||||||
Assuming you have installed the libraries, you will find the precompiled
|
|
||||||
``gfc`` and ``gfr`` files directly under ``$GF_LIB_PATH``, whose default
|
|
||||||
value is ``/usr/local/share/GF/``. The precompiled subdirectories are
|
|
||||||
```
|
|
||||||
alltenses
|
|
||||||
mathematical
|
|
||||||
multimodal
|
|
||||||
present
|
|
||||||
```
|
|
||||||
Do for instance
|
|
||||||
```
|
|
||||||
cd $GF_LIB_PATH
|
|
||||||
gf alltenses/langs.gfcm
|
|
||||||
|
|
||||||
> p -cat=S -lang=LangEng "this grammar is too big" | tb
|
|
||||||
```
|
|
||||||
For more details, see the [Synopsis synopsis.html].
|
|
||||||
|
|
||||||
|
|
||||||
==Compilation==
|
|
||||||
|
|
||||||
If you want to compile the library from scratch, use ``make`` in the root of
|
|
||||||
the source directory:
|
|
||||||
```
|
|
||||||
cd GF/lib/resource-1.0
|
|
||||||
make
|
|
||||||
```
|
|
||||||
The ``make`` procedure does not by default make Arabic and Catalan, but you
|
|
||||||
can uncomment the relevant lines in ``Makefile`` to compile them.
|
|
||||||
|
|
||||||
|
|
||||||
==Encoding==
|
|
||||||
|
|
||||||
Finnish, German, Romance, and Scandinavian languages are in isolatin-1.
|
|
||||||
|
|
||||||
Arabic and Russian are in UTF-8.
|
|
||||||
|
|
||||||
English is in pure ASCII.
|
|
||||||
|
|
||||||
The different encodings imply, unfortunately, that it is hard to get
|
|
||||||
a nice view of all languages simultaneously. The easiest way to achieve this is
|
|
||||||
to use ``gfeditor``, which automatically converts grammars to UTF-8.
|
|
||||||
|
|
||||||
|
|
||||||
==Using the resource as library==
|
|
||||||
|
|
||||||
This API is accessible by both ``present`` and ``alltenses``. The modules you most often need are
|
|
||||||
- ``Syntax``, the interface to syntactic structures
|
|
||||||
- ``Syntax``//L//, the implementations of ``Syntax`` for each language //L//
|
|
||||||
- ``Paradigms``//L//, the morphological paradigms for each language //L//
|
|
||||||
|
|
||||||
|
|
||||||
The [Synopsis synopsis.html] gives examples on the typical usage of these
|
|
||||||
modules.
|
|
||||||
|
|
||||||
|
|
||||||
==Using the resource as top level grammar==
|
|
||||||
|
|
||||||
The following modules can be used for parsing and linearization. They are accessible from both
|
|
||||||
``present`` and ``alltenses``.
|
|
||||||
- ``Lang``//L// for each language //L//, implementing a common abstract syntax ``Lang``
|
|
||||||
- ``Danish``, ``English``, etc, implementing ``Lang`` with language-specific extensions
|
|
||||||
|
|
||||||
|
|
||||||
In addition, there is in both ``present`` and ``alltenses`` the file
|
|
||||||
- ``langs.gfcm``, a package with precompiled ``Lang``//L// grammars
|
|
||||||
|
|
||||||
|
|
||||||
A way to test and view the resource grammar is to load ``langs.gfcm`` either into ``gfeditor``
|
|
||||||
or into the ``gf`` shell and perform actions such as syntax editing and treebank generation.
|
|
||||||
For instance, the command
|
|
||||||
```
|
|
||||||
> p -lang=LangEng -cat=S "this grammar is too big" | tb
|
|
||||||
```
|
|
||||||
creates a treebank entry with translations of this sentence.
|
|
||||||
|
|
||||||
For parsing, currently only English and the Scandinavian languages are within the limits ofr
|
|
||||||
reasonable resources. For other languages //L//, parsing with ``Lang``//L// will probably eat
|
|
||||||
up the computer resources before finishing the parser generation.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
==Accessing the lower level ground API==
|
|
||||||
|
|
||||||
The ``Syntax`` API is implemented in terms a bunch of ``abstract`` modules, which
|
|
||||||
as of version 1.2 are mainly interesting for implementors of the resource.
|
|
||||||
See the [documentation for version 1.1 index-1.1.html] for more details.
|
|
||||||
|
|
||||||
|
|
||||||
==Known bugs and missing components==
|
|
||||||
|
|
||||||
Danish
|
|
||||||
- the lexicon and chosen inflections are only partially verified
|
|
||||||
|
|
||||||
|
|
||||||
English
|
|
||||||
|
|
||||||
|
|
||||||
Finnish
|
|
||||||
- wrong cases in some passive constructions
|
|
||||||
|
|
||||||
|
|
||||||
French
|
|
||||||
- multiple clitics (with V3) not always right
|
|
||||||
- third person pronominal questions with inverted word order
|
|
||||||
have wrong forms if "t" is required e.g.
|
|
||||||
(e.g. "comment fera-t-il" becomes "comment fera il")
|
|
||||||
|
|
||||||
|
|
||||||
German
|
|
||||||
|
|
||||||
|
|
||||||
Italian
|
|
||||||
- multiple clitics (with V3) not always right
|
|
||||||
|
|
||||||
|
|
||||||
Norwegian
|
|
||||||
- the lexicon and chosen inflections are only partially verified
|
|
||||||
|
|
||||||
|
|
||||||
Russian
|
|
||||||
- some functions missing
|
|
||||||
- some regular paradigms are missing
|
|
||||||
|
|
||||||
|
|
||||||
Spanish
|
|
||||||
- multiple clitics (with V3) not always right
|
|
||||||
- missing contractions with imperatives and clitics
|
|
||||||
|
|
||||||
|
|
||||||
Swedish
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
==More reading==
|
|
||||||
|
|
||||||
[Synopsis synopsis.html]. The concise guide to API v. 1.2.
|
|
||||||
|
|
||||||
[Grammars as Software Libraries gslt-sem-2006.html]. Slides
|
|
||||||
with background and motivation for the resource grammar library.
|
|
||||||
|
|
||||||
[GF Resource Grammar Library Version 1.0 clt2006.html]. Slides
|
|
||||||
giving an overview of the library and practical hints on its use.
|
|
||||||
|
|
||||||
[How to write resource grammars Resource-HOWTO.html]. Helps you
|
|
||||||
start if you want to add another language to the library.
|
|
||||||
|
|
||||||
[Parametrized modules for Romance languages http://www.cs.chalmers.se/~aarne/geocal2006.pdf].
|
|
||||||
Slides explaining some ideas in the implementation of
|
|
||||||
French, Italian, and Spanish.
|
|
||||||
|
|
||||||
[Grammar writing by examples http://www.cs.chalmers.se/~aarne/slides/webalt-2005.pdf].
|
|
||||||
Slides showing how linearization rules are written as strings parsable by the resource grammar.
|
|
||||||
|
|
||||||
[Multimodal Resource Grammars http://www.cs.chalmers.se/~aarne/slides/talk-edin2005.pdf].
|
|
||||||
Slides showing how to use the multimodal resource library. N.B. the library
|
|
||||||
examples are from ``multimodal/old``, which is a reduced-size API.
|
|
||||||
|
|
||||||
[GF Resource Grammar Library ../../../doc/resource.pdf] (pdf).
|
|
||||||
Printable user manual with API documentation, for version 1.0.
|
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@ Aarne Ranta
|
|||||||
|
|
||||||
|
|
||||||
%!Encoding:utf8
|
%!Encoding:utf8
|
||||||
%!style(html): ../revealpopup.css
|
%!style(html): revealpopup.css
|
||||||
|
|
||||||
%!postproc(tex) : "#BECE" "begin{center}"
|
%!postproc(tex) : "#BECE" "begin{center}"
|
||||||
%!postproc(html) : "#BECE" "<center>"
|
%!postproc(html) : "#BECE" "<center>"
|
||||||
@@ -377,5 +377,3 @@ and the ``Num`` //five//. It is also common that a "structural word" in a partic
|
|||||||
a feature of the other words it combines with, rather than as a word of its own. For instance,
|
a feature of the other words it combines with, rather than as a word of its own. For instance,
|
||||||
the determiner //the// in Swedish just selects an inflectional form of the noun that it is applied to:
|
the determiner //the// in Swedish just selects an inflectional form of the noun that it is applied to:
|
||||||
"the" + //bil// = //bilen// ("the car").
|
"the" + //bil// = //bilen// ("the car").
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
581
doc/official.txt
@@ -1,581 +0,0 @@
|
|||||||
The Official EU languages
|
|
||||||
|
|
||||||
The 20 official languages of the EU and their abbreviations are as follows:
|
|
||||||
|
|
||||||
Español ES Spanish
|
|
||||||
Dansk DA Danish
|
|
||||||
Deutsch DE German
|
|
||||||
Elinika EL Greek
|
|
||||||
English EN
|
|
||||||
Français FR French
|
|
||||||
Italiano IT Italian
|
|
||||||
Nederlands NL Dutch
|
|
||||||
Português PT Portuguese
|
|
||||||
Suomi FI Finnish
|
|
||||||
Svenska SV Swedish
|
|
||||||
?e?tina CS Czech
|
|
||||||
Eesti ET Estonian
|
|
||||||
Latviesu valoda LV Latvian
|
|
||||||
Lietuviu kalba LT Lithuanian
|
|
||||||
Magyar HU Hungarian
|
|
||||||
Malti MT Maltese
|
|
||||||
Polski PL Polish
|
|
||||||
Sloven?ina SK Slovak
|
|
||||||
Sloven??ina SL Slovene
|
|
||||||
|
|
||||||
http://europa.eu.int/comm/education/policies/lang/languages/index_en.html
|
|
||||||
|
|
||||||
-----
|
|
||||||
http://www.w3.org/WAI/ER/IG/ert/iso639.htm
|
|
||||||
|
|
||||||
ar arabic
|
|
||||||
no norwegian
|
|
||||||
ru russian
|
|
||||||
|
|
||||||
--
|
|
||||||
|
|
||||||
ISO 639: 3-letter codes
|
|
||||||
|
|
||||||
abk ab Abkhazian
|
|
||||||
ace Achinese
|
|
||||||
ach Acoli
|
|
||||||
ada Adangme
|
|
||||||
aar aa Afar
|
|
||||||
afh Afrihili
|
|
||||||
afr af Afrikaans
|
|
||||||
afa Afro-Asiatic (Other)
|
|
||||||
aka Akan
|
|
||||||
akk Akkadian
|
|
||||||
alb/sqi sq Albanian
|
|
||||||
ale Aleut
|
|
||||||
alg Algonquian languages
|
|
||||||
tut Altaic (Other)
|
|
||||||
amh am Amharic
|
|
||||||
apa Apache languages
|
|
||||||
ara ar Arabic
|
|
||||||
arc Aramaic
|
|
||||||
arp Arapaho
|
|
||||||
arn Araucanian
|
|
||||||
arw Arawak
|
|
||||||
arm/hye hy Armenian
|
|
||||||
art Artificial (Other)
|
|
||||||
asm as Assamese
|
|
||||||
ath Athapascan languages
|
|
||||||
map Austronesian (Other)
|
|
||||||
ava Avaric
|
|
||||||
ave Avestan
|
|
||||||
awa Awadhi
|
|
||||||
aym ay Aymara
|
|
||||||
aze az Azerbaijani
|
|
||||||
nah Aztec
|
|
||||||
ban Balinese
|
|
||||||
bat Baltic (Other)
|
|
||||||
bal Baluchi
|
|
||||||
bam Bambara
|
|
||||||
bai Bamileke languages
|
|
||||||
bad Banda
|
|
||||||
bnt Bantu (Other)
|
|
||||||
bas Basa
|
|
||||||
bak ba Bashkir
|
|
||||||
baq/eus eu Basque
|
|
||||||
bej Beja
|
|
||||||
bem Bemba
|
|
||||||
ben bn Bengali
|
|
||||||
ber Berber (Other)
|
|
||||||
bho Bhojpuri
|
|
||||||
bih bh Bihari
|
|
||||||
bik Bikol
|
|
||||||
bin Bini
|
|
||||||
bis bi Bislama
|
|
||||||
bra Braj
|
|
||||||
bre be Breton
|
|
||||||
bug Buginese
|
|
||||||
bul bg Bulgarian
|
|
||||||
bua Buriat
|
|
||||||
bur/mya my Burmese
|
|
||||||
bel be Byelorussian
|
|
||||||
cad Caddo
|
|
||||||
car Carib
|
|
||||||
cat ca Catalan
|
|
||||||
cau Caucasian (Other)
|
|
||||||
ceb Cebuano
|
|
||||||
cel Celtic (Other)
|
|
||||||
cai Central American Indian (Other)
|
|
||||||
chg Chagatai
|
|
||||||
cha Chamorro
|
|
||||||
che Chechen
|
|
||||||
chr Cherokee
|
|
||||||
chy Cheyenne
|
|
||||||
chb Chibcha
|
|
||||||
chi/zho zh Chinese
|
|
||||||
chn Chinook jargon
|
|
||||||
cho Choctaw
|
|
||||||
chu Church Slavic
|
|
||||||
chv Chuvash
|
|
||||||
cop Coptic
|
|
||||||
cor Cornish
|
|
||||||
cos co Corsican
|
|
||||||
cre Cree
|
|
||||||
mus Creek
|
|
||||||
crp Creoles and Pidgins (Other)
|
|
||||||
cpe Creoles and Pidgins, English-based (Other)
|
|
||||||
cpf Creoles and Pidgins, French-based (Other)
|
|
||||||
cpp Creoles and Pidgins, Portuguese-based (Other)
|
|
||||||
cus Cushitic (Other)
|
|
||||||
hr Croatian
|
|
||||||
ces/cze cs Czech
|
|
||||||
dak Dakota
|
|
||||||
dan da Danish
|
|
||||||
del Delaware
|
|
||||||
din Dinka
|
|
||||||
div Divehi
|
|
||||||
doi Dogri
|
|
||||||
dra Dravidian (Other)
|
|
||||||
dua Duala
|
|
||||||
dut/nla nl Dutch
|
|
||||||
dum Dutch, Middle (ca. 1050-1350)
|
|
||||||
dyu Dyula
|
|
||||||
dzo dz Dzongkha
|
|
||||||
efi Efik
|
|
||||||
egy Egyptian (Ancient)
|
|
||||||
eka Ekajuk
|
|
||||||
elx Elamite
|
|
||||||
eng en English
|
|
||||||
enm English, Middle (ca. 1100-1500)
|
|
||||||
ang English, Old (ca. 450-1100)
|
|
||||||
esk Eskimo (Other)
|
|
||||||
epo eo Esperanto
|
|
||||||
est et Estonian
|
|
||||||
ewe Ewe
|
|
||||||
ewo Ewondo
|
|
||||||
fan Fang
|
|
||||||
fat Fanti
|
|
||||||
fao fo Faroese
|
|
||||||
fij fj Fijian
|
|
||||||
fin fi Finnish
|
|
||||||
fiu Finno-Ugrian (Other)
|
|
||||||
fon Fon
|
|
||||||
fra/fre fr French
|
|
||||||
frm French, Middle (ca. 1400-1600)
|
|
||||||
fro French, Old (842- ca. 1400)
|
|
||||||
fry fy Frisian
|
|
||||||
ful Fulah
|
|
||||||
gaa Ga
|
|
||||||
gae/gdh Gaelic (Scots)
|
|
||||||
glg gl Gallegan
|
|
||||||
lug Ganda
|
|
||||||
gay Gayo
|
|
||||||
gez Geez
|
|
||||||
geo/kat ka Georgian
|
|
||||||
deu/ger de German
|
|
||||||
gmh German, Middle High (ca. 1050-1500)
|
|
||||||
goh German, Old High (ca. 750-1050)
|
|
||||||
gem Germanic (Other)
|
|
||||||
gil Gilbertese
|
|
||||||
gon Gondi
|
|
||||||
got Gothic
|
|
||||||
grb Grebo
|
|
||||||
grc Greek, Ancient (to 1453)
|
|
||||||
ell/gre el Greek, Modern (1453-)
|
|
||||||
kal kl Greenlandic
|
|
||||||
grn gn Guarani
|
|
||||||
guj gu Gujarati
|
|
||||||
hai Haida
|
|
||||||
hau ha Hausa
|
|
||||||
haw Hawaiian
|
|
||||||
heb he Hebrew
|
|
||||||
her Herero
|
|
||||||
hil Hiligaynon
|
|
||||||
him Himachali
|
|
||||||
hin hi Hindi
|
|
||||||
hmo Hiri Motu
|
|
||||||
hun hu Hungarian
|
|
||||||
hup Hupa
|
|
||||||
iba Iban
|
|
||||||
ice/isl is Icelandic
|
|
||||||
ibo Igbo
|
|
||||||
ijo Ijo
|
|
||||||
ilo Iloko
|
|
||||||
inc Indic (Other)
|
|
||||||
ine Indo-European (Other)
|
|
||||||
ind id Indonesian
|
|
||||||
ina ia Interlingua (International Auxiliary language Association)
|
|
||||||
ine - Interlingue
|
|
||||||
iku iu Inuktitut
|
|
||||||
ipk ik Inupiak
|
|
||||||
ira Iranian (Other)
|
|
||||||
gai/iri ga Irish
|
|
||||||
sga Irish, Old (to 900)
|
|
||||||
mga Irish, Middle (900 - 1200)
|
|
||||||
iro Iroquoian languages
|
|
||||||
ita it Italian
|
|
||||||
jpn ja Japanese
|
|
||||||
jav/jaw jv/jw Javanese
|
|
||||||
jrb Judeo-Arabic
|
|
||||||
jpr Judeo-Persian
|
|
||||||
kab Kabyle
|
|
||||||
kac Kachin
|
|
||||||
kam Kamba
|
|
||||||
kan kn Kannada
|
|
||||||
kau Kanuri
|
|
||||||
kaa Kara-Kalpak
|
|
||||||
kar Karen
|
|
||||||
kas ks Kashmiri
|
|
||||||
kaw Kawi
|
|
||||||
kaz kk Kazakh
|
|
||||||
kha Khasi
|
|
||||||
khm km Khmer
|
|
||||||
khi Khoisan (Other)
|
|
||||||
kho Khotanese
|
|
||||||
kik Kikuyu
|
|
||||||
kin rw Kinyarwanda
|
|
||||||
kir ky Kirghiz
|
|
||||||
kom Komi
|
|
||||||
kon Kongo
|
|
||||||
kok Konkani
|
|
||||||
kor ko Korean
|
|
||||||
kpe Kpelle
|
|
||||||
kro Kru
|
|
||||||
kua Kuanyama
|
|
||||||
kum Kumyk
|
|
||||||
kur ku Kurdish
|
|
||||||
kru Kurukh
|
|
||||||
kus Kusaie
|
|
||||||
kut Kutenai
|
|
||||||
lad Ladino
|
|
||||||
lah Lahnda
|
|
||||||
lam Lamba
|
|
||||||
oci oc Langue d'Oc (post 1500)
|
|
||||||
lao lo Lao
|
|
||||||
lat la Latin
|
|
||||||
lav lv Latvian
|
|
||||||
ltz Letzeburgesch
|
|
||||||
lez Lezghian
|
|
||||||
lin ln Lingala
|
|
||||||
lit lt Lithuanian
|
|
||||||
loz Lozi
|
|
||||||
lub Luba-Katanga
|
|
||||||
lui Luiseno
|
|
||||||
lun Lunda
|
|
||||||
luo Luo (Kenya and Tanzania)
|
|
||||||
mac/mak mk Macedonian
|
|
||||||
mad Madurese
|
|
||||||
mag Magahi
|
|
||||||
mai Maithili
|
|
||||||
mak Makasar
|
|
||||||
mlg mg Malagasy
|
|
||||||
may/msa ms Malay
|
|
||||||
mal Malayalam
|
|
||||||
mlt ml Maltese
|
|
||||||
man Mandingo
|
|
||||||
mni Manipuri
|
|
||||||
mno Manobo languages
|
|
||||||
max Manx
|
|
||||||
mao/mri mi Maori
|
|
||||||
mar mr Marathi
|
|
||||||
chm Mari
|
|
||||||
mah Marshall
|
|
||||||
mwr Marwari
|
|
||||||
mas Masai
|
|
||||||
myn Mayan languages
|
|
||||||
men Mende
|
|
||||||
mic Micmac
|
|
||||||
min Minangkabau
|
|
||||||
mis Miscellaneous (Other)
|
|
||||||
moh Mohawk
|
|
||||||
mol mo Moldavian
|
|
||||||
mkh Mon-Kmer (Other)
|
|
||||||
lol Mongo
|
|
||||||
mon mn Mongolian
|
|
||||||
mos Mossi
|
|
||||||
mul Multiple languages
|
|
||||||
mun Munda languages
|
|
||||||
nau na Nauru
|
|
||||||
nav Navajo
|
|
||||||
nde Ndebele, North
|
|
||||||
nbl Ndebele, South
|
|
||||||
ndo Ndongo
|
|
||||||
nep ne Nepali
|
|
||||||
new Newari
|
|
||||||
nic Niger-Kordofanian (Other)
|
|
||||||
ssa Nilo-Saharan (Other)
|
|
||||||
niu Niuean
|
|
||||||
non Norse, Old
|
|
||||||
nai North American Indian (Other)
|
|
||||||
nor no Norwegian
|
|
||||||
nno Norwegian (Nynorsk)
|
|
||||||
nub Nubian languages
|
|
||||||
nym Nyamwezi
|
|
||||||
nya Nyanja
|
|
||||||
nyn Nyankole
|
|
||||||
nyo Nyoro
|
|
||||||
nzi Nzima
|
|
||||||
oji Ojibwa
|
|
||||||
ori or Oriya
|
|
||||||
orm om Oromo
|
|
||||||
osa Osage
|
|
||||||
oss Ossetic
|
|
||||||
oto Otomian languages
|
|
||||||
pal Pahlavi
|
|
||||||
pau Palauan
|
|
||||||
pli Pali
|
|
||||||
pam Pampanga
|
|
||||||
pag Pangasinan
|
|
||||||
pan pa Panjabi
|
|
||||||
pap Papiamento
|
|
||||||
paa Papuan-Australian (Other)
|
|
||||||
fas/per fa Persian
|
|
||||||
peo Persian, Old (ca 600 - 400 B.C.)
|
|
||||||
phn Phoenician
|
|
||||||
pol pl Polish
|
|
||||||
pon Ponape
|
|
||||||
por pt Portuguese
|
|
||||||
pra Prakrit languages
|
|
||||||
pro Provencal, Old (to 1500)
|
|
||||||
pus ps Pushto
|
|
||||||
que qu Quechua
|
|
||||||
roh rm Rhaeto-Romance
|
|
||||||
raj Rajasthani
|
|
||||||
rar Rarotongan
|
|
||||||
roa Romance (Other)
|
|
||||||
ron/rum ro Romanian
|
|
||||||
rom Romany
|
|
||||||
run rn Rundi
|
|
||||||
rus ru Russian
|
|
||||||
sal Salishan languages
|
|
||||||
sam Samaritan Aramaic
|
|
||||||
smi Sami languages
|
|
||||||
smo sm Samoan
|
|
||||||
sad Sandawe
|
|
||||||
sag sg Sango
|
|
||||||
san sa Sanskrit
|
|
||||||
srd Sardinian
|
|
||||||
sco Scots
|
|
||||||
sel Selkup
|
|
||||||
sem Semitic (Other)
|
|
||||||
sr Serbian
|
|
||||||
scr sh Serbo-Croatian
|
|
||||||
srr Serer
|
|
||||||
shn Shan
|
|
||||||
sna sn Shona
|
|
||||||
sid Sidamo
|
|
||||||
bla Siksika
|
|
||||||
snd sd Sindhi
|
|
||||||
sin si Singhalese
|
|
||||||
sit - Sino-Tibetan (Other)
|
|
||||||
sio Siouan languages
|
|
||||||
sla Slavic (Other)
|
|
||||||
ssw ss Siswant
|
|
||||||
slk/slo sk Slovak
|
|
||||||
slv sl Slovenian
|
|
||||||
sog Sogdian
|
|
||||||
som so Somali
|
|
||||||
son Songhai
|
|
||||||
wen Sorbian languages
|
|
||||||
nso Sotho, Northern
|
|
||||||
sot st Sotho, Southern
|
|
||||||
sai South American Indian (Other)
|
|
||||||
esl/spa es Spanish
|
|
||||||
suk Sukuma
|
|
||||||
sux Sumerian
|
|
||||||
sun su Sudanese
|
|
||||||
sus Susu
|
|
||||||
swa sw Swahili
|
|
||||||
ssw Swazi
|
|
||||||
sve/swe sv Swedish
|
|
||||||
syr Syriac
|
|
||||||
tgl tl Tagalog
|
|
||||||
tah Tahitian
|
|
||||||
tgk tg Tajik
|
|
||||||
tmh Tamashek
|
|
||||||
tam ta Tamil
|
|
||||||
tat tt Tatar
|
|
||||||
tel te Telugu
|
|
||||||
ter Tereno
|
|
||||||
tha th Thai
|
|
||||||
bod/tib bo Tibetan
|
|
||||||
tig Tigre
|
|
||||||
tir ti Tigrinya
|
|
||||||
tem Timne
|
|
||||||
tiv Tivi
|
|
||||||
tli Tlingit
|
|
||||||
tog to Tonga (Nyasa)
|
|
||||||
ton Tonga (Tonga Islands)
|
|
||||||
tru Truk
|
|
||||||
tsi Tsimshian
|
|
||||||
tso ts Tsonga
|
|
||||||
tsn tn Tswana
|
|
||||||
tum Tumbuka
|
|
||||||
tur tr Turkish
|
|
||||||
ota Turkish, Ottoman (1500 - 1928)
|
|
||||||
tuk tk Turkmen
|
|
||||||
tyv Tuvinian
|
|
||||||
twi tw Twi
|
|
||||||
uga Ugaritic
|
|
||||||
uig ug Uighur
|
|
||||||
ukr uk Ukrainian
|
|
||||||
umb Umbundu
|
|
||||||
und Undetermined
|
|
||||||
urd ur Urdu
|
|
||||||
uzb uz Uzbek
|
|
||||||
vai Vai
|
|
||||||
ven Venda
|
|
||||||
vie vi Vietnamese
|
|
||||||
vol vo Volapük
|
|
||||||
vot Votic
|
|
||||||
wak Wakashan languages
|
|
||||||
wal Walamo
|
|
||||||
war Waray
|
|
||||||
was Washo
|
|
||||||
cym/wel cy Welsh
|
|
||||||
wol wo Wolof
|
|
||||||
xho xh Xhosa
|
|
||||||
sah Yakut
|
|
||||||
yao Yao
|
|
||||||
yap Yap
|
|
||||||
yid yi Yiddish
|
|
||||||
yor yo Yoruba
|
|
||||||
zap Zapotec
|
|
||||||
zen Zenaga
|
|
||||||
zha za Zhuang
|
|
||||||
zul zu Zulu
|
|
||||||
zun Zuni
|
|
||||||
|
|
||||||
ISO 639: 2-letter codes
|
|
||||||
|
|
||||||
AA "Afar"
|
|
||||||
AB "Abkhazian"
|
|
||||||
AF "Afrikaans"
|
|
||||||
AM "Amharic"
|
|
||||||
AR "Arabic"
|
|
||||||
AS "Assamese"
|
|
||||||
AY "Aymara"
|
|
||||||
AZ "Azerbaijani"
|
|
||||||
BA "Bashkir"
|
|
||||||
BE "Byelorussian"
|
|
||||||
BG "Bulgarian"
|
|
||||||
BH "Bihari"
|
|
||||||
BI "Bislama"
|
|
||||||
BN "Bengali" "Bangla"
|
|
||||||
BO "Tibetan"
|
|
||||||
BR "Breton"
|
|
||||||
CA "Catalan"
|
|
||||||
CO "Corsican"
|
|
||||||
CS "Czech"
|
|
||||||
CY "Welsh"
|
|
||||||
DA "Danish"
|
|
||||||
DE "German"
|
|
||||||
DZ "Bhutani"
|
|
||||||
EL "Greek"
|
|
||||||
EN "English" "American"
|
|
||||||
EO "Esperanto"
|
|
||||||
ES "Spanish"
|
|
||||||
ET "Estonian"
|
|
||||||
EU "Basque"
|
|
||||||
FA "Persian"
|
|
||||||
FI "Finnish"
|
|
||||||
FJ "Fiji"
|
|
||||||
FO "Faeroese"
|
|
||||||
FR "French"
|
|
||||||
FY "Frisian"
|
|
||||||
GA "Irish"
|
|
||||||
GD "Gaelic" "Scots Gaelic"
|
|
||||||
GL "Galician"
|
|
||||||
GN "Guarani"
|
|
||||||
GU "Gujarati"
|
|
||||||
HA "Hausa"
|
|
||||||
HI "Hindi"
|
|
||||||
HR "Croatian"
|
|
||||||
HU "Hungarian"
|
|
||||||
HY "Armenian"
|
|
||||||
IA "Interlingua"
|
|
||||||
IE "Interlingue"
|
|
||||||
IK "Inupiak"
|
|
||||||
IN "Indonesian"
|
|
||||||
IS "Icelandic"
|
|
||||||
IT "Italian"
|
|
||||||
IW "Hebrew"
|
|
||||||
JA "Japanese"
|
|
||||||
JI "Yiddish"
|
|
||||||
JW "Javanese"
|
|
||||||
KA "Georgian"
|
|
||||||
KK "Kazakh"
|
|
||||||
KL "Greenlandic"
|
|
||||||
KM "Cambodian"
|
|
||||||
KN "Kannada"
|
|
||||||
KO "Korean"
|
|
||||||
KS "Kashmiri"
|
|
||||||
KU "Kurdish"
|
|
||||||
KY "Kirghiz"
|
|
||||||
LA "Latin"
|
|
||||||
LN "Lingala"
|
|
||||||
LO "Laothian"
|
|
||||||
LT "Lithuanian"
|
|
||||||
LV "Latvian" "Lettish"
|
|
||||||
MG "Malagasy"
|
|
||||||
MI "Maori"
|
|
||||||
MK "Macedonian"
|
|
||||||
ML "Malayalam"
|
|
||||||
MN "Mongolian"
|
|
||||||
MO "Moldavian"
|
|
||||||
MR "Marathi"
|
|
||||||
MS "Malay"
|
|
||||||
MT "Maltese"
|
|
||||||
MY "Burmese"
|
|
||||||
NA "Nauru"
|
|
||||||
NE "Nepali"
|
|
||||||
NL "Dutch"
|
|
||||||
NO "Norwegian"
|
|
||||||
OC "Occitan"
|
|
||||||
OM "Oromo" "Afan"
|
|
||||||
OR "Oriya"
|
|
||||||
PA "Punjabi"
|
|
||||||
PL "Polish"
|
|
||||||
PS "Pashto" "Pushto"
|
|
||||||
PT "Portuguese"
|
|
||||||
QU "Quechua"
|
|
||||||
RM "Rhaeto-Romance"
|
|
||||||
RN "Kirundi"
|
|
||||||
RO "Romanian"
|
|
||||||
RU "Russian"
|
|
||||||
RW "Kinyarwanda"
|
|
||||||
SA "Sanskrit"
|
|
||||||
SD "Sindhi"
|
|
||||||
SG "Sangro"
|
|
||||||
SH "Serbo-Croatian"
|
|
||||||
SI "Singhalese"
|
|
||||||
SK "Slovak"
|
|
||||||
SL "Slovenian"
|
|
||||||
SM "Samoan"
|
|
||||||
SN "Shona"
|
|
||||||
SO "Somali"
|
|
||||||
SQ "Albanian"
|
|
||||||
SR "Serbian"
|
|
||||||
SS "Siswati"
|
|
||||||
ST "Sesotho"
|
|
||||||
SU "Sudanese"
|
|
||||||
SV "Swedish"
|
|
||||||
SW "Swahili"
|
|
||||||
TA "Tamil"
|
|
||||||
TE "Tegulu"
|
|
||||||
TG "Tajik"
|
|
||||||
TH "Thai"
|
|
||||||
TI "Tigrinya"
|
|
||||||
TK "Turkmen"
|
|
||||||
TL "Tagalog"
|
|
||||||
TN "Setswana"
|
|
||||||
TO "Tonga"
|
|
||||||
TR "Turkish"
|
|
||||||
TS "Tsonga"
|
|
||||||
TT "Tatar"
|
|
||||||
TW "Twi"
|
|
||||||
UK "Ukrainian"
|
|
||||||
UR "Urdu"
|
|
||||||
UZ "Uzbek"
|
|
||||||
VI "Vietnamese"
|
|
||||||
VO "Volapuk"
|
|
||||||
WO "Wolof"
|
|
||||||
XH "Xhosa"
|
|
||||||
YO "Yoruba"
|
|
||||||
ZH "Chinese"
|
|
||||||
ZU "Zulu"
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
Morphological Paradigms in the GF Resource Grammar Library
|
|
||||||
Aarne Ranta
|
|
||||||
|
|
||||||
|
|
||||||
This is a synopsis of the main morphological paradigms for
|
|
||||||
nouns (``N``), adjectives (``A``), and verbs (``V``).
|
|
||||||
|
|
||||||
|
|
||||||
=English=
|
|
||||||
|
|
||||||
```
|
|
||||||
mkN : (flash : Str) -> N ; -- car, bus, ax, hero, fly, boy
|
|
||||||
mkN : (man,men : Str) -> N ; -- index, indices
|
|
||||||
mkN : (man,men,man's,men's : Str) -> N ;
|
|
||||||
mkN : Str -> N -> N ; -- baby boom
|
|
||||||
|
|
||||||
mkA : (happy : Str) -> A ; -- small, happy, free
|
|
||||||
mkA : (fat,fatter : Str) -> A ;
|
|
||||||
mkA : (good,better,best,well : Str) -> A
|
|
||||||
compoundA : A -> A ; -- -/more/most ridiculous
|
|
||||||
|
|
||||||
mkV : (cry : Str) -> V ; -- call, kiss, echo, cry, pray
|
|
||||||
mkV : (stop,stopped : Str) -> V ;
|
|
||||||
mkV : (drink,drank,drunk : Str) -> V ;
|
|
||||||
mkV : (run,ran,run,running : Str) -> V ;
|
|
||||||
mkV : (go,goes,went,gone,going : Str) -> V
|
|
||||||
```
|
|
||||||
|
|
||||||
=French=
|
|
||||||
|
|
||||||
```
|
|
||||||
mkN : (cheval : Str) -> N ; -- pas, prix, nez, bijou, cheval
|
|
||||||
mkN : (foie : Str) -> Gender -> N ;
|
|
||||||
mkN : (oeil,yeux : Str) -> Gender -> N ;
|
|
||||||
mkN : N -> Str -> N
|
|
||||||
|
|
||||||
mkA : (cher : Str) -> A ; -- banal, heureux, italien, jeune, amer, carré, joli
|
|
||||||
mkA : (sec,seche : Str) -> A ;
|
|
||||||
mkA : (banal,banale,banaux,banalement : Str) -> A ;
|
|
||||||
mkA : (bon : A) -> (meilleur : A) -> A
|
|
||||||
prefixA : A -> A ;
|
|
||||||
|
|
||||||
mkV : (finir : Str) -> V ; -- aimer, céder, placer, manger, payer, finir
|
|
||||||
mkV : (jeter,jette,jettera : Str) -> V ;
|
|
||||||
mkV : V2 -> V
|
|
||||||
etreV : V -> V ;
|
|
||||||
reflV : V -> V ;
|
|
||||||
```
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
|
|
||||||
// Find an element with a certain tag containing a certain text.
|
|
||||||
function findElement(tagname,text) {
|
|
||||||
var els=document.body.getElementsByTagName(tagname)
|
|
||||||
for(var i=0;i<els.length;i++)
|
|
||||||
if(els[i].innerText==text) return els[i]
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
function text(s) { return document.createTextNode(s); }
|
|
||||||
|
|
||||||
function appendChildren(n,ds) {
|
|
||||||
if(Array.isArray(ds)) for(var i in ds) n.appendChild(ds[i]);
|
|
||||||
else if(typeof ds=="string")
|
|
||||||
n.appendChild(text(ds))
|
|
||||||
else
|
|
||||||
n.appendChild(ds)
|
|
||||||
}
|
|
||||||
|
|
||||||
function node(tag,cls,ds) {
|
|
||||||
var n=document.createElement(tag)
|
|
||||||
if(cls) n.className=cls
|
|
||||||
if(ds) appendChildren(n,ds)
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
function a(href,txt) {
|
|
||||||
var a=node("a","",txt)
|
|
||||||
a.href=href
|
|
||||||
return a
|
|
||||||
}
|
|
||||||
|
|
||||||
function tr(ds) { return node("tr","",ds) }
|
|
||||||
function th(d) { return node("th","",d) }
|
|
||||||
function td(d) { return node("td","",d) }
|
|
||||||
|
|
||||||
function forAllLinks(list,f) {
|
|
||||||
for(var i=0;i<list.length;i++) {
|
|
||||||
var c=list[i].firstElementChild
|
|
||||||
if(c && c.tagName=="A" && c.href) f(c)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
// Extract links to the syntax rules
|
|
||||||
function listrules(ul) {
|
|
||||||
var rules=[]
|
|
||||||
if(ul.tagName!="UL") return []
|
|
||||||
forAllLinks(ul.children,function(c) {
|
|
||||||
rules.push({href:c.href,text:c.innerText.split(" -")[0],
|
|
||||||
full:c.innerText})
|
|
||||||
})
|
|
||||||
return rules
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract the links to the paradigm sections for all the languages
|
|
||||||
function listlangs(ul) {
|
|
||||||
var langs=[]
|
|
||||||
if(ul.tagName!="UL") return []
|
|
||||||
forAllLinks(ul.children,function(c) {
|
|
||||||
if(/^Paradigms for /.test(c.innerText))
|
|
||||||
langs.push({href:c.href,text:c.innerText.substr(14),
|
|
||||||
full:c.innerText})
|
|
||||||
})
|
|
||||||
return langs
|
|
||||||
}
|
|
||||||
|
|
||||||
function linklist(links) {
|
|
||||||
var d=node("td","quicklinks")
|
|
||||||
for(var i=0;i<links.length;i++) {
|
|
||||||
var l=a(links[i].href,links[i].text)
|
|
||||||
l.title=links[i].full
|
|
||||||
d.appendChild(l)
|
|
||||||
}
|
|
||||||
return d
|
|
||||||
}
|
|
||||||
|
|
||||||
function quicklinks() {
|
|
||||||
// Find the detailed table of contents
|
|
||||||
var h1toc=findElement("h1","Table of Contents")
|
|
||||||
var ultoc=h1toc.nextElementSibling
|
|
||||||
while(ultoc && ultoc.tagName!="UL") ultoc=ultoc.nextElementSibling
|
|
||||||
|
|
||||||
var lis=ultoc.children
|
|
||||||
|
|
||||||
var syntaxrules=[],langs=[]
|
|
||||||
|
|
||||||
// Find the Syntax Rules and Lexical Paradigms sections in the toc
|
|
||||||
for(var i=0;i<lis.length;i++) {
|
|
||||||
var li=lis[i],c=li.firstElementChild
|
|
||||||
if(c.tagName=="A") {
|
|
||||||
if(/^Syntax Rules /.test(c.innerText))
|
|
||||||
syntaxrules=listrules(c.nextElementSibling)
|
|
||||||
else if(c.innerText=="Lexical Paradigms")
|
|
||||||
langs=listlangs(c.nextElementSibling)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var table=node("table","quicklinks",
|
|
||||||
[tr([th("Syntax"),th("Morphology")]),
|
|
||||||
tr([linklist(syntaxrules),linklist(langs)])])
|
|
||||||
|
|
||||||
return node("div","quicklinks",
|
|
||||||
[text("Quick links"),
|
|
||||||
node("div","expand",table)])
|
|
||||||
}
|
|
||||||
|
|
||||||
document.body.appendChild(quicklinks())
|
|
||||||
@@ -1,529 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="generator" CONTENT="http://txt2tags.org">
|
|
||||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf8">
|
|
||||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../../css/style.css">
|
|
||||||
<TITLE>GF Resource Grammar Library Documentation and Publications</TITLE>
|
|
||||||
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
|
||||||
<CENTER>
|
|
||||||
<H1>GF Resource Grammar Library Documentation and Publications</H1>
|
|
||||||
<FONT SIZE="4"><I>Aarne Ranta</I></FONT><BR>
|
|
||||||
<FONT SIZE="4">20170119</FONT>
|
|
||||||
</CENTER>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
<I>To be completed. Contributions welcome - in particular, links to open access publications!</I>
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H3>Afrikaans</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/afrikaans">http://www.grammaticalframework.org/lib/src/afrikaans</A> (Laurette Pretorius, Laurette Marais)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Amharic</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/amharic">http://www.grammaticalframework.org/lib/src/amharic</A> (Markos Kassa Gobena)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Markos Kassa Gobena.
|
|
||||||
<I>Implementing and Open Source Amharic Resource Grammar in GF</I>,
|
|
||||||
MSc thesis, Chalmers University, 2010.
|
|
||||||
<A HREF="http://publications.lib.chalmers.se/records/fulltext/146295.pdf">http://publications.lib.chalmers.se/records/fulltext/146295.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Arabic</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/arabic">http://www.grammaticalframework.org/lib/src/arabic</A> (Ali El Dada)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Ali El Dada.
|
|
||||||
<I>Arabic Resource Grammar in GF</I>, MSc Thesis, Chalmers University, 2006.
|
|
||||||
<P></P>
|
|
||||||
A. El Dada and A. Ranta.
|
|
||||||
Implementing an Open Source Arabic Resource Grammar in GF.
|
|
||||||
In M. Mughazy (ed),
|
|
||||||
<I>Perspectives on Arabic Linguistics XX. Papers from the Twentieth Annual Symposium on Arabic Linguistics, Kalamazoo, March 26</I>
|
|
||||||
John Benjamins Publishing Company.
|
|
||||||
2007.
|
|
||||||
<br>
|
|
||||||
<I>An outline of the Arabic resource grammar project, focusing on linguistic aspects.</I>
|
|
||||||
<P></P>
|
|
||||||
A. El Dada.
|
|
||||||
Implementation of the Arabic Numerals and their Syntax in GF.
|
|
||||||
Computational Approaches to Semitic Languages: Common Issues and Resources,
|
|
||||||
ACL-2007 Workshop,
|
|
||||||
June 28, 2007, Prague.
|
|
||||||
2007.
|
|
||||||
<A HREF="http://acl.ldc.upenn.edu/W/W07/W07-08.pdf">http://acl.ldc.upenn.edu/W/W07/W07-08.pdf</A>
|
|
||||||
<br>
|
|
||||||
<I>A case study with the resource grammar, focusing on the morphosyntax</I>
|
|
||||||
<I>and agreement of constructions with numerals.</I>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Bulgarian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/bulgarian">http://www.grammaticalframework.org/lib/src/bulgarian</A> (Krasimir Angelov)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
K. Angelov.
|
|
||||||
Type-Theoretical Bulgarian Grammar.
|
|
||||||
In B. Nordström and A. Ranta (eds),
|
|
||||||
<I>Advances in Natural Language Processing (GoTAL 2008)</I>,
|
|
||||||
LNCS/LNAI 5221, Springer,
|
|
||||||
2008.
|
|
||||||
<A HREF="http://link.springer.com/chapter/10.1007%2F978-3-540-85287-2_6">http://link.springer.com/chapter/10.1007%2F978-3-540-85287-2_6</A>
|
|
||||||
<br>
|
|
||||||
<I>Explains the implementation of a Bulgarian resource grammar in GF.</I>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Catalan</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/catalan">http://www.grammaticalframework.org/lib/src/catalan</A> <A HREF="http://www.grammaticalframework.org/lib/src/romance">http://www.grammaticalframework.org/lib/src/romance</A> (Jordi Saludes, Inari Listenmaa)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Chinese</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/chinese">http://www.grammaticalframework.org/lib/src/chinese</A> (Aarne Ranta, Zhuo Lin Qiqige, Chen Peng, Qiao Haiyan)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Chen Peng,
|
|
||||||
Implementation of a Chinese Resource Grammar in Grammatical Framework.
|
|
||||||
<I>International Journal of Knowledge and Language Processing</I>,
|
|
||||||
4(1),
|
|
||||||
2013,
|
|
||||||
pp. 26-34.
|
|
||||||
<A HREF="http://www.ijklp.org/archives/vol4no1/Implementation%20of%20Chinese%20Resource%20Grammar%20in%20Grammatical%20Framework.pdf">http://www.ijklp.org/archives/vol4no1/Implementation%20of%20Chinese%20Resource%20Grammar%20in%20Grammatical%20Framework.pdf</A>
|
|
||||||
<P></P>
|
|
||||||
Aarne Ranta.
|
|
||||||
Grammatical Framework and Chinese.
|
|
||||||
Appendix to the GF book (A. Ranta, <I>Grammatical Framework</I>, CSLI 2011),
|
|
||||||
2012.
|
|
||||||
<A HREF="http://www.grammaticalframework.org/gf-book/gf-chinese-appendix.pdf">http://www.grammaticalframework.org/gf-book/gf-chinese-appendix.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Danish</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/danish">http://www.grammaticalframework.org/lib/src/danish</A> <A HREF="http://www.grammaticalframework.org/lib/src/scandinavian">http://www.grammaticalframework.org/lib/src/scandinavian</A> (Aarne Ranta)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Dutch</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/dutch">http://www.grammaticalframework.org/lib/src/dutch</A> (Aarne Ranta, Femke Johansson)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>English</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/english">http://www.grammaticalframework.org/lib/src/english</A> (Aarne Ranta, Björn Bringert, Krasimir Angelov)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
A. Ranta.
|
|
||||||
The GF Resource Grammar Library.
|
|
||||||
<I>Linguistic Issues in Language Technology</I>,
|
|
||||||
2 (2),
|
|
||||||
2009.
|
|
||||||
<A HREF="http://elanguage.net/journals/index.php/lilt/article/viewFile/214/158">PDF</A>
|
|
||||||
<br>
|
|
||||||
<I>A systematic presentation of the library from the linguistic point of view.</I>
|
|
||||||
<I>Not only about English, but English examples abound.</I>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Estonian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/estonian">http://www.grammaticalframework.org/lib/src/estonian</A> (Kaarel Kaljurand, Inari Listenmaa)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Finnish</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/finnish">http://www.grammaticalframework.org/lib/src/finnish</A> (Aarne Ranta, Inari Listenmaa)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
A. Ranta.
|
|
||||||
On the Syntax and Translation of Finnish Discourse Clitics.
|
|
||||||
In D. Santos, K. Lindén and W. Ng'ang'a (eds),
|
|
||||||
<I>Shall We Play the Festschrift Game?</I>
|
|
||||||
<I>Essays on the Occasion of Lauri Carlson's 60th Birthday</I>.
|
|
||||||
Springer, Heidelberg, 2012.
|
|
||||||
pp. 227-241.
|
|
||||||
<A HREF="http://link.springer.com/chapter/10.1007/978-3-642-30773-7_14">http://link.springer.com/chapter/10.1007/978-3-642-30773-7_14</A>
|
|
||||||
draft version <A HREF="http://www.cse.chalmers.se/~aarne/articles/discourse-clitics.pdf">http://www.cse.chalmers.se/~aarne/articles/discourse-clitics.pdf</A>
|
|
||||||
<P></P>
|
|
||||||
A. Ranta.
|
|
||||||
How predictable is Finnish morphology? An experiment on lexicon construction.
|
|
||||||
In J. Nivre, M. Dahllöf and B. Megyesi (eds),
|
|
||||||
<I>Resourceful Language Technology: Festschrift in Honor of Anna Sågvall Hein</I>,
|
|
||||||
University of Uppsala,
|
|
||||||
2008.
|
|
||||||
<A HREF="http://publications.uu.se/abstract.xsql?dbid=8933">http://publications.uu.se/abstract.xsql?dbid=8933</A>
|
|
||||||
<br>
|
|
||||||
<I>Presents an experiment on smart paradigms in Finnish.</I>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>French</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/french">http://www.grammaticalframework.org/lib/src/french</A> <A HREF="http://www.grammaticalframework.org/lib/src/romance">http://www.grammaticalframework.org/lib/src/romance</A> (Aarne Ranta, Ramona Enache)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>German</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/german">http://www.grammaticalframework.org/lib/src/german</A> (Aarne Ranta, Harald Hammarström, Erzsébet Galgóczy)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Greek</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/greek">http://www.grammaticalframework.org/lib/src/greek</A> (Ioanna Papadopoulou)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Ioanna Papadopoulou.
|
|
||||||
GF Modern Greek Resource Grammar,
|
|
||||||
MA thesis, University of Gothenburg,
|
|
||||||
2013.
|
|
||||||
<P></P>
|
|
||||||
Ioanna Papadopoulou.
|
|
||||||
GF Modern Greek Resource Grammar.
|
|
||||||
RANLP 2013.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Hebrew</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/hebrew">http://www.grammaticalframework.org/lib/src/hebrew</A> (Dana Dannélls)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
D. Dannélls and J. Camilleri.
|
|
||||||
Verb Morphology of Hebrew and Maltese - Towards an Open Source Type Theoretical Resource Grammar in GF.
|
|
||||||
<I>Proceedings of the Language Resources (LRs) and Human Language Technologies (HLT) for Semitic Languages Status, Updates, and Prospects, LREC-2010 Workshop</I>,
|
|
||||||
Malta, pp. 57-61.
|
|
||||||
2010.
|
|
||||||
<A HREF="http://spraakdata.gu.se/svedd/pub/lrec10.pdf">http://spraakdata.gu.se/svedd/pub/lrec10.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Hindi</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/hindi">http://www.grammaticalframework.org/lib/src/hindi</A> <A HREF="http://www.grammaticalframework.org/lib/src/hindustani">http://www.grammaticalframework.org/lib/src/hindustani</A> (Shafqat Virk, K.V.S. Prasad, Muhammad Humayoun, Aarne Ranta)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Shafqat Virk.
|
|
||||||
<I>Computational Linguistics Resources for Indo-Iranian Languages</I>,
|
|
||||||
PhD Thesis, University of Gothenburg, 2013.
|
|
||||||
<A HREF="http://www.cse.chalmers.se/~virk/shafqat-phd-thesis.pdf">http://www.cse.chalmers.se/~virk/shafqat-phd-thesis.pdf</A>
|
|
||||||
<P></P>
|
|
||||||
K.V.S. Prasad and Shafqat Virk.
|
|
||||||
Computational evidence that
|
|
||||||
Hindi and Urdu share a grammar but not the lexicon.
|
|
||||||
In The 3rd Workshop
|
|
||||||
on South and Southeast Asian NLP, COLING 2012. <I>Reprinted in Shafqat's thesis</I>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Icelandic</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/icelandic">http://www.grammaticalframework.org/lib/src/icelandic</A> (Bjarki Traustason)
|
|
||||||
<P></P>
|
|
||||||
<B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Bjarki Traustason, MSc thesis, Chalmers
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Interlingua</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/interlingua">http://www.grammaticalframework.org/lib/src/interlingua</A> (Jean-Philippe Bernardy)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Italian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/italian">http://www.grammaticalframework.org/lib/src/italian</A> <A HREF="http://www.grammaticalframework.org/lib/src/romance">http://www.grammaticalframework.org/lib/src/romance</A> (Aarne Ranta, Ramona Enache, Gabriele Paganelli)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Japanese</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/japanese">http://www.grammaticalframework.org/lib/src/japanese</A> (Liza Zimina)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Elizaveta Zimina.
|
|
||||||
GF Japanese Resource Grammar,
|
|
||||||
MA Thesis, University of Gothenburg,
|
|
||||||
2012.
|
|
||||||
<A HREF="http://www.ling.gu.se/~lager/MLT/zimina_thesis_draft.pdf">http://www.ling.gu.se/~lager/MLT/zimina_thesis_draft.pdf</A>
|
|
||||||
<P></P>
|
|
||||||
Elizaveta Zimina.
|
|
||||||
Fitting a Round Peg in a Square Hole: Japanese Resource Grammar in GF.
|
|
||||||
<I>Advances in Natural Language Processing (JapTAL-2012)</I>
|
|
||||||
Lecture Notes in Computer Science Volume 7614, 2012, pp 156-167.
|
|
||||||
<A HREF="http://link.springer.com/chapter/10.1007%2F978-3-642-33983-7_16">http://link.springer.com/chapter/10.1007%2F978-3-642-33983-7_16</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Latin</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/latin">http://www.grammaticalframework.org/lib/src/latin</A> (Aarne Ranta)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Latvian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/latvian">http://www.grammaticalframework.org/lib/src/latvian</A> (Normunds Gruzitis, Peter Paikens)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
P. Paikens and N. Gruzitis.
|
|
||||||
An implementation of a Latvian resource grammar in Grammatical Framework,
|
|
||||||
LREC 2012, pp. 1680-1685.
|
|
||||||
<A HREF="http://lrec.elra.info/proceedings/lrec2012/pdf/976_Paper.pdf">http://lrec.elra.info/proceedings/lrec2012/pdf/976_Paper.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Maltese</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/maltese">http://www.grammaticalframework.org/lib/src/maltese</A> (John J. Camilleri)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
John J. Camilleri,
|
|
||||||
MSc thesis, Chalmers University of Technology, 2013.
|
|
||||||
<P></P>
|
|
||||||
John J. Camilleri.
|
|
||||||
A computational grammar for Maltese: Talk at the 4th International Conference on Maltese Linguistics (GĦILM 2013). Lyon, France, 2013.
|
|
||||||
<A HREF="http://academic.johnjcamilleri.com/presentations/2013-06%20G%C4%A6ILM%201.pdf">http://academic.johnjcamilleri.com/presentations/2013-06%20G%C4%A6ILM%201.pdf</A>
|
|
||||||
<P></P>
|
|
||||||
D. Dannélls and J. Camilleri.
|
|
||||||
Verb Morphology of Hebrew and Maltese - Towards an Open Source Type Theoretical Resource Grammar in GF.
|
|
||||||
<I>Proceedings of the Language Resources (LRs) and Human Language Technologies (HLT) for Semitic Languages Status, Updates, and Prospects, LREC-2010 Workshop</I>,
|
|
||||||
Malta, pp. 57-61.
|
|
||||||
2010.
|
|
||||||
<A HREF="http://spraakdata.gu.se/svedd/pub/lrec10.pdf">http://spraakdata.gu.se/svedd/pub/lrec10.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Nepali</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/nepali">http://www.grammaticalframework.org/lib/src/nepali</A> (Dinesh Simk)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Dinesh Simk.
|
|
||||||
Implementing the GF Resource Grammar for Nepali Language,
|
|
||||||
MSc thesis, Chalmers University of Technology,
|
|
||||||
2012.
|
|
||||||
<A HREF="http://publications.lib.chalmers.se/records/fulltext/161384.pdf">http://publications.lib.chalmers.se/records/fulltext/161384.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Norwegian (bokmål)</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/norwegian">http://www.grammaticalframework.org/lib/src/norwegian</A> <A HREF="http://www.grammaticalframework.org/lib/src/scandinavian">http://www.grammaticalframework.org/lib/src/scandinavian</A> (Aarne Ranta)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Norwegian (nynorsk)</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/nynorsk">http://www.grammaticalframework.org/lib/src/nynorsk</A> (Stian Rødven Eide) <A HREF="http://www.grammaticalframework.org/lib/src/scandinavian">http://www.grammaticalframework.org/lib/src/scandinavian</A> (Aarne Ranta)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Persian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/persian">http://www.grammaticalframework.org/lib/src/persian</A> (Shafqat Virk, Elnaz Abolahrar, Sofy Moradi)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Shafqat Mumtaz Virk and Elnaz Abolahrar.
|
|
||||||
An Open Source Persian Computational Grammar,
|
|
||||||
LREC 2012, pp. 1686-1693.
|
|
||||||
<A HREF="http://www.lrec-conf.org/proceedings/lrec2012/pdf/1028_Paper.pdf">http://www.lrec-conf.org/proceedings/lrec2012/pdf/1028_Paper.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Polish</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/polish">http://www.grammaticalframework.org/lib/src/polish</A> (Adam Slaski, Ilona Novak)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Adam Slaski.
|
|
||||||
Some Interesting Features of the Polish Language in Grammatical Framework.
|
|
||||||
Slide presentation, TYPES 2010, Warsaw,
|
|
||||||
2010.
|
|
||||||
<A HREF="http://www.mimuw.edu.pl/~asl/publications/types2010-slides.pdf">http://www.mimuw.edu.pl/~asl/publications/types2010-slides.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Punjabi</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/punjabi">http://www.grammaticalframework.org/lib/src/punjabi</A> (Shafqat Virk, Muhammad Humayoun)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
S. Virk, M. Humayoun, and A. Ranta.
|
|
||||||
An Open-Source Punjabi Resource Grammar.
|
|
||||||
Proceedings of RANLP-2011, Recent Advances in Natural Language Processing,
|
|
||||||
Hissar, Bulgaria, 12-14 September, 2011.
|
|
||||||
pp. 70-76.
|
|
||||||
<A HREF="http://lml.bas.bg/~iva/ranlp2011/RANLR2011_Proceedings.PDF">http://lml.bas.bg/~iva/ranlp2011/RANLR2011_Proceedings.PDF</A>
|
|
||||||
<P></P>
|
|
||||||
M. Humayoun and A. Ranta.
|
|
||||||
Developing Punjabi Morphology, Corpus and Lexicon.
|
|
||||||
<I>The 24th Pacific Asia conference on Language, Information and Computation (PACLIC24)</I>,
|
|
||||||
2010.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Romanian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/romanian">http://www.grammaticalframework.org/lib/src/romanian</A> (Ramona Enache)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
R. Enache, A. Ranta, and K. Angelov.
|
|
||||||
An Open-Source Computational Grammar of Romanian.
|
|
||||||
A. Gelbukh (ed.), <I>CiCLING-2010</I>,
|
|
||||||
LNCS 6008,
|
|
||||||
2010.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Russian</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/russian">http://www.grammaticalframework.org/lib/src/russian</A> (Janna Khegai, Nikita Frolov)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
J. Khegai.
|
|
||||||
GF parallel resource grammars and Russian.
|
|
||||||
In proceedings of ACL2006
|
|
||||||
(The joint conference of the International Committee on Computational
|
|
||||||
Linguistics and the Association for Computational Linguistics) (pp. 475-482),
|
|
||||||
Sydney, Australia, July 2006.
|
|
||||||
<P></P>
|
|
||||||
J. Khegai and A. Ranta.
|
|
||||||
Building and Using a Russian Resource Grammar in GF.
|
|
||||||
In A. Gelbukh (ed),
|
|
||||||
<I>Intelligent Text Processing and Computational Linguistics (CICLing-2004)</I>,
|
|
||||||
Seoul, Korea, February 2003,
|
|
||||||
Springer LNCS 945,
|
|
||||||
pp. 38-41,
|
|
||||||
2004.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Sindhi</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/sindhi">http://www.grammaticalframework.org/lib/src/sindhi</A> (Jherna Devi Oad)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Jherna Devi Oad.
|
|
||||||
Implementing GF Resource Grammar for Sindhi language,
|
|
||||||
MSc Thesis, Chalmers University of Technology,
|
|
||||||
2012.
|
|
||||||
<A HREF="http://publications.lib.chalmers.se/records/fulltext/163234.pdf">http://publications.lib.chalmers.se/records/fulltext/163234.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Spanish</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/spanish">http://www.grammaticalframework.org/lib/src/spanish</A> <A HREF="http://www.grammaticalframework.org/lib/src/romance">http://www.grammaticalframework.org/lib/src/romance</A>
|
|
||||||
(Aarne Ranta, Ingrid Andersson, Therese Söderberg, Inari Listenmaa)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Swahili</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/swahili">http://www.grammaticalframework.org/lib/src/swahili</A> (Wanjiku Ng'ang'a)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Wanjiku Ng'ng'a.
|
|
||||||
Building Swahili Resource Grammars for the Grammatical Framework,
|
|
||||||
In D. Santos, K. Lindén and W. Ng'ang'a (eds),
|
|
||||||
<I>Shall We Play the Festschrift Game?</I>
|
|
||||||
<I>Essays on the Occasion of Lauri Carlson's 60th Birthday</I>.
|
|
||||||
Springer, Heidelberg, 2012.
|
|
||||||
pp. 227-241.
|
|
||||||
<A HREF="http://link.springer.com/chapter/10.1007/978-3-642-30773-7_13">http://link.springer.com/chapter/10.1007/978-3-642-30773-7_13</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Swedish</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/swedish">http://www.grammaticalframework.org/lib/src/swedish</A> <A HREF="http://www.grammaticalframework.org/lib/src/scandinavian">http://www.grammaticalframework.org/lib/src/scandinavian</A> (Aarne Ranta, Malin Ahlberg, Markus Forsberg)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
Malin Ahlberg.
|
|
||||||
<I>Towards a Wide-Coverage Grammar for Swedish Using GF</I>,
|
|
||||||
MSc thesis, University of Gothenburg,
|
|
||||||
2012.
|
|
||||||
<A HREF="https://gupea.ub.gu.se/bitstream/2077/28838/1/gupea_2077_28838_1.pdf">https://gupea.ub.gu.se/bitstream/2077/28838/1/gupea_2077_28838_1.pdf</A>
|
|
||||||
<P></P>
|
|
||||||
Malin Ahlberg and Ramona Enache.
|
|
||||||
A Type-Theoretical Wide-Coverage Computational Grammar for Swedish.
|
|
||||||
P. Sojka et al (eds), TSD 2012, LNCS 7499, pp. 183-190.
|
|
||||||
<A HREF="http://link.springer.com/content/pdf/10.1007%2F978-3-642-32790-2_22.pdf">http://link.springer.com/content/pdf/10.1007%2F978-3-642-32790-2_22.pdf</A>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Thai</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/thai">http://www.grammaticalframework.org/lib/src/thai</A> (Aarne Ranta, Chotiros Kairoje)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Turkish</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/turkish">http://www.grammaticalframework.org/lib/src/turkish</A> (Server Cimen)
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Urdu</H3>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/urdu">http://www.grammaticalframework.org/lib/src/urdu</A> <A HREF="http://www.grammaticalframework.org/lib/src/hindustani">http://www.grammaticalframework.org/lib/src/hindustani</A> (Shafqat Virk, Muhamman Humayoun)
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Publications</B>
|
|
||||||
<P></P>
|
|
||||||
S. Virk, M. Humayoun, and A. Ranta.
|
|
||||||
An Open Source Urdu Resource Grammar.
|
|
||||||
<I>Proceedings of the 8th Workshop on Asian Language Resources (Coling 2010 workshop)</I>,
|
|
||||||
2010.
|
|
||||||
<P></P>
|
|
||||||
M. Humayoun, H. Hammarström, and A. Ranta.
|
|
||||||
Urdu Morphology, Orthography and Lexicon Extraction.
|
|
||||||
<I>CAASL-2: The Second Workshop on Computational Approaches to Arabic Script-based Languages</I>,
|
|
||||||
July 21-22, 2007, LSA 2007 Linguistic Institute, Stanford University.
|
|
||||||
2007.
|
|
||||||
<P></P>
|
|
||||||
See also <B>Hindi</B> above.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
|
|
||||||
<!-- cmdline: txt2tags -thtml rgl-publications.txt -->
|
|
||||||
</BODY></HTML>
|
|
||||||
@@ -67,6 +67,16 @@ http://acl.ldc.upenn.edu/W/W07/W07-08.pdf
|
|||||||
//and agreement of constructions with numerals.//
|
//and agreement of constructions with numerals.//
|
||||||
|
|
||||||
|
|
||||||
|
===Basque===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/basque (Inari Listenmaa, Francis Tyers)
|
||||||
|
|
||||||
|
- **Publications**
|
||||||
|
|
||||||
|
Inari Listenmaa.
|
||||||
|
//Formal Methods for Testing Grammars.// PhD thesis. Chalmers University of Technology and University of Gothenburg. 2019. [PDF https://gupea.ub.gu.se/bitstream/2077/59037/1/gupea_2077_59037_1.pdf]
|
||||||
|
#BR
|
||||||
|
//Mentioned in Chapter 5 of the thesis.//
|
||||||
|
|
||||||
|
|
||||||
===Bulgarian===
|
===Bulgarian===
|
||||||
@@ -117,6 +127,10 @@ Appendix to the GF book (A. Ranta, //Grammatical Framework//, CSLI 2011),
|
|||||||
http://www.grammaticalframework.org/gf-book/gf-chinese-appendix.pdf
|
http://www.grammaticalframework.org/gf-book/gf-chinese-appendix.pdf
|
||||||
|
|
||||||
|
|
||||||
|
===Czech===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/czech (Aarne Ranta, Michal Měchura)
|
||||||
|
|
||||||
|
|
||||||
===Danish===
|
===Danish===
|
||||||
|
|
||||||
@@ -155,8 +169,13 @@ The GF Resource Grammar Library.
|
|||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/estonian (Kaarel Kaljurand, Inari Listenmaa)
|
- **Source**: http://www.grammaticalframework.org/lib/src/estonian (Kaarel Kaljurand, Inari Listenmaa)
|
||||||
|
|
||||||
%- **Publications**
|
- **Publications**
|
||||||
|
|
||||||
|
Inari Listenmaa and Kaarel Kaljurand.
|
||||||
|
Computational Estonian Grammar in Grammatical Framework.
|
||||||
|
//Proceedings of the SALTMIL Workshop at LREC//,
|
||||||
|
2014.
|
||||||
|
[PDF http://ixa2.si.ehu.es/~jipsagak/SALTMIL/LREC_2014_Workshop_Proceedings_Saltmil.pdf]
|
||||||
|
|
||||||
|
|
||||||
===Finnish===
|
===Finnish===
|
||||||
@@ -256,6 +275,9 @@ In The 3rd Workshop
|
|||||||
on South and Southeast Asian NLP, COLING 2012. //Reprinted in Shafqat's thesis//
|
on South and Southeast Asian NLP, COLING 2012. //Reprinted in Shafqat's thesis//
|
||||||
|
|
||||||
|
|
||||||
|
===Hungarian===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/hungarian (Inari Listenmaa, Julia Jansson)
|
||||||
|
|
||||||
|
|
||||||
===Icelandic===
|
===Icelandic===
|
||||||
@@ -281,8 +303,6 @@ Bjarki Traustason, MSc thesis, Chalmers
|
|||||||
%- **Publications**
|
%- **Publications**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
===Japanese===
|
===Japanese===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/japanese (Liza Zimina)
|
- **Source**: http://www.grammaticalframework.org/lib/src/japanese (Liza Zimina)
|
||||||
@@ -302,14 +322,31 @@ Lecture Notes in Computer Science Volume 7614, 2012, pp 156-167.
|
|||||||
http://link.springer.com/chapter/10.1007%2F978-3-642-33983-7_16
|
http://link.springer.com/chapter/10.1007%2F978-3-642-33983-7_16
|
||||||
|
|
||||||
|
|
||||||
|
===Korean===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/korean (Inari Listenmaa)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
===Latin===
|
===Latin===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/latin (Aarne Ranta)
|
- **Source**: http://www.grammaticalframework.org/lib/src/latin (Herbert Lange, Aarne Ranta)
|
||||||
|
|
||||||
%- **Publications**
|
- **Publications**
|
||||||
|
|
||||||
|
Herbert Lange.
|
||||||
|
Erstellen einer Grammatik für das Lateinische im “Grammatical Framework”,
|
||||||
|
Master’s thesis (Magiserarbeit), Ludwig-Maximilians-University Munich, 2013.
|
||||||
|
|
||||||
|
Herbert Lange. Implementation of a Latin Grammar in Grammatical Framework, //DATeCH//, 2017.
|
||||||
|
|
||||||
|
Herbert Lange and Peter Ljunglöf.
|
||||||
|
MULLE: A grammar-based Latin language learning tool to supplement the classroom setting.
|
||||||
|
//Proceedings of the 5th Workshop on Natural Language Processing Techniques for Educational Applications//,
|
||||||
|
2018.
|
||||||
|
[PDF https://www.aclweb.org/anthology/W18-3715.pdf]
|
||||||
|
#BR
|
||||||
|
//Latin RGL used in a language-learning application.//
|
||||||
|
|
||||||
|
|
||||||
===Latvian===
|
===Latvian===
|
||||||
@@ -397,6 +434,15 @@ Slide presentation, TYPES 2010, Warsaw,
|
|||||||
http://www.mimuw.edu.pl/~asl/publications/types2010-slides.pdf
|
http://www.mimuw.edu.pl/~asl/publications/types2010-slides.pdf
|
||||||
|
|
||||||
|
|
||||||
|
===Portuguese===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/portuguese (Bruno Cuconato)
|
||||||
|
|
||||||
|
- **Publications**
|
||||||
|
|
||||||
|
Bruno Cuconato Claro.
|
||||||
|
//A computational grammar for Portuguese//. MSc thesis. Rio de Janeiro, 2019.
|
||||||
|
|
||||||
|
|
||||||
===Punjabi===
|
===Punjabi===
|
||||||
|
|
||||||
@@ -438,7 +484,7 @@ LNCS 6008,
|
|||||||
|
|
||||||
===Russian===
|
===Russian===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/russian (Janna Khegai, Nikita Frolov)
|
- **Source**: http://www.grammaticalframework.org/lib/src/russian (Janna Khegai, Nikita Frolov, Roman Suzi)
|
||||||
|
|
||||||
- **Publications**
|
- **Publications**
|
||||||
|
|
||||||
@@ -475,6 +521,21 @@ MSc Thesis, Chalmers University of Technology,
|
|||||||
http://publications.lib.chalmers.se/records/fulltext/163234.pdf
|
http://publications.lib.chalmers.se/records/fulltext/163234.pdf
|
||||||
|
|
||||||
|
|
||||||
|
===Slovak===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/slovak (Aarne Ranta, Slavomír Čéplö, Michal Měchura)
|
||||||
|
|
||||||
|
|
||||||
|
===Slovenian===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/slovenian (Krasimir Angelov, Anna Ehrlemark)
|
||||||
|
|
||||||
|
|
||||||
|
===Somali===
|
||||||
|
|
||||||
|
- **Source**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/somali (Inari Listenmaa)
|
||||||
|
|
||||||
|
|
||||||
===Spanish===
|
===Spanish===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/spanish http://www.grammaticalframework.org/lib/src/romance
|
- **Source**: http://www.grammaticalframework.org/lib/src/spanish http://www.grammaticalframework.org/lib/src/romance
|
||||||
@@ -485,7 +546,8 @@ http://publications.lib.chalmers.se/records/fulltext/163234.pdf
|
|||||||
|
|
||||||
===Swahili===
|
===Swahili===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/swahili (Wanjiku Ng'ang'a)
|
- **Source**: http://www.grammaticalframework.org/lib/src/swahili (Benson Kituku).
|
||||||
|
- **Previous version**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/swahili/old (Wanjiku Ng'ang'a).
|
||||||
|
|
||||||
|
|
||||||
- **Publications**
|
- **Publications**
|
||||||
@@ -519,10 +581,6 @@ P. Sojka et al (eds), TSD 2012, LNCS 7499, pp. 183-190.
|
|||||||
http://link.springer.com/content/pdf/10.1007%2F978-3-642-32790-2_22.pdf
|
http://link.springer.com/content/pdf/10.1007%2F978-3-642-32790-2_22.pdf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
===Thai===
|
===Thai===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/thai (Aarne Ranta, Chotiros Kairoje)
|
- **Source**: http://www.grammaticalframework.org/lib/src/thai (Aarne Ranta, Chotiros Kairoje)
|
||||||
@@ -556,3 +614,17 @@ July 21-22, 2007, LSA 2007 Linguistic Institute, Stanford University.
|
|||||||
2007.
|
2007.
|
||||||
|
|
||||||
See also **Hindi** above.
|
See also **Hindi** above.
|
||||||
|
|
||||||
|
|
||||||
|
===Zulu===
|
||||||
|
|
||||||
|
- **Source:** https://github.com/LauretteM/gf-rgl-zul/tree/master/src/zulu (Laurette Marais, Laurette Pretorius)
|
||||||
|
|
||||||
|
- **Publications**
|
||||||
|
|
||||||
|
Laurette Marais, Johannes A. Louw, Jaco Badenhorst, Karen Calteaux, Ilana Wilken, Nina van Niekerk,and Glenn Stein.
|
||||||
|
AwezaMed: A Multilingual, MultimodalSpeech-To-Speech Translation Application for Maternal Health Care.
|
||||||
|
//Proceedings of the 23rd International Conference on Information Fusion//.
|
||||||
|
July 6-9, 2020.
|
||||||
|
#BR
|
||||||
|
//The article presents a health care translation system, which uses the Zulu resource grammar.//
|
||||||
|
|||||||
BIN
doc/rgl-tutorial/Syntax.jpg
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
doc/rgl-tutorial/abs-and-cnc.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
doc/rgl-tutorial/abstract.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
doc/rgl-tutorial/align-zero.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
doc/rgl-tutorial/arabnum.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
doc/rgl-tutorial/arav.jpg
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
doc/rgl-tutorial/categories.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
doc/rgl-tutorial/clever-align.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
doc/rgl-tutorial/dutparse.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
doc/rgl-tutorial/engdut.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
doc/rgl-tutorial/facemod.jpg
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
doc/rgl-tutorial/hindi.jpg
Normal file
|
After Width: | Height: | Size: 178 KiB |
3209
doc/rgl-tutorial/index.t2t
Normal file
BIN
doc/rgl-tutorial/langdep.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
doc/rgl-tutorial/molto_logo.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
doc/rgl-tutorial/parse.jpg
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
doc/rgl-tutorial/phrasebook.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
doc/rgl-tutorial/testdep.jpg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
doc/rgl-tutorial/zero-fridge.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
doc/rgl-tutorial/zero-tree.jpg
Normal file
|
After Width: | Height: | Size: 59 KiB |
862
doc/status.html
@@ -1,862 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="generator" CONTENT="http://txt2tags.org">
|
|
||||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf8">
|
|
||||||
<TITLE>The Status of the GF Resource Grammar Library</TITLE>
|
|
||||||
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
|
||||||
<CENTER>
|
|
||||||
<H1>The Status of the GF Resource Grammar Library</H1>
|
|
||||||
<FONT SIZE="4"><I>Aarne Ranta</I></FONT><BR>
|
|
||||||
<FONT SIZE="4">20170119</FONT>
|
|
||||||
</CENTER>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
The following table gives the languages currently available in the
|
|
||||||
GF Resource Grammar Library.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
For another view, see the
|
|
||||||
<A HREF="http://www.postcrashgames.com/gf_world/">The Resource Grammar Library coverage map</A> .
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Corrections and additions are welcome! Notice that only those parts of implementations
|
|
||||||
that are currently available via <A HREF="http://grammaticalframework.org">http://grammaticalframework.org</A>
|
|
||||||
are marked in the table
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="4">
|
|
||||||
<TR>
|
|
||||||
<TH>ISO</TH>
|
|
||||||
<TH>Language</TH>
|
|
||||||
<TH>Darcs</TH>
|
|
||||||
<TH>Mini</TH>
|
|
||||||
<TH>Parad</TH>
|
|
||||||
<TH>Lex</TH>
|
|
||||||
<TH>Lang</TH>
|
|
||||||
<TH>API</TH>
|
|
||||||
<TH>Symb</TH>
|
|
||||||
<TH>Irreg</TH>
|
|
||||||
<TH>Dict</TH>
|
|
||||||
<TH>Trans</TH>
|
|
||||||
<TH>tested</TH>
|
|
||||||
<TH>publ</TH>
|
|
||||||
<TH COLSPAN="2">authors</TH>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Afr</TD>
|
|
||||||
<TD>Afrikaans</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*LP,LM</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Amh</TD>
|
|
||||||
<TD>Amharic</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*MK</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Ara</TD>
|
|
||||||
<TD>Arabic</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>AD</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Bul</TD>
|
|
||||||
<TD>Bulgarian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*KA</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Cat</TD>
|
|
||||||
<TD>Catalan</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*JS,*IL</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Chi</TD>
|
|
||||||
<TD>Chinese</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>ZL,*AR,*CP,QH</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Dan</TD>
|
|
||||||
<TD>Danish</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Dut</TD>
|
|
||||||
<TD>Dutch</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,FJ</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Eng</TD>
|
|
||||||
<TD>English</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*AR,BB,KA</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Est</TD>
|
|
||||||
<TD>Estonian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*KK,*IL</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Fin</TD>
|
|
||||||
<TD>Finnish</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*AR,*IL</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Fre</TD>
|
|
||||||
<TD>French</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,RE</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Ger</TD>
|
|
||||||
<TD>German</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,HH,EG</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Gre</TD>
|
|
||||||
<TD>Greek(mod)</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*IP</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Grc</TD>
|
|
||||||
<TD>Greek(anc)</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*HLe</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Heb</TD>
|
|
||||||
<TD>Hebrew</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*DD</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Hin</TD>
|
|
||||||
<TD>Hindi</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*SV,*KP,MH,AR,PK</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Ice</TD>
|
|
||||||
<TD>Icelandic</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*BT</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Ina</TD>
|
|
||||||
<TD>Interlingua</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>JB</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Ita</TD>
|
|
||||||
<TD>Italian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,*RE,GP</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Jpn</TD>
|
|
||||||
<TD>Japanese</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*LZ</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Lat</TD>
|
|
||||||
<TD>Latin</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,*HLa</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Lav</TD>
|
|
||||||
<TD>Latvian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*NG,*PP</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Mlt</TD>
|
|
||||||
<TD>Maltese</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*JC</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Mon</TD>
|
|
||||||
<TD>Mongolian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*NE</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Nep</TD>
|
|
||||||
<TD>Nepali</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*DS</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Nno</TD>
|
|
||||||
<TD>Norwegian(n)</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*SRE</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Nor</TD>
|
|
||||||
<TD>Norwegian(b)</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Pes</TD>
|
|
||||||
<TD>Persian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*SV,*EA,SM</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Pnb</TD>
|
|
||||||
<TD>Punjabi</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*SV,MH</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Pol</TD>
|
|
||||||
<TD>Polish</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>IN,*AS</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Ron</TD>
|
|
||||||
<TD>Romanian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*RE</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Rus</TD>
|
|
||||||
<TD>Russian</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>JK,*NF</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Snd</TD>
|
|
||||||
<TD>Sindhi</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*SV,*JD</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Spa</TD>
|
|
||||||
<TD>Spanish</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,IA,TS,*IL</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Swa</TD>
|
|
||||||
<TD>Swahili</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*WN,JM</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Swe</TD>
|
|
||||||
<TD>Swedish</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*MA,*AR,MF</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Tha</TD>
|
|
||||||
<TD>Thai</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*AR,CK</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Tsn</TD>
|
|
||||||
<TD>Tswana</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*LPs,AB</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Tur</TD>
|
|
||||||
<TD>Turkish</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>*SC,KA</TD>
|
|
||||||
</TR>
|
|
||||||
<TR>
|
|
||||||
<TD>Urd</TD>
|
|
||||||
<TD>Urdu</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>++</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>-</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>+</TD>
|
|
||||||
<TD>*SV,MH</TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
ISO = 3-letter ISO language code, used in library file names
|
|
||||||
(mostly ISO 639-2 B (bibliographic))
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Darcs = available in the darcs repository of <S><A HREF="http://code.haskell.org/gf">http://code.haskell.org/gf</A></S> <A HREF="http://www.grammaticalframework.org/">http://www.grammaticalframework.org/</A>
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Mini = minimal resource, compiles with <CODE>make minimal</CODE> (obsolete)
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Parad = <CODE>Paradigms</CODE> file complete for major POS, ++ means with smart paradigms
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Lex = the resource <CODE>Lexicon</CODE> (nearly) complete
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Lang = the resource <CODE>Syntax</CODE> (nearly) complete
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
API = the <CODE>Syntax</CODE> compiles
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
API = the <CODE>Symbolic</CODE> API compiles
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Irreg = the <CODE>Irreg</CODE> module with irregular verbs exists
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Dict = the <CODE>Dict</CODE> module, large-scale morphological lexicon, exists
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Trans = large-scale translation module and dictionary exists
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
tested = tested in some applications, ++ means extensively tested with no major issues
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
publ = publications available, see <A HREF="./rgl-publications.html">RGL publication list</A>
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
authors = main contributors, * means still active
|
|
||||||
(ready to fix bugs, answer to questions, etc)
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H3>Author codes</H3>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
AB Ansu Berg,
|
|
||||||
AD Ali El Dada,
|
|
||||||
AR Aarne Ranta,
|
|
||||||
AS Adam Slaski,
|
|
||||||
BB Björn Bringert,
|
|
||||||
BT Bjarki Traustason,
|
|
||||||
CK Chotiros Kairoje,
|
|
||||||
CP Chen Peng,
|
|
||||||
DD Dana Dannélls,
|
|
||||||
DS Dinesh Simk,
|
|
||||||
EA Elnaz Abolahrar,
|
|
||||||
EG Erzsébet Galgóczy
|
|
||||||
FJ Femke Johansson,
|
|
||||||
HH Harald Hammarström,
|
|
||||||
HLa Herbert Lange,
|
|
||||||
HLe Hans Leiss,
|
|
||||||
GP Gabriele Paganelli,
|
|
||||||
IA Ingrid Andersson,
|
|
||||||
IL Inari Listenmaa,
|
|
||||||
IN Ilona Novak,
|
|
||||||
IP Ioanna Papadopoulou,
|
|
||||||
JB Jean-Philippe Bernardy,
|
|
||||||
JC John J. Camilleri,
|
|
||||||
JD Jherna Devi,
|
|
||||||
JK Janna Khegai,
|
|
||||||
JM Juliet Mutahi,
|
|
||||||
JS Jordi Saludes,
|
|
||||||
KA Krasimir Angelov,
|
|
||||||
KK Kaarel Kaljurand,
|
|
||||||
KP Kuchi Prasad,
|
|
||||||
LM Laurette Marais,
|
|
||||||
LP Laurette Pretorius,
|
|
||||||
LZ Liza Zimina,
|
|
||||||
MA Malin Ahlberg,
|
|
||||||
MF Markus Forsberg,
|
|
||||||
MK Markos Kassa Gobena,
|
|
||||||
MH Muhammad Humayoun,
|
|
||||||
NE Nyamsuren Erdenebadrakh,
|
|
||||||
NF Nick Frolov,
|
|
||||||
NG Normunds Gruzitis,
|
|
||||||
QH Qiao Haiyan,
|
|
||||||
RE Ramona Enache,
|
|
||||||
PP Peteris Paikens,
|
|
||||||
SC Server Cimen,
|
|
||||||
SM Sofy Moradi,
|
|
||||||
SRE Stian Rødven Eide,
|
|
||||||
SV Shafqat Virk,
|
|
||||||
TH Therese Söderberg,
|
|
||||||
WN Wanjiku Ng'ang'a,
|
|
||||||
ZL Zhuo Lin Qiqige
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Rules</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Only components available at <A HREF="http://grammaticalframework.org">http://grammaticalframework.org</A> are indicated in the table
|
|
||||||
(exceptions: Ancient Greek, Mongolian, to appear soon).
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
If you want to work on a language already in the table, please be kind and contact the
|
|
||||||
active authors of it.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Feel free to start a new language that is not yet in the table - but let us know and
|
|
||||||
contribute some code as soon as you can!
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
|
|
||||||
<!-- cmdline: txt2tags -thtml status.txt -->
|
|
||||||
</BODY></HTML>
|
|
||||||
111
doc/status.txt
@@ -11,60 +11,63 @@ For another view, see the
|
|||||||
[The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/] .
|
[The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/] .
|
||||||
|
|
||||||
Corrections and additions are welcome! Notice that only those parts of implementations
|
Corrections and additions are welcome! Notice that only those parts of implementations
|
||||||
that are currently available via http://grammaticalframework.org
|
that are currently available via https://github.com/GrammaticalFramework/gf-rgl/
|
||||||
are marked in the table
|
are marked in the table
|
||||||
|
|
||||||
|
|
||||||
|| ISO | Language | Darcs | Mini | Parad | Lex | Lang | API | Symb | Irreg | Dict | Trans | tested | publ | authors ||
|
|| ISO | Language | Parad | Lex | Lang | API | Symb | Irreg | Dict | WN | tested | publ | authors ||
|
||||||
| Afr | Afrikaans | + | - | ++ | + | + | + | - | - | - | - | - | - | *LP,LM
|
| Afr | Afrikaans | ++ | + | + | + | - | - | - | - | - | - | *LP,LM |
|
||||||
| Amh | Amharic | + | + | ++ | + | + | - | - | - | - | - | - | + | *MK
|
| Amh | Amharic | ++ | + | + | - | - | - | - | - | - | + | *MK |
|
||||||
| Ara | Arabic | + | + | + | + | - | - | - | - | - | - | - | + | AD
|
| Ara | Arabic | + | + | + | + | + | - | - | - | + | + | AD,*IL |
|
||||||
| Bul | Bulgarian | + | + | + | + | + | + | + | + | + | + | ++ | + | *KA
|
| Bul | Bulgarian | + | + | + | + | + | + | + | + | ++ | + | *KA |
|
||||||
| Cat | Catalan | + | + | ++ | + | + | + | + | + | - | + | ++ | - | *JS,*IL
|
| Cat | Catalan | ++ | + | + | + | + | + | - | + | ++ | - | *JS,*IL |
|
||||||
| Chi | Chinese | + | - | ++ | + | + | + | - | - | + | + | - | + | ZL,*AR,*CP,QH
|
| Chi | Chinese | ++ | + | + | + | - | - | + | + | - | + | ZL,*AR,*CP,QH |
|
||||||
| Dan | Danish | + | + | ++ | + | + | + | + | + | - | - | + | - | *AR
|
| Cze | Czech | + | + | + | + | - | - | - | - | + | - | *AR,*MM |
|
||||||
| Dut | Dutch | + | + | ++ | + | + | + | + | + | - | + | + | - | *AR,FJ
|
| Dan | Danish | ++ | + | + | + | + | + | - | - | + | - | *AR |
|
||||||
| Eng | English | + | + | ++ | + | + | + | + | + | + | + | ++ | + | *AR,BB,KA
|
| Dut | Dutch | ++ | + | + | + | + | + | - | + | + | - | *AR,FJ |
|
||||||
| Est | Estonian | + | - | ++ | + | + | + | - | - | - | - | + | + | *KK,*IL
|
| Eng | English | ++ | + | + | + | + | + | + | + | ++ | + | *AR,BB,KA |
|
||||||
| Fin | Finnish | + | + | ++ | + | + | + | + | - | + | + | ++ | + | *AR,*IL
|
| Est | Estonian | ++ | + | + | + | - | - | + | + | + | + | *KK,*IL |
|
||||||
| Fre | French | + | + | ++ | + | + | + | + | + | + | + | ++ | - | *AR,RE
|
| Eus | Basque | ++ | + | + | + | - | - | - | - | - | + | *IL |
|
||||||
| Ger | German | + | + | ++ | + | + | + | + | + | + | + | ++ | - | *AR,HH,EG
|
| Fin | Finnish | ++ | + | + | + | + | - | + | + | ++ | + | *AR,*IL |
|
||||||
| Gre | Greek(mod) | + | - | ++ | + | + | + | - | - | - | - | - | + | *IP
|
| Fre | French | ++ | + | + | + | + | + | + | - | ++ | - | *AR,RE |
|
||||||
| Grc | Greek(anc) | - | - | - | - | - | - | - | - | - | - | - | + | *HLe
|
| Ger | German | ++ | + | + | + | + | + | + | - | ++ | - | *AR,HH,EG |
|
||||||
| Heb | Hebrew | + | - | - | - | - | - | - | - | - | - | - | + | *DD
|
| Gre | Greek(mod) | ++ | + | + | + | - | - | - | - | - | + | *IP |
|
||||||
| Hin | Hindi | + | + | ++ | + | + | + | + | - | - | + | + | + | *SV,*KP,MH,AR,PK
|
| Grc | Greek(anc) | - | - | - | - | - | - | - | - | - | + | *HLe |
|
||||||
| Ice | Icelandic | + | - | ++ | + | + | + | - | - | - | - | - | + | *BT
|
| Heb | Hebrew | - | - | - | - | - | - | - | - | - | + | *DD |
|
||||||
| Ina | Interlingua | + | + | ++ | + | + | - | - | - | - | - | - | - | JB
|
| Hin | Hindi | ++ | + | + | + | + | - | - | - | + | + | *SV,*KP,MH,AR,PK |
|
||||||
| Ita | Italian | + | + | ++ | + | + | + | + | - | - | + | ++ | - | *AR,*RE,GP
|
| Hun | Hungarian | ++ | + | + | + | + | - | - | - | + | - | *IL,*JJ |
|
||||||
| Jpn | Japanese | + | - | ++ | + | + | + | - | - | - | + | + | + | *LZ
|
| Ice | Icelandic | ++ | + | + | + | - | - | - | - | - | + | *BT |
|
||||||
| Lat | Latin | + | - | - | - | - | - | - | - | + | - | - | - | *AR,*HLa
|
| Ina | Interlingua | ++ | + | + | - | - | - | - | - | - | - | JB |
|
||||||
| Lav | Latvian | + | - | ++ | + | + | + | - | - | - | - | + | + | *NG,*PP
|
| Ita | Italian | ++ | + | + | + | + | - | - | + | ++ | - | *AR,*RE,GP |
|
||||||
| Mlt | Maltese | + | + | ++ | + | + | + | + | - | - | - | - | + | *JC
|
| Jpn | Japanese | ++ | + | + | + | - | - | - | - | + | + | *LZ |
|
||||||
| Mon | Mongolian | + | - | ++ | + | + | + | - | - | + | - | - | + | *NE
|
| Kor | Korean | ++ | + | + | + | + | - | - | - | + | - | *IL |
|
||||||
| Nep | Nepali | + | + | ++ | + | + | - | - | - | - | - | - | + | *DS
|
| Lat | Latin | - | - | - | - | - | - | + | - | - | - | *AR,*HLa |
|
||||||
| Nno | Norwegian(n) | + | + | ++ | + | + | + | + | + | - | - | - | - | *SRE
|
| Lav | Latvian | ++ | + | + | + | - | - | - | - | + | + | *NG,*PP |
|
||||||
| Nor | Norwegian(b) | + | + | ++ | + | + | + | + | + | - | - | + | - | *AR
|
| Mlt | Maltese | ++ | + | + | + | + | - | - | - | - | + | *JC |
|
||||||
| Pes | Persian | + | - | + | + | + | + | - | - | - | - | + | + | *SV,*EA,SM
|
| Mon | Mongolian | ++ | + | + | + | - | - | + | - | - | + | *NE |
|
||||||
| Pnb | Punjabi | + | + | + | + | + | + | + | - | - | - | - | + | *SV,MH
|
| Nep | Nepali | ++ | + | + | - | - | - | - | - | - | + | *DS |
|
||||||
| Pol | Polish | + | + | + | + | + | + | + | - | - | - | + | + | IN,*AS
|
| Nno | Norwegian(n) | ++ | + | + | + | + | + | - | - | - | - | *SRE |
|
||||||
| Ron | Romanian | + | + | ++ | + | + | + | + | - | - | - | + | + | *RE
|
| Nor | Norwegian(b) | ++ | + | + | + | + | + | - | - | + | - | *AR |
|
||||||
| Rus | Russian | + | + | ++ | + | + | + | - | - | + | + | - | + | JK,*NF
|
| Pes | Persian | + | + | + | + | - | - | - | - | + | + | SV,EA,SM,*IL |
|
||||||
| Snd | Sindhi | + | + | ++ | + | + | + | + | - | - | - | - | + | *SV,*JD
|
| Pnb | Punjabi | + | + | + | + | + | - | - | - | - | + | *SV,MH |
|
||||||
| Spa | Spanish | + | + | ++ | + | + | + | + | + | - | + | ++ | - | *AR,IA,TS,*IL
|
| Pol | Polish | + | + | + | + | + | - | - | - | + | + | IN,*AS |
|
||||||
| Swa | Swahili | + | - | - | - | - | - | - | - | - | - | - | + | *WN,JM
|
| Por | Portuguese | ++ | + | + | + | + | + | + | + | + | + | *BC |
|
||||||
| Swe | Swedish | + | + | ++ | + | + | + | + | + | + | + | ++ | + | *MA,*AR,MF
|
| Ron | Romanian | ++ | + | + | + | + | - | - | - | + | + | *RE |
|
||||||
| Tha | Thai | + | - | ++ | + | + | + | + | - | - | + | + | - | *AR,CK
|
| Rus | Russian | ++ | + | + | + | - | - | + | - | - | + | JK,NF,*RS |
|
||||||
| Tsn | Tswana | - | - | - | - | - | - | - | - | - | - | - | - | *LPs,AB
|
| Slk | Slovak | + | + | + | + | - | - | - | - | + | - | *AR,*MM,SČ |
|
||||||
| Tur | Turkish | + | - | ++ | + | - | - | - | - | + | - | - | - | *SC,KA
|
| Slv | Slovene | ++ | + | + | + | - | - | - | + | + | - | *KA,AE |
|
||||||
| Urd | Urdu | + | + | ++ | + | + | + | + | - | - | - | + | + | *SV,MH
|
| Snd | Sindhi | ++ | + | + | + | + | - | - | - | - | + | *SV,*JD |
|
||||||
|
| Som | Somali | + | - | - | - | - | - | - | - | - | - | *IL |
|
||||||
|
| Spa | Spanish | ++ | + | + | + | + | + | - | + | ++ | - | *AR,IA,TS,*IL |
|
||||||
|
| Swa | Swahili | + | + | - | - | - | - | - | - | - | + | *WN,JM,BK |
|
||||||
|
| Swe | Swedish | ++ | + | + | + | + | + | + | + | ++ | + | *MA,*AR,MF |
|
||||||
|
| Tha | Thai | ++ | + | + | + | + | - | - | + | + | - | *AR,CK |
|
||||||
|
| Tur | Turkish | ++ | + | - | - | - | - | + | + | - | - | *SC,KA |
|
||||||
|
| Urd | Urdu | ++ | + | + | + | + | - | - | - | + | + | *SV,MH |
|
||||||
|
|
||||||
ISO = 3-letter ISO language code, used in library file names
|
ISO = 3-letter ISO language code, used in library file names
|
||||||
(mostly ISO 639-2 B (bibliographic))
|
(mostly ISO 639-2 B (bibliographic))
|
||||||
|
|
||||||
Darcs = available in the darcs repository of --http://code.haskell.org/gf-- http://www.grammaticalframework.org/
|
|
||||||
|
|
||||||
Mini = minimal resource, compiles with ``make minimal`` (obsolete)
|
|
||||||
|
|
||||||
Parad = ``Paradigms`` file complete for major POS, ++ means with smart paradigms
|
Parad = ``Paradigms`` file complete for major POS, ++ means with smart paradigms
|
||||||
|
|
||||||
Lex = the resource ``Lexicon`` (nearly) complete
|
Lex = the resource ``Lexicon`` (nearly) complete
|
||||||
@@ -73,13 +76,13 @@ Lang = the resource ``Syntax`` (nearly) complete
|
|||||||
|
|
||||||
API = the ``Syntax`` compiles
|
API = the ``Syntax`` compiles
|
||||||
|
|
||||||
API = the ``Symbolic`` API compiles
|
Symb = the ``Symbolic`` API complete
|
||||||
|
|
||||||
Irreg = the ``Irreg`` module with irregular verbs exists
|
Irreg = the ``Irreg`` module with irregular verbs exists
|
||||||
|
|
||||||
Dict = the ``Dict`` module, large-scale morphological lexicon, exists
|
Dict = the ``Dict`` module, large-scale morphological lexicon, exists
|
||||||
|
|
||||||
Trans = large-scale translation module and dictionary exists
|
WN = [WordNet https://cloud.grammaticalframework.org/wordnet] lexicon exists
|
||||||
|
|
||||||
tested = tested in some applications, ++ means extensively tested with no major issues
|
tested = tested in some applications, ++ means extensively tested with no major issues
|
||||||
|
|
||||||
@@ -93,9 +96,12 @@ authors = main contributors, * means still active
|
|||||||
|
|
||||||
AB Ansu Berg,
|
AB Ansu Berg,
|
||||||
AD Ali El Dada,
|
AD Ali El Dada,
|
||||||
|
AE Anna Ehrlemark,
|
||||||
AR Aarne Ranta,
|
AR Aarne Ranta,
|
||||||
AS Adam Slaski,
|
AS Adam Slaski,
|
||||||
BB Björn Bringert,
|
BB Björn Bringert,
|
||||||
|
BC Bruno Cuconato,
|
||||||
|
BK Benson Kituku,
|
||||||
BT Bjarki Traustason,
|
BT Bjarki Traustason,
|
||||||
CK Chotiros Kairoje,
|
CK Chotiros Kairoje,
|
||||||
CP Chen Peng,
|
CP Chen Peng,
|
||||||
@@ -115,6 +121,7 @@ IP Ioanna Papadopoulou,
|
|||||||
JB Jean-Philippe Bernardy,
|
JB Jean-Philippe Bernardy,
|
||||||
JC John J. Camilleri,
|
JC John J. Camilleri,
|
||||||
JD Jherna Devi,
|
JD Jherna Devi,
|
||||||
|
JJ Julia Jansson,
|
||||||
JK Janna Khegai,
|
JK Janna Khegai,
|
||||||
JM Juliet Mutahi,
|
JM Juliet Mutahi,
|
||||||
JS Jordi Saludes,
|
JS Jordi Saludes,
|
||||||
@@ -128,13 +135,16 @@ MA Malin Ahlberg,
|
|||||||
MF Markus Forsberg,
|
MF Markus Forsberg,
|
||||||
MK Markos Kassa Gobena,
|
MK Markos Kassa Gobena,
|
||||||
MH Muhammad Humayoun,
|
MH Muhammad Humayoun,
|
||||||
|
MM Michal Měchura,
|
||||||
NE Nyamsuren Erdenebadrakh,
|
NE Nyamsuren Erdenebadrakh,
|
||||||
NF Nick Frolov,
|
NF Nick Frolov,
|
||||||
NG Normunds Gruzitis,
|
NG Normunds Gruzitis,
|
||||||
QH Qiao Haiyan,
|
QH Qiao Haiyan,
|
||||||
RE Ramona Enache,
|
RE Ramona Enache,
|
||||||
|
RS Roman Suzi,
|
||||||
PP Peteris Paikens,
|
PP Peteris Paikens,
|
||||||
SC Server Cimen,
|
SC Server Cimen,
|
||||||
|
SČ Slavomír Čéplö,
|
||||||
SM Sofy Moradi,
|
SM Sofy Moradi,
|
||||||
SRE Stian Rødven Eide,
|
SRE Stian Rødven Eide,
|
||||||
SV Shafqat Virk,
|
SV Shafqat Virk,
|
||||||
@@ -146,8 +156,7 @@ ZL Zhuo Lin Qiqige
|
|||||||
|
|
||||||
==Rules==
|
==Rules==
|
||||||
|
|
||||||
Only components available at http://grammaticalframework.org are indicated in the table
|
Only components available at https://github.com/GrammaticalFramework/gf-rgl/ are indicated in the table.
|
||||||
(exceptions: Ancient Greek, Mongolian, to appear soon).
|
|
||||||
|
|
||||||
If you want to work on a language already in the table, please be kind and contact the
|
If you want to work on a language already in the table, please be kind and contact the
|
||||||
active authors of it.
|
active authors of it.
|
||||||
|
|||||||
14298
doc/synopsis-v3.9.html
79
doc/synopsis/Makefile
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# Your GF_LIB_PATH must be set in order for this build script to work
|
||||||
|
|
||||||
|
.PHONY: all index clean
|
||||||
|
|
||||||
|
GF_alltenses=$(GF_LIB_PATH)/alltenses
|
||||||
|
GF=gf
|
||||||
|
GFDOC=gfdoc
|
||||||
|
|
||||||
|
ROOT=../..
|
||||||
|
S=$(ROOT)/src
|
||||||
|
CONFIG=$(ROOT)/languages.csv
|
||||||
|
|
||||||
|
# List of languages extracted from languages.csv, with 'Synopsis' column == y
|
||||||
|
LANGS=$(shell cat $(CONFIG) | cut -d',' -f1,11 | grep ',y' | cut -d',' -f1)
|
||||||
|
|
||||||
|
# This list was constructed by observing what files MkSynopsis.hs reads
|
||||||
|
SRC_FILES=$(S)/abstract/Common.gf $(S)/abstract/Cat.gf $(S)/api/Constructors.gf $(S)/abstract/Structural.gf $(patsubst %,$S/*/Paradigms%.gf,$(LANGS))
|
||||||
|
|
||||||
|
EXAMPLES_OUT=$(patsubst %,api-examples-%.txt,$(LANGS))
|
||||||
|
INCLUDES=intro.txt categories-intro.txt categories-imagemap.html categories.png additional.txt browse.txt example.txt
|
||||||
|
|
||||||
|
TMP=tmp.html
|
||||||
|
TEMPLATE=template.html
|
||||||
|
|
||||||
|
all: index
|
||||||
|
|
||||||
|
index: index.html
|
||||||
|
|
||||||
|
index.txt: MkSynopsis.hs MkExxTable.hs $(INCLUDES) $(EXAMPLES_OUT) $(SRC_FILES)
|
||||||
|
runghc -i$(ROOT) MkSynopsis.hs
|
||||||
|
|
||||||
|
index-t2t.html: index.txt
|
||||||
|
txt2tags --target=html --no-headers --quiet --toc --outfile=$@ --infile=$<
|
||||||
|
sed -i.bak "s/<A NAME=\"\(.*\)\"><\/A>/<div id=\"\1\"><\/div>/" $@
|
||||||
|
rm "$@.bak"
|
||||||
|
|
||||||
|
TITLE=$(shell head -n 1 index.txt)
|
||||||
|
index.html: index-t2t.html $(TEMPLATE)
|
||||||
|
pandoc \
|
||||||
|
--from=html \
|
||||||
|
--to=html5 \
|
||||||
|
--standalone \
|
||||||
|
--template=$(TEMPLATE) \
|
||||||
|
--metadata='title:"$(TITLE)"' \
|
||||||
|
--variable='lang:en' \
|
||||||
|
--variable='rel-root:$(ROOT)/..' \
|
||||||
|
--css="synopsis.css" \
|
||||||
|
--include-after-body="quicklinks.html" \
|
||||||
|
--output=$(TMP) \
|
||||||
|
index-t2t.html
|
||||||
|
mv $(TMP) $@
|
||||||
|
sed -i.bak "s/<table>/<table class=\"table w-auto\">/" $@
|
||||||
|
sed -i.bak -e '/img src="categories.png"/r categories-imagemap.html' -e '/img src="categories.png"/d' $@
|
||||||
|
rm "$@.bak"
|
||||||
|
|
||||||
|
categories.png: categories.dot
|
||||||
|
dot -Tpng $^ > $@
|
||||||
|
|
||||||
|
categories-imagemap.html: categories.dot
|
||||||
|
rm -f $@
|
||||||
|
echo '<img src="categories.png" usemap="#categoriesmap" alt="RGL categories">' > $@
|
||||||
|
dot -Tcmapx $^ >> $@
|
||||||
|
|
||||||
|
api-examples.gfs: api-examples.txt MkExx.hs
|
||||||
|
runghc MkExx.hs < $< > $@
|
||||||
|
|
||||||
|
# Since .gfo files aren't self-contained, the dependencies given here are
|
||||||
|
# incomplete. But I am thinking that the Try%.gfo file will always be newer
|
||||||
|
# than any other files it depends on, so the rule will trigger when
|
||||||
|
# needed anyway. //TH 2018-10-22
|
||||||
|
api-examples-%.txt: $(GF_alltenses)/Try%.gfo api-examples.gfs
|
||||||
|
GF_LIB_PATH=$(GF_LIB_PATH) $(GF) -retain -s $< <api-examples.gfs >$@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf \
|
||||||
|
index.txt \
|
||||||
|
index.html \
|
||||||
|
api-examples.gfs \
|
||||||
|
$(EXAMPLES_OUT)
|
||||||
@@ -1,72 +1,62 @@
|
|||||||
import MkExxTable
|
import MkExxTable
|
||||||
import System.Process(system)
|
import System.Process(system)
|
||||||
import System.Environment(getArgs)
|
|
||||||
import System.FilePath((</>),(<.>))
|
import System.FilePath((</>),(<.>))
|
||||||
import Data.Char
|
import Data.Char
|
||||||
import Data.List
|
import Data.List
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Text.Printf
|
import Text.Printf
|
||||||
import Config
|
import Config (loadLangsFrom, LangInfo (..))
|
||||||
|
import qualified Config
|
||||||
|
|
||||||
type Cats = [(String,String,String)]
|
type Cats = [(String,String,String)]
|
||||||
type Rules = [(String,String,String)]
|
type Rules = [(String,String,String)]
|
||||||
|
|
||||||
-- the file generated
|
-- the file generated
|
||||||
synopsis :: FilePath
|
outfile :: FilePath
|
||||||
synopsis = "synopsis.txt"
|
outfile = "index.txt"
|
||||||
|
|
||||||
|
-- the languages.csv config file
|
||||||
|
configFile :: FilePath
|
||||||
|
configFile = ".." </> ".." </> Config.configFile
|
||||||
|
|
||||||
-- the language in which revealed examples are shown
|
-- the language in which revealed examples are shown
|
||||||
revealedLang :: String
|
revealedLang :: String
|
||||||
revealedLang = "Eng"
|
revealedLang = "Eng"
|
||||||
|
|
||||||
-- all languages shown (a copy of this list appears in Makefile)
|
-- | This function puts together a txt2tags file which is then converted to HTML by the Makefile
|
||||||
apiExxFiles :: IO [FilePath]
|
|
||||||
apiExxFiles = do
|
|
||||||
langs <- loadLangsFrom (".." </> configFile)
|
|
||||||
return $
|
|
||||||
[ "api-examples-" ++ (langCode lang) ++ ".txt"
|
|
||||||
| lang <- langs
|
|
||||||
, langSynopsis lang
|
|
||||||
]
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
xx <- getArgs
|
langs <- loadLangsFrom configFile >>= return . filter langSynopsis
|
||||||
let isLatex = case xx of
|
|
||||||
"-tex":_ -> True
|
|
||||||
_ -> False
|
|
||||||
cs1 <- getCats commonAPI
|
cs1 <- getCats commonAPI
|
||||||
cs2 <- getCats catAPI
|
cs2 <- getCats catAPI
|
||||||
let cs = sortCats (cs1 ++ cs2)
|
let cs = sortCats (cs1 ++ cs2)
|
||||||
writeFile synopsis "GF Resource Grammar Library: Synopsis"
|
writeFile outfile "GF Resource Grammar Library: Synopsis"
|
||||||
-- append "B. Bringert, T. Hallgren, and A. Ranta"
|
|
||||||
space
|
space
|
||||||
append "%!Encoding:utf-8"
|
append "%!Encoding:utf-8"
|
||||||
append "%!style(html): ./revealpopup.css"
|
|
||||||
space
|
|
||||||
append "%!postproc(html): '#divreveal' '<div class=reveal>'"
|
append "%!postproc(html): '#divreveal' '<div class=reveal>'"
|
||||||
append "%!postproc(html): '#divpopup' '<div class=popup>'"
|
append "%!postproc(html): '#divpopup' '<div class=popup>'"
|
||||||
append "%!postproc(html): '#ediv' '</div>'"
|
append "%!postproc(html): '#ediv' '</div>'"
|
||||||
append "%!postproc(html): '#UL' '<ul>'"
|
append "%!postproc(html): '#UL' '<ul>'"
|
||||||
append "%!postproc(html): '#EUL' '</ul>'"
|
append "%!postproc(html): '#EUL' '</ul>'"
|
||||||
append "%!postproc(html): '#LI' '<li>'"
|
append "%!postproc(html): '#LI' '<li>'"
|
||||||
append "%!postproc(html): '(SRC=\"categories.png\")' '\\1 USEMAP=\"#categories\"'"
|
|
||||||
append "%!postproc(html): '#LParadigms' '<a name=\"RParadigms\"></a>'"
|
append "%!postproc(html): '#LParadigms' '<a name=\"RParadigms\"></a>'"
|
||||||
append "%!postproc(tex): '#LParadigms' ''"
|
append ("%!postproc(html): '#LANGUAGE_COUNT' '" ++ show (length langs) ++ "'")
|
||||||
append "%!postproc(html): '#quicklinks' '<script src=\"quicklinks.js\"></script>'"
|
append ("%!postproc(html): '#LANGUAGES' '" ++ intercalate ", " (map langName langs) ++ ".'")
|
||||||
append "%!postproc(tex): '#quicklinks' ''"
|
|
||||||
delimit $ addToolTips cs
|
delimit $ addToolTips cs
|
||||||
include "synopsis-intro.txt"
|
include "intro.txt"
|
||||||
|
space
|
||||||
title "Categories"
|
title "Categories"
|
||||||
space
|
space
|
||||||
link "Source 1:" commonAPI
|
link "Source 1:" commonAPI
|
||||||
space
|
space
|
||||||
link "Source 2:" catAPI
|
link "Source 2:" catAPI
|
||||||
space
|
space
|
||||||
append "==A hierarchic view==\n"
|
stitle "A hierarchic view"
|
||||||
|
space
|
||||||
include "categories-intro.txt"
|
include "categories-intro.txt"
|
||||||
append "==Explanations==\n"
|
stitle "Explanations"
|
||||||
delimit $ mkCatTable isLatex cs
|
space
|
||||||
|
delimit $ mkCatTable cs
|
||||||
space
|
space
|
||||||
title "Syntax Rules and Structural Words"
|
title "Syntax Rules and Structural Words"
|
||||||
space
|
space
|
||||||
@@ -74,42 +64,35 @@ main = do
|
|||||||
space
|
space
|
||||||
link "Source 2:" structuralAPI
|
link "Source 2:" structuralAPI
|
||||||
space
|
space
|
||||||
apiExx <- apiExxFiles >>= getApiExx
|
apiExx <- getApiExx (apiExxFiles langs)
|
||||||
rs <- getRules apiExx syntaxAPI
|
rs <- getRules apiExx syntaxAPI
|
||||||
--- putStrLn $ unlines ["p -cat=" ++ last (words t) ++
|
|
||||||
--- " \"" ++ e ++ "\"" | (_,t,e) <- rs, not (null e)] ----
|
|
||||||
rs2 <- getRules apiExx structuralAPI
|
rs2 <- getRules apiExx structuralAPI
|
||||||
let rss = rs ++ rs2
|
let rss = rs ++ rs2
|
||||||
--- mapM_ putStrLn [f ++ " " ++ e | (f,_,e) <- rss]
|
delimit $ mkSplitTables True apiExx cs rss
|
||||||
delimit $ mkSplitTables True isLatex apiExx cs rss
|
|
||||||
space
|
space
|
||||||
-- title "Structural Words"
|
-- title "Structural Words"
|
||||||
-- space
|
-- space
|
||||||
-- link "Source:" structuralAPI
|
-- link "Source:" structuralAPI
|
||||||
-- space
|
-- space
|
||||||
-- rs <- rulesTable False isLatex cs structuralAPI
|
-- rs <- rulesTable False cs structuralAPI
|
||||||
-- delimit rs
|
-- delimit rs
|
||||||
space
|
space
|
||||||
title "Lexical Paradigms"
|
title "Lexical Paradigms"
|
||||||
paradigmFiles >>= mapM_ (putParadigms isLatex cs)
|
append "#LParadigms"
|
||||||
|
mapM_ (putParadigms cs) (paradigmFiles langs)
|
||||||
space
|
space
|
||||||
include "synopsis-additional.txt"
|
include "additional.txt"
|
||||||
space
|
space
|
||||||
include "synopsis-browse.txt"
|
include "browse.txt"
|
||||||
space
|
space
|
||||||
title "An Example of Usage"
|
title "An Example of Usage"
|
||||||
space
|
space
|
||||||
include "synopsis-example.txt"
|
include "example.txt"
|
||||||
space
|
space
|
||||||
title "Table of Contents"
|
title "Table of Contents"
|
||||||
space
|
space
|
||||||
append "%%toc"
|
append "%%toc"
|
||||||
space
|
space
|
||||||
append "#quicklinks"
|
|
||||||
space
|
|
||||||
let format = if isLatex then "tex" else "html"
|
|
||||||
system $ "txt2tags -t" ++ format ++ " " ++ " --toc " ++ synopsis
|
|
||||||
if isLatex then (system $ "pdflatex synopsis.tex") >> return () else return ()
|
|
||||||
|
|
||||||
addToolTips :: Cats -> [String]
|
addToolTips :: Cats -> [String]
|
||||||
addToolTips = map f
|
addToolTips = map f
|
||||||
@@ -130,10 +113,10 @@ getCats file = do
|
|||||||
(expl,ex) = span (/="e.g.") exp
|
(expl,ex) = span (/="e.g.") exp
|
||||||
_ -> getrs rs ss2
|
_ -> getrs rs ss2
|
||||||
|
|
||||||
rulesTable :: ApiExx -> Bool -> Bool -> Cats -> FilePath -> IO [String]
|
rulesTable :: ApiExx -> Bool -> Cats -> FilePath -> IO [String]
|
||||||
rulesTable aexx hasEx isLatex cs file = do
|
rulesTable aexx hasEx cs file = do
|
||||||
rs <- getRules aexx file
|
rs <- getRules aexx file
|
||||||
return $ mkTable hasEx isLatex aexx cs rs
|
return $ mkTable hasEx aexx cs rs
|
||||||
|
|
||||||
|
|
||||||
getRules :: ApiExx -> FilePath -> IO Rules
|
getRules :: ApiExx -> FilePath -> IO Rules
|
||||||
@@ -161,14 +144,13 @@ getRules aexx file = do
|
|||||||
n:ws | last n == '.' && not (null (init n)) && all isDigit (init n) -> ws
|
n:ws | last n == '.' && not (null (init n)) && all isDigit (init n) -> ws
|
||||||
_ -> e
|
_ -> e
|
||||||
|
|
||||||
putParadigms :: Bool -> Cats -> (String, FilePath) -> IO ()
|
putParadigms :: Cats -> (String, FilePath) -> IO ()
|
||||||
putParadigms isLatex cs (lang,file) = do
|
putParadigms cs (lang,file) = do
|
||||||
stitle ("Paradigms for " ++ lang)
|
stitle ("Paradigms for " ++ lang)
|
||||||
append "#LParadigms"
|
|
||||||
space
|
space
|
||||||
link "source" file
|
link "source" file
|
||||||
space
|
space
|
||||||
rs <- rulesTable M.empty False isLatex cs file
|
rs <- rulesTable M.empty False cs file
|
||||||
space
|
space
|
||||||
delimit rs
|
delimit rs
|
||||||
space
|
space
|
||||||
@@ -180,25 +162,25 @@ inChunks i f = concat . intersperse ["\n\n"] . map f . chunks i where
|
|||||||
|
|
||||||
-- Makes one table per result category.
|
-- Makes one table per result category.
|
||||||
-- Adds a subsection header for each table.
|
-- Adds a subsection header for each table.
|
||||||
mkSplitTables :: Bool -> Bool -> ApiExx -> Cats -> Rules -> [String]
|
mkSplitTables :: Bool -> ApiExx -> Cats -> Rules -> [String]
|
||||||
mkSplitTables hasEx isLatex aexx cs = concatMap t . addLexicalCats cs . sortRules
|
mkSplitTables hasEx aexx cs = concatMap t . addLexicalCats cs . sortRules
|
||||||
where t (c, xs) = [subtitle c expl] ++ tableOrLink
|
where t (c, xs) = [subtitle c expl, "\n"] ++ tableOrLink
|
||||||
where
|
where
|
||||||
expl = case [e | (n,e,_) <- cs, n == c] of
|
expl = case [e | (n,e,_) <- cs, n == c] of
|
||||||
[] -> ""
|
[] -> ""
|
||||||
e:_ -> e
|
e:_ -> e
|
||||||
tableOrLink = if null xs then parad else mkTable hasEx isLatex aexx cs xs
|
tableOrLink = if null xs then parad else mkTable hasEx aexx cs xs
|
||||||
parad = [
|
parad = [
|
||||||
"Lexical category, constructors given in",
|
"Lexical category, constructors given in",
|
||||||
"[lexical paradigms #RParadigms]."
|
"[lexical paradigms #RParadigms]."
|
||||||
]
|
]
|
||||||
|
|
||||||
mkTable :: Bool -> Bool -> ApiExx -> Cats -> Rules -> [String]
|
mkTable :: Bool -> ApiExx -> Cats -> Rules -> [String]
|
||||||
mkTable hasEx isLatex aexx cs = inChunks chsize (\rs -> header : map (unwords . row) rs)
|
mkTable hasEx aexx cs = inChunks chsize (\rs -> header : map (unwords . row) rs)
|
||||||
where
|
where
|
||||||
chsize = if isLatex then 40 else 1000
|
chsize = 1000
|
||||||
header = if hasEx then "|| Function | Type | Example ||"
|
header = if hasEx then "|| Function | Type | Example |"
|
||||||
else "|| Function | Type | Explanation ||"
|
else "|| Function | Type | Explanation |"
|
||||||
row (name,typ,ex) =
|
row (name,typ,ex) =
|
||||||
let ntyp = mkIdent (name ++ " : " ++ typ) in
|
let ntyp = mkIdent (name ++ " : " ++ typ) in
|
||||||
if hasEx then ["|", name', "|", typ', "|", ex' ntyp, "|"]
|
if hasEx then ["|", name', "|", typ', "|", ex' ntyp, "|"]
|
||||||
@@ -213,6 +195,7 @@ mkTable hasEx isLatex aexx cs = inChunks chsize (\rs -> header : map (unwords .
|
|||||||
expl typ = if null ex then itf "-" else itf ex
|
expl typ = if null ex then itf "-" else itf ex
|
||||||
|
|
||||||
-- make an example with hover-popup translations
|
-- make an example with hover-popup translations
|
||||||
|
mkExample :: M.Map String String -> String -> String
|
||||||
mkExample es ex = unwords [
|
mkExample es ex = unwords [
|
||||||
"#divreveal",
|
"#divreveal",
|
||||||
itf (maybe ex (mkEx revealedLang) (M.lookup revealedLang es)),
|
itf (maybe ex (mkEx revealedLang) (M.lookup revealedLang es)),
|
||||||
@@ -235,35 +218,34 @@ mkIdent = concatMap unspec where
|
|||||||
':' -> "-"
|
':' -> "-"
|
||||||
_ -> [c]
|
_ -> [c]
|
||||||
|
|
||||||
mkCatTable :: Bool -> Cats -> [String]
|
mkCatTable :: Cats -> [String]
|
||||||
mkCatTable isLatex cs = inChunks chsize (\rs -> header ++ map mk1 rs) cs
|
mkCatTable cs = inChunks chsize (\rs -> header ++ map mk1 rs) cs
|
||||||
where
|
where
|
||||||
header = ["|| Category | Explanation | Example ||"]
|
header = ["|| Category | Explanation | Example |"]
|
||||||
chsize = if isLatex then 40 else 1000
|
chsize = 1000
|
||||||
mk1 (name,expl,ex) = unwords ["|", showCat cs name, "|", expl, "|", typo ex, "|"]
|
mk1 (name,expl,ex) = unwords ["|", showCat cs name, "|", expl, "|", typo ex, "|"]
|
||||||
typo ex = if take 1 ex == "\"" then itf (init (tail ex)) else ex
|
typo ex = if take 1 ex == "\"" then itf (init (tail ex)) else ex
|
||||||
|
|
||||||
srcPath = ((</>) "../src")
|
srcPath :: FilePath -> FilePath
|
||||||
|
srcPath = ((</>) "../../src")
|
||||||
|
|
||||||
commonAPI = srcPath "abstract/Common.gf"
|
commonAPI = srcPath "abstract/Common.gf"
|
||||||
catAPI = srcPath "abstract/Cat.gf"
|
catAPI = srcPath "abstract/Cat.gf"
|
||||||
syntaxAPI = srcPath "api/Constructors.gf"
|
syntaxAPI = srcPath "api/Constructors.gf"
|
||||||
structuralAPI = srcPath "abstract/Structural.gf"
|
structuralAPI = srcPath "abstract/Structural.gf"
|
||||||
|
|
||||||
paradigmFiles :: IO [(String,FilePath)]
|
-- all languages shown (a copy of this list appears in Makefile)
|
||||||
paradigmFiles = do
|
apiExxFiles :: [LangInfo] -> [FilePath]
|
||||||
langs <- loadLangsFrom (".." </> configFile)
|
apiExxFiles langs =
|
||||||
return $
|
[ "api-examples-" ++ (langCode lang) ++ ".txt"
|
||||||
[ (name, srcPath $ printf "%s/Paradigms%s.gf" (langDir lang) (langCode lang))
|
|
||||||
| lang <- langs
|
| lang <- langs
|
||||||
, langSynopsis lang
|
|
||||||
, let name = formatName (langDir lang)
|
|
||||||
]
|
]
|
||||||
|
|
||||||
-- | Format language name from directory name
|
paradigmFiles :: [LangInfo] -> [(String,FilePath)]
|
||||||
-- "ancient_greek -> Ancient Greek"
|
paradigmFiles langs =
|
||||||
formatName :: String -> String
|
[ (langName lang, srcPath $ printf "%s/Paradigms%s.gf" (langDir lang) (langCode lang))
|
||||||
formatName = unwords . map (\(s:ss) -> toUpper s : ss) . splitOn (=='_')
|
| lang <- langs
|
||||||
|
]
|
||||||
|
|
||||||
-- | Split a string at given character, similar to words
|
-- | Split a string at given character, similar to words
|
||||||
splitOn :: (Char -> Bool) -> String -> [String]
|
splitOn :: (Char -> Bool) -> String -> [String]
|
||||||
@@ -274,18 +256,18 @@ splitOn f s = takeWhile (not.f) s : splitOn f rest
|
|||||||
"" -> []
|
"" -> []
|
||||||
_:xs -> xs
|
_:xs -> xs
|
||||||
|
|
||||||
append s = appendFile synopsis ('\n':s)
|
append s = appendFile outfile ('\n':s)
|
||||||
title s = append $ "=" ++ s ++ "="
|
title s = append $ "=" ++ s ++ "="
|
||||||
stitle s = append $ "==" ++ s ++ "=="
|
stitle s = append $ "==" ++ s ++ "=="
|
||||||
include s = append $ "%!include: " ++ s
|
include s = append $ "%!include: " ++ s
|
||||||
space = append "\n"
|
space = append "\n"
|
||||||
delimit ss = mapM_ append ss
|
delimit ss = mapM_ append ss
|
||||||
link s f = append $ s ++ " [``" ++ f ++ "`` " ++ fa ++ "]" where
|
link s f = append $ s ++ " [``" ++ f ++ "`` " ++ f ++ "]"
|
||||||
fa = "http://www.grammaticalframework.org/lib" ++ dropWhile (=='.') f
|
|
||||||
|
|
||||||
ttf s = "``" ++ s ++ "``"
|
ttf s = "``" ++ s ++ "``"
|
||||||
itf s = "//" ++ s ++ "//"
|
itf s = "//" ++ s ++ "//"
|
||||||
|
|
||||||
|
hiddenLine :: String -> Bool
|
||||||
hiddenLine s = case reverse (words s) of
|
hiddenLine s = case reverse (words s) of
|
||||||
"--%":_ -> True
|
"--%":_ -> True
|
||||||
_ -> False
|
_ -> False
|
||||||
@@ -313,7 +295,7 @@ addLexicalCats cs rss =
|
|||||||
resultCat :: (String,String,String) -> String
|
resultCat :: (String,String,String) -> String
|
||||||
resultCat (_,t,_) = last (words t)
|
resultCat (_,t,_) = last (words t)
|
||||||
|
|
||||||
|
subtitle :: String -> String -> String
|
||||||
subtitle cat expl = "==" ++ cat ++ e ++ "==" ++ "[" ++ cat ++ "]"
|
subtitle cat expl = "==" ++ cat ++ e ++ "==" ++ "[" ++ cat ++ "]"
|
||||||
where e = if null expl then "" else " - " ++ expl
|
where e = if null expl then "" else " - " ++ expl
|
||||||
|
|
||||||
@@ -332,6 +314,7 @@ showTyp cs = unwords . map f . words
|
|||||||
&& isUpper (head cat)
|
&& isUpper (head cat)
|
||||||
|
|
||||||
-- to work around GHC 6.12 file input
|
-- to work around GHC 6.12 file input
|
||||||
|
readFileC :: String -> FilePath -> IO String
|
||||||
readFileC cod file = do
|
readFileC cod file = do
|
||||||
let tmp = file <.> "tmp"
|
let tmp = file <.> "tmp"
|
||||||
case cod of
|
case cod of
|
||||||
@@ -342,8 +325,9 @@ readFileC cod file = do
|
|||||||
|
|
||||||
-- 'intelligently' determine the coding of a file
|
-- 'intelligently' determine the coding of a file
|
||||||
---- AR 5/6/2016: now utf8 is used for all languages except Bul, where no characters are shown in documentation anyway
|
---- AR 5/6/2016: now utf8 is used for all languages except Bul, where no characters are shown in documentation anyway
|
||||||
|
coding :: FilePath -> String
|
||||||
coding file = case language file of
|
coding file = case language file of
|
||||||
"Bul" -> "CP1251" --- "ISO-8859-1"
|
"Bul" -> "CP1251" --- "ISO-8859-1"
|
||||||
_ -> "utf8"
|
_ -> "utf8"
|
||||||
|
where
|
||||||
language = reverse . take 3 . drop 3 . reverse
|
language = reverse . take 3 . drop 3 . reverse
|
||||||
@@ -7,10 +7,9 @@
|
|||||||
|
|
||||||
==The Prelude module==
|
==The Prelude module==
|
||||||
|
|
||||||
The ``Prelude`` defines commonly used utility functions, in particular for
|
The ``Prelude`` defines commonly used utility functions, in particular for strings and booleans.
|
||||||
strings and booleans.
|
|
||||||
|
|
||||||
|| Oper | Type | Explanation ||
|
|| Oper | Type | Explanation |
|
||||||
| ``SS`` | ``Type`` | the type ``{s : Str}``
|
| ``SS`` | ``Type`` | the type ``{s : Str}``
|
||||||
| ``ss`` | ``Str -> SS`` | record from string
|
| ``ss`` | ``Str -> SS`` | record from string
|
||||||
| ``nonExist`` | ``Str`` | missing form
|
| ``nonExist`` | ``Str`` | missing form
|
||||||
@@ -30,7 +29,7 @@ strings and booleans.
|
|||||||
|
|
||||||
These functions are hard-coded in GF. They are available without explicit opening, by the used of qualified names, e.g. ``Predef.tk``.
|
These functions are hard-coded in GF. They are available without explicit opening, by the used of qualified names, e.g. ``Predef.tk``.
|
||||||
|
|
||||||
|| operation | type | explanation ||
|
|| Oper | Type | Explanation |
|
||||||
| ``PBool`` | ``PType`` | ``PTrue | PFalse``
|
| ``PBool`` | ``PType`` | ``PTrue | PFalse``
|
||||||
| ``Error`` | ``Type`` | the empty type
|
| ``Error`` | ``Type`` | the empty type
|
||||||
| ``Integer`` | ``Type`` | the type of integers
|
| ``Integer`` | ``Type`` | the type of integers
|
||||||
@@ -57,7 +56,7 @@ These functions are hard-coded in GF. They are available without explicit openin
|
|||||||
This module is used for defining formal languages, in particular ones that
|
This module is used for defining formal languages, in particular ones that
|
||||||
use precedence levels and parentheses for grouping subexpressions.
|
use precedence levels and parentheses for grouping subexpressions.
|
||||||
|
|
||||||
|| Oper | Type | Explanation ||
|
|| Oper | Type | Explanation |
|
||||||
| ``Prec`` | ``PType`` | precedence levels 0..4
|
| ``Prec`` | ``PType`` | precedence levels 0..4
|
||||||
| ``TermPrec`` | ``Type`` | string with precedence
|
| ``TermPrec`` | ``Type`` | string with precedence
|
||||||
| ``mkPrec`` | ``Prec -> Str -> TermPrec`` | construct a ``TermPrec``
|
| ``mkPrec`` | ``Prec -> Str -> TermPrec`` | construct a ``TermPrec``
|
||||||
@@ -75,7 +74,7 @@ This module is used for embedding symbolic notation in natural-language
|
|||||||
text constructed by the resource grammar API. It works for all resource
|
text constructed by the resource grammar API. It works for all resource
|
||||||
languages.
|
languages.
|
||||||
|
|
||||||
|| Function | Type | Example ||
|
|| Function | Type | Explanation |
|
||||||
| ``symb`` | ``Str -> NP`` | //x//
|
| ``symb`` | ``Str -> NP`` | //x//
|
||||||
| ``symb`` | ``Int -> NP`` | //23//
|
| ``symb`` | ``Int -> NP`` | //23//
|
||||||
| ``symb`` | ``Float -> NP`` | //0.99//
|
| ``symb`` | ``Float -> NP`` | //0.99//
|
||||||
@@ -92,7 +91,7 @@ languages.
|
|||||||
This module gives shortcuts for defining predicates (``pred``) and function
|
This module gives shortcuts for defining predicates (``pred``) and function
|
||||||
expressions (``app``). It works for all resource languages.
|
expressions (``app``). It works for all resource languages.
|
||||||
|
|
||||||
|| Function | Type | Example ||
|
|| Function | Type | Explanation |
|
||||||
| ``pred`` | ``V -> NP -> Cl`` | //x converges//
|
| ``pred`` | ``V -> NP -> Cl`` | //x converges//
|
||||||
| ``pred`` | ``V2 -> NP -> NP -> Cl`` | //x intersects y//
|
| ``pred`` | ``V2 -> NP -> NP -> Cl`` | //x intersects y//
|
||||||
| ``pred`` | ``V -> NP -> NP -> Cl`` | //x and y intersect//
|
| ``pred`` | ``V -> NP -> NP -> Cl`` | //x and y intersect//
|
||||||
@@ -111,5 +110,3 @@ expressions (``app``). It works for all resource languages.
|
|||||||
| ``app`` | ``N2 -> NP -> CN`` | //divisor of x//
|
| ``app`` | ``N2 -> NP -> CN`` | //divisor of x//
|
||||||
| ``app`` | ``N3 -> NP -> NP -> CN`` | //path from x to y//
|
| ``app`` | ``N3 -> NP -> NP -> CN`` | //path from x to y//
|
||||||
| ``app`` | ``N2 -> NP -> NP -> CN`` | //path between x and y//
|
| ``app`` | ``N2 -> NP -> NP -> CN`` | //path between x and y//
|
||||||
|
|
||||||
|
|
||||||
@@ -8,12 +8,9 @@ of //C// that takes //D// as an argument. What the constructors exactly are,
|
|||||||
and what other arguments they take, is described by separate tables for
|
and what other arguments they take, is described by separate tables for
|
||||||
each category.
|
each category.
|
||||||
|
|
||||||
| [categories.png] |
|
|
||||||
|
|
||||||
%!include(html): ''categories-imagemap.html''
|
%!include(html): ''categories-imagemap.html''
|
||||||
|
|
||||||
|
|
||||||
The rectangular boxes mark open lexical categories, which have constructors
|
The rectangular boxes mark open lexical categories, which have constructors
|
||||||
also in the ``Paradigms`` modules.
|
also in the ``Paradigms`` modules.
|
||||||
|
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
digraph categories {
|
digraph categoriesmap {
|
||||||
|
|
||||||
size = "11,11" ;
|
size = "11,11" ;
|
||||||
node [href="#\N"];
|
node [href="#\N"];
|
||||||
@@ -5,7 +5,7 @@ An abstract syntax:
|
|||||||
```
|
```
|
||||||
abstract Music = {
|
abstract Music = {
|
||||||
cat
|
cat
|
||||||
Kind,
|
Kind ;
|
||||||
Property ;
|
Property ;
|
||||||
fun
|
fun
|
||||||
PropKind : Kind -> Property -> Kind ;
|
PropKind : Kind -> Property -> Kind ;
|
||||||
@@ -23,7 +23,7 @@ A domain lexicon interface:
|
|||||||
```
|
```
|
||||||
A functor on ``Syntax`` and the domain lexicon interface:
|
A functor on ``Syntax`` and the domain lexicon interface:
|
||||||
```
|
```
|
||||||
incomplete concrete MusicI of Music = open Syntax, MusicLex in {
|
incomplete concrete MusicI of Music = open Syntax, LexMusic in {
|
||||||
lincat
|
lincat
|
||||||
Kind = CN ;
|
Kind = CN ;
|
||||||
Property = AP ;
|
Property = AP ;
|
||||||
@@ -1,46 +1,10 @@
|
|||||||
|
|
||||||
|
|
||||||
Versions: [3.9 ./synopsis-v3.9.html] | latest (this one)
|
|
||||||
|
|
||||||
|
|
||||||
=Introduction=
|
=Introduction=
|
||||||
|
|
||||||
The GF Resource Grammar Library is the standard library for Grammatical Framework.
|
The GF Resource Grammar Library is the standard library for Grammatical Framework.
|
||||||
It covers the morphology and basic syntax of currently 34 languages:
|
It covers the morphology and basic syntax of currently #LANGUAGE_COUNT languages:
|
||||||
Afrikaans,
|
#LANGUAGES
|
||||||
Arabic,
|
|
||||||
Bulgarian,
|
|
||||||
Catalan,
|
|
||||||
Chinese (simplified),
|
|
||||||
Danish,
|
|
||||||
Dutch,
|
|
||||||
English,
|
|
||||||
Estonian,
|
|
||||||
Finnish,
|
|
||||||
French,
|
|
||||||
German,
|
|
||||||
Greek,
|
|
||||||
Hindi,
|
|
||||||
Icelandic,
|
|
||||||
Japanese,
|
|
||||||
Italian,
|
|
||||||
Latvian,
|
|
||||||
Maltese,
|
|
||||||
Mongolian,
|
|
||||||
Nepali,
|
|
||||||
Norwegian (bokmål),
|
|
||||||
Norwegial (nynorsk),
|
|
||||||
Persian,
|
|
||||||
Polish,
|
|
||||||
Portuguese,
|
|
||||||
Punjabi,
|
|
||||||
Romanian,
|
|
||||||
Russian,
|
|
||||||
Sindhi,
|
|
||||||
Spanish,
|
|
||||||
Swedish,
|
|
||||||
Thai,
|
|
||||||
Urdu.
|
|
||||||
|
|
||||||
This document contains the most important parts of the GF Resource Grammar API,
|
This document contains the most important parts of the GF Resource Grammar API,
|
||||||
as needed by a GF application programmer.
|
as needed by a GF application programmer.
|
||||||
@@ -49,51 +13,43 @@ to the relevant source files, which give more information. Some of the files hav
|
|||||||
not yet been prepared so that the machine generated documentation has the nicest
|
not yet been prepared so that the machine generated documentation has the nicest
|
||||||
possible format.
|
possible format.
|
||||||
|
|
||||||
|
% These hardcoded TOC links (chapter 4 onwards) need to be updated as new languages are added.
|
||||||
|
|
||||||
The main contents are:
|
The main contents are:
|
||||||
- [Chapter 1 #toc2]: categories, with links to the functions for
|
- [Chapter 1 #toc2]: categories, with links to the functions for constructing trees in them.
|
||||||
constructing trees in them.
|
- [Chapter 2 #toc5]: syntactic construction functions, with cross-links and examples.
|
||||||
- [Chapter 2 #toc5]: syntactic construction functions, with cross-links and
|
- [Chapter 3 #toc85]: morphological (lexical) paradigms.
|
||||||
examples.
|
- [Chapter 4 #toc121]: additional libraries.
|
||||||
- [Chapter 3 #toc85]: morphological paradigms.
|
- [Chapter 5 #toc127]: how to "browse" the library by loading the grammars into the ``gf`` command editor.
|
||||||
- [Chapter 4 #toc120]: additional libraries.
|
- [Chapter 6 #toc128]: a brief example of how application grammars can use the resource modules.
|
||||||
- [Chapter 5 #toc126]: how to "browse" the library by
|
- [Detailed table of contents #toc129].
|
||||||
loading the grammars into the ``gf`` command editor.
|
|
||||||
- [Chapter 6 #toc127]: a brief example of how application grammars can
|
|
||||||
use the resource modules.
|
The [RGL Browser http://www.grammaticalframework.org/~john/rgl-browser/] tool allows you to interactively browse through
|
||||||
- [Detailed table of contents #toc128].
|
the library, view all functions in a module's scope, and quickly jump to their definitions.
|
||||||
|
|
||||||
|
|
||||||
Other relevant documents:
|
Other relevant documents:
|
||||||
- [The RGL Status Document ./status.html]: the current status of different languages
|
- [The RGL Status Document ../status.html]: the current status of different languages
|
||||||
and the authors of each grammar
|
and the authors of each grammar
|
||||||
- [The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/]
|
- [The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/]
|
||||||
- [RGL Documentation and Publications ./rgl-publications.html]: links to publications and other documentation
|
- [RGL Documentation and Publications ../rgl-publications.html]: links to publications and other documentation
|
||||||
- [More modules gfdoc/sources.html]: extra modules, dictionaries, and
|
- [More modules ../gfdoc/sources.html]: extra modules, dictionaries, and
|
||||||
the internals of the resource grammar
|
the internals of the resource grammar
|
||||||
- [Internal abstract syntax ./absfuns.html]: synopsis of internal
|
- [Internal abstract syntax ../absfuns.html]: synopsis of internal
|
||||||
abstract functions and their Universal Dependency labels
|
abstract functions and their Universal Dependency labels
|
||||||
- [RGL Source Browser ./browse]: look up functions and their source code
|
|
||||||
- [Minibar http://cloud.grammaticalframework.org/minibar/minibar.html]:
|
- [Minibar http://cloud.grammaticalframework.org/minibar/minibar.html]:
|
||||||
find resource grammar expressions by parsing (select Grammar: LibraryBrowser)
|
find resource grammar expressions by parsing (select Grammar: LibraryBrowser)
|
||||||
or test translations between all languages (select Grammar: ResourceDemo)
|
or test translations between all languages (select Grammar: ResourceDemo)
|
||||||
- [Resource Grammar Tutorial http://www.grammaticalframework.org/doc/gf-lrec-2010.pdf]
|
- [Resource Grammar Tutorial http://www.grammaticalframework.org/lib/doc/rgl-tutorial/index.html],
|
||||||
as presented in LREC-2010.
|
as previously presented in LREC-2010.
|
||||||
- Paper "The GF Resource Grammar Library" by A. Ranta
|
- Paper "The GF Resource Grammar Library" by A. Ranta
|
||||||
(//Linguistic Issues in Language Technology//, 2 (2), 2009). An overview of
|
(//Linguistic Issues in Language Technology//, 2 (2), 2009). An overview of
|
||||||
the library with linguistic motivations.
|
the library with linguistic motivations.
|
||||||
[PDF http://elanguage.net/journals/index.php/lilt/article/viewFile/214/158]
|
[PDF http://journals.linguisticsociety.org/elanguage/lilt/article/download/214/214-501-1-PB.pdf]
|
||||||
- Paper "Grammars as Software Libraries" by A. Ranta
|
- Paper "Grammars as Software Libraries" by A. Ranta
|
||||||
(In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
|
(In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
|
||||||
//From Semantics to Computer Science//, Cambridge University Press,
|
//From Semantics to Computer Science//, Cambridge University Press,
|
||||||
Cambridge, pp. 281--308, 2009).
|
Cambridge, pp. 281--308, 2009).
|
||||||
The library from a software engineering point of view.
|
The library from a software engineering point of view.
|
||||||
[PDF http://www.cse.chalmers.se/~aarne/old/articles/libraries-kahn.pdf]
|
[PDF http://www.cse.chalmers.se/~aarne/old/articles/libraries-kahn.pdf]
|
||||||
|
|
||||||
|
|
||||||
Many examples in [Chapter 2 #toc5] can be seen in multiple languages by hovering the
|
|
||||||
mouse over the example, as shown in the following screenshot:
|
|
||||||
|
|
||||||
[hovering.png]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1
doc/synopsis/quicklinks.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<script src="quicklinks.js"></script>
|
||||||
168
doc/synopsis/quicklinks.js
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
// Find an element with a certain tag containing a certain text.
|
||||||
|
function findElement (tagname, text) {
|
||||||
|
var els = document.body.getElementsByTagName(tagname)
|
||||||
|
for (var i = 0; i < els.length; i++) {
|
||||||
|
if (els[i].innerText === text) return els[i]
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
function text (s) {
|
||||||
|
return document.createTextNode(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
function appendChildren (n, ds) {
|
||||||
|
if (Array.isArray(ds)) for (var i in ds) n.appendChild(ds[i])
|
||||||
|
else if (typeof ds === 'string') n.appendChild(text(ds))
|
||||||
|
else n.appendChild(ds)
|
||||||
|
}
|
||||||
|
|
||||||
|
function node (tag, cls, ds) {
|
||||||
|
var n = document.createElement(tag)
|
||||||
|
if (cls) n.className = cls
|
||||||
|
if (ds) appendChildren(n, ds)
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
function a (href, txt) {
|
||||||
|
var a = node('a', '', txt)
|
||||||
|
a.href = href
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
|
function forAllLinks (list, f) {
|
||||||
|
for (var i = 0; i < list.length; i++) {
|
||||||
|
var c = list[i].firstElementChild
|
||||||
|
if (c && c.tagName === 'A' && c.href) f(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
// Extract links to the syntax rules
|
||||||
|
function listrules (ul) {
|
||||||
|
var rules = []
|
||||||
|
if (ul.tagName !== 'UL') return []
|
||||||
|
forAllLinks(ul.children, function (c) {
|
||||||
|
rules.push({
|
||||||
|
href: c.href,
|
||||||
|
text: c.innerText.split(' -')[0],
|
||||||
|
full: c.innerText
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return rules
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract the links to the paradigm sections for all the languages
|
||||||
|
function listlangs (ul) {
|
||||||
|
var langs = []
|
||||||
|
if (ul.tagName !== 'UL') return []
|
||||||
|
forAllLinks(ul.children, function (c) {
|
||||||
|
if (/^Paradigms for /.test(c.innerText)) {
|
||||||
|
langs.push({
|
||||||
|
href: c.href,
|
||||||
|
text: c.innerText.substr(14),
|
||||||
|
full: c.innerText
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return langs
|
||||||
|
}
|
||||||
|
|
||||||
|
function linklist (links) {
|
||||||
|
var d = node('div')
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
var l = a(links[i].href, links[i].text)
|
||||||
|
l.title = links[i].full
|
||||||
|
d.appendChild(l)
|
||||||
|
d.appendChild(text(' '))
|
||||||
|
}
|
||||||
|
return d
|
||||||
|
}
|
||||||
|
|
||||||
|
function quicklinks () {
|
||||||
|
// Find the detailed table of contents
|
||||||
|
var h1toc = findElement('h1', 'Table of Contents')
|
||||||
|
var ultoc = h1toc.nextElementSibling
|
||||||
|
while (ultoc && ultoc.tagName !== 'UL') {
|
||||||
|
ultoc = ultoc.nextElementSibling
|
||||||
|
}
|
||||||
|
|
||||||
|
var lis = ultoc.children
|
||||||
|
|
||||||
|
var syntaxrules = []
|
||||||
|
var langs = []
|
||||||
|
|
||||||
|
// Find the Syntax Rules and Lexical Paradigms sections in the toc
|
||||||
|
for (var i = 0; i < lis.length; i++) {
|
||||||
|
var li = lis[i]
|
||||||
|
var c = li.firstElementChild
|
||||||
|
if (c.tagName === 'A') {
|
||||||
|
if (/^Syntax Rules /.test(c.innerText)) {
|
||||||
|
syntaxrules = listrules(c.nextElementSibling)
|
||||||
|
} else if (c.innerText === 'Lexical Paradigms') {
|
||||||
|
langs = listlangs(c.nextElementSibling)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return node(
|
||||||
|
'div',
|
||||||
|
'row',
|
||||||
|
[ node('div', 'col-5', [ node('h6', '', 'Syntax'), linklist(syntaxrules) ]),
|
||||||
|
node('div', 'col-7', [ node('h6', '', 'Morphology'), linklist(langs) ])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
appendChildren(
|
||||||
|
document.getElementById('quicklinks'),
|
||||||
|
[
|
||||||
|
node('h5', '', 'Quick links'),
|
||||||
|
quicklinks()
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
// Toggle quicklinks
|
||||||
|
function toggleSidebar () {
|
||||||
|
var m = document.getElementById('main')
|
||||||
|
var q = document.getElementById('quicklinks')
|
||||||
|
var mClasses = 'col-md-9 col-xl-10'
|
||||||
|
var qClasses = 'col-4 col-md-3 col-xl-2 offset-8 offset-md-9 offset-xl-10'
|
||||||
|
if (hasClass(q, 'd-none')) {
|
||||||
|
// Show
|
||||||
|
addClass(m, mClasses)
|
||||||
|
addClass(q, qClasses)
|
||||||
|
removeClass(q, 'd-none')
|
||||||
|
} else {
|
||||||
|
// Hide
|
||||||
|
removeClass(m, mClasses)
|
||||||
|
removeClass(q, qClasses)
|
||||||
|
addClass(q, 'd-none')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.getElementById('btn-quicklinks-toggle').addEventListener('click', toggleSidebar)
|
||||||
|
if (window.innerWidth >= 768) {
|
||||||
|
// Below 768 (== 'md' breakpoint) sidebar overlays content and best left hidden
|
||||||
|
toggleSidebar()
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
// Helpers
|
||||||
|
|
||||||
|
// Won't work on IE9; use className and split
|
||||||
|
function addClass (elem, classnames) {
|
||||||
|
for (var c of classnames.split(' ')) elem.classList.add(c)
|
||||||
|
}
|
||||||
|
function removeClass (elem, classnames) {
|
||||||
|
for (var c of classnames.split(' ')) elem.classList.remove(c)
|
||||||
|
}
|
||||||
|
// function toggleClass (elem, classnames) {
|
||||||
|
// for (var c of classnames.split(' ')) elem.classList.toggle(c)
|
||||||
|
// }
|
||||||
|
function hasClass (elem, classname) {
|
||||||
|
return elem.classList.contains(classname)
|
||||||
|
}
|
||||||
35
doc/synopsis/synopsis.css
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
/* Quick links */
|
||||||
|
|
||||||
|
#quicklinks {
|
||||||
|
line-height: 140%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#quicklinks.sidebar {
|
||||||
|
overflow-y: scroll;
|
||||||
|
height: 100%;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
#quicklinks a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reveal popup */
|
||||||
|
|
||||||
|
.popup {
|
||||||
|
display: none;
|
||||||
|
background: #ffffccee;
|
||||||
|
border: 1px solid #dee2e6;
|
||||||
|
padding: 1em 1em 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal:hover .popup {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
margin: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* General */
|
||||||
|
.table td, .table th {
|
||||||
|
padding: 0.5em .75rem;
|
||||||
|
}
|
||||||
147
doc/synopsis/template.html
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
<!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>
|
||||||
|
<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">
|
||||||
|
$for(css)$
|
||||||
|
<link rel="stylesheet" href="$css$" />
|
||||||
|
$endfor$
|
||||||
|
$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>
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
$endfor$
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<button class="btn btn-light m-1" id="btn-quicklinks-toggle" style="position: fixed; top: 0; right: 0; z-index: 10;">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<main role="main" class="col my-3" style="overflow-x: scroll" id="main">
|
||||||
|
$if(title)$
|
||||||
|
<header id="title-block-header">
|
||||||
|
<a href="$rel-root$" title="Home">
|
||||||
|
<img src="$rel-root$/doc/Logos/gf1.svg" height="200" class="float-md-right ml-3 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$
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<nav class="d-none sidebar py-3 border-left bg-light" id="quicklinks">
|
||||||
|
<!-- filled dynamically via quicklinks.js -->
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div><!-- .row -->
|
||||||
|
</div><!-- .container-fluid -->
|
||||||
|
|
||||||
|
<footer class="bg-light mt-5 py-5 position-relative">
|
||||||
|
<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"><strong>Download GF</strong></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"><strong>RGL Synopsis</strong></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</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>
|
||||||
|
<a href="https://github.com/GrammaticalFramework/gf-core">GF</a> ·
|
||||||
|
<a href="https://github.com/GrammaticalFramework/gf-rgl">RGL</a> ·
|
||||||
|
<a href="https://github.com/GrammaticalFramework/gf-contrib">Contributions</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
$endfor$
|
||||||
|
<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>
|
||||||
@@ -1,329 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="generator" CONTENT="http://txt2tags.org">
|
|
||||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf8">
|
|
||||||
<TITLE>From Resource Grammar to Wide Coverage Translation with GF</TITLE>
|
|
||||||
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
|
||||||
<CENTER>
|
|
||||||
<H1>From Resource Grammar to Wide Coverage Translation with GF</H1>
|
|
||||||
<FONT SIZE="4"><I>Aarne Ranta et al.</I></FONT><BR>
|
|
||||||
<FONT SIZE="4">January-May 2014</FONT>
|
|
||||||
</CENTER>
|
|
||||||
|
|
||||||
|
|
||||||
<H2>Scope</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Wide-coverage interlingual translator for
|
|
||||||
Bulgarian, Chinese, Dutch, English, Finnish, French, German,
|
|
||||||
Hindi, Italian, Spanish, Swedish.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>How to use it</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
If you just want to try it before reading more,
|
|
||||||
here are the main ways to get started:
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
1. <B>Run on our server.</B> <A HREF="http://www.grammaticalframework.org/demos/translation.html">http://www.grammaticalframework.org/demos/translation.html</A>
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
2. <B>Get an Android app.</B> <A HREF="http://www.grammaticalframework.org/demos/app.html">http://www.grammaticalframework.org/demos/app.html</A>
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
3. <B>Compile and run in the shell.</B> Get the latest GF sources (with darcs or github) and then
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI>compile and install the GF compiler and library and the C runtime (<CODE>pgf-translate</CODE>).
|
|
||||||
<P></P>
|
|
||||||
<LI>compile the translator:
|
|
||||||
|
|
||||||
<PRE>
|
|
||||||
cd GF/lib/src
|
|
||||||
make -j Translate11.pgf
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
This will take a long time (fifteen minutes or more) and will probably require at least 8GB of RAM.
|
|
||||||
<P></P>
|
|
||||||
<LI>run the translator
|
|
||||||
|
|
||||||
<PRE>
|
|
||||||
pgf-translate Translate11.pgf Phr TranslateEng TranslateSwe
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
with obviously the possibility to vary the source and the target language.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
4. To modify the sources, work on the files in
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<PRE>
|
|
||||||
GF/lib/src/translator/
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
It is these files that will be explained below.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>GF and the RGL</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
GF, Grammatical Framework, was originally designed for the purpose of <B>multilingual controlled language systems</B>,
|
|
||||||
which would enable high-quality translation on limited domains. The <B>abstract syntax</B> of GF defines the semantic
|
|
||||||
structures relevant for the domain, and the <B>concrete syntaxes</B> map these structures to grammatically correct
|
|
||||||
and idiomatic text in each target language. The <B>reversibility</B> of GF enables both <B>generation</B> and <B>parsing</B>,
|
|
||||||
and thereby <B>translation</B> where the abstract syntax functions as an <B>interlingua</B>.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
As a bottle-neck of GF applications, it was soon realized that the definition of concrete syntax requires a lot
|
|
||||||
of manual work and linguistic skill, because of the complexities of natural language syntax and morphology. Some of
|
|
||||||
the complexities can be ignored in a small system. For instance, in a mathematical system, it may be enough to
|
|
||||||
use verbs in the present tense only. But very much the same linguistic problems must be solved again and again
|
|
||||||
in new applications: French verb inflection is the same in mathematics as in a tourist phrasebook. To solve
|
|
||||||
this problem, the <B>GF Resource Grammar Library</B> (RGL) was developed, to take care of "low-level" linguistic
|
|
||||||
rules such as inflection, agreement, and word order. This enables the authors of <B>application grammars</B> to focus
|
|
||||||
on the semantics (when designing the abstract syntax) and on selecting RGL functions that produce the idioms they
|
|
||||||
want. The RGL grew into an international open-source project, where more than 50 persons have contributed to
|
|
||||||
implementing it for 29 languages by the time of writing this.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Scaling up GF translation</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
The RGL was thus originally designed to be used just as its name says: as a library
|
|
||||||
for application grammars. Only the latter were meant to be used as <B>top-level grammars</B>, i.e. for
|
|
||||||
parsing, generation, and translation at run time. Little attention was therefore
|
|
||||||
paid to the usability of RGL as a top-level
|
|
||||||
grammar by itself. But when applications accumulated, ranging from technical text to spoken dialogue, the coverage
|
|
||||||
of the RGL grew into a coverage that approximates a "complete grammar" of many of the languages.
|
|
||||||
And recently, there has indeed been success in using the RGL as a wide-coverage translation grammar,
|
|
||||||
mainly due to Krasimir Angelov's efforts to scale up the size of GF applications from language fragments
|
|
||||||
to open-text processing. This success is a result of four lines of development:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>More efficient processing</B>, both due to better algorithms and to an optimized C implementation of a PGF
|
|
||||||
interpreter, the <B>C runtime</B>, achieving speeds competitive with the state of the art, e.g. the Stanford parser.
|
|
||||||
This development is also based on the work of Peter Ljunglöf on GF parsing and Lauri Alanko on the C runtime.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Large-scale dictionaries</B>, both manually built and extracted from free sources, and linked into a multilingual
|
|
||||||
translation dictionary now covering 10k to 60k entries for eleven languages. This work was started by Björn Bringert,
|
|
||||||
who ported the Oxford Advanced Learner's Dictionary of English to GF.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Probabilistic disambiguation</B>, using a model trained from the Penn Treebank. Due to the common abstract syntax,
|
|
||||||
the same model can be used for other languages as well, even though the adequacy of this transfer has not
|
|
||||||
been systematically evaluated.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Robust parsing</B>, which recovers from unknown words and syntax
|
|
||||||
by using chunk-by-chunk translations. This leads to loss of quality, but fulfills the principle that
|
|
||||||
"something is better than nothing".
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H2>Remaining problems</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
The result of all this work is a wide-coverage translation system, which can be used in the same way as Google
|
|
||||||
Translate, Bing, Systran, and Apertium - to "translate anything", albeit with a varying quality. At the moment of
|
|
||||||
writing, the performance is not yet generally on the level with the best of the competition, but shows some promising
|
|
||||||
improvements in e.g. long-distance agreement and word order. To make these advantages into absolute improvements, we
|
|
||||||
will need to fix problems that the other systems (or at least some of them) get right but where GF translation
|
|
||||||
often fails:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Lexical coverage</B>, to eliminate parsing failures due to unknown words.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Disambiguation</B>, with more sophisticated than the essentially context-free tree model used now.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Speed</B>, which gets worse with long sentences and with more complex languages.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Idiomacy</B>, due to the lack of idiomatic constructions that are not compositional and therefore don't get right
|
|
||||||
in the RGL but are often correct in phrase-based SMT.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H2>Advantages of GF translation</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Given that these issues get resolved, the strengths of the GF approach can be made more visible:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Grammaticality</B>, in particular the already mentioned issues of agreement and word order.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Predictability</B>, in the sense that a local change in the input usually results in a corresponding
|
|
||||||
local change in the output (unless otherwise required by idiomacy).
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Feedback</B>, i.e. the ease of showing the confidence level of the translation, alternative translations,
|
|
||||||
and linguistic information.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Adaptability</B>, i.e. the ease of fixing bugs, adapting the system to special domains, and personalizing it.
|
|
||||||
This can be done with great precision. For instance, a bug in a grammar can be fixed without
|
|
||||||
breaking anything else.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Light weight</B>. The system runs on standard laptops and even on mobile phones; the size of the run-time
|
|
||||||
system for all pairs of 11 languages is under 25MB (on the Android platform), and recompiling the whole
|
|
||||||
system (e.g. after bug fixes or
|
|
||||||
domain adaptation) is a matter of a few minutes, where corresponding figures for SMT systems are gigabytes of size
|
|
||||||
and days of retraining.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Multilinguality</B>, in the sense that once the parsing of the input is settled, the output can be readily
|
|
||||||
rendered into all other languages,
|
|
||||||
and also in the sense that the GF model works equally well for any language pair.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H2>Wanted: more work, new ideas</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
The recipes for improvement are, as always, <B>more work</B> and <B>new ideas</B>. Each of the four weaknesses mentioned
|
|
||||||
above can be relieved by more work - in particular, lexical coverage by more work on the lexicon, since
|
|
||||||
automatic extraction methods cannot really be trusted. As for disambiguation, new ideas about probabilistic
|
|
||||||
tree models are being discussed. As for speed, new ideas on parsing (in particular, the integration of disambiguation
|
|
||||||
with parsing) would help, but also the complexity of grammatical structures plays a major role. As for idiomacy,
|
|
||||||
more work is being done in introducing <B>constructions</B> (non-compositional syntax rules, generalizing the notion of
|
|
||||||
<B>multiword expressions</B>, in particular, <B>phrases</B> in SMT), but also new ideas are being discussed on how to
|
|
||||||
extract such constructions from e.g. phrase tables.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
In the following, we will focus on describing the role of grammar in the GF translation system - in particular, how
|
|
||||||
RGL can be modified to become usable as a top-level grammar for translating open text.
|
|
||||||
As RGL was not meant to be used for parsing open text, but rather for the controlled language generation task,
|
|
||||||
it has serious restrictions:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Limited coverage</B>. The RGL does not cover all structures in any language - hence it is likely to fail when
|
|
||||||
parsing unlimited text.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Semantic overgeneration</B>. Semantic distinctions, such as between mass and count nouns, or place and manner
|
|
||||||
adverbials, are assumed to be defined in application grammars; the RGL just defines the combinatorics of
|
|
||||||
elements, but doesn't prescribe which elements can really go together.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Spurious ambiguities</B>. RGL parsing creates more ambiguities than what would be necessary, if there
|
|
||||||
was more semantic control. In addition, there are partly overlapping structures, which generate
|
|
||||||
spurious syntactic ambiguities.
|
|
||||||
<B>Example</B>: the very liberal apposition function.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Inefficiency</B>. Partly because of ambiguities, partly of the deep nesting and complex data structures, parsing
|
|
||||||
with the RGL can be very slow when compared to application grammars, even the comprehensive ResourceDemo grammar.
|
|
||||||
For some languages (Romanian, versions of French and Finnish), parsing is not practically possible at all because
|
|
||||||
PGF generation fails for memory reasons.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Syntax orientation</B>. The structures of the RGL are rather superficial and don't guarantee translation
|
|
||||||
equivalence when used as interlingua.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Coarse categories</B>. This is a particular aspect of syntax orientation, and causes at the same time overgeneration
|
|
||||||
and spurious ambiguities.
|
|
||||||
<B>Example</B>: the category <CODE>Adv</CODE>.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H2>What speaks for using RGL</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Despite these problems, the RGL has shown to be a possible starting point for large-scale translation. It has a couple
|
|
||||||
of advantages speaking for this:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Coverage</B>. Even though not complete, the RGL has grown into a coverage that is close to complete enough; work
|
|
||||||
with English shows that just about 20% more constructions can take us there.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Maintainability</B>. The RGL is constantly developed and maintained on its own right, and it makes sense to take
|
|
||||||
advantage of this and avoid duplicated work with some other large-scale grammar.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Of course, we are still left with the other
|
|
||||||
option of addressing translation with an <I>application grammar</I>, something
|
|
||||||
similar to the ResourceDemo with flatter and more semantic structures. But this would in turn require
|
|
||||||
the replication of many rules, even though it would be to a large extent doable by using a <B>functor</B>, that is,
|
|
||||||
by just one set of rules covering all languages.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>The structure of the wide-coverage translation grammar</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Thus the path chosen is a mixture of RGL and application grammar. In brief, the translation grammar consists of
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Selected RGL modules and functions</B>, as they are (using restricted inheritance); around 80% of the syntax.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Overridden RGL functions</B>, with more general types; just a few of them.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Overridden RGL linearizations</B>, typically with more <B>variants</B> in individual languages; just a few, but
|
|
||||||
increasing.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Syntax extension</B>, new categories and functions, around 20% of the syntax, and increasing.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Big lexicon</B>, with an abstract syntax of 65k lemmas, increasing.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Constructions</B>, inspired by (and partly derived from) Construction Grammars, to capture idioms that
|
|
||||||
involve specific lexical items and are therefore "between the syntax and the lexicon".
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
The following picture shows the principal module structure of the translation grammar.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
<IMG ALIGN="middle" SRC="translation.png" BORDER="0" ALT="">
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Here is a description of each of the modules:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Translate</B> is the top module, which combines the RGL syntax with syntax extensions and a dictionary.
|
|
||||||
The RGL syntax is not inherited in its entirety, which is indicated by a dashed line. The overridden abstract
|
|
||||||
syntax functions (common to all languages) are replaced by functions in the Extensions module, whereas the
|
|
||||||
overridden concrete syntax definitions (specific to each language) are defined in this Translate module.
|
|
||||||
This consists of the module named <CODE>Translate</CODE>.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>RGLSyntax</B> stands for the standard RGL module for syntax, excluding the RGL test lexicon and
|
|
||||||
the language-specific extensions of it. This consists of the standard module named <CODE>Grammar</CODE> and
|
|
||||||
the emerging module named <CODE>Construction</CODE>.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Extensions</B> stands for the syntax extensions added to the RGL syntax. This consists of the module
|
|
||||||
named <CODE>Extensions</CODE>.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Dictionary</B> is a large-scale multilingual dictionary. Its abstract syntax uses as identifiers English words
|
|
||||||
suffixed by categories and word sense information. This consists of the module named <CODE>Dictionary</CODE>.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>RGLCategories</B> stands for the type system of the standard RGL, the module named <CODE>Cat</CODE>.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Chunk</B> is the grammar defining what chunks (noun phrases, verbs,
|
|
||||||
adverbs, etc) can be used and how they are combined, when exact
|
|
||||||
syntactic combination fails.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H2>Where and why the translation grammar differs from the RGL</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
A guiding principle is thus that the translation grammar preserves <I>as much as possible</I> of the RGL, so that
|
|
||||||
duplicated work is avoided. But as the purposes of the two are different, not everything is possible. Two
|
|
||||||
diverging principles have already been mentioned:
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><B>Free variation</B>. The RGL bans free variation, because library users need to have full control on selecting
|
|
||||||
variants. For instance, English negation has two forms, contracted (<I>don't</I>) and uncontracted (<I>do not</I>),
|
|
||||||
which in the translation grammar are treated as variants. But RGL users sometimes need to choose the one or the
|
|
||||||
other, for instance, excluding contracted negation in formal style.
|
|
||||||
<P></P>
|
|
||||||
<LI><B>Semantic distinctions</B>. The RGL avoids semantic distinctions that are not absolutely necessary for syntax.
|
|
||||||
The reason for this is the ambition to keep the library as simple as possible, in particular for the voluntary
|
|
||||||
implementors of new languages. But meaning-preserving translation needs more distinctions, for instance, in
|
|
||||||
word senses, subcategorizations, selection restrictions, and tense and aspect systems.
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
The old design principles of the RGL are thus kept in force, and this is made possible by separating parts of the
|
|
||||||
translation grammar modules from the RGL.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
|
|
||||||
<!-- cmdline: txt2tags -thtml translation.txt -->
|
|
||||||
</BODY></HTML>
|
|
||||||
@@ -8,17 +8,18 @@ FocusObjS nsubj head -- again might be wrong; more correct to call
|
|||||||
QuestIAdv advmod head -- "where does John sleep" cf. AdvVP
|
QuestIAdv advmod head -- "where does John sleep" cf. AdvVP
|
||||||
QuestIComp head nsubj -- "where is John": John is clearly nsubj, but is where the head?
|
QuestIComp head nsubj -- "where is John": John is clearly nsubj, but is where the head?
|
||||||
QuestQVP nsubj head
|
QuestQVP nsubj head
|
||||||
QuestSlash dobj head
|
QuestSlash obj head
|
||||||
QuestVP nsubj head
|
QuestVP nsubj head
|
||||||
|
IdetCN det head
|
||||||
|
|
||||||
PredSCVP csubj head
|
PredSCVP csubj head
|
||||||
|
|
||||||
ComplSlash head dobj
|
ComplSlash head obj
|
||||||
ComplSlashIP head dobj
|
ComplSlashIP head obj
|
||||||
Slash3V3 head dobj
|
Slash3V3 head obj
|
||||||
SlashV2VNP head dobj xcomp
|
SlashV2VNP head obj xcomp
|
||||||
PastPartAgentAP head dobj
|
PastPartAgentAP head obj
|
||||||
AdvQVP head dobj
|
AdvQVP head obj
|
||||||
|
|
||||||
Slash2V3 head iobj
|
Slash2V3 head iobj
|
||||||
|
|
||||||
@@ -66,8 +67,8 @@ RelSlash mark head
|
|||||||
ComplN2 head nmod
|
ComplN2 head nmod
|
||||||
ComplN3 nmod head
|
ComplN3 nmod head
|
||||||
AdvCN head nmod
|
AdvCN head nmod
|
||||||
PossNP nmod head
|
PossNP head nmod
|
||||||
PartNP nmod head
|
PartNP head nmod
|
||||||
ExistNPAdv head nmod
|
ExistNPAdv head nmod
|
||||||
|
|
||||||
OrdNumeralSuperl nummod head -- quite wrong; cannot find relevant details in the documentation; but most probably head lies outside the score of this function
|
OrdNumeralSuperl nummod head -- quite wrong; cannot find relevant details in the documentation; but most probably head lies outside the score of this function
|
||||||
@@ -80,12 +81,12 @@ ApposNP head appos
|
|||||||
RelNP head acl
|
RelNP head acl
|
||||||
RelCN head acl
|
RelCN head acl
|
||||||
SentCN head acl
|
SentCN head acl
|
||||||
SentAP amod acl
|
SentAP head acl
|
||||||
|
|
||||||
DetQuantOrd head nummod amod -- quite wrong; again for same reason as DetQuant function
|
DetQuantOrd head nummod amod -- quite wrong; again for same reason as DetQuant function
|
||||||
DetCN det head
|
DetCN det head
|
||||||
IDetCN det head
|
IdetCN det head
|
||||||
IDetQuant head empty
|
IdetQuant head nummod
|
||||||
CountNP det head
|
CountNP det head
|
||||||
PredetNP det head
|
PredetNP det head
|
||||||
PPartNP head amod -- only in core RGL
|
PPartNP head amod -- only in core RGL
|
||||||
@@ -156,12 +157,12 @@ TExclMark head dep -- punctuation in the middle in these three
|
|||||||
TFullStop head dep
|
TFullStop head dep
|
||||||
TQuestMark head dep
|
TQuestMark head dep
|
||||||
|
|
||||||
ComplV2 head dobj -- shortcuts in App
|
ComplV2 head obj -- shortcuts in App
|
||||||
ComplV2V head dobj xcomp
|
ComplV2V head obj xcomp
|
||||||
ComplV3 head iobj dobj ---- could be dobj dobj
|
ComplV3 head iobj obj ---- could be dobj dobj
|
||||||
PassAgentV2 head ncomp -- not sure
|
PassAgentV2 head ncomp -- not sure
|
||||||
RelV2 mark nsubj head
|
RelV2 mark nsubj head
|
||||||
QuestV2 dobj nsubj head
|
QuestV2 obj nsubj head
|
||||||
|
|
||||||
ModCN amod head -- in ResourceDemo
|
ModCN amod head -- in ResourceDemo
|
||||||
RSubjS mark advcl head
|
RSubjS mark advcl head
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ fun
|
|||||||
|
|
||||||
n_units_AP : Card -> CN -> A -> AP ; -- x inches long
|
n_units_AP : Card -> CN -> A -> AP ; -- x inches long
|
||||||
n_units_of_NP : Card -> CN -> NP -> NP ; -- x ounces of this flour
|
n_units_of_NP : Card -> CN -> NP -> NP ; -- x ounces of this flour
|
||||||
|
n_unit_CN : Card -> CN -> CN -> CN ; -- x gallon bottle
|
||||||
|
|
||||||
|
|
||||||
-- containers
|
-- containers
|
||||||
@@ -79,6 +80,7 @@ cat
|
|||||||
|
|
||||||
fun
|
fun
|
||||||
timeunitAdv : Card -> Timeunit -> Adv ; -- (for) three hours
|
timeunitAdv : Card -> Timeunit -> Adv ; -- (for) three hours
|
||||||
|
timeunitRange : Card -> Card -> Timeunit -> Adv ; -- (cats live) ten to twenty years
|
||||||
|
|
||||||
oneHour : Hour ;
|
oneHour : Hour ;
|
||||||
twoHour : Hour ;
|
twoHour : Hour ;
|
||||||
@@ -105,8 +107,8 @@ fun
|
|||||||
twentyThreeHour : Hour ;
|
twentyThreeHour : Hour ;
|
||||||
twentyFourHour : Hour ;
|
twentyFourHour : Hour ;
|
||||||
|
|
||||||
timeHour : Hour -> Adv ; -- at three (o'clock / am / pm)
|
timeHour : Hour -> Adv ; -- at three a.m./p.m.
|
||||||
timeHourMinute : Hour -> Card -> Adv ; -- at forty past six
|
timeHourMinute : Hour -> Card -> Adv ; -- at six forty a.m./p.m.
|
||||||
|
|
||||||
weekdayPunctualAdv : Weekday -> Adv ; -- on Monday
|
weekdayPunctualAdv : Weekday -> Adv ; -- on Monday
|
||||||
weekdayHabitualAdv : Weekday -> Adv ; -- on Mondays
|
weekdayHabitualAdv : Weekday -> Adv ; -- on Mondays
|
||||||
|
|||||||
@@ -45,6 +45,13 @@ abstract Extend = Cat ** {
|
|||||||
MkVPS : Temp -> Pol -> VP -> VPS ; -- hasn't slept
|
MkVPS : Temp -> Pol -> VP -> VPS ; -- hasn't slept
|
||||||
ConjVPS : Conj -> [VPS] -> VPS ; -- has walked and won't sleep
|
ConjVPS : Conj -> [VPS] -> VPS ; -- has walked and won't sleep
|
||||||
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
|
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
|
||||||
|
SQuestVPS : NP -> VPS -> QS ; -- has she walked
|
||||||
|
QuestVPS : IP -> VPS -> QS ; -- who has walked
|
||||||
|
|
||||||
|
-- existentials that work in the absence of Cl
|
||||||
|
ExistS : Temp -> Pol -> NP -> S ; -- there was a party
|
||||||
|
ExistNPQS : Temp -> Pol -> NP -> QS ; -- was there a party
|
||||||
|
ExistIPQS : Temp -> Pol -> IP -> QS ; -- what was there
|
||||||
|
|
||||||
MkVPI : VP -> VPI ; -- to sleep (TODO: Ant and Pol)
|
MkVPI : VP -> VPI ; -- to sleep (TODO: Ant and Pol)
|
||||||
ConjVPI : Conj -> [VPI] -> VPI ; -- to sleep and to walk
|
ConjVPI : Conj -> [VPI] -> VPI ; -- to sleep and to walk
|
||||||
@@ -105,6 +112,10 @@ abstract Extend = Cat ** {
|
|||||||
|
|
||||||
NominalizeVPSlashNP : VPSlash -> NP -> NP ;
|
NominalizeVPSlashNP : VPSlash -> NP -> NP ;
|
||||||
|
|
||||||
|
-- counterpart to ProgrVP, for VPSlash
|
||||||
|
|
||||||
|
ProgrVPSlash : VPSlash -> VPSlash;
|
||||||
|
|
||||||
-- existential for mathematics
|
-- existential for mathematics
|
||||||
|
|
||||||
ExistsNP : NP -> Cl ; -- there exists a number / there exist numbers
|
ExistsNP : NP -> Cl ; -- there exists a number / there exist numbers
|
||||||
@@ -115,6 +126,10 @@ abstract Extend = Cat ** {
|
|||||||
ExistMassCN : CN -> Cl ; -- there is beer / there is no beer
|
ExistMassCN : CN -> Cl ; -- there is beer / there is no beer
|
||||||
ExistPluralCN : CN -> Cl ; -- there are trees / there are no trees
|
ExistPluralCN : CN -> Cl ; -- there are trees / there are no trees
|
||||||
|
|
||||||
|
-- generalisation of existential, with adverb as a parameter
|
||||||
|
AdvIsNP : Adv -> NP -> Cl ; -- here is the tree / here are the trees
|
||||||
|
AdvIsNPAP : Adv -> NP -> AP -> Cl ; -- here are the instructions documented
|
||||||
|
|
||||||
-- infinitive for purpose AR 21/8/2013
|
-- infinitive for purpose AR 21/8/2013
|
||||||
|
|
||||||
PurposeVP : VP -> Adv ; -- to become happy
|
PurposeVP : VP -> Adv ; -- to become happy
|
||||||
@@ -141,6 +156,16 @@ abstract Extend = Cat ** {
|
|||||||
AdjAsCN : AP -> CN ; -- a green one ; en grön (Swe)
|
AdjAsCN : AP -> CN ; -- a green one ; en grön (Swe)
|
||||||
AdjAsNP : AP -> NP ; -- green (is good)
|
AdjAsNP : AP -> NP ; -- green (is good)
|
||||||
|
|
||||||
|
-- infinitive complement for IAdv
|
||||||
|
|
||||||
|
PredIAdvVP : IAdv -> VP -> QCl ; -- how to walk?
|
||||||
|
|
||||||
|
-- alternative to EmbedQS. For English, EmbedQS happens to work,
|
||||||
|
-- because "what" introduces question and relative. The default linearization
|
||||||
|
-- could be e.g. "the thing we did (was fun)".
|
||||||
|
|
||||||
|
EmbedSSlash : SSlash -> SC ; -- what we did (was fun)
|
||||||
|
|
||||||
-- reflexive noun phrases: a generalization of Verb.ReflVP, which covers just reflexive pronouns
|
-- reflexive noun phrases: a generalization of Verb.ReflVP, which covers just reflexive pronouns
|
||||||
-- This is necessary in languages like Swedish, which have special reflexive possessives.
|
-- This is necessary in languages like Swedish, which have special reflexive possessives.
|
||||||
-- However, it is also needed in application grammars that want to treat "brush one's teeth" as a one-place predicate.
|
-- However, it is also needed in application grammars that want to treat "brush one's teeth" as a one-place predicate.
|
||||||
@@ -206,6 +231,10 @@ abstract Extend = Cat ** {
|
|||||||
DetNPMasc : Det -> NP ;
|
DetNPMasc : Det -> NP ;
|
||||||
DetNPFem : Det -> NP ;
|
DetNPFem : Det -> NP ;
|
||||||
|
|
||||||
|
UseComp_estar : Comp -> VP ; -- (Cat, Spa, Por) "está cheio" instead of "é cheio"
|
||||||
|
|
||||||
|
SubjRelNP : NP -> RS -> NP ; -- Force RS in subjunctive: lo que les *resulte* mejor
|
||||||
|
|
||||||
iFem_Pron : Pron ; -- I (Fem)
|
iFem_Pron : Pron ; -- I (Fem)
|
||||||
youFem_Pron : Pron ; -- you (Fem)
|
youFem_Pron : Pron ; -- you (Fem)
|
||||||
weFem_Pron : Pron ; -- we (Fem)
|
weFem_Pron : Pron ; -- we (Fem)
|
||||||
|
|||||||
@@ -17,6 +17,10 @@ fun
|
|||||||
verb_Category : Category ;
|
verb_Category : Category ;
|
||||||
adverb_Category : Category ;
|
adverb_Category : Category ;
|
||||||
preposition_Category : Category ;
|
preposition_Category : Category ;
|
||||||
|
numeral_Category : Category ;
|
||||||
|
pronoun_Category : Category ;
|
||||||
|
determiner_Category : Category ;
|
||||||
|
article_Category : Category ;
|
||||||
|
|
||||||
number_ParameterType : ParameterType ;
|
number_ParameterType : ParameterType ;
|
||||||
gender_ParameterType : ParameterType ;
|
gender_ParameterType : ParameterType ;
|
||||||
@@ -65,6 +69,7 @@ fun
|
|||||||
|
|
||||||
active_Parameter : Parameter ;
|
active_Parameter : Parameter ;
|
||||||
passive_Parameter : Parameter ;
|
passive_Parameter : Parameter ;
|
||||||
|
middle_Parameter : Parameter ;
|
||||||
|
|
||||||
present_Parameter : Parameter ;
|
present_Parameter : Parameter ;
|
||||||
past_Parameter : Parameter ;
|
past_Parameter : Parameter ;
|
||||||
@@ -99,6 +104,9 @@ fun
|
|||||||
short_Parameter : Parameter ; -- short form of e.g. a Fin infinitive
|
short_Parameter : Parameter ; -- short form of e.g. a Fin infinitive
|
||||||
long_Parameter : Parameter ;
|
long_Parameter : Parameter ;
|
||||||
|
|
||||||
|
strong_Parameter : Parameter ; -- German adjective declensions
|
||||||
|
weak_Parameter : Parameter ;
|
||||||
|
|
||||||
finite_Modifier : Modifier ;
|
finite_Modifier : Modifier ;
|
||||||
transitive_Modifier : Modifier ;
|
transitive_Modifier : Modifier ;
|
||||||
nominal_Modifier : Modifier ;
|
nominal_Modifier : Modifier ;
|
||||||
|
|||||||
9
src/api/CombinatorsCze.gf
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource CombinatorsCze = Combinators with
|
||||||
|
(Cat = CatCze),
|
||||||
|
(Structural = StructuralCze),
|
||||||
|
(Constructors = ConstructorsCze)
|
||||||
|
** open MissingCze in {}
|
||||||
|
|
||||||
|
|
||||||
7
src/api/CombinatorsHun.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:alltenses:prelude:src/hungarian
|
||||||
|
|
||||||
|
resource CombinatorsHun = Combinators with
|
||||||
|
(Cat = CatHun),
|
||||||
|
(Structural = StructuralHun),
|
||||||
|
(Noun = NounHun),
|
||||||
|
(Constructors = ConstructorsHun) ** open MissingHun in {} ;
|
||||||
7
src/api/CombinatorsKor.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:alltenses:prelude:../korean
|
||||||
|
|
||||||
|
resource CombinatorsKor = Combinators with
|
||||||
|
(Cat = CatKor),
|
||||||
|
(Structural = StructuralKor),
|
||||||
|
(Noun = NounKor),
|
||||||
|
(Constructors = ConstructorsKor) ** open MissingKor in {} ;
|
||||||
9
src/api/CombinatorsSlo.gf
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource CombinatorsSlo = Combinators with
|
||||||
|
(Cat = CatSlo),
|
||||||
|
(Structural = StructuralSlo),
|
||||||
|
(Constructors = ConstructorsSlo)
|
||||||
|
** open MissingSlo in {}
|
||||||
|
|
||||||
|
|
||||||
9
src/api/CombinatorsTur.gf
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource CombinatorsTur = Combinators with
|
||||||
|
(Cat = CatTur),
|
||||||
|
(Structural = StructuralTur),
|
||||||
|
(Noun = NounTur),
|
||||||
|
(Constructors = ConstructorsTur) **
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -1180,6 +1180,8 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \a,p -> TUseQCl TPres a p ; --%
|
= \a,p -> TUseQCl TPres a p ; --%
|
||||||
mkQS : (Tense) -> (Ant) -> (Pol) -> QCl -> QS -- who wouldn't have slept
|
mkQS : (Tense) -> (Ant) -> (Pol) -> QCl -> QS -- who wouldn't have slept
|
||||||
= TUseQCl ; --%
|
= TUseQCl ; --%
|
||||||
|
mkQS : Temp -> Pol -> QCl -> QS -- who wouldn't have slept --%
|
||||||
|
= UseQCl ; --%
|
||||||
|
|
||||||
-- Since 'yes-no' question clauses can be built from clauses (see below),
|
-- Since 'yes-no' question clauses can be built from clauses (see below),
|
||||||
-- we give a shortcut
|
-- we give a shortcut
|
||||||
|
|||||||
5
src/api/ConstructorsCze.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource ConstructorsCze = Constructors with (Grammar = GrammarCze)
|
||||||
|
** open MissingCze in {}
|
||||||
|
|
||||||
3
src/api/ConstructorsHun.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:alltenses:prelude:../hungarian
|
||||||
|
|
||||||
|
resource ConstructorsHun = Constructors with (Grammar = GrammarHun) ** open MissingHun in {} ;
|
||||||
3
src/api/ConstructorsKor.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:alltenses:prelude:../korean
|
||||||
|
|
||||||
|
resource ConstructorsKor = Constructors with (Grammar = GrammarKor) ** open MissingKor in {} ;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:alltenses:prelude:../latin
|
--# -path=.:alltenses:prelude:../latin
|
||||||
|
|
||||||
resource ConstructorsLat = Constructors with (Grammar = GrammarLat) **
|
resource ConstructorsLat = Constructors with (Grammar = GrammarLat) **
|
||||||
open MissingLat in {}
|
open MissingLat in {} ;
|
||||||
|
|||||||
5
src/api/ConstructorsSlo.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource ConstructorsSlo = Constructors with (Grammar = GrammarSlo)
|
||||||
|
** open MissingSlo in {}
|
||||||
|
|
||||||
3
src/api/ConstructorsTur.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource ConstructorsTur = Constructors with (Grammar = GrammarTur) ;
|
||||||
6
src/api/SymbolicCze.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
--# -path=.:../czech:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource SymbolicCze = Symbolic with
|
||||||
|
(Symbol = SymbolCze),
|
||||||
|
(Grammar = GrammarCze)
|
||||||
|
** open MissingCze in {}
|
||||||
5
src/api/SymbolicHun.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:../hungarian:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource SymbolicHun = Symbolic with
|
||||||
|
(Symbol = SymbolHun),
|
||||||
|
(Grammar = GrammarHun) ** open MissingHun in {} ;
|
||||||
5
src/api/SymbolicKor.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:../korean:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource SymbolicKor = Symbolic with
|
||||||
|
(Symbol = SymbolKor),
|
||||||
|
(Grammar = GrammarKor) ** open MissingKor in {} ;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
--# -path=.:../icelandic:../common:../abstract:../prelude
|
--# -path=.:../latin:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource SymbolicLat = Symbolic with
|
resource SymbolicLat = Symbolic with
|
||||||
(Symbol = SymbolLat),
|
(Symbol = SymbolLat),
|
||||||
(Grammar = GrammarLat) ;
|
(Grammar = GrammarLat) ** open MissingLat in {} ;
|
||||||
|
|||||||
6
src/api/SymbolicSlo.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
--# -path=.:../slovak:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource SymbolicSlo = Symbolic with
|
||||||
|
(Symbol = SymbolSlo),
|
||||||
|
(Grammar = GrammarSlo)
|
||||||
|
** open MissingSlo in {}
|
||||||
4
src/api/SyntaxCze.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:./alltenses:../prelude
|
||||||
|
|
||||||
|
instance SyntaxCze of Syntax =
|
||||||
|
ConstructorsCze, CatCze, StructuralCze, CombinatorsCze ;
|
||||||
4
src/api/SyntaxHun.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:alltenses:prelude:../hungarian
|
||||||
|
|
||||||
|
instance SyntaxHun of Syntax =
|
||||||
|
ConstructorsHun, CatHun, StructuralHun, CombinatorsHun ;
|
||||||
5
src/api/SyntaxKor.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:alltenses:prelude:../korean
|
||||||
|
|
||||||
|
instance SyntaxKor of Syntax =
|
||||||
|
ConstructorsKor, CatKor, StructuralKor, CombinatorsKor **
|
||||||
|
open MissingKor in {} ;
|
||||||
4
src/api/SyntaxSlo.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:./alltenses:../prelude
|
||||||
|
|
||||||
|
instance SyntaxSlo of Syntax =
|
||||||
|
ConstructorsSlo, CatSlo, StructuralSlo, CombinatorsSlo ;
|
||||||
4
src/api/SyntaxTur.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
instance SyntaxTur of Syntax = ConstructorsTur, CatTur, StructuralTur, CombinatorsTur ;
|
||||||
|
|
||||||
13
src/api/TryCze.gf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
--# -path=.:../czech:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource TryCze = SyntaxCze, LexiconCze, ParadigmsCze -[mkAdv, mkDet,mkQuant]**
|
||||||
|
open (P = ParadigmsCze) in {
|
||||||
|
|
||||||
|
-- oper
|
||||||
|
|
||||||
|
-- mkAdv = overload SyntaxCze {
|
||||||
|
-- mkAdv : Str -> Adv = P.mkAdv ;
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
3
src/api/TryHun.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:../hungarian:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource TryHun = SyntaxHun, LexiconHun, ParadigmsHun - [mkAdv] ;
|
||||||
3
src/api/TryKor.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:../korean:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource TryKor = SyntaxKor, LexiconKor, ParadigmsKor - [mkAdv] ;
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../latin:../common:../abstract:../prelude
|
--# -path=.:../latin:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryLat = SyntaxLat, LexiconLat, ParadigmsLat - [mkAdv,mkAdN,mkOrd] ;
|
resource TryLat = SyntaxLat, LexiconLat, ParadigmsLat - [mkAdv,mkAdN,mkOrd,mkNum] ;
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../russian:../common:../abstract:../prelude
|
--# -path=.:../russian:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryRus = SyntaxRus, LexiconRus, ParadigmsRus - [mkAdv] ;
|
resource TryRus = SyntaxRus, LexiconRus, ParadigmsRus - [mkAdv,mkIAdv,mkOrd] ;
|
||||||
|
|||||||
13
src/api/TrySlo.gf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
--# -path=.:../slovak:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource TrySlo = SyntaxSlo, LexiconSlo, ParadigmsSlo -[mkAdv, mkDet,mkQuant]**
|
||||||
|
open (P = ParadigmsSlo) in {
|
||||||
|
|
||||||
|
-- oper
|
||||||
|
|
||||||
|
-- mkAdv = overload SyntaxSlo {
|
||||||
|
-- mkAdv : Str -> Adv = P.mkAdv ;
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
11
src/api/TryTur.gf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
--# -path=.:../turkish:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource TryTur = SyntaxTur, LexiconTur, ParadigmsTur - [mkAdN,mkAdv,mkNum,mkQuant] **
|
||||||
|
open (P = ParadigmsTur), (R = ResTur) in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
mkAdv = overload SyntaxTur {
|
||||||
|
mkAdv : Str -> Adv = P.mkAdv ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
|
|||||||
flags coding = utf8 ;
|
flags coding = utf8 ;
|
||||||
lin
|
lin
|
||||||
|
|
||||||
|
|
||||||
PositA a = {
|
PositA a = {
|
||||||
s = \\h,g,n,d,c => case h of {
|
s = \\h,g,n,d,c => case h of {
|
||||||
Hum => a.s ! APosit g n d c;
|
Hum => a.s ! APosit g n d c;
|
||||||
@@ -21,27 +20,27 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
|
|||||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
--
|
--
|
||||||
ComplA2 a np = {
|
ComplA2 a np = {
|
||||||
s = \\sp,g,n,st,c => a.s ! APosit g n st c ++ a.c2.s ++ np.s ! a.c2.c ;
|
s = \\sp,g,n,st,c => a.s ! APosit g n st c ++ a.c2.s ++ bindIf a.c2.binds ++ np.s ! a.c2.c ;
|
||||||
} ;
|
} ;
|
||||||
--
|
|
||||||
-- ReflA2 a = {
|
-- full PerGenNum should be added to make this work properly
|
||||||
-- s = \\ag => a.s ! AAdj Posit ++ a.c2 ++ reflPron ! ag ;
|
ReflA2 a = {
|
||||||
-- isPre = False
|
s = \\sp,g,n,st,c => a.s ! APosit g n st c ++ a.c2.s ++ reflPron c (gn2pgn {g=g;n=n})
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- SentAP ap sc = {
|
|
||||||
-- s = \\a => ap.s ! a ++ sc.s ;
|
|
||||||
-- isPre = False
|
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
AdAP ada ap = {
|
AdAP ada ap = {
|
||||||
s = \\sp,g,n,st,c => ada.s ++ ap.s ! sp ! g ! n ! st ! c
|
s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ ada.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
AdvAP,
|
||||||
|
SentAP = \ap,ss -> AdAP ss ap ;
|
||||||
|
|
||||||
UseA2 = PositA ;
|
UseA2 = PositA ;
|
||||||
|
|
||||||
UseComparA a = {
|
UseComparA a = {
|
||||||
s = \\h,g,n,d,c => a.s ! AComp d c
|
s = \\h,g,n,d,c => a.s ! AComp d c
|
||||||
};
|
};
|
||||||
|
|
||||||
|
-- : Ord -> AP ; -- warmest
|
||||||
|
AdjOrd ord = {s = \\h,g,n,s,c => ord.s ! g ! s ! c} ;
|
||||||
}
|
}
|
||||||
|
|||||||