".
list([]) --> [].
list([L|Ls]) --> [L], list(Ls).
format_(Format, Args, Cs0, Cs) :- format(codes(Cs0,Cs), Format, Args).
title(Ts) --> el(title, Ts).
sgml_element([S|Ss]) --> [S|Ss]. % string
sgml_element(filename(F)) --> el(filename, [F]).
sgml_element(emphasis(E)) --> el(emphasis, [E]).
sgml_element(p(P)) --> p(P).
sgml_element(ps(Ps)) --> ps(Ps).
sgml_element(literal(L)) --> el(literal, [L]).
sgml_element(bold(L)) --> el(bold, [L]).
sgml_element(title(Ts)) --> title(Ts).
sgml_element(author(F,S)) --> el(author, [el(firstname,[F]), el(surname,[S])]).
sgml_element(el(T,Cs)) --> el(T, Cs).
sgml_element(email(E)) --> el(email, [mailto(E)]).
sgml_element(mailto(M)) --> format_("
~s", [M,M]).
sgml_element(link(L)) --> format_("
~s", [L,L]).
sgml_element(meta(Goal)) --> Goal.
variablelist(NT) -->
el(variablelist,
[meta(({ G =.. [NT,I], findall(I-T, phrase(G, T), ITs) },
items_texts(ITs)))]).
items_texts([]) --> [].
items_texts([Item-Text|ITs]) -->
"\n\n",
el(varlistentry,
[el(term, [Item]),
el(itemizedlist, [Text])]),
items_texts(ITs).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
header -->
el(articleinfo,
[title(["Frequently Asked Questions - ", literal("comp.lang.prolog")]),
el(authorgroup,
[
author("Markus", "Triska (Mar. 2 2007 - ... )"),
author("Remko", "Troncon (Jan. 6 2002 - Mar. 2 2007)"),
author("Dirk-Jan", "Faber (Feb. 1 1999 - Jan. 6 2002)"),
author("Jamie", "Andrews (Aug 26 1992 - Oct. 16 1997)")
])
]),
"
",
el(note,
[ps([[bold("General Information: "),
"This article contains the answers to some Frequently
Asked Questions (FAQ) often seen in ",
link("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: ",
link("http://www.logic.at/prolog/faq/")],
["Please send questions about the FAQ and updates
to ", email("triska@logic.at"), "."]])
]).
q_a(["What is the Association for Logic Programming?"]) -->
ps([["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 ",
link("http://www.cs.nmsu.edu/ALP/"),
" or contact ",
el(address, ["Sandro Etalle ", email("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 (", email("Mark.Kantrowitz@glinda.oz.cs.cmu.edu"), "),
and used to be posted periodically to ",
link("news://comp.lang.prolog"), "."]
]).
q_a(["Where can I get a free Prolog for system X (PC, Mac, Unix or other)?"]) -->
ps([["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.)"]]),
variablelist(system).
q_a(["What commercial systems are available? What about
systems available for a price from research institutions?"]) -->
ps([["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 ",
link("http://www-2.cs.cmu.edu/Groups/AI/html/faqs/lang/prolog/prg/top.html"), "."
]]).
q_a(["How do I get in touch with my Prolog's users'
group, sales representative, or technical support line?"]) -->
p(["Here are some e-mail addresses of these contacts,
listed alphabetically by company or major product name."]),
variablelist(contact).
q_a(["I think language X is better than Prolog. What do you think?"]) -->
ps([["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."]]).
q_a(["What are the recent developments?"]) -->
p(["There are some languages in development which do not have
Prolog syntax, but do subsume and generalize Prolog's logic
programming abilities."]),
variablelist(recent),
p(["Some other languages bring new developments while also
supporting Prolog syntax and functionality as an option:"]),
variablelist(new).
q_a(["My Prolog prof assigned me this problem. Can you help me with it?"]) -->
ps([["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 ", link("news://comp.lang.prolog/"),
" readers who would be glad to help people making
a legitimate attempt to learn Prolog."]]).
q_a(["Can you suggest some books on Prolog?"]) -->
ps([["The Prolog Resource Guide (see above) contains a listing
of Prolog books. It is maintained by Mark Kantrowitz (",
email("Mark.Kantrowitz@glinda.oz.cs.cmu.edu"), "), and posted
periodically on ", link("news://comp.lang.prolog"), "."],
["Here are some of the most popular books on Prolog. "]]),
variablelist(books).
q_a(["Are there any WWW archives of ", literal("comp.lang.prolog"), " ? "]) -->
p(["Yes, there are: Google Groups has archives of ",
link("news://comp.lang.prolog/"), ". They can be found at ",
link("http://groups.google.com/groups?group=comp.lang.prolog")]).
q_a(["How can I get the ISO Prolog standard?
Where can I go for more information about it?"]) -->
ps([["You can obtain the approved international standards from
your national member body or directly from ISO (", link("http://www.iso.org"),")."],
["The working group on Prolog standardisation is ISO/IEC
JTC1/SC22/WG17 (", link("http://www.sju.edu/~jhodgson/wg17/"), ")."]]),
variablelist(iso_contacts),
ps([["Further literature: ",
emphasis("\"Prolog: The Standard (Reference manual)\""),
", P. Deransart, A. Ed-Dbali, L. Cervoni, Springer
Verlag (1996). Extra information can be found on ",
link("http://pauillac.inria.fr/~deransar/prolog/docs.html")],
[link("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."]]).
q_a(["How does the WAM (Warren Abstract Machine) work?
How do I write a WAM-based compiler or a WAM emulator?"]) -->
p(["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 ",
link("http://wambook.sourceforge.net"), "."]).
q_a(["Is there a WWW page on logic programming?"]) -->
ps([["Yes, there is one by Jonathan Bowen; the URL is ",
link("http://www.afm.sbu.ac.uk/logic-prog/"),
". He invites us to mail him at ",
email("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 ",
link("http://www.cs.kuleuven.be/~toms/PlanetProlog/"),
" and contact Tom at ",
email("tom.schrijvers+planet@cs.kuleuven.be"),
" to have your blog added."],
["Another community resource is the #prolog IRC channel on
irc.freenode.net."]]).
q_a(["Can do I do Internet/WWW programming with Prolog?"]) -->
p(["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 ",
link("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: ",
link("http://www.clip.dia.fi.upm.es/Software/pillow/")]).
q_a(["Is there a WWW page with some tutorials on Prolog?"]) -->
variablelist(tutorials).
q_a(["How do I edit Prolog code?"]) -->
ps([["Emacs and VIM ship with basic support for Prolog. A
much improved Emacs mode is maintained by Stefan
Bruda and available from ",
link("http://bruda.ca/emacs/prolog_mode_for_emacs/")],
["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: ",
link("http://www.logic.at/prolog/ediprolog/ediprolog.html"),
". An SWI Prolog programming environment suitable for schools
is available from ",
link("http://lernen.bildung.hessen.de/informatik/swiprolog/indexe.htm")],
["A Prolog plug-in for the \"Eclipse\"-IDE is available from: ",
link("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 ",
link("http://www.complang.tuwien.ac.at/ulrich/gupu/")]]).
q_a(["How do I publish Prolog code?"]) -->
ps([["Logtalk ships with support for various syntax
highlighters, also usable for Prolog. These include
support for Pygments (used e.g. on Trac), GeSHi (used
e.g. on Wikis), Source-highlight, Highlight, and SHJS
(JavaScript highlighter for web pages)."]]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
system("ALF (Algebraic Logic Functional language)") -->
lips([["Platforms: UNIX "],
["Available: ", emphasis("Unknown")],
["E-mail: Rudolf Opalla ",
email("opalla@julien.informatik.uni-dortmund.de")],
["Info: WAM-based language with narrowing/rewriting"]]).
system("Amzi! Prolog + Logic Server") -->
lips([["Platforms: Window, Linux and Solaris "],
["Available: ", link("http://www.amzi.com/download/")],
["E-mail: ", email("info@amzi.com")],
["Info: Registration is compulsory, except for the
Free Academic/Personal/Evaluation License."]]).
system("Aquarius Prolog 1.0") -->
lips([["Platforms: UNIX "],
["Available: ", link("http://www.info.ucl.ac.be/people/PVR/aquarius.html")],
["Info: High performance, commercial functionality
except debugging and modules. "]]).
system("Argo Prolog v.1.1") -->
lips([["Platforms: Solaris 1.x and HP-UX 9.x"],
["Available: ", emphasis("Unknown")],
["Contact: Takao Doi ", email("doi@csk.co.jp")]]).
system("Arity/Prolog32") -->
lips([["Platforms: Win32"],
["Available: ", link("http://www.arity.com/?Tab=products&tab2=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."]]).
system("B-Prolog 4.0") -->
lips([["Platforms: Win32, Solaris, SunOS, UNIX, FreeBSD and Linux "],
["Available: ", link("http://www.probp.com/")],
["E-mail: Neng-Fa Zhou ", email("support@probp.com")],
["Info: Freely available for non-commercial use. For other
use a license is needed."]]).
system("BinProlog 7.0") -->
lips([["Platforms: Windows 95/98/NT, Linux and all major Unix platforms."],
["Available: ", link("http://www.binnetcorp.com/BinProlog/")],
["E-mail: Paul Tarau ", email("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 ",
link("http://www.binnetcorp.com/Internet"), "). "]]).
system("Brain Aid Prolog (BAP) v1.4") -->
lips([["Platforms: Transputer systems"],
["Available: ", link("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. "]]).
system("C#Prolog") -->
lips([["Platforms: Win32, UNIX"],
["Available: ", link("http://sourceforge.net/projects/cs-prolog/")],
["E-mail: John Pool ", email("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."]]).
system("Ciao 1.4") -->
lips([["Platforms: Linux, Win32 (95/98/NT), Solaris, SunOS, UNIX in general."],
["Available: ", link("http://www.ciaohome.org")],
["E-mail: Developers ", email("ciao@clip.dia.fi.upm.es"),
", Users ", email("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."]]).
system("clp(FD)") -->
lips([["Platforms: UNIX"],
["Available: anonymous FTP from ", link("ftp://ftp.inria.fr/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/clp_fd")],
["Contact: Daniel Diaz ", email("daniel.diaz@inria.fr")],
["Info: Constraint logic programming over finite
domains. Requires GNU C v.2.4.5 or higher."]]).
system("clp(FD,S)") -->
lips([["Platforms: UNIX"],
["Available: ", link("http://contraintes.inria.fr/~georget/software/clp_fds/clp_fds.html")],
["Contact: Yan Georget ", email("Yan.Georget@inria.fr")],
["Info: Requires GNU C (gcc) version 2.4.5. or higher."]]).
system("CLP(R)") -->
lips([["Platforms: UNIX"],
["Available: E-mail request from Joxan Jaffar ",
email("joxan@watson.ibm.com"), ". "],
["Info: Constraint logic programming language,
for academic and research purposes only."]]).
system("CxProlog") -->
lips([["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 ", email("amd@fct.unl.pt")]]).
system("ECLiPSe Constraint Logic Programming System, subsuming Prolog.") -->
lips([["Platforms: Solaris, Linux, Linux/Alpha, Mac OS X, Windows "],
["Available: ", link("http://eclipseclp.org"), " or ",
link("http://www.sourceforge.net/projects/eclipse-clp")],
["Info: ECLiPSe is a Prolog and Constraint Programming platform
with a long history and has been open-source since Sept 2006."],
["License: MPL"]]).
system("IF Prolog V5.3") -->
lips([["Platforms: Windows 95/98/NT/2000/XP, Linux, Solaris, AIX, HP-UX
and other UNIX platforms"],
["Available: ", link("http://www.ifcomputer.de/Products/Prolog/")],
["E-mail: ", email("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."]]).
system("GNU Prolog") -->
lips([["Platforms: Many Unixes, Windows, MacOS X "],
["Available: ", link("http://gnu-prolog.inria.fr/")],
["E-mail: Daniel Diaz ", email("daniel.diaz@inria.fr")]]).
system("Jinni 2.27") -->
lips([["Platforms: Java-based"],
["Available: ", link("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)."]]).
system("JIProlog") -->
lips([["Platforms: Java-based"],
["Available: ", link("http://www.jiprolog.com/")],
["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."]]).
system("KLIC") -->
lips([["Platforms: UNIX"],
["Available: Anonymous FTP from ",
link("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: ", email("ifs@icot.or.jp")]]).
system("LPA Win-Prolog, demo version") -->
lips([["Platforms: Windows"],
["Available: Available from ",
link("http://www.lpa.co.uk/ind_dow.htm")]]).
system("MINERVA") -->
lips([["Platforms: Java"],
["Available: Available from ",
link("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."]]).
system("Modular SB-Prolog (= SB-Prolog version 3.1 plus modules)") -->
lips([["Platforms: SPARC, DECstation, MIPS, HP 9000 series, Sun 3."],
["Available: Anonymous FTP from ", link("ftp://ftp.dcs.ed.ac.uk/")],
["Info: Copy-lefted."]]).
system("Newt Prolog") -->
lips([["Platforms: Apple MessagePad Newton "],
["Available: Currently only beta version available; download and
more information on ", link("http://www.cfht.hawaii.edu/~jlv")],
["E-mail: ", email("jlv@cfht.hawaii.edu")]]).
system("Open Prolog") -->
lips([["Platforms: Apple Macintosh"],
["Available: ", link("http://www.cs.tcd.ie/open-prolog/")],
["E-mail: ", email("brady@cs.tcd.ie"), ". (Michael Brady). "]]).
system("Poplog Prolog") -->
lips([["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 ",
link("http://www.cs.bham.ac.uk/research/poplog/freepoplog.html"),
" Mirror sites at ",
link("http://www.poplog.org/resources/dist/new/")],
["E-mail: queries may be posted to ",
link("news://comp.lang.pop/"), ", or to ",
email("pop-forum@cs.bham.ac.uk"), " or ",
email("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 ",
link("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."]]).
system("PIE2") -->
lips([["Platforms: Unknown"],
["Available: On CompuServe in the AIEXPERT forum, interpreter and
examples in ", filename("PIE2.ZIP"), ", documentation in ",
filename("PIEDOC.ZIP"), ". "],
["E-mail: Brent Ruggles ", email("ruggles@shell.com")]]).
system("QuProlog") -->
lips([["Platforms: UNIX, Linux, beta for MAC "],
["Available: ", link("http://www.itee.uq.edu.au/~pjr/HomePages/QuPrologHome.html")],
["E-mail: ", email("pjr@itee.uq.edu.au")],
["Info: Extended WAM with support for quantifiers and
substitutions, multi-threaded, high-level communication."]]).
system("Strawberry Prolog") -->
lips([["Platforms: Windows 95/NT, plans for UNIX and Macintosh"],
["Available: ", link("http://www.dobrev.com/")],
["E-mail: ", email("dimiter@dobrev.com")]]).
system("SWI Prolog") -->
lips([["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: ", link("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"]]).
system("Trinc-Prolog") -->
lips([["Platforms: Windows 95/98/NT 4.0, plans for Windows 2000, Linux
and Sun Solaris"],
["Available: ", link("http://www.trinc-prolog.com/")],
["E-mail: ", email("info@trinc-prolog.com")]]).
system("UPMAIL Tricia Prolog ") -->
lips([["Platforms: Apple Macintosh"],
["Available: Anonymous FTP from ", link("ftp://ftp.csd.uu.se/pub/Tricia"), "; get ", filename("README"), " first. "],
["Info: UPMAIL is still available, but unsupported."]]).
system("Visual Prolog") -->
lips([["Platforms: Win32"],
["Available: ", link("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."]]).
system("wamcc") -->
lips([["Platforms: UNIX"],
["Available: Anonymous FTP from ",
link("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 ", email("daniel.diaz@inria.fr")]]).
system("XGP") -->
lips([["Platforms: Apple Macintosh OS X, 10.2.3+"],
["Available: ", link("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."]]).
system("XSB") -->
lips([["Platforms: Many, including SunOS, Linux and Windows"],
["Available: ", link("http://xsb.sourceforge.net/")],
["E-mail: ", email("xsb-users@lists.sourceforge.net")],
["Info: system with SLG-resolution, HiLog syntax, and unification
factoring."]]).
system("Yap 4.2.0") -->
lips([["Platforms: UNIX-based platforms and Windows"],
["Available: ", link("http://www.ncc.up.pt/~vsc/Yap/")],
["E-mail: Vitor Santos Costa ", email("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."]]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
contact("ALS (Applied Logic Systems)") -->
lips([["Information: ", email("info@als.com")],
["Sales: ", email("sales@als.com")],
["Tech support:", email("support@als.com")]]).
contact("Amzi! inc.") -->
lips([["Web site: ", link("http://www.amzi.com")],
["Information: ", email("info@amzi.com")],
["Sales: ", email("sales@amzi.com")],
["Support: ", email("support@amzi.com")]]).
contact("Arity/Prolog32") -->
lip(["Web site: ", link("http://www.arity.com/www.pl/products/ap.htm")]).
contact("BinNet Corporation") -->
lips([["Web site: ", link("http://www.binnetcorp.com")],
["Information: ", email("info@binnetcorp.com")],
["Sales: ", email("sales@binnetcorp.com")],
["Tech support:", email("support@binnetcorp.com")]]).
contact("Ciao, PiLLoW, WebDB, etc.") -->
lips([["Web site: ", link("http://www.clip.dia.fi.upm.es/Software")],
["Users' group: ", email("ciao-users@clip.dia.fi.upm.es")],
["Information: ", email("ciao@clip.dia.fi.upm.es")],
["Tech support: ", email("ciao-bugs@clip.dia.fi.upm.es")]]).
contact("COSYTEC (CHIP V5)") -->
lips([["Web site: ", link("http://www.cosytec.com")],
["Information: ", email("info@cosytec.com"), " (or .fr) "],
["Tech Support: ", email("support@cosytec.com"), " (or .fr) "]]).
contact("ECLiPSe") -->
lips([["Web site: ", link("http://eclipseclp.org")],
["Users' group: ", email("eclipse-clp-users@lists.sf.net")],
["Tech support: ", email("http://eclipseclp.org/bugs.html")],
["Support contracts: ", email("info@coninfer.com")]]).
contact("Expert Systems Ltd. (Prolog-2)") -->
lips([["Sales: ", email("sales@expert.demon.co.uk")],
["Support: ", email("support@expert.demon.co.uk")],
["Users' group: ", email("prolog2-request@hplb.hpl.hp.com")]]).
contact("GNU Prolog") -->
lips([["Web site: ", link("http://gnu-prolog.inria.fr/")],
["Users' group: ", email("users-prolog-request@gnu.org")],
["Bug reports: ", email("bug-prolog@gnu.org")]]).
contact("LPA") -->
lips([["Web site: ", link("http://www.lpa.co.uk/")],
["Sales: ", email("sales@lpa.co.uk")],
["Tech support: ", email("support@lpa.co.uk")]]).
contact("MasterProLog") --> lip(["Formerly BIM ProLog "]).
contact("PDC Prolog") -->
lip(["PDC Prolog is the succesor to Turbo Prolog and
the predecessor to Visual Prolog."]).
contact("ProLog by BIM") --> lip(["Currently MasterProLog"]).
contact("Quintus") -->
lips([["Web site: ", link("http://www.sics.se/quintus")],
["Mailing list: see ",
link("http://www.sics.se/isl/quintuswww/site/community.html")],
["Sales: ", email("qpsales@sics.se")],
["Tech support: ", email("qpsupport@sics.se")]]).
contact("SICStus") -->
lips([["Web page: ", link("http://www.sics.se/sicstus")],
["Mailing list: see ",
link("http://www.sics.se/isl/sicstuswww/site/community.html")],
["Sales: ", email("sicstus-request@sics.se")],
["Tech support: ", email("sicstus-support@sics.se")]]).
contact("Trinc / Trinc-Prolog") -->
lips([["Information: ", email("info@trinc-prolog.com")],
["Sales: ", email("sales@trinc-prolog.com")],
["Support: ", email("support@trinc-prolog.com")]]).
contact("Turbo Prolog") -->
lip(["Turbo Prolog is the predecessor of PDC Prolog (see above)."]).
contact("Visual Prolog") -->
lips([["Web site: ", link("http://www.visual-prolog.com/")],
["Information: ", email("sales@pdc.dk"),
" (or ", email("sales@visual-prolog.com"), ")"],
["Sales: ", email("sales@pdc.dk"), " (or ",
email("sales@visual-prolog.com"), ") "],
["Tech support: ", email("support@pdc.dk"),
" (or ", email("support@visual-prolog.com"), ") "]]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
recent("Mercury") -->
lip(["Web site: ", link("http://www.mercury.cs.mu.oz.au/index.html")]).
recent("The Mozart Consortium:") -->
lips([["Web site: ", link("http://www.mozart-oz.org/")],
["Users' group: ", email("users-request@mozart-oz.org")],
["Tech support: ", email("users@mozart-oz.org")]]).
new("Ciao") -->
lips([["Web site: ", link("http://www.clip.dia.fi.upm.es/Software")],
["Users' group: ", email("ciao-users@clip.dia.fi.upm.es")],
["Information: ", email("ciao@clip.dia.fi.upm.es")],
["Tech support: ", email("ciao-bugs@clip.dia.fi.upm.es")]]).
new("Logtalk") -->
lips([["Web site: ", link("http://logtalk.org/")],
["E-mail: Paulo Moura ", email("pmoura@logtalk.org")],
["Info: Open source object-oriented extension to
Prolog compatible with most Prolog compilers. "]]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
books("Introductory") -->
lips([["\"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)."]]).
books("Advanced") -->
lips([["\"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. "]]).
books("Logic programming theory") -->
lips([["\"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 ",
link("http://www.ida.liu.se/~ulfni/lpp")]]).
books("Expert Systems") -->
lip(["\"Building Expert Systems in Prolog\".
Dennis Merritt. Springer-Verlag, 1989.
HTML & PDF versions available from ",
link("http://www.amzi.com/ExpertSystemsInProlog")]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
iso_contacts("Contacts:") -->
lips([["Editor for part 1: Roger Scowen (", email("roger.scowen@npl.co.uk"), ")"],
["Convenor of WG17: Jonathan Hodgson (", email("jhodgson@sju.edu"), ")"],
["Editor for part 2: Jonathan Hodgson (", email("jhodgson@sju.edu"), ")"]]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tutorials("Beginner level:") -->
lips([["Adventure in Prolog: ",
link("http://www.amzi.com/AdventureInProlog/advfrtop.htm")],
["On-line guide to Prolog Programming: ",
link("http://kti.ms.mff.cuni.cz/~bartak/prolog/index.html")],
["Prolog Programming, A First Course: ",
link("http://computing.unn.ac.uk/staff/cgpb4/prologbook/book.html")],
["Learn Prolog Now!: ",
link("http://www.coli.uni-saarland.de/~kris/learn-prolog-now")]]).
tutorials("Intermediate to advanced level:") -->
lip([link("http://www.intranet.csupomona.edu/~jrfisher/www/prolog_tutorial/pt_framer.html")]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
appendix -->
title(["Acknowledgements"]),
ps([["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."]]).
:- initialization((phrase(faq, Cs),format("~s", [Cs]),halt)).