Coder Social home page Coder Social logo

joanluc / apertium-init Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apertium/apertium-init

0.0 0.0 0.0 957 KB

Scripts to bootstrap Apertium language modules and pairs

License: GNU General Public License v3.0

Shell 1.64% Python 53.47% Makefile 38.99% M4 5.90%

apertium-init's Introduction

Apertium-Init (a.k.a. Apertium Bootstrap)

Build Status Coverage Status PyPI PyPI - Python Version

Bootstrap Apertium language modules and pairs using apertium-init.py.

Installation

There are 3 ways to obtain Apertium-Init:

If the script was downloaded directly, it can be run with python3 apertium-init.py. Otherwise it will be installed as apertium-init.

Usage

Usage depends on the desired module and is described below. Remember to search for TODO in the generated module to add example sentences, etc.

Monolingual Lttoolbox module

To bootstrap a monolingual language module apertium-foo using the lttoolbox formalism,

$ python3 apertium-init.py foo

To bootstrap and compile it at the same time,

$ python3 apertium-init.py foo && ( cd apertium-foo/ && make )

Monlingual HFST module

To bootstrap a monolingual language module apertium-foo using the HFST formalism,

$ python3 apertium-init.py foo --analyser=hfst

To bootstrap and compile it at the same time,

$ python3 apertium-init.py foo --analyser=hfst && ( cd apertium-foo/ && make )

To include a twoc file for handling prefixes,

$ python3 apertium-init.py foo --analyser=hfst --with-twoc

To include a spellrelax file for handling typographical variance,

$ python3 apertium-init.py foo --analyser=hfst --with-spellrelax

Bilingual Lttoolbox module

To bootstrap a bilingual language module apertium-foo-bar where the monolingual packages apertium-foo and apertium-bar both use the lttoolbox formalism,

$ python3 apertium-init.py foo-bar

To bootstrap and compile it at the same time,

$ python3 apertium-init.py foo-bar && ( cd apertium-foo-bar/ && ./autogen.sh && make test)

Bilingual HFST/Lttoolbox module

To bootstrap a bilingual language module apertium-foo-bar where the monolingual packages apertium-foo and apertium-bar use the HFST formalism and/or the lttoolbox formalism,

$ python3 apertium-init.py foo-bar --analysers=hfst # Both foo and bar use HFST
$ python3 apertium-init.py foo-bar --analyser1=hfst # Only foo (first language) uses HFST
$ python3 apertium-init.py foo-bar --analyser2=hfst # Only bar (second language) uses HFST

To bootstrap and compile it at the same time,

$ python3 apertium-init.py foo-bar --analysers=hfst && ( cd apertium-foo-bar/ && ./autogen.sh && make test) # Both foo and bar use HFST
$ python3 apertium-init.py foo-bar --analyser1=hfst && ( cd apertium-foo-bar/ && ./autogen.sh && make test) # Only foo (first language) uses HFST
$ python3 apertium-init.py foo-bar --analyser2=hfst && ( cd apertium-foo-bar/ && ./autogen.sh && make test) # Only bar (second language) uses HFST

Bilingual module for monolinguals that don't use apertium-tagger or CG

To bootstrap a bilingual module when one or both of the monolingual modules don't use apertium-tagger,

$ python3 apertium-init.py foo-bar --no-prob1            # Only foo doesn't have .prob
$ python3 apertium-init.py foo-bar --no-prob2            # Only bar doesn't have .prop
$ python3 apertium-init.py foo-bar --no-prob1 --no-prob2 # Neither foo nor bar have .prob

To bootstrap a bilingual module when one or both of the monolingual modules don't use CG,

$ python3 apertium-init.py foo-bar --no-rlx1           # Only foo doesn't have .rlx
$ python3 apertium-init.py foo-bar --no-rlx2           # Only bar doesn't have .rlx
$ python3 apertium-init.py foo-bar --no-rlx1 --no-rlx2 # Neither foo nor bar have .rlx

Bilingual module using recursive transfer

To bootstrap a bilingual module which uses apertium-recursive,

$ python3 apertium-init.py foo-bar --transfer=rtx

Bilingual module with anaphora resolution

To bootstrap a bilingual module which uses apertium-anaphora,

$ python3 apertium-init.py foo-bar --with-anaphora

Bilingual module with discontiguous multiwords

To bootstrap a bilingual module which uses apertium-separable,

$ python3 apertium-init.py foo-bar --with-separable

Adding features to an existing module

Apertium-init can reconfigure an existing module or pair. For example, to add apertium-separable to an existing pair:

$ python3 apertium-init.py foo-bar -r --with-separable

Note that all desired options must be specified. If the foo-bar pair used apertium-anaphora, the above command would remove it.

Pushing to Github

To bootstrap a module or pair and also add it to the apertium incubator,

$ python3 apertium-init.py foo -p     # Bootstrap module apertium-foo and push to Github
$ python3 apertium-init.py foo-bar -p # Bootstrap pair apertium-foo-bar and push to Github

To specify what username to push as (rather than relying on git config),

$ python3 apertium-init.py foo -p -u bar # Bootstrap module apertium-foo and push to Github under username bar

Development

After updating vanilla files, run make in the root of the repository to generate apertium-init.py.

You can also do sudo make install to install to /usr/local/bin/apertium-init or e.g. PREFIX=$HOME/local make install to install to $HOME/local/bin/apertium-init.

Use pipenv install --dev to install the requirements required for development, e.g. linters.

Releasing

After installing development resources following the instructions above, deploying to PyPi is relatively straightforward.

Use make dist to create a source distributable inside the dist directory that can be installed locally via pip.

Use make test-release and make release to deploy to the testing PyPi instance and the production PyPi instance respectively. Either step requires PyPi authentication credentials with access to the apertium-init package.

apertium-init's People

Contributors

sushain97 avatar mr-martian avatar unhammer avatar jonorthwash avatar dependabot[bot] avatar tinodidriksen avatar khannatanmai avatar flammie avatar dolphingarlic avatar ftyers avatar jiffygist avatar itaisteinherz avatar nlhowell avatar shardulc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.