logo dyalog DyALog is an environment to compile and run logic programs and natural language tabular parsers for various grammatical formalisms (DCGs, TAGs, TIGs, RCGs). GForge page.

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 ( PDF) 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)

Download DyALog
  • Download DyALog from INRIA GFORGE.
  • 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