mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
Compare commits
1 Commits
eleven-nor
...
experiment
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
390fd55751 |
61
.github/workflows/release.yml
vendored
61
.github/workflows/release.yml
vendored
@@ -1,61 +0,0 @@
|
|||||||
name: Create RGL release
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
tag:
|
|
||||||
description: Release tag (should be YYYYMMDD format)
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-18.04
|
|
||||||
env:
|
|
||||||
GF_VERSION: 3.10-1
|
|
||||||
DEST: gf-rgl-${{ github.event.inputs.tag }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install GF
|
|
||||||
run: |
|
|
||||||
curl -s https://www.grammaticalframework.org/download/gf_${GF_VERSION}_amd64.deb -o gf.deb
|
|
||||||
sudo dpkg -i gf.deb
|
|
||||||
|
|
||||||
- name: Build RGL
|
|
||||||
run: |
|
|
||||||
mkdir -p ${DEST}
|
|
||||||
bash Setup.sh --dest=${DEST} --gf=gf --verbose
|
|
||||||
|
|
||||||
- name: Create archive
|
|
||||||
run: |
|
|
||||||
zip asset.zip -r ${{ env.DEST }}
|
|
||||||
|
|
||||||
# - name: Upload artifact
|
|
||||||
# uses: actions/upload-artifact@v2
|
|
||||||
# with:
|
|
||||||
# name: gf-rgl-${{ github.sha }}
|
|
||||||
# path: ${{ env.DEST }}
|
|
||||||
# if-no-files-found: error
|
|
||||||
|
|
||||||
- name: Create release
|
|
||||||
id: create_release
|
|
||||||
uses: actions/create-release@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
tag_name: ${{ github.event.inputs.tag }}
|
|
||||||
release_name: Release ${{ github.event.inputs.tag }}
|
|
||||||
draft: false
|
|
||||||
prerelease: false
|
|
||||||
|
|
||||||
- name: Upload release asset
|
|
||||||
id: upload-release-asset
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: asset.zip
|
|
||||||
asset_name: gf-rgl-${{ github.event.inputs.tag }}.zip
|
|
||||||
asset_content_type: application/zip
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,4 +4,3 @@ dist/
|
|||||||
*.o
|
*.o
|
||||||
*.pgf
|
*.pgf
|
||||||
*.tmp
|
*.tmp
|
||||||
*~
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ language: c
|
|||||||
os:
|
os:
|
||||||
- linux
|
- linux
|
||||||
- osx
|
- osx
|
||||||
# - windows
|
- windows
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
|
|||||||
30
Makefile
30
Makefile
@@ -1,32 +1,16 @@
|
|||||||
# A wrapper over the Haskell and Bash build scripts
|
# A simple wrapper over the Haskell-based RGL build script
|
||||||
# Will try and fallback in order:
|
|
||||||
# - runghc Setup.hs
|
|
||||||
# - stack runghc Setup.hs
|
|
||||||
# - ./Setup.sh
|
|
||||||
|
|
||||||
ifneq (, $(shell which runghc))
|
RUNMAKE=runghc Setup.hs
|
||||||
RUNGHC=runghc Setup.hs
|
|
||||||
else ifneq (, $(shell which stack))
|
|
||||||
RUNGHC=stack runghc Setup.hs
|
|
||||||
else
|
|
||||||
RUNGHC=
|
|
||||||
endif
|
|
||||||
|
|
||||||
.PHONY: build copy install doc clean
|
.PHONY: build copy install doc clean
|
||||||
|
|
||||||
default: build copy
|
default: build copy
|
||||||
|
|
||||||
build: src/*/*.gf
|
build: src/*/*.gf
|
||||||
ifneq (, $(RUNGHC))
|
$(RUNMAKE) build
|
||||||
$(RUNGHC) build
|
|
||||||
else
|
|
||||||
./Setup.sh
|
|
||||||
endif
|
|
||||||
|
|
||||||
copy:
|
copy:
|
||||||
ifneq (, $(RUNGHC))
|
$(RUNMAKE) copy
|
||||||
$(RUNGHC) copy
|
|
||||||
endif
|
|
||||||
|
|
||||||
install: build copy
|
install: build copy
|
||||||
|
|
||||||
@@ -34,8 +18,4 @@ doc: build
|
|||||||
make -C doc GF_LIB_PATH=../dist
|
make -C doc GF_LIB_PATH=../dist
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
ifneq (, $(RUNGHC))
|
$(RUNMAKE) clean
|
||||||
$(RUNGHC) clean
|
|
||||||
else
|
|
||||||
rm -r dist
|
|
||||||
endif
|
|
||||||
|
|||||||
19
README.md
19
README.md
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
# GF Resource Grammar Library (RGL)
|
# GF Resource Grammar Library (RGL)
|
||||||
|
|
||||||
|
[](https://travis-ci.org/GrammaticalFramework/gf-rgl)
|
||||||
|
|
||||||
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/).
|
For more about the RGL, see the [synopsis page](http://www.grammaticalframework.org/lib/doc/synopsis/).
|
||||||
@@ -45,7 +47,12 @@ 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`).
|
||||||
|
|
||||||
## Using Make
|
## Haskell script: `Setup.hs`
|
||||||
|
|
||||||
|
This build method gives you most options.
|
||||||
|
You will need Haskell installed on your system.
|
||||||
|
|
||||||
|
### Basic
|
||||||
|
|
||||||
If you have `Make` installed and don't care about advanced settings,
|
If you have `Make` installed and don't care about advanced settings,
|
||||||
you can compile the RGL and install it to the default location with:
|
you can compile the RGL and install it to the default location with:
|
||||||
@@ -57,15 +64,9 @@ make install
|
|||||||
This is the same as `make build` followed by `make copy`.
|
This is the same as `make build` followed by `make copy`.
|
||||||
There is also `make clean` available.
|
There is also `make clean` available.
|
||||||
|
|
||||||
The Makefile will try to use the Haskell install script,
|
### Advanced
|
||||||
falling back to the shell script if you do not have Haskell installed.
|
|
||||||
|
|
||||||
## Haskell script: `Setup.hs`
|
For more fine-grained control over the build process, you can run the build script directly:
|
||||||
|
|
||||||
This build method gives you most options.
|
|
||||||
You will need Haskell installed on your system.
|
|
||||||
|
|
||||||
Run the build script with:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
runghc Setup.hs ...
|
runghc Setup.hs ...
|
||||||
|
|||||||
10
RELEASE.md
10
RELEASE.md
@@ -1,10 +0,0 @@
|
|||||||
# RGL releases
|
|
||||||
|
|
||||||
The RGL does not use semantic versioning.
|
|
||||||
Releases are instead made periodically, as snapshots of the current state of the library.
|
|
||||||
Releases are Git tagged `YYYYMMDD`, and for each release a binary package (as `.gfo` files) is made available as a GitHub release.
|
|
||||||
|
|
||||||
## Creating a new release
|
|
||||||
|
|
||||||
1. Run the "Create release" workflow through the GitHub actions interface
|
|
||||||
(instructions [here](https://docs.github.com/en/free-pro-team@latest/actions/managing-workflow-runs/manually-running-a-workflow)).
|
|
||||||
14
Setup.bat
14
Setup.bat
@@ -37,6 +37,20 @@ if "%dest%"=="" (
|
|||||||
)
|
)
|
||||||
:BreakLibPath
|
:BreakLibPath
|
||||||
|
|
||||||
|
set DATA_DIR=..\gf-core\DATA_DIR
|
||||||
|
if "%dest%"=="" (
|
||||||
|
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
|
||||||
|
|||||||
17
Setup.hs
17
Setup.hs
@@ -8,8 +8,8 @@ import System.IO (hPutStrLn,stderr)
|
|||||||
import System.IO.Error (catchIOError)
|
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,readProcess)
|
import System.Process (rawSystem)
|
||||||
import System.FilePath ((</>),splitSearchPath)
|
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)
|
||||||
@@ -61,7 +61,7 @@ errLocation = unlines $
|
|||||||
[ "Unable to determine where to install the RGL. Please do one of the following:"
|
[ "Unable to determine where to install the RGL. Please do one of the following:"
|
||||||
, " - Pass the " ++ destination_flag ++ "... flag to this script"
|
, " - Pass the " ++ destination_flag ++ "... flag to this script"
|
||||||
, " - Set the GF_LIB_PATH environment variable"
|
, " - Set the GF_LIB_PATH environment variable"
|
||||||
, " - Compile & install GF from the gf-core repository"
|
, " - Compile & install GF from the gf-core repository (must be in same directory as gf-rgl)"
|
||||||
]
|
]
|
||||||
|
|
||||||
-- | Copy single file between directories
|
-- | Copy single file between directories
|
||||||
@@ -116,11 +116,10 @@ data Info = Info
|
|||||||
mkInfo :: IO Info
|
mkInfo :: IO Info
|
||||||
mkInfo = do
|
mkInfo = do
|
||||||
args <- getArgs
|
args <- getArgs
|
||||||
let gf = maybe default_gf id (getFlag gf_flag args)
|
|
||||||
-- 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)
|
||||||
menvar <- lookupEnv "GF_LIB_PATH" >>= return . fmap (head . splitSearchPath)
|
menvar <- lookupEnv "GF_LIB_PATH" >>= return . fmap (head . splitSearchPath)
|
||||||
mbuilt <- catchIOError (readProcess gf ["--version"] "" >>= return . getPath) (\e -> return Nothing)
|
|
||||||
let
|
let
|
||||||
inst_dir =
|
inst_dir =
|
||||||
case catMaybes [mflag,menvar,mbuilt] of
|
case catMaybes [mflag,menvar,mbuilt] of
|
||||||
@@ -130,18 +129,12 @@ mkInfo = do
|
|||||||
return $ Info
|
return $ Info
|
||||||
{ infoBuildDir = "dist"
|
{ infoBuildDir = "dist"
|
||||||
, infoInstallDir = inst_dir
|
, infoInstallDir = inst_dir
|
||||||
, infoGFPath = gf
|
, infoGFPath = maybe default_gf id (getFlag gf_flag args)
|
||||||
, infoVerbose = verbose
|
, infoVerbose = verbose
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
default_gf = "gf"
|
default_gf = "gf"
|
||||||
|
|
||||||
getPath s =
|
|
||||||
let l = last (lines s)
|
|
||||||
in if take 14 l == "Shared folder:"
|
|
||||||
then Just (drop 15 l </> "lib")
|
|
||||||
else Nothing
|
|
||||||
|
|
||||||
getRGLBuildDir :: Info -> Mode -> FilePath
|
getRGLBuildDir :: Info -> Mode -> FilePath
|
||||||
getRGLBuildDir info mode = infoBuildDir info </> getRGLBuildSubDir mode
|
getRGLBuildDir info mode = infoBuildDir info </> getRGLBuildSubDir mode
|
||||||
|
|
||||||
|
|||||||
11
Setup.sh
11
Setup.sh
@@ -38,15 +38,15 @@ done
|
|||||||
if [ -z "$dest" ]; then
|
if [ -z "$dest" ]; then
|
||||||
dest=$(echo "$GF_LIB_PATH" | sed 's/:.*$//')
|
dest=$(echo "$GF_LIB_PATH" | sed 's/:.*$//')
|
||||||
fi
|
fi
|
||||||
if [ -z "$dest" ] && [ "$(gf --version | tail -1 | cut -c -14)" == "Shared folder:" ]; then
|
if [ -z "$dest" ] && [ -f "../gf-core/DATA_DIR" ]; then
|
||||||
dest=$(gf --version | tail -1 | cut -c 16-)
|
dest=$(cat ../gf-core/DATA_DIR)
|
||||||
if [ -n "$dest" ]; then dest="${dest}/lib"; fi
|
if [ -n "$dest" ]; then dest="${dest}/lib"; fi
|
||||||
fi
|
fi
|
||||||
if [ -z "$dest" ]; then
|
if [ -z "$dest" ]; then
|
||||||
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"
|
||||||
echo " - Set the GF_LIB_PATH environment variable"
|
echo " - Set the GF_LIB_PATH environment variable"
|
||||||
echo " - Compile & install GF from the gf-core repository"
|
echo " - Compile & install GF from the gf-core repository (must be in same directory as gf-rgl)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -72,7 +72,6 @@ for lang in $langs; do
|
|||||||
for mod in $modules_langs $modules_api; do
|
for mod in $modules_langs $modules_api; do
|
||||||
if [ $mod == "Compatibility" ] && [[ "$langs_compat" != *"$lang"* ]]; then continue; fi
|
if [ $mod == "Compatibility" ] && [[ "$langs_compat" != *"$lang"* ]]; then continue; fi
|
||||||
if [ $mod == "Try" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi
|
if [ $mod == "Try" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi
|
||||||
if [ $mod == "Symbol" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi
|
|
||||||
if [ $mod == "Symbolic" ] && [[ "$langs_symbolic" != *"$lang"* ]]; then continue; fi
|
if [ $mod == "Symbolic" ] && [[ "$langs_symbolic" != *"$lang"* ]]; then continue; fi
|
||||||
for file in "${src}"/*/"${mod}${lang}".gf; do
|
for file in "${src}"/*/"${mod}${lang}".gf; do
|
||||||
if [ ! -f "$file" ]; then continue; fi
|
if [ ! -f "$file" ]; then continue; fi
|
||||||
@@ -97,7 +96,5 @@ for module in $modules_alltenses; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Copy
|
# Copy
|
||||||
if [ $dest == $dist ]; then exit 0; fi
|
|
||||||
echo "Copying to ${dest}"
|
echo "Copying to ${dest}"
|
||||||
mkdir -p "${dest}"
|
cp -R -p "${dist}"/* "${dest}"
|
||||||
cp -R "${dist}"/* "${dest}"
|
|
||||||
|
|||||||
@@ -67,16 +67,6 @@ 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===
|
||||||
@@ -127,10 +117,6 @@ 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===
|
||||||
|
|
||||||
@@ -169,13 +155,8 @@ 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===
|
||||||
@@ -275,9 +256,6 @@ 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===
|
||||||
@@ -303,6 +281,8 @@ 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)
|
||||||
@@ -322,31 +302,14 @@ 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 (Herbert Lange, Aarne Ranta)
|
- **Source**: http://www.grammaticalframework.org/lib/src/latin (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===
|
||||||
@@ -434,15 +397,6 @@ 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===
|
||||||
|
|
||||||
@@ -484,7 +438,7 @@ LNCS 6008,
|
|||||||
|
|
||||||
===Russian===
|
===Russian===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/russian (Janna Khegai, Nikita Frolov, Roman Suzi)
|
- **Source**: http://www.grammaticalframework.org/lib/src/russian (Janna Khegai, Nikita Frolov)
|
||||||
|
|
||||||
- **Publications**
|
- **Publications**
|
||||||
|
|
||||||
@@ -521,21 +475,6 @@ 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
|
||||||
@@ -546,8 +485,7 @@ http://publications.lib.chalmers.se/records/fulltext/163234.pdf
|
|||||||
|
|
||||||
===Swahili===
|
===Swahili===
|
||||||
|
|
||||||
- **Source**: http://www.grammaticalframework.org/lib/src/swahili (Benson Kituku).
|
- **Source**: http://www.grammaticalframework.org/lib/src/swahili (Wanjiku Ng'ang'a)
|
||||||
- **Previous version**: https://github.com/GrammaticalFramework/gf-rgl/tree/master/src/swahili/old (Wanjiku Ng'ang'a).
|
|
||||||
|
|
||||||
|
|
||||||
- **Publications**
|
- **Publications**
|
||||||
@@ -581,6 +519,10 @@ 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)
|
||||||
@@ -614,17 +556,3 @@ 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.//
|
|
||||||
|
|||||||
109
doc/status.txt
109
doc/status.txt
@@ -11,63 +11,60 @@ 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 https://github.com/GrammaticalFramework/gf-rgl/
|
that are currently available via http://grammaticalframework.org
|
||||||
are marked in the table
|
are marked in the table
|
||||||
|
|
||||||
|
|
||||||
|| ISO | Language | Parad | Lex | Lang | API | Symb | Irreg | Dict | WN | tested | publ | authors ||
|
|| ISO | Language | Git | Mini | Parad | Lex | Lang | API | Symb | Irreg | Dict | Trans | tested | publ | authors ||
|
||||||
| Afr | Afrikaans | ++ | + | + | + | - | - | - | - | - | - | *LP,LM |
|
| Afr | Afrikaans | + | - | ++ | + | + | + | - | - | - | - | - | - | *LP,LM
|
||||||
| Amh | Amharic | ++ | + | + | - | - | - | - | - | - | + | *MK |
|
| Amh | Amharic | + | + | ++ | + | + | - | - | - | - | - | - | + | *MK
|
||||||
| Ara | Arabic | + | + | + | + | + | - | - | - | + | + | AD,*IL |
|
| 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
|
||||||
| Cze | Czech | + | + | + | + | - | - | - | - | + | - | *AR,*MM |
|
| Dan | Danish | + | + | ++ | + | + | + | + | + | - | - | + | - | *AR
|
||||||
| Dan | Danish | ++ | + | + | + | + | + | - | - | + | - | *AR |
|
| Dut | Dutch | + | + | ++ | + | + | + | + | + | - | + | + | - | *AR,FJ
|
||||||
| Dut | Dutch | ++ | + | + | + | + | + | - | + | + | - | *AR,FJ |
|
| Eng | English | + | + | ++ | + | + | + | + | + | + | + | ++ | + | *AR,BB,KA
|
||||||
| Eng | English | ++ | + | + | + | + | + | + | + | ++ | + | *AR,BB,KA |
|
| Est | Estonian | + | - | ++ | + | + | + | - | - | + | + | + | + | *KK,*IL
|
||||||
| Est | Estonian | ++ | + | + | + | - | - | + | + | + | + | *KK,*IL |
|
| Eus | Basque | + | - | ++ | + | + | + | - | - | - | - | - | + | *IL
|
||||||
| Eus | Basque | ++ | + | + | + | - | - | - | - | - | + | *IL |
|
| Fin | Finnish | + | + | ++ | + | + | + | + | - | + | + | ++ | + | *AR,*IL
|
||||||
| Fin | Finnish | ++ | + | + | + | + | - | + | + | ++ | + | *AR,*IL |
|
| Fre | French | + | + | ++ | + | + | + | + | + | + | + | ++ | - | *AR,RE
|
||||||
| Fre | French | ++ | + | + | + | + | + | + | - | ++ | - | *AR,RE |
|
| Ger | German | + | + | ++ | + | + | + | + | + | + | + | ++ | - | *AR,HH,EG
|
||||||
| Ger | German | ++ | + | + | + | + | + | + | - | ++ | - | *AR,HH,EG |
|
| Gre | Greek(mod) | + | - | ++ | + | + | + | - | - | - | - | - | + | *IP
|
||||||
| Gre | Greek(mod) | ++ | + | + | + | - | - | - | - | - | + | *IP |
|
| Grc | Greek(anc) | - | - | - | - | - | - | - | - | - | - | - | + | *HLe
|
||||||
| Grc | Greek(anc) | - | - | - | - | - | - | - | - | - | + | *HLe |
|
| Heb | Hebrew | + | - | - | - | - | - | - | - | - | - | - | + | *DD
|
||||||
| Heb | Hebrew | - | - | - | - | - | - | - | - | - | + | *DD |
|
| Hin | Hindi | + | + | ++ | + | + | + | + | - | - | + | + | + | *SV,*KP,MH,AR,PK
|
||||||
| Hin | Hindi | ++ | + | + | + | + | - | - | - | + | + | *SV,*KP,MH,AR,PK |
|
| Ice | Icelandic | + | - | ++ | + | + | + | - | - | - | - | - | + | *BT
|
||||||
| Hun | Hungarian | ++ | + | + | + | + | - | - | - | + | - | *IL,*JJ |
|
| Ina | Interlingua | + | + | ++ | + | + | - | - | - | - | - | - | - | JB
|
||||||
| Ice | Icelandic | ++ | + | + | + | - | - | - | - | - | + | *BT |
|
| Ita | Italian | + | + | ++ | + | + | + | + | - | - | + | ++ | - | *AR,*RE,GP
|
||||||
| Ina | Interlingua | ++ | + | + | - | - | - | - | - | - | - | JB |
|
| Jpn | Japanese | + | - | ++ | + | + | + | - | - | - | + | + | + | *LZ
|
||||||
| Ita | Italian | ++ | + | + | + | + | - | - | + | ++ | - | *AR,*RE,GP |
|
| Lat | Latin | + | - | - | - | - | - | - | - | + | - | - | - | *AR,*HLa
|
||||||
| Jpn | Japanese | ++ | + | + | + | - | - | - | - | + | + | *LZ |
|
| Lav | Latvian | + | - | ++ | + | + | + | - | - | - | - | + | + | *NG,*PP
|
||||||
| Kor | Korean | ++ | + | + | + | + | - | - | - | + | - | *IL |
|
| Mlt | Maltese | + | + | ++ | + | + | + | + | - | - | - | - | + | *JC
|
||||||
| Lat | Latin | - | - | - | - | - | - | + | - | - | - | *AR,*HLa |
|
| Mon | Mongolian | + | - | ++ | + | + | + | - | - | + | - | - | + | *NE
|
||||||
| Lav | Latvian | ++ | + | + | + | - | - | - | - | + | + | *NG,*PP |
|
| Nep | Nepali | + | + | ++ | + | + | - | - | - | - | - | - | + | *DS
|
||||||
| Mlt | Maltese | ++ | + | + | + | + | - | - | - | - | + | *JC |
|
| Nno | Norwegian(n) | + | + | ++ | + | + | + | + | + | - | - | - | - | *SRE
|
||||||
| Mon | Mongolian | ++ | + | + | + | - | - | + | - | - | + | *NE |
|
| Nor | Norwegian(b) | + | + | ++ | + | + | + | + | + | - | - | + | - | *AR
|
||||||
| Nep | Nepali | ++ | + | + | - | - | - | - | - | - | + | *DS |
|
| Pes | Persian | + | - | + | + | + | + | - | - | - | - | + | + | SV,EA,SM,*IL
|
||||||
| Nno | Norwegian(n) | ++ | + | + | + | + | + | - | - | - | - | *SRE |
|
| Pnb | Punjabi | + | + | + | + | + | + | + | - | - | - | - | + | *SV,MH
|
||||||
| Nor | Norwegian(b) | ++ | + | + | + | + | + | - | - | + | - | *AR |
|
| Pol | Polish | + | + | + | + | + | + | + | - | - | - | + | + | IN,*AS
|
||||||
| Pes | Persian | + | + | + | + | - | - | - | - | + | + | SV,EA,SM,*IL |
|
| Por | Portuguese | + | + | ++ | + | + | + | + | + | - | + | + | - | *BC
|
||||||
| Pnb | Punjabi | + | + | + | + | + | - | - | - | - | + | *SV,MH |
|
| Ron | Romanian | + | + | ++ | + | + | + | + | - | - | - | + | + | *RE
|
||||||
| Pol | Polish | + | + | + | + | + | - | - | - | + | + | IN,*AS |
|
| Rus | Russian | + | + | ++ | + | + | + | - | - | + | + | - | + | JK,*NF
|
||||||
| Por | Portuguese | ++ | + | + | + | + | + | + | + | + | + | *BC |
|
| Snd | Sindhi | + | + | ++ | + | + | + | + | - | - | - | - | + | *SV,*JD
|
||||||
| Ron | Romanian | ++ | + | + | + | + | - | - | - | + | + | *RE |
|
| Spa | Spanish | + | + | ++ | + | + | + | + | + | - | + | ++ | - | *AR,IA,TS,*IL
|
||||||
| Rus | Russian | ++ | + | + | + | - | - | + | - | - | + | JK,NF,*RS |
|
| Swa | Swahili | + | - | - | - | - | - | - | - | - | - | - | + | *WN,JM
|
||||||
| Slk | Slovak | + | + | + | + | - | - | - | - | + | - | *AR,*MM,SČ |
|
| Swe | Swedish | + | + | ++ | + | + | + | + | + | + | + | ++ | + | *MA,*AR,MF
|
||||||
| Slv | Slovene | ++ | + | + | + | - | - | - | + | + | - | *KA,AE |
|
| Tha | Thai | + | - | ++ | + | + | + | + | - | - | + | + | - | *AR,CK
|
||||||
| Snd | Sindhi | ++ | + | + | + | + | - | - | - | - | + | *SV,*JD |
|
| Tsn | Tswana | - | - | - | - | - | - | - | - | - | - | - | - | *LP,AB
|
||||||
| Som | Somali | + | - | - | - | - | - | - | - | - | - | *IL |
|
| Tur | Turkish | + | - | ++ | + | - | - | - | - | + | - | - | - | *SC,KA
|
||||||
| Spa | Spanish | ++ | + | + | + | + | + | - | + | ++ | - | *AR,IA,TS,*IL |
|
| Urd | Urdu | + | + | ++ | + | + | + | + | - | - | - | + | + | *SV,MH
|
||||||
| 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))
|
||||||
|
|
||||||
|
Git = available in the gf-rgl Git repository
|
||||||
|
|
||||||
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
|
||||||
@@ -76,13 +73,13 @@ Lang = the resource ``Syntax`` (nearly) complete
|
|||||||
|
|
||||||
API = the ``Syntax`` compiles
|
API = the ``Syntax`` compiles
|
||||||
|
|
||||||
Symb = the ``Symbolic`` API complete
|
Symb = the ``Symbolic`` API compiles
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
WN = [WordNet https://cloud.grammaticalframework.org/wordnet] lexicon exists
|
Trans = large-scale translation module and dictionary 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
|
||||||
|
|
||||||
@@ -96,12 +93,10 @@ 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,
|
BC Bruno Cuconato,
|
||||||
BK Benson Kituku,
|
|
||||||
BT Bjarki Traustason,
|
BT Bjarki Traustason,
|
||||||
CK Chotiros Kairoje,
|
CK Chotiros Kairoje,
|
||||||
CP Chen Peng,
|
CP Chen Peng,
|
||||||
@@ -121,7 +116,6 @@ 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,
|
||||||
@@ -135,16 +129,13 @@ 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,
|
||||||
@@ -156,7 +147,7 @@ ZL Zhuo Lin Qiqige
|
|||||||
|
|
||||||
==Rules==
|
==Rules==
|
||||||
|
|
||||||
Only components available at https://github.com/GrammaticalFramework/gf-rgl/ are indicated in the table.
|
Only components available at http://grammaticalframework.org are indicated in the table.
|
||||||
|
|
||||||
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.
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ Amh,Amharic,amharic,,,,,n,n,,n
|
|||||||
Ara,Arabic,arabic,,,,,,y,,y
|
Ara,Arabic,arabic,,,,,,y,,y
|
||||||
Bul,Bulgarian,bulgarian,,,y,,,,,y
|
Bul,Bulgarian,bulgarian,,,y,,,,,y
|
||||||
Cat,Catalan,catalan,Romance,,y,,,,y,y
|
Cat,Catalan,catalan,Romance,,y,,,,y,y
|
||||||
Cgg,Rukiga,rukiga,,,y,y,n,n,y,y
|
|
||||||
Chi,Chinese (simplified),chinese,,,,,,,,y
|
Chi,Chinese (simplified),chinese,,,,,,,,y
|
||||||
Cze,Czech,czech,,,,,,n,,y
|
Cze,Czech,czech,,,,,,n,,y
|
||||||
Dan,Danish,danish,Scand,,y,,,,,y
|
Dan,Danish,danish,Scand,,y,,,,,y
|
||||||
@@ -27,7 +26,6 @@ Jpn,Japanese,japanese,,,,,,,,y
|
|||||||
Kor,Korean,korean,,,n,y,y,y,n,n
|
Kor,Korean,korean,,,n,y,y,y,n,n
|
||||||
Lat,Latin,latin,,,,,y,y,n,y
|
Lat,Latin,latin,,,,,y,y,n,y
|
||||||
Lav,Latvian,latvian,,,,,,,y,y
|
Lav,Latvian,latvian,,,,,,,y,y
|
||||||
May,Malay,malay,,,y,,,,n,y
|
|
||||||
Mlt,Maltese,maltese,,,,,,,,y
|
Mlt,Maltese,maltese,,,,,,,,y
|
||||||
Mon,Mongolian,mongolian,,,,,,n,,y
|
Mon,Mongolian,mongolian,,,,,,n,,y
|
||||||
Nep,Nepali,nepali,,,,,,n,,y
|
Nep,Nepali,nepali,,,,,,n,,y
|
||||||
@@ -43,11 +41,9 @@ Slo,Slovak,slovak,,,,,,n,,y
|
|||||||
Slv,Slovenian,slovenian,,,,,n,n,,n
|
Slv,Slovenian,slovenian,,,,,n,n,,n
|
||||||
Snd,Sindhi,sindhi,,,,,,,,y
|
Snd,Sindhi,sindhi,,,,,,,,y
|
||||||
Spa,Spanish,spanish,Romance,,y,,,,y,y
|
Spa,Spanish,spanish,Romance,,y,,,,y,y
|
||||||
Swa,Swahili,swahili,Bantu,,,y,n,n,n,n
|
Swa,Swahili,swahili,Bantu,,,n,n,n,n,n
|
||||||
Swe,Swedish,swedish,Scand,,y,,,,y,y
|
Swe,Swedish,swedish,Scand,,y,,,,y,y
|
||||||
Tam,Tamil,tamil,n,n,n,n,n,n,n,n
|
|
||||||
Tel,Telugu,telugu,,,y,n,n,n,,n
|
Tel,Telugu,telugu,,,y,n,n,n,,n
|
||||||
Tha,Thai,thai,,to_thai,,,,,,y
|
Tha,Thai,thai,,to_thai,,,,,,y
|
||||||
Tur,Turkish,turkish,,,y,,,n,,n
|
Tur,Turkish,turkish,,,y,,,n,,n
|
||||||
Urd,Urdu,urdu,Hindustani,,,,,,,y
|
Urd,Urdu,urdu,Hindustani,,,,,,,y
|
||||||
Som,Somali,somali,,,,,n,n,,n
|
|
||||||
|
|||||||
|
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB |
@@ -4,7 +4,7 @@ DirectComplVQ empty nsubj head ccomp -- Temp argument can only be empty in Engl
|
|||||||
DirectComplVS empty nsubj head ccomp -- Temp argument can only be empty in English
|
DirectComplVS empty nsubj head ccomp -- Temp argument can only be empty in English
|
||||||
SlashVP nsubj head
|
SlashVP nsubj head
|
||||||
SlashVS nsubj head ccomp
|
SlashVS nsubj head ccomp
|
||||||
FocusObjS nsubj head -- again might be wrong; more correct to call it obj
|
FocusObjS nsubj head -- again might be wrong; more correct to call it dobj
|
||||||
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
|
||||||
@@ -159,7 +159,7 @@ TQuestMark head dep
|
|||||||
|
|
||||||
ComplV2 head obj -- shortcuts in App
|
ComplV2 head obj -- shortcuts in App
|
||||||
ComplV2V head obj xcomp
|
ComplV2V head obj xcomp
|
||||||
ComplV3 head iobj obj ---- could be obj obj
|
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 obj nsubj head
|
QuestV2 obj nsubj head
|
||||||
@@ -181,7 +181,7 @@ AdV ADV
|
|||||||
Adv ADV
|
Adv ADV
|
||||||
CAdv ADV
|
CAdv ADV
|
||||||
Card NUM
|
Card NUM
|
||||||
Conj CCONJ
|
Conj CONJ
|
||||||
Det DET
|
Det DET
|
||||||
Digits NUM
|
Digits NUM
|
||||||
IAdv ADV
|
IAdv ADV
|
||||||
@@ -194,7 +194,7 @@ N2 NOUN
|
|||||||
N3 NOUN
|
N3 NOUN
|
||||||
Numeral NUM
|
Numeral NUM
|
||||||
Ord NUM
|
Ord NUM
|
||||||
PConj CCONJ
|
PConj CONJ
|
||||||
PN PROPN
|
PN PROPN
|
||||||
Predet DET
|
Predet DET
|
||||||
Prep ADP
|
Prep ADP
|
||||||
@@ -214,3 +214,7 @@ VA VERB
|
|||||||
VQ VERB
|
VQ VERB
|
||||||
VS VERB
|
VS VERB
|
||||||
VV VERB
|
VV VERB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
# Introduction
|
|
||||||
|
|
||||||
## Intended audience of this Readme
|
|
||||||
|
|
||||||
This Readme is designed for new developers who wish to either extend/improve on a resource grammar or create a new one. It provides an overview of the relationships between files and a simple working pipeline for developers to get started.
|
|
||||||
|
|
||||||
Note that while files in this folder are meant to be named with 3 letter suffixes representing the language, e.g. "ResBul" for the Bulgarian resource file, this Readme will use a 4 letter suffix "Lang" to represent a language in general, e.g. "ResLang".
|
|
||||||
|
|
||||||
## Author(s) of this Readme
|
|
||||||
|
|
||||||
This Readme was written by Nemo and edited by Inari on 14th August 2022.
|
|
||||||
|
|
||||||
# Creating a new resource grammar
|
|
||||||
|
|
||||||
If you are working on an RGL for a new language, you will need to run "Clone.hs" in the "src" folder so that you can clone a project from another language to your language to give you a basis to start with.
|
|
||||||
|
|
||||||
As per the instructions, the syntax is "Clone fromdir todir fromlang tolang", e.g. "runghc Clone swedish danish Swe Dan". You may want to add the option --comment-body after the word "Clone" to comment out every line in the body of the files to start fresh.
|
|
||||||
|
|
||||||
This is especially useful if your new language has very little in common with the language you are copying from because they come from different language families.
|
|
||||||
|
|
||||||
# File hierarchy
|
|
||||||
|
|
||||||
The number of files may be overwhelming, but they are related together following the graphic under "Module dependencies" under the rgl-tutorial. In the graphic, an example is that GrammarIta and ResIta are dependent on Prelude as they have arrows pointing towards the Prelude ellipse.
|
|
||||||
|
|
||||||
http://www.grammaticalframework.org/lib/doc/rgl-tutorial/index.html
|
|
||||||
|
|
||||||
The below graphic is an alternative graphic explaining the relations, taken from private correspondence with Inari.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
CatLang defines the categories, and the modules AdjectiveLang, NounLang, SentenceLang, PhraseLang, and so on, all extend Cat. The Grammar is defined as a collection of all those AdjectiveLang, NounLang, SentenceLang, and so on modules. LangLang is defined as the collection GrammarLang and LexiconLang and is where you will be checking your program. You may ignore:
|
|
||||||
|
|
||||||
- AllLangAbs, AllLang, ExtendLang, ExtraLangAbs, ExtraLang, ConstructionLang, DocumentationLang, MarkupLang, BackwardLang
|
|
||||||
|
|
||||||
If the language you cloned from has any of these resource modules, you can remove them completely:
|
|
||||||
|
|
||||||
- IrregLang (unless you want to populate it with irregular verbs of your own language), MissingLang (see how to generate your own if you need it later: https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#generating-missingxxx)
|
|
||||||
|
|
||||||
# Relationships between functions in files
|
|
||||||
|
|
||||||
There may be several ways the functions within the files are organised relative to one another. In other words, there may be several schemas depending on the author. More recent RGLs might implement one schema detailed by this blog post by Inari.
|
|
||||||
https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-lincats-and-opers
|
|
||||||
|
|
||||||
# Main goal
|
|
||||||
|
|
||||||
You may think of your long-term goal as eventually implementing all the abstract functions found in the "abstract" folder. In other words, you are somewhat constrained by the available categories in Cat.gf and functions in relevant e.g. Noun.gf, Verb.gf etc. files.
|
|
||||||
|
|
||||||
In the future, if you find that the available functions do not apply to your language, you may search in the Extend.gf file for more optional functions, or in Extra.gf. if it doesn't exist, create your own ExtraLangAbs.gf with the concrete ExtraLang.gf, all in the same directory gf-rgl/src/lang. This blog post contains more information.
|
|
||||||
|
|
||||||
https://inariksit.github.io/gf/2021/02/15/rgl-api-core-extensions.html#language-specific-extra-modules
|
|
||||||
|
|
||||||
There is a prioritised list of RGL functions for new resource grammars written by contributor heatherleaf. You can start by implementing the "+++" functions.
|
|
||||||
|
|
||||||
https://github.com/GrammaticalFramework/gf-rgl/issues/238
|
|
||||||
|
|
||||||
# Working pipeline example
|
|
||||||
|
|
||||||
For a pipeline, You might wish to start with implementing functions that create Noun Phrase like DetCN: Det -> CN -> NP; a function that takes a Determiner and a Common Noun and gives a Noun Phrase. In this case, the workflow is done by editing:
|
|
||||||
|
|
||||||
1. ResLang: Contains the relevant Operations (Opers) for e.g. "Noun", "mkN", "Determiner" and "Quant".
|
|
||||||
2. ParamLang: Contains the language paramters used in ResLang.
|
|
||||||
3. CatLang: CatLang will be defined in terms of Opers found in ResLang. This means that instead of Defining NP in CatLang as, say, {s: Str}, you will define NP as ResLang.NounPhrase, which points to a NounPhrase Oper in ResLang. Then you need to implement the word syntax in NounLang.
|
|
||||||
4. NounLang: Contains the relevant lins in defining sentence structure.
|
|
||||||
5. LexiconLang: Contains the lins that define the Noun words.
|
|
||||||
|
|
||||||
As you will have to define a determiner that is created from a Quant, you will have to look at the following files too.
|
|
||||||
|
|
||||||
6. StructuralLang: Contains the lins that define the Quant/Determiner words.
|
|
||||||
|
|
||||||
Note that you will have to use mkQuant instead of creating Det by mkDet directly.
|
|
||||||
|
|
||||||
# Testing your work
|
|
||||||
|
|
||||||
When you are done with your implementation, you may test that everything works by starting up LangLang and, in this case, writing something like:
|
|
||||||
|
|
||||||
```DetCN (DetQuant xxxx_Quant NumSg) (UseN xxxx_N)```
|
|
||||||
|
|
||||||
Where you replace 'xxxx' with the word in Lang.
|
|
||||||
@@ -13,7 +13,6 @@ fun
|
|||||||
InflectionN : N -> Inflection ;
|
InflectionN : N -> Inflection ;
|
||||||
InflectionN2 : N2 -> Inflection ;
|
InflectionN2 : N2 -> Inflection ;
|
||||||
InflectionN3 : N3 -> Inflection ;
|
InflectionN3 : N3 -> Inflection ;
|
||||||
InflectionPN : PN -> Inflection ;
|
|
||||||
InflectionA : A -> Inflection ;
|
InflectionA : A -> Inflection ;
|
||||||
InflectionA2 : A2 -> Inflection ;
|
InflectionA2 : A2 -> Inflection ;
|
||||||
InflectionV : V -> Inflection ;
|
InflectionV : V -> Inflection ;
|
||||||
@@ -28,9 +27,6 @@ fun
|
|||||||
InflectionV2Q : V2Q -> Inflection ;
|
InflectionV2Q : V2Q -> Inflection ;
|
||||||
InflectionV2A : V2A -> Inflection ;
|
InflectionV2A : V2A -> Inflection ;
|
||||||
InflectionAdv : Adv -> Inflection ;
|
InflectionAdv : Adv -> Inflection ;
|
||||||
InflectionAdV : AdV -> Inflection ;
|
|
||||||
InflectionAdA : AdA -> Inflection ;
|
|
||||||
InflectionAdN : AdN -> Inflection ;
|
|
||||||
InflectionPrep : Prep -> Inflection ;
|
InflectionPrep : Prep -> Inflection ;
|
||||||
|
|
||||||
fun
|
fun
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ abstract Extend = Cat ** {
|
|||||||
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
|
SQuestVPS : NP -> VPS -> QS ; -- has she walked
|
||||||
QuestVPS : IP -> VPS -> QS ; -- who has walked
|
QuestVPS : IP -> VPS -> QS ; -- who has walked
|
||||||
RelVPS : RP -> VPS -> RS ; -- which won't sleep
|
|
||||||
|
|
||||||
-- existentials that work in the absence of Cl
|
-- existentials that work in the absence of Cl
|
||||||
ExistS : Temp -> Pol -> NP -> S ; -- there was a party
|
ExistS : Temp -> Pol -> NP -> S ; -- there was a party
|
||||||
@@ -70,20 +69,11 @@ abstract Extend = Cat ** {
|
|||||||
MkVPS2 : Temp -> Pol -> VPSlash -> VPS2 ; -- has loved
|
MkVPS2 : Temp -> Pol -> VPSlash -> VPS2 ; -- has loved
|
||||||
ConjVPS2 : Conj -> [VPS2] -> VPS2 ; -- has loved and now hates
|
ConjVPS2 : Conj -> [VPS2] -> VPS2 ; -- has loved and now hates
|
||||||
ComplVPS2 : VPS2 -> NP -> VPS ; -- has loved and now hates that person
|
ComplVPS2 : VPS2 -> NP -> VPS ; -- has loved and now hates that person
|
||||||
ReflVPS2 : VPS2 -> RNP -> VPS ; -- have loved and now hate myself and my car
|
|
||||||
|
|
||||||
MkVPI2 : VPSlash -> VPI2 ; -- to love
|
MkVPI2 : VPSlash -> VPI2 ; -- to love
|
||||||
ConjVPI2 : Conj -> [VPI2] -> VPI2 ; -- to love and hate
|
ConjVPI2 : Conj -> [VPI2] -> VPI2 ; -- to love and hate
|
||||||
ComplVPI2 : VPI2 -> NP -> VPI ; -- to love and hate that person
|
ComplVPI2 : VPI2 -> NP -> VPI ; -- to love and hate that person
|
||||||
|
|
||||||
-- Conjunction of copula complements
|
|
||||||
cat [Comp]{2} ;
|
|
||||||
fun ConjComp : Conj -> ListComp -> Comp ;
|
|
||||||
|
|
||||||
-- Conjunction of imperatives
|
|
||||||
cat [Imp] {2} ;
|
|
||||||
fun ConjImp : Conj -> ListImp -> Imp ;
|
|
||||||
|
|
||||||
fun
|
fun
|
||||||
ProDrop : Pron -> Pron ; -- unstressed subject pronoun becomes empty: "am tired"
|
ProDrop : Pron -> Pron ; -- unstressed subject pronoun becomes empty: "am tired"
|
||||||
|
|
||||||
@@ -126,11 +116,6 @@ abstract Extend = Cat ** {
|
|||||||
|
|
||||||
ProgrVPSlash : VPSlash -> VPSlash;
|
ProgrVPSlash : VPSlash -> VPSlash;
|
||||||
|
|
||||||
-- construct VPSlash from A2 and N2
|
|
||||||
|
|
||||||
A2VPSlash : A2 -> VPSlash ; -- is married to (that person)
|
|
||||||
N2VPSlash : N2 -> VPSlash ; -- is a mother of (that person)
|
|
||||||
|
|
||||||
-- 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
|
||||||
@@ -141,7 +126,7 @@ 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 an argument
|
-- generalisation of existential, with adverb as a parameter
|
||||||
AdvIsNP : Adv -> NP -> Cl ; -- here is the tree / here are the trees
|
AdvIsNP : Adv -> NP -> Cl ; -- here is the tree / here are the trees
|
||||||
AdvIsNPAP : Adv -> NP -> AP -> Cl ; -- here are the instructions documented
|
AdvIsNPAP : Adv -> NP -> AP -> Cl ; -- here are the instructions documented
|
||||||
|
|
||||||
@@ -199,15 +184,6 @@ abstract Extend = Cat ** {
|
|||||||
|
|
||||||
PredetRNP : Predet -> RNP -> RNP ; -- all my brothers
|
PredetRNP : Predet -> RNP -> RNP ; -- all my brothers
|
||||||
|
|
||||||
AdvRNP : NP -> Prep -> RNP -> RNP ; -- a dispute with his wife
|
|
||||||
AdvRVP : VP -> Prep -> RNP -> VP ; -- lectured about her travels
|
|
||||||
AdvRAP : AP -> Prep -> RNP -> AP ; -- adamant in his refusal
|
|
||||||
|
|
||||||
ReflA2RNP : A2 -> RNP -> AP ; -- indifferent to their surroundings
|
|
||||||
-- NOTE: generalizes ReflA2
|
|
||||||
|
|
||||||
PossPronRNP : Pron -> Num -> CN -> RNP -> NP ; -- his abandonment of his wife and children
|
|
||||||
|
|
||||||
ConjRNP : Conj -> RNPList -> RNP ; -- my family, John and myself
|
ConjRNP : Conj -> RNPList -> RNP ; -- my family, John and myself
|
||||||
|
|
||||||
Base_rr_RNP : RNP -> RNP -> RNPList ; -- my family, myself
|
Base_rr_RNP : RNP -> RNP -> RNPList ; -- my family, myself
|
||||||
@@ -217,9 +193,6 @@ abstract Extend = Cat ** {
|
|||||||
Cons_nr_RNP : NP -> RNPList -> RNPList ; -- John, my family, myself
|
Cons_nr_RNP : NP -> RNPList -> RNPList ; -- John, my family, myself
|
||||||
---- Cons_rn_RNP : RNP -> ListNP -> RNPList ; -- myself, John, Mary
|
---- Cons_rn_RNP : RNP -> ListNP -> RNPList ; -- myself, John, Mary
|
||||||
|
|
||||||
-- reflexive possessive on its own right, like in Swedish, Czech, Slovak
|
|
||||||
|
|
||||||
ReflPossPron : Quant ; -- Swe sin,sitt,sina
|
|
||||||
|
|
||||||
--- from Extensions
|
--- from Extensions
|
||||||
|
|
||||||
@@ -278,18 +251,4 @@ abstract Extend = Cat ** {
|
|||||||
UttDatIP : IP -> Utt ; -- whom (dative)
|
UttDatIP : IP -> Utt ; -- whom (dative)
|
||||||
|
|
||||||
|
|
||||||
-- UseDAP replaces DetNP from the RGL which is more limited.
|
|
||||||
-- Instead of (DetNP d) use (UseDAP (DetDAP d)). The advantage
|
|
||||||
-- is that now we can also have an adjective inserted, i.e.
|
|
||||||
-- (UseDAP (AdjDAP (DetDAP d) a). There are also versions of
|
|
||||||
-- UseDAP for different genders.
|
|
||||||
fun UseDAP : DAP -> NP ;
|
|
||||||
UseDAPMasc : DAP -> NP ;
|
|
||||||
UseDAPFem : DAP -> NP ;
|
|
||||||
|
|
||||||
cat X ; -- for words that are difficult to classify, mainly for MorphoDict
|
|
||||||
|
|
||||||
fun
|
|
||||||
CardCNCard : Card -> CN -> Card ; -- three million, four lakh, six dozen etc
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ abstract Sentence = Cat ** {
|
|||||||
-- To fix these parameters, see [Phrase Phrase.html].
|
-- To fix these parameters, see [Phrase Phrase.html].
|
||||||
|
|
||||||
ImpVP : VP -> Imp ; -- love yourselves
|
ImpVP : VP -> Imp ; -- love yourselves
|
||||||
AdvImp : Adv -> Imp -> Imp ; -- please love yourselves
|
|
||||||
|
|
||||||
--2 Embedded sentences
|
--2 Embedded sentences
|
||||||
|
|
||||||
|
|||||||
@@ -1,153 +0,0 @@
|
|||||||
--# -path=.:../abstract:../common
|
|
||||||
|
|
||||||
concrete DocumentationAfr of Documentation = CatAfr ** open
|
|
||||||
ResAfr,
|
|
||||||
Prelude,
|
|
||||||
HTML
|
|
||||||
in {
|
|
||||||
|
|
||||||
|
|
||||||
lincat
|
|
||||||
Inflection = {t : Str; s1,s2 : Str} ;
|
|
||||||
Definition = {s : Str} ;
|
|
||||||
Document = {s : Str} ;
|
|
||||||
Tag = {s : Str} ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
InflectionN, InflectionN2, InflectionN3 = \noun -> {
|
|
||||||
t = "s" ;
|
|
||||||
s1 = heading1 "Selfstandige Naamwoord" ;
|
|
||||||
s2 = frameTable (
|
|
||||||
tr (th "Enkelvoud" ++ th "Meervoud" ) ++
|
|
||||||
tr (td (noun.s ! NF Sg Nom) ++ td (noun.s ! NF Pl Nom)))
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionPN = \pn -> {
|
|
||||||
t = "pn" ;
|
|
||||||
s1 = heading1 "Naam" ;
|
|
||||||
s2 = paragraph (pn.s ! NPNom)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionA, InflectionA2 = \adj ->
|
|
||||||
let
|
|
||||||
gforms : AForm -> Str = \a ->
|
|
||||||
td (adj.s ! Posit ! a) ++
|
|
||||||
td (adj.s ! Compar ! a) ++
|
|
||||||
case a of {
|
|
||||||
AGen => td "-" ; -- superlative partitive not used
|
|
||||||
_ => td (adj.s ! Superl ! a)
|
|
||||||
} ;
|
|
||||||
dtable : Str =
|
|
||||||
frameTable (
|
|
||||||
tr (th [] ++ th "Stellend" ++ th "Vergrotend" ++
|
|
||||||
th "Oortreffend") ++
|
|
||||||
tr (th "Predikatief" ++ gforms APred) ++
|
|
||||||
tr (th "Attributief" ++ gforms AAttr) ++
|
|
||||||
tr (th "Partitief" ++ gforms AGen)
|
|
||||||
)
|
|
||||||
in { t = "bv" ;
|
|
||||||
s1 = heading1 "Byvoeglike naamwoord" ;
|
|
||||||
s2 = dtable
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
|
|
||||||
t = "bw" ;
|
|
||||||
s1 = heading1 "Bywoord" ;
|
|
||||||
s2 = paragraph adv.s
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionPrep p = {
|
|
||||||
t = "prep" ;
|
|
||||||
s1 = heading1 "Voorsetsel" ;
|
|
||||||
s2 = paragraph p.s
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV v = {
|
|
||||||
t = "w" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV2 v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV3 v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV2V v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV2S v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV2Q v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV2A v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionVV v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionVS v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionVQ v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionVA v = {
|
|
||||||
t = "v" ;
|
|
||||||
s1 = heading1 "Werkwoord" ;
|
|
||||||
s2 = inflVerb v
|
|
||||||
} ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
NoDefinition t = {s=t.s};
|
|
||||||
MkDefinition t d = {s="<p><b>Definisie:</b>"++t.s++d.s++"</p>"};
|
|
||||||
MkDefinitionEx t d e = {s="<p><b>Definisie:</b>"++t.s++d.s++"</p><p><b>Voorbeeld:</b>"++e.s++"</p>"};
|
|
||||||
|
|
||||||
MkDocument d i e = ss (i.s1 ++ d.s ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
|
||||||
MkTag i = ss i.t ;
|
|
||||||
|
|
||||||
oper
|
|
||||||
inflVerb : VVerb -> Str = \verb ->
|
|
||||||
let
|
|
||||||
vfin : VForm -> Str = \f ->
|
|
||||||
verb.s ! f ++ verb.prefix ;
|
|
||||||
gforms : VForm -> Str = \f ->
|
|
||||||
td (vfin f) ;
|
|
||||||
|
|
||||||
in frameTable (
|
|
||||||
tr (th "Infinitief" ++ td (verb.s ! VInf)) ++
|
|
||||||
tr (th "Teenwoordige Tyd" ++ td (verb.s ! VPres)) ++
|
|
||||||
tr (th "Verlede Tyd" ++ td (verb.s ! VPast)) ++
|
|
||||||
tr (th "Perfectief" ++ td (verb.s ! VPerf))
|
|
||||||
) ;
|
|
||||||
}
|
|
||||||
@@ -2,6 +2,4 @@
|
|||||||
|
|
||||||
concrete LangAfr of Lang =
|
concrete LangAfr of Lang =
|
||||||
GrammarAfr,
|
GrammarAfr,
|
||||||
LexiconAfr
|
LexiconAfr ;
|
||||||
,DocumentationAfr --# notpresent
|
|
||||||
;
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
--# -path=.:alltenses:prelude
|
|
||||||
|
|
||||||
resource CombinatorsMay = Combinators - [ appCN, appCNc ] with
|
|
||||||
(Cat = CatMay),
|
|
||||||
(Structural = StructuralMay),
|
|
||||||
(Noun = NounMay),
|
|
||||||
(Constructors = ConstructorsMay) **
|
|
||||||
{}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
--# -path=.:alltenses:prelude
|
|
||||||
|
|
||||||
resource CombinatorsTam = Combinators - [ appCN, appCNc ] with
|
|
||||||
(Cat = CatTam),
|
|
||||||
(Structural = StructuralTam),
|
|
||||||
(Noun = NounTam),
|
|
||||||
(Constructors = ConstructorsTam) **
|
|
||||||
{}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
--# -path=.:alltenses:prelude:../malay
|
|
||||||
|
|
||||||
resource ConstructorsMay = Constructors with (Grammar = GrammarMay) **
|
|
||||||
open MissingMay in {} ;
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
--# -path=.:alltenses:prelude:../tamil
|
|
||||||
|
|
||||||
resource ConstructorsTam = Constructors with (Grammar = GrammarTam) **
|
|
||||||
open MissingTam in {} ;
|
|
||||||
}
|
|
||||||
@@ -6,9 +6,8 @@ incomplete resource Symbolic = open Symbol, Grammar, PredefCnc in {
|
|||||||
symb : overload {
|
symb : overload {
|
||||||
symb : Symb -> NP ; -- x
|
symb : Symb -> NP ; -- x
|
||||||
symb : Str -> NP ; -- x
|
symb : Str -> NP ; -- x
|
||||||
symb : Int -> NP ; -- 23 (is prime)
|
symb : Int -> NP ; -- 23
|
||||||
symb : Float -> NP ; -- 0.99
|
symb : Float -> NP ; -- 0.99
|
||||||
symb : Int -> Card ; -- 23 (houses)
|
|
||||||
symb : N -> Digits -> NP ; -- level 4
|
symb : N -> Digits -> NP ; -- level 4
|
||||||
symb : N -> Card -> NP ; -- level at least four
|
symb : N -> Card -> NP ; -- level at least four
|
||||||
symb : CN -> Card -> NP ; -- advanced level at least four
|
symb : CN -> Card -> NP ; -- advanced level at least four
|
||||||
@@ -46,8 +45,6 @@ incomplete resource Symbolic = open Symbol, Grammar, PredefCnc in {
|
|||||||
= \i -> UsePN (IntPN i) ;
|
= \i -> UsePN (IntPN i) ;
|
||||||
symb : Float -> NP
|
symb : Float -> NP
|
||||||
= \i -> UsePN (FloatPN i) ;
|
= \i -> UsePN (FloatPN i) ;
|
||||||
symb : Int -> Card
|
|
||||||
= \s -> SymbNum (mkSymb s.s) ;
|
|
||||||
symb : N -> Digits -> NP
|
symb : N -> Digits -> NP
|
||||||
= \c,i -> CNNumNP (UseN c) (NumDigits i) ;
|
= \c,i -> CNNumNP (UseN c) (NumDigits i) ;
|
||||||
symb : N -> Card -> NP
|
symb : N -> Card -> NP
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
--# -path=.:../malay:../common:../abstract:../prelude
|
|
||||||
|
|
||||||
resource SymbolicMay = Symbolic with
|
|
||||||
(Symbol = SymbolMay),
|
|
||||||
(Grammar = GrammarMay) ** open MissingMay in {} ;
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
--# -path=.:../tamil:../common:../abstract:../prelude
|
|
||||||
|
|
||||||
resource SymbolicTam = Symbolic with
|
|
||||||
(Symbol = SymbolTam),
|
|
||||||
(Grammar = GrammarTam) ** open MissingTam in {} ;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
--# -path=.:alltenses:prelude
|
|
||||||
|
|
||||||
instance SyntaxMay of Syntax =
|
|
||||||
ConstructorsMay, CatMay, StructuralMay, CombinatorsMay ;
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
--# -path=.:alltenses:prelude
|
|
||||||
|
|
||||||
instance SyntaxTam of Syntax =
|
|
||||||
ConstructorsTam, CatTam, StructuralTam, CombinatorsTam ;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:../english:../common:../abstract:../prelude
|
--# -path=.:../english:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryEng = SyntaxEng-[mkAdN], LexiconEng, ParadigmsEng - [mkAdv,mkAdN,mkOrd,mkQuant,mkVoc] **
|
resource TryEng = SyntaxEng-[mkAdN], LexiconEng, ParadigmsEng - [mkAdv,mkAdN,mkOrd,mkQuant] **
|
||||||
open (P = ParadigmsEng) in {
|
open (P = ParadigmsEng) in {
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
--# -path=.:../finnish:../common:../abstract:../prelude
|
--# -path=.:../finnish:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryFin =
|
resource TryFin = SyntaxFin, LexiconFin-[mkOrd], ParadigmsFin - [mkAdv,mkAdN,mkDet,mkQuant,mkPConj] ;
|
||||||
SyntaxFin,
|
|
||||||
LexiconFin-[mkOrd],
|
|
||||||
ParadigmsFin - [mkAdv,mkAdN,mkDet,mkQuant,mkPConj],
|
|
||||||
MakeStructuralFin - [mkDet,mkIDet,mkConj,mkSubj]
|
|
||||||
;
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
--# -path=.:../malay:../common:../abstract:../prelude
|
|
||||||
|
|
||||||
resource TryMay = SyntaxMay, LexiconMay, ParadigmsMay - [mkAdv,mkAdN,mkOrd,mkNum] ;
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../russian:../common:../abstract:../prelude
|
--# -path=.:../russian:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryRus = SyntaxRus, LexiconRus, ParadigmsRus - [mkAdv,mkIAdv,mkOrd,mkAdN] ;
|
resource TryRus = SyntaxRus, LexiconRus, ParadigmsRus - [mkAdv] ;
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
--# -path=.:../tamil :../common:../abstract:../prelude
|
|
||||||
|
|
||||||
resource TryTam = SyntaxTam, LexiconTam, ParadigmsTam - [mkAdv,mkAdN,mkOrd,mkNum] ;
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../abstract:../common:../api:../prelude
|
--# -path=.:../abstract:../common:../api:../prelude
|
||||||
|
|
||||||
concrete AllAra of AllAraAbs = LangAra, ExtendAra ;
|
concrete AllAra of AllAraAbs = LangAra ;
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../abstract:../common:prelude
|
--# -path=.:../abstract:../common:prelude
|
||||||
|
|
||||||
abstract AllAraAbs = Lang, Extend ;
|
abstract AllAraAbs = Lang ;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ concrete ExtendAra of Extend =
|
|||||||
EmptyRelSlash, PredAPVP,
|
EmptyRelSlash, PredAPVP,
|
||||||
ComplDirectVS, ComplDirectVQ, -- because of Utt
|
ComplDirectVS, ComplDirectVQ, -- because of Utt
|
||||||
VPS, MkVPS, PredVPS, BaseVPS, ConsVPS, ConjVPS,
|
VPS, MkVPS, PredVPS, BaseVPS, ConsVPS, ConjVPS,
|
||||||
EmbedSSlash, AdjAsNP, GerundNP
|
EmbedSSlash, AdjAsNP
|
||||||
]
|
]
|
||||||
with (Grammar=GrammarAra)
|
with (Grammar=GrammarAra)
|
||||||
** open
|
** open
|
||||||
@@ -59,11 +59,6 @@ lin
|
|||||||
-- : SSlash -> SC
|
-- : SSlash -> SC
|
||||||
EmbedSSlash = Grammar.EmbedS ;
|
EmbedSSlash = Grammar.EmbedS ;
|
||||||
|
|
||||||
-- : VP -> NP
|
|
||||||
GerundNP vp = emptyNP ** {
|
|
||||||
s = \\_ => uttVP VPGer vp ! Masc ; -- NB. NP should inflect in case, but there are no cases for masdar in the inflection table of VP. If desired, can add here with BIND. /IL
|
|
||||||
} ; -- The Gender param here doesn't make a difference, because the VPGer in VP's inflection table doesn't have gender to start with. So we could equally well choose Fem too.
|
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
VPS = {s : PerGenNum => Str} ; -- finite VP's with tense and polarity
|
VPS = {s : PerGenNum => Str} ; -- finite VP's with tense and polarity
|
||||||
[VPS] = {s1,s2 : PerGenNum => Str} ;
|
[VPS] = {s1,s2 : PerGenNum => Str} ;
|
||||||
|
|||||||
@@ -1,28 +1,31 @@
|
|||||||
incomplete concrete PhraseBantu of Phrase =
|
incomplete concrete PhraseBantu of Phrase =
|
||||||
CatBantu ** open CommonBantu, ResBantu, Prelude in {
|
CatBantu ** open CommonBantu, ResBantu, Prelude in { }
|
||||||
|
{-}
|
||||||
|
flags optimize = all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
||||||
|
|
||||||
UttS s = {s = s.s} ;
|
UttS s = {s = s.s ! Indic} ;
|
||||||
UttQS qs = {s = qs.s ! QDir} ;
|
UttQS qs = {s = qs.s ! QDir} ;
|
||||||
{- UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False ! Fem} ;
|
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False ! Fem} ;
|
||||||
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False ! Fem} ;
|
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False ! Fem} ;
|
||||||
UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True ! Fem} ;
|
UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True ! Fem} ;
|
||||||
|
|
||||||
UttIP ip = {s = ip.s ! Nom} ; --- Acc also -}
|
UttIP ip = {s = ip.s ! Nom} ; --- Acc also
|
||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
UttNP np = {s = np.s ! npNom} ;
|
UttNP np = {s = (np.s ! Nom).ton} ;
|
||||||
{- UttVP vp = {s = infVP vp (agrP3 Fem Sg)} ; --- Agr -}
|
UttVP vp = {s = infVP vp (agrP3 Fem Sg)} ; --- Agr
|
||||||
UttAdv adv = adv ;
|
UttAdv adv = adv ;
|
||||||
UttCN n = {s = n.s ! Sg ! Nom} ;
|
UttCN n = {s = n.s ! Sg} ;
|
||||||
{- UttAP ap = {s = ap.s ! AF Masc Sg} ;
|
UttAP ap = {s = ap.s ! AF Masc Sg} ;
|
||||||
UttCard n = {s = n.s ! Masc} ;-}
|
UttCard n = {s = n.s ! Masc} ;
|
||||||
UttInterj i = i ;
|
UttInterj i = i ;
|
||||||
|
|
||||||
NoPConj = {s = []} ;
|
NoPConj = {s = []} ;
|
||||||
PConjConj conj = {s = conj.s2} ;
|
PConjConj conj = {s = conj.s2} ;
|
||||||
|
|
||||||
NoVoc = {s = []} ;
|
NoVoc = {s = []} ;
|
||||||
{- VocNP np = {s = "," ++ (np.s ! Nom).ton} ; -}
|
VocNP np = {s = "," ++ (np.s ! Nom).ton} ;
|
||||||
}
|
|
||||||
|
-}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
|
concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PositA a = {
|
PositA a = {
|
||||||
@@ -9,11 +9,11 @@ concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComparA a np = {
|
ComparA a np = {
|
||||||
s = \\aform,_ => "по" ++ hyphen ++ a.s ! aform ++ "от" ++ np.s ! RObj CPrep ;
|
s = \\aform,_ => "ïî" ++ hyphen ++ a.s ! aform ++ "îò" ++ np.s ! RObj CPrep ;
|
||||||
isPre = True
|
isPre = True
|
||||||
} ;
|
} ;
|
||||||
UseComparA a = {
|
UseComparA a = {
|
||||||
s = \\aform,_ => "по" ++ hyphen ++ a.s ! aform ;
|
s = \\aform,_ => "ïî" ++ hyphen ++ a.s ! aform ;
|
||||||
isPre = True
|
isPre = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
ReflA2 a = {
|
ReflA2 a = {
|
||||||
s = \\aform,_ => a.s ! aform ++ linPrep a.c2 ++ ["себе си"] ;
|
s = \\aform,_ => a.s ! aform ++ linPrep a.c2 ++ ["ñåáå ñè"] ;
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in {
|
concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PositAdvAdj a = {s = a.adv} ;
|
PositAdvAdj a = {s = a.adv} ;
|
||||||
@@ -8,7 +8,7 @@ concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in {
|
|||||||
s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ np.s ! RObj CPrep
|
s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ np.s ! RObj CPrep
|
||||||
} ;
|
} ;
|
||||||
ComparAdvAdjS cadv a s = {
|
ComparAdvAdjS cadv a s = {
|
||||||
s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ "колкото" ++ s.s
|
s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ "êîëêîòî" ++ s.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PrepNP prep np = {s = prep.s ++ np.s ! RObj prep.c} ;
|
PrepNP prep np = {s = prep.s ++ np.s ! RObj prep.c} ;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (
|
|||||||
N = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ;
|
N = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ;
|
||||||
N2 = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ** {c2 : Preposition} ;
|
N2 = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ** {c2 : Preposition} ;
|
||||||
N3 = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ** {c2,c3 : Preposition} ;
|
N3 = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ** {c2,c3 : Preposition} ;
|
||||||
PN = {s : Str; gn : GenNum} ;
|
PN = {s : Str; g : Gender} ;
|
||||||
|
|
||||||
lindef
|
lindef
|
||||||
SSlash = \s -> {s = \\_ => s; c2 = {s=""; c=Acc}};
|
SSlash = \s -> {s = \\_ => s; c2 = {s=""; c=Acc}};
|
||||||
|
|||||||
@@ -4,21 +4,21 @@ concrete CompatibilityBul of Compatibility = CatBul ** open Prelude, ResBul in {
|
|||||||
|
|
||||||
-- from Noun 19/4/2008
|
-- from Noun 19/4/2008
|
||||||
flags
|
flags
|
||||||
coding = utf8 ;
|
coding = cp1251 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
NumInt n = {s = \\_ => n.s; n = Pl; nonEmpty = True} ;
|
NumInt n = {s = \\_ => n.s; n = Pl; nonEmpty = True} ;
|
||||||
OrdInt n = {s = \\aform => n.s ++ "-" ++
|
OrdInt n = {s = \\aform => n.s ++ "-" ++
|
||||||
case aform of {
|
case aform of {
|
||||||
ASg Masc Indef => "ти" ;
|
ASg Masc Indef => "òè" ;
|
||||||
ASg Fem Indef => "та" ;
|
ASg Fem Indef => "òà" ;
|
||||||
ASg Neut Indef => "то" ;
|
ASg Neut Indef => "òî" ;
|
||||||
ASg Masc Def => "тия" ;
|
ASg Masc Def => "òèÿ" ;
|
||||||
ASg Fem Def => "тата" ;
|
ASg Fem Def => "òàòà" ;
|
||||||
ASg Neut Def => "тото" ;
|
ASg Neut Def => "òîòî" ;
|
||||||
ASgMascDefNom => "тият" ;
|
ASgMascDefNom => "òèÿò" ;
|
||||||
APl Indef => "ти" ;
|
APl Indef => "òè" ;
|
||||||
APl Def => "тите"
|
APl Def => "òèòå"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete ConjunctionBul of Conjunction =
|
concrete ConjunctionBul of Conjunction =
|
||||||
CatBul ** open ResBul, Coordination, Prelude, Predef in {
|
CatBul ** open ResBul, Coordination, Prelude, Predef in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|||||||
@@ -79,19 +79,6 @@ lin
|
|||||||
s3 = ""
|
s3 = ""
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
InflectionPN = \pn -> {
|
|
||||||
t = "същ.с." ;
|
|
||||||
s1= heading1 ("Съществително Собствено"++
|
|
||||||
case pn.gn of {
|
|
||||||
GSg Masc => "(м.р.)" ;
|
|
||||||
GSg Fem => "(ж.р.)" ;
|
|
||||||
GSg Neut => "(ср.р.)" ;
|
|
||||||
GPl => "(мн.ч.)"
|
|
||||||
}) ;
|
|
||||||
s2 = pn.s ;
|
|
||||||
s3 = ""
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionA, InflectionA2 = \a -> {
|
InflectionA, InflectionA2 = \a -> {
|
||||||
t = "пр" ;
|
t = "пр" ;
|
||||||
s1= heading1 ("Прилагателно") ;
|
s1= heading1 ("Прилагателно") ;
|
||||||
@@ -117,7 +104,7 @@ lin
|
|||||||
s3= ""
|
s3= ""
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
|
InflectionAdv = \adv -> {
|
||||||
t = "нар" ;
|
t = "нар" ;
|
||||||
s1= heading1 ("Наречие") ;
|
s1= heading1 ("Наречие") ;
|
||||||
s2= paragraph (adv.s) ;
|
s2= paragraph (adv.s) ;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
--# -path=.:../abstract:../common:prelude
|
--# -path=.:../abstract:../common:prelude
|
||||||
concrete ExtendBul of Extend = CatBul ** open Prelude, Predef, ResBul, GrammarBul, MorphoFunsBul in {
|
concrete ExtendBul of Extend = CatBul ** open Prelude, Predef, ResBul, GrammarBul, MorphoFunsBul in {
|
||||||
flags
|
|
||||||
coding=utf8;
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP (mkPrep "на") np)) ;
|
GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP (mkPrep "на") np)) ;
|
||||||
@@ -96,10 +94,6 @@ lin
|
|||||||
lin
|
lin
|
||||||
PassVPSlash vp = insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++
|
PassVPSlash vp = insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++
|
||||||
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ;
|
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ;
|
||||||
ProgrVPSlash vp = vp ** {
|
|
||||||
s = \\_ => vp.s ! Imperf ;
|
|
||||||
isSimple = False
|
|
||||||
} ;
|
|
||||||
|
|
||||||
PassAgentVPSlash vp np =
|
PassAgentVPSlash vp np =
|
||||||
insertObj (\\_ => "от" ++ np.s ! RObj CPrep) Pos
|
insertObj (\\_ => "от" ++ np.s ! RObj CPrep) Pos
|
||||||
@@ -123,21 +117,6 @@ lin
|
|||||||
vp.compl ! agr
|
vp.compl ! agr
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lincat
|
|
||||||
VPI = {s : Agr => Str} ;
|
|
||||||
[VPI] = {s : Agr => Ints 4 => Str} ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
BaseVPI x y = {s = \\a=>table {4 => y.s!a; _ => x.s!a}} ;
|
|
||||||
ConsVPI x xs = {s = \\a=>table {4 => xs.s!a!4; t => x.s!a++linCoord bindComma!t++xs.s!a!t}};
|
|
||||||
|
|
||||||
MkVPI vp = {s = daComplex Simul Pos vp ! Perf} ;
|
|
||||||
ConjVPI conj vpi = {
|
|
||||||
s = \\a => linCoord []!conj.sep ++ vpi.s!a!conj.sep ++ conj.s ++ vpi.s!a!4
|
|
||||||
} ;
|
|
||||||
ComplVPIVV vv vpi =
|
|
||||||
insertObj (\\a => vpi.s ! a) Pos (predV vv) ;
|
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
VPS = {s : Agr => Str} ;
|
VPS = {s : Agr => Str} ;
|
||||||
[VPS] = {s : Agr => Ints 4 => Str} ;
|
[VPS] = {s : Agr => Ints 4 => Str} ;
|
||||||
@@ -159,25 +138,6 @@ lin
|
|||||||
s = \\a => linCoord []!conj.sep ++ vps.s!a!conj.sep ++ conj.s ++ vps.s!a!4
|
s = \\a => linCoord []!conj.sep ++ vps.s!a!conj.sep ++ conj.s ++ vps.s!a!4
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lincat [Comp] = {s : Agr => Ints 4 => Str} ;
|
|
||||||
lin BaseComp x y =
|
|
||||||
{s = \\agr=>table {4 => y.s!agr; _ => x.s!agr}} ;
|
|
||||||
ConsComp x xs =
|
|
||||||
{s = \\agr=>table {4 => xs.s!agr!4; t => x.s!agr++linCoord bindComma!t++xs.s!agr!t}} ;
|
|
||||||
ConjComp conj ss = {
|
|
||||||
s = \\agr => linCoord [] ! conj.sep ++ ss.s!agr!conj.sep ++ conj.s ++ ss.s!agr!4 ;
|
|
||||||
p = Pos
|
|
||||||
} ;
|
|
||||||
|
|
||||||
lincat ListImp = {s : Polarity => GenNum => Ints 4 => Str} ;
|
|
||||||
lin BaseImp x y =
|
|
||||||
{s = \\p,gn=>table {4 => y.s!p!gn; _ => x.s!p!gn}} ;
|
|
||||||
ConsImp x xs =
|
|
||||||
{s = \\p,gn=>table {4 => xs.s!p!gn!4; t => x.s!p!gn++linCoord bindComma!t++xs.s!p!gn!t}} ;
|
|
||||||
ConjImp conj ss = {
|
|
||||||
s = \\p,gn => linCoord [] ! conj.sep ++ ss.s!p!gn!conj.sep ++ conj.s ++ ss.s!p!gn!4
|
|
||||||
} ;
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
ComplBareVS = ComplVS ;
|
ComplBareVS = ComplVS ;
|
||||||
ComplSlashPartLast = ComplSlash ;
|
ComplSlashPartLast = ComplSlash ;
|
||||||
@@ -227,20 +187,6 @@ lin
|
|||||||
gn = rnp.gn
|
gn = rnp.gn
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvRNP np prep rnp = {s = \\role => np.s ! role ++ prep.s ++ rnp.s ! RObj prep.c; gn = np.gn; p = np.p} ;
|
|
||||||
AdvRVP vp prep rnp = insertObj (\\a => prep.s ++ rnp.s ! RObj prep.c) Pos vp ;
|
|
||||||
AdvRAP ap prep rnp = {
|
|
||||||
s = \\aform,p => ap.s ! aform ! p ++ prep.s ++ rnp.s ! RObj prep.c ;
|
|
||||||
isPre = False
|
|
||||||
} ;
|
|
||||||
|
|
||||||
ReflA2RNP a rnp = {
|
|
||||||
s = \\aform,_ => a.s ! aform ++ a.c2.s ++ rnp.s ! RObj a.c2.c ;
|
|
||||||
isPre = False
|
|
||||||
} ;
|
|
||||||
|
|
||||||
PossPronRNP pron num cn rnp = DetCN (DetQuant (PossPron pron) num) (PossNP cn (lin NP {s = rnp.s; gn = rnp.gn; p=NounP3 Pos})) ;
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
ApposNP np1 np2 = {s = \\role => case role of {
|
ApposNP np1 np2 = {s = \\role => case role of {
|
||||||
RObj c => linCase c (personPol np1.p) ++ np1.s ! RObj CPrep ;
|
RObj c => linCase c (personPol np1.p) ++ np1.s ! RObj CPrep ;
|
||||||
@@ -270,35 +216,5 @@ lin
|
|||||||
p = NounP3 det.p
|
p = NounP3 det.p
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lin UseDAP dap = {
|
|
||||||
s = \\role => let s = dap.s ! False ! ANeut ! role
|
|
||||||
in case role of {
|
|
||||||
RObj c => linCase c dap.p ++ s;
|
|
||||||
_ => s
|
|
||||||
} ;
|
|
||||||
gn = gennum ANeut (numnnum dap.nn);
|
|
||||||
p = NounP3 dap.p
|
|
||||||
} ;
|
|
||||||
|
|
||||||
UseDAPMasc dap = {
|
|
||||||
s = \\role => let s = dap.s ! False ! (AMasc Human) ! role
|
|
||||||
in case role of {
|
|
||||||
RObj c => linCase c dap.p ++ s;
|
|
||||||
_ => s
|
|
||||||
} ;
|
|
||||||
gn = gennum (AMasc Human) (numnnum dap.nn);
|
|
||||||
p = NounP3 dap.p
|
|
||||||
} ;
|
|
||||||
|
|
||||||
UseDAPFem dap = {
|
|
||||||
s = \\role => let s = dap.s ! False ! AFem ! role
|
|
||||||
in case role of {
|
|
||||||
RObj c => linCase c dap.p ++ s;
|
|
||||||
_ => s
|
|
||||||
} ;
|
|
||||||
gn = gennum AFem (numnnum dap.nn);
|
|
||||||
p = NounP3 dap.p
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete ExtraBul of ExtraBulAbs = CatBul **
|
concrete ExtraBul of ExtraBulAbs = CatBul **
|
||||||
open ResBul, MorphoFunsBul, Coordination, Prelude, Predef in {
|
open ResBul, MorphoFunsBul, Coordination, Prelude, Predef in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
@@ -30,21 +30,21 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
|
|||||||
s = \\t,a,p,agr => slash.c2.s ++ whichRP ! agr.gn ++ slash.s ! agr ! t ! a ! p ! Main
|
s = \\t,a,p,agr => slash.c2.s ++ whichRP ! agr.gn ++ slash.s ! agr ! t ! a ! p ! Main
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
i8fem_Pron = mkPron "аз" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Fem) PronP1 ;
|
i8fem_Pron = mkPron "àç" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Fem) PronP1 ;
|
||||||
i8neut_Pron = mkPron "аз" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Neut) PronP1 ;
|
i8neut_Pron = mkPron "àç" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Neut) PronP1 ;
|
||||||
|
|
||||||
whatSg8fem_IP = mkIP "каква" "каква" (GSg Fem) ;
|
whatSg8fem_IP = mkIP "êàêâà" "êàêâà" (GSg Fem) ;
|
||||||
whatSg8neut_IP = mkIP "какво" "какво" (GSg Neut) ;
|
whatSg8neut_IP = mkIP "êàêâî" "êàêâî" (GSg Neut) ;
|
||||||
|
|
||||||
whoSg8fem_IP = mkIP "коя" "кого" (GSg Fem) ;
|
whoSg8fem_IP = mkIP "êîÿ" "êîãî" (GSg Fem) ;
|
||||||
whoSg8neut_IP = mkIP "кое" "кого" (GSg Neut) ;
|
whoSg8neut_IP = mkIP "êîå" "êîãî" (GSg Neut) ;
|
||||||
|
|
||||||
youSg8fem_Pron = mkPron "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Fem) PronP2 ;
|
youSg8fem_Pron = mkPron "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Fem) PronP2 ;
|
||||||
youSg8neut_Pron = mkPron "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Neut) PronP2 ;
|
youSg8neut_Pron = mkPron "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Neut) PronP2 ;
|
||||||
|
|
||||||
onePl_Num = {s = table {
|
onePl_Num = {s = table {
|
||||||
CFMasc Indef _ | CFFem Indef | CFNeut Indef => "едни" ;
|
CFMasc Indef _ | CFFem Indef | CFNeut Indef => "åäíè" ;
|
||||||
CFMasc Def _ | CFMascDefNom _ | CFFem Def | CFNeut Def => "едните"
|
CFMasc Def _ | CFMascDefNom _ | CFFem Def | CFNeut Def => "åäíèòå"
|
||||||
} ;
|
} ;
|
||||||
nn = NCountable;
|
nn = NCountable;
|
||||||
nonEmpty = True
|
nonEmpty = True
|
||||||
@@ -53,7 +53,22 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
|
|||||||
UttImpSg8fem pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
|
UttImpSg8fem pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
|
||||||
UttImpSg8neut pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
|
UttImpSg8neut pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
|
||||||
|
|
||||||
IAdvAdv adv = {s = \\qf => (mkIAdv "колко").s ! qf ++ adv.s} ;
|
IAdvAdv adv = {s = \\qf => (mkIAdv "êîëêî").s ! qf ++ adv.s} ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
VPI = {s : Agr => Str} ;
|
||||||
|
[VPI] = {s : Agr => Ints 4 => Str} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
BaseVPI x y = {s = \\a=>table {4 => y.s!a; _ => x.s!a}} ;
|
||||||
|
ConsVPI x xs = {s = \\a=>table {4 => xs.s!a!4; t => x.s!a++linCoord bindComma!t++xs.s!a!t}};
|
||||||
|
|
||||||
|
MkVPI vp = {s = daComplex Simul Pos vp ! Perf} ;
|
||||||
|
ConjVPI conj vpi = {
|
||||||
|
s = \\a => linCoord []!conj.sep ++ vpi.s!a!conj.sep ++ conj.s ++ vpi.s!a!4
|
||||||
|
} ;
|
||||||
|
ComplVPIVV vv vpi =
|
||||||
|
insertObj (\\a => vpi.s ! a) Pos (predV vv) ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
VPS = {s : Agr => Str} ;
|
VPS = {s : Agr => Str} ;
|
||||||
@@ -80,7 +95,7 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
|
|||||||
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ;
|
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ;
|
||||||
|
|
||||||
PassAgentVPSlash vp np =
|
PassAgentVPSlash vp np =
|
||||||
insertObj (\\_ => "от" ++ np.s ! RObj CPrep) Pos
|
insertObj (\\_ => "îò" ++ np.s ! RObj CPrep) Pos
|
||||||
(insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++
|
(insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++
|
||||||
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe)) ;
|
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe)) ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
abstract ExtraBulAbs = Extra ** {
|
abstract ExtraBulAbs = Extra ** {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
fun
|
fun
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--# -path=.:../abstract:../common:prelude
|
--# -path=.:../abstract:../common:prelude
|
||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
|
|
||||||
concrete GrammarBul of Grammar =
|
concrete GrammarBul of Grammar =
|
||||||
NounBul,
|
NounBul,
|
||||||
@@ -17,7 +17,7 @@ concrete GrammarBul of Grammar =
|
|||||||
IdiomBul,
|
IdiomBul,
|
||||||
TenseX - [CAdv,IAdv,AdV,SC]
|
TenseX - [CAdv,IAdv,AdV,SC]
|
||||||
** {
|
** {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
ImpersCl vp = mkClause [] (GSg Neut) (NounP3 Pos) vp ;
|
ImpersCl vp = mkClause [] (GSg Neut) (NounP3 Pos) vp ;
|
||||||
GenericCl vp = mkClause "някой" (GSg Neut) (NounP3 Pos) vp ;
|
GenericCl vp = mkClause "íÿêîé" (GSg Neut) (NounP3 Pos) vp ;
|
||||||
|
|
||||||
CleftNP np rs =
|
CleftNP np rs =
|
||||||
mkClause (np.s ! RSubj)
|
mkClause (np.s ! RSubj)
|
||||||
(GSg Neut) np.p
|
(GSg Neut) np.p
|
||||||
(insertObj (\\_ => thisRP ! np.gn ++ rs.s ! personAgr np.gn np.p) (personPol np.p) (predV verbBe)) ;
|
(insertObj (\\_ => thisRP ! np.gn ++ rs.s ! personAgr np.gn np.p) (personPol np.p) (predV verbBe)) ;
|
||||||
|
|
||||||
CleftAdv ad s = {s = \\t,a,p,o => case p of {Pos=>[]; Neg=>"не"} ++ ad.s ++ s.s } ;
|
CleftAdv ad s = {s = \\t,a,p,o => case p of {Pos=>[]; Neg=>"íå"} ++ ad.s ++ s.s } ;
|
||||||
|
|
||||||
ExistNP np = ExistNPAdv np (lin Adv {s = ""}) ;
|
ExistNP np = ExistNPAdv np (lin Adv {s = ""}) ;
|
||||||
ExistIP ip = ExistIPAdv ip (lin Adv {s = ""}) ;
|
ExistIP ip = ExistIPAdv ip (lin Adv {s = ""}) ;
|
||||||
@@ -21,8 +21,8 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
|||||||
ExistNPAdv np adv =
|
ExistNPAdv np adv =
|
||||||
{ s = \\t,a,p,o =>
|
{ s = \\t,a,p,o =>
|
||||||
let verb = case orPol p (personPol np.p) of {
|
let verb = case orPol p (personPol np.p) of {
|
||||||
Pos => mkV186 "имам" ;
|
Pos => mkV186 "èìàì" ;
|
||||||
Neg => mkV186 "нямам"
|
Neg => mkV186 "íÿìàì"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
agr=agrP3 (GSg Neut);
|
agr=agrP3 (GSg Neut);
|
||||||
@@ -42,21 +42,21 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
|||||||
<Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
|
<Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
|
||||||
<Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
|
<Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
|
||||||
<Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
<Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
||||||
<Fut, Simul> => {aux1="ще"; aux2=[]; main=present} ; --# notpresent
|
<Fut, Simul> => {aux1="ùå"; aux2=[]; main=present} ; --# notpresent
|
||||||
<Fut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; --# notpresent
|
<Fut, Anter> => {aux1="ùå"++auxPres; aux2=[]; main=perfect} ; --# notpresent
|
||||||
<Cond,_> => {aux1=auxCondS; aux2=[]; main=perfect} --# notpresent
|
<Cond,_> => {aux1=auxCondS; aux2=[]; main=perfect} --# notpresent
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
in case o of {
|
in case o of {
|
||||||
Main => v.aux1 ++ v.main ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s ;
|
Main => v.aux1 ++ v.main ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s ;
|
||||||
Inv => np.s ! RObj Acc ++ v.aux1 ++ v.main ++ v.aux2 ++ adv.s ;
|
Inv => np.s ! RObj Acc ++ v.aux1 ++ v.main ++ v.aux2 ++ adv.s ;
|
||||||
Quest => v.aux1 ++ v.main ++ "ли" ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s
|
Quest => v.aux1 ++ v.main ++ "ëè" ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ExistIPAdv ip adv =
|
ExistIPAdv ip adv =
|
||||||
mkQuestion {s = ip.s ! RSubj}
|
mkQuestion {s = ip.s ! RSubj}
|
||||||
(mkClause "тук" ip.gn (NounP3 Pos) (insertObj (\\_ => adv.s) Pos (predV verbBe))) ;
|
(mkClause "òóê" ip.gn (NounP3 Pos) (insertObj (\\_ => adv.s) Pos (predV verbBe))) ;
|
||||||
|
|
||||||
ProgrVP vp = {
|
ProgrVP vp = {
|
||||||
s = \\_ => vp.s ! Imperf ;
|
s = \\_ => vp.s ! Imperf ;
|
||||||
@@ -68,6 +68,6 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
|||||||
isSimple = False
|
isSimple = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ImpPl1 vp = {s = "нека" ++ daComplex Simul Pos vp ! Perf ! {gn = GPl ; p = P1}} ;
|
ImpPl1 vp = {s = "íåêà" ++ daComplex Simul Pos vp ! Perf ! {gn = GPl ; p = P1}} ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,383 +1,383 @@
|
|||||||
--# -path=.:prelude
|
--# -path=.:prelude
|
||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
|
|
||||||
concrete LexiconBul of Lexicon = CatBul **
|
concrete LexiconBul of Lexicon = CatBul **
|
||||||
open ParadigmsBul, ResBul, Prelude in {
|
open ParadigmsBul, ResBul, Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags
|
flags
|
||||||
optimize=values ;
|
optimize=values ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
airplane_N = mkN007 "самолет" ;
|
airplane_N = mkN007 "ñàìîëåò" ;
|
||||||
answer_V2S = mkV2S (actionV (mkV187 "отговарям") (mkV173 "отговоря")) naP noPrep ;
|
answer_V2S = mkV2S (actionV (mkV187 "îòãîâàðÿì") (mkV173 "îòãîâîðÿ")) naP noPrep ;
|
||||||
apartment_N = mkN007 "апартамент" ;
|
apartment_N = mkN007 "àïàðòàìåíò" ;
|
||||||
apple_N = mkN041 "ябълка" ;
|
apple_N = mkN041 "ÿáúëêà" ;
|
||||||
art_N = mkN054 "изкуство" ;
|
art_N = mkN054 "èçêóñòâî" ;
|
||||||
ask_V2Q = mkV2Q (stateV (mkV186 "питам")) noPrep noPrep ;
|
ask_V2Q = mkV2Q (stateV (mkV186 "ïèòàì")) noPrep noPrep ;
|
||||||
baby_N = mkN065 "бебе" ;
|
baby_N = mkN065 "áåáå" ;
|
||||||
bad_A = mkA076 "лош" ;
|
bad_A = mkA076 "ëîø" ;
|
||||||
bank_N = mkN041 "банка" ;
|
bank_N = mkN041 "áàíêà" ;
|
||||||
beautiful_A = mkA076 "красив" ;
|
beautiful_A = mkA076 "êðàñèâ" ;
|
||||||
become_VA = mkVA (actionV (mkV186 "ставам") (mkV152 "стана")) ;
|
become_VA = mkVA (actionV (mkV186 "ñòàâàì") (mkV152 "ñòàíà")) ;
|
||||||
beer_N = mkN041 "бира" ;
|
beer_N = mkN041 "áèðà" ;
|
||||||
beg_V2V = mkV2V (stateV (mkV173 "моля")) noPrep zaP ;
|
beg_V2V = mkV2V (stateV (mkV173 "ìîëÿ")) noPrep zaP ;
|
||||||
big_A = mkA081 "голям" ;
|
big_A = mkA081 "ãîëÿì" ;
|
||||||
bike_N = mkN061 "колело" ;
|
bike_N = mkN061 "êîëåëî" ;
|
||||||
bird_N = mkN041 "птица" ;
|
bird_N = mkN041 "ïòèöà" ;
|
||||||
black_A = mkA079 "черен" ;
|
black_A = mkA079 "÷åðåí" ;
|
||||||
blue_A = mkA086 "син" ;
|
blue_A = mkA086 "ñèí" ;
|
||||||
boat_N = mkN007 "кораб" ;
|
boat_N = mkN007 "êîðàá" ;
|
||||||
book_N = mkN041 "книга" ;
|
book_N = mkN041 "êíèãà" ;
|
||||||
boot_N = mkN041 "обувка" ;
|
boot_N = mkN041 "îáóâêà" ;
|
||||||
boss_N = mkN001 "шеф" ;
|
boss_N = mkN001 "øåô" ;
|
||||||
boy_N = mkN065 "момче" ;
|
boy_N = mkN065 "ìîì÷å" ;
|
||||||
bread_N = mkN001 "хляб" ;
|
bread_N = mkN001 "õëÿá" ;
|
||||||
break_V2 = dirV2 (actionV (mkV173 "чупя") (mkV173 "счупя")) ;
|
break_V2 = dirV2 (actionV (mkV173 "÷óïÿ") (mkV173 "ñ÷óïÿ")) ;
|
||||||
broad_A = mkA079 "обширен" ;
|
broad_A = mkA079 "îáøèðåí" ;
|
||||||
brother_N2 = prepN2 (mkN025 "брат") naP ;
|
brother_N2 = prepN2 (mkN025 "áðàò") naP ;
|
||||||
brown_A = mkA076 "кафяв" ;
|
brown_A = mkA076 "êàôÿâ" ;
|
||||||
butter_N = mkN054 "масло" ;
|
butter_N = mkN054 "ìàñëî" ;
|
||||||
buy_V2 = dirV2 (actionV (mkV186 "купувам") (mkV173 "купя")) ;
|
buy_V2 = dirV2 (actionV (mkV186 "êóïóâàì") (mkV173 "êóïÿ")) ;
|
||||||
camera_N = mkN041 "камера" ;
|
camera_N = mkN041 "êàìåðà" ;
|
||||||
cap_N = mkN041 "шапка" ;
|
cap_N = mkN041 "øàïêà" ;
|
||||||
car_N = mkN041 "кола" ;
|
car_N = mkN041 "êîëà" ;
|
||||||
carpet_N = mkN007 "килим" ;
|
carpet_N = mkN007 "êèëèì" ;
|
||||||
cat_N = mkN041 "котка" ;
|
cat_N = mkN041 "êîòêà" ;
|
||||||
ceiling_N = mkN007 "таван" ;
|
ceiling_N = mkN007 "òàâàí" ;
|
||||||
chair_N = mkN001 "стол" ;
|
chair_N = mkN001 "ñòîë" ;
|
||||||
cheese_N = mkN066 "сирене" ;
|
cheese_N = mkN066 "ñèðåíå" ;
|
||||||
child_N = mkN067 "дете" ;
|
child_N = mkN067 "äåòå" ;
|
||||||
church_N = mkN041 "църква" ;
|
church_N = mkN041 "öúðêâà" ;
|
||||||
city_N = mkN001 "град" ;
|
city_N = mkN001 "ãðàä" ;
|
||||||
clean_A = mkA076 "чист" ;
|
clean_A = mkA076 "÷èñò" ;
|
||||||
clever_A = mkA079 "умен" ;
|
clever_A = mkA079 "óìåí" ;
|
||||||
close_V2 = dirV2 (actionV (mkV187 "затварям") (mkV173 "затворя")) ;
|
close_V2 = dirV2 (actionV (mkV187 "çàòâàðÿì") (mkV173 "çàòâîðÿ")) ;
|
||||||
coat_N = mkN054 "палто" ;
|
coat_N = mkN054 "ïàëòî" ;
|
||||||
cold_A = mkA076 "студен" ;
|
cold_A = mkA076 "ñòóäåí" ;
|
||||||
come_V = actionV (mkV186 "идвам") (table { -- special case "дойди", "дойдете" are archaic
|
come_V = actionV (mkV186 "èäâàì") (table { -- special case "äîéäè", "äîéäåòå" are archaic
|
||||||
VImperative Sg => "ела";
|
VImperative Sg => "åëà";
|
||||||
VImperative Pl => "елате";
|
VImperative Pl => "åëàòå";
|
||||||
vform => mkV146a "дойда" ! vform}) ;
|
vform => mkV146a "äîéäà" ! vform}) ;
|
||||||
computer_N = mkN009 "компютър" ;
|
computer_N = mkN009 "êîìïþòúð" ;
|
||||||
country_N = mkN041 "държава" ;
|
country_N = mkN041 "äúðæàâà" ;
|
||||||
cousin_N = mkN007a "братовчед" ;
|
cousin_N = mkN007a "áðàòîâ÷åä" ;
|
||||||
cow_N = mkN041 "крава" ;
|
cow_N = mkN041 "êðàâà" ;
|
||||||
die_V = actionV (mkV186 "умирам") (mkV150a "умра") ;
|
die_V = actionV (mkV186 "óìèðàì") (mkV150a "óìðà") ;
|
||||||
dirty_A = mkA079 "мръсен" ;
|
dirty_A = mkA079 "ìðúñåí" ;
|
||||||
distance_N3 = prepN3 (mkN072 "разстояние") otP doP ;
|
distance_N3 = prepN3 (mkN072 "ðàçñòîÿíèå") otP doP ;
|
||||||
doctor_N = mkN007a "доктор" ;
|
doctor_N = mkN007a "äîêòîð" ;
|
||||||
dog_N = mkN065 "куче" ;
|
dog_N = mkN065 "êó÷å" ;
|
||||||
door_N = mkN041 "врата" ;
|
door_N = mkN041 "âðàòà" ;
|
||||||
drink_V2 = dirV2 (stateV (mkV163 "пия")) ;
|
drink_V2 = dirV2 (stateV (mkV163 "ïèÿ")) ;
|
||||||
easy_A2V = mkA2V (mkA079 "лесен") zaP ;
|
easy_A2V = mkA2V (mkA079 "ëåñåí") zaP ;
|
||||||
eat_V2 = dirV2 (stateV (mkV169 "ям")) ;
|
eat_V2 = dirV2 (stateV (mkV169 "ÿì")) ;
|
||||||
empty_A = mkA079 "празен" ;
|
empty_A = mkA079 "ïðàçåí" ;
|
||||||
enemy_N = mkN001 "враг" ;
|
enemy_N = mkN001 "âðàã" ;
|
||||||
factory_N = mkN041 "фабрика" ;
|
factory_N = mkN041 "ôàáðèêà" ;
|
||||||
father_N2 = prepN2 (mkN038 "баща") naP ;
|
father_N2 = prepN2 (mkN038 "áàùà") naP ;
|
||||||
fear_VS = mkVS (stateV (mkV186 "страхувам")) ;
|
fear_VS = mkVS (stateV (mkV186 "ñòðàõóâàì")) ;
|
||||||
find_V2 = dirV2 (actionV (mkV186 "намирам") (mkV173 "намеря")) ;
|
find_V2 = dirV2 (actionV (mkV186 "íàìèðàì") (mkV173 "íàìåðÿ")) ;
|
||||||
fish_N = mkN041 "риба" ;
|
fish_N = mkN041 "ðèáà" ;
|
||||||
floor_N = mkN007 "етаж" ;
|
floor_N = mkN007 "åòàæ" ;
|
||||||
fridge_N = mkN007 "фризер" ;
|
fridge_N = mkN007 "ôðèçåð" ;
|
||||||
friend_N = mkN031a "приятел" ;
|
friend_N = mkN031a "ïðèÿòåë" ;
|
||||||
fruit_N = mkN001 "плод" ;
|
fruit_N = mkN001 "ïëîä" ;
|
||||||
fun_AV = mkA079 "забавен" ;
|
fun_AV = mkA079 "çàáàâåí" ;
|
||||||
forget_V2 = dirV2 (actionV (mkV187 "забравям") (mkV173 "забравя")) ;
|
forget_V2 = dirV2 (actionV (mkV187 "çàáðàâÿì") (mkV173 "çàáðàâÿ")) ;
|
||||||
garden_N = mkN041 "градина" ;
|
garden_N = mkN041 "ãðàäèíà" ;
|
||||||
girl_N = mkN065 "момиче" ;
|
girl_N = mkN065 "ìîìè÷å" ;
|
||||||
glove_N = mkN041 "ръкавица" ;
|
glove_N = mkN041 "ðúêàâèöà" ;
|
||||||
gold_N = mkN054 "злато" ;
|
gold_N = mkN054 "çëàòî" ;
|
||||||
good_A = adjAdv (mkA080 "добър") "добре" ;
|
good_A = adjAdv (mkA080 "äîáúð") "äîáðå" ;
|
||||||
go_V = actionV (mkV186 "отивам") (mkV146 "отида") ;
|
go_V = actionV (mkV186 "îòèâàì") (mkV146 "îòèäà") ;
|
||||||
green_A = mkA076 "зелен" ;
|
green_A = mkA076 "çåëåí" ;
|
||||||
harbour_N = mkN066 "пристанище" ;
|
harbour_N = mkN066 "ïðèñòàíèùå" ;
|
||||||
hate_V2 = dirV2 (stateV (mkV173 "мразя")) ;
|
hate_V2 = dirV2 (stateV (mkV173 "ìðàçÿ")) ;
|
||||||
hat_N = mkN041 "шапка" ;
|
hat_N = mkN041 "øàïêà" ;
|
||||||
hear_V2 = dirV2 (actionV (mkV186 "чувам") (mkV163 "чуя")) ;
|
hear_V2 = dirV2 (actionV (mkV186 "÷óâàì") (mkV163 "÷óÿ")) ;
|
||||||
hill_N = mkN001 "хълм" ;
|
hill_N = mkN001 "õúëì" ;
|
||||||
hope_VS = mkVS (medialV (stateV (mkV186 "надявам")) Acc) ;
|
hope_VS = mkVS (medialV (stateV (mkV186 "íàäÿâàì")) Acc) ;
|
||||||
horse_N = mkN035 "кон" ;
|
horse_N = mkN035 "êîí" ;
|
||||||
hot_A = mkA076 "горещ" ;
|
hot_A = mkA076 "ãîðåù" ;
|
||||||
house_N = mkN041 "къща" ;
|
house_N = mkN041 "êúùà" ;
|
||||||
important_A = mkA079 "важен" ;
|
important_A = mkA079 "âàæåí" ;
|
||||||
industry_N = mkN047 "индустрия" ;
|
industry_N = mkN047 "èíäóñòðèÿ" ;
|
||||||
iron_N = mkN057 "желязо" ;
|
iron_N = mkN057 "æåëÿçî" ;
|
||||||
king_N = mkN035a "цар" ;
|
king_N = mkN035a "öàð" ;
|
||||||
know_V2 = dirV2 {
|
know_V2 = dirV2 {
|
||||||
s = \\_,vform => case vform of {
|
s = \\_,vform => case vform of {
|
||||||
VPassive aform => (mkA079 "известен").s ! aform ;
|
VPassive aform => (mkA079 "èçâåñòåí").s ! aform ;
|
||||||
_ => mkV162 "зная" ! vform
|
_ => mkV162 "çíàÿ" ! vform
|
||||||
} ;
|
} ;
|
||||||
vtype = VNormal ;
|
vtype = VNormal ;
|
||||||
lock_V = <>
|
lock_V = <>
|
||||||
} ;
|
} ;
|
||||||
know_VQ = mkVQ (actionV (mkV188 "знам") (mkV162 "зная")) ;
|
know_VQ = mkVQ (actionV (mkV188 "çíàì") (mkV162 "çíàÿ")) ;
|
||||||
know_VS = mkVS (actionV (mkV188 "знам") (mkV162 "зная")) ;
|
know_VS = mkVS (actionV (mkV188 "çíàì") (mkV162 "çíàÿ")) ;
|
||||||
lake_N = mkN054 "езеро" ;
|
lake_N = mkN054 "åçåðî" ;
|
||||||
lamp_N = mkN041 "лампа" ;
|
lamp_N = mkN041 "ëàìïà" ;
|
||||||
learn_V2 = dirV2 (actionV (mkV176 "уча") (mkV176 "науча")) ;
|
learn_V2 = dirV2 (actionV (mkV176 "ó÷à") (mkV176 "íàó÷à")) ;
|
||||||
leather_N = mkN041 "кожа" ;
|
leather_N = mkN041 "êîæà" ;
|
||||||
leave_V2 = dirV2 (actionV (mkV187 "оставям") (mkV173 "оставя")) ;
|
leave_V2 = dirV2 (actionV (mkV187 "îñòàâÿì") (mkV173 "îñòàâÿ")) ;
|
||||||
like_V2 = dirV2 (actionV (mkV186 "харесвам") (mkV186 "харесам")) ;
|
like_V2 = dirV2 (actionV (mkV186 "õàðåñâàì") (mkV186 "õàðåñàì")) ;
|
||||||
listen_V2 = dirV2 (stateV (mkV186 "слушам")) ;
|
listen_V2 = dirV2 (stateV (mkV186 "ñëóøàì")) ;
|
||||||
live_V = stateV (mkV160 "живея") ;
|
live_V = stateV (mkV160 "æèâåÿ") ;
|
||||||
long_A = mkA080 "дълъг" ;
|
long_A = mkA080 "äúëúã" ;
|
||||||
lose_V2 = dirV2 (actionV (mkV173 "губя") (mkV173 "загубя")) ;
|
lose_V2 = dirV2 (actionV (mkV173 "ãóáÿ") (mkV173 "çàãóáÿ")) ;
|
||||||
love_N = mkN049 "любов" ;
|
love_N = mkN049 "ëþáîâ" ;
|
||||||
love_V2 = dirV2 (stateV (mkV186 "обичам")) ;
|
love_V2 = dirV2 (stateV (mkV186 "îáè÷àì")) ;
|
||||||
man_N = mkN024 "мъж" ;
|
man_N = mkN024 "ìúæ" ;
|
||||||
married_A2 = mkA2 (mkA076 "женен") zaP ;
|
married_A2 = mkA2 (mkA076 "æåíåí") zaP ;
|
||||||
meat_N = mkN054 "месо" ;
|
meat_N = mkN054 "ìåñî" ;
|
||||||
milk_N = mkN057 "мляко" ;
|
milk_N = mkN057 "ìëÿêî" ;
|
||||||
moon_N = mkN041 "луна" ;
|
moon_N = mkN041 "ëóíà" ;
|
||||||
mother_N2 = prepN2 (mkN041a "майка") naP ;
|
mother_N2 = prepN2 (mkN041a "ìàéêà") naP ;
|
||||||
mountain_N = mkN041 "планина" ;
|
mountain_N = mkN041 "ïëàíèíà" ;
|
||||||
music_N = mkN041 "музика" ;
|
music_N = mkN041 "ìóçèêà" ;
|
||||||
narrow_A = mkA084 "тесен" ;
|
narrow_A = mkA084 "òåñåí" ;
|
||||||
new_A = mkA076 "нов" ;
|
new_A = mkA076 "íîâ" ;
|
||||||
newspaper_N = mkN014 "вестник" ;
|
newspaper_N = mkN014 "âåñòíèê" ;
|
||||||
oil_N = mkN065 "олио" ;
|
oil_N = mkN065 "îëèî" ;
|
||||||
old_A = mkA076 "стар" ;
|
old_A = mkA076 "ñòàð" ;
|
||||||
open_V2 = dirV2 (actionV (mkV187 "отварям") (mkV173 "отворя")) ;
|
open_V2 = dirV2 (actionV (mkV187 "îòâàðÿì") (mkV173 "îòâîðÿ")) ;
|
||||||
paint_V2A = mkV2A (actionV (mkV186 "рисувам") (mkV186 "нарисувам")) noPrep ;
|
paint_V2A = mkV2A (actionV (mkV186 "ðèñóâàì") (mkV186 "íàðèñóâàì")) noPrep ;
|
||||||
paper_N = mkN047 "хартия" ;
|
paper_N = mkN047 "õàðòèÿ" ;
|
||||||
paris_PN = mkPN "Париж" Masc ;
|
paris_PN = mkPN "Ïàðèæ" Masc ;
|
||||||
peace_N = mkN040a "мир" ;
|
peace_N = mkN040a "ìèð" ;
|
||||||
pen_N = mkN041 "писалка" ;
|
pen_N = mkN041 "ïèñàëêà" ;
|
||||||
planet_N = mkN041 "планета" ;
|
planet_N = mkN041 "ïëàíåòà" ;
|
||||||
plastic_N = mkN041 "пластмаса" ;
|
plastic_N = mkN041 "ïëàñòìàñà" ;
|
||||||
play_V2 = dirV2 (stateV (mkV161 "играя")) ;
|
play_V2 = dirV2 (stateV (mkV161 "èãðàÿ")) ;
|
||||||
policeman_N = mkN032a "полицай" ;
|
policeman_N = mkN032a "ïîëèöàé" ;
|
||||||
priest_N = mkN014 "свещеник" ;
|
priest_N = mkN014 "ñâåùåíèê" ;
|
||||||
probable_AS = mkA079 "вероятен" ;
|
probable_AS = mkA079 "âåðîÿòåí" ;
|
||||||
queen_N = mkN041 "кралица" ;
|
queen_N = mkN041 "êðàëèöà" ;
|
||||||
radio_N = mkN054 "радио" ;
|
radio_N = mkN054 "ðàäèî" ;
|
||||||
rain_V0 = mkV0 (stateV (mkV174 "вали")) ;
|
rain_V0 = mkV0 (stateV (mkV174 "âàëè")) ;
|
||||||
read_V2 = dirV2 (stateV (mkV145 "чета")) ;
|
read_V2 = dirV2 (stateV (mkV145 "÷åòà")) ;
|
||||||
red_A = mkA076 "червен" ;
|
red_A = mkA076 "÷åðâåí" ;
|
||||||
religion_N = mkN047 "религия" ;
|
religion_N = mkN047 "ðåëèãèÿ" ;
|
||||||
restaurant_N = mkN007 "ресторант" ;
|
restaurant_N = mkN007 "ðåñòîðàíò" ;
|
||||||
river_N = mkN041 "река" ;
|
river_N = mkN041 "ðåêà" ;
|
||||||
rock_N = mkN041 "скала" ;
|
rock_N = mkN041 "ñêàëà" ;
|
||||||
roof_N = mkN007 "покрив" ;
|
roof_N = mkN007 "ïîêðèâ" ;
|
||||||
rubber_N = mkN041 "гума" ;
|
rubber_N = mkN041 "ãóìà" ;
|
||||||
run_V = stateV (mkV186 "бягам") ;
|
run_V = stateV (mkV186 "áÿãàì") ;
|
||||||
say_VS = mkVS (actionV (mkV186 "казвам") (mkV156 "кажа")) ;
|
say_VS = mkVS (actionV (mkV186 "êàçâàì") (mkV156 "êàæà")) ;
|
||||||
school_N = mkN066 "училище" ;
|
school_N = mkN066 "ó÷èëèùå" ;
|
||||||
science_N = mkN041 "наука" ;
|
science_N = mkN041 "íàóêà" ;
|
||||||
sea_N = mkN065 "море" ;
|
sea_N = mkN065 "ìîðå" ;
|
||||||
seek_V2 = dirV2 (stateV (mkV173 "търся")) ;
|
seek_V2 = dirV2 (stateV (mkV173 "òúðñÿ")) ;
|
||||||
see_V2 = dirV2 (actionV (mkV186 "виждам") (mkV181 "видя")) ;
|
see_V2 = dirV2 (actionV (mkV186 "âèæäàì") (mkV181 "âèäÿ")) ;
|
||||||
sell_V3 = dirV3 (stateV (mkV186 "продавам")) naP ;
|
sell_V3 = dirV3 (stateV (mkV186 "ïðîäàâàì")) naP ;
|
||||||
send_V3 = dirV3 (actionV (mkV186 "пращам") (mkV173 "пратя")) doP ;
|
send_V3 = dirV3 (actionV (mkV186 "ïðàùàì") (mkV173 "ïðàòÿ")) doP ;
|
||||||
sheep_N = mkN044 "овца" ;
|
sheep_N = mkN044 "îâöà" ;
|
||||||
ship_N = mkN007 "кораб" ;
|
ship_N = mkN007 "êîðàá" ;
|
||||||
shirt_N = mkN041 "риза" ;
|
shirt_N = mkN041 "ðèçà" ;
|
||||||
shoe_N = mkN041 "обувка" ;
|
shoe_N = mkN041 "îáóâêà" ;
|
||||||
shop_N = mkN007 "магазин" ;
|
shop_N = mkN007 "ìàãàçèí" ;
|
||||||
short_A = mkA076 "къс" ;
|
short_A = mkA076 "êúñ" ;
|
||||||
silver_N = mkN054 "сребро" ;
|
silver_N = mkN054 "ñðåáðî" ;
|
||||||
sister_N = mkN041a "сестра" ;
|
sister_N = mkN041a "ñåñòðà" ;
|
||||||
sleep_V = stateV (mkV182 "спя") ;
|
sleep_V = stateV (mkV182 "ñïÿ") ;
|
||||||
small_A = mkA080 "малък" ;
|
small_A = mkA080 "ìàëúê" ;
|
||||||
snake_N = mkN047 "змия" ;
|
snake_N = mkN047 "çìèÿ" ;
|
||||||
sock_N = mkN007 "чорап" ;
|
sock_N = mkN007 "÷îðàï" ;
|
||||||
speak_V2 = dirV2 (stateV (mkV173 "говоря")) ;
|
speak_V2 = dirV2 (stateV (mkV173 "ãîâîðÿ")) ;
|
||||||
star_N = mkN041 "звезда" ;
|
star_N = mkN041 "çâåçäà" ;
|
||||||
steel_N = mkN041 "стомана" ;
|
steel_N = mkN041 "ñòîìàíà" ;
|
||||||
stone_N = mkN017 "камък" ;
|
stone_N = mkN017 "êàìúê" ;
|
||||||
stove_N = mkN041 "печка" ;
|
stove_N = mkN041 "ïå÷êà" ;
|
||||||
student_N = mkN007a "студент" ;
|
student_N = mkN007a "ñòóäåíò" ;
|
||||||
stupid_A = mkA076 "глупав" ;
|
stupid_A = mkA076 "ãëóïàâ" ;
|
||||||
sun_N = mkN066 "слънце" ;
|
sun_N = mkN066 "ñëúíöå" ;
|
||||||
switch8off_V2 = dirV2 (actionV (mkV186 "изключвам") (mkV176 "изключа")) ;
|
switch8off_V2 = dirV2 (actionV (mkV186 "èçêëþ÷âàì") (mkV176 "èçêëþ÷à")) ;
|
||||||
switch8on_V2 = dirV2 (actionV (mkV186 "включвам") (mkV176 "включа")) ;
|
switch8on_V2 = dirV2 (actionV (mkV186 "âêëþ÷âàì") (mkV176 "âêëþ÷à")) ;
|
||||||
table_N = mkN041 "маса" ;
|
table_N = mkN041 "ìàñà" ;
|
||||||
talk_V3 = mkV3 (stateV (mkV173 "говоря")) naP zaP ;
|
talk_V3 = mkV3 (stateV (mkV173 "ãîâîðÿ")) naP zaP ;
|
||||||
teacher_N = mkN031a "учител" ;
|
teacher_N = mkN031a "ó÷èòåë" ;
|
||||||
teach_V2 = dirV2 (actionV (mkV186 "преподавам") (mkV168 "преподам")) ;
|
teach_V2 = dirV2 (actionV (mkV186 "ïðåïîäàâàì") (mkV168 "ïðåïîäàì")) ;
|
||||||
television_N = mkN047 "телевизия" ;
|
television_N = mkN047 "òåëåâèçèÿ" ;
|
||||||
thick_A = mkA076 "дебел" ;
|
thick_A = mkA076 "äåáåë" ;
|
||||||
thin_A = mkA080 "тънък" ;
|
thin_A = mkA080 "òúíúê" ;
|
||||||
train_N = mkN001 "влак" ;
|
train_N = mkN001 "âëàê" ;
|
||||||
travel_V = stateV (mkV186 "пътувам") ;
|
travel_V = stateV (mkV186 "ïúòóâàì") ;
|
||||||
tree_N = mkN061 "дърво" ;
|
tree_N = mkN061 "äúðâî" ;
|
||||||
ugly_A = mkA076 "глупав" ;
|
ugly_A = mkA076 "ãëóïàâ" ;
|
||||||
understand_V2 = dirV2 (actionV (mkV186 "разбирам") (mkV170 "разбера")) ;
|
understand_V2 = dirV2 (actionV (mkV186 "ðàçáèðàì") (mkV170 "ðàçáåðà")) ;
|
||||||
university_N = mkN007 "университет" ;
|
university_N = mkN007 "óíèâåðñèòåò" ;
|
||||||
village_N = mkN054 "село" ;
|
village_N = mkN054 "ñåëî" ;
|
||||||
wait_V2 = prepV2 (stateV (mkV186 "чакам")) zaP ;
|
wait_V2 = prepV2 (stateV (mkV186 "÷àêàì")) zaP ;
|
||||||
walk_V = stateV (mkV173 "ходя") ;
|
walk_V = stateV (mkV173 "õîäÿ") ;
|
||||||
warm_A = mkA080 "топъл" ;
|
warm_A = mkA080 "òîïúë" ;
|
||||||
war_N = mkN041 "война" ;
|
war_N = mkN041 "âîéíà" ;
|
||||||
watch_V2 = dirV2 (stateV (mkV186 "гледам")) ;
|
watch_V2 = dirV2 (stateV (mkV186 "ãëåäàì")) ;
|
||||||
water_N = mkN041 "вода" ;
|
water_N = mkN041 "âîäà" ;
|
||||||
white_A = mkA081 "бял" ;
|
white_A = mkA081 "áÿë" ;
|
||||||
window_N = mkN008 "прозорец" ;
|
window_N = mkN008 "ïðîçîðåö" ;
|
||||||
wine_N = mkN054 "вино" ;
|
wine_N = mkN054 "âèíî" ;
|
||||||
win_V2 = dirV2 (actionV (mkV186 "побеждавам") (mkV174 "победя")) ;
|
win_V2 = dirV2 (actionV (mkV186 "ïîáåæäàâàì") (mkV174 "ïîáåäÿ")) ;
|
||||||
woman_N = mkN041a "жена" ;
|
woman_N = mkN041a "æåíà" ;
|
||||||
wonder_VQ = mkVQ (medialV (actionV (mkV186 "учудвам") (mkV173 "чудя")) Acc) ;
|
wonder_VQ = mkVQ (medialV (actionV (mkV186 "ó÷óäâàì") (mkV173 "÷óäÿ")) Acc) ;
|
||||||
wood_N = mkN041 "дървесина" ;
|
wood_N = mkN041 "äúðâåñèíà" ;
|
||||||
write_V2 = dirV2 (stateV (mkV159 "пиша")) ;
|
write_V2 = dirV2 (stateV (mkV159 "ïèøà")) ;
|
||||||
yellow_A = mkA076 "жълт" ;
|
yellow_A = mkA076 "æúëò" ;
|
||||||
young_A = mkA076 "млад" ;
|
young_A = mkA076 "ìëàä" ;
|
||||||
do_V2 = dirV2 (actionV (mkV173 "правя") (mkV173 "направя")) ;
|
do_V2 = dirV2 (actionV (mkV173 "ïðàâÿ") (mkV173 "íàïðàâÿ")) ;
|
||||||
now_Adv = mkAdv "сега" ;
|
now_Adv = mkAdv "ñåãà" ;
|
||||||
already_Adv = mkAdv "вече" ;
|
already_Adv = mkAdv "âå÷å" ;
|
||||||
song_N = mkN050 "песен" ;
|
song_N = mkN050 "ïåñåí" ;
|
||||||
add_V3 = dirV3 (actionV (mkV186 "събирам") (mkV170 "събера")) sP ;
|
add_V3 = dirV3 (actionV (mkV186 "ñúáèðàì") (mkV170 "ñúáåðà")) sP ;
|
||||||
number_N = mkN054 "число" ;
|
number_N = mkN054 "÷èñëî" ;
|
||||||
put_V2 = prepV2 (actionV (mkV186 "слагам") (mkV176 "сложа")) noPrep ;
|
put_V2 = prepV2 (actionV (mkV186 "ñëàãàì") (mkV176 "ñëîæà")) noPrep ;
|
||||||
stop_V = actionV (mkV186 "спирам") (mkV150 "спра") ;
|
stop_V = actionV (mkV186 "ñïèðàì") (mkV150 "ñïðà") ;
|
||||||
jump_V = actionV (mkV186 "скачам") (mkV176 "скоча") ;
|
jump_V = actionV (mkV186 "ñêà÷àì") (mkV176 "ñêî÷à") ;
|
||||||
left_Ord = mkA081 "ляв" ** {nonEmpty=True} ;
|
left_Ord = mkA081 "ëÿâ" ** {nonEmpty=True} ;
|
||||||
right_Ord = mkA084 "десен" ** {nonEmpty=True} ;
|
right_Ord = mkA084 "äåñåí" ** {nonEmpty=True} ;
|
||||||
far_Adv = mkAdv "далече" ;
|
far_Adv = mkAdv "äàëå÷å" ;
|
||||||
correct_A = mkA079 "правилен" ;
|
correct_A = mkA079 "ïðàâèëåí" ;
|
||||||
dry_A = mkA076 "сух" ;
|
dry_A = mkA076 "ñóõ" ;
|
||||||
dull_A = mkA076 "тъп" ;
|
dull_A = mkA076 "òúï" ;
|
||||||
full_A = mkA079 "пълен" ;
|
full_A = mkA079 "ïúëåí" ;
|
||||||
heavy_A = mkA080 "тежък" ;
|
heavy_A = mkA080 "òåæúê" ;
|
||||||
near_A = mkA080 "близък" ;
|
near_A = mkA080 "áëèçúê" ;
|
||||||
rotten_A = mkA076 "прогнил" ;
|
rotten_A = mkA076 "ïðîãíèë" ;
|
||||||
round_A = mkA080 "кръгъл" ;
|
round_A = mkA080 "êðúãúë" ;
|
||||||
sharp_A = mkA080 "остър" ;
|
sharp_A = mkA080 "îñòúð" ;
|
||||||
smooth_A = mkA080 "гладък" ;
|
smooth_A = mkA080 "ãëàäúê" ;
|
||||||
straight_A = mkA081 "пряк" ;
|
straight_A = mkA081 "ïðÿê" ;
|
||||||
wet_A = mkA080 "мокър" ; ----
|
wet_A = mkA080 "ìîêúð" ; ----
|
||||||
wide_A = mkA076 "широк" ;
|
wide_A = mkA076 "øèðîê" ;
|
||||||
animal_N = mkN062 "животно" ;
|
animal_N = mkN062 "æèâîòíî" ;
|
||||||
ashes_N = mkN049 "пепeл" ;
|
ashes_N = mkN049 "ïåïeë" ;
|
||||||
back_N = mkN003 "гръб" ;
|
back_N = mkN003 "ãðúá" ;
|
||||||
bark_N = mkN028 "лай" ;
|
bark_N = mkN028 "ëàé" ;
|
||||||
belly_N = mkN007 "корем" ;
|
belly_N = mkN007 "êîðåì" ;
|
||||||
blood_N = mkN053 "кръв" ;
|
blood_N = mkN053 "êðúâ" ;
|
||||||
bone_N = mkN049 "кост" ;
|
bone_N = mkN049 "êîñò" ;
|
||||||
breast_N = mkN041 "гърда" ;
|
breast_N = mkN041 "ãúðäà" ;
|
||||||
cloud_N = mkN014 "облак" ;
|
cloud_N = mkN014 "îáëàê" ;
|
||||||
day_N = mkN033 "ден" ;
|
day_N = mkN033 "äåí" ;
|
||||||
dust_N = mkN001 "прах" ;
|
dust_N = mkN001 "ïðàõ" ;
|
||||||
ear_N = mkN064 "ухо" ;
|
ear_N = mkN064 "óõî" ;
|
||||||
earth_N = mkN047 "земя" ;
|
earth_N = mkN047 "çåìÿ" ;
|
||||||
egg_N = mkN066 "яйце" ;
|
egg_N = mkN066 "ÿéöå" ;
|
||||||
eye_N = mkN063 "око" ;
|
eye_N = mkN063 "îêî" ;
|
||||||
fat_N = mkN041 "мазнина" ;
|
fat_N = mkN041 "ìàçíèíà" ;
|
||||||
feather_N = mkN054 "перо" ;
|
feather_N = mkN054 "ïåðî" ;
|
||||||
fingernail_N = mkN034 "нокът" ;
|
fingernail_N = mkN034 "íîêúò" ;
|
||||||
fire_N = mkN030 "огън" ;
|
fire_N = mkN030 "îãúí" ;
|
||||||
flower_N = mkN068 "цвете" ;
|
flower_N = mkN068 "öâåòå" ;
|
||||||
fog_N = mkN041 "мъгла" ;
|
fog_N = mkN041 "ìúãëà" ;
|
||||||
foot_N = mkN041 "стъпка" ;
|
foot_N = mkN041 "ñòúïêà" ;
|
||||||
forest_N = mkN041 "гора" ;
|
forest_N = mkN041 "ãîðà" ;
|
||||||
grass_N = mkN041 "трева" ;
|
grass_N = mkN041 "òðåâà" ;
|
||||||
guts_N = mkN054 "черво" ;
|
guts_N = mkN054 "÷åðâî" ;
|
||||||
hair_N = mkN041 "коса" ;
|
hair_N = mkN041 "êîñà" ;
|
||||||
hand_N = mkN045 "ръка" ;
|
hand_N = mkN045 "ðúêà" ;
|
||||||
head_N = mkN041 "глава" ;
|
head_N = mkN041 "ãëàâà" ;
|
||||||
heart_N = mkN066 "сърце" ;
|
heart_N = mkN066 "ñúðöå" ;
|
||||||
horn_N = mkN001 "рог" ;
|
horn_N = mkN001 "ðîã" ;
|
||||||
husband_N = mkN015 "съпруг" ; -- personal
|
husband_N = mkN015 "ñúïðóã" ; -- personal
|
||||||
ice_N = mkN001 "лед" ;
|
ice_N = mkN001 "ëåä" ;
|
||||||
knee_N = mkN058 "коляно" ;
|
knee_N = mkN058 "êîëÿíî" ;
|
||||||
leaf_N = mkN054 "листо" ;
|
leaf_N = mkN054 "ëèñòî" ;
|
||||||
leg_N = mkN022 "крак" ;
|
leg_N = mkN022 "êðàê" ;
|
||||||
liver_N = mkN001 "дроб" ;
|
liver_N = mkN001 "äðîá" ;
|
||||||
louse_N = mkN041 "въшка" ;
|
louse_N = mkN041 "âúøêà" ;
|
||||||
mouth_N = mkN042 "уста" ;
|
mouth_N = mkN042 "óñòà" ;
|
||||||
name_N = mkN069 "име" ;
|
name_N = mkN069 "èìå" ;
|
||||||
neck_N = mkN003 "гръб" ;
|
neck_N = mkN003 "ãðúá" ;
|
||||||
night_N = mkN049 "нощ" ;
|
night_N = mkN049 "íîù" ;
|
||||||
nose_N = mkN001 "нос" ;
|
nose_N = mkN001 "íîñ" ;
|
||||||
person_N = mkN014 "човек" ;
|
person_N = mkN014 "÷îâåê" ;
|
||||||
rain_N = mkN001 "дъжд" ;
|
rain_N = mkN001 "äúæä" ;
|
||||||
road_N = mkN037 "път" ;
|
road_N = mkN037 "ïúò" ;
|
||||||
root_N = mkN007 "корен" ;
|
root_N = mkN007 "êîðåí" ;
|
||||||
rope_N = mkN065 "въже" ;
|
rope_N = mkN065 "âúæå" ;
|
||||||
salt_N = mkN049 "сол" ;
|
salt_N = mkN049 "ñîë" ;
|
||||||
sand_N = mkN014 "пясък" ;
|
sand_N = mkN014 "ïÿñúê" ;
|
||||||
seed_N = mkN069 "семе" ;
|
seed_N = mkN069 "ñåìå" ;
|
||||||
skin_N = mkN041 "кожа" ;
|
skin_N = mkN041 "êîæà" ;
|
||||||
sky_N = mkN070 "небе" ;
|
sky_N = mkN070 "íåáå" ;
|
||||||
smoke_N = mkN014 "пушек" ;
|
smoke_N = mkN014 "ïóøåê" ;
|
||||||
snow_N = mkN002 "сняг" ;
|
snow_N = mkN002 "ñíÿã" ;
|
||||||
stick_N = mkN041 "пръчка" ;
|
stick_N = mkN041 "ïðú÷êà" ;
|
||||||
tail_N = mkN041 "опашка" ;
|
tail_N = mkN041 "îïàøêà" ;
|
||||||
tongue_N = mkN014 "език" ;
|
tongue_N = mkN014 "åçèê" ;
|
||||||
tooth_N = mkN007 "зъб" ;
|
tooth_N = mkN007 "çúá" ;
|
||||||
wife_N = mkN041 "съпруга" ;
|
wife_N = mkN041 "ñúïðóãà" ;
|
||||||
wind_N = mkN004 "вятър" ;
|
wind_N = mkN004 "âÿòúð" ;
|
||||||
wing_N = mkN056 "крило" ;
|
wing_N = mkN056 "êðèëî" ;
|
||||||
worm_N = mkN032 "червей" ;
|
worm_N = mkN032 "÷åðâåé" ;
|
||||||
year_N = mkN041 "година" ;
|
year_N = mkN041 "ãîäèíà" ;
|
||||||
blow_V = stateV (mkV186 "духам") ;
|
blow_V = stateV (mkV186 "äóõàì") ;
|
||||||
breathe_V = dirV2 (stateV (mkV186 "дишам")) ;
|
breathe_V = dirV2 (stateV (mkV186 "äèøàì")) ;
|
||||||
burn_V = actionV (mkV187 "изгарям") (mkV177 "изгоря") ;
|
burn_V = actionV (mkV187 "èçãàðÿì") (mkV177 "èçãîðÿ") ;
|
||||||
dig_V = stateV (mkV161 "копая") ;
|
dig_V = stateV (mkV161 "êîïàÿ") ;
|
||||||
fall_V = actionV (mkV186 "падам") (mkV152 "падна") ;
|
fall_V = actionV (mkV186 "ïàäàì") (mkV152 "ïàäíà") ;
|
||||||
float_V = stateV (mkV186 "плавам") ;
|
float_V = stateV (mkV186 "ïëàâàì") ;
|
||||||
flow_V = stateV (mkV148 "тека") ;
|
flow_V = stateV (mkV148 "òåêà") ;
|
||||||
fly_V = stateV (mkV177 "летя") ;
|
fly_V = stateV (mkV177 "ëåòÿ") ;
|
||||||
freeze_V = stateV (mkV186 "замръзвам") ;
|
freeze_V = stateV (mkV186 "çàìðúçâàì") ;
|
||||||
give_V3 = dirV3 (actionV (mkV186 "давам") (mkV186 "дам")) naP ;
|
give_V3 = dirV3 (actionV (mkV186 "äàâàì") (mkV186 "äàì")) naP ;
|
||||||
laugh_V = medialV (stateV (mkV160 "смея")) Acc ;
|
laugh_V = medialV (stateV (mkV160 "ñìåÿ")) Acc ;
|
||||||
lie_V = stateV (mkV178 "лежа") ;
|
lie_V = stateV (mkV178 "ëåæà") ;
|
||||||
play_V = stateV (mkV161 "играя") ;
|
play_V = stateV (mkV161 "èãðàÿ") ;
|
||||||
sew_V = stateV (mkV163 "шия") ;
|
sew_V = stateV (mkV163 "øèÿ") ;
|
||||||
sing_V = stateV (mkV164 "пея") ;
|
sing_V = stateV (mkV164 "ïåÿ") ;
|
||||||
sit_V = stateV (mkV177 "седя") ;
|
sit_V = stateV (mkV177 "ñåäÿ") ;
|
||||||
smell_V = stateV (mkV159 "мириша") ;
|
smell_V = stateV (mkV159 "ìèðèøà") ;
|
||||||
spit_V = stateV (mkV163 "плюя") ;
|
spit_V = stateV (mkV163 "ïëþÿ") ;
|
||||||
stand_V = stateV (mkV180 "стоя") ;
|
stand_V = stateV (mkV180 "ñòîÿ") ;
|
||||||
swell_V = actionV (mkV186 "надувам") (mkV163 "надуя") ;
|
swell_V = actionV (mkV186 "íàäóâàì") (mkV163 "íàäóÿ") ;
|
||||||
swim_V = stateV (mkV186 "плувам") ;
|
swim_V = stateV (mkV186 "ïëóâàì") ;
|
||||||
think_V = stateV (mkV173 "мисля") ;
|
think_V = stateV (mkV173 "ìèñëÿ") ;
|
||||||
turn_V = actionV (mkV186 "обръщам") (mkV152 "обърна") ;
|
turn_V = actionV (mkV186 "îáðúùàì") (mkV152 "îáúðíà") ;
|
||||||
vomit_V = actionV (mkV186 "повръщам") (mkV152 "повърна") ;
|
vomit_V = actionV (mkV186 "ïîâðúùàì") (mkV152 "ïîâúðíà") ;
|
||||||
|
|
||||||
bite_V2 = dirV2 (stateV (mkV154 "хапя")) ;
|
bite_V2 = dirV2 (stateV (mkV154 "õàïÿ")) ;
|
||||||
count_V2 = dirV2 (stateV (mkV175 "броя")) ;
|
count_V2 = dirV2 (stateV (mkV175 "áðîÿ")) ;
|
||||||
cut_V2 = dirV2 (stateV (mkV157 "режа")) ;
|
cut_V2 = dirV2 (stateV (mkV157 "ðåæà")) ;
|
||||||
fear_V2 = prepV2 (medialV (stateV (mkV186 "страхувам")) Acc) otP;
|
fear_V2 = prepV2 (medialV (stateV (mkV186 "ñòðàõóâàì")) Acc) otP;
|
||||||
fight_V2 = prepV2 (medialV (stateV (mkV173 "боря")) Acc) sP;
|
fight_V2 = prepV2 (medialV (stateV (mkV173 "áîðÿ")) Acc) sP;
|
||||||
hit_V2 = dirV2 (actionV (mkV187 "удрям") (mkV173 "ударя")) ;
|
hit_V2 = dirV2 (actionV (mkV187 "óäðÿì") (mkV173 "óäàðÿ")) ;
|
||||||
hold_V2 = dirV2 (stateV (mkV179 "държа")) ;
|
hold_V2 = dirV2 (stateV (mkV179 "äúðæà")) ;
|
||||||
hunt_V2 = dirV2 (stateV (mkV174 "ловя")) ;
|
hunt_V2 = dirV2 (stateV (mkV174 "ëîâÿ")) ;
|
||||||
kill_V2 = dirV2 (actionV (mkV186 "убивам") (mkV163 "убия")) ;
|
kill_V2 = dirV2 (actionV (mkV186 "óáèâàì") (mkV163 "óáèÿ")) ;
|
||||||
pull_V2 = dirV2 (stateV (mkV186 "дърпам")) ;
|
pull_V2 = dirV2 (stateV (mkV186 "äúðïàì")) ;
|
||||||
push_V2 = dirV2 (stateV (mkV186 "бутам")) ;
|
push_V2 = dirV2 (stateV (mkV186 "áóòàì")) ;
|
||||||
rub_V2 = dirV2 (stateV (mkV163 "трия")) ;
|
rub_V2 = dirV2 (stateV (mkV163 "òðèÿ")) ;
|
||||||
scratch_V2 = dirV2 (actionV (mkV186 "драскам") (mkV152 "драсна")) ;
|
scratch_V2 = dirV2 (actionV (mkV186 "äðàñêàì") (mkV152 "äðàñíà")) ;
|
||||||
split_V2 = dirV2 (actionV (mkV187 "разделям") (mkV174 "разделя")) ;
|
split_V2 = dirV2 (actionV (mkV187 "ðàçäåëÿì") (mkV174 "ðàçäåëÿ")) ;
|
||||||
squeeze_V2 = dirV2 (actionV (mkV186 "стискам") (mkV152 "стисна")) ;
|
squeeze_V2 = dirV2 (actionV (mkV186 "ñòèñêàì") (mkV152 "ñòèñíà")) ;
|
||||||
stab_V2 = dirV2 (actionV (mkV186 "промушвам") (mkV176 "промуша")) ;
|
stab_V2 = dirV2 (actionV (mkV186 "ïðîìóøâàì") (mkV176 "ïðîìóøà")) ;
|
||||||
suck_V2 = dirV2 (stateV (mkV155 "суча")) ;
|
suck_V2 = dirV2 (stateV (mkV155 "ñó÷à")) ;
|
||||||
throw_V2 = dirV2 (actionV (mkV187 "хвърлям") (mkV173 "хвърля")) ;
|
throw_V2 = dirV2 (actionV (mkV187 "õâúðëÿì") (mkV173 "õâúðëÿ")) ;
|
||||||
tie_V2 = dirV2 (actionV (mkV186 "връзвам") (mkV156 "вържа")) ;
|
tie_V2 = dirV2 (actionV (mkV186 "âðúçâàì") (mkV156 "âúðæà")) ;
|
||||||
wash_V2 = dirV2 (stateV (mkV163 "мия")) ;
|
wash_V2 = dirV2 (stateV (mkV163 "ìèÿ")) ;
|
||||||
wipe_V2 = dirV2 (stateV (mkV159 "бърша")) ;
|
wipe_V2 = dirV2 (stateV (mkV159 "áúðøà")) ;
|
||||||
|
|
||||||
grammar_N = mkN041 "граматика" ;
|
grammar_N = mkN041 "ãðàìàòèêà" ;
|
||||||
language_N = mkN014 "език" ;
|
language_N = mkN014 "åçèê" ;
|
||||||
rule_N = mkN054 "правило" ;
|
rule_N = mkN054 "ïðàâèëî" ;
|
||||||
|
|
||||||
john_PN = mkPN "Джон" Masc ;
|
john_PN = mkPN "Äæîí" Masc ;
|
||||||
question_N = mkN007 "въпрос" ;
|
question_N = mkN007 "âúïðîñ" ;
|
||||||
ready_A = mkA076 "готов" ;
|
ready_A = mkA076 "ãîòîâ" ;
|
||||||
reason_N = mkN041 "причина" ;
|
reason_N = mkN041 "ïðè÷èíà" ;
|
||||||
today_Adv = mkAdv "днес" ;
|
today_Adv = mkAdv "äíåñ" ;
|
||||||
uncertain_A = mkA079 "неясен" ;
|
uncertain_A = mkA079 "íåÿñåí" ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
zaP = mkPrep "за" Acc ;
|
zaP = mkPrep "çà" Acc ;
|
||||||
naP = mkPrep [] Dat ;
|
naP = mkPrep [] Dat ;
|
||||||
otP = mkPrep "от" Acc ;
|
otP = mkPrep "îò" Acc ;
|
||||||
doP = mkPrep "до" Acc ;
|
doP = mkPrep "äî" Acc ;
|
||||||
sP = mkPrep (pre { "с" ;
|
sP = mkPrep (pre { "ñ" ;
|
||||||
"със" / strs {"с" ; "з" ; "С" ; "З"}
|
"ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"}
|
||||||
}) Acc ;
|
}) Acc ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
--# -path=.:../../prelude
|
--# -path=.:../../prelude
|
||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
|
|
||||||
|
--1 A Simple English Resource Morphology
|
||||||
|
--
|
||||||
|
-- Aarne Ranta 2002 -- 2005
|
||||||
|
--
|
||||||
|
-- This resource morphology contains definitions needed in the resource
|
||||||
|
-- syntax. To build a lexicon, it is better to use $ParadigmsEng$, which
|
||||||
|
-- gives a higher-level access to this module.
|
||||||
|
|
||||||
resource MorphoBul = ResBul ** open
|
resource MorphoBul = ResBul ** open
|
||||||
Predef,
|
Predef,
|
||||||
Prelude,
|
Prelude,
|
||||||
CatBul
|
CatBul
|
||||||
in {
|
in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
@@ -87,73 +95,73 @@ oper
|
|||||||
\cheta,chete,chetoh,chetqh,chel,chetql,cheten,chetqst,cheti,chetene ->
|
\cheta,chete,chetoh,chetqh,chel,chetql,cheten,chetqst,cheti,chetene ->
|
||||||
table {
|
table {
|
||||||
VPres Sg P1 => cheta;
|
VPres Sg P1 => cheta;
|
||||||
VPres Sg P2 => chete + "ш";
|
VPres Sg P2 => chete + "ø";
|
||||||
VPres Sg P3 => chete;
|
VPres Sg P3 => chete;
|
||||||
VPres Pl P1 => case chete of {
|
VPres Pl P1 => case chete of {
|
||||||
_ + ("а"|"я") => chete + "ме";
|
_ + ("à"|"ÿ") => chete + "ìå";
|
||||||
_ => chete + "м"
|
_ => chete + "ì"
|
||||||
};
|
};
|
||||||
VPres Pl P2 => chete + "те";
|
VPres Pl P2 => chete + "òå";
|
||||||
VPres Pl P3 => case cheta of {
|
VPres Pl P3 => case cheta of {
|
||||||
vika + "м" => case chete of {
|
vika + "ì" => case chete of {
|
||||||
zn + "ае" => zn + "аят";
|
zn + "àå" => zn + "àÿò";
|
||||||
dad + "е" => dad + "ат";
|
dad + "å" => dad + "àò";
|
||||||
vika => vika + "т"
|
vika => vika + "ò"
|
||||||
};
|
};
|
||||||
_ => cheta + "т"
|
_ => cheta + "ò"
|
||||||
};
|
};
|
||||||
VAorist Sg P1 => chetoh;
|
VAorist Sg P1 => chetoh;
|
||||||
VAorist Sg _ => case chetoh of {
|
VAorist Sg _ => case chetoh of {
|
||||||
chet+"ох" => chete;
|
chet+"îõ" => chete;
|
||||||
zova+ "х" => zova
|
zova+ "õ" => zova
|
||||||
};
|
};
|
||||||
VAorist Pl P1 => chetoh + "ме";
|
VAorist Pl P1 => chetoh + "ìå";
|
||||||
VAorist Pl P2 => chetoh + "те";
|
VAorist Pl P2 => chetoh + "òå";
|
||||||
VAorist Pl P3 => chetoh + "а";
|
VAorist Pl P3 => chetoh + "à";
|
||||||
VImperfect Sg P1 => chetqh;
|
VImperfect Sg P1 => chetqh;
|
||||||
VImperfect Sg _ => case chete of {
|
VImperfect Sg _ => case chete of {
|
||||||
rabot + "и" => rabot + "eше";
|
rabot + "è" => rabot + "eøå";
|
||||||
_ => chete + "ше"
|
_ => chete + "øå"
|
||||||
};
|
};
|
||||||
VImperfect Pl P1 => chetqh + "ме";
|
VImperfect Pl P1 => chetqh + "ìå";
|
||||||
VImperfect Pl P2 => chetqh + "те";
|
VImperfect Pl P2 => chetqh + "òå";
|
||||||
VImperfect Pl P3 => chetqh + "а";
|
VImperfect Pl P3 => chetqh + "à";
|
||||||
VPerfect aform =>let chel1 : Str =
|
VPerfect aform =>let chel1 : Str =
|
||||||
case chel of {
|
case chel of {
|
||||||
pas+"ъл" => pas+"л";
|
pas+"úë" => pas+"ë";
|
||||||
_ => chel
|
_ => chel
|
||||||
} ;
|
} ;
|
||||||
chel2 : Str =
|
chel2 : Str =
|
||||||
case chel of {
|
case chel of {
|
||||||
w+"лязъл" => w+"лезл";
|
w+"ëÿçúë" => w+"ëåçë";
|
||||||
_ => chel
|
_ => chel
|
||||||
}
|
}
|
||||||
in (mkAdjective chel
|
in (mkAdjective chel
|
||||||
(chel2+"ия")
|
(chel2+"èÿ")
|
||||||
(chel2+"ият")
|
(chel2+"èÿò")
|
||||||
(chel1+"a")
|
(chel1+"a")
|
||||||
(chel1+"ата")
|
(chel1+"àòà")
|
||||||
(chel1+"о")
|
(chel1+"î")
|
||||||
(chel1+"ото")
|
(chel1+"îòî")
|
||||||
(ia2e chel1+"и")
|
(ia2e chel1+"è")
|
||||||
(ia2e chel1+"ите")).s ! aform ;
|
(ia2e chel1+"èòå")).s ! aform ;
|
||||||
VPluPerfect aform => regAdjective chetql ! aform ;
|
VPluPerfect aform => regAdjective chetql ! aform ;
|
||||||
VPassive aform => regAdjective cheten ! aform ;
|
VPassive aform => regAdjective cheten ! aform ;
|
||||||
VPresPart aform => regAdjective chetqst ! aform ;
|
VPresPart aform => regAdjective chetqst ! aform ;
|
||||||
VImperative Sg => cheti;
|
VImperative Sg => cheti;
|
||||||
VImperative Pl => case cheti of {
|
VImperative Pl => case cheti of {
|
||||||
chet + "и" => chet + "ете";
|
chet + "è" => chet + "åòå";
|
||||||
ela => ela + "те"
|
ela => ela + "òå"
|
||||||
};
|
};
|
||||||
VNoun nform => let v0 = init chetene
|
VNoun nform => let v0 = init chetene
|
||||||
in (mkNoun (v0+"е")
|
in (mkNoun (v0+"å")
|
||||||
(v0+"ия")
|
(v0+"èÿ")
|
||||||
(v0+"ия")
|
(v0+"èÿ")
|
||||||
(v0+"е")
|
(v0+"å")
|
||||||
ANeut) ! nform;
|
ANeut) ! nform;
|
||||||
VGerund => case chete of {
|
VGerund => case chete of {
|
||||||
rabot + "и" => rabot + "ейки";
|
rabot + "è" => rabot + "åéêè";
|
||||||
_ => chete + "йки"
|
_ => chete + "éêè"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -164,51 +172,51 @@ oper
|
|||||||
table {
|
table {
|
||||||
NF Sg Indef => sg ;
|
NF Sg Indef => sg ;
|
||||||
NF Sg Def => case sg of {
|
NF Sg Def => case sg of {
|
||||||
_+"а"=>sg+"та" ;
|
_+"à"=>sg+"òà" ;
|
||||||
_+"я"=>sg+"та" ;
|
_+"ÿ"=>sg+"òà" ;
|
||||||
_+"о"=>sg+"то" ;
|
_+"î"=>sg+"òî" ;
|
||||||
_+"у"=>sg+"то" ;
|
_+"ó"=>sg+"òî" ;
|
||||||
_+"е"=>sg+"то" ;
|
_+"å"=>sg+"òî" ;
|
||||||
_+"и"=>sg+"то" ;
|
_+"è"=>sg+"òî" ;
|
||||||
s+"й"=>s +"я" ;
|
s+"é"=>s +"ÿ" ;
|
||||||
_+("ър")
|
_+("úð")
|
||||||
=>sg +"а" ;
|
=>sg +"à" ;
|
||||||
_+("тел"|"ар"|"яр"|"ден"
|
_+("òåë"|"àð"|"ÿð"|"äåí"
|
||||||
|"път"|"огън"|"сън"
|
|"ïúò"|"îãúí"|"ñúí"
|
||||||
|"кон"|"крал"|"цар"
|
|"êîí"|"êðàë"|"öàð"
|
||||||
|"зет"|"лакът"|"нокът")
|
|"çåò"|"ëàêúò"|"íîêúò")
|
||||||
=>sg +"я" ;
|
=>sg +"ÿ" ;
|
||||||
_ =>case g of {
|
_ =>case g of {
|
||||||
AFem => sg+"та" ;
|
AFem => sg+"òà" ;
|
||||||
_ => sg+"а"
|
_ => sg+"à"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
NF Pl Indef => pl ;
|
NF Pl Indef => pl ;
|
||||||
NF Pl Def => case pl of {
|
NF Pl Def => case pl of {
|
||||||
_+"а"=>pl+"та" ;
|
_+"à"=>pl+"òà" ;
|
||||||
_+"е"=>pl+"те" ;
|
_+"å"=>pl+"òå" ;
|
||||||
_+"и"=>pl+"те" ;
|
_+"è"=>pl+"òå" ;
|
||||||
_+"я"=>pl+"та" ;
|
_+"ÿ"=>pl+"òà" ;
|
||||||
_ =>pl+"те"
|
_ =>pl+"òå"
|
||||||
} ;
|
} ;
|
||||||
NFSgDefNom => case sg of {
|
NFSgDefNom => case sg of {
|
||||||
_+"а"=>sg+"та" ;
|
_+"à"=>sg+"òà" ;
|
||||||
_+"я"=>sg+"та" ;
|
_+"ÿ"=>sg+"òà" ;
|
||||||
_+"о"=>sg+"то" ;
|
_+"î"=>sg+"òî" ;
|
||||||
_+"у"=>sg+"то" ;
|
_+"ó"=>sg+"òî" ;
|
||||||
_+"е"=>sg+"то" ;
|
_+"å"=>sg+"òî" ;
|
||||||
_+"и"=>sg+"то" ;
|
_+"è"=>sg+"òî" ;
|
||||||
s+"й"=>s +"ят" ;
|
s+"é"=>s +"ÿò" ;
|
||||||
_+("ър")
|
_+("úð")
|
||||||
=>sg +"ът" ;
|
=>sg +"úò" ;
|
||||||
_+("тел"|"ар"|"яр"|"ден"
|
_+("òåë"|"àð"|"ÿð"|"äåí"
|
||||||
|"път"|"огън"|"сън"
|
|"ïúò"|"îãúí"|"ñúí"
|
||||||
|"кон"|"крал"|"цар"
|
|"êîí"|"êðàë"|"öàð"
|
||||||
|"зет"|"лакът"|"нокът")
|
|"çåò"|"ëàêúò"|"íîêúò")
|
||||||
=>sg+"ят" ;
|
=>sg+"ÿò" ;
|
||||||
_ =>case g of {
|
_ =>case g of {
|
||||||
AFem => sg+"та" ;
|
AFem => sg+"òà" ;
|
||||||
_ => sg+"ът"
|
_ => sg+"úò"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
NFPlCount => count ;
|
NFPlCount => count ;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
--# -path=.:../abstract:../../prelude:../common
|
--# -path=.:../abstract:../../prelude:../common
|
||||||
|
|
||||||
resource MorphoFunsBul = open
|
resource MorphoFunsBul = open
|
||||||
@@ -6,7 +6,7 @@ resource MorphoFunsBul = open
|
|||||||
CatBul,
|
CatBul,
|
||||||
MorphoBul
|
MorphoBul
|
||||||
in {
|
in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
oper
|
oper
|
||||||
@@ -57,6 +57,12 @@ oper
|
|||||||
dualV : VTable -> VTable -> V ;
|
dualV : VTable -> VTable -> V ;
|
||||||
dualV imperf perf = {
|
dualV imperf perf = {
|
||||||
s = table {Imperf=>imperf; Perf=>perf};
|
s = table {Imperf=>imperf; Perf=>perf};
|
||||||
|
n = let v0 = init (imperf ! (VImperfect Sg P1)) + "í"
|
||||||
|
in (mkNoun (v0+"å")
|
||||||
|
(v0+"èÿ")
|
||||||
|
(v0+"èÿ")
|
||||||
|
(v0+"å")
|
||||||
|
ANeut).s;
|
||||||
vtype = VNormal;
|
vtype = VNormal;
|
||||||
lock_V=<>
|
lock_V=<>
|
||||||
} ;
|
} ;
|
||||||
@@ -66,6 +72,12 @@ oper
|
|||||||
singleV : VTable -> V ;
|
singleV : VTable -> V ;
|
||||||
singleV vtable = {
|
singleV vtable = {
|
||||||
s = \\_=>vtable;
|
s = \\_=>vtable;
|
||||||
|
n = let v0 = init (vtable ! (VImperfect Sg P1)) + "í"
|
||||||
|
in (mkNoun (v0+"å")
|
||||||
|
(v0+"èÿ")
|
||||||
|
(v0+"èÿ")
|
||||||
|
(v0+"å")
|
||||||
|
ANeut).s;
|
||||||
vtype = VNormal;
|
vtype = VNormal;
|
||||||
lock_V=<>
|
lock_V=<>
|
||||||
} ;
|
} ;
|
||||||
@@ -266,23 +278,13 @@ oper
|
|||||||
|
|
||||||
--2 Proper Names
|
--2 Proper Names
|
||||||
--
|
--
|
||||||
|
mkPN : Str -> Gender -> PN ;
|
||||||
masculine : Gender = Masc ;
|
mkPN s g = {s = s; g = g ; lock_PN = <>} ;
|
||||||
feminine : Gender = Fem ;
|
|
||||||
neutr : Gender = Neut ;
|
|
||||||
|
|
||||||
mkPN = overload {
|
|
||||||
mkPN : Str -> PN = \s -> {s = s; gn = GSg Masc ; lock_PN = <>} ;
|
|
||||||
mkPN : Str -> Gender -> PN =
|
|
||||||
\s,g -> {s = s; gn = GSg g ; lock_PN = <>} ;
|
|
||||||
mkPN : Str -> GenNum -> PN =
|
|
||||||
\s,gn -> {s = s; gn = gn ; lock_PN = <>} ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
--2 IAdv
|
--2 IAdv
|
||||||
--
|
--
|
||||||
|
|
||||||
mkIAdv : Str -> IAdv ;
|
mkIAdv : Str -> IAdv ;
|
||||||
mkIAdv s = {s = table {QDir=>s;QIndir=>s+"то"}; lock_IAdv = <>} ;
|
mkIAdv s = {s = table {QDir=>s;QIndir=>s+"òî"}; lock_IAdv = <>} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
||||||
flags optimize=all_subs ; coding=utf8 ;
|
flags optimize=all_subs ; coding=cp1251 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
DetCN det cn =
|
DetCN det cn =
|
||||||
@@ -42,7 +42,7 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
RObj c => linCase c Pos ++ pn.s;
|
RObj c => linCase c Pos ++ pn.s;
|
||||||
_ => pn.s
|
_ => pn.s
|
||||||
} ;
|
} ;
|
||||||
gn = pn.gn ;
|
gn = GSg pn.g ;
|
||||||
p = NounP3 Pos
|
p = NounP3 Pos
|
||||||
} ;
|
} ;
|
||||||
UsePron p = p ;
|
UsePron p = p ;
|
||||||
@@ -123,17 +123,17 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
|
|
||||||
AdNum adn num = {s = \\gspec => adn.s ++ num.s ! gspec; nn = num.nn} ;
|
AdNum adn num = {s = \\gspec => adn.s ++ num.s ! gspec; nn = num.nn} ;
|
||||||
|
|
||||||
OrdSuperl a = {s = \\aform => "най" ++ hyphen ++ a.s ! aform} ;
|
OrdSuperl a = {s = \\aform => "íàé" ++ hyphen ++ a.s ! aform} ;
|
||||||
|
|
||||||
DefArt = {
|
DefArt = {
|
||||||
s = table {
|
s = table {
|
||||||
True => \\_ => [] ;
|
True => \\_ => [] ;
|
||||||
False => table {
|
False => table {
|
||||||
ASg Masc _ => "той" ;
|
ASg Masc _ => "òîé" ;
|
||||||
ASgMascDefNom => "той" ;
|
ASgMascDefNom => "òîé" ;
|
||||||
ASg Fem _ => "тя" ;
|
ASg Fem _ => "òÿ" ;
|
||||||
ASg Neut _ => "то" ;
|
ASg Neut _ => "òî" ;
|
||||||
APl _ => "те"
|
APl _ => "òå"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
nonEmpty = False ;
|
nonEmpty = False ;
|
||||||
@@ -145,11 +145,11 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
s = table {
|
s = table {
|
||||||
True => \\_ => [] ;
|
True => \\_ => [] ;
|
||||||
False => table {
|
False => table {
|
||||||
ASg Masc _ => "един" ;
|
ASg Masc _ => "åäèí" ;
|
||||||
ASgMascDefNom => "един" ;
|
ASgMascDefNom => "åäèí" ;
|
||||||
ASg Fem _ => "една" ;
|
ASg Fem _ => "åäíà" ;
|
||||||
ASg Neut _ => "едно" ;
|
ASg Neut _ => "åäíî" ;
|
||||||
APl _ => "едни"
|
APl _ => "åäíè"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
nonEmpty = False ;
|
nonEmpty = False ;
|
||||||
@@ -197,9 +197,9 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
|
|
||||||
ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ;
|
ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ;
|
||||||
|
|
||||||
PossNP cn np = {s = \\nf => cn.s ! nf ++ "на" ++ np.s ! (RObj CPrep); g = cn.g} ;
|
PossNP cn np = {s = \\nf => cn.s ! nf ++ "íà" ++ np.s ! (RObj CPrep); g = cn.g} ;
|
||||||
|
|
||||||
PartNP cn np = {s = \\nf => cn.s ! nf ++ "от" ++ np.s ! (RObj CPrep); g = cn.g} ;
|
PartNP cn np = {s = \\nf => cn.s ! nf ++ "îò" ++ np.s ! (RObj CPrep); g = cn.g} ;
|
||||||
|
|
||||||
CountNP det np = {
|
CountNP det np = {
|
||||||
s = \\role => let g = case np.gn of { -- this is lossy
|
s = \\role => let g = case np.gn of { -- this is lossy
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete NumeralBul of Numeral = CatBul [Numeral,Digits] ** open Prelude, ResBul in {
|
concrete NumeralBul of Numeral = CatBul [Numeral,Digits] ** open Prelude, ResBul in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
@@ -11,43 +11,43 @@ lincat
|
|||||||
Sub1000000 = {s : CardOrd => NumF => Str; n : Number} ;
|
Sub1000000 = {s : CardOrd => NumF => Str; n : Number} ;
|
||||||
|
|
||||||
lin num x = {s = \\c => x.s ! c ! Formal; n=x.n} ;
|
lin num x = {s = \\c => x.s ! c ! Formal; n=x.n} ;
|
||||||
lin n2 = mkDigit "два" "двама" "две" "втори" "двайсет" "двеста" "двестата" ;
|
lin n2 = mkDigit "äâà" "äâàìà" "äâå" "âòîðè" "äâàéñåò" "äâåñòà" "äâåñòàòà" ;
|
||||||
lin n3 = mkDigit "три" "трима" "три" "трети" "трийсет" "триста" "тристата" ;
|
lin n3 = mkDigit "òðè" "òðèìà" "òðè" "òðåòè" "òðèéñåò" "òðèñòà" "òðèñòàòà" ;
|
||||||
lin n4 = mkDigit "четири" "четирима" "четири" "четвърти" "четирийсет" "четиристотин" "четиристотинте" ;
|
lin n4 = mkDigit "÷åòèðè" "÷åòèðèìà" "÷åòèðè" "÷åòâúðòè" "÷åòèðèéñåò" "÷åòèðèñòîòèí" "÷åòèðèñòîòèíòå" ;
|
||||||
lin n5 = mkDigit "пет" "петима" "пет" "пети" "петдесет" "петстотин" "петстотинте" ;
|
lin n5 = mkDigit "ïåò" "ïåòèìà" "ïåò" "ïåòè" "ïåòäåñåò" "ïåòñòîòèí" "ïåòñòîòèíòå" ;
|
||||||
lin n6 = mkDigit "шест" "шестима" "шест" "шести" "шейсет" "шестстотин" "шестстотинте" ;
|
lin n6 = mkDigit "øåñò" "øåñòèìà" "øåñò" "øåñòè" "øåéñåò" "øåñòñòîòèí" "øåñòñòîòèíòå" ;
|
||||||
lin n7 = mkDigit "седем" "седмина" "седем" "седми" "седемдесет" "седемстотин" "седемстотинте" ;
|
lin n7 = mkDigit "ñåäåì" "ñåäìèíà" "ñåäåì" "ñåäìè" "ñåäåìäåñåò" "ñåäåìñòîòèí" "ñåäåìñòîòèíòå" ;
|
||||||
lin n8 = mkDigit "осем" "осмина" "осем" "осми" "осемдесет" "осемстотин" "осемстотинте" ;
|
lin n8 = mkDigit "îñåì" "îñìèíà" "îñåì" "îñìè" "îñåìäåñåò" "îñåìñòîòèí" "îñåìñòîòèíòå" ;
|
||||||
lin n9 = mkDigit "девет" "деветима" "девет" "девети" "деветдесет" "деветстотин" "деветстотинте" ;
|
lin n9 = mkDigit "äåâåò" "äåâåòèìà" "äåâåò" "äåâåòè" "äåâåòäåñåò" "äåâåòñòîòèí" "äåâåòñòîòèíòå" ;
|
||||||
|
|
||||||
lin pot01 =
|
lin pot01 =
|
||||||
{s = table {
|
{s = table {
|
||||||
unit => table {
|
unit => table {
|
||||||
NCard (CFMasc Indef _) => "един" ;
|
NCard (CFMasc Indef _) => "åäèí" ;
|
||||||
NCard (CFMasc Def _) => "единия" ;
|
NCard (CFMasc Def _) => "åäèíèÿ" ;
|
||||||
NCard (CFMascDefNom _) => "единият" ;
|
NCard (CFMascDefNom _) => "åäèíèÿò" ;
|
||||||
NCard (CFFem Indef) => "една" ;
|
NCard (CFFem Indef) => "åäíà" ;
|
||||||
NCard (CFFem Def) => "едната" ;
|
NCard (CFFem Def) => "åäíàòà" ;
|
||||||
NCard (CFNeut Indef) => "едно" ;
|
NCard (CFNeut Indef) => "åäíî" ;
|
||||||
NCard (CFNeut Def) => "едното" ;
|
NCard (CFNeut Def) => "åäíîòî" ;
|
||||||
NOrd aform => case aform of {
|
NOrd aform => case aform of {
|
||||||
ASg Masc Indef => "първи" ;
|
ASg Masc Indef => "ïúðâè" ;
|
||||||
ASg Masc Def => "първия" ;
|
ASg Masc Def => "ïúðâèÿ" ;
|
||||||
ASgMascDefNom => "първият" ;
|
ASgMascDefNom => "ïúðâèÿò" ;
|
||||||
ASg Fem Indef => "първа" ;
|
ASg Fem Indef => "ïúðâà" ;
|
||||||
ASg Fem Def => "първата" ;
|
ASg Fem Def => "ïúðâàòà" ;
|
||||||
ASg Neut Indef => "първо" ;
|
ASg Neut Indef => "ïúðâî" ;
|
||||||
ASg Neut Def => "първото" ;
|
ASg Neut Def => "ïúðâîòî" ;
|
||||||
APl Indef => "първи" ;
|
APl Indef => "ïúðâè" ;
|
||||||
APl Def => "първите"
|
APl Def => "ïúðâèòå"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
teen nf => case nf of {
|
teen nf => case nf of {
|
||||||
Formal => mkCardOrd "единадесет" "единадесетима" "единадесет" "единадесети" ;
|
Formal => mkCardOrd "åäèíàäåñåò" "åäèíàäåñåòèìà" "åäèíàäåñåò" "åäèíàäåñåòè" ;
|
||||||
Informal => mkCardOrd "единайсет" "единайсет" "единайсет" "единайсти"
|
Informal => mkCardOrd "åäèíàéñåò" "åäèíàéñåò" "åäèíàéñåò" "åäèíàéñòè"
|
||||||
} ;
|
} ;
|
||||||
ten nf => mkCardOrd "десет" "десетима" "десет" "десети" ;
|
ten nf => mkCardOrd "äåñåò" "äåñåòèìà" "äåñåò" "äåñåòè" ;
|
||||||
hundred => mkCardOrd100 "сто" "стоте" "стотен"
|
hundred => mkCardOrd100 "ñòî" "ñòîòå" "ñòîòåí"
|
||||||
}
|
}
|
||||||
;n = Sg
|
;n = Sg
|
||||||
} ;
|
} ;
|
||||||
@@ -59,12 +59,12 @@ lin pot1to19 d = {s = \\c,nf => d.s ! teen nf ! c; n = Pl; i = True} ;
|
|||||||
lin pot0as1 n = {s = \\c,nf => n.s ! unit ! c; n = n.n; i = True} ;
|
lin pot0as1 n = {s = \\c,nf => n.s ! unit ! c; n = n.n; i = True} ;
|
||||||
lin pot1 d = {s = \\c,nf => d.s ! ten nf ! c; n = Pl; i = True} ;
|
lin pot1 d = {s = \\c,nf => d.s ! ten nf ! c; n = Pl; i = True} ;
|
||||||
lin pot1plus d e = {
|
lin pot1plus d e = {
|
||||||
s = \\c,nf => d.s ! ten nf ! NCard (CFMasc Indef NonHuman) ++ "и" ++ e.s ! unit ! c ; n = Pl; i = False} ;
|
s = \\c,nf => d.s ! ten nf ! NCard (CFMasc Indef NonHuman) ++ "è" ++ e.s ! unit ! c ; n = Pl; i = False} ;
|
||||||
|
|
||||||
lin pot1as2 n = n ;
|
lin pot1as2 n = n ;
|
||||||
lin pot2 n = {s = \\c,nf => n.s ! hundred ! c; n = Pl; i = True} ;
|
lin pot2 n = {s = \\c,nf => n.s ! hundred ! c; n = Pl; i = True} ;
|
||||||
lin pot2plus d e = {
|
lin pot2plus d e = {
|
||||||
s = \\c,nf => d.s ! hundred ! NCard (CFMasc Indef NonHuman) ++ case e.i of {False => []; True => "и"} ++ e.s ! c ! nf ;
|
s = \\c,nf => d.s ! hundred ! NCard (CFMasc Indef NonHuman) ++ case e.i of {False => []; True => "è"} ++ e.s ! c ! nf ;
|
||||||
n = Pl ;
|
n = Pl ;
|
||||||
i = False
|
i = False
|
||||||
} ;
|
} ;
|
||||||
@@ -72,17 +72,17 @@ lin pot2plus d e = {
|
|||||||
lin pot2as3 n = n ;
|
lin pot2as3 n = n ;
|
||||||
lin pot3 n = {
|
lin pot3 n = {
|
||||||
s = \\c,nf => case n.n of {
|
s = \\c,nf => case n.n of {
|
||||||
Sg => mkCardOrd100 "хиляда" "хилядата" "хиляден" ! c ;
|
Sg => mkCardOrd100 "õèëÿäà" "õèëÿäàòà" "õèëÿäåí" ! c ;
|
||||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "хиляди" "хилядите" "хиляден" ! c
|
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "õèëÿäè" "õèëÿäèòå" "õèëÿäåí" ! c
|
||||||
} ;
|
} ;
|
||||||
n = Pl
|
n = Pl
|
||||||
} ;
|
} ;
|
||||||
lin pot3plus n m = {
|
lin pot3plus n m = {
|
||||||
s = \\c,nf => case n.n of {
|
s = \\c,nf => case n.n of {
|
||||||
Sg => mkCardOrd100 "хиляда" "хилядата" "хиляден" ! NCard (CFMasc Indef NonHuman) ;
|
Sg => mkCardOrd100 "õèëÿäà" "õèëÿäàòà" "õèëÿäåí" ! NCard (CFMasc Indef NonHuman) ;
|
||||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "хиляди" "хилядите" "хиляден" ! NCard (CFMasc Indef NonHuman)
|
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "õèëÿäè" "õèëÿäèòå" "õèëÿäåí" ! NCard (CFMasc Indef NonHuman)
|
||||||
}
|
}
|
||||||
++ case m.i of {False => []; True => "и"} ++ m.s ! c ! nf ;
|
++ case m.i of {False => []; True => "è"} ++ m.s ! c ! nf ;
|
||||||
n = Pl
|
n = Pl
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -101,16 +101,16 @@ lin pot3plus n m = {
|
|||||||
tail = inc i.tail
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
D_0 = mk3Dig "0" "0" "0ев" Pl ;
|
D_0 = mk3Dig "0" "0" "0åâ" Pl ;
|
||||||
D_1 = mk3Dig "1" "1" "1ви" Sg ;
|
D_1 = mk3Dig "1" "1" "1âè" Sg ;
|
||||||
D_2 = mk2Dig "2" "2ри" ;
|
D_2 = mk2Dig "2" "2ðè" ;
|
||||||
D_3 = mkDig "3" ;
|
D_3 = mkDig "3" ;
|
||||||
D_4 = mkDig "4" ;
|
D_4 = mkDig "4" ;
|
||||||
D_5 = mkDig "5" ;
|
D_5 = mkDig "5" ;
|
||||||
D_6 = mkDig "6" ;
|
D_6 = mkDig "6" ;
|
||||||
D_7 = mk3Dig "7" "7на" "7ми" Pl ;
|
D_7 = mk3Dig "7" "7íà" "7ìè" Pl ;
|
||||||
D_8 = mk3Dig "8" "8на" "8ми" Pl ;
|
D_8 = mk3Dig "8" "8íà" "8ìè" Pl ;
|
||||||
D_9 = mk3Dig "9" "9има" "9ти" Pl ;
|
D_9 = mk3Dig "9" "9èìà" "9òè" Pl ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
spaceIf : DTail -> Str = \t -> case t of {
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
@@ -124,8 +124,8 @@ lin pot3plus n m = {
|
|||||||
T3 => T1
|
T3 => T1
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c (c+"ма") o Pl ;
|
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c (c+"ìà") o Pl ;
|
||||||
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ти") ;
|
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "òè") ;
|
||||||
|
|
||||||
mk3Dig : Str -> Str -> Str -> Number -> TDigit = \c1,c2,o,n -> {
|
mk3Dig : Str -> Str -> Str -> Number -> TDigit = \c1,c2,o,n -> {
|
||||||
s = mkCardOrd c1 c2 c1 o ;
|
s = mkCardOrd c1 c2 c1 o ;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in {
|
concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
@@ -12,7 +12,7 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
|||||||
let cls = cl.s ! t ! a ! p
|
let cls = cl.s ! t ! a ! p
|
||||||
in table {
|
in table {
|
||||||
QDir => cls ! Quest ;
|
QDir => cls ! Quest ;
|
||||||
QIndir => "ако" ++ cls ! Main
|
QIndir => "àêî" ++ cls ! Main
|
||||||
} ---- "whether" in ExtEng
|
} ---- "whether" in ExtEng
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
QuestSlash ip slash =
|
QuestSlash ip slash =
|
||||||
mkQuestion {s = \\qform => slash.c2.s ++ case slash.c2.c of {Dat=>"на";_=>[]} ++ ip.s ! (RObj slash.c2.c) ! qform}
|
mkQuestion {s = \\qform => slash.c2.s ++ case slash.c2.c of {Dat=>"íà";_=>[]} ++ ip.s ! (RObj slash.c2.c) ! qform}
|
||||||
{s = slash.s ! (agrP3 ip.gn) } ;
|
{s = slash.s ! (agrP3 ip.gn) } ;
|
||||||
|
|
||||||
QuestIAdv iadv cl = mkQuestion iadv cl ;
|
QuestIAdv iadv cl = mkQuestion iadv cl ;
|
||||||
@@ -30,7 +30,7 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
|||||||
QuestIComp icomp np =
|
QuestIComp icomp np =
|
||||||
mkQuestion icomp (mkClause (np.s ! RSubj) np.gn np.p (predV verbBe)) ;
|
mkQuestion icomp (mkClause (np.s ! RSubj) np.gn np.p (predV verbBe)) ;
|
||||||
|
|
||||||
PrepIP p ip = {s = \\qform => p.s ++ case p.c of {Dat=>"на";_=>[]} ++ ip.s ! RSubj ! qform} ;
|
PrepIP p ip = {s = \\qform => p.s ++ case p.c of {Dat=>"íà";_=>[]} ++ ip.s ! RSubj ! qform} ;
|
||||||
|
|
||||||
AdvIP ip adv = {
|
AdvIP ip adv = {
|
||||||
s = \\role,qform => ip.s ! role ! qform ++ adv.s ;
|
s = \\role,qform => ip.s ! role ! qform ++ adv.s ;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete RelativeBul of Relative = CatBul ** open ResBul in {
|
concrete RelativeBul of Relative = CatBul ** open ResBul in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
RelCl cl = {
|
RelCl cl = {
|
||||||
s = \\t,a,p,agr => suchRP ! agr.gn ++ "че" ++ cl.s ! t ! a ! p ! Main
|
s = \\t,a,p,agr => suchRP ! agr.gn ++ "֌" ++ cl.s ! t ! a ! p ! Main
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelVP rp vp = {
|
RelVP rp vp = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--# -path=.:../abstract:../common:../../prelude
|
--# -path=.:../abstract:../common:../../prelude
|
||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
|
|
||||||
--1 Bulgarian auxiliary operations.
|
--1 Bulgarian auxiliary operations.
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
resource ResBul = ParamX ** open Prelude, Predef in {
|
resource ResBul = ParamX ** open Prelude, Predef in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding=utf8 ; optimize=all ;
|
coding=cp1251 ; optimize=all ;
|
||||||
|
|
||||||
|
|
||||||
-- Some parameters, such as $Number$, are inherited from $ParamX$.
|
-- Some parameters, such as $Number$, are inherited from $ParamX$.
|
||||||
@@ -328,149 +328,149 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
|
|
||||||
auxBe : VTable =
|
auxBe : VTable =
|
||||||
table {
|
table {
|
||||||
VPres Sg P1 => "съм" ;
|
VPres Sg P1 => "ñúì" ;
|
||||||
VPres Sg P2 => "си" ;
|
VPres Sg P2 => "ñè" ;
|
||||||
VPres Sg P3 => "е" ;
|
VPres Sg P3 => "å" ;
|
||||||
VPres Pl P1 => "сме" ;
|
VPres Pl P1 => "ñìå" ;
|
||||||
VPres Pl P2 => "сте" ;
|
VPres Pl P2 => "ñòå" ;
|
||||||
VPres Pl P3 => "са" ;
|
VPres Pl P3 => "ñà" ;
|
||||||
VAorist Sg P1 => "бях" ;
|
VAorist Sg P1 => "áÿõ" ;
|
||||||
VAorist Sg _ => "беше" ;
|
VAorist Sg _ => "áåøå" ;
|
||||||
VAorist Pl P1 => "бяхме" ;
|
VAorist Pl P1 => "áÿõìå" ;
|
||||||
VAorist Pl P2 => "бяхте" ;
|
VAorist Pl P2 => "áÿõòå" ;
|
||||||
VAorist Pl P3 => "бяха" ;
|
VAorist Pl P3 => "áÿõà" ;
|
||||||
VImperfect Sg P1 => "бях" ;
|
VImperfect Sg P1 => "áÿõ" ;
|
||||||
VImperfect Sg _ => "беше" ;
|
VImperfect Sg _ => "áåøå" ;
|
||||||
VImperfect Pl P1 => "бяхме" ;
|
VImperfect Pl P1 => "áÿõìå" ;
|
||||||
VImperfect Pl P2 => "бяхте" ;
|
VImperfect Pl P2 => "áÿõòå" ;
|
||||||
VImperfect Pl P3 => "бяха" ;
|
VImperfect Pl P3 => "áÿõà" ;
|
||||||
VPerfect aform => regAdjective "бил" ! aform ;
|
VPerfect aform => regAdjective "áèë" ! aform ;
|
||||||
VPluPerfect aform => regAdjective "бил" ! aform ;
|
VPluPerfect aform => regAdjective "áèë" ! aform ;
|
||||||
VPassive aform => regAdjective "бъден" ! aform ;
|
VPassive aform => regAdjective "áúäåí" ! aform ;
|
||||||
VPresPart aform => regAdjective "бъдещ" ! aform ;
|
VPresPart aform => regAdjective "áúäåù" ! aform ;
|
||||||
VImperative Sg => "бъди" ;
|
VImperative Sg => "áúäè" ;
|
||||||
VImperative Pl => "бъдете" ;
|
VImperative Pl => "áúäåòå" ;
|
||||||
VNoun _ => "бъдене";
|
VNoun _ => "áúäåíå";
|
||||||
VGerund => "бидейки"
|
VGerund => "áèäåéêè"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
auxWould : VTable =
|
auxWould : VTable =
|
||||||
table {
|
table {
|
||||||
VPres Sg P1 => "бъда" ;
|
VPres Sg P1 => "áúäà" ;
|
||||||
VPres Sg P2 => "бъдеш" ;
|
VPres Sg P2 => "áúäåø" ;
|
||||||
VPres Sg P3 => "бъде" ;
|
VPres Sg P3 => "áúäå" ;
|
||||||
VPres Pl P1 => "бъдем" ;
|
VPres Pl P1 => "áúäåì" ;
|
||||||
VPres Pl P2 => "бъдете" ;
|
VPres Pl P2 => "áúäåòå" ;
|
||||||
VPres Pl P3 => "бъдат" ;
|
VPres Pl P3 => "áúäàò" ;
|
||||||
VAorist Sg P1 => "бях" ;
|
VAorist Sg P1 => "áÿõ" ;
|
||||||
VAorist Sg _ => "беше" ;
|
VAorist Sg _ => "áåøå" ;
|
||||||
VAorist Pl P1 => "бяхме" ;
|
VAorist Pl P1 => "áÿõìå" ;
|
||||||
VAorist Pl P2 => "бяхте" ;
|
VAorist Pl P2 => "áÿõòå" ;
|
||||||
VAorist Pl P3 => "бяха" ;
|
VAorist Pl P3 => "áÿõà" ;
|
||||||
VImperfect Sg P1 => "бъдех" ;
|
VImperfect Sg P1 => "áúäåõ" ;
|
||||||
VImperfect Sg _ => "бъдеше" ;
|
VImperfect Sg _ => "áúäåøå" ;
|
||||||
VImperfect Pl P1 => "бъдехме" ;
|
VImperfect Pl P1 => "áúäåõìå" ;
|
||||||
VImperfect Pl P2 => "бъдехте" ;
|
VImperfect Pl P2 => "áúäåõòå" ;
|
||||||
VImperfect Pl P3 => "бъдеха" ;
|
VImperfect Pl P3 => "áúäåõà" ;
|
||||||
VPerfect aform => regAdjective "бил" ! aform ;
|
VPerfect aform => regAdjective "áèë" ! aform ;
|
||||||
VPluPerfect aform => regAdjective "бъдел" ! aform ;
|
VPluPerfect aform => regAdjective "áúäåë" ! aform ;
|
||||||
VPassive aform => regAdjective "бъден" ! aform ;
|
VPassive aform => regAdjective "áúäåí" ! aform ;
|
||||||
VPresPart aform => regAdjective "бъдещ" ! aform ;
|
VPresPart aform => regAdjective "áúäåù" ! aform ;
|
||||||
VImperative Sg => "бъди" ;
|
VImperative Sg => "áúäè" ;
|
||||||
VImperative Pl => "бъдете" ;
|
VImperative Pl => "áúäåòå" ;
|
||||||
VNoun _ => "бъдене";
|
VNoun _ => "áúäåíå";
|
||||||
VGerund => "бъдейки"
|
VGerund => "áúäåéêè"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
auxCond : Number => Person => Str =
|
auxCond : Number => Person => Str =
|
||||||
table {
|
table {
|
||||||
Sg => table {
|
Sg => table {
|
||||||
P1 => "бих" ;
|
P1 => "áèõ" ;
|
||||||
_ => "би"
|
_ => "áè"
|
||||||
} ;
|
} ;
|
||||||
Pl => table {
|
Pl => table {
|
||||||
P1 => "бихме" ;
|
P1 => "áèõìå" ;
|
||||||
P2 => "бихте" ;
|
P2 => "áèõòå" ;
|
||||||
P3 => "биха"
|
P3 => "áèõà"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
verbBe : Verb = {s=table Aspect [auxBe; auxWould] ; vtype=VNormal} ;
|
verbBe : Verb = {s=table Aspect [auxBe; auxWould] ; vtype=VNormal} ;
|
||||||
|
|
||||||
reflClitics : Case => Str = table {Acc => "се"; Dat => "си"; WithPrep => with_Word ++ "себе си"; CPrep => "себе си"} ;
|
reflClitics : Case => Str = table {Acc => "ñå"; Dat => "ñè"; WithPrep => with_Word ++ "ñåáå ñè"; CPrep => "ñåáå ñè"} ;
|
||||||
|
|
||||||
personalClitics : Agr -> Case => Str = \agr ->
|
personalClitics : Agr -> Case => Str = \agr ->
|
||||||
table {
|
table {
|
||||||
Acc => case agr.gn of {
|
Acc => case agr.gn of {
|
||||||
GSg g => case agr.p of {
|
GSg g => case agr.p of {
|
||||||
P1 => "ме" ;
|
P1 => "ìå" ;
|
||||||
P2 => "те" ;
|
P2 => "òå" ;
|
||||||
P3 => case g of {
|
P3 => case g of {
|
||||||
Masc => "го" ;
|
Masc => "ãî" ;
|
||||||
Fem => "я" ;
|
Fem => "ÿ" ;
|
||||||
Neut => "го"
|
Neut => "ãî"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
GPl => case agr.p of {
|
GPl => case agr.p of {
|
||||||
P1 => "ни" ;
|
P1 => "íè" ;
|
||||||
P2 => "ви" ;
|
P2 => "âè" ;
|
||||||
P3 => "ги"
|
P3 => "ãè"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
Dat => case agr.gn of {
|
Dat => case agr.gn of {
|
||||||
GSg g => case agr.p of {
|
GSg g => case agr.p of {
|
||||||
P1 => "ми" ;
|
P1 => "ìè" ;
|
||||||
P2 => "ти" ;
|
P2 => "òè" ;
|
||||||
P3 => case g of {
|
P3 => case g of {
|
||||||
Masc => "му" ;
|
Masc => "ìó" ;
|
||||||
Fem => "й" ;
|
Fem => "é" ;
|
||||||
Neut => "му"
|
Neut => "ìó"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
GPl => case agr.p of {
|
GPl => case agr.p of {
|
||||||
P1 => "ни" ;
|
P1 => "íè" ;
|
||||||
P2 => "ви" ;
|
P2 => "âè" ;
|
||||||
P3 => "им"
|
P3 => "èì"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
WithPrep => case agr.gn of {
|
WithPrep => case agr.gn of {
|
||||||
GSg g => case agr.p of {
|
GSg g => case agr.p of {
|
||||||
P1 => with_Word ++ "мен" ;
|
P1 => with_Word ++ "ìåí" ;
|
||||||
P2 => with_Word ++ "теб" ;
|
P2 => with_Word ++ "òåá" ;
|
||||||
P3 => case g of {
|
P3 => case g of {
|
||||||
Masc => with_Word ++ "него" ;
|
Masc => with_Word ++ "íåãî" ;
|
||||||
Fem => with_Word ++ "нея" ;
|
Fem => with_Word ++ "íåÿ" ;
|
||||||
Neut => with_Word ++ "него"
|
Neut => with_Word ++ "íåãî"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
GPl => case agr.p of {
|
GPl => case agr.p of {
|
||||||
P1 => with_Word ++ "нас" ;
|
P1 => with_Word ++ "íàñ" ;
|
||||||
P2 => with_Word ++ "вас" ;
|
P2 => with_Word ++ "âàñ" ;
|
||||||
P3 => with_Word ++ "тях"
|
P3 => with_Word ++ "òÿõ"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
CPrep => case agr.gn of {
|
CPrep => case agr.gn of {
|
||||||
GSg g => case agr.p of {
|
GSg g => case agr.p of {
|
||||||
P1 => "мен" ;
|
P1 => "ìåí" ;
|
||||||
P2 => "теб" ;
|
P2 => "òåá" ;
|
||||||
P3 => case g of {
|
P3 => case g of {
|
||||||
Masc => "него" ;
|
Masc => "íåãî" ;
|
||||||
Fem => "нея" ;
|
Fem => "íåÿ" ;
|
||||||
Neut => "него"
|
Neut => "íåãî"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
GPl => case agr.p of {
|
GPl => case agr.p of {
|
||||||
P1 => "нас" ;
|
P1 => "íàñ" ;
|
||||||
P2 => "вас" ;
|
P2 => "âàñ" ;
|
||||||
P3 => "тях"
|
P3 => "òÿõ"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ia2e : Str -> Str = -- to be used when the next syllable has vowel different from "а","ъ","о" or "у"
|
ia2e : Str -> Str = -- to be used when the next syllable has vowel different from "à","ú","î" or "ó"
|
||||||
\s -> case s of {
|
\s -> case s of {
|
||||||
x + "я" + y@(["бвгджзклмнпрстфхцчш"]*)
|
x@(_*+_) + "ÿ" + y@(("á"|"â"|"ã"|"ä"|"æ"|"ç"|"ê"|"ë"|"ì"|"í"|"ï"|"ð"|"ñ"|"ò"|"ô"|"õ"|"ö"|"÷"|"ø")*)
|
||||||
=> x+"е"+y;
|
=> x+"å"+y;
|
||||||
_ => s
|
_ => s
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -478,19 +478,19 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
\base ->
|
\base ->
|
||||||
let base0 : Str
|
let base0 : Str
|
||||||
= case base of {
|
= case base of {
|
||||||
x+"и" => x;
|
x+"è" => x;
|
||||||
x => x
|
x => x
|
||||||
}
|
}
|
||||||
in table {
|
in table {
|
||||||
ASg Masc Indef => base ;
|
ASg Masc Indef => base ;
|
||||||
ASg Masc Def => (base0+"ия") ;
|
ASg Masc Def => (base0+"èÿ") ;
|
||||||
ASgMascDefNom => (base0+"ият") ;
|
ASgMascDefNom => (base0+"èÿò") ;
|
||||||
ASg Fem Indef => (base0+"а") ;
|
ASg Fem Indef => (base0+"à") ;
|
||||||
ASg Fem Def => (base0+"ата") ;
|
ASg Fem Def => (base0+"àòà") ;
|
||||||
ASg Neut Indef => (base0+"о") ;
|
ASg Neut Indef => (base0+"î") ;
|
||||||
ASg Neut Def => (base0+"ото") ;
|
ASg Neut Def => (base0+"îòî") ;
|
||||||
APl Indef => (ia2e base0+"и") ;
|
APl Indef => (ia2e base0+"è") ;
|
||||||
APl Def => (ia2e base0+"ите")
|
APl Def => (ia2e base0+"èòå")
|
||||||
};
|
};
|
||||||
|
|
||||||
-- For $Sentence$.
|
-- For $Sentence$.
|
||||||
@@ -545,37 +545,37 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
_ => auxPres++s++clitic.s
|
_ => auxPres++s++clitic.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
li0 = case <verb.ad.isEmpty,q0> of {<False,True> => "ли"; _ => []} ;
|
li0 = case <verb.ad.isEmpty,q0> of {<False,True> => "ëè"; _ => []} ;
|
||||||
|
|
||||||
q = case verb.ad.isEmpty of {True => q0; False => False} ;
|
q = case verb.ad.isEmpty of {True => q0; False => False} ;
|
||||||
li = case q of {True => "ли"; _ => []} ;
|
li = case q of {True => "ëè"; _ => []} ;
|
||||||
|
|
||||||
vf1 : Str -> {s1 : Str; s2 : Str} = \s ->
|
vf1 : Str -> {s1 : Str; s2 : Str} = \s ->
|
||||||
case p of {
|
case p of {
|
||||||
Pos => case q of {True => {s1=[]; s2="ли"++apc []};
|
Pos => case q of {True => {s1=[]; s2="ëè"++apc []};
|
||||||
False => {s1=apc []; s2=[]}} ;
|
False => {s1=apc []; s2=[]}} ;
|
||||||
Neg => {s1="не"++apc li; s2=[]}
|
Neg => {s1="íå"++apc li; s2=[]}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
vf2 : Str -> {s1 : Str; s2 : Str} = \s ->
|
vf2 : Str -> {s1 : Str; s2 : Str} = \s ->
|
||||||
case p of {
|
case p of {
|
||||||
Pos => case q of {True => {s1=[]; s2="ли"++s};
|
Pos => case q of {True => {s1=[]; s2="ëè"++s};
|
||||||
False => {s1=s; s2=[]}} ;
|
False => {s1=s; s2=[]}} ;
|
||||||
Neg => case verb.vtype of
|
Neg => case verb.vtype of
|
||||||
{VNormal => {s1="не"++s; s2=li} ;
|
{VNormal => {s1="íå"++s; s2=li} ;
|
||||||
_ => {s1="не"++s++li; s2=[]}}
|
_ => {s1="íå"++s++li; s2=[]}}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
vf3 : Str -> {s1 : Str; s2 : Str} = \s ->
|
vf3 : Str -> {s1 : Str; s2 : Str} = \s ->
|
||||||
case p of {
|
case p of {
|
||||||
Pos => {s1="ще"++s; s2=li} ;
|
Pos => {s1="ùå"++s; s2=li} ;
|
||||||
Neg => {s1="няма"++li++"да"++s; s2=[]}
|
Neg => {s1="íÿìà"++li++"äà"++s; s2=[]}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
vf4 : Str -> {s1 : Str; s2 : Str} = \s ->
|
vf4 : Str -> {s1 : Str; s2 : Str} = \s ->
|
||||||
case p of {
|
case p of {
|
||||||
Pos => {s1= s++li++clitic.s; s2=[]} ;
|
Pos => {s1= s++li++clitic.s; s2=[]} ;
|
||||||
Neg => {s1="не"++s++li++clitic.s; s2=[]}
|
Neg => {s1="íå"++s++li++clitic.s; s2=[]}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
verbs : {aux:{s1:Str; s2:Str}; main:Str} =
|
verbs : {aux:{s1:Str; s2:Str}; main:Str} =
|
||||||
@@ -600,8 +600,8 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
VPhrasal Dat => {s=personalClitics agr ! Dat++vp.clitics; agr={gn=GSg Neut; p=P3}} ;
|
VPhrasal Dat => {s=personalClitics agr ! Dat++vp.clitics; agr={gn=GSg Neut; p=P3}} ;
|
||||||
VPhrasal c => {s=vp.clitics++personalClitics agr ! c; agr={gn=GSg Neut; p=P3}}
|
VPhrasal c => {s=vp.clitics++personalClitics agr ! c; agr={gn=GSg Neut; p=P3}}
|
||||||
} ;
|
} ;
|
||||||
pol = case p of {Pos => ""; Neg => "не"}
|
pol = case p of {Pos => ""; Neg => "íå"}
|
||||||
in vp.ad.s ++ "да" ++ pol ++ clitic.s ++
|
in vp.ad.s ++ "äà" ++ pol ++ clitic.s ++
|
||||||
case a of {
|
case a of {
|
||||||
Simul => vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
|
Simul => vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
|
||||||
Anter => auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++
|
Anter => auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++
|
||||||
@@ -629,10 +629,10 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
linCase : Case -> Polarity -> Str =
|
linCase : Case -> Polarity -> Str =
|
||||||
\c,p -> case c of {
|
\c,p -> case c of {
|
||||||
Acc => "" ;
|
Acc => "" ;
|
||||||
Dat => "на" ;
|
Dat => "íà" ;
|
||||||
WithPrep => case p of {
|
WithPrep => case p of {
|
||||||
Pos => with_Word ;
|
Pos => with_Word ;
|
||||||
Neg => "без"
|
Neg => "áåç"
|
||||||
} ;
|
} ;
|
||||||
CPrep => ""
|
CPrep => ""
|
||||||
} ;
|
} ;
|
||||||
@@ -656,17 +656,17 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
{s = table {
|
{s = table {
|
||||||
unit => mkCardOrd dva dvama dve vtori ;
|
unit => mkCardOrd dva dvama dve vtori ;
|
||||||
teen nf => case nf of {
|
teen nf => case nf of {
|
||||||
Formal => mkCardOrd (dva+"надесет") (dva+"надесетима") (dva+"надесет") (dva+"надесети") ;
|
Formal => mkCardOrd (dva+"íàäåñåò") (dva+"íàäåñåòèìà") (dva+"íàäåñåò") (dva+"íàäåñåòè") ;
|
||||||
Informal => mkCardOrd (dva+"найсет") (dva+"найсет") (dva+"найсет") (dva+"найсти")
|
Informal => mkCardOrd (dva+"íàéñåò") (dva+"íàéñåò") (dva+"íàéñåò") (dva+"íàéñòè")
|
||||||
} ;
|
} ;
|
||||||
ten nf => case nf of {
|
ten nf => case nf of {
|
||||||
Formal => mkCardOrd (dva+"десет") (dva+"десетима") (dva+"десет") (dva+"десети") ;
|
Formal => mkCardOrd (dva+"äåñåò") (dva+"äåñåòèìà") (dva+"äåñåò") (dva+"äåñåòè") ;
|
||||||
Informal => mkCardOrd dvaiset dvaiset dvaiset (dvaiset+"и")
|
Informal => mkCardOrd dvaiset dvaiset dvaiset (dvaiset+"è")
|
||||||
} ;
|
} ;
|
||||||
hundred => let dvesten : Str
|
hundred => let dvesten : Str
|
||||||
= case dvesta of {
|
= case dvesta of {
|
||||||
dvest+"а" => dvest+"ен" ;
|
dvest+"à" => dvest+"åí" ;
|
||||||
chetiristot+"ин" => chetiristot+"ен"
|
chetiristot+"èí" => chetiristot+"åí"
|
||||||
}
|
}
|
||||||
in mkCardOrd100 dvesta dvestata dvesten
|
in mkCardOrd100 dvesta dvestata dvesten
|
||||||
}
|
}
|
||||||
@@ -676,19 +676,19 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
\dva, dvama, dve, vtori ->
|
\dva, dvama, dve, vtori ->
|
||||||
table {
|
table {
|
||||||
NCard dg => digitGenderSpecies dva dvama dve ! dg ;
|
NCard dg => digitGenderSpecies dva dvama dve ! dg ;
|
||||||
NOrd aform => let vtora : Str = case vtori of {_+"в" => vtori; _ => init vtori} + "а" ;
|
NOrd aform => let vtora : Str = case vtori of {_+"â" => vtori; _ => init vtori} + "à" ;
|
||||||
vtoro : Str = case vtori of {_+"в" => vtori; _ => init vtori} + "о";
|
vtoro : Str = case vtori of {_+"â" => vtori; _ => init vtori} + "î";
|
||||||
i : Str = case vtori of {_+"в" => "и"; _ => ""}
|
i : Str = case vtori of {_+"â" => "è"; _ => ""}
|
||||||
in case aform of {
|
in case aform of {
|
||||||
ASg Masc Indef => vtori ;
|
ASg Masc Indef => vtori ;
|
||||||
ASg Masc Def => vtori+i+"я" ;
|
ASg Masc Def => vtori+i+"ÿ" ;
|
||||||
ASgMascDefNom => vtori+i+"ят" ;
|
ASgMascDefNom => vtori+i+"ÿò" ;
|
||||||
ASg Fem Indef => vtora ;
|
ASg Fem Indef => vtora ;
|
||||||
ASg Fem Def => vtora+"та" ;
|
ASg Fem Def => vtora+"òà" ;
|
||||||
ASg Neut Indef => vtoro ;
|
ASg Neut Indef => vtoro ;
|
||||||
ASg Neut Def => vtoro+"то" ;
|
ASg Neut Def => vtoro+"òî" ;
|
||||||
APl Indef => vtori+i ;
|
APl Indef => vtori+i ;
|
||||||
APl Def => vtori+i+"те"
|
APl Def => vtori+i+"òå"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -705,14 +705,14 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
NOrd aform => let stotn = init (init stoten) + last stoten ;
|
NOrd aform => let stotn = init (init stoten) + last stoten ;
|
||||||
in case aform of {
|
in case aform of {
|
||||||
ASg Masc Indef => stoten ;
|
ASg Masc Indef => stoten ;
|
||||||
ASg Masc Def => stotn+"ия" ;
|
ASg Masc Def => stotn+"èÿ" ;
|
||||||
ASgMascDefNom => stotn+"ият" ;
|
ASgMascDefNom => stotn+"èÿò" ;
|
||||||
ASg Fem Indef => stotn+"а" ;
|
ASg Fem Indef => stotn+"à" ;
|
||||||
ASg Fem Def => stotn+"ата" ;
|
ASg Fem Def => stotn+"àòà" ;
|
||||||
ASg Neut Indef => stotn+"о" ;
|
ASg Neut Indef => stotn+"î" ;
|
||||||
ASg Neut Def => stotn+"ото" ;
|
ASg Neut Def => stotn+"îòî" ;
|
||||||
APl Indef => stotn+"и" ;
|
APl Indef => stotn+"è" ;
|
||||||
APl Def => stotn+"ите"
|
APl Def => stotn+"èòå"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -720,12 +720,12 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
\dva, dvama, dve
|
\dva, dvama, dve
|
||||||
-> let addDef : Str -> Gender -> Str =
|
-> let addDef : Str -> Gender -> Str =
|
||||||
\s,g -> case s of {
|
\s,g -> case s of {
|
||||||
dves+"та" => dves+"тате" ;
|
dves+"òà" => dves+"òàòå" ;
|
||||||
dv+"а" => dv+"ата" ;
|
dv+"à" => dv+"àòà" ;
|
||||||
"0" => s+"та" ;
|
"0" => s+"òà" ;
|
||||||
"1" => s+case g of {Masc => "ят"; Fem => "та"; Neut => "то"} ;
|
"1" => s+case g of {Masc => "ÿò"; Fem => "òà"; Neut => "òî"} ;
|
||||||
"2" => s+case g of {Masc => "та"; _ => "те"} ;
|
"2" => s+case g of {Masc => "òà"; _ => "òå"} ;
|
||||||
x => x+"те"
|
x => x+"òå"
|
||||||
}
|
}
|
||||||
in table {
|
in table {
|
||||||
CFMasc Indef NonHuman => dva ;
|
CFMasc Indef NonHuman => dva ;
|
||||||
@@ -743,19 +743,19 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} =
|
mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} =
|
||||||
\koi,kogo,gn -> {
|
\koi,kogo,gn -> {
|
||||||
s = table {
|
s = table {
|
||||||
RSubj => table QForm [koi; koi+"то"] ;
|
RSubj => table QForm [koi; koi+"òî"] ;
|
||||||
RObj Acc => table QForm [kogo; kogo+"то"] ;
|
RObj Acc => table QForm [kogo; kogo+"òî"] ;
|
||||||
RObj Dat => table QForm ["на" ++ kogo; "на" ++ kogo+"то"] ;
|
RObj Dat => table QForm ["íà" ++ kogo; "íà" ++ kogo+"òî"] ;
|
||||||
RObj WithPrep => table QForm [with_Word ++ kogo; with_Word ++ kogo+"то"] ;
|
RObj WithPrep => table QForm [with_Word ++ kogo; with_Word ++ kogo+"òî"] ;
|
||||||
RObj CPrep => table QForm [kogo; kogo+"то"] ;
|
RObj CPrep => table QForm [kogo; kogo+"òî"] ;
|
||||||
RVoc => table QForm [koi; koi+"то"]
|
RVoc => table QForm [koi; koi+"òî"]
|
||||||
} ;
|
} ;
|
||||||
gn = gn
|
gn = gn
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
with_Word : Str
|
with_Word : Str
|
||||||
= pre { "с" ;
|
= pre { "ñ" ;
|
||||||
"със" / strs {"с" ; "з" ; "С" ; "З"}
|
"ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkPron : (az,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) ->
|
mkPron : (az,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) ->
|
||||||
@@ -812,43 +812,43 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
|
|
||||||
whichRP : GenNum => Str
|
whichRP : GenNum => Str
|
||||||
= table {
|
= table {
|
||||||
GSg Masc => "който" ;
|
GSg Masc => "êîéòî" ;
|
||||||
GSg Fem => "която" ;
|
GSg Fem => "êîÿòî" ;
|
||||||
GSg Neut => "което" ;
|
GSg Neut => "êîåòî" ;
|
||||||
GPl => "които"
|
GPl => "êîèòî"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
suchRP : GenNum => Str
|
suchRP : GenNum => Str
|
||||||
= table {
|
= table {
|
||||||
GSg Masc => "такъв" ;
|
GSg Masc => "òàêúâ" ;
|
||||||
GSg Fem => "такава" ;
|
GSg Fem => "òàêàâà" ;
|
||||||
GSg Neut => "такова" ;
|
GSg Neut => "òàêîâà" ;
|
||||||
GPl => "такива"
|
GPl => "òàêèâà"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
thisRP : GenNum => Str
|
thisRP : GenNum => Str
|
||||||
= table {
|
= table {
|
||||||
GSg Masc => "този" ;
|
GSg Masc => "òîçè" ;
|
||||||
GSg Fem => "тaзи" ;
|
GSg Fem => "òaçè" ;
|
||||||
GSg Neut => "това" ;
|
GSg Neut => "òîâà" ;
|
||||||
GPl => "тези"
|
GPl => "òåçè"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
linCoord : Str -> Ints 4 => Str ;
|
linCoord : Str -> Ints 4 => Str ;
|
||||||
linCoord comma = table {0 => "и"; 1=>"или"; 2=>"нито"; 3=>comma; 4=>[]} ;
|
linCoord comma = table {0 => "è"; 1=>"èëè"; 2=>"íèòî"; 3=>comma; 4=>[]} ;
|
||||||
|
|
||||||
hyphen : Str = SOFT_BIND ++ "-" ++ SOFT_BIND ;
|
hyphen : Str = SOFT_BIND ++ "-" ++ SOFT_BIND ;
|
||||||
|
|
||||||
reflPron : AForm => Str =
|
reflPron : AForm => Str =
|
||||||
table {
|
table {
|
||||||
ASg Masc Indef => "свой" ;
|
ASg Masc Indef => "ñâîé" ;
|
||||||
ASg Masc Def => "своя" ;
|
ASg Masc Def => "ñâîÿ" ;
|
||||||
ASgMascDefNom => "своят" ;
|
ASgMascDefNom => "ñâîÿò" ;
|
||||||
ASg Fem Indef => "своя" ;
|
ASg Fem Indef => "ñâîÿ" ;
|
||||||
ASg Fem Def => "своята" ;
|
ASg Fem Def => "ñâîÿòà" ;
|
||||||
ASg Neut Indef => "свое" ;
|
ASg Neut Indef => "ñâîå" ;
|
||||||
ASg Neut Def => "своето" ;
|
ASg Neut Def => "ñâîåòî" ;
|
||||||
APl Indef => "свои" ;
|
APl Indef => "ñâîè" ;
|
||||||
APl Def => "своите"
|
APl Def => "ñâîèòå"
|
||||||
} ;
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
@@ -27,14 +27,10 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
|||||||
}
|
}
|
||||||
in case orPol p vp.p of {
|
in case orPol p vp.p of {
|
||||||
Pos => vp.ad.s ++ verb Perf ++ clitic ;
|
Pos => vp.ad.s ++ verb Perf ++ clitic ;
|
||||||
Neg => "не" ++ vp.ad.s ++ clitic ++ verb Imperf
|
Neg => "íå" ++ vp.ad.s ++ clitic ++ verb Imperf
|
||||||
} ++ compl ;
|
} ++ compl ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvImp adv imp = {
|
|
||||||
s = \\pol,gennum => adv.s ++ imp.s ! pol ! gennum
|
|
||||||
} ;
|
|
||||||
|
|
||||||
SlashVP np slash = {
|
SlashVP np slash = {
|
||||||
s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p {s = slash.s ;
|
s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p {s = slash.s ;
|
||||||
ad = slash.ad ;
|
ad = slash.ad ;
|
||||||
@@ -55,11 +51,11 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
|||||||
|
|
||||||
SlashVS np vs slash = {
|
SlashVS np vs slash = {
|
||||||
s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p
|
s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p
|
||||||
(insertObj (\\_ => "че" ++ slash.s ! agr) Pos (predV vs))).s ;
|
(insertObj (\\_ => "֌" ++ slash.s ! agr) Pos (predV vs))).s ;
|
||||||
c2 = slash.c2
|
c2 = slash.c2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
EmbedS s = {s = "че" ++ s.s} ;
|
EmbedS s = {s = "֌" ++ s.s} ;
|
||||||
EmbedQS qs = {s = qs.s ! QIndir} ;
|
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||||
EmbedVP vp = {s = daComplex Simul vp.p vp ! Perf ! agrP3 (GSg Masc)} ;
|
EmbedVP vp = {s = daComplex Simul vp.p vp ! Perf ! agrP3 (GSg Masc)} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,132 +1,132 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete StructuralBul of Structural = CatBul **
|
concrete StructuralBul of Structural = CatBul **
|
||||||
open MorphoBul, ParadigmsBul, Prelude, (X = ConstructX) in {
|
open MorphoBul, ParadigmsBul, Prelude, (X = ConstructX) in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
above_Prep = mkPrep "над" ;
|
above_Prep = mkPrep "íàä" ;
|
||||||
after_Prep = mkPrep "след" ;
|
after_Prep = mkPrep "ñëåä" ;
|
||||||
all_Predet = {s = table GenNum ["всичкия";"всичката";"всичкото";"всичките"]} ;
|
all_Predet = {s = table GenNum ["âñè÷êèÿ";"âñè÷êàòà";"âñè÷êîòî";"âñè÷êèòå"]} ;
|
||||||
almost_AdA, almost_AdN = ss "почти" ;
|
almost_AdA, almost_AdN = ss "ïî÷òè" ;
|
||||||
at_least_AdN, at_most_AdN = ss "почти" ; ---- AR
|
at_least_AdN, at_most_AdN = ss "ïî÷òè" ; ---- AR
|
||||||
although_Subj = ss ["въпреки че"] ;
|
although_Subj = ss ["âúïðåêè ÷å"] ;
|
||||||
always_AdV = mkAdV "винаги" ;
|
always_AdV = mkAdV "âèíàãè" ;
|
||||||
and_Conj = mkConj "и" Pl ;
|
and_Conj = mkConj "è" Pl ;
|
||||||
because_Subj = ss "защото" ;
|
because_Subj = ss "çàùîòî" ;
|
||||||
before_Prep = mkPrep "преди" ;
|
before_Prep = mkPrep "ïðåäè" ;
|
||||||
behind_Prep = mkPrep "зад" ;
|
behind_Prep = mkPrep "çàä" ;
|
||||||
between_Prep = mkPrep "между" ;
|
between_Prep = mkPrep "ìåæäó" ;
|
||||||
both7and_DConj = mkConj "и" Pl ** {sep=0} ;
|
both7and_DConj = mkConj "è" Pl ** {sep=0} ;
|
||||||
but_PConj = ss "но" ;
|
but_PConj = ss "íî" ;
|
||||||
by8agent_Prep = mkPrep "чрез" ;
|
by8agent_Prep = mkPrep "÷ðåç" ;
|
||||||
by8means_Prep = mkPrep "чрез" ;
|
by8means_Prep = mkPrep "÷ðåç" ;
|
||||||
can8know_VV, can_VV = mkVV (stateV (mkV166 "мога")) ;
|
can8know_VV, can_VV = mkVV (stateV (mkV166 "ìîãà")) ;
|
||||||
during_Prep = mkPrep ["по време на"] ;
|
during_Prep = mkPrep ["ïî âðåìå íà"] ;
|
||||||
either7or_DConj = mkConj "или" Sg ** {sep=1} ;
|
either7or_DConj = mkConj "èëè" Sg ** {sep=1} ;
|
||||||
everybody_NP = mkNP "всеки" (GSg Masc) (NounP3 Pos);
|
everybody_NP = mkNP "âñåêè" (GSg Masc) (NounP3 Pos);
|
||||||
every_Det = mkDeterminerSg "всеки" "всяка" "всяко";
|
every_Det = mkDeterminerSg "âñåêè" "âñÿêà" "âñÿêî";
|
||||||
everything_NP = mkNP "всичко" (GSg Neut) (NounP3 Pos);
|
everything_NP = mkNP "âñè÷êî" (GSg Neut) (NounP3 Pos);
|
||||||
everywhere_Adv = ss "навсякъде" ;
|
everywhere_Adv = ss "íàâñÿêúäå" ;
|
||||||
few_Det = {s = \\_,_,_ => "няколко"; nn = NCountable; spec = Indef; p = Pos} ;
|
few_Det = {s = \\_,_,_ => "íÿêîëêî"; nn = NCountable; spec = Indef; p = Pos} ;
|
||||||
--- first_Ord = ss "first" ; DEPRECATED
|
--- first_Ord = ss "first" ; DEPRECATED
|
||||||
for_Prep = mkPrep "за" ;
|
for_Prep = mkPrep "çà" ;
|
||||||
from_Prep = mkPrep "от" ;
|
from_Prep = mkPrep "îò" ;
|
||||||
he_Pron = mkPron "той" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Masc) PronP3 ;
|
he_Pron = mkPron "òîé" "íåãîâ" "íåãîâèÿ" "íåãîâèÿò" "íåãîâà" "íåãîâàòà" "íåãîâî" "íåãîâîòî" "íåãîâè" "íåãîâèòå" (GSg Masc) PronP3 ;
|
||||||
here_Adv = ss "тук" ;
|
here_Adv = ss "òóê" ;
|
||||||
here7to_Adv = ss ["до тук"] ;
|
here7to_Adv = ss ["äî òóê"] ;
|
||||||
here7from_Adv = ss ["от тук"] ;
|
here7from_Adv = ss ["îò òóê"] ;
|
||||||
how_IAdv = mkIAdv "как" ;
|
how_IAdv = mkIAdv "êàê" ;
|
||||||
how8much_IAdv = mkIAdv "колко" ;
|
how8much_IAdv = mkIAdv "êîëêî" ;
|
||||||
how8many_IDet = {s = \\_ => table QForm ["колко";"колкото"]; n = Pl; nonEmpty = False} ;
|
how8many_IDet = {s = \\_ => table QForm ["êîëêî";"êîëêîòî"]; n = Pl; nonEmpty = False} ;
|
||||||
if_Subj = ss "ако" ;
|
if_Subj = ss "àêî" ;
|
||||||
in8front_Prep = mkPrep "пред" ;
|
in8front_Prep = mkPrep "ïðåä" ;
|
||||||
i_Pron = mkPron "аз" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Masc) PronP1 ;
|
i_Pron = mkPron "àç" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Masc) PronP1 ;
|
||||||
in_Prep = mkPrep (pre { "в" ;
|
in_Prep = mkPrep (pre { "â" ;
|
||||||
"във" / strs {"в" ; "ф" ; "В" ; "Ф"}
|
"âúâ" / strs {"â" ; "ô" ; "Â" ; "Ô"}
|
||||||
}) ;
|
}) ;
|
||||||
it_Pron = mkPron "то" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Neut) PronP3 ;
|
it_Pron = mkPron "òî" "íåãîâ" "íåãîâèÿ" "íåãîâèÿò" "íåãîâà" "íåãîâàòà" "íåãîâî" "íåãîâîòî" "íåãîâè" "íåãîâèòå" (GSg Neut) PronP3 ;
|
||||||
less_CAdv = X.mkCAdv "по-малко" "от" ;
|
less_CAdv = X.mkCAdv "ïî-ìàëêî" "îò" ;
|
||||||
many_Det = mkDeterminerPl "много" ;
|
many_Det = mkDeterminerPl "ìíîãî" ;
|
||||||
more_CAdv = X.mkCAdv "повече" "от" ;
|
more_CAdv = X.mkCAdv "ïîâå÷å" "îò" ;
|
||||||
most_Predet = {s = \\_ => "повечето"} ;
|
most_Predet = {s = \\_ => "ïîâå÷åòî"} ;
|
||||||
much_Det = mkDeterminerSg "много" "много" "много";
|
much_Det = mkDeterminerSg "ìíîãî" "ìíîãî" "ìíîãî";
|
||||||
must_VV =
|
must_VV =
|
||||||
mkVV {
|
mkVV {
|
||||||
s = \\_=>table {
|
s = \\_=>table {
|
||||||
VPres _ _ => "трябва" ;
|
VPres _ _ => "òðÿáâà" ;
|
||||||
VAorist _ _ => "трябваше" ;
|
VAorist _ _ => "òðÿáâàøå" ;
|
||||||
VImperfect _ _ => "трябвало" ;
|
VImperfect _ _ => "òðÿáâàëî" ;
|
||||||
VPerfect _ => "трябвало" ;
|
VPerfect _ => "òðÿáâàëî" ;
|
||||||
VPluPerfect _ => "трябвало" ;
|
VPluPerfect _ => "òðÿáâàëî" ;
|
||||||
VPassive _ => "трябвало" ;
|
VPassive _ => "òðÿáâàëî" ;
|
||||||
VPresPart _ => "трябвало" ;
|
VPresPart _ => "òðÿáâàëî" ;
|
||||||
VImperative Sg => "трябвай" ;
|
VImperative Sg => "òðÿáâàé" ;
|
||||||
VImperative Pl => "трябвайте" ;
|
VImperative Pl => "òðÿáâàéòå" ;
|
||||||
VNoun _ => "трябване" ;
|
VNoun _ => "òðÿáâàíå" ;
|
||||||
VGerund => "трябвайки"
|
VGerund => "òðÿáâàéêè"
|
||||||
} ;
|
} ;
|
||||||
vtype=VNormal ;
|
vtype=VNormal ;
|
||||||
lock_V=<>
|
lock_V=<>
|
||||||
} ;
|
} ;
|
||||||
no_Utt = ss "не" ;
|
no_Utt = ss "íå" ;
|
||||||
on_Prep = mkPrep "на" ;
|
on_Prep = mkPrep "íà" ;
|
||||||
---- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
|
---- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
|
||||||
only_Predet = {s = \\_ => "само"} ;
|
only_Predet = {s = \\_ => "ñàìî"} ;
|
||||||
or_Conj = mkConj "или" Sg ;
|
or_Conj = mkConj "èëè" Sg ;
|
||||||
otherwise_PConj = ss "иначе" ;
|
otherwise_PConj = ss "èíà÷å" ;
|
||||||
part_Prep = mkPrep "от" ;
|
part_Prep = mkPrep "îò" ;
|
||||||
please_Voc = ss "моля" ;
|
please_Voc = ss "ìîëÿ" ;
|
||||||
possess_Prep = mkPrep [] Dat ;
|
possess_Prep = mkPrep [] Dat ;
|
||||||
quite_Adv = ss "доста" ;
|
quite_Adv = ss "äîñòà" ;
|
||||||
she_Pron = mkPron "тя" "неин" "нейния" "нейният" "нейна" "нейната" "нейно" "нейното" "нейни" "нейните" (GSg Fem) PronP3 ;
|
she_Pron = mkPron "òÿ" "íåèí" "íåéíèÿ" "íåéíèÿò" "íåéíà" "íåéíàòà" "íåéíî" "íåéíîòî" "íåéíè" "íåéíèòå" (GSg Fem) PronP3 ;
|
||||||
so_AdA = ss "толкова" ;
|
so_AdA = ss "òîëêîâà" ;
|
||||||
somebody_NP = mkNP "някой" (GSg Masc) (NounP3 Pos);
|
somebody_NP = mkNP "íÿêîé" (GSg Masc) (NounP3 Pos);
|
||||||
someSg_Det = mkDeterminerSg "някой" "някоя" "някое" ;
|
someSg_Det = mkDeterminerSg "íÿêîé" "íÿêîÿ" "íÿêîå" ;
|
||||||
somePl_Det = mkDeterminerPl "някои" ;
|
somePl_Det = mkDeterminerPl "íÿêîè" ;
|
||||||
something_NP = mkNP "нещо" (GSg Neut) (NounP3 Pos);
|
something_NP = mkNP "íåùî" (GSg Neut) (NounP3 Pos);
|
||||||
somewhere_Adv = ss "някъде" ;
|
somewhere_Adv = ss "íÿêúäå" ;
|
||||||
that_Quant = mkQuant "онзи" "онази" "онова" "онези" ;
|
that_Quant = mkQuant "îíçè" "îíàçè" "îíîâà" "îíåçè" ;
|
||||||
that_Subj = ss "че" ;
|
that_Subj = ss "֌" ;
|
||||||
there_Adv = ss "там" ;
|
there_Adv = ss "òàì" ;
|
||||||
there7to_Adv = ss ["до там"] ;
|
there7to_Adv = ss ["äî òàì"] ;
|
||||||
there7from_Adv = ss ["от там"] ;
|
there7from_Adv = ss ["îò òàì"] ;
|
||||||
therefore_PConj = ss ["така че"] ;
|
therefore_PConj = ss ["òàêà ÷å"] ;
|
||||||
they_Pron = mkPron "те" "техен" "техния" "техният" "тяхна" "тяхната" "тяхно" "тяхното" "техни" "техните" GPl PronP3 ;
|
they_Pron = mkPron "òå" "òåõåí" "òåõíèÿ" "òåõíèÿò" "òÿõíà" "òÿõíàòà" "òÿõíî" "òÿõíîòî" "òåõíè" "òåõíèòå" GPl PronP3 ;
|
||||||
this_Quant = mkQuant "този" "тази" "това" "тези" ;
|
this_Quant = mkQuant "òîçè" "òàçè" "òîâà" "òåçè" ;
|
||||||
through_Prep = mkPrep "през" ;
|
through_Prep = mkPrep "ïðåç" ;
|
||||||
too_AdA = ss "прекалено" ;
|
too_AdA = ss "ïðåêàëåíî" ;
|
||||||
to_Prep = mkPrep "до" ;
|
to_Prep = mkPrep "äî" ;
|
||||||
under_Prep = mkPrep "под" ;
|
under_Prep = mkPrep "ïîä" ;
|
||||||
very_AdA = ss "много" ;
|
very_AdA = ss "ìíîãî" ;
|
||||||
want_VV = mkVV (stateV (mkV186 "искам")) ;
|
want_VV = mkVV (stateV (mkV186 "èñêàì")) ;
|
||||||
we_Pron = mkPron "ние" "наш" "нашия" "нашият" "наша" "нашата" "наше" "нашето" "наши" "нашите" GPl PronP1 ;
|
we_Pron = mkPron "íèå" "íàø" "íàøèÿ" "íàøèÿò" "íàøà" "íàøàòà" "íàøå" "íàøåòî" "íàøè" "íàøèòå" GPl PronP1 ;
|
||||||
whatPl_IP = mkIP "какви" "какви" GPl ;
|
whatPl_IP = mkIP "êàêâè" "êàêâè" GPl ;
|
||||||
whatSg_IP = mkIP "какъв" "какъв" (GSg Masc) ;
|
whatSg_IP = mkIP "êàêúâ" "êàêúâ" (GSg Masc) ;
|
||||||
when_IAdv = mkIAdv "кога" ;
|
when_IAdv = mkIAdv "êîãà" ;
|
||||||
when_Subj = ss "когато" ;
|
when_Subj = ss "êîãàòî" ;
|
||||||
where_IAdv = mkIAdv "къде" ;
|
where_IAdv = mkIAdv "êúäå" ;
|
||||||
which_IQuant = {s = table GenNum [table QForm ["кой";"който"];
|
which_IQuant = {s = table GenNum [table QForm ["êîé";"êîéòî"];
|
||||||
table QForm ["коя";"която"];
|
table QForm ["êîÿ";"êîÿòî"];
|
||||||
table QForm ["кое";"което"];
|
table QForm ["êîå";"êîåòî"];
|
||||||
table QForm ["кои";"които"]]} ;
|
table QForm ["êîè";"êîèòî"]]} ;
|
||||||
whoSg_IP = mkIP "кой" "кого" (GSg Masc) ;
|
whoSg_IP = mkIP "êîé" "êîãî" (GSg Masc) ;
|
||||||
whoPl_IP = mkIP "кои" "кои" GPl ;
|
whoPl_IP = mkIP "êîè" "êîè" GPl ;
|
||||||
why_IAdv = mkIAdv "защо" ;
|
why_IAdv = mkIAdv "çàùî" ;
|
||||||
without_Prep = mkPrep "без" ;
|
without_Prep = mkPrep "áåç" ;
|
||||||
with_Prep = mkPrep "" WithPrep ;
|
with_Prep = mkPrep "" WithPrep ;
|
||||||
yes_Utt = ss "да" ;
|
yes_Utt = ss "äà" ;
|
||||||
youSg_Pron = mkPron "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Masc) PronP2 ;
|
youSg_Pron = mkPron "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Masc) PronP2 ;
|
||||||
youPl_Pron = mkPron "вие" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl PronP2 ;
|
youPl_Pron = mkPron "âèå" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl PronP2 ;
|
||||||
youPol_Pron = mkPron "вие" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl PronP2 ;
|
youPol_Pron = mkPron "âèå" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl PronP2 ;
|
||||||
|
|
||||||
as_CAdv = X.mkCAdv [] "колкото" ;
|
as_CAdv = X.mkCAdv [] "êîëêîòî" ;
|
||||||
|
|
||||||
have_V2 = dirV2 (stateV (mkV186 "имам")) ;
|
have_V2 = dirV2 (stateV (mkV186 "èìàì")) ;
|
||||||
|
|
||||||
lin language_title_Utt = ss "Български" ;
|
lin language_title_Utt = ss "Áúëãàðñêè" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
--# -path=.:../abstract:../common:../prelude
|
--# -path=.:../abstract:../common:../prelude
|
||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
|
|
||||||
concrete SymbolBul of Symbol = CatBul ** open Prelude, ResBul in {
|
concrete SymbolBul of Symbol = CatBul ** open Prelude, ResBul in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding = utf8 ;
|
coding = cp1251 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
SymbPN i = {s = i.s ; gn = GSg Neut} ;
|
SymbPN i = {s = i.s ; g = Neut} ;
|
||||||
IntPN i = {s = i.s ; gn = GSg Neut} ;
|
IntPN i = {s = i.s ; g = Neut} ;
|
||||||
FloatPN i = {s = i.s ; gn = GSg Neut} ;
|
FloatPN i = {s = i.s ; g = Neut} ;
|
||||||
NumPN i = {s = i.s ! CFNeut Indef ; gn = GSg Neut} ;
|
NumPN i = {s = i.s ! CFNeut Indef ; g = Neut} ;
|
||||||
CNIntNP cn i = {
|
CNIntNP cn i = {
|
||||||
s = \\c => cn.s ! NF Sg Indef ++ i.s ;
|
s = \\c => cn.s ! NF Sg Indef ++ i.s ;
|
||||||
gn = gennum cn.g Sg ;
|
gn = gennum cn.g Sg ;
|
||||||
@@ -32,15 +32,15 @@ lin
|
|||||||
SymbNum sy = {s = \\_ => sy.s; nn = NNum Pl} ;
|
SymbNum sy = {s = \\_ => sy.s; nn = NNum Pl} ;
|
||||||
SymbOrd sy = {s = \\aform => sy.s ++ "-" ++
|
SymbOrd sy = {s = \\aform => sy.s ++ "-" ++
|
||||||
case aform of {
|
case aform of {
|
||||||
ASg Masc Indef => "ти" ;
|
ASg Masc Indef => "òè" ;
|
||||||
ASg Fem Indef => "та" ;
|
ASg Fem Indef => "òà" ;
|
||||||
ASg Neut Indef => "то" ;
|
ASg Neut Indef => "òî" ;
|
||||||
ASg Masc Def => "тия" ;
|
ASg Masc Def => "òèÿ" ;
|
||||||
ASg Fem Def => "тата" ;
|
ASg Fem Def => "òàòà" ;
|
||||||
ASg Neut Def => "тото" ;
|
ASg Neut Def => "òîòî" ;
|
||||||
ASgMascDefNom => "тият" ;
|
ASgMascDefNom => "òèÿò" ;
|
||||||
APl Indef => "ти" ;
|
APl Indef => "òè" ;
|
||||||
APl Def => "тите"
|
APl Def => "òèòå"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ lin
|
|||||||
|
|
||||||
MkSymb s = s ;
|
MkSymb s = s ;
|
||||||
|
|
||||||
BaseSymb = infixSS "и" ;
|
BaseSymb = infixSS "è" ;
|
||||||
ConsSymb = infixSS bindComma ;
|
ConsSymb = infixSS bindComma ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete TextBul of Text = CatBul ** open Prelude in {
|
concrete TextBul of Text = CatBul ** open Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
-- This will work for almost all languages except Spanish.
|
-- This will work for almost all languages except Spanish.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -coding=utf8
|
--# -coding=cp1251
|
||||||
concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
|
concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
|
||||||
flags coding=utf8 ;
|
flags coding=cp1251 ;
|
||||||
|
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
@@ -39,7 +39,7 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
|
|||||||
}) vp.p
|
}) vp.p
|
||||||
(predV vv) ;
|
(predV vv) ;
|
||||||
|
|
||||||
ComplVS v s = insertObj (\\_ => bindComma ++ "че" ++ s.s) Pos (predV v) ;
|
ComplVS v s = insertObj (\\_ => bindComma ++ "֌" ++ s.s) Pos (predV v) ;
|
||||||
ComplVQ v q = insertObj (\\_ => q.s ! QDir) Pos (predV v) ;
|
ComplVQ v q = insertObj (\\_ => q.s ! QDir) Pos (predV v) ;
|
||||||
|
|
||||||
ComplVA v ap =
|
ComplVA v ap =
|
||||||
@@ -50,7 +50,7 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
|
|||||||
insertSlashObj2 (\\a => v.c3.s ++ ap.s ! aform a.gn Indef (RObj Acc) ! a.p) Pos (slashV v v.c2 v.subjCtrl) ;
|
insertSlashObj2 (\\a => v.c3.s ++ ap.s ! aform a.gn Indef (RObj Acc) ! a.p) Pos (slashV v v.c2 v.subjCtrl) ;
|
||||||
|
|
||||||
-- test: I saw a boy to whom she said that they are here
|
-- test: I saw a boy to whom she said that they are here
|
||||||
SlashV2S v s = insertSlashObj2 (\\_ => bindComma ++ "че" ++ s.s) Pos (slashV v v.c2 False) ;
|
SlashV2S v s = insertSlashObj2 (\\_ => bindComma ++ "֌" ++ s.s) Pos (slashV v v.c2 False) ;
|
||||||
|
|
||||||
-- test: I saw a boy whom she asked who is here
|
-- test: I saw a boy whom she asked who is here
|
||||||
SlashV2Q v q = insertSlashObj2 (\\_ => q.s ! QDir) Pos (slashV v v.c2 False) ;
|
SlashV2Q v q = insertSlashObj2 (\\_ => q.s ! QDir) Pos (slashV v v.c2 False) ;
|
||||||
|
|||||||
@@ -1741,71 +1741,6 @@ VP (Imp Sg P1) => nonExist
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper tossir_31b : Str -> Verbum = \tossir ->
|
|
||||||
let t_ = Predef.tk 5 tossir in
|
|
||||||
{s = table {
|
|
||||||
VI Infn => t_ + "ossir" ;
|
|
||||||
VI Ger => t_ + "ossint" ;
|
|
||||||
VP (Pres Ind Pl P1) => t_ + "ossim" ;
|
|
||||||
VP (Pres Ind Sg P1) => t_ + "usso" ;
|
|
||||||
VP (Pres Ind Pl P2) => t_ + "ossiu" ;
|
|
||||||
VP (Pres Ind Sg P2) => t_ + "usses" ;
|
|
||||||
VP (Pres Ind Pl P3) => t_ + "ussen" ;
|
|
||||||
VP (Pres Ind Sg P3) => t_ + "us" ;
|
|
||||||
VP (Pres Sub Pl P1) => t_ + "ossim" ;
|
|
||||||
VP (Pres Sub Sg P1) => t_ + "ussi" ;
|
|
||||||
VP (Pres Sub Pl P2) => t_ + "ossiu" ;
|
|
||||||
VP (Pres Sub Sg P2) => t_ + "ussis" ;
|
|
||||||
VP (Pres Sub Pl P3) => t_ + "ussin" ;
|
|
||||||
VP (Pres Sub Sg P3) => t_ + "ussi" ;
|
|
||||||
VP (Impf Ind Pl P1) => t_ + "ossíem" ;--# notpresent
|
|
||||||
VP (Impf Ind Sg P1) => t_ + "ossia" ;--# notpresent
|
|
||||||
VP (Impf Ind Pl P2) => t_ + "ossíeu" ;--# notpresent
|
|
||||||
VP (Impf Ind Sg P2) => t_ + "ossies" ;--# notpresent
|
|
||||||
VP (Impf Ind Pl P3) => t_ + "ossien" ;--# notpresent
|
|
||||||
VP (Impf Ind Sg P3) => t_ + "ossia" ;--# notpresent
|
|
||||||
VP (Impf Sub Pl P1) => t_ + "ossíssim" ;--# notpresent
|
|
||||||
VP (ImpfSubPlE P1) => t_ + "ossíssem" ;--# notpresent
|
|
||||||
VP (Impf Sub Sg P1) => t_ + "ossís" ;--# notpresent
|
|
||||||
VP (Impf Sub Pl P2) => t_ + "ossíssiu" ;--# notpresent
|
|
||||||
VP (ImpfSubPlE P2) => t_ + "ossísseu" ;--# notpresent
|
|
||||||
VP (Impf Sub Sg P2) => t_ + "ossissis" ;--# notpresent
|
|
||||||
VP ImpfSubSgE => t_ + "ossisses" ;--# notpresent
|
|
||||||
VP (Impf Sub Pl P3) => t_ + "ossissin" ;--# notpresent
|
|
||||||
VP (ImpfSubPlE P3) => t_ + "ossissen" ;--# notpresent
|
|
||||||
VP (Impf Sub Sg P3) => t_ + "ossís" ;--# notpresent
|
|
||||||
VP (Fut Pl P1) => t_ + "ossirem" ;--# notpresent
|
|
||||||
VP (Fut Sg P1) => t_ + "ossiré" ;--# notpresent
|
|
||||||
VP (Fut Pl P2) => t_ + "ossireu" ;--# notpresent
|
|
||||||
VP (Fut Sg P2) => t_ + "ossiràs" ;--# notpresent
|
|
||||||
VP (Fut Pl P3) => t_ + "ossiran" ;--# notpresent
|
|
||||||
VP (Fut Sg P3) => t_ + "ossirà" ;--# notpresent
|
|
||||||
VP (Pret Pl P1) => t_ + "ossírem" ;--# notpresent
|
|
||||||
VP (Pret Sg P1) => t_ + "ossí" ;--# notpresent
|
|
||||||
VP (Pret Pl P2) => t_ + "ossíreu" ;--# notpresent
|
|
||||||
VP (Pret Sg P2) => t_ + "ossires" ;--# notpresent
|
|
||||||
VP (Pret Pl P3) => t_ + "ossiren" ;--# notpresent
|
|
||||||
VP (Pret Sg P3) => t_ + "ossí" ;--# notpresent
|
|
||||||
VP (Cond Pl P1) => t_ + "ossiríem" ;--# notpresent
|
|
||||||
VP (Cond Sg P1) => t_ + "ossiria" ;--# notpresent
|
|
||||||
VP (Cond Pl P2) => t_ + "ossiríeu" ;--# notpresent
|
|
||||||
VP (Cond Sg P2) => t_ + "ossiries" ;--# notpresent
|
|
||||||
VP (Cond Pl P3) => t_ + "ossirien" ;--# notpresent
|
|
||||||
VP (Cond Sg P3) => t_ + "ossiria" ;--# notpresent
|
|
||||||
VP (Imp Pl P1) => t_ + "ossim" ;
|
|
||||||
VP (Imp Pl P2) => t_ + "ossiu" ;
|
|
||||||
VP (Imp Sg P2) => t_ + "us" ;
|
|
||||||
VP (Imp Pl P3) => t_ + "ussin" ;
|
|
||||||
VP (Imp Sg P3) => t_ + "ussi" ;
|
|
||||||
VP (Pass Pl Fem) => t_ + "ossides" ;
|
|
||||||
VP (Pass Sg Fem) => t_ + "ossida" ;
|
|
||||||
VP (Pass Pl Masc) => t_ + "ossits" ;
|
|
||||||
VP (Pass Sg Masc) => t_ + "ossit" ;
|
|
||||||
VP (Imp Sg P1) => nonExist
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
oper coure_32 : Str -> Verbum = \coure ->
|
oper coure_32 : Str -> Verbum = \coure ->
|
||||||
let c_ = Predef.tk 4 coure in
|
let c_ = Predef.tk 4 coure in
|
||||||
{s = table {
|
{s = table {
|
||||||
@@ -5660,6 +5595,7 @@ let t_ = Predef.tk 5 tòrcer in
|
|||||||
VP (Imp Sg P1) => nonExist
|
VP (Imp Sg P1) => nonExist
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
--- tossir-- is not in the used source .
|
||||||
|
|
||||||
oper trencar_112 : Str -> Verbum = \trencar ->
|
oper trencar_112 : Str -> Verbum = \trencar ->
|
||||||
let tren_ = Predef.tk 3 trencar in
|
let tren_ = Predef.tk 3 trencar in
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--# -path=.:../romance:../abstract:../common:prelude
|
--# -path=.:../romance:../abstract:../common:prelude
|
||||||
instance DiffCat of DiffRomance - [partAgr,stare_V,vpAgrSubj,vpAgrClits,AFormSimple] = open CommonRomance, PhonoCat, BeschCat, Prelude in {
|
instance DiffCat of DiffRomance - [partAgr,stare_V,vpAgrSubj,vpAgrClits] = open CommonRomance, PhonoCat, BeschCat, Prelude in {
|
||||||
|
|
||||||
flags optimize=noexpand ;
|
flags optimize=noexpand ;
|
||||||
coding=utf8 ;
|
coding=utf8 ;
|
||||||
@@ -64,22 +64,7 @@ oper
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- AForm and comparatives
|
|
||||||
param
|
|
||||||
AFormComplex = AF Gender Number | AAttrMasc | AA ;
|
|
||||||
oper
|
|
||||||
AForm = AFormComplex ;
|
|
||||||
aform2aagr : AForm -> AAgr = \a -> case a of {
|
|
||||||
DiffCat.AF g n => aagr g n ;
|
|
||||||
_ => aagr Masc Sg -- "le plus lentement"
|
|
||||||
} ;
|
|
||||||
genNum2Aform : Gender -> Number -> AForm = DiffCat.AF ;
|
|
||||||
genNumPos2Aform : Gender -> Number -> Bool -> AForm = \g,n,isPre ->
|
|
||||||
case <g,n,isPre> of {
|
|
||||||
<Masc,Sg,True> => AAttrMasc ;
|
|
||||||
_ => genNum2Aform g n
|
|
||||||
} ;
|
|
||||||
piuComp = "més" ;
|
|
||||||
|
|
||||||
possCase = \_,_,c -> prepCase c ;
|
possCase = \_,_,c -> prepCase c ;
|
||||||
|
|
||||||
|
|||||||
@@ -45,12 +45,12 @@ lin
|
|||||||
s1 = heading1 (nounHeading adjective_Category).s ;
|
s1 = heading1 (nounHeading adjective_Category).s ;
|
||||||
s2 = frameTable (
|
s2 = frameTable (
|
||||||
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
||||||
tr (th (heading masculine_Parameter) ++ td (adj.s ! genNum2Aform Masc Sg) ++ td (adj.s ! genNum2Aform Masc Pl)) ++
|
tr (th (heading masculine_Parameter) ++ td (adj.s ! Posit ! (genNum2Aform Masc Sg)) ++ td (adj.s ! Posit ! (genNum2Aform Masc Pl))) ++
|
||||||
tr (th (heading feminine_Parameter) ++ td (adj.s ! genNum2Aform Fem Sg) ++ td (adj.s ! genNum2Aform Fem Pl))
|
tr (th (heading feminine_Parameter) ++ td (adj.s ! Posit ! (genNum2Aform Fem Sg)) ++ td (adj.s ! Posit ! (genNum2Aform Fem Pl)))
|
||||||
)
|
)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
|
InflectionAdv adv = {
|
||||||
t = "adv" ;
|
t = "adv" ;
|
||||||
s1 = heading1 "Adverbi" ;
|
s1 = heading1 "Adverbi" ;
|
||||||
s2 = paragraph adv.s
|
s2 = paragraph adv.s
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ lin escopir_V = verbV (escopir_49 "escopir") ;
|
|||||||
lin fondre_V = verbV (fondre_57 "fendre") ;
|
lin fondre_V = verbV (fondre_57 "fendre") ;
|
||||||
lin jeure_V = verbV (jeure_62 "jeure" (True|False)) ;
|
lin jeure_V = verbV (jeure_62 "jeure" (True|False)) ;
|
||||||
lin omplir_V = verbV (omplir_80 "omplir") ;
|
lin omplir_V = verbV (omplir_80 "omplir") ;
|
||||||
lin tossir_V = verbV (tossir_31b "tossir") ;
|
|
||||||
lin venir_V = verbV (venir_117 "venir" (True|False)) ;
|
lin venir_V = verbV (venir_117 "venir" (True|False)) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1102,6 +1102,5 @@ fun escopir_V : V ;
|
|||||||
fun fondre_V : V ;
|
fun fondre_V : V ;
|
||||||
fun jeure_V : V ;
|
fun jeure_V : V ;
|
||||||
fun omplir_V : V ;
|
fun omplir_V : V ;
|
||||||
fun tossir_V : V ;
|
|
||||||
fun venir_V : V ;
|
fun venir_V : V ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ lin
|
|||||||
big_A = mkA "gros" "grossa" ;
|
big_A = mkA "gros" "grossa" ;
|
||||||
bike_N = regFN "bicicleta" ;
|
bike_N = regFN "bicicleta" ;
|
||||||
bird_N = regMN "ocell" ;
|
bird_N = regMN "ocell" ;
|
||||||
black_A = mkA "negre" "negra" "negres" "negres" "negrament" ;
|
black_A = compADeg (mkA "negre" "negra" "negres" "negres" "negrament") ;
|
||||||
blue_A = mkA "blau" "blava" "blaus" "blaves" "blavament" ;
|
blue_A = compADeg (mkA "blau" "blava" "blaus" "blaves" "blavament") ;
|
||||||
boat_N = regFN "barca" ;
|
boat_N = regFN "barca" ;
|
||||||
book_N = regMN "llibre" ;
|
book_N = regMN "llibre" ;
|
||||||
boot_N = regFN "bota" ;
|
boot_N = regFN "bota" ;
|
||||||
@@ -42,7 +42,7 @@ lin
|
|||||||
break_V2 = dirV2 (verbV (trencar_112 "trencar")) ;
|
break_V2 = dirV2 (verbV (trencar_112 "trencar")) ;
|
||||||
broad_A = regADeg "ample" ; -- put it in MorphoCat?: like black_A
|
broad_A = regADeg "ample" ; -- put it in MorphoCat?: like black_A
|
||||||
brother_N2 = deN2 (regMN "germà") ;
|
brother_N2 = deN2 (regMN "germà") ;
|
||||||
brown_A = mkA "marró" "marrona" "marrons" "marrones" "marronament" ;
|
brown_A = compADeg (mkA "marró" "marrona" "marrons" "marrones" "marronament") ;
|
||||||
butter_N = regFN "mantega" ;
|
butter_N = regFN "mantega" ;
|
||||||
buy_V2 = dirV2 (mkV "comprar") ;
|
buy_V2 = dirV2 (mkV "comprar") ;
|
||||||
camera_N = regFN "càmara" ;
|
camera_N = regFN "càmara" ;
|
||||||
@@ -75,7 +75,7 @@ lin
|
|||||||
drink_V2 = dirV2 (verbV (beure_11 "beure")) ;
|
drink_V2 = dirV2 (verbV (beure_11 "beure")) ;
|
||||||
easy_A2V = mkA2V (regA "fácil") dative genitive ;
|
easy_A2V = mkA2V (regA "fácil") dative genitive ;
|
||||||
eat_V2 = dirV2 (verbV (envejar_48 "menjar")) ;
|
eat_V2 = dirV2 (verbV (envejar_48 "menjar")) ;
|
||||||
empty_A = mkA "buit" "buida" "buits" "buides" "buidament" ;
|
empty_A = compADeg (mkA "buit" "buida" "buits" "buides" "buidament") ;
|
||||||
enemy_N = regMN "enemic" ; -- enemiga
|
enemy_N = regMN "enemic" ; -- enemiga
|
||||||
factory_N = regFN "fàbrica" ;
|
factory_N = regFN "fàbrica" ;
|
||||||
father_N2 = deN2 (regMN "pare") ;
|
father_N2 = deN2 (regMN "pare") ;
|
||||||
@@ -92,7 +92,7 @@ lin
|
|||||||
girl_N = regFN "noia" ;
|
girl_N = regFN "noia" ;
|
||||||
glove_N = regMN "guant" ;
|
glove_N = regMN "guant" ;
|
||||||
gold_N = regMN "or" ;
|
gold_N = regMN "or" ;
|
||||||
good_A = mkA (prefA "bo" "bon" "bé") (mkA "millor") ;
|
good_A = mkA (prefA "bo" "bon") (mkA "millor") ;
|
||||||
go_V = (verbV (anar_4 "anar" 0)) ;
|
go_V = (verbV (anar_4 "anar" 0)) ;
|
||||||
green_A = regADeg "verd" ;
|
green_A = regADeg "verd" ;
|
||||||
harbour_N = regMN "port" ;
|
harbour_N = regMN "port" ;
|
||||||
@@ -132,7 +132,7 @@ lin
|
|||||||
mountain_N = regFN "muntanya" ;
|
mountain_N = regFN "muntanya" ;
|
||||||
music_N = regFN "música" ;
|
music_N = regFN "música" ;
|
||||||
narrow_A = regADeg "estret" ;
|
narrow_A = regADeg "estret" ;
|
||||||
new_A = prefixA (mkA "nou" "nova" "nous" "noves" "novament") ;
|
new_A = prefixA (compADeg (mkA "nou" "nova" "nous" "noves" "novament")) ;
|
||||||
newspaper_N = regMN "diari" ; -- periòdic
|
newspaper_N = regMN "diari" ; -- periòdic
|
||||||
oil_N = regMN "oli" ;
|
oil_N = regMN "oli" ;
|
||||||
old_A = regADeg "vell" ;
|
old_A = regADeg "vell" ;
|
||||||
@@ -195,23 +195,23 @@ lin
|
|||||||
teacher_N = regMN "mestre" ; -- mestra
|
teacher_N = regMN "mestre" ; -- mestra
|
||||||
teach_V2 = dirV2 (mkV "ensenyar") ;
|
teach_V2 = dirV2 (mkV "ensenyar") ;
|
||||||
television_N = mkN "televisió" "televisions" feminine ; -- televisor masc
|
television_N = mkN "televisió" "televisions" feminine ; -- televisor masc
|
||||||
thick_A = mkA "gruixut" "gruixuda" "gruixuts" "gruixudes" "gruixudament" ;
|
thick_A = compADeg (mkA "gruixut" "gruixuda" "gruixuts" "gruixudes" "gruixudament") ;
|
||||||
thin_A = mkA "fi" "fina" "fins" "fines" "finament" ;
|
thin_A = compADeg (mkA "fi" "fina" "fins" "fines" "finament") ;
|
||||||
train_N = regMN "tren" ;
|
train_N = regMN "tren" ;
|
||||||
travel_V = verbV (envejar_48 "viatjar") ;
|
travel_V = verbV (envejar_48 "viatjar") ;
|
||||||
tree_N = regMN "arbre" ;
|
tree_N = regMN "arbre" ;
|
||||||
--- trousers_N = regN "pantalón" ; -- masc
|
--- trousers_N = regN "pantalón" ; -- masc
|
||||||
ugly_A = mkA "lleig" "lletja" "lletjos" "lletges" "lletjament" ;
|
ugly_A = compADeg (mkA "lleig" "lletja" "lletjos" "lletges" "lletjament") ;
|
||||||
understand_V2 = dirV2 (verbV (atendre_8 "entendre")) ;
|
understand_V2 = dirV2 (verbV (atendre_8 "entendre")) ;
|
||||||
university_N = regFN "universitat" ;
|
university_N = regFN "universitat" ;
|
||||||
village_N = regMN "poble" ;
|
village_N = regMN "poble" ;
|
||||||
wait_V2 = mkV2 (mkV "esperar") dative ;
|
wait_V2 = mkV2 (mkV "esperar") dative ;
|
||||||
walk_V = mkV "caminar" ;
|
walk_V = mkV "caminar" ;
|
||||||
warm_A = mkA "tebi" "tèbia" "tebis" "tèbies" "tèbiament" ;
|
warm_A = compADeg (mkA "tebi" "tèbia" "tebis" "tèbies" "tèbiament") ;
|
||||||
war_N = regFN "guerra" ;
|
war_N = regFN "guerra" ;
|
||||||
watch_V2 = dirV2 (mkV "mirar") ;
|
watch_V2 = dirV2 (mkV "mirar") ;
|
||||||
water_N = mkN "aigua" ; -- aigües
|
water_N = mkN "aigua" ; -- aigües
|
||||||
white_A = mkA "blanc" "blanca" "blancs" "blanques" "blancament" ;
|
white_A = compADeg (mkA "blanc" "blanca" "blancs" "blanques" "blancament") ;
|
||||||
window_N = regFN "finestra" ;
|
window_N = regFN "finestra" ;
|
||||||
wine_N = regMN "vi" ;
|
wine_N = regMN "vi" ;
|
||||||
win_V2 = dirV2 (mkV "guanyar") ;
|
win_V2 = dirV2 (mkV "guanyar") ;
|
||||||
@@ -219,8 +219,8 @@ lin
|
|||||||
wonder_VQ = mkVQ (reflV (mkV "preguntar")) ;
|
wonder_VQ = mkVQ (reflV (mkV "preguntar")) ;
|
||||||
wood_N = regFN "fusta" ;
|
wood_N = regFN "fusta" ;
|
||||||
write_V2 = dirV2 (verbV (escriure_50 "escriure" True)) ;
|
write_V2 = dirV2 (verbV (escriure_50 "escriure" True)) ;
|
||||||
yellow_A = mkA "groc" "groga" "grocs" "grogues" "grogament" ;
|
yellow_A = compADeg (mkA "groc" "groga" "grocs" "grogues" "grogament") ;
|
||||||
young_A = mkA "jove" "jove" "joves" "joves" "jovement" ;
|
young_A = compADeg (mkA "jove" "jove" "joves" "joves" "jovement") ;
|
||||||
do_V2 = dirV2 (verbV (fer_56 "fer")) ;
|
do_V2 = dirV2 (verbV (fer_56 "fer")) ;
|
||||||
now_Adv = mkAdv "ara" ;
|
now_Adv = mkAdv "ara" ;
|
||||||
already_Adv = mkAdv "ja" ;
|
already_Adv = mkAdv "ja" ;
|
||||||
|
|||||||
@@ -96,11 +96,11 @@ oper
|
|||||||
|
|
||||||
mkAdjFull : (x1,_,_,_,_,x6 : Str) -> Adj = \bon,bo,prima,prims,primes,primament ->
|
mkAdjFull : (x1,_,_,_,_,x6 : Str) -> Adj = \bon,bo,prima,prims,primes,primament ->
|
||||||
{s = table {
|
{s = table {
|
||||||
AAttrMasc => bon ;
|
ASg Masc AAttr => bon ;
|
||||||
AF Masc Sg => bo ;
|
ASg Masc APred => bo ;
|
||||||
AF Fem Sg => prima ;
|
ASg Fem _ => prima ;
|
||||||
AF Masc Pl => prims ;
|
APl Masc => prims ;
|
||||||
AF Fem Pl => primes ;
|
APl Fem => primes ;
|
||||||
AA => primament
|
AA => primament
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
@@ -121,8 +121,8 @@ oper
|
|||||||
let fond = Predef.tk 1 fondo
|
let fond = Predef.tk 1 fondo
|
||||||
in adjBlau fondo (fond + "a") ;
|
in adjBlau fondo (fond + "a") ;
|
||||||
|
|
||||||
adjBo : (bo,bon,be : Str) -> Adj = \bo,bon,be ->
|
adjBo : (bo,bon : Str) -> Adj = \bo,bon ->
|
||||||
mkAdjFull bon bo (bon + "a") (bon + "s") (bon + "es") be ;
|
mkAdjFull bon bo (bon + "a") (bon + "s") (bon + "es") (bon + "ament") ;
|
||||||
|
|
||||||
adjFidel : Str -> Adj = \fidel ->
|
adjFidel : Str -> Adj = \fidel ->
|
||||||
let fidels : Str = case (last fidel) of {
|
let fidels : Str = case (last fidel) of {
|
||||||
|
|||||||
@@ -334,31 +334,25 @@ oper
|
|||||||
|
|
||||||
makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False ; isPol = False ; isNeg = False} ** {lock_NP = <>} ;
|
makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False ; isPol = False ; isNeg = False} ** {lock_NP = <>} ;
|
||||||
|
|
||||||
mk5A a b c d e = compADeg (mkAdj a b c d e) ;
|
mk5A a b c d e =
|
||||||
mk2A a b = compADeg (mkAdj2Reg a b) ;
|
compADeg {s = \\_ => (mkAdj a b c d e).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ;
|
||||||
regA a = compADeg (mkAdjReg a) ;
|
mk2A a b = compADeg {s = \\_ => (mkAdj2Reg a b).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ;
|
||||||
|
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ;
|
||||||
prefA = overload {
|
prefA = overload {
|
||||||
prefA : A -> A = \a -> a ** {isPre = True} ;
|
prefA : A -> A = \a -> a ** {isPre = True} ;
|
||||||
prefA : Str -> Str -> A = \bo,bon ->
|
prefA : Str -> Str -> A = \bo,bon ->
|
||||||
let adj : A = compADeg (adjBo bo bon (bon+"ament")) ; -- not sure if there is any actual adjective that behaves like this /IL
|
compADeg (lin A {s = \\_ => (adjBo bo bon).s ; isPre = True ; copTyp = serCopula}) ;
|
||||||
in adj ** {isPre = True} ;
|
|
||||||
prefA : (bo,bon,be : Str) -> A = \bo,bon,be ->
|
|
||||||
let adj : A = compADeg (adjBo bo bon be) ;
|
|
||||||
in adj ** {isPre = True} ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
||||||
|
|
||||||
mkADeg a b = a ** {
|
mkADeg a b =
|
||||||
compar = \\num => b.s ! AF Masc num ; -- millor, millors
|
{s = table {Posit => a.s ! Posit ; _ => b.s ! Posit} ;
|
||||||
isDeg = True } ;
|
isPre = a.isPre ; copTyp = serCopula ; lock_A = <>} ;
|
||||||
compADeg a = lin A
|
compADeg a =
|
||||||
{s = a.s ;
|
{s = table {Posit => a.s ! Posit ; _ => \\f => "més" ++ a.s ! Posit ! f} ;
|
||||||
compar = \\_ => nonExist ;
|
isPre = a.isPre ; copTyp = a.copTyp ;
|
||||||
isPre = False ; -- default values
|
lock_A = <>} ;
|
||||||
copTyp = serCopula ;
|
|
||||||
isDeg = False
|
|
||||||
} ;
|
|
||||||
regADeg a = compADeg (regA a) ;
|
regADeg a = compADeg (regA a) ;
|
||||||
|
|
||||||
mkAdv x = ss x ** {lock_Adv = <>} ;
|
mkAdv x = ss x ** {lock_Adv = <>} ;
|
||||||
@@ -446,7 +440,7 @@ oper
|
|||||||
|
|
||||||
special_ppV ve pa = {
|
special_ppV ve pa = {
|
||||||
s = table {
|
s = table {
|
||||||
VPart g n => (regA pa).s ! genNum2Aform g n ;
|
VPart g n => (regA pa).s ! Posit ! genNum2Aform g n ;
|
||||||
p => ve.s ! p
|
p => ve.s ! p
|
||||||
} ;
|
} ;
|
||||||
lock_V = <> ;
|
lock_V = <> ;
|
||||||
@@ -524,7 +518,7 @@ oper
|
|||||||
mk2A : (lleig,lletja : Str) -> A ;
|
mk2A : (lleig,lletja : Str) -> A ;
|
||||||
regA : Str -> A ;
|
regA : Str -> A ;
|
||||||
mkADeg : A -> A -> A ;
|
mkADeg : A -> A -> A ;
|
||||||
compADeg : Adj -> A ;
|
compADeg : A -> A ;
|
||||||
regADeg : Str -> A ;
|
regADeg : Str -> A ;
|
||||||
prefA : overload {
|
prefA : overload {
|
||||||
prefA : A -> A ; -- gran
|
prefA : A -> A ; -- gran
|
||||||
|
|||||||
@@ -4,58 +4,26 @@ concrete AdjectiveChi of Adjective = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
PositA a = a ** {hasAdA = False} ;
|
PositA a = a ** {hasAdA = False} ;
|
||||||
|
|
||||||
ComparA a np = a ** {
|
--ComparA a np = complexAP (a.s ++ than_s ++ np.s) ;
|
||||||
s = table {_=> than_s ++ np.s ++ a.s!Attr};
|
ComparA a np = complexAP (than_s ++ np.s ++ a.s) ;
|
||||||
hasAdA = False
|
|
||||||
|
|
||||||
};
|
UseComparA a = complexAP (geng_s ++ a.s) ;
|
||||||
|
|
||||||
UseComparA a = a ** {
|
AdjOrd ord = complexAP ord.s ;
|
||||||
s = table { _=> geng_s ++ a.s!Attr};
|
|
||||||
hasAdA = False
|
|
||||||
};
|
|
||||||
|
|
||||||
AdjOrd ord = ord ** {
|
-- CAdvAP ad ap np = complexAP (ap.s ++ ad.s ++ ad.p ++ np.s) ;
|
||||||
s = table {
|
CAdvAP ad ap np = complexAP (ad.s++ np.s++ad.p++ap.s ) ; --modified by ChenPeng 11.24
|
||||||
adjPlace => ord.s
|
|
||||||
-- Attr => ord.s; --"first is he" ;
|
|
||||||
-- Pred => ord.s --"he is first"
|
|
||||||
} ;
|
|
||||||
hasAdA = False;
|
|
||||||
monoSyl = True -- to do and figure out in relation to Ord = {s : Str}
|
|
||||||
};
|
|
||||||
|
|
||||||
CAdvAP ad ap np = ap ** {
|
ComplA2 a np = complexAP (appPrep a.c2 np.s ++ a.s) ;
|
||||||
s = table {adjPlace => ad.s ++ np.s ++ ad.p ++ ap.s!adjPlace}
|
|
||||||
};
|
|
||||||
|
|
||||||
ComplA2 a np = a ** {
|
ReflA2 a = complexAP (a.s ++ appPrep a.c2 reflPron) ;
|
||||||
s= table { adjPlace => appPrep a.c2 np.s ++ a.s!adjPlace};
|
|
||||||
hasAdA = False
|
|
||||||
};
|
|
||||||
|
|
||||||
|
SentAP ap sc = complexAP (ap.s ++ sc.s) ;
|
||||||
|
|
||||||
ReflA2 a = a ** {
|
AdAP ada ap = {s = ada.s ++ ap.s ; monoSyl = False ; hasAdA = True} ;
|
||||||
s = table {adjPlace => a.s!adjPlace ++ appPrep a.c2 reflPron};
|
|
||||||
hasAdA = False
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
SentAP ap sc = ap ** {
|
|
||||||
s = table { adjPlace => ap.s ! adjPlace ++ sc.s }
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- AdAP ada ap = {s = ada.s ++ ap.s ; monoSyl = False ; hasAdA = True} ;
|
|
||||||
AdAP ada ap = ap ** {
|
|
||||||
s = table { adjPlace => ada.s ++ ap.s ! adjPlace };
|
|
||||||
monoSyl = False;
|
|
||||||
hasAdA = True
|
|
||||||
};
|
|
||||||
|
|
||||||
UseA2 a = a ** {hasAdA = False} ;
|
UseA2 a = a ** {hasAdA = False} ;
|
||||||
|
|
||||||
AdvAP ap adv = ap ** {
|
AdvAP ap adv = complexAP (adv.s ++ ap.s) ; ----
|
||||||
s = table { adjPlace => adv.s ++ ap.s ! adjPlace }
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,20 +2,20 @@ concrete AdverbChi of Adverb = CatChi **
|
|||||||
open ResChi, Prelude in {
|
open ResChi, Prelude in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PositAdvAdj a = {s = a.s!Attr ++ "地" ; advType = ATManner ; hasDe = False} ; ---- for all adjs?
|
PositAdvAdj a = {s = a.s ++ "地" ; advType = ATManner ; hasDe = False} ; ---- for all adjs?
|
||||||
|
|
||||||
PrepNP prep np = ss (appPrep prep np.s) ** {advType = prep.advType ; hasDe = prep.hasDe} ; --- should depend on np too ?
|
PrepNP prep np = ss (appPrep prep np.s) ** {advType = prep.advType ; hasDe = prep.hasDe} ; --- should depend on np too ?
|
||||||
|
|
||||||
ComparAdvAdj cadv a np = ss (a.s!Attr ++ cadv.s ++ cadv.p ++ np.s) ** {advType = ATManner ; hasDe = False} ;
|
ComparAdvAdj cadv a np = ss (a.s ++ cadv.s ++ cadv.p ++ np.s) ** {advType = ATManner ; hasDe = False} ;
|
||||||
|
|
||||||
ComparAdvAdjS cadv a s = ss (a.s!Attr ++ cadv.s ++ cadv.p ++ linS s) ** {advType = ATManner ; hasDe = False} ;
|
ComparAdvAdjS cadv a s = ss (a.s ++ cadv.s ++ cadv.p ++ s.s) ** {advType = ATManner ; hasDe = False} ;
|
||||||
|
|
||||||
AdAdv ad adv = adv ** {s = ad.s ++ adv.s} ;
|
AdAdv ad adv = adv ** {s = ad.s ++ adv.s} ;
|
||||||
|
|
||||||
SubjS subj s = ss (subj.prePart ++ linS s ++ subj.sufPart) ** {advType = ATTime ; hasDe = False} ;
|
SubjS subj s = ss (subj.prePart ++ s.s ++ subj.sufPart) ** {advType = ATTime ; hasDe = False} ;
|
||||||
|
|
||||||
AdnCAdv cadv = ss (cadv.s ++ conjThat) ** {advType = ATManner ; hasDe = False} ; -----
|
AdnCAdv cadv = ss (cadv.s ++ conjThat) ** {advType = ATManner ; hasDe = False} ; -----
|
||||||
|
|
||||||
PositAdAAdj a = {s = a.s!Attr} ; ----
|
PositAdAAdj a = {s = a.s} ; ----
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Ant, Adv] ** open ResChi, Prelu
|
|||||||
|
|
||||||
-- Tensed/Untensed
|
-- Tensed/Untensed
|
||||||
|
|
||||||
S = Sentence ;
|
S = {s : Str} ;
|
||||||
QS = {s : Bool => Str} ; -- True = direct question (with ma for sentential questions)
|
QS = {s : Bool => Str} ; -- True = direct question (with ma for sentential questions)
|
||||||
RS = {s : Str} ;
|
RS = {s : Str} ;
|
||||||
SSlash = {s : Str ; c2 : Preposition} ;
|
SSlash = {s : Str ; c2 : Preposition} ;
|
||||||
@@ -59,10 +59,7 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Ant, Adv] ** open ResChi, Prelu
|
|||||||
|
|
||||||
-- Structural
|
-- Structural
|
||||||
|
|
||||||
Conj = {
|
Conj = {s : ConjForm => {s1,s2 : Str}} ;
|
||||||
s : ConjForm => {s1,s2 : Str} ; -- different form whether it's used for S, A, N, ...
|
|
||||||
conjType : ConjType -- different placement whether it's and,or,... or if-then
|
|
||||||
} ;
|
|
||||||
Subj = {prePart : Str ; sufPart : Str} ;
|
Subj = {prePart : Str ; sufPart : Str} ;
|
||||||
Prep = Preposition ;
|
Prep = Preposition ;
|
||||||
|
|
||||||
@@ -87,6 +84,4 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Ant, Adv] ** open ResChi, Prelu
|
|||||||
Tense = {s : Str ; t : Aspect} ;
|
Tense = {s : Str ; t : Aspect} ;
|
||||||
Ant = {s : Str ; t : Aspect} ;
|
Ant = {s : Str ; t : Aspect} ;
|
||||||
|
|
||||||
linref
|
|
||||||
S = linS ;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,47 +2,33 @@ concrete ConjunctionChi of Conjunction = CatChi ** open ResChi, Prelude, Coordin
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
ConjS c ss =
|
ConjS c = conjunctDistrSS (c.s ! CSent) ;
|
||||||
let conj = c.s ! CSent
|
|
||||||
in case c.conjType of {
|
|
||||||
Jiu => {preJiu = conj.s1 ++ ss.s1 ++ comma ++ ss.preJiu ;
|
|
||||||
postJiu = conj.s2 ++ ss.postJiu} ;
|
|
||||||
NotJiu => {preJiu = conj.s1 ++ ss.s1 ++ conj.s2 ++ ss.preJiu ;
|
|
||||||
postJiu = ss.postJiu}
|
|
||||||
} ;
|
|
||||||
ConjAdv c as = conjunctDistrSS (c.s ! CSent) as ** {advType = as.advType ; hasDe = as.hasDe} ; ---- ??
|
ConjAdv c as = conjunctDistrSS (c.s ! CSent) as ** {advType = as.advType ; hasDe = as.hasDe} ; ---- ??
|
||||||
ConjNP c = conjunctDistrSS (c.s ! CPhr CNPhrase) ;
|
ConjNP c = conjunctDistrSS (c.s ! CPhr CNPhrase) ;
|
||||||
ConjAP c as = conjunctDistrTable AdjPlace (c.s ! CPhr CAPhrase) as ** {monoSyl = notB as.monoSyl ; hasAdA = True} ; ---- add de iff as doesn't
|
ConjAP c as = conjunctDistrSS (c.s ! CPhr CAPhrase) as ** {monoSyl = notB as.monoSyl ; hasAdA = True} ; ---- add de iff as doesn't
|
||||||
ConjRS c = conjunctDistrSS (c.s ! CSent) ;
|
ConjRS c = conjunctDistrSS (c.s ! CSent) ;
|
||||||
ConjCN c ns = conjunctDistrSS (c.s ! CPhr CNPhrase) ns ** {c = ns.c} ;
|
ConjCN c ns = conjunctDistrSS (c.s ! CPhr CNPhrase) ns ** {c = ns.c} ;
|
||||||
|
|
||||||
-- These fun's are generated from the list cat's.
|
-- These fun's are generated from the list cat's.
|
||||||
|
|
||||||
BaseS s t = t ** {
|
BaseS = twoSS ;
|
||||||
s1 = linS s
|
ConsS = consrSS duncomma ;
|
||||||
} ;
|
|
||||||
|
|
||||||
ConsS s ss = -- here we do the same thing actually, the crucial split has happened in BaseS
|
|
||||||
ss ** {s1 = linS s ++ comma ++ ss.s1};
|
|
||||||
|
|
||||||
|
|
||||||
BaseAdv x y = twoSS x y ** {advType = x.advType ; hasDe = y.hasDe} ; ---- ??
|
BaseAdv x y = twoSS x y ** {advType = x.advType ; hasDe = y.hasDe} ; ---- ??
|
||||||
ConsAdv x xs = consrSS duncomma x xs ** {advType = x.advType ; hasDe = xs.hasDe} ; ---- ??
|
ConsAdv x xs = consrSS duncomma x xs ** {advType = x.advType ; hasDe = xs.hasDe} ; ---- ??
|
||||||
BaseNP = twoSS ;
|
BaseNP = twoSS ;
|
||||||
ConsNP = consrSS duncomma ;
|
ConsNP = consrSS duncomma ;
|
||||||
BaseAP x y = twoTable AdjPlace x y ** {monoSyl = y.monoSyl} ;
|
BaseAP x y = twoSS x y ** {monoSyl = y.monoSyl} ;
|
||||||
ConsAP x xs = consrTable AdjPlace duncomma x xs ** {monoSyl = xs.monoSyl} ;
|
ConsAP x xs = consrSS duncomma x xs ** {monoSyl = xs.monoSyl} ;
|
||||||
BaseRS = twoSS ;
|
BaseRS = twoSS ;
|
||||||
ConsRS = consrSS duncomma ;
|
ConsRS = consrSS duncomma ;
|
||||||
BaseCN x y = twoSS x y ** {c = x.c} ; --- classified comes from first part ; should it rather be ge?
|
BaseCN x y = twoSS x y ** {c = x.c} ; --- classified comes from first part ; should it rather be ge?
|
||||||
ConsCN x xs = consrSS duncomma x xs ** {c = x.c} ;
|
ConsCN x xs = consrSS duncomma x xs ** {c = x.c} ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
--[S] = ConjType => {s1,s2 : Str} ;
|
[S] = {s1,s2 : Str} ;
|
||||||
[S] = {s1,preJiu,postJiu : Str} ;
|
|
||||||
[Adv] = {s1,s2 : Str ; advType : AdvType ; hasDe : Bool} ;
|
[Adv] = {s1,s2 : Str ; advType : AdvType ; hasDe : Bool} ;
|
||||||
[NP] = {s1,s2 : Str} ;
|
[NP] = {s1,s2 : Str} ;
|
||||||
[AP] = {s1,s2 : AdjPlace => Str ; monoSyl : Bool} ;
|
[AP] = {s1,s2 : Str ; monoSyl : Bool} ;
|
||||||
[RS] = {s1,s2 : Str} ;
|
[RS] = {s1,s2 : Str} ;
|
||||||
[CN] = {s1,s2 : Str ; c : Str} ;
|
[CN] = {s1,s2 : Str ; c : Str} ;
|
||||||
|
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ lin
|
|||||||
InflectionA, InflectionA2 = \adj -> {
|
InflectionA, InflectionA2 = \adj -> {
|
||||||
t = "a" ;
|
t = "a" ;
|
||||||
s1 = heading1 "Adjective" ;
|
s1 = heading1 "Adjective" ;
|
||||||
s2 = adj.s!Attr
|
s2 = adj.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
|
InflectionAdv adv = {
|
||||||
t = "adv" ;
|
t = "adv" ;
|
||||||
s1 = heading1 "Adverb" ;
|
s1 = heading1 "Adverb" ;
|
||||||
s2 = paragraph adv.s
|
s2 = paragraph adv.s
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
--# -path=alltenses:../common:../abstract
|
|
||||||
|
|
||||||
concrete ExtendChi of Extend = CatChi **
|
|
||||||
ExtendFunctor - [ProDrop,ComplDirectVS, ComplDirectVQ]
|
|
||||||
with (Grammar=GrammarChi) ** open Prelude, ResChi in {
|
|
||||||
|
|
||||||
lin
|
|
||||||
ProDrop pron = pron ** {s = []} ;
|
|
||||||
ComplDirectVS vs utt =
|
|
||||||
AdvVP (UseV <lin V vs : V>)
|
|
||||||
(mkAdv (":" ++ quoted utt.s)) ; -- DEFAULT complement added as Adv in quotes
|
|
||||||
ComplDirectVQ vq utt =
|
|
||||||
AdvVP (UseV <lin V vq : V>)
|
|
||||||
(mkAdv (":" ++ quoted utt.s)) ; -- DEFAULT complement added as Adv in quotes
|
|
||||||
|
|
||||||
oper
|
|
||||||
mkAdv : Str -> Adv ;
|
|
||||||
mkAdv str = lin Adv {s = str ; advType = ATManner ; hasDe = False} ;
|
|
||||||
};
|
|
||||||
@@ -18,7 +18,7 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
|
|||||||
BaseVPS = twoSS ;
|
BaseVPS = twoSS ;
|
||||||
ConsVPS = consrSS duncomma ;
|
ConsVPS = consrSS duncomma ;
|
||||||
|
|
||||||
PredVPS np vps = {preJiu = np.s ; postJiu = vps.s} ;
|
PredVPS np vps = {s = np.s ++ vps.s} ;
|
||||||
|
|
||||||
MkVPI vp = {s = (mkClause [] vp).s ! Pos ! APlain} ; --- ?? almost just a copy of VPS
|
MkVPI vp = {s = (mkClause [] vp).s ! Pos ! APlain} ; --- ?? almost just a copy of VPS
|
||||||
ConjVPI c = conjunctDistrSS (c.s ! CSent) ;
|
ConjVPI c = conjunctDistrSS (c.s ! CSent) ;
|
||||||
@@ -37,8 +37,8 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
|
|||||||
Aspect = {s : Str ; a : ResChi.Aspect} ;
|
Aspect = {s : Str ; a : ResChi.Aspect} ;
|
||||||
lin
|
lin
|
||||||
CompBareAP ap = case ap.hasAdA of {
|
CompBareAP ap = case ap.hasAdA of {
|
||||||
True => insertObj (mkNP (ap.s!Pred)) (predV nocopula []) ;
|
True => insertObj (mkNP ap.s) (predV nocopula []) ;
|
||||||
False => insertObj (mkNP (ap.s!Pred)) (predV hen_copula [])
|
False => insertObj (mkNP ap.s) (predV hen_copula [])
|
||||||
} ;
|
} ;
|
||||||
QuestRepV cl = {
|
QuestRepV cl = {
|
||||||
s = \\_,p,a => ---- also for indirect questions?
|
s = \\_,p,a => ---- also for indirect questions?
|
||||||
@@ -49,8 +49,7 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
|
|||||||
APerf => v.s ++ "不" ++ v.sn ++ v.pp ;
|
APerf => v.s ++ "不" ++ v.sn ++ v.pp ;
|
||||||
ADurStat => v.s ++ "不" ++ v.sn ;
|
ADurStat => v.s ++ "不" ++ v.sn ;
|
||||||
ADurProg => v.s ++ v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
ADurProg => v.s ++ v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
||||||
AExper => v.s ++ v.neg ++ v.sn ++ v.ep ;
|
AExper => v.s ++ v.neg ++ v.sn ++ v.ep
|
||||||
AFut => jiu_s ++ v.s ++ v.neg ++ v.sn ++ v.ep -- TODO check placement of jiang
|
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
cl.np ++ cl.vp.prePart ++ verb ++ cl.vp.compl
|
cl.np ++ cl.vp.prePart ++ verb ++ cl.vp.compl
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ concrete IdiomChi of Idiom = CatChi ** open Prelude, ResChi in {
|
|||||||
---- it is John who did it
|
---- it is John who did it
|
||||||
CleftNP np rs = mkClause rs.s copula np.s ; -- did it + de + is I
|
CleftNP np rs = mkClause rs.s copula np.s ; -- did it + de + is I
|
||||||
|
|
||||||
CleftAdv ad s = mkClause (linS s ++ possessive_s) copula ad.s ; -- she sleeps + de + is here
|
CleftAdv ad s = mkClause (s.s ++ possessive_s) copula ad.s ; -- she sleeps + de + is here
|
||||||
|
|
||||||
ExistNP np = mkClause [] (regVerb you_s) np.s ; ---- infl of you
|
ExistNP np = mkClause [] (regVerb you_s) np.s ; ---- infl of you
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ lin
|
|||||||
tree_N = mkN "树" "棵"; -- "shu" "ke"
|
tree_N = mkN "树" "棵"; -- "shu" "ke"
|
||||||
big_A = mkA "大" ; -- "da"
|
big_A = mkA "大" ; -- "da"
|
||||||
small_A = mkA "小" ; -- "xiao"
|
small_A = mkA "小" ; -- "xiao"
|
||||||
green_A = colourA "绿" ; -- "lv"
|
green_A = mkA "绿" ; -- "lv"
|
||||||
walk_V = mkV "走" ; -- "zou"
|
walk_V = mkV "走" ; -- "zou"
|
||||||
sleep_V = mkV "睡觉" ; -- "shui"
|
sleep_V = mkV "睡觉" ; -- "shui"
|
||||||
love_V2 = mkV2 "爱" ; -- "ai"
|
love_V2 = mkV2 "爱" ; -- "ai"
|
||||||
@@ -159,10 +159,10 @@ ashes_N = mkN "灰" [];
|
|||||||
burn_V = mkV "烧" ;
|
burn_V = mkV "烧" ;
|
||||||
road_N = mkN "路" "条";
|
road_N = mkN "路" "条";
|
||||||
mountain_N = mkN "山" "座";
|
mountain_N = mkN "山" "座";
|
||||||
red_A = colourA "红" ;
|
red_A = mkA "红" ;
|
||||||
yellow_A = colourA "黄" ;
|
yellow_A = mkA "黄" ;
|
||||||
white_A = colourA "白" ;
|
white_A = mkA "白" ;
|
||||||
black_A = colourA "黑" ;
|
black_A = mkA "黑" ;
|
||||||
night_N = mkN "夜晚" ; -- [mark] "夜晚" 's classifier is "个"
|
night_N = mkN "夜晚" ; -- [mark] "夜晚" 's classifier is "个"
|
||||||
day_N = mkN "白天" []; -- [mark] "白天" -> "天", "天" itself is classifier
|
day_N = mkN "白天" []; -- [mark] "白天" -> "天", "天" itself is classifier
|
||||||
year_N = mkN "年" [] ; -- [mark] "年" itself is classifier
|
year_N = mkN "年" [] ; -- [mark] "年" itself is classifier
|
||||||
@@ -357,7 +357,7 @@ lin
|
|||||||
beg_V2V = mkV2V (mkV "乞求") ; -- beg him to do something
|
beg_V2V = mkV2V (mkV "乞求") ; -- beg him to do something
|
||||||
break_V2 = mkV2 "打破" ;
|
break_V2 = mkV2 "打破" ;
|
||||||
broad_A = mkA "宽" ;
|
broad_A = mkA "宽" ;
|
||||||
brown_A = colourA "棕" ;
|
brown_A = mkA "棕" ;
|
||||||
clever_A = mkA "聪明" ;
|
clever_A = mkA "聪明" ;
|
||||||
close_V2 = mkV2 "关闭" ;
|
close_V2 = mkV2 "关闭" ;
|
||||||
easy_A2V = mkA2 "简单" ;
|
easy_A2V = mkA2 "简单" ;
|
||||||
@@ -376,4 +376,6 @@ lin
|
|||||||
ugly_A = mkA "丑" ;
|
ugly_A = mkA "丑" ;
|
||||||
uncertain_A = mkA "不确定" ; -- [mark] "不确定": 不("un-") + 确定("certain")
|
uncertain_A = mkA "不确定" ; -- [mark] "不确定": 不("un-") + 确定("certain")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,6 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
DetNP det = {s = case det.detType of {
|
DetNP det = {s = case det.detType of {
|
||||||
DTFull Pl => det.s ++ xie_s ;
|
DTFull Pl => det.s ++ xie_s ;
|
||||||
DTPoss => det.s ;
|
|
||||||
_ => det.s ++ ge_s
|
_ => det.s ++ ge_s
|
||||||
} ;
|
} ;
|
||||||
} ; ----
|
} ; ----
|
||||||
@@ -64,8 +63,8 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
AdNum adn num = {s = adn.s ++ num.s ; hasC = True} ;
|
AdNum adn num = {s = adn.s ++ num.s ; hasC = True} ;
|
||||||
|
|
||||||
OrdSuperl a = {s = superlative_s ++ a.s ! Attr} ;
|
OrdSuperl a = {s = superlative_s ++ a.s} ;
|
||||||
OrdNumeralSuperl n a = {s = ordinal_s ++ n.s ++ superlative_s ++ a.s ! Attr} ; ---- to check AR 24/8/2014
|
OrdNumeralSuperl n a = {s = ordinal_s ++ n.s ++ superlative_s ++ a.s} ; ---- to check AR 24/8/2014
|
||||||
|
|
||||||
DefArt = mkQuant [] [] DTPoss ; -- use that_Quant if you want the_s
|
DefArt = mkQuant [] [] DTPoss ; -- use that_Quant if you want the_s
|
||||||
IndefArt = mkQuant yi_s [] DTNum ; -- (DTFull Sg) ; -- empty in the plural
|
IndefArt = mkQuant yi_s [] DTNum ; -- (DTFull Sg) ; -- empty in the plural
|
||||||
@@ -81,8 +80,8 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
|||||||
ComplN3 f x = {s = appPrep f.c2 x.s ++ f.s ; c = f.c ; c2 = f.c3} ;
|
ComplN3 f x = {s = appPrep f.c2 x.s ++ f.s ; c = f.c ; c2 = f.c3} ;
|
||||||
|
|
||||||
AdjCN ap cn = case ap.monoSyl of {
|
AdjCN ap cn = case ap.monoSyl of {
|
||||||
True => {s = ap.s ! Attr ++ cn.s ; c = cn.c} ;
|
True => {s = ap.s ++ cn.s ; c = cn.c} ;
|
||||||
False => {s = ap.s ! Attr ++ possessive_s ++ cn.s ; c = cn.c}
|
False => {s = ap.s ++ possessive_s ++ cn.s ; c = cn.c}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelCN cn rs = {s = rs.s ++ cn.s ; c = cn.c} ;
|
RelCN cn rs = {s = rs.s ++ cn.s ; c = cn.c} ;
|
||||||
|
|||||||
@@ -35,9 +35,6 @@ oper
|
|||||||
= \a,b -> lin A (mkAdj a b) ;
|
= \a,b -> lin A (mkAdj a b) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
colourA : Str -> A ; -- colour Adjectives have a "色" when used as predicative
|
|
||||||
colourA colour = lin A (colourAdj colour);
|
|
||||||
|
|
||||||
mkA2 = overload {
|
mkA2 = overload {
|
||||||
mkA2 : Str -> A2
|
mkA2 : Str -> A2
|
||||||
= \a -> lin A2 (simpleAdj a ** {c2 = emptyPrep}) ;
|
= \a -> lin A2 (simpleAdj a ** {c2 = emptyPrep}) ;
|
||||||
@@ -193,9 +190,9 @@ oper
|
|||||||
= \s -> lin Subj (ResChi.mkSubj s []) ;
|
= \s -> lin Subj (ResChi.mkSubj s []) ;
|
||||||
mkConj = overload {
|
mkConj = overload {
|
||||||
mkConj : Str -> Conj
|
mkConj : Str -> Conj
|
||||||
= \s -> lin Conj {s = \\_ => mkConjForm s ; conjType = NotJiu} ;
|
= \s -> lin Conj {s = \\_ => mkConjForm s} ;
|
||||||
mkConj : (both,and : Str) -> Conj
|
mkConj : (both,and : Str) -> Conj
|
||||||
= \s,t -> lin Conj {s = \\_ => mkConjForm2 s t ; conjType = NotJiu} ;
|
= \s,t -> lin Conj {s = \\_ => mkConjForm2 s t} ;
|
||||||
} ;
|
} ;
|
||||||
mkpDet : Str -> Det
|
mkpDet : Str -> Det
|
||||||
= \s -> lin Det {s = word s ; detType = DTFull Sg} ;
|
= \s -> lin Det {s = word s ; detType = DTFull Sg} ;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ concrete PhraseChi of Phrase = CatChi ** open Prelude, ResChi in {
|
|||||||
lin
|
lin
|
||||||
PhrUtt pconj utt voc = {s = pconj.s ++ voc.s ++ utt.s} ;
|
PhrUtt pconj utt voc = {s = pconj.s ++ voc.s ++ utt.s} ;
|
||||||
|
|
||||||
UttS s = ss (linS s) ;
|
UttS s = s ;
|
||||||
UttQS qs = ss (qs.s ! True) ;
|
UttQS qs = ss (qs.s ! True) ;
|
||||||
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p} ;
|
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p} ;
|
||||||
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p} ;
|
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p} ;
|
||||||
@@ -13,7 +13,7 @@ concrete PhraseChi of Phrase = CatChi ** open Prelude, ResChi in {
|
|||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
UttNP np = np ;
|
UttNP np = np ;
|
||||||
UttCN cn = cn ;
|
UttCN cn = cn ;
|
||||||
UttAP ap = {s = ap.s!Attr} ;
|
UttAP ap = ap ;
|
||||||
UttCard x = x ;
|
UttCard x = x ;
|
||||||
UttVP vp = ss (infVP vp) ;
|
UttVP vp = ss (infVP vp) ;
|
||||||
UttAdv adv = adv ;
|
UttAdv adv = adv ;
|
||||||
|
|||||||
@@ -7,7 +7,21 @@ concrete QuestionChi of Question = CatChi **
|
|||||||
lin
|
lin
|
||||||
|
|
||||||
QuestCl cl = {
|
QuestCl cl = {
|
||||||
s = \\b,p,a => cl.s ! p ! a ++ question_s ; -- redup question as variant in ExtraChi
|
s = table {
|
||||||
|
True => \\p,a => cl.s ! p ! a ++ question_s ; -- redup question as variant in ExtraChi
|
||||||
|
False => \\p,a => --- code copied from ExtraChi
|
||||||
|
let
|
||||||
|
v = cl.vp.verb ;
|
||||||
|
verb = case a of {
|
||||||
|
APlain => v.s ++ v.neg ++ v.sn ;
|
||||||
|
APerf => v.s ++ neg_s ++ v.sn ++ v.pp ;
|
||||||
|
ADurStat => v.s ++ neg_s ++ v.sn ;
|
||||||
|
ADurProg => v.s ++ v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
||||||
|
AExper => v.s ++ v.neg ++ v.sn ++ v.ep
|
||||||
|
}
|
||||||
|
in
|
||||||
|
cl.np ++ cl.vp.prePart ++ verb ++ cl.vp.compl
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
QuestVP ip vp = {
|
QuestVP ip vp = {
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ resource ResChi = ParamX ** open Prelude in {
|
|||||||
geng_s = "更" ; -- more, in comparison
|
geng_s = "更" ; -- more, in comparison
|
||||||
hen_s = "很" ; -- very, or predicating a monosyllabic adjective
|
hen_s = "很" ; -- very, or predicating a monosyllabic adjective
|
||||||
taN_s = "它" ;
|
taN_s = "它" ;
|
||||||
jiu_s = "就" ;
|
|
||||||
hui_s = "会" ;
|
|
||||||
|
|
||||||
zai_V = mkVerb "在" [] [] [] [] "不" ;
|
zai_V = mkVerb "在" [] [] [] [] "不" ;
|
||||||
fullstop_s = "。" ;
|
fullstop_s = "。" ;
|
||||||
@@ -91,17 +89,15 @@ resource ResChi = ParamX ** open Prelude in {
|
|||||||
-- parameters
|
-- parameters
|
||||||
|
|
||||||
param
|
param
|
||||||
Aspect = APlain | APerf | ADurStat | ADurProg | AExper | AFut ; ---- APlain added by AR
|
Aspect = APlain | APerf | ADurStat | ADurProg | AExper ; ---- APlain added by AR
|
||||||
ConjForm = CPhr CPosType | CSent;
|
ConjForm = CPhr CPosType | CSent;
|
||||||
ConjType = Jiu | NotJiu ; -- to put conjunction in the right place in ConjS: "I sleep *and* she walks" vs. "if I sleep, she *then* walks"
|
|
||||||
CPosType = CAPhrase | CNPhrase | CVPhrase ;
|
CPosType = CAPhrase | CNPhrase | CVPhrase ;
|
||||||
DeForm = DeNoun | NdNoun ; -- parameter created for noun with/out partical "de"
|
DeForm = DeNoun | NdNoun ; -- parameter created for noun with/out partical "de"
|
||||||
|
|
||||||
AdvType = ATPlace Bool | ATTime | ATManner | ATPoss ; -- ATPlace True = has zai_s already
|
AdvType = ATPlace Bool | ATTime | ATManner | ATPoss ; -- ATPlace True = has zai_s already
|
||||||
|
|
||||||
AdjPlace = Attr | Pred ; -- a green cat / the cat is green colour
|
|
||||||
|
|
||||||
-- parts of speech
|
-- parts of speech
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
VP = {
|
VP = {
|
||||||
@@ -117,35 +113,21 @@ oper
|
|||||||
-- for morphology
|
-- for morphology
|
||||||
|
|
||||||
Noun : Type = {s : Str ; c : Str} ;
|
Noun : Type = {s : Str ; c : Str} ;
|
||||||
Adj : Type = {s : AdjPlace => Str ; monoSyl: Bool} ;
|
Adj : Type = {s : Str ; monoSyl: Bool} ;
|
||||||
Verb : Type = {s,sn : Str ; pp,ds,dp,ep : Str ; neg : Str} ; --- sn=[] needed for "hen" as copula
|
Verb : Type = {s,sn : Str ; pp,ds,dp,ep : Str ; neg : Str} ; --- sn=[] needed for "hen" as copula
|
||||||
|
|
||||||
regNoun : Str -> Str -> Noun = \s,c -> {s = word s ; c = word c};
|
regNoun : Str -> Str -> Noun = \s,c -> {s = word s ; c = word c};
|
||||||
|
|
||||||
mkAdj : Str -> Bool -> Adj = \s,b -> {s =
|
mkAdj : Str -> Bool -> Adj = \s,b -> {s = word s ; monoSyl = b};
|
||||||
table {
|
|
||||||
_ => word s
|
|
||||||
};
|
|
||||||
monoSyl = b};
|
|
||||||
|
|
||||||
complexAP : Str -> Adj ** {hasAdA : Bool} =
|
complexAP : Str -> Adj ** {hasAdA : Bool} =
|
||||||
\s -> mkAdj s False ** {hasAdA = False} ; --- not used for adding AdA
|
\s -> {s = s ; monoSyl = False ; hasAdA = False} ; --- not used for adding AdA
|
||||||
|
|
||||||
simpleAdj : Str -> Adj = \s -> case s of {
|
simpleAdj : Str -> Adj = \s -> case s of {
|
||||||
? => mkAdj s True ; -- monosyllabic
|
? => mkAdj s True ; -- monosyllabic
|
||||||
_ => mkAdj s False
|
_ => mkAdj s False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
colourAdj : Str -> Adj = \s -> {
|
|
||||||
s = table {
|
|
||||||
Attr => word s ;
|
|
||||||
Pred => word s ++ "色"
|
|
||||||
};
|
|
||||||
monoSyl = case s of {
|
|
||||||
? => True ;
|
|
||||||
_ => False }
|
|
||||||
};
|
|
||||||
|
|
||||||
copula : Verb = mkVerb "是" [] [] [] [] "不" ;
|
copula : Verb = mkVerb "是" [] [] [] [] "不" ;
|
||||||
hen_copula : Verb =
|
hen_copula : Verb =
|
||||||
{s = hen_s ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
|
{s = hen_s ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
|
||||||
@@ -169,16 +151,14 @@ oper
|
|||||||
APerf => v.s ++ v.pp ;
|
APerf => v.s ++ v.pp ;
|
||||||
ADurStat => v.s ++ v.ds ;
|
ADurStat => v.s ++ v.ds ;
|
||||||
ADurProg => v.dp ++ v.s ;
|
ADurProg => v.dp ++ v.s ;
|
||||||
AExper => v.s ++ v.ep ;
|
AExper => v.s ++ v.ep
|
||||||
AFut => hui_s ++ v.s
|
|
||||||
} ;
|
} ;
|
||||||
Neg => table {
|
Neg => table {
|
||||||
APlain => v.neg ++ v.sn ; --- neg?
|
APlain => v.neg ++ v.sn ; --- neg?
|
||||||
APerf => "不" ++ v.sn ++ v.pp ;
|
APerf => "不" ++ v.sn ++ v.pp ;
|
||||||
ADurStat => "不" ++ v.sn ;
|
ADurStat => "不" ++ v.sn ;
|
||||||
ADurProg => v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
ADurProg => v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
||||||
AExper => v.neg ++ v.sn ++ v.ep ;
|
AExper => v.neg ++ v.sn ++ v.ep
|
||||||
AFut => "不" ++ hui_s ++ v.s
|
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -221,20 +201,10 @@ oper
|
|||||||
|
|
||||||
Clause : Type = {
|
Clause : Type = {
|
||||||
s : Polarity => Aspect => Str ;
|
s : Polarity => Aspect => Str ;
|
||||||
np : Str ;
|
np : Str;
|
||||||
vp : VP ;
|
vp : VP
|
||||||
postJiu : Polarity => Aspect => Str ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Sentence : Type = {
|
|
||||||
preJiu, -- everything until the subject
|
|
||||||
postJiu -- everything after the subject
|
|
||||||
: Str
|
|
||||||
} ;
|
|
||||||
|
|
||||||
linS : Sentence -> Str = \s -> s.preJiu ++ s.postJiu ;
|
|
||||||
simpleS : Str -> Sentence = \s -> {preJiu=s ; postJiu=[]} ;
|
|
||||||
|
|
||||||
|
|
||||||
mkClause = overload {
|
mkClause = overload {
|
||||||
mkClause : Str -> Verb -> Clause = \np,v ->
|
mkClause : Str -> Verb -> Clause = \np,v ->
|
||||||
@@ -251,7 +221,6 @@ oper
|
|||||||
s = \\p,a => vp.topic ++ np ++ vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl ++ compl ;
|
s = \\p,a => vp.topic ++ np ++ vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl ++ compl ;
|
||||||
np = vp.topic ++ np ;
|
np = vp.topic ++ np ;
|
||||||
vp = insertObj (ss compl) vp ;
|
vp = insertObj (ss compl) vp ;
|
||||||
postJiu = \\p,a => vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl ++ compl ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -31,36 +31,20 @@ concrete SentenceChi of Sentence = CatChi **
|
|||||||
|
|
||||||
SlashPrep cl prep = cl ** {c2 = prep} ;
|
SlashPrep cl prep = cl ** {c2 = prep} ;
|
||||||
|
|
||||||
EmbedS s = ss (conjThat ++ linS s) ;
|
EmbedS s = ss (conjThat ++ s.s) ;
|
||||||
EmbedQS qs = ss (qs.s ! False) ;
|
EmbedQS qs = ss (qs.s ! False) ;
|
||||||
EmbedVP vp = ss (infVP vp) ;
|
EmbedVP vp = ss (infVP vp) ;
|
||||||
|
|
||||||
UseCl t p cl = {
|
UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t} ;
|
||||||
preJiu = cl.np ;
|
|
||||||
postJiu = t.s ++ p.s ++ cl.postJiu ! p.p ! t.t} ;
|
|
||||||
|
|
||||||
UseQCl t p cl = {s = \\isDir => t.s ++ p.s ++ cl.s ! isDir ! p.p ! t.t} ;
|
UseQCl t p cl = {s = \\isDir => t.s ++ p.s ++ cl.s ! isDir ! p.p ! t.t} ;
|
||||||
UseRCl t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t} ;
|
UseRCl t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t} ;
|
||||||
UseSlash t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t ; c2 = cl.c2} ;
|
UseSlash t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t ; c2 = cl.c2} ;
|
||||||
|
|
||||||
AdvS a s = s ** {
|
AdvS a s = ss (a.s ++ s.s) ;
|
||||||
preJiu = a.s ++ s.preJiu -- tomorrow she
|
ExtAdvS a s = ss (a.s ++ chcomma ++ s.s) ;
|
||||||
} ;
|
|
||||||
|
|
||||||
ExtAdvS a s = s ** {
|
RelS s r = ss (s.s ++ r.s) ;
|
||||||
preJiu = a.s ++ chcomma ++ s.preJiu -- tomorrow, she
|
|
||||||
} ;
|
|
||||||
|
|
||||||
RelS s r = s ** {
|
SSubjS a subj b = ss (a.s ++ subj.prePart ++ b.s ++ subj.sufPart) ;
|
||||||
postJiu = s.postJiu ++ r.s ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- a="she walks", b="I die"
|
|
||||||
-- result: preJiu="if she walks, I", postJiu="die"
|
|
||||||
SSubjS a subj b = {
|
|
||||||
preJiu = linS a ++ subj.prePart -- if she walks,
|
|
||||||
++ b.preJiu ; -- I
|
|
||||||
postJiu = b.postJiu ++ subj.sufPart -- die
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,15 +30,13 @@ and_Conj = {s = table {
|
|||||||
CPhr CNPhrase => mkConjForm "和" ;
|
CPhr CNPhrase => mkConjForm "和" ;
|
||||||
CPhr CAPhrase => mkConjForm "而" ;
|
CPhr CAPhrase => mkConjForm "而" ;
|
||||||
CPhr CVPhrase => mkConjForm "又" ;
|
CPhr CVPhrase => mkConjForm "又" ;
|
||||||
CSent => mkConjForm "而" --modified by chenpneg 11.19
|
CSent => mkConjForm "并且" --modified by chenpneg 11.19
|
||||||
} ;
|
}
|
||||||
conjType = NotJiu ;
|
|
||||||
} ;
|
} ;
|
||||||
or_Conj = {s = table {
|
or_Conj = {s = table {
|
||||||
CPhr _ => mkConjForm "或" ;
|
CPhr _ => mkConjForm "或" ;
|
||||||
CSent => mkConjForm "还是"
|
CSent => mkConjForm "还是"
|
||||||
} ;
|
}
|
||||||
conjType = NotJiu ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
although_Subj = mkSubj "虽然" "但";
|
although_Subj = mkSubj "虽然" "但";
|
||||||
@@ -54,8 +52,8 @@ when_IAdv = mkIAdvL "什么时候" ;
|
|||||||
how_IAdv = mkIAdvL "如何" ;
|
how_IAdv = mkIAdvL "如何" ;
|
||||||
all_Predet = ssword "所有" ;
|
all_Predet = ssword "所有" ;
|
||||||
many_Det = mkDet (word "很多") DTPoss ;
|
many_Det = mkDet (word "很多") DTPoss ;
|
||||||
someSg_Det = mkDet (word "一些") DTPoss ;
|
someSg_Det = mkDet (word "一些") Sg ;
|
||||||
somePl_Det = mkDet (word "一些") DTPoss ;
|
somePl_Det = mkDet (word "一些") Sg ;
|
||||||
few_Det = mkDet "少" Pl ;
|
few_Det = mkDet "少" Pl ;
|
||||||
other_A = mkA "其他" ;
|
other_A = mkA "其他" ;
|
||||||
|
|
||||||
@@ -124,8 +122,7 @@ both7and_DConj = {s = table { -- modified by chenpeng 11.19
|
|||||||
CPhr CAPhrase => mkConjForm2 "即" "又" ;
|
CPhr CAPhrase => mkConjForm2 "即" "又" ;
|
||||||
CPhr CVPhrase => mkConjForm2 "不但" "而且" ;
|
CPhr CVPhrase => mkConjForm2 "不但" "而且" ;
|
||||||
CSent => mkConjForm2 "不但" "而且"
|
CSent => mkConjForm2 "不但" "而且"
|
||||||
} ;
|
}
|
||||||
conjType = NotJiu ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
by8agent_Prep = mkPrep "被" [] mannerAdvType; -- by for agent in passive
|
by8agent_Prep = mkPrep "被" [] mannerAdvType; -- by for agent in passive
|
||||||
@@ -138,8 +135,7 @@ either7or_DConj = {s = table { -- modified by chenpeng 11.19
|
|||||||
CPhr CAPhrase => mkConjForm2 "要么" "要么" ;
|
CPhr CAPhrase => mkConjForm2 "要么" "要么" ;
|
||||||
CPhr CVPhrase => mkConjForm2 "要么" "要么" ;
|
CPhr CVPhrase => mkConjForm2 "要么" "要么" ;
|
||||||
CSent => mkConjForm2 "要么" "要么"
|
CSent => mkConjForm2 "要么" "要么"
|
||||||
} ;
|
}
|
||||||
conjType = NotJiu ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
everybody_NP = ssword "每个人" ; -- [mark] "每个人": 每(every)+个(classifier)+人(person)
|
everybody_NP = ssword "每个人" ; -- [mark] "每个人": 每(every)+个(classifier)+人(person)
|
||||||
@@ -156,10 +152,11 @@ less_CAdv = {s = than_s ; p = word "没更"} ; -- modified by chenpeng 11.24
|
|||||||
more_CAdv = {s = than_s ; p = word "更"} ; -- modified by chenpeng 11.24
|
more_CAdv = {s = than_s ; p = word "更"} ; -- modified by chenpeng 11.24
|
||||||
most_Predet = ssword "大多数" ;
|
most_Predet = ssword "大多数" ;
|
||||||
if_then_Conj = {s = table { -- added by chenpeng 11.19
|
if_then_Conj = {s = table { -- added by chenpeng 11.19
|
||||||
CSent => mkConjForm2 "如果" "就" ; -- if she walks, I then sleep
|
CPhr CNPhrase => mkConjForm [] ;
|
||||||
CPhr _ => mkConjForm2 "如果" "那么" -- if fish , then rice
|
CPhr CAPhrase => mkConjForm [] ;
|
||||||
} ;
|
CPhr CVPhrase => mkConjForm [] ;
|
||||||
conjType = Jiu ;
|
CSent => mkConjForm2 "如果" "那么"
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
nobody_NP = ssword "没人" ;
|
nobody_NP = ssword "没人" ;
|
||||||
nothing_NP = ssword "没有什么" ;
|
nothing_NP = ssword "没有什么" ;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ concrete SymbolChi of Symbol = CatChi ** open Prelude, ResChi in {
|
|||||||
c = cn.c
|
c = cn.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SymbS sy = simpleS sy.s ;
|
SymbS sy = sy ;
|
||||||
SymbNum sy = sy ;
|
SymbNum sy = sy ;
|
||||||
SymbOrd sy = sy ;
|
SymbOrd sy = sy ;
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ concrete TenseChi of Tense =
|
|||||||
---- ??
|
---- ??
|
||||||
TPres = {s = [] ; t = APlain} ;
|
TPres = {s = [] ; t = APlain} ;
|
||||||
TPast = {s = [] ; t = APerf} ;
|
TPast = {s = [] ; t = APerf} ;
|
||||||
TFut = {s = [] ; t = AFut} ;
|
TFut = {s = [] ; t = ADurProg} ;
|
||||||
TCond = {s = [] ; t = ADurStat} ;
|
TCond = {s = [] ; t = ADurStat} ;
|
||||||
|
|
||||||
ASimul = {s = [] ; t = APlain} ;
|
ASimul = {s = [] ; t = APlain} ;
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
Slash2V3 v np = insertAdv (mkNP (ba_s ++ np.s)) (predV v v.part) ** {c2 = v.c3 ; isPre = v.hasPrep} ; -- slot for third argument
|
Slash2V3 v np = insertAdv (mkNP (ba_s ++ np.s)) (predV v v.part) ** {c2 = v.c3 ; isPre = v.hasPrep} ; -- slot for third argument
|
||||||
Slash3V3 v np = insertObj (mkNP (appPrep v.c3 np.s)) (predV v v.part) ** {c2 = v.c2 ; isPre = True} ; -- slot for ba object
|
Slash3V3 v np = insertObj (mkNP (appPrep v.c3 np.s)) (predV v v.part) ** {c2 = v.c2 ; isPre = True} ; -- slot for ba object
|
||||||
|
|
||||||
SlashV2A v ap = insertObj {s = ap.s ! Pred} (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
SlashV2A v ap = insertObj ap (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
|
|
||||||
SlashV2V v vp = insertObj (mkNP (infVP vp)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
SlashV2V v vp = insertObj (mkNP (infVP vp)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
SlashV2S v s = insertObj (ss (say_s ++ linS s)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
SlashV2S v s = insertObj (ss (say_s ++ s.s)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
SlashV2Q v q = insertObj (ss (say_s ++ q.s ! False)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
SlashV2Q v q = insertObj (ss (say_s ++ q.s ! False)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
|
|
||||||
ComplVV v vp = {
|
ComplVV v vp = {
|
||||||
@@ -23,9 +23,9 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
isAdj = False ;
|
isAdj = False ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplVS v s = insertObj (ss (linS s)) (predV v []) ;
|
ComplVS v s = insertObj s (predV v []) ;
|
||||||
ComplVQ v q = insertObj (ss (q.s ! False)) (predV v []) ;
|
ComplVQ v q = insertObj (ss (q.s ! False)) (predV v []) ;
|
||||||
ComplVA v ap = insertObj {s = ap.s ! Pred} (predV v []) ;
|
ComplVA v ap = insertObj ap (predV v []) ;
|
||||||
|
|
||||||
ComplSlash vp np = case vp.isPre of {
|
ComplSlash vp np = case vp.isPre of {
|
||||||
--- True => insertAdv (mkNP (ba_s ++ np.s)) vp ; --- ba or vp.c2 ?
|
--- True => insertAdv (mkNP (ba_s ++ np.s)) vp ; --- ba or vp.c2 ?
|
||||||
@@ -62,7 +62,7 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
PassV2 v = insertAdv (mkNP passive_s) (predV v v.part) ; ----
|
PassV2 v = insertAdv (mkNP passive_s) (predV v v.part) ; ----
|
||||||
|
|
||||||
CompAP ap = insertObj (mkNP (ap.s ! Pred ++ de_s)) (predV copula []) ** {isAdj = True} ;
|
CompAP ap = insertObj (mkNP (ap.s ++ de_s)) (predV copula []) ** {isAdj = True} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
CompAP ap = case ap.hasAdA of {
|
CompAP ap = case ap.hasAdA of {
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant that_Quant NumSg) (AdjCN (PositA green_A) (UseN cat_N))) (UseComp (CompAP (PositA green_A))))
|
|
||||||
LangChi: 那 只 绿 猫 是 绿 色 的
|
|
||||||
LangEng: that green cat is green
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
-- These are not ideal output. TODO: Add new constructor for semantic contexts to achieve the correct output for "地" vs "得"
|
|
||||||
|
|
||||||
Lang: PredVP (AdvNP (UsePron it_Pron) (PositAdvAdj beautiful_A)) (UseV walk_V)
|
|
||||||
LangChi: 漂 亮 地 的 它 走
|
|
||||||
LangEng: it beautifully walks
|
|
||||||
-- Correct LangChi: 它 漂 亮 地 走
|
|
||||||
|
|
||||||
|
|
||||||
Lang: PredVP (UsePron it_Pron) (AdvVP (UseV walk_V) (PositAdvAdj beautiful_A))
|
|
||||||
LangChi: 它 走 得 漂 亮 地
|
|
||||||
LangEng: it walks beautifully
|
|
||||||
-- Correct LangChi: 它 走 得 漂 亮
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
-- One way of saying "he/she gives me a cat"
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ComplSlash (Slash2V3 give_V3 (DetCN (DetQuant DefArt NumSg) (UseN cat_N))) (UsePron i_Pron)))
|
|
||||||
LangChi: 他 把 猫 给 我
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
-- Basic conjunctions, no jiu
|
|
||||||
Lang: ConjS and_Conj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V))) (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron she_Pron) (UseV walk_V))))
|
|
||||||
LangChi: 我 睡 觉 而 她 走
|
|
||||||
LangEng: I sleep and she walks
|
|
||||||
|
|
||||||
Lang: ConjS or_Conj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV go_V))) (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron she_Pron) (UseV go_V))))
|
|
||||||
LangChi: 我 去 还 是 她 去
|
|
||||||
LangEng: I go or she goes
|
|
||||||
|
|
||||||
Lang: ConjS either7or_DConj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV go_V))) (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron she_Pron) (UseV go_V))))
|
|
||||||
LangChi: 要 么 我 去 要 么 她 去
|
|
||||||
LangEng: either I go or she goes
|
|
||||||
|
|
||||||
-- If-then in different tenses
|
|
||||||
Lang: ConjS if_then_Conj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V))) (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron she_Pron) (UseV die_V))))
|
|
||||||
LangChi: 如 果 我 睡 觉 , 她 就 死
|
|
||||||
LangEng: if I sleep then she dies
|
|
||||||
|
|
||||||
Lang: ConjS if_then_Conj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V))) (UseCl (TTAnt TFut ASimul) PPos (PredVP (UsePron she_Pron) (UseV die_V))))
|
|
||||||
LangChi: 如 果 我 睡 觉 , 她 就 会 死
|
|
||||||
LangEng: if I sleep then she will die
|
|
||||||
|
|
||||||
-- contrast: if_Subj, not if_then_Conj
|
|
||||||
Lang: ExtAdvS (SubjS if_Subj (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V)))) (UseCl (TTAnt TFut ASimul) PPos (PredVP (UsePron she_Pron) (UseV die_V)))
|
|
||||||
LangChi: 如 果 我 睡 觉 , 她 会 死
|
|
||||||
LangEng: if I sleep , she will die
|
|
||||||
|
|
||||||
-- back to if_then_Conj, now with negations
|
|
||||||
Lang: ConjS if_then_Conj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V))) (UseCl (TTAnt TPres ASimul) PNeg (PredVP (UsePron she_Pron) (UseV die_V))))
|
|
||||||
LangChi: 如 果 我 睡 觉 , 她 就 不 死
|
|
||||||
LangEng: if I sleep then she doesn't die
|
|
||||||
|
|
||||||
Lang: ConjS if_then_Conj (BaseS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V))) (UseCl (TTAnt TFut ASimul) PNeg (PredVP (UsePron she_Pron) (UseV die_V))))
|
|
||||||
LangChi: 如 果 我 睡 觉 , 她 就 不 会 死
|
|
||||||
LangEng: if I sleep then she won't die
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- NP conjunctions
|
|
||||||
Lang: ConjNP or_Conj (BaseNP (MassNP (UseN fish_N)) (MassNP (UseN beer_N)))
|
|
||||||
LangChi: 鱼 或 啤 酒
|
|
||||||
LangEng: fish or beer
|
|
||||||
|
|
||||||
--NB: unnatural non-empty strings just for testing purpose
|
|
||||||
Lang: ConjNP if_then_Conj (BaseNP (MassNP (UseN fish_N)) (MassNP (UseN beer_N)))
|
|
||||||
LangChi: 如 果 鱼 那 么 啤 酒
|
|
||||||
LangEng: if fish then beer
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
Lang: UseCl (TTAnt TFut ASimul) PPos (PredVP (UsePron i_Pron) (UseV die_V))
|
|
||||||
LangChi: 我 会 死
|
|
||||||
LangEng: I will die
|
|
||||||
|
|
||||||
Lang: ExtAdvS (SubjS if_Subj (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (UseV sleep_V)))) (UseCl (TTAnt TFut ASimul) PPos (PredVP (UsePron she_Pron) (UseV walk_V)))
|
|
||||||
LangChi: 如 果 我 睡 觉 , 她 会 走
|
|
||||||
LangEng: if I sleep , she will walk
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ProgrVP (UseV die_V)))
|
|
||||||
LangChi: 我 在 死
|
|
||||||
LangEng: I am dying
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TFut ASimul) PNeg (PredVP (UsePron i_Pron) (UseV die_V))
|
|
||||||
LangChi: 我 不 会 死
|
|
||||||
LangEng: I won't die
|
|
||||||
|
|
||||||
Lang: UseQCl (TTAnt TFut ASimul) PPos (QuestCl (PredVP (UsePron i_Pron) (UseV die_V)))
|
|
||||||
-- LangChi: 我 会 不 会 死
|
|
||||||
LangChi: 我 会 死 吗
|
|
||||||
LangEng: will I die
|
|
||||||
|
|
||||||
Lang: UseQCl (TTAnt TFut ASimul) PNeg (QuestCl (PredVP (UsePron i_Pron) (UseV die_V)))
|
|
||||||
LangChi: 我 不 会 死 吗
|
|
||||||
LangEng: won't I die
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (UsePron i_Pron) (ComplVQ know_VQ (UseQCl (TTAnt TFut ASimul) PPos (QuestCl (PredVP (UsePron i_Pron) (UseV die_V))))))
|
|
||||||
LangChi: 我 不 知 道 我 会 死 吗
|
|
||||||
LangEng: I don't know if I will die
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (UsePron i_Pron) (ComplVQ know_VQ (UseQCl (TTAnt TFut ASimul) PNeg (QuestCl (PredVP (UsePron i_Pron) (UseV die_V))))))
|
|
||||||
LangChi: 我 不 知 道 我 不 会 死 吗
|
|
||||||
LangEng: I don't know if I won't die
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (MassNP (UseN cat_N)) (UseComp (CompCN (UseN dog_N))))
|
|
||||||
LangEng: cat isn't a dog
|
|
||||||
LangChi: 猫 不 是 狗
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant this_Quant NumPl) (UseN cat_N)) (UseComp (CompAP (PositA green_A))))
|
|
||||||
LangEng: these cats aren't green
|
|
||||||
LangChi: 这 些 猫 不 是 绿 色 的
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant that_Quant NumPl) (UseN cat_N)) (UseComp (CompAdv (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (UseN house_N))))))
|
|
||||||
LangEng: those cats aren't in the house
|
|
||||||
LangChi: 那 些 猫 不 在 房 子 中
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant this_Quant NumPl) (UseN cat_N)) (ComplVV can8know_VV (UseV walk_V)))
|
|
||||||
LangChi: 这 些 猫 不 会 走
|
|
||||||
LangEng: these cats can't walk
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant this_Quant NumPl) (UseN cat_N)) (ComplVV can_VV (UseV walk_V)))
|
|
||||||
LangChi: 这 些 猫 不 能 走
|
|
||||||
LangEng: these cats can't walk
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant this_Quant NumPl) (UseN cat_N)) (ComplVV want_VV (UseV walk_V)))
|
|
||||||
LangChi: 这 些 猫 不 想 走
|
|
||||||
LangEng: these cats don't want to walk
|
|
||||||
|
|
||||||
-- this tree does not make semantic sense in chinese but is compositionally correct due to the direct word for word translation for "must"
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant that_Quant NumPl) (UseN cat_N)) (ComplVV must_VV (UseV walk_V)))
|
|
||||||
LangChi: 那 些 猫 不 必 须 走
|
|
||||||
LangEng: those cats mustn't walk
|
|
||||||
|
|
||||||
-- 没有 and must not , bu ke yi
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
Lang: DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN cat_N)
|
|
||||||
LangEng: one cat
|
|
||||||
LangChi: 一 只 猫
|
|
||||||
|
|
||||||
Lang: DetCN (DetQuant this_Quant (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5)))))))) (UseN cat_N)
|
|
||||||
LangEng: these five cats
|
|
||||||
LangChi: 这 五 只 猫
|
|
||||||
|
|
||||||
Lang: DetCN (DetQuant (PossPron i_Pron) (NumCard (NumNumeral (num (pot2as3 (pot2 (pot0 n7))))))) (UseN cat_N)
|
|
||||||
LangEng: my seven hundred cats
|
|
||||||
LangChi: 我 的 七 百 只 猫
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
Lang: PredVP (DetCN (DetQuant that_Quant NumSg) (UseN boy_N)) (PassV2 kill_V2)
|
|
||||||
LangEng: that boy is killed
|
|
||||||
LangChi: 那 个 男 孩 被 杀
|
|
||||||
|
|
||||||
Lang: PredVP (DetCN (DetQuant DefArt NumSg) (UseN chair_N)) (PassV2 split_V2)
|
|
||||||
LangEng: the chair is split
|
|
||||||
LangChi: 椅 子 被 劈 开
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant that_Quant NumSg) (UseN boy_N)) (ComplVV want_VV (PassV2 kill_V2)))
|
|
||||||
LangEng: that boy doesn't want to be killed
|
|
||||||
LangChi: 那 个 男 孩 不 想 被 杀
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
----------
|
|
||||||
-- Objects
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumSg) (UseN cat_N)) (ComplSlash (VPSlashPrep (ComplSlash (VPSlashPrep (UseV go_V) with_Prep) (UsePron i_Pron)) to_Prep) (DetCN (DetQuant DefArt NumSg) (UseN moon_N))))
|
|
||||||
LangEng: the cat goes with me to the moon
|
|
||||||
LangChi: 猫 和 我 一 起 往 月 亮 去
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant (PossPron i_Pron) NumPl) (UseN cat_N)) (UseComp (CompAdv (PrepNP with_Prep (DetCN (DetQuant that_Quant NumSg) (UseN person_N))))))
|
|
||||||
LangEng: my cats are with that person
|
|
||||||
LangChi: 我 的 猫 和 那 个 人 一 起
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a hit_V2) (UsePron he_Pron)))
|
|
||||||
LangEng: I hit him
|
|
||||||
LangChi: 我 打 了 他
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a hit_V2) (UsePron he_Pron)))
|
|
||||||
LangEng: I hit him
|
|
||||||
LangChi: 我 打 他
|
|
||||||
|
|
||||||
-------------
|
|
||||||
-- Possession
|
|
||||||
Lang: DetCN (DetQuant (PossPron i_Pron) NumSg) (UseN cat_N)
|
|
||||||
LangEng: my cat
|
|
||||||
LangChi: 我 的 猫
|
|
||||||
|
|
||||||
-- that is my cat
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetNP (DetQuant that_Quant NumSg)) (UseComp (CompNP (DetCN (DetQuant (PossPron i_Pron) NumSg) (UseN cat_N)))))
|
|
||||||
LangEng: that is my cat
|
|
||||||
LangChi: 那 个 是 我 的 猫
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant that_Quant NumSg) (UseN cat_N)) (UseComp (CompNP (DetNP (DetQuant (PossPron i_Pron) NumSg)))))
|
|
||||||
LangEng: that cat is mine
|
|
||||||
LangChi: 那 只 猫 是 我 的
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant (PossPron she_Pron) NumSg) (UseN cat_N)) (UseComp (CompAP (PositA green_A))))
|
|
||||||
LangEng: her cat is green
|
|
||||||
LangChi: 她 的 猫 是 绿 色 的
|
|
||||||
|
|
||||||
-- two variants, different trees
|
|
||||||
-- read a book
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ComplSlash (SlashV2a read_V2) (DetCN (DetQuant IndefArt NumSg) (PossNP (UseN book_N) (UsePron she_Pron)))))
|
|
||||||
LangEng: he reads a book of hers
|
|
||||||
LangChi: 他 读 一 本 她 的 书
|
|
||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ComplSlash (SlashV2a read_V2) (DetCN (DetQuant (PossPron she_Pron) NumSg) (UseN book_N))))
|
|
||||||
LangEng: he reads her book
|
|
||||||
LangChi: 他 读 她 的 书
|
|
||||||
|
|
||||||
-- I read his/her father's book
|
|
||||||
Lang: UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a read_V2) (DetCN (DetQuant DefArt NumSg) (PossNP (UseN book_N) (DetCN (DetQuant DefArt NumSg) (PossNP (UseN2 father_N2) (UsePron she_Pron)))))))
|
|
||||||
LangEng: I read the book of the father of hers
|
|
||||||
LangChi: 我 读 了 她 的 父 亲 的 书
|
|
||||||
|
|
||||||
-- Only the noun phrase
|
|
||||||
Lang: MassNP (PossNP (UseN book_N) (UsePron he_Pron))
|
|
||||||
LangEng: book of his
|
|
||||||
LangChi: 他 的 书
|
|
||||||
|
|
||||||
Lang: DetCN (DetQuant (PossPron he_Pron) NumSg) (UseN book_N)
|
|
||||||
LangEng: his book
|
|
||||||
LangChi: 他 的 书
|
|
||||||
|
|
||||||
-- For non-pronoun NPs, multiple trees
|
|
||||||
Lang: AdvNP (MassNP (UseN book_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: AdvNP (MassNP (UseN book_N)) (PrepNP possess_Prep (DetCN (DetQuant DefArt NumSg) (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (AdvCN (UseN book_N) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN cat_N))))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (AdvCN (UseN book_N) (PrepNP possess_Prep (DetCN (DetQuant DefArt NumSg) (UseN cat_N))))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (ApposCN (AdvCN (UseN book_N) (PrepNP part_Prep (DetNP (DetQuant DefArt NumPl)))) (MassNP (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (ApposCN (AdvCN (UseN book_N) (PrepNP possess_Prep (DetNP (DetQuant DefArt NumPl)))) (MassNP (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (ApposCN (PartNP (UseN book_N) (DetNP (DetQuant DefArt NumPl))) (MassNP (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (ApposCN (PossNP (UseN book_N) (DetNP (DetQuant DefArt NumPl))) (MassNP (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (PartNP (UseN book_N) (DetCN (DetQuant DefArt NumSg) (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
Lang: MassNP (PossNP (UseN book_N) (DetCN (DetQuant DefArt NumSg) (UseN cat_N)))
|
|
||||||
LangEng: book of the cat
|
|
||||||
LangChi: 猫 的 书
|
|
||||||
|
|
||||||
-- You can also produce nonsensical variants, in all languages.
|
|
||||||
-- The point of RGL is to be a collection of syntactic structures,
|
|
||||||
-- and application grammarians can choose to use them in any combinations.
|
|
||||||
-- So the following English linearizations aren't *wrong*, they just don't make sense.
|
|
||||||
|
|
||||||
-- If theese Chinese linearizations are merely weird, like the English ones, then they are correct.
|
|
||||||
-- If they feel wrong in the same way as "his cat of my" would in English, then they are wrong.
|
|
||||||
Lang: DetCN (DetQuant (PossPron he_Pron) NumSg) (PossNP (UseN cat_N) (UsePron i_Pron))
|
|
||||||
LangEng: his cat of mine
|
|
||||||
LangChi: 他 的 我 的 猫
|
|
||||||
|
|
||||||
Lang: DetCN (DetQuant (PossPron i_Pron) NumSg) (PossNP (UseN cat_N) (UsePron she_Pron))
|
|
||||||
LangEng: my cat of hers
|
|
||||||
LangChi: 我 的 她 的 猫
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user