Newsgroups: comp.lang.prolog Subject: comp.lang.prolog Frequently Asked Questions Followup-To: poster From: dirk-jan@warbase.selwerd.cx (Dirk-Jan Faber) Distribution: world Organization: Faber Factory. Summary: Information about free Prolog implementations; contact names for commercial systems; controversial topics. Archive-name: prolog/faq Original-by: jamie at cs.sfu.ca (Jamie Andrews) Version: 1.63 Last-modified: 20/10/1999 by dirk-jan at warbase.selwerd.cx (Dirk-Jan Faber) URL: http://warbase.selwerd.cx/~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. The World Wide Web URL for this FAQ is: http://warbase.selwerd.cx/~dirk-jan/prolog/faq/ 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? Please forward suggestions for further questions and answers to the current FAQ maintainer, dirk-jan at warbase.selwerd.cx (Dirk-Jan Faber). Changes in this version: * Removed a typo from the url of ECLiPSe * * * 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: Patricia Hill School of Computer Studies University of Leeds Leeds, LS2 9JT UK Email : hill at scs.leeds.ac.uk (Patricia Hill) Tel : +44 113 2336807 Fax : +44 113 2335468 URL : http://www.scs.leeds.ac.uk/hill 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: Andrew Davison, Dept. of Computer Science, University of Melbourne, Parkville, Melbourne, Victoria 3052, AUSTRALIA Email: ad at cs.mu.oz.au Fax: +61 3 348 1184 Phone: +61 3 344 7207 / 5230 Telex: AA 35185 * * * 2. Where can I get a public-domain, free Prolog for (the IBM PC, the Mac, Unix)? 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 : Aquarius Prolog 1.0. Platforms: UNIX Available: http://www.info.ucl.ac.be/people/PVR/aquarius.html Info : High performance, commercial functionality except debugging and modules. - 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 : 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(FD,S) Platforms: UNIX Available: http://pauillac.inria.fr/~georget/clp_fds/clp_fds.html Contact : Yan.Georget at inria.fr (Yan Georget). Info : Requires GNU C (gcc) version 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.1.0 Platforms: Compilers for Linux/Unix, MacOS, Windows 95/NT, Available: http://www.ci.uc.pt/logtalk/logtalk.html E-mail : pmoura at mat.uc.pt (Paulo Moura) - 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.8.1 Platforms: Runs on Solaris, SunOS, IRIX 5.x, HPUX, ULTRIX, AIX, Linux and Windows 95. Available: Anonymous ftp from turiel.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 : 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: UNIX, Windows 95/98/NT; poorly maintained: DOS, Amiga, OS/2 and others 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. Free for educational and research usage. Portable, copy-lefted. - Name : TPM (the Transparent Prolog Machine) Platforms: Apple Macintosch Available: Anonymous FTP from hcrl.open.ac.uk, directory /pub/software. Info : Demo LPA MacProlog with the TPM debugger built on top. - 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 COSYTEC (CHIP V4): Information: cosytec at cosytec.fr Support: help at cosytec.fr ECLiPSe and Sepia: 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 Web site: http://www.icparc.ic.ac.uk/eclipse 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 GNU Prolog Users' group: users-prolog-request at gnu.org Bug reports: bug-prolog at gnu.org Web site: http://pauillac.inria.fr/~diaz/gnu-prolog LPA: Sales: sales at lpa.co.uk Tech support: support at lpa.co.uk Web site: http://www.lpa.co.uk/ PDC / 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) 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 older name for PDC Prolog (see above). * * * 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 * * * 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 (2nd 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.) * * * 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. Other (web) archives of comp.lang.prolog include Dejanews: http://www.dejanews.com/home_ps.shtml and Reference: http://www.reference.com/ * * * 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? Yes, there is one by Jonathan Bowen; the URL is "http://www.comlab.ox.ac.uk/archive/logic-prog.html". He invites us to mail him at "bowen at comlab.ox.ac.uk" with any relevant information for inclusion. * * * Acknowledgements 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. -- Dirk-Jan Faber dirk-jan at warbase.selwerd.cx