Archive-name: prolog/faq
Original-by: jamie at cs.sfu.ca (Jamie Andrews)
Version: 1.73
Last-modified: 11/06/2001 by dirk-jan at selwerd.nl (Dirk-Jan Faber)
URL: http://www.selwerd.nl/~dirk-jan/prolog/faq/
Posting-frequency: twice a month
This article contains the answers to some Frequently Asked
Questions (FAQ) often seen in comp.lang.prolog. It is posted
(twice a month, currently on the 1st and 16th) to help reduce
volume in this newsgroup and to provide hard-to-find information
of general interest.
This article includes answers to the following questions.
0. General information
1. What is the Association for Logic Programming?
2. Where can I get a public-domain, free Prolog for system
X (the IBM PC, the Mac, Unix or other)?
3. What commercial systems are available? What about systems
available for a price from research institutions?
4. How do I get in touch with my Prolog's users' group,
sales representative, or technical support line?
5. I think language X is better than Prolog. What do you think?
6. What are the recent developments?
7. My Prolog prof assigned me this problem. Can you help
me with it?
8. Can you suggest some books on Prolog?
9. Are there any FTP archive sites for comp.lang.prolog?
10. How can I get a copy of the draft ISO Prolog standard?
Where can I go for more information about it?
11. How does the WAM (Warren Abstract Machine) work? How do I
write a WAM-based compiler or a WAM emulator?
12. Is there a WWW (World Wide Web) page on logic programming?
13. Can do I do Internet/WWW programming with Prolog?
14. Is there a WWW (World Wide Web) page with some tutorials on
prolog?
Please forward suggestions for further questions and
answers to the current FAQ maintainer, dirk-jan at selwerd.nl
(Dirk-Jan Faber).
Changes in this version:
* Updated of Mercury (version, supported platforms, ftp site)
* * *
0. General information
The newsgroup "comp.lang.prolog" discusses the language
Prolog and other "logic programming" languages. Logic
programming languages, in general, are programming languages
which incorporate some of the language of mathematical logic;
unification and backtracking search are common operational
features. For more background information about Prolog, see the
list of books in Question 7 of this list.
To cut down on unnecessary postings to comp.lang.prolog,
whenever I see a question there that is answered by the FAQ
list, I (Dirk-Jan) try to respond to the questioner by e-mail,
quoting the relevant section of this list.
* * *
1. What is the Association for Logic Programming?
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, contact:
The ALP Administrative Secretary,
Dept. of Computing,
Imperial College,
180 Queen's Gate,
London, SW7 2BZ, UK
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 at GLINDA.OZ.CS.CMU.EDU), and
used to be posted periodically (?) to comp.lang.prolog (see question
3 and 8).
To send in Newsletter contributions, write to:
Patricia Hill,
Dept. of Computing,
Imperial College,
180 Queen's Gate,
London, SW7 2BZ, UK
Email: alp at doc.ic.ac.uk
Fax: +44 171 589 1552
Phone: +44 171 594 8227
2. Where can I get a public-domain, free Prolog for system X
(the IBM PC, the Mac, Unix or other)?
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.)
- Name : ALF (Algebraic Logic Functional language)
Platforms: UNIX
Available: Anonymous FTP from ftp.germany.eu.net,
directory "pub/programming/languages/LogicFunctional".
E-mail : opalla at julien.informatik.uni-dortmund.de (Rudolf Opalla).
Info : WAM-based language with narrowing/rewriting
- Name : Amzi! Prolog
Platforms: Window, Linux and Solaris
Available: http://www.amzi.com/download/
E-mail : info at amzi.com
Info : Free Personal & Evaluation License. Registration is
compulsory.
- Name : Argo Prolog v.1.1
Platforms: Solaris 1.x and HP-UX 9.x.
Available: Anonymous ftp from ftp.csk.co.jp, directory
"/pub/CSK/argo_prolog".
Contact : doi at csk.co.jp (Takao Doi).
- Name : B-Prolog 3.2
Platforms: Win32, Solaris, SunOS, UNIX, FreeBSD and Linux
Available: http://www.cad.mse.kyutech.ac.jp/people/zhou/bprolog.html
E-mail : zhou at mse.kyutech.ac.jp (Neng-Fa Zhou)
Info : Freely available for non-commercial use. For other use a
license is needed.
- Name : BinProlog 7.0
Platforms: Windows 95/98/NT, Linux and all major Unix platforms.
Available: http://www.binnetcorp.com/BinProlog/
E-mail : binnetcorp at binnetcorp.com (Paul Tarau)
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).
- Name : Brain Aid Prolog (BAP) v1.4
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.
- Name : Ciao 1.4
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 at clip.dia.fi.upm.es (Users:
ciao-users@clip...)
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.
- Name : clp(FD)
Platforms: UNIX
Available: anonymous FTP from ftp.inria.fr, directory
"/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/clp_fd".
Contact : daniel.diaz at inria.fr (Daniel Diaz).
Info : Constraint logic programming over finite domains. Requires
GNU C v.2.4.5 or higher.
- Name : CLP(R)
Platforms: UNIX
Available: e-mail request from Joxan Jaffar, "joxan at watson.ibm.com".
Info : Constraint logic programming language, for academic and
research purposes only.
- Name : ECLiPSe Constraint Logic Programming System, subsuming Prolog.
Platforms: Solaris, SunOS, Linux Windows NT
Available: http://www.icparc.ic.ac.uk/eclipse/
Info : License required, but free for research and educational
purposes.
- Name : GNU Prolog 1.0.0
Platforms: SunOS/sparc, Solaris/sparc and GNU/Linux/ix86.
Available: Anonymous ftp from ftp.inria.fr,
directory /INRIA/Projects/loco/gnu-prolog/.
E-mail : daniel.diaz at inria.fr (Daniel Diaz)
- Name : Jinni 2.27
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).
- Name : KLIC
Platforms: UNIX
Available: Anonymous FTP from ftp.icot.or.jp, file name
"/ifs/symbolic-proc/unix/klic/klic.tgz".
Info : ICOT Free Software. Concurrent logic programming. Tested on
Sparcs, DEC 7000, Gateway P5-60.
Contact : ifs at icot.or.jp
- Name : Logtalk 2.4.0
Platforms: Prolog pre-processor for any Operating System
Available: http://www.ci.uc.pt/logtalk/logtalk.html
E-mail : pmoura at noe.ubi.pt (Paulo Moura)
Info : Open source object-oriented extension to Prolog
available under Perl's Artisitc license.
Compatible with most Prolog compilers.
- Name : LPA MacProlog, demo version
Platforms: Apple Macintosh
Available: Anonymous FTP from aisun1.ai.uga.edu, directory ai.prolog
download "Contents" first.
- Name : Mercury v0.10
Platforms: Runs on Solaris, SunOS, IRIX 5.x, HPUX, ULTRIX, AIX, Linux,
Windows 95 and 2000.
Available: Anonymous ftp from ftp.mercury.cs.mu.oz.au, directory
"/pub/mercury".
Info : http://www.cs.mu.oz.au/mercury.
- Name : Modular SB-Prolog (= SB-Prolog version 3.1 plus modules)
Platforms: SPARC, DECstation, MIPS, HP 9000 series, Sun 3.
Available: Anonymous FTP from ftp.dcs.ed.ac.uk (129.215.160.5)
Info : Copy-lefted.
- Name : Newt Prolog
Platforms: Apple MessagePad Newton
Available: Currently only beta version available; download and
more information on http://www.cfht.hawaii.edu/~jlv.
E-mail : jlv at cfht.hawaii.edu
- Name : Open Prolog
Platforms: Apple Macintosh
Available: Anonymous FTP from its home site: ftp.cs.tcd.ie,
directory pub/languages/open-prolog. Also available from
sumex-aim.stanford.edu, directory info-mac/Development.
E-mail : brady at cs.tcd.ie (Michael Brady).
- Name : Poplog Prolog
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 comp.lang.pop,
or to pop-forum at cs.bham.ac.uk
or A.Sloman at 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.
- Name : PIE2
Platforms: Unknown
Available: On CompuServe in the AIEXPERT forum, interpreter and examples
in PIE2.ZIP, documentation in PIEDOC.ZIP.
E-mail : ruggles at shell.com (Brent Ruggles).
- Name : Strawberry Prolog
Platforms: Windows 95/NT, plans for UNIX and Macintosh
Available: http://www.dobrev.com/
E-mail : dimiter at dobrev.com
- Name : SWI Prolog
Platforms: Well maintained for UNIX, Windows 95/98/NT/2000, 32 and
64-bits machines. ANSI-C.
Available: http://www.swi.psy.uva.nl/projects/SWI-Prolog/
Anonymous FTP from swi.psy.uva.nl (145.18.114.17),
directory pub/SWI-Prolog; or from ftp.th-darmstadt.de
(130.83.55.75), directory pub/programming/languages/prolog.
Info : Distributed as source with binaries for some platforms.
Copying: GPL-2. Licenses for use with proprietary software
are available.
- Name : Trinc-Prolog
Platforms: Window 95/98/NT 4.0, plans for Window 2000, Linux and Sun
Solaris
Available: http://www.trinc-prolog.com/
E-mail : info at trinc-prolog.com
- Name : UPMAIL Tricia Prolog
Platforms: Apple Macintosh
Available: Anonymous FTP from ftp.csd.uu.se (130.238.12.1), directory
pub/Tricia; get README first.
Info : UPMAIL is still available, but unsupported.
- Name : Visual Prolog
Platforms: Win16/32, OS/2, Linux and SCO Unix
Available: http://www.visual-prolog.com and http://www.pdc.dk/vip
Info : Includes all the facilities necessary to write mission
critical commercial-grade applications. Fully visual develop-
ment environment. Open architecture. Built-in database system
and ODBC support. Visual Prolog Personal Edition is available
on a freeware license.
- Name : wamcc
Platforms: UNIX
Available: Anonymous FTP from ftp.inria.fr, directory
"/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 at inria.fr (Daniel Diaz).
- Name : XSB
Platforms: Many, including SunOS, Linux and Windows
Available: Anonymous FTP from ftp.cs.sunysb.edu (130.245.1.40)
directory pub/XSB
E-mail : xsb-contact at cs.sunysb.edu
Info : system with SLG-resolution, HiLog syntax, and unification
factoring.
- Name : Yap 4.2.0
Platforms: UNIX-based platforms and Windows
Available: http://www.ncc.up.pt/~vsc/Yap/
E-mail : vsc at ncc.up.pt (Vitor Santos Costa)
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 periodically
posted Prolog Resource Guide. The Resource Guide also lists
many systems which are not exactly "commercial", but available
for a price from research instutitions. 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 Resource Guide is now maintained by the kind efforts
of Mark Kantrowitz, "Mark.Kantrowitz at GLINDA.OZ.CS.CMU.EDU", who
posted it on the 14th of every month on comp.lang.prolog. It is
also available by anonymous FTP from "ftp.cs.cmu.edu"
[128.2.206.173] in the directory
"/afs/cs.cmu.edu/project/ai-repository-3/ai/lang/prolog/faq",
as the files "prg_1.faq" and "prg_2.faq".
Readers should also note that the Prolog Management Group
(formerly the Prolog Vendors' Group) is contactable
electronically via its Secretary, Steve Cartmell. His address
is "steve at pap.com".
* * *
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. Please note
that sometimes phoning or writing to the company will get better
response than e-mail.
ALS (Applied Logic Systems):
Information: info at als.com
Sales: sales at als.com
Tech support: support at als.com
Amzi! inc.:
Information: info at amzi.com
Sales: sales at amzi.com
Support: support at amzi.com
BinNet Corporation:
Web site: http://www.binnetcorp.com
Information: info at binnetcorp.com
Sales: sales at binnetcorp.com
Tech support: support at binnetcorp.com
Ciao, PiLLoW, WebDB, etc.:
Web site: http://www.clip.dia.fi.upm.es/Software
Users' group: ciao-users at clip.dia.fi.upm.es
Information: ciao at clip.dia.fi.upm.es
Tech support: ciao-bugs at clip.dia.fi.upm.es
COSYTEC (CHIP V5):
Web site: http://www.cosytec.com
Information: info at cosytec.com (or .fr)
Tech Support: support at cosytec.com (or .fr)
ECLiPSe and Sepia:
Web site: http://www.icparc.ic.ac.uk/eclipse
Users' group: eclipse-users at icparc.ic.ac.uk
Information: eclipse-request at icparc.ic.ac.uk
Tech support: eclipse-bugs at icparc.ic.ac.uk
Expert Systems Ltd. (Prolog-2):
Sales: sales at expert.demon.co.uk
Support: support at expert.demon.co.uk
Users' group: prolog2-request at hplb.hpl.hp.com
LPA:
Web site: http://www.lpa.co.uk/
Sales: sales at lpa.co.uk
Tech support: support at lpa.co.uk
PDC Prolog:
PDC Prolog is the succesor to Turbo Prolog and the predecessor to
Visual Prolog. below).
ProLog by BIM:
Contact: prolog at bim.be (Kathleen Pierco)
Users' group: prolog-users-request at bim.be
Quintus:
Users' group: quintus-users-request at sics.se
Sales: qpsales at sics.se
Tech support: qpsupport at sics.se
SICStus:
Users' group: sicstus-users-request at sics.se
Sales: sicstus-request at sics.se
Tech support: sicstus-support at sics.se
Trinc / Trinc-Prolog:
Information: info at trinc-prolog.com
Sales: sales at trinc-prolog.com
Support: support at trinc-prolog.com
Turbo Prolog:
Turbo Prolog is the predecessor of PDC Prolog (see above).
Visual Prolog:
Information: sales at pdc.dk (or sales at visual-prolog.com)
Sales: sales at pdc.dk (or sales at visual-prolog.com)
Tech support: support at pdc.dk (or support at visual-prolog.com)
Web site: http://www.visual-prolog.com/
* * *
5. I think language X is better than Prolog. What do you think?
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, please note that there are many different "Prologs"
and other logic programming languages available, all with
different capabilities.
* * *
6. What are the recent developments?
There are some languages in development which do not have
Prolog syntax, but do subsume and generalize Prolog's logic
programming abilities.
The Mozart Consortium:
Information: http://www.mozart-oz.org/
Users' group: users-request at mozart-oz.org
Tech support: users at mozart-oz.org
Some other languages bring new developments while also supporting
Prolog syntax and functionality as an option:
Ciao:
Web site: http://www.clip.dia.fi.upm.es/Software
Users' group: ciao-users at clip.dia.fi.upm.es
Information: ciao at clip.dia.fi.upm.es
Tech support: ciao-bugs at clip.dia.fi.upm.es
* * *
7. My Prolog prof assigned me this problem. Can you help
me with it?
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 comp.lang.prolog readers who
would be glad to help people making a legitimate attempt to
learn Prolog.
* * *
8. Can you suggest some books on Prolog?
The Prolog Resource Guide (see above, question 3) contains
a listing of Prolog books. It is maintained by Mark Kantrowitz
(Mark.Kantrowitz at GLINDA.OZ.CS.CMU.EDU), and posted periodically
on 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, 1994 (4th ed). (Introductory.)
_Prolog Programming for Artificial Intelligence_. Ivan Bratko.
Addison-Wesley, 1990 (3nd ed). (Introductory.)
_The Art of Prolog: Advanced Programming Techniques_. Leon
Sterling and Ehud Shapiro. MIT Press, 1994 (2nd ed). (Advanced.)
_The Craft of Prolog_. Richard A. O'Keefe. MIT Press, 1990.
(Advanced.)
_Foundations of Logic Programming_. John Lloyd.
Springer-Verlag, 1988 (2nd ed). (Logic programming theory.)
_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
* * *
9. Are there any FTP archive sites for comp.lang.prolog?
No. That is, the following archives used to contain
the articles from comp.lang.prolog, but at latest check
(1-2-1999) I (Dirk-Jan) have failed to log in.
"info2.rus.uni-stuttgart.de":
/pub/comm/news/archive/comp.archives/auto/comp.lang.prolog
"cs.dal.ca": /pub/comp.archives/comp.lang.prolog
Some other sites contain copies of this FAQ list and the
Prolog Resource Guide (see question 3). For users with "archie"
access, type "archie comp.lang.prolog" for an up-to-date list of
sites having either archives or the periodic postings.
10. How can I get a copy of the draft ISO Prolog standard?
Where can I go for more information about it?
You can pick up a copy by anonymous FTP from site
"ai.uga.edu", directory "/pub/prolog.standard". The directory
also contains a summary of the standard, by Michael Covington,
in the "isoprolog" files. 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.
A copy of Richard O'Keefe's Prolog standard draft from 1984
is available from "ftp.ecrc.de", file /pub/eclipse/pub/std/plstd.doc".
For more information about the ISO Prolog standard, contact
Roger Scowen
ISO/IEC JTC1 SC22 WG17 (Prolog) convener,
DITC/93, National Physical Laboratory
TEDDINGTON, Middlesex TW11 0LW
UNITED KINGDOM
Tel: +44 81 943 6956
Fax: +44 81 977 7091
E-mail: rss at seg.npl.co.uk
* * *
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). A public-domain WAM emulator, written in C++ by
Herve Touati, is available by anonymous FTP at site
"gatekeeper.dec.com", in directory "pub/plan/prolog/ucb".
The book is now OP but available online at
http://www.isg.sfu.ca/~hak/documents/wam.html
* * *
12. Is there a WWW (World Wide Web) page on logic programming?
13. Can do I do Internet/WWW programming with Prolog?
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
* * *
14. Is there a WWW (World Wide Web) page with some tutorials on
Prolog?
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, who has been maintaining
and posting the FAQ for at least three and a half years.