DyALog
DyALog is an environment for building tabular unification-based
parsers and programs.
Tabulation means that traces of computation are tabulated in order
to share common sub-computations and detect (most kinds of) loops. By
keeping traces of computations, it is also possible, after a
computation, to extract, as a shared forest, the set of all successful
proofs or parse trees. These characteristics are especially useful to
handle highly recursive and ambiguous grammars for Natural Language.
Demo
Some parsers built with DyALog may be tried on line, including a large
coverage hybrid TIG/TAG French grammar derived from a metagrammar.
Copyright and License
DyALog is copyrighted 1999 - 2004 Institut National de Recherche en
Informatique et Automatique (INRIA) and its sources may be freely
distributed under the terms of its license.
Requirement
The current version 1.10.4 runs under Linux on i*86
architectures.
It requires Perl 5, gcc, and Boehm's Garbage
Collector (> version 6.1).
Availability
The complete DyALog distribution resides on ftp.inria.fr and can be
accessed by anonymous FTP:
host: ftp.inria.fr (192.93.2.54)
directory: INRIA/Projects/Atoll/Eric.Clergerie/DyALog
or through the following WEB
site
Features
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.
Documentation
An English documentation for DyALog (HTML,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)
Bug Reports and User Feedback
Send your bug reports and suggestions by E-mail to
Eric De la Clergerie<Eric.De_La_Clergerie@inria.fr>
[Atoll Home] -
[Contact]