Section: Software and Platforms
ACG Development Toolkit
Participants : Sylvain Pogodalla [correspondent] , Philippe de Groote.
In order to support the theoretical work on ACG, we have been developing a support system. The objectives of such a system are twofold:
-
To make possible to implement and experiment grammars the modeling of linguistic phenomena.
-
To make possible to implement and experiment results related to the ACG formalisms. Such results can concern parsing algorithms, type extensions, language extensions, etc.
The ACG Development toolkit development effort is part of the Polymnie project (see Section 8.2.1.1 ). It will support the experimentation and evaluation parts of the project.
The current version of the ACG development toolkit prototype (Available at http://acg.gforge.inria.fr with a CeCILL license.) issues from a first release published in October 2008. Further releases have been published before the ESSLLI 2009 course on ACG. It focuses on providing facilities to develop grammars. To this end, the type system currently implemented is the linear core system plus the (non-linear) intuitionistic implication, and a special attention has been paid to type error management. As a major limitation, this version only considers transformation from abstract terms to object terms, and not the other way around.
The prototype now enables the transformation from the object terms to the abstract terms. The parsing algorithm follows [43] 's method which is being implemented for second-order ACGs. It is based on a translation of ACG grammars into Datalog programs and is well-suited to fine-grained optimization.
However, since we're interested not only by recognizability (hence whether some fact is provable) but also by the parsing structure (hence the proof), the Datalog solver has been adapted to produce not only yes/no answer to queries, but also all the proofs of the answers to the queries. The next steps concern optimization and efficiency. Note however that in the general case, the decidability of translating an object term to an abstract one is still an open problem.