General Information: This article contains the answers to some Frequently Asked Questions (FAQ) often seen in news://comp.lang.prolog/. It is posted (twice a month, currently on the 2nd and 16th) to help reduce volume in this newsgroup and to provide hard-to-find information of general interest.
The World Wide Web URL for this FAQ is: http://www.logic.at/prolog/faq/
Questions about the FAQ and updates ought to be submitted to
<triska@logic.at>.
To keep up with the current state of logic programming technology, readers can join the Association for Logic Programming (ALP) and receive their Newsletter. For details on how to join or send in contributions, check http://www.cs.kuleuven.be/~dtai/projects/ALP or contact
Sandro Etalle <etalle@cs.utwente.nl>
The Prolog Resource Guide (v0.6) was printed in issue 5/1 of the
Newsletter (Feb. 1992). This lists information concerning Prolog
Archives, Books, Suppliers, etc. It is now maintained by Mark
Kantrowitz (<Mark.Kantrowitz@glinda.oz.cs.cmu.edu>),
and used to be posted periodically to news://comp.lang.prolog.
The following are anonymous-FTP sites for free Prologs (or related languages) which are either in the public domain or are "copy-lefted" (permitted to be copied with some restrictions on commercial use).
(Please note that for extensive development work, users will probably want a robust interpreter or compiler with good debugging facilities and a standard syntax, among other things. While public-domain systems are a valuable service to the community, they do not necessarily have all these things, and users should weigh carefully what they want to do against the capabilities and costs of the available systems.)
Platforms: UNIX
Available: Unknown
E-mail: Rudolf Opalla <opalla@julien.informatik.uni-dortmund.de>
Info: WAM-based language with narrowing/rewriting
Platforms: Window, Linux and Solaris
Available: http://www.amzi.com/download/
E-mail: <info@amzi.com>
Info: Registration is compulsory, except for the Free Academic/Personal/Evaluation License.
Platforms: UNIX
Available: http://www.info.ucl.ac.be/people/PVR/aquarius.html
Info: High performance, commercial functionality except debugging and modules.
Platforms: Solaris 1.x and HP-UX 9.x
Available: Unknown
Contact: Takao Doi <doi@csk.co.jp>
Platforms: Win32
Available: http://www.arity.com/?Tab=products=prolog
Info: Arity/Prolog32 provides a complete Prolog programming environment in which you can write, debug, and run Prolog programs in 32-bit Windows environments (95/98/NT/2000). Arity/Prolog32 is a powerful, highly optimized, and extended version of the logic programming language Prolog. Arity/Prolog32 is a complete compiler and interpreter written in Prolog, C, and Assembly language and is a superset of Clocksin and Mellish Prolog.
Platforms: Win32, Solaris, SunOS, UNIX, FreeBSD and Linux
Available: http://www.probp.com/
E-mail: Neng-Fa Zhou <support@probp.com>
Info: Freely available for non-commercial use. For other use a license is needed.
Platforms: Windows 95/98/NT, Linux and all major Unix platforms.
Available: http://www.binnetcorp.com/BinProlog/
E-mail: Paul Tarau <binnetcorp@binnetcorp.com>
Info: Download free evaluation copies and see online demos. Inexpensive Educational licensing available.Has built-in networking, multi-threading, mobile code and distributed blackboards. Supports BinNet Internet Programming Tool kit (see http://www.binnetcorp.com/Internet).
Platforms: Transputer systems
Available: http://www.comnets.rwth-aachen.de/~ost/private.html
Info: BAP is a parallel prolog system for Transputer systems. Available under a Berkely style of copyright.
Platforms: Win32, UNIX
Available: http://sourceforge.net/projects/cs-prolog/
E-mail: John Pool <j.pool@ision.nl>
Info: A Prolog interpreter written in C#. Can easily be integrated in C# programs. Characteristics: reliable and quite fast beta version, command line interface, builtin DCG, XML-predicates, persistent predicates (using Firebird RDBMS), extendible.
Platforms: Linux, Win32 (95/98/NT), Solaris, SunOS, UNIX in general.
Available: http://www.clip.dia.fi.upm.es/Software/Ciao
E-mail: Developers <ciao@clip.dia.fi.upm.es>, Users <ciao-users@clip.dia.fi.upm.es>
Info: Next generation LP/CLP system. Commercial functionality, but freely available w/source. ISO-Prolog + modules, networking, multi-threading, clp(r), clp(q), interfaces (Java, C, tcltk, WWW, databases/ODBC, ...), functions, higher-order, records, persistence, objects, assertions (types, modes, ...), source debugger, auto-documenter, static debugger, and more.
Platforms: UNIX
Available: anonymous FTP from ftp://ftp.inria.fr/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/clp_fd
Contact: Daniel Diaz <daniel.diaz@inria.fr>
Info: Constraint logic programming over finite domains. Requires GNU C v.2.4.5 or higher.
Platforms: UNIX
Available: http://contraintes.inria.fr/~georget/software/clp_fds/clp_fds.html
Contact: Yan Georget <Yan.Georget@inria.fr>
Info: Requires GNU C (gcc) version 2.4.5. or higher.
Platforms: UNIX
Available: E-mail request from Joxan Jaffar <joxan@watson.ibm.com>.
Info: Constraint logic programming language, for academic and research purposes only.
Platforms: UNIX, MacOS X, Windows
Available: http://ctp.di.fct.unl.pt/~amd/cxprolog/
Info: Open source (GPL) implementation supporting Unicode, threads, sockets, processes, contexts, imperative data structures, and interfaces with C/C++, Java, and wxWidgets
Contact: Artur Miguel Dias <amd@fct.unl.pt>
Platforms: Solaris, Linux, Linux/Alpha, Mac OS X, Windows
Available: http://www.eclipse-clp.org/ or http://www.sourceforge.net/projects/eclipse-clp
Info: ECLiPSe is a Prolog and Constraint Programming platform with a long history and has been open-sourced in Sept 2006.
License: MPL
Platforms: Windows 95/98/NT/2000/XP, Linux, Solaris, AIX, HP-UX and other UNIX platforms
Available: http://www.ifcomputer.de/Products/Prolog/
E-mail: <info@ifcomputer.de>
Info: IF Prolog is a commercial Prolog system with interfaces to C/C++, Java, sockets, Windows events and a COM servers. A graphical debugger allows step-forward, step backward debugging of Prolog code. A static module concept allows many additional errors to be detected at compile time. Constraint Programming (for finite domains, intervals and booleans using global constraints and linear optimisation).
License: Free evaluation copies and inexpensive educational licensing available.
Platforms: Many Unixes, Windows, MacOS X
Available: http://gnu-prolog.inria.fr/
E-mail: Daniel Diaz <daniel.diaz@inria.fr>
Platforms: Java-based
Available: http://www.binnetcorp.com/Jinni
Info: Multi-threaded, Java based Prolog interpreter with built-in networking, distributed blackboards and mobile code (inexpensive shareware licensing available).
Platforms: Java-based
Available: http://www.ugosweb.com/jiprolog
Info: Java Internet Prolog is a cross-platform pure Java 100% prolog interpreter that supplies Java world with the power of prolog language and provides prolog language with a technology to implement new predicates in Java.
Platforms: UNIX
Available: Anonymous FTP from ftp://ftp.icot.or.jp/ifs/symbolic-proc/unix/klic/klic.tgz.
Info: ICOT Free Software. Concurrent logic programming. Tested on Sparcs, DEC 7000, Gateway P5-60.
Contact: <ifs@icot.or.jp>
Platforms: Windows
Available: Available from http://www.lpa.co.uk/ind_dow.htm
Platforms: Java
Available: Available from http://www.ifcomputer.co.jp/MINERVA
Info: Proprietary commercial ISO-Prolog Compiler in 100% Java support for web programming, XML, servlets, applets, standalones. Free evaluation license.
Platforms: SPARC, DECstation, MIPS, HP 9000 series, Sun 3.
Available: Anonymous FTP from ftp://ftp.dcs.ed.ac.uk/
Info: Copy-lefted.
Platforms: Apple MessagePad Newton
Available: Currently only beta version available; download and more information on http://www.cfht.hawaii.edu/~jlv
E-mail: <jlv@cfht.hawaii.edu>
Platforms: Apple Macintosh
Available: http://www.cs.tcd.ie/open-prolog/
E-mail: <brady@cs.tcd.ie>. (Michael Brady).
Platforms: Various Unixes, including Sun, Dec Alpha, HP and many others. Also a Win32 version is available. Sources available for other combinations.
Available: At the Free Poplog Web/FTP site, including full sources http://www.cs.bham.ac.uk/research/poplog/freepoplog.html Mirror sites at http://www.poplog.org/resources/dist/new/
E-mail: queries may be posted to news://comp.lang.pop/, or to <pop-forum@cs.bham.ac.uk> or <A.Sloman@cs.bham.ac.uk> (Last resort!)
Info: Robust incremental compiler, part of the multi-language Poplog system (including Common Lisp, Pop-11 and Standard ML). Unix, Linux & VMS versions include full support for X window facilities/Motif. More information at http://www.cs.bham.ac.uk/research/poplog/poplog.info.html Licence modelled on XFree86. Can be freely distributed, though copyright is owned by Sussex University and ISL.
Platforms: Unknown
Available: On CompuServe in the AIEXPERT forum, interpreter and examples in PIE2.ZIP, documentation in PIEDOC.ZIP.
E-mail: Brent Ruggles <ruggles@shell.com>
Platforms: UNIX, Linux, beta for MAC
Available: http://www.itee.uq.edu.au/~pjr/HomePages/QuPrologHome.html
E-mail: <pjr@itee.uq.edu.au>
Info: Extended WAM with support for quantifiers and substitutions, multi-threaded, high-level communication.
Platforms: Windows 95/NT, plans for UNIX and Macintosh
Available: http://www.dobrev.com/
E-mail: <dimiter@dobrev.com>
Platforms: Binaries for Linux, Windows (NT/2000/XP/Vista) and Mac OS X (darwin). Sources: ANSI-C, both 32 and 64-bit machines, compiles on almost all Unix systems and more.
Available: http://www.swi-prolog.org
Info: Complete, ISO and Edinburgh standard, common optimizations, GC including atoms. Portable graphics, multiple threads, constraints, comprehensive libraries for (semantic) web programming, Unicode, source-level debugger, advanced syntax colouring
License: LGPL
Platforms: Windows 95/98/NT 4.0, plans for Windows 2000, Linux and Sun Solaris
Available: http://www.trinc-prolog.com/
E-mail: <info@trinc-prolog.com>
Platforms: Apple Macintosh
Available: Anonymous FTP from ftp://ftp.csd.uu.se/pub/Tricia; get README first.
Info: UPMAIL is still available, but unsupported.
Platforms: Win32
Available: http://www.visual-prolog.com
Info: Includes all the facilities necessary to write mission critical commercial-grade applications. Fully visual development environment. Open architecture. Object-oriented. Built-in database system and ODBC support. Visual Prolog Personal Edition is available on a freeware license.
Platforms: UNIX
Available: Anonymous FTP from ftp://ftp.inria.fr/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/wamcc
Info: Compiler which translates Prolog to C via WAM. Debuggers. Requires GNU C v.2.4.5 or higher.
Contact: Daniel Diaz <daniel.diaz@inria.fr>
Platforms: Apple Macintosh OS X, 10.2.3+
Available: http://xgp.sourceforge.net/
Info: XGP is an open source (GPL) integrated development environment with user interface and graphics support based on gprolog and Cocoa under Macintosh OS X.
Platforms: Many, including SunOS, Linux and Windows
Available: http://xsb.sourceforge.net/
E-mail: <xsb-users@lists.sourceforge.net>
Info: system with SLG-resolution, HiLog syntax, and unification factoring.
Platforms: UNIX-based platforms and Windows
Available: http://www.ncc.up.pt/~vsc/Yap/
E-mail: Vitor Santos Costa <vsc@ncc.up.pt>
Info: Yap is entirely written in C and Prolog and should be portable to most 32-bit and 64-bit Unix based platforms. A Windows port is also available. Yap4.2 is distributed under Perl's artistic license and can be freely distributed.
3. What commercial systems are available? What about systems available for a price from research institutions?
Many commercial systems are listed in the Prolog Resource Guide. The Resource Guide also lists many systems which are not exactly "commercial", but available for a price from research institutions. The list of such systems was originally compiled by Chris Moss, of Imperial College. The rest of the Resource Guide was originally compiled by Dag Wahlberg, of Uppsala University.
The Prolog Resource Guide hasn't been updated lately, but nevertheless still contains some valuable information. It can be found at http://www-2.cs.cmu.edu/Groups/AI/html/faqs/lang/prolog/prg/top.html.
4. How do I get in touch with my Prolog's users' group, sales representative, or technical support line?
Here are some e-mail addresses of these contacts, listed alphabetically by company or major product name.
Information: <info@als.com>
Sales: <sales@als.com>
Tech support:<support@als.com>
Web site: http://www.amzi.com
Information: <info@amzi.com>
Sales: <sales@amzi.com>
Support: <support@amzi.com>
Web site: http://www.binnetcorp.com
Information: <info@binnetcorp.com>
Sales: <sales@binnetcorp.com>
Tech support:<support@binnetcorp.com>
Web site: http://www.clip.dia.fi.upm.es/Software
Users' group: <ciao-users@clip.dia.fi.upm.es>
Information: <ciao@clip.dia.fi.upm.es>
Tech support: <ciao-bugs@clip.dia.fi.upm.es>
Web site: http://www.cosytec.com
Information: <info@cosytec.com> (or .fr)
Tech Support: <support@cosytec.com> (or .fr)
Web site: http://www.eclipse-clp.org
Users' group: <eclipse-clp-users@lists.sf.net>
Tech support: <http://www.eclipse-clp.org/bugs.html>
Sales: <sales@expert.demon.co.uk>
Support: <support@expert.demon.co.uk>
Users' group: <prolog2-request@hplb.hpl.hp.com>
Web site: http://gnu-prolog.inria.fr/
Users' group: <users-prolog-request@gnu.org>
Bug reports: <bug-prolog@gnu.org>
Web site: http://www.lpa.co.uk/
Sales: <sales@lpa.co.uk>
Tech support: <support@lpa.co.uk>
Formerly BIM ProLog
PDC Prolog is the succesor to Turbo Prolog and the predecessor to Visual Prolog.
Currently MasterProLog
Web site: http://www.sics.se/quintus
Mailing list: see http://www.sics.se/isl/quintuswww/site/community.html
Sales: <qpsales@sics.se>
Tech support: <qpsupport@sics.se>
Web page: http://www.sics.se/sicstus
Mailing list: see http://www.sics.se/isl/sicstuswww/site/community.html
Sales: <sicstus-request@sics.se>
Tech support: <sicstus-support@sics.se>
Information: <info@trinc-prolog.com>
Sales: <sales@trinc-prolog.com>
Support: <support@trinc-prolog.com>
Turbo Prolog is the predecessor of PDC Prolog (see above).
Web site: http://www.visual-prolog.com/
Information: <sales@pdc.dk> (or <sales@visual-prolog.com>)
Sales: <sales@pdc.dk> (or <sales@visual-prolog.com>)
Tech support: <support@pdc.dk> (or <support@visual-prolog.com>)
These debates rarely result in any productive discussion. To some extent, one's favourite language is based on irrational ideology.
However, many people now agree that different languages are good for different things. Prolog seems to be good for problems in which logic is intimately involved, or whose solutions have a succinct logical characterization. Like other interactive, symbolic languages, Prolog is also good for rapid prototyping.
Also, note that there are many different "Prologs" and other logic programming languages available, all with different capabilities.
There are some languages in development which do not have Prolog syntax, but do subsume and generalize Prolog's logic programming abilities.
Web site: http://www.cs.mu.oz.au/research/mercury/
Web site: http://www.mozart-oz.org/
Users' group: <users-request@mozart-oz.org>
Tech support: <users@mozart-oz.org>
Some other languages bring new developments while also supporting Prolog syntax and functionality as an option:
Web site: http://www.clip.dia.fi.upm.es/Software
Users' group: <ciao-users@clip.dia.fi.upm.es>
Information: <ciao@clip.dia.fi.upm.es>
Tech support: <ciao-bugs@clip.dia.fi.upm.es>
Web site: http://logtalk.org/
E-mail: Paulo Moura <pmoura@logtalk.org>
Info: Open source object-oriented extension to Prolog compatible with most Prolog compilers.
If your instructor assigned it to you, he or she probably wanted you to do it yourself. If it's an introductory Prolog course, your question might be elementary to most readers, so it might be a waste of network resources to ask it. Please ask your instructor, a friend, a teaching assistant, or a local newsgroup for help first.
That being said, there are news://comp.lang.prolog/ readers who would be glad to help people making a legitimate attempt to learn Prolog.
The Prolog Resource Guide (see above) contains a listing
of Prolog books. It is maintained by Mark Kantrowitz (<Mark.Kantrowitz@glinda.oz.cs.cmu.edu>), and posted
periodically on news://comp.lang.prolog.
Here are some of the most popular books on Prolog.
"Programming In Prolog". William F. Clocksin and Christopher S. Mellish. Springer-Verlag, 2003 (5th ed).
"Prolog Programming for Artificial Intelligence". Ivan Bratko. Addison-Wesley, 2001 (3rd ed).
"The Art of Prolog: Advanced Programming Techniques". Leon Sterling and Ehud Shapiro. MIT Press, 1994 (2nd ed).
"The Craft of Prolog". Richard A. O'Keefe. MIT Press, 1990.
"Foundations of Logic Programming". John Lloyd. Springer-Verlag, 1988 (2nd ed).
"Logic, Programming and Prolog". Ulf Nilsson and Jan Maluszynski. Originally published by John Wiley & Sons Ltd (2nd ed. 1995) but now available without charge from http://www.ida.liu.se/~ulfni/lpp
"Building Expert Systems in Prolog". Dennis Merritt. Springer-Verlag, 1989. HTML & PDF versions available from http://www.amzi.com/ExpertSystemsInProlog
Yes, there are: Google Groups has archives of news://comp.lang.prolog/. They can be found at http://groups.google.com/groups?group=comp.lang.prolog
You can obtain the approved international standards from your national member body or directly from ISO (http://www.iso.org).
The working group on Prolog standardisation is ISO/IEC JTC1/SC22/WG17 (http://www.sju.edu/~jhodgson/wg17/).
Editor for part 1: Roger Scowen (<roger.scowen@npl.co.uk>)
Convenor of WG17: Jonathan Hodgson (<jhodgson@sju.edu>)
Editor for part 2: Jonathan Hodgson (<jhodgson@sju.edu>)
Further literature: "Prolog: The Standard (Reference manual)", P. Deransart, A. Ed-Dbali, L. Cervoni, Springer Verlag (1996). Extra information can be found on http://pauillac.inria.fr/~deransar/prolog/docs.html
http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/prolog/doc/standard/ contains the December 1991 draft, the March 1993 draft, Richard O'Keefe's 1984 Prolog standard draft, and Michael Covington's summary of the standard. Note that no one at that site can answer any questions about the standard; it is just an FTP site for the standard in the USA.
11. How does the WAM (Warren Abstract Machine) work? How do I write a WAM-based compiler or a WAM emulator?
Reportedly the best tutorial is Hassan Ait-Kaci's book "Warren's Abstract Machine: A Tutorial Reconstruction" (MIT Press, 1991). The book is out of print, and available online at http://www.vanx.org/archive/wam/wam.html.
Yes, there is one by Jonathan Bowen; the URL is http://www.afm.sbu.ac.uk/logic-prog/. He invites us to mail him at <jonathan.bowen@sbu.ac.uk> with any relevant information for inclusion.
A blog aggregator called "Planet Prolog" was created by
Tom Schrijvers and features some Prolog-related blogs. Visit http://www.cs.kuleuven.be/~toms/PlanetProlog/ and contact Tom at <tom.schrijvers+planet@cs.kuleuven.be> to have your blog added.
Another community resource is the #prolog IRC channel on irc.freenode.net.
Prolog is very suitable for this task. Several commercial and free implementations include special support for it. A page specifically on this topic (including some tutorials) is maintained at http://www.clip.dia.fi.upm.es/lpnet/lpnet.html. A public-domain library exists (PiLLoW) for several popular Prolog systems which helps in the task. See: http://www.clip.dia.fi.upm.es/Software/pillow/
Adventure in Prolog: http://www.amzi.com/AdventureInProlog/advfrtop.htm
On-line guide to Prolog Programming: http://kti.ms.mff.cuni.cz/~bartak/prolog/index.html
Prolog Programming, A First Course: http://computing.unn.ac.uk/staff/cgpb4/prologbook/book.html
Learn Prolog Now!: http://www.coli.uni-saarland.de/~kris/learn-prolog-now
Emacs and VIM ship with basic support for Prolog. A much improved Emacs mode is maintained by Stefan Bruda and available from http://turing.ubishops.ca/home/bruda/emacs-prolog/
Logtalk ships with various editing services for many common editors, also usable for Prolog.
SWI Prolog has a built-in Emacs clone called PceEmacs. There are also Emacs definitions that let you evaluate embedded queries: http://www.logic.at/prolog/ediprolog/ediprolog.html. An SWI Prolog programming environment suitable for schools is available from http://lernen.bildung.hessen.de/informatik/swiprolog/indexe.htm
A Prolog plug-in for the "Eclipse"-IDE is available from: http://eclipse.ime.usp.br/projetos/grad/plugin-prolog/index.html
A sophisticated integrated editing and teaching environment with declarative debugging, termination analysis and many visualisations is available from http://www.complang.tuwien.ac.at/ulrich/gupu/
Thank you to all the people who helped put together the first version of this FAQ, and everyone who has contributed to it over the years. Special thanks to John Dowding for suggesting a good format for the list, and to Chris Moss, Dag Wahlberg, and Mark Kantrowitz for their work on the Prolog Resource Guide.
Special thanks to Jamie Andrews, Dirk-Jan Faber and Remko Troncon, who have been maintaining and posting the FAQ in the past.