".
title(Ts) --> el(title, Ts).
sgml_element([S|Ss]) --> seq([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)) --> sgml_element(link(L, L)).
sgml_element(link(L,T)) -->
format_("
", [L]),
sgml_element(T),
"".
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,
[
link("https://www.metalevel.at",
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("https://groups.google.com/forum/#!forum/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, \
Michael Covington's summary of it, and \
Richard O'Keefe's 1984 Prolog standard draft."],
[link("http://www.complang.tuwien.ac.at/ulrich/iso-prolog/"),
" ISO Prolog works and related material by the convenor of WG17."],
["For questions about the standard, use this newsgroup or Stackoverflow."]]).
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 collection of artifacts from logic programming \
languages beginning with Marseille Prolog is available from ",
link("http://www.softwarepreservation.org/projects/prolog/index.html")],
["A large amount of Prolog code is available from the CMU AI Repository: ",
link("http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/0.html")],
["Recently, Stackoverflow has become a valuable resource for Prolog questions and answers: ",
link("http://stackoverflow.com/questions/tagged/prolog")],
["Another community resource is the #prolog IRC channel on irc.libera.chat."]]).
q_a(["Can 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("https://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("https://www.metalevel.at/ediprolog/"),
". 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 and GitHub), \
Rouge (use e.g. in GitLab), GeSHi (used e.g. on Wikis), \
minted and texments LaTeX packages (e.g. source code \
listings), Google Code Prettify, Source-highlight, \
Highlight, SyntaxHighlighter, and SHJS (JavaScript \
highlighter for e.g. 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("https://github.com/Peter-Gabel/ArityProlog32")],
["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 8.1") -->
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: Free of charge for individual users."]]).
system("BinProlog 7.0") -->
lips([["Platforms: Windows 95/98/NT, Linux and all major Unix platforms."],
["Available: ", link("https://code.google.com/archive/p/binprolog/")],
["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."]]).
system("Brain Aid Prolog (BAP) v1.4") -->
lips([["Platforms: Transputer systems"],
["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://ciao-lang.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"],
["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"],
["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://www.gprolog.org/")],
["E-mail: Daniel Diaz ", email("daniel.diaz@inria.fr")]]).
system("Jinni 2.27") -->
lips([["Platforms: Java-based"],
["Available: ", link("https://github.com/heathmanb/JinniProlog")],
["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"],
["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"],
["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."],
["Info: Copy-lefted."]]).
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")],
["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("Scryer Prolog") -->
lips([["Platforms: Unix, Linux, Windows and Mac"],
["Available: ", link("https://github.com/mthom/scryer-prolog")],
["Info: A modern Prolog system written mostly in Rust."]]).
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: Simplified BSD. Run license/0 for more information."]]).
system("Tau Prolog") -->
lips([["Platforms: Web-based"],
["Available: ", link("http://tau-prolog.org/")],
["Info: An open source Prolog interpreter in JavaScript."]]).
system("Trinc-Prolog") -->
lips([["Platforms: Windows 95/98/NT 4.0, plans for Windows 2000, Linux \
and Sun Solaris"],
["E-mail: ", email("info@trinc-prolog.com")]]).
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"],
["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") -->
lips([["Platforms: UNIX-based platforms and Windows"],
["Available: ", link("https://github.com/vscosta/yap-6.3")],
["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([["Web site: ", link("http://alsprolog.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("https://github.com/Peter-Gabel/ArityProlog32")]).
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://www.gprolog.org/")],
["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://quintus.sics.se")],
["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://mozart.github.io/")],
["Mailing lists: ", email("http://mozart.github.io/mailing-lists/")]]).
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 for Programmers\". Feliks Kluzniak and \
Stanislaw Szpakowicz. Academic Press, London, 1985, \
now available without charge from ",
link("https://sites.google.com/site/prologforprogrammers/")],
["\"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) and 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([["Convenor of WG17: Ulrich Neumerkel (", email("ulrich@mips.complang.tuwien.ac.at"), ")"]]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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.learnprolognow.org")]]).
tutorials("Intermediate to advanced level:") -->
lip([link(" https://skolemmachines.org/ThePrologTutorial/")]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
appendix -->
"
", "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."]]).