DyALog is en environment for compiling and using logic programs and chart parsers for natural languages, that handles various grammatical formalisms (Page on INRIA GForge).


Some parsers built with DyALog may be tried on-line, including a large coverage hybrid TIG/TAG French grammar derived from a metagrammar.


DyALog may be used just to evaluate standard PROLOG programs but its main finality is to design efficient parsers for several grammatical formalisms used in Computational Linguistics:

  • DCG (Definite Clause Grammars), traditionally offered by PROLOG systems;
  • BMG (Bound Movement Grammars), an extension of DCGs allowing the displacement of constituents;
  • TAG (Tree Adjoining Grammars), an elegant and convenient grammatical formalism introduced by Joshi, where elementary partial parse trees are combined by substitution and adjunction to build full parse tree;
  • TIG (Tree Insertion Grammars), a variant of TAGs with a simplified adjunction operation (and the possibility for DyALog to automatically identify TIG subparts in TAGs);
  • RCG (Range Concatenation Grammars), a very powerful formalism introduced by Pierre Boullier

DyALog provides a rich subset of all builtins provided by most PROLOG systems (Input/Output, Arithmetic, Term Comparison, ...) and may be interfaced with C to inherit C libraries API.

DyALog also provides several extensions to the usual PROLOG syntax and data structures to ease grammar development, including:

  • (typed) feature structures (TFS) a la Carpenter;
  • Finite Sets (or enumeration);
  • Hilog pseudo higher order terms;
  • Immediate unification;
  • Namespaces and modules

DyALog provides many useful features to design more efficient parsers, including:

  • different levels of tabulations (none, light, strong).
  • user customization of hybrid top-down/bottom-up parsing strategies.
  • support for bi-directional parsing strategies, for instance for head-driven parsing strategies.
  • (preliminary) support for efficient left-corner parsing strategies.
  • new powerful operators such as intersection, extended Kleene star (to build loops), and interleaving (to interleave in any order sequences of constituents). For instance one can write ``(adj @*) ## noun'' to specify (in French), that a noun may be completed on both left or right by any number of adjectives.
  • parsing from PROLOG lists or from a word lattices represented by Finite Set Automata (more efficient and useful to handle ambiguous inputs provided by pre-parsing tools).
  • filtering for lexicalized parsers to only load grammar fragments anchored by words of the input sentence.
  • labeling of constituents for a better reading of the output shared forests.


An English documentation for DyALog exists but is still largely incomplete and outdated.

Several papers are available that partially describe the functionalities of DyALog: TALN02 (in French), TAPD98 (in English) ATALA99 (in French), PhD93 (in French)

Télécharger DyALog

Download DyALog from http://dyalog.gforge.inria.fr/. Please note that for easier installation, you can use the Perl script Alpi (ALPage Installer) typing

./alpi.pl --pkg=DyALog
This single script downloads and installs DyALog.

Copyright and License

DyALog version is distributed under LGPL with copyright INRIA 1999 — 2008.


Send your bug reports and suggestions by e-mail to Eric de La Clergerie



Mo Tu We Th Fr Sa Su
28 29 30 01 02 03 04
05 06 07 08 09 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 01