ALE: An Attribute Logic Engine ------------------------------ Version 2.0.2 January 23, 1995 ALE 2.0, a freeware system written in Prolog by Bob Carpenter and Gerald Penn, integrates phrase structure parsing and constraint logic programming with typed feature structures as terms. This generalizes both the feature structures of PATR-II and the terms of Prolog II to allow type inheritance and appropriateness specifications for features and values. Arbitrary constraints may be attached to types, and types may be declared as having extensional structural identity conditions. Grammars may also interleave unification steps with logic program goal calls (as can be done in DCGs), thus allowing parsing to be interleaved with other system components. While ALE was developed to handle HPSG grammars, it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II, and LOGIN programs, etc. With suitable coding, it can also execute several aspects of LFG grammars. The terms involved in ALE grammars and logic programs are specified using a typed version of Rounds-Kasper attribute-value logic, which includes variables, full disjunction, and inequations. Programs are then compiled into low-level Prolog instructions corresponding to the basic operations of the typed Rounds-Kapser logic. There is a strong type discipline enforced on descriptions, allowing many errors to be detected at compile-time. The logic programming and parsing systems may be used independently or together. Features of the logic programming system include negation, disjunction and cuts. It has last call optimization, but does not perform any argument indexing. On the 'naive reverse' benchmark, it performed at 1000 LI/s on a DEC 5100 running SICStus 2.1, which is roughly 7% as fast as the SICStus interpreter and .7% as fast as the SICStus compiler. The phrase structure system employs a bottom-up, all-paths dynamic chart parser. A general lexical rule component is provided, including procedural attachment and general methods for orthographic transformations using pattern matching or Prolog. Empty categories are permitted in the grammar. A mini-interpreter is included for stepping through the parsing process. Both the phrase structure and logic programming components of the system allow parametric macros to be defined and freely employed in descriptions. The language allows hooks to general Prolog routines, allowing the grammars and programs to be embedded in Prolog, and thus also in C and Unix. Parser performance is similar to that of the logic programming system. In an early HPSG grammar, where feature structures consisted of roughly 100-200 nodes each, a 10 word sentence producing 25 completed inactive edges parsed in roughly two seconds, using SICStus 2.1 on a DEC 5100. The current system is distributed with a number of sample grammars, including a fairly comprehensive implementation of a head-driven phrase structure grammar for English following (Pollard and Sag 1994: Chapters 1--5, 7, and 8), a small version of the Zebra Puzzle demonstrating the use of ALE for logic puzzles, and the phonological and categorial grammars used as examples in the documentation. Complete documentation (running to 100 pages, with examples of everything, programming advice, and sample grammars) is available as: Bob Carpenter and Gerald Penn (1994) ALE 2.0 User's Guide. Carnegie Mellon University Laboratory for Computational Linguistics Technical Report. Pittsburgh. This report is available by writing to Connie Bartusis, Laboratory for Computational Linguistics, 135 Baker Hall, Carnegie Mellon University, Pittsburgh, PA \ 15213. ALE can be run in either SICStus or Quintus Prolog, and with other compatible compilers. SICStus 2.1#8 or later is required for dealing with cyclic structures. The efficiency of the system depends on first-argument indexing, last-call optimization, and for the chart parser, the indexing of dynamic clauses. The system and its documentation are available without charge for research purposes, although we retain the copyright and any redistribution must be be complete. The system is available via anonymous ftp at: j.gp.cs.cmu.edu:/usr1/carp/ftp Instructions for downloading can be found in ale.README, and the manual can be found in compressed postscript form in ale.guide.ps.Z. Installation is straightforward because the source is a single Prolog file. If you'd like to be put on the mailing list and be informed of updates and so on, send e-mail to carp@lcl.cmu.edu. Also, please let me know if you have any comments, find any bugs, or have any requests for future versions. I'd also be interested in hearing to what use ALE is being put. Functional Extensions in Version 2.0 -- inequations -- extensional identity conditions -- general constraints on types -- mini-interpreter -- enhanced error detection -- hooks to Prolog For those using SICStus 2.1#9 or later under X windows, the Pleuk grammar development shell has been adapted for ALE. Pleuk provides a graphical user interface, facilities for maintaining and testing corpora, and an interactive, incremental derivation checker. Pleuk is available free of charge from: ftp.cogsci.ed.ac.uk:/pub/pleuk The file README contains instructions for downloading the system. Pleuk has been ported to Sun SPARCs SunOS 4.* and HP-UX. For more information, send email to pleuk@cogsci.ed.ac.uk. Pleuk was developed by Jo Calder and Chris Brew of the Human Communication Research Centre at the University of Edinburgh, Kevin Humphreys of the Centre for Cognitive Science at the University of Edinburgh, and Mike Reape, of the Computer Science Department, Trinity College, Dublin. - Bob Carpenter carp@lcl.cmu.edu Gerald Penn penn@lcl.cmu.edu Computational Linguistics Program, Philosophy Dept. Carnegie Mellon University, Pittsburgh, PA 15213 Phone: (412) 268-8043 Fax: (412) 268-1440