DyALog
DyALog est un langage de programmation avec son compilateur pour
construire des analyseurs syntaxiques et des programmes logiques
tabulaires.
La notion de tabulation signifie que des traces de calculs sont
conservées (tabulées) pour pouvoir réutiliser des sous-calculs communs
et pour pouvoir détecter (la plupart) des boucles. En gardant des
traces des calculs, il devient également possible, après calculs,
d'extraire, sous forme de forêt partagée, l'ensemble des preuves ou
arbres d'analyse des succès. Ces caractéristiques sont
particulièrement utiles pour gérer les grammaires hautement récursives
et ambiguës utilisées pour le traitement du langage naturel.
Demo
Quelques analyseurs jouets construits avec DyALog peuvent être essayés
en ligne.
Copyright et License
DyALog est sous Copyright «1999 - 2004 Institut National de Recherche
en Informatique et Automatique (INRIA)» et ses sources sont librement
distribuables et modifiables dans les termes de sa license.
Prérequis
La version actuelle 1.10.4 tourne sous Linux sur les
architectures i*86.
Elle nécessite Perl 5, gcc, ainsi que le Ramasse Miettes
(GC) de Boehm (> version 6.1).
Disponibilité
Les sources de la distribution DyALog sont accessibles par FTP anonyme:
host: ftp.inria.fr (192.93.2.54)
directory: INRIA/Projects/Atoll/Eric.Clergerie/DyALog
or through the following WEB
site
Fonctionnalités
DyALog est utilisable comme un système PROLOG habituel mais il est
principalement orienté vers le développement d'analyseurs syntaxiques
efficaces pour divers formalismes syntaxiques utilisés en Linguistique
Informatique:
- DCG (Definite Clause Grammars), offertes par la plupart des systèmes PROLOG;
- BMG (Bound Movement Grammars), une extension des DCGs permettant
le déplacement de constituants syntaxique;
- TAG (Tree Adjoining Grammars), un formalisme introduit par Joshi
à la fois élégant et pratique, où des arbres élémentaires et partiels
d'analyse sont combinés par substitution et adjonction pour construire
des analyses complètes;
- TIG (Tree Insertion Grammars), une variante des TAG avec une
opération simplifiée d'adjonction (avec la possibilité pour DyALog
d'identifier automatiquement les sous-parties TIG d'une TAG);
- RCG (Range Concatenation Grammars), un formalisme très puissant
récemment introduit par Pierre Boullier.
DyALog fournit un large sous-ensemble des prédicats builtin
présent dans la plupart des systèmes PROLOG (Entrée/Sortie,
Arithmétique, Comparaison de termes, ...) and peut être interfacé avec
C pour hériter de bibliothèque C.
DyALog offre également plusieurs extensions de la syntaxe et des
structures de données PROLOG, incluant:
- des structures de traits (typées) à la Carenter (Typed Feature Structures);
- des ensembles finis (ou énumérations);
- une notation Hilog pour des pseudo termes d'ordre supérieur;
- l'unification immédiate;
- des mécanismes d'espace de noms et de modules
Enfin, DyALog possède de nombreuses fonctionnalités pour concevoir
des analyseurs plus efficaces, en particulier:
- le choix entre plusieurs niveaux de tabulation (absence, faible,
forte).
- la possibilité des définir des stratégies d'analyse hybrides
ascendantes/descendantes.
- du support pour des stratégies d'analyse bidirectionnelles, par
exemple pour des stratégies dirigées par les têtes.
- du support (préliminaire) pour des stratégies efficaces par coins
gauches (Left Corner).
- des opérateurs puissants pour décrire des intersections, des
étoiles de Kleene étendues (pour des boucles), et des entrelacements
(pour entrelacer sans ordre des séquences de constituants). Par
exemple, ``
(adj @*) ## noun
'' indique (en français),
qu'un nom peut être complété sur sa gauche et sa droite par un nombre
quelconque d'adjectifs.
- la possibilité d'analyser des listes PROLOG ou des treillis de
mots représentés par des automates finis [FSA], ce qui est plus
efficace et permet de gérer des entrées ambiguës fournis par les
outils en amont de l'analyse.
- du filtrage pour les analyseurs lexicalisés pour ne charger que
les fragments de la grammaires ancrés par les mots de la phrase
d'entrée.
- l'étiquetage des constituants pour une meilleure compréhension
des forêts partagées extraites en sortie d'analyse.
Documentation
Une documentation anglaise pour DyALog (HTML,PDF)
existe mais elle est encore largement incomplète et pas à jour.
Plusieurs articles ou présentations sont disponibles décrivant
partiellement les fonctionnalités de DyALog: [TALN02] (en français), [TAPD98] (en anglais) [ATALA99]
(en français),
[PhD93] (en français)
Rapports de bogues et retours d'utilisation
Ils sont les bienvenus et peuvent être envoyés par mail à
Eric De la Clergerie<Eric.De_La_Clergerie@inria.fr>
[Atoll Home] -
[Contact]