Français    English     


Wali est la dernière génération d'une suite de plateformes logicielles: Vaucanson (2003--2012), Vaucanson2 (2012--2014) et Vaucanson-R (2014-2017); elle est développée en parallèle avec VCSN qui est issue d'un fork à partir du même Vaucanson2.
Nous avons utilisé cette longue expérience pour mettre en place les méthodes et les concepts qui permettent d'atteindre les objectifs d'efficacité, de généricité et d'accessibilité que nous nous sommes fixés.
Wali is the last generation of a series of platforms: Vaucanson (2003--2012), Vaucanson2 (2012--2014) and Vaucanson-R (2014--2017); it is written in parallel with VCSN which results from a fork from the same Vaucanson2.
We have used this long experience to set up the methods and concepts necessary to achieve our main goals: efficiency, genericity, and accessibility.


Wali is written in C++ and is organised into three layers: the `static', the `dynamic', and the `interface' layers. The core of the platform is the static level, which provides the data structures and a library of algorithms. The type of a weighted automaton is determined by the type of weights and the type of labels. Every algorithm is implemented via template functions working on template classes, and is compiled for the type of automata that are used. Efficiency is partly based upon this generic programming which is anyway essential when dealing with weighted automata.

The dynamic level allows both the call of functions of the static level and genuine C++ programming with the use of a kind of `universal' type of automata. This type is an abstraction of template (static) types of automata; it gives access to a complete template-free API for weighted automata. A remarkable feature of the dynamic level is the `on request' compilation of modules (data structures and algorithms) from the static level. Even written at the dynamic level, programs are compiled and not interpreted at execution time.

The interface level offers for the time being two kinds of access to the lower layers: a command-line interface which allows the call to most of the algorithms of the static level, and a Python interface to both the dynamic and the static levels.


Dernière tarball Last tarball (2017/06/21)

Compilation of the C++ library


Terminal commands to execute

The first step is to download the tarball available higher up on this page. If the tarball is named wali-YYMMDD.tgz and is located in the directory /some/local/directory, extract it using the following commands:
$ cd /some/local/directory
$ tar xzvf wali-YYMMDD.tgz
It creates a new directory named wali within /some/local/directory. Then execute the following commands to compile and install Wali.
$ cd wali
$ mkdir _build
$ cd _build
$ cmake ..
$ make prepare-install
$ make
# make install (as root)
You may then uninstall by exectuting make uninstall as root.
If you rather not install Wali, use the following commands to simply compile it for local use.
$ cd wali
$ mkdir _build
$ cd _build
$ cmake ..
$ make
In that case, the command-line program Cora and the dynamic C++ library will be located in the current directoy, that is /some/local/directory/wali/__built, and the python library in the subdirectory _build/python. Examples of programs using the dynamic layer of the c++ library may be found in the directory /some/local/directory/wali/src.
It is recommended to use ipython-notebook (or Jupyter) for starters. It is launched with the following command.
$ ipython notebook
It should open your web-browser. After creating a spreadsheet (menu File/New), you may import the Wali Python library by executing (CTRL+ENTER) the following code in any cell of the spreadsheet:
import walipy


VaucansonLaBRI     Sylvain Lombardy

VaucansonUniversité de Liège     Victor Marsault

VaucansonTelecom ParisTech     Jacques Sakarovitch

Soutiens financiers Support

D'avril 2011 à septembre 2014, le projet Vaucanson2 a été financé par la convention ANR 2010 INTB 0203.
Le projet Vaucanson et en particulier Wali sont financés par le Département Informatique et Réseaux de Télécom ParisTech.
From April 2011 to September 2014, Vaucanson2 project has been supported by contract ANR 2010 INTB 0203.
Vaucanson project and Wali are supported by the Department Computer Science and Networking of Telecom ParisTech.

Dernière Last modification: 21 Juin June 2017