Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news-out.internetmci.com!infeed2.internetmci.com!newsfeed.internetmci.com!nntp.info.ucla.edu!nntp.club.cc.cmu.edu!cantaloupe.srv.cs.cmu.edu!mkant
From: [email protected] (Mark Kantrowitz)
Newsgroups: comp.lang.prolog,comp.object.logic,news.answers,comp.answers
Subject: FAQ: Prolog Resource Guide 1/2 [Monthly posting]
Supersedes: <[email protected]>
Followup-To: poster
Date: 13 Aug 1997 07:22:59 GMT
Organization: School of Computer Science, Carnegie Mellon University
Lines: 1800
Approved: [email protected]
Distribution: world
Expires: 24 Sep 1997 07:00:20 GMT
Message-ID: <[email protected]>
Reply-To: [email protected]
NNTP-Posting-Host: glinda.oz.cs.cmu.edu
Xref: senator-bedfellow.mit.edu comp.lang.prolog:17756 comp.object.logic:1256 news.answers:109691 comp.answers:27567

Archive-name: prolog/resource-guide/part1
Last-Modified: Thu Feb 20 12:54:26 1997 by Mark Kantrowitz
Version: 1.36
Maintainer: Mark Kantrowitz <[email protected]>
URL: http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
Size: 85332 bytes, 1808 lines

;;; ****************************************************************
;;; Prolog Resource Guide ******************************************
;;; ****************************************************************
;;; prg_1.faq

This post contains the Prolog Resource Guide.

Contributions, corrections, suggestions, and comments should be sent
to Mark Kantrowitz <[email protected]>.

This guide lists a variety of resources for the Prolog community,
including books, magazines, ftp archives, and products. It is posted
on the 13th of every month to the newsgroups comp.lang.prolog and
comp.object.logic. The PRG is also posted to the newsgroups
news.answers and comp.answers where they should be available at any
time (ask your local news manager).

*** Copyright:

Copyright (c) 1992-94 by Mark Kantrowitz. All rights reserved.

This FAQ may be freely redistributed in its entirety without
modification provided that this copyright notice is not removed.  It
may not be sold for profit or incorporated in commercial documents
(e.g., published for sale on CD-ROM, floppy disks, books, magazines,
or other print form) without the prior written permission of the
copyright holder.  Permission is expressly granted for this document
to be made available for file transfer from installations offering
unrestricted anonymous file transfer on the Internet.

If this FAQ is reproduced in offline media (e.g., CD-ROM, print form,
etc.), a complimentary copy should be sent to Mark Kantrowitz, School
of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue,
Pittsburgh, PA 15213-3891 USA.

This article is provided AS IS without any express or implied warranty.

*** Recent Changes:

;;; 1.30:
;;;  7-AUG-95 mk    Updated Amzi! entry in part 2.
;;;
;;; 1.31:
;;; 29-AUG-95 mk    Added ORISA Prolog entry to part 2.
;;; 29-AUG-95 mk    Added [1-19] about ISO Prolog Standard
;;; 30-AUG-95 mk    Updated entry for LPA Prolog in part 2.
;;; 12-SEP-95 mk    Several changes to [1-1], [1-3], [1-13], [1-15] and part 2
;;;                 (ALS Prolog and CLP(RI)) by Ken Bowen.
;;;
;;; 1.32:
;;; 18-SEP-95 mk    Updated Prolog by BIM and IBM Prolog entries.
;;;
;;; 1.33:
;;; 18-OCT-95 mk    Added entry on Mercury to [2-7].
;;;  9-NOV-95 mk    Updated ALP info - Logic Programming Newsletter and [1-4].
;;; 19-MAR-96 mk    Added note about Henderson paper to [1-10].
;;; 14-MAY-96 mk    Added entry for Visual Prolog to part 2.
;;; 14-MAY-96 mk    Updated LPA Prolog entry.
;;; 14-MAY-96 mk    Prolog Vendors' Group renamed Prolog Management Group, and
;;;                 email address changed due to Al Roth's death earlier this
;;;                 year.


*** Topics Covered:

There are currently two parts to the PRG:

  1. Introductory Matter and General Questions
  2. Prolog Implementations

Table of Contents (Part 1):

 [1-0]  Introduction
 [1-1]  Sources of information about Prolog
 [1-2]  Prolog and Logic Programming Related Mailing Lists
 [1-3]  Books and Magazine Articles
 [1-4]  Prolog and Logic Programming Associations and Journals
 [1-5]  FTP Archives and Other Resources
 [1-6]  Free Object-Oriented Systems for Prolog
 [1-7]  Commercial Object-Oriented Systems for Prolog
 [1-8]  The Prolog 1000 Database
 [1-9]  X-Windows Interfaces
 [1-10] Is there a straight-forward way of compiling Prolog to C?
 [1-11] WAM emulators and tracers
 [1-12] What is the Basic Andorra Model and AKL?
 [1-13] What is Constraint Logic Programming?
 [1-14] How do you write portable programs in Prolog?
 [1-15] World-Wide Web (WWW) Resources
 [1-16] Prolog Job Postings
 [1-17] Is Prolog really used in Windows NT?
 [1-18] History of Prolog
 [1-19] The ISO Standard for Prolog and other Prolog standards
 [1-A]  Acknowledgements

Prolog Implementations (Part 2):

 [2-0]  General information about Prolog Implementations
 [2-1]  Free Prolog Implementations
 [2-2]  Commercial Prolog Implementations
 [2-3]  Free Parallel Prolog Implementations
 [2-4]  Commercial Parallel Prolog Implementations
 [2-5]  Free Constraint Systems
 [2-6]  Commercial Constraint Systems
 [2-7]  Free Logic Programming Systems
 [2-8]  Commercial Logic Programming Systems
 [2-9]  Other Commercial Prolog Products
 [2-10] Prolog extensions, meta-interpreters, and pre-processors

Search for [#] to get to topic number # quickly. In newsreaders which
support digests (such as rn), [CTRL]-G will page through the answers.

----------------------------------------------------------------
Subject: [1-0] Introduction

Certain questions and topics come up frequently in the various network
discussion groups devoted to and related to Prolog and logic programming.
This file/article is an attempt to gather these questions and their
answers into a convenient reference for Prolog programmers.  It (or a
reference to it) is posted periodically.  The hope is that this will
cut down on the user time and network bandwidth used to post, read and
respond to the same questions over and over, as well as providing
education by answering questions some readers may not even have
thought to ask.

This guide lists Prolog and logic programming resources: archives,
newsgroups, books, magazines, compilers, interpreters and anything
else you can think of which has to do with the proliferation of Prolog
and logic programming. Also included is a list of suppliers of
products and a list of publishers. Topics can also include
unification, backtracking search, and other aspects of logic
programming. As Prolog has a strong historical tradition in Europe,
we've tried to ensure that the information is relevant to all readers,
including European and North American.

This is not a Prolog tutorial, nor is it an exhaustive list of all Prolog
intricacies.  Prolog is a very powerful and expressive language, but with
that power comes many complexities.  This list attempts to address the
ones that average Prolog programmers are likely to encounter.  If you are
new to Prolog, read one of the introductions listed in the answer to
question [1-3].

Please do not post homework questions to the comp.lang.prolog
newsgroup. You won't learn anything if somebody else does the problem
for you, and won't get any credit for your answer if your instructor
reads the newsgroup.

Please also avoid starting the debate on which language is better;
Prolog or Lisp, Prolog or C, and so on. Such discussions are rarely
productive, and nobody will change their opinion as a result of the
debate. The usual conclusion of such debates is that the languages are
Turing equivalent, but some languages are better suited for particular
tasks. For Prolog, the consensus is that it is a good choice for
problems involving logic and problems whose solution can be
represented or characterized succinctly in logical form. Some folks
feel Prolog is the best language for natural language processing;
others disagree.

The comp.lang.prolog newsgroup is archived in
  ftp.cs.cmu.edu:/user/ai/pubs/news/comp.lang.prolog/
on a weekly basis.

This guide is posted regularly to comp.lang.prolog and comp.object.logic.
It may also be obtained by anonymous ftp from
  ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/  [128.2.206.173]
using username "anonymous" and password "name@host" (substitute your
email address) or via AFS in the Andrew File System directory
  /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/prolog/
as the files prg_1.faq and prg_2.faq.

You can also obtain a copy of the FAQ by sending a message to
[email protected] with
  Send PRG
in the message body.

The FAQ postings are also archived in the periodic posting archive on
  rtfm.mit.edu:/pub/usenet/news.answers/prolog/ [18.181.0.24]
If you do not have anonymous ftp access, you can access the archive by
mail server as well.  Send an E-mail message to
[email protected] with "help" and "index" in the body on
separate lines for more information.

An automatically generated HTML version of the PRG is accessible by
WWW as part of the AI-related FAQs Mosaic page. The URL for this
resource is
  http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/top.html
The direct URL for the PRG is
  http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html

If you need to cite the FAQ for some reason, use the following format:
  Mark Kantrowitz, "Prolog Resource Guide", comp.lang.prolog, <month>, <year>,
  ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/prg_?.faq, [email protected].

Disclaimer:

  We have taken great care in making the information in this document as
  accurate as possible. However we are not responsible for any problems
  which might occur from using information supplied in this guide.

----------------------------------------------------------------
Subject:  [1-1]  Sources of Information about Prolog

The newsgroups comp.lang.prolog, comp.object.logic, and (to a lesser
extent) comp.ai are a source of information and discussion about Prolog.
See also sci.logic. The newsgroup comp.constraints is for information
about constraint processing languages and related topics.

A "Frequently Asked Questions" posting is posted to comp.lang.prolog
twice a month by Jamie Andrews <[email protected]>. The Prolog FAQ and this
Prolog Resource Guide are intended to complement one another.

Several WWW resources are available (see also [1-5] and [1-15]):

  CMU Prolog Repository.  Extensive archives of code, bibliographies,
  FAQs, newsgroup postings, tech reports, and more.  The URL is:
     http://www.cs.cmu.edu:8001/afs/cs.cmu.edu/project/ai-repository/ai/lang/prolog/0.html

  NALP: North American Logic Programming.  World-wide coverage
  with some emphasis on developing LP in North America. The URL is:
     http://www.als.com/nalp.html

  Logic Programming Archive at Oxford Comlab.  World-wide coverage
  with emphasis on Europe.  The URL is:
     http://www.comlab.ox.ac.uk/archive/logic-prog.html

----------------------------------------------------------------
Subject: [1-2] Prolog and Logic Programming Related Mailing Lists

Prolog and Logic Programming:
  [email protected] (general)
  [email protected] (nitty gritty)

  All requests to be added to or deleted from this list, problems,
  questions, etc., should be sent to [email protected]

  [The host sushi.stanford.edu no longer exists, as of 11/24/92.
   Does anybody know the new location of the mailing lists?]

Lambda Prolog:
  [email protected]

  To subscribe, send mail to [email protected].

Mercury:
       [email protected] (announcements)
       [email protected] (general discussion)
       To subscribe, send mail to [email protected]
       and/or [email protected] (respectively) with
       "subscribe" in the message body.

Electronic Journal of Functional and Logic Programming (EJFLP)

  EJFLP is a refereed journal that will be distributed for free via e-mail.
  The aim of EJFLP is to create a new medium for research investigating the
  integration of the functional, logic and constraint programming paradigms.

  For instructions on submitting a paper, send an empty mail message with
     Subject: Help
  to:
     [email protected].
  You will receive an acknowledgment of your submission within a few hours.

  To subscribe to the journal, send an empty mail message to the following
  address:
      [email protected]
  You will receive an acknowledgment of your subscription within a few days.

  If there are any problems with the mail-server, send mail to
  [email protected].

  The editorial board is: Rita Loogen (RWTH Aachen), Herbert Kuchen (RWTH
  Aachen), Michael Hanus (MPI-Saarbruecken), Manuel MT Chakravarty (TU
  Berlin), Martin Koehler (Imperial College London), Yike Guo (Imperial
  College London), Mario Rodriguez-Artalejo (Univ. Madrid), Andy Krall
  (TU Wien), Andy Mueck (LMU Muenchen), Tetsuo Ida (Univ. Tsukuba,
  Japan), Hendrik C.R. Lock (IBM Heidelberg), Andreas Hallmann (Univ.
  Dortmund), Peter Padawitz (Univ. Dortmund), Christoph Brzoska (Univ.
  Karlsruhe).

  [The JFLP is now being published by MIT Press. Please see the JFLP web
  page at the URL
     http://www.cs.tu-berlin.de/~chak/jflp/
  or the MIT Press web page at
     http://mitpress.mit.edu/jrnls-catalog/journals-toc.html
  or send email to
     [email protected]
  for further information.]

PDC-L:
  [email protected] is a discussion list for PDC Prolog users.

  To subscribe, send mail to [email protected] with
      SUBSCRIBE PDC-L <your full name>
  in the message body.

Theorem Provers:
  [email protected]

  This (unmoderated) list is intended for announcements of interest to
  people interested in automated theorem proving.

  To subscribe, send your email address to [email protected].

Type Theory:
  [email protected]

  Moderated mailing list about type theory. Archived on
     theory.lcs.mit.edu:/pub/meyer/

  To subscribe, send mail to [email protected].

Logic:
  [email protected]

  Moderated mailing list about logic. Archived on
     theory.lcs.mit.edu:/pub/meyer/

  To subscribe, send mail to [email protected]

ALP (French Chapter):
  [email protected]

  La liste de diffusion "prog-logique" est le support electronique de
  communication de la section francaise de l'ALP (Association for Logic
  Programming), groupe de travail AFCET. Elle complete la lettre du
  groupe publiee trimestriellement.

  Pour vous abonner ou vous desabonner, il faut envoyer un "mail" au
  serveur de listes, a l'adresse
     [email protected]
  sans sujet ni signature, et dont le corps du message contient
       SUB prog-logique Prenom Nom
  Un acquittement est renvoye par messagerie. Pour desabonnement, ecrit
       SIGNOFF prog-logique
  Les requetes envoyees directement a la liste ne seront pas prises en
  compte.

----------------------------------------------------------------
Subject: [1-3] Books and Magazine Articles

A BiBTeX bibliography of Logic Programming Conferences is available by
anonymous ftp from duck.dfki.uni-sb.de. See [1-5] below.

A partially annotated bibliography of work on integrating
object-oriented and logic programming is available by anonymous ftp
from menaik.cs.ualberta.ca:/pub/oolog/ in PostScript and BibTeX
formats. Written by Vladimir Alexiev <[email protected]>.

The following books are regarded as popular and widely used. Also
included are some books about WAM. This is not intended to be a complete
Prolog bibliography.

Prolog Programming:

  Covington, Michael A.; Nute, D.; and Vellino, A. "Prolog
  Programming in Depth", Scott, Foresman & Co., 1987. ISBN 0-521-40984-5
  (Out of print, but new edition coming soon. Copies of the 1987
  edition are still available from the University of Georgia
  Bookstore, at 706-542-7131.)
  Book source code available at:
     http://www.als.com/ftp/pub/texts/texts.html

  Bowen, Kenneth A. "Prolog and Expert Systems", Mcgraw-Hill, Inc.,
  1991, ISBN 0-07-006731-7 ($29.95).  Book source code available at:
     http://www.als.com/ftp/pub/texts/texts.html

  Clocksin, W.F. and Mellish, C.S: "Programming in Prolog", 3rd Ed.
  Springer Verlag, 1987. 281 pages, ISBN 0-387-17539-3 ($29).
  [Basic introduction to Prolog.]

  Coelho, H., and Cotta, J.C., "Prolog by Example", Springer Verlag,
  1988. 381 pages, ISBN 0-387-18313-2 ($39.50).

  Cooke, Daniel E., "Logic: The Basis for Understanding Prolog",
  Ablex, Norwood, NJ, 1994. 224 pages, ISBN 1-56750-028-5 ($27.50).
  [Intro to Prolog with a review of the basic ideas underlying the language.]

  Conlon, Tom: "Programming in Parlog". Addison-Wesley, 1989,
  ISBN 0-201-17450-2.

  Dawe, C.M. and M.S. Dawe, "Prolog for Computer Science", Springer
  Verlag, 1994. 190 pages, ISBN 0-387-19811-3 paper ($35). [Intro to
  computer science using Prolog.]

  Dodd, Anthony, "Prolog: A logical approach", Oxford University
  Press, New York, 1990, 556 pages. ISBN 0-198-53822-7 (cloth), $52.50;
  ISBN 0-198-53821-9 (paperback), $26.00.

  Kluzniak and Szpakowicz: "Prolog for Programmers", Academic Press 1985

  G. L. Lazarev, "Why Prolog? Justifying Logic Programming for Practical
  Applications", Prentice Hall, 1989. [Software engineering bent.
  Emphasizes advantages of declarative programming.]

  Le, Tu Van,  "Techniques of Prolog programming, with implementation
  of logical negation and quantified goals", John Wiley, New York, 1993.
  ISBN: 0-471-57175-X (American edition), 0-471-59970-O (International
  edition).  LnProlog, a Prolog interpreter that supports negative
  finding queries and quantified queries is available together with
  the book.

  Saint-Dizier, P., "An Introduction to Programming in Prolog",
  Springer Verlag, 1990. 184 pages, ISBN 0-387-97144-0 paper ($25).
  [Tutorial introduction, with simple examples of AI programs and games.]

  Leon Sterling, editor, "The Practice of Prolog", MIT Press, 1990.
  342 pages, ISBN 0-262-19301-9, $39.95.

Advanced Prolog Programming:

  O'Keefe, Richard A., "The Craft of PROLOG", MIT Press, 1990, 410 pages.
  ISBN 0-262-15039-5, $42.50.

  Peter Ross, "Advanced Prolog: Techniques and Examples",
  Addison-Wesley, 1989, ISBN 0-201-17527-4.

  Leon Sterling and Ehud Shapiro, "The Art of Prolog: Advanced
  Programming Techniques", 2nd Edition, MIT Press, 1994. 688 pages,
  ISBN 0-262-19338-8 ($49.95).
  [Source code for the book is available in ftp.cwru.edu:/ArtOfProlog/.
   There is a subdirectory for each chapter of the book containing the
   text of the programs in that chapter.]

AI and Prolog:

  Yoav Shoham, "Artificial Intelligence Techniques in Prolog", Morgan
  Kaufmann Publishers, 1993, 400 pages. ISBN 1-55860-167-8 (paper) $39.95.
  ISBN 1-55860-319-0 (cloth) $49.95. [Topics include search, backward
  chaining, data-driven methods, truth maintenance, constraint
  satisfaction, reasoning with uncertainty, planning, temporal
  reasoning, machine learning, and natural language processing. Prolog
  source for all the programs in the book is available by anonymous ftp
  from unix.sri.com:/pub/shoham/]

  Bratko, Ivan, "Programming in Prolog for Artificial Intelligence",
  2nd Edition, Addison-Wesley, 1990. [Good introduction to Prolog and AI.
  A bit large, though, for an Intro to Prolog course. Includes
  discussion of the 8-queens problem.]

  Dennis Merritt, "Building Expert Systems in Prolog", Springer-Verlag, 1989.
  358 pages, ISBN 0-387-97016-9 hardcover ($52).
  Explains how to build various expert system shells in Prolog, including
  forward/backward chaining, FOOPS, rete-network, frames, solving
  Rubik's cube and more. Includes complete source code listings.
  (Source code from the book is also sold on disk by Amzi! Inc. and
  is available by anonymous FTP from
     ftp.std.com:/ftp/vendors/amzi/programs/
     ftp.cs.cmu.edu:/user/ai/areas/expert/systems/amzi/programs/
  as the files xsip.*)

  Dennis Merritt: "Adventure in Prolog", Springer-Verlag, 1990.
  186 papers, ISBN 0-387-97315-X hardcover ($38).
  Teaches Prolog by leading the reader through the construction of an
  adventure game. The exercises lead the reader through three other
  programs:  an intelligent database, an expert system and an order-entry
  program.  While most texts teach Prolog with fragments of interesting code,
  this book takes a more pragmatic (as opposed to theoretical approach) and
  shows the reader how to assemble complete Prolog programs.

  Gazdar, G. and Mellish, C., "Natural Language Processing in Prolog:
  An Introduction to Computational Linguistics", Addison-Wesley,
  Reading, Massachusetts, 1989. (There are three different editions
  of the book, one for Lisp, one for Prolog, and one for Pop-11.)

  Fernando C.N. Pereira and Stuart M. Shieber, "Prolog and
  Natural-Language Analysis", CSLI Lecture Notes Number 10, Stanford,
  CA, 1987. 286 pages, ISBN 0-937073-18-0.

  Michael A. Covington, "Natural Language Processing for Prolog
  Programmers", Prentice-Hall, Englewood Cliffs, NJ, 1994. ISBN
  0-13-629213-5.

  Harvey Abramson and Veronica Dahl, "Logic Grammars", Springer-Verlag,
  New York, 1989, 234 pages, ISBN 0-387-96961-6.

  Peter Flach, "Simply Logical: Intelligent Reasoning by Example",
  John Wiley & Sons, 1994, 256 pages. ISBN 0-471-94152-2 paper ($31.95).
  [Covers theoretical and practical aspects of Prolog programming as well
  as AI topics like knowledge representation, search, heuristics,
  abduction, default reasoning, and induction. Every technique is
  accompanied by a Prolog program that implements it. More information
  about the book is available from
     http://machtig.kub.nl:2080/Infolab/Peter/SimplyLogical.html
  or by email from [email protected].]

Prolog and Object-Oriented Programming:

  Chris Moss, "Prolog++ The Power of Object-Oriented and Logic
  Programming", Addison-Wesley, 1994. 312 pages, ISBN 0-201-56507-2. UK
  price is 21.95 pounds. [This paperback includes a special offer to
  obtain a Prolog++ compiler from LPA for Windows 3.1 or Macintosh. UK
  price is 29.95 pounds (plus 17.5 percent VAT) plus 5.00 pounds postage
  and handling. Elsewhere the cost is $49.95 plus $8 p&h.]

Logic Programming:

  Hogger, Christopher J., "Introduction to Logic Programming",
  Academic Press, 1984. 278 pages. ISBN 0-12-352090-8 (alk. paper)
  ISBN 0-12-352092-4 (pbk.).

  Hogger, Christopher J., "Essentials of Logic Programming",
  Clarendon Press, Oxford, 1990. ISBN 0-19-853820-0. [Covers both
  foundations and more practical material, relating it all to Prolog.
  Takes a different approach than his first intro, dividing the book
  into many short "themes" instead of chapters, and including many
  excercises (with some answers).]

  Kowalski, R.A.: "Logic for Problem Solving", New York 1979, Elsevier Publ.

  LLoyd, John: "Foundations of Logic Programming", 2nd Edition,
  Springer-Verlag, 1988. (Intro to logic programming theory.)

  David Maier and David S. Warren: "Computing with Logic: Logic
  Programming with Prolog", Benjamin Cummings, Menlo Park, CA, 1989.

  Nilsson, Ulf and Maluszynski, Jan, "Logic, Programming and Prolog",
  John Wiley & Sons, 1990, ISBN 0-471-92625-6.

  Subrata Kumar DAS, "Deductive Databases and Logic Programming",
  Addison-Wesley Publishing Company, July 1992, 448 pages.
  ISBN 0-201-56897-7.

Constraint Logic Programming and Constraint Satisfaction:

  Bennaceur, Hachemi and Gerard Plateau, "An exact algorithm for the
  constraint satisfaction problem: Application to logical inference",
  Information Processing Letters 48(3):151-158, November 19, 1993.

  Cohen, J., "Constraint Logic Programming Languages", Communciations
  of the ACM 33(7):52-68, 1992. [Good introduction to CLP and
  includes a historical overview.]

  Freeman-Benson, B.N., Maloney, J., and Borning, A., "An Incremental
  Constraint Solver", Communications of the ACM 33(1):54-63, 1990.
  [Includes a good reading list on the history and applications of
  constraints.]

  Freuder, Eugene C., and Richard J. Wallace, "Partial constraint
  satisfaction", Artificial Intelligence 58(1-3):21-70, December 1992.

  Van Hentenryck, Pascal, "Constraint Satisfaction in Logic Programming",
  MIT Press, Cambridge, MA, 1989, ISBN 0-262-08181-4.

  Jaffar, Joxan and Jean-Louis Lassez, "Constraint Logic Programming", in
  Proceedings of the 14th ACM Symposium on Principles of Programming
  Languages (POPL), Munich, Germany, pages 111-119, 1987.
  [A longer version appears in Joxan Jaffar and Jean-Louis Lassez,
  "Constraint Logic Programming", Technical Report 86-74, Monash
  University, Victoria, Australia, June 1986.]

  Kumar, Vipin, "Algorithms for Constraint-Satisfaction Problems: A
  Survey", AI Magazine 13(1):32-44, 1992.

  Mackworth, Alan K., "The logic of constraint satisfaction", Artificial
  Intelligence 58:3-20, 1992.

  Meseguer, P., "Constraint Satisfaction Problems: An Overview", AICOM
  2(1):3-17, 1989.

  Steele, Guy L., "The Definition and Implementation of A Computer
  Programming Language Based on Constraints", PhD thesis, MIT, 1980.

  Tsang, Edward, "Foundations of Constraint Satisfaction", Academic
  Press, 1993. 421 pages, ISBN 0-12-701610-4 ($75). [Good overview.]

  Zhang, Ying and Alan K. Mackworth, "Constraint Programming in
  Constraint Nets", in Position Papers for the First Workshop on
  Principles and Practice of Constraint Programming, pages 303-312,
  Newport, RI, April 28-30, 1993.

  [See also the articles on Constraint Networks (pages 276-285) and
  Constraint Satisfaction (pages 285-293) in Shapiro's Encyclopedia
  of Artificial Intelligence.]

Prolog Implementations and WAMs:

  Ait-Kaci, Hassan, "Warren's Abstract Machine: A Tutorial Reconstruction",
  MIT Press, Cambridge, MA. 1991.
  125 pages, ISBN 0-262-51058-8 paper ($17.50), 0-262-01123-9 cloth.

  Patrice Boizumault, "The Implementation of Prolog", Princeton
  University Press, Princeton, NJ, 1993.  Translated by Ara M.
  Djamboulian and Jamal Fattouh. ISBN 0-691-08757-1, 357 pages ($49.50).
  [The interpreters developed in the book are available by anonymous
  ftp from cnam.cnam.fr:/pub/Boizumault/. See [2-1].]

  Campbell, J.A. (ed):  "Implementations of Prolog", John Wiley, 1984

  Peter M. Kogge, "The Architecture of Symbolic Computers",
  McGraw-Hill, 1991. ISBN 0-07-035596-7.
     Includes sections on memory management, the SECD and
     Warren Abstract Machines, and overviews of the various
     Lisp Machine architectures.

  David Maier and David S. Warren, "Computing with Logic: Logic
  Programming with Prolog", Benjamin/Commings Publishing Co., 1988.
  ISBN 0-8053-6681-4.

  David H. D. Warren: "An Abstract Prolog Instruction Set", Technical Note
  No 309, SRI International, Menlo Park, CA, 1983.

  David H. D. Warren, "Logic Programming and Compiler Writing," in
  Software-Practice and Experience 10(2):97-125, 1980.

  J. Cohen and T. Hickey, "Parsing and Compiling using Prolog",
  ACM Transactions on Programming Languages and Systems (TOPLAS),
  9(2):125-163, 1987.

  J. Paakki, "Prolog in practical compiler writing", The Computer
  Journal 34(1):64-72, 1991. (But see Letters to the Editor, The
  Computer Journal 35(3):313, 1992.)

  Jonathan P. Bowen, "From Programs to Object Code using Logic and Logic
  Programming", in R. Giegerich and S. L. Graham, editors, Code
  Generation -- Concepts, Tools, Techniques, pages 173-192,
  Springer-Verlag, 1992.

  Jonathan P. Bowen, "From Programs to Object Code and back again using
  Logic Programming: Compilation and Decompilation", Journal of
  Software Maintenance: Research and Practice 5(4):205-234, December 1993.

Parallel Prologs:

  Gregory, Steve: "Parallel Logic Programming in Parlog: The Language
  and Its Implementation", Addison-Wesley, 1987, ISBN 0-201-19241-1.

  Tick, E.: "Parallel Logic Programming". MIT Press, 1991

Miscellaneous:

  Deville, Yves: "Logic Programming, Systematic Program Development",
  International Series in Logic Programming, Addison-Wesley, 1990, 338 pages.
  ISBN 0-201-17576-2.

  Wolfram, D.A., "The Clausal Theory of Types", Cambridge Tracts in
  Theoretical Computer Science {\bf 21}, Cambridge University Press,
  1993.

Magazine Articles:

  PCAI Magzine, September/October 1993. Article on exploring Prolog,
  showing the first steps to four applications -- an adventure game, an
  object-oriented shell, a tax program, and an animal guessing game.
  An excerpt of this article is available from
     ftp.cs.cmu.edu:/user/ai/lang/prolog/doc/intro/explore.doc

  BYTE Magazine, August 1987. 5 introductory articles on Prolog.
  Applications include logic grammars and simulating a microprocessor.

  Uwe Schreiweis: Beredte Logik, Konzepte der 'KI-Sprache" Prolog,
  (Eloquent Logic, Concepts of the AI language Prolog), iX Magazine,
  October 1992, pages 84-90.

  Uwe Schreiweis: Basis der Fuenf, Die Sprache Prolog in der Public
  Domain, (Base of the Five, Prolog in the Public Domain), iX Magazine,
  October 1992, pages 92-94.

  Uwe Schreiweis: Fuenfte Generation, Kommerzielle Prolog-Systeme,
  (Fifth Generation, Commercial Prolog Systems), iX Magazine, October
  1992, pages 96-102.

  Klaus Bothe: Weniger Raum, Speicherplatzbezogener Prolog-Benchmark,
  (Less Space, A Space Oriented Prolog Benchmark), iX Magazine, October
  1992, pages 106-7.

Magazines Related to Prolog:

  Logic Programming Newsletter (4 issues/yr)
  Included with membership in the Association for Logic Programming
  ($30 regular, $15 students). For membership information, write to
  Valerie Anderson (ALP), DoC-ICSTM, 180 Queens Gate, London SW7 2BZ,
  UK, phone +44-171-594-8226, fax +44-171-589-1552, or send email
  to [email protected]. Contributions are welcome and should be sent
  to Andrew Davidson <[email protected]>. Selected articles from the
  newsletter are available from the WWW archive
     http://www.cs.mu.oz.au/~ad/alp/archive.html

  AI Communications (4 issues/yr)
  "The European Journal on Artificial Intelligence"  ISSN 0921-7126,
  European Coordinating Committee for Artificial Intelligence.

  AI Expert (issued monthly) ISSN 0888-3785, Miller Freeman Publishers
  See a copy of the magazine for list of BBS's in NA. On CompuServe: GO
  AIEXPERT. Regularly reviews Prolog interpreters and compilers.
  -- Ceased publication in June, 1995.

  PC AI (issued bi-monthly) ISSN 0894-0711, Knowledge Technology Inc.
  Regularly reviews Prolog systems and applications.
  See http://www.pcai.com/pcai

  Expert Systems (issued Feb, May, Aug and Nov) ISSN 0266-4720,
  Learned Information (Europe) Ltd. Subscription: GBP 85 or USD 110

  IEEE Expert (issued bimonthly) ISSN 0885-9000, IEEE Computer Society

  The Journal of Logic Programming (issued bimonthly), (North-Holland),
  Elsevier Publishing Company, ISSN 0743-1066

  New Generation Computing, Springer-Verlag. (LOTS of Prolog in it.)

----------------------------------------------------------------
Subject: [1-4] Prolog and Logic Programming Associations and Journals

ASSOCIATION FOR LOGIC PROGRAMMING (ALP)
Members receive the ALP Newsletter.

For information on membership ($30 regular, $15 students), contact

  Valerie Anderson
  ALP Administrative Secretary
  Department of Computing
  Imperial College
  180 Queen's Gate
  London, SW7 2BZ, UK

  Email:   [email protected]
  Fax:    +44 171 589 1552
  Phone:  +44 171 594 8226

Newsletter submissions should be sent to

  Andrew Davison
  Department of Computer Science
  University of Melbourne
  Parkville
  Melbourne, Victoria 3052
  AUSTRALIA

  Email:   [email protected]
  Fax:    +61 3 348 1184
  Phone:  +61 3 344 7207 / 5230
  Telex:   AA 35185

----------------------------------------------------------------
Subject: [1-5] FTP Archives and Other Resources

The following are achives that contain Prolog-related material, such as
code, interpreters, articles, etc. Most of the archives are ftp sites.
They are listed by domain.name and [IP Address]. To access them and
download programs type at the prompt:

       ftp <site name> (or IP address)
       login: "anonymous",
       password: your own return email address,
       cd <directory>, ls to see files,
       set binary,
       get <filename> to transfer file to your system
       stop with quit or exit

Deviations from this general scheme may occur but the above should
work in most cases.

CMU AI Repository, Prolog Section:

  The Prolog Section of the CMU Artificial Intelligence Repository
  (aka "The Prolog Repository") is accessible by anonymous ftp to
     ftp.cs.cmu.edu:/user/ai/lang/prolog/ [128.2.206.173]
  through the AFS directory
     /afs/cs.cmu.edu/project/ai-repository/ai/lang/prolog/
  or by WWW from the URL
     http://www.cs.cmu.edu/Web/Groups/AI/html/repository.html
  and includes more than 110 megabytes of sources and other materials
  of interest to Prolog programmers, including all freely
  distributable implementations and many programs. The contents of the
  CMU AI Repository has been keyword indexed to provide convenient
  browsing of the contents.

  The repository has standardized on using 'tar' for producing
  archives of files and 'gzip' for compression.

  To search the keyword index by mail, send a message to:
     [email protected]
  with one or more lines containing calls to the keys command, such as:
     keys prolog gui
  in the message body.  Keywords may be regular expressions and are
  compared with the index in a case-insensitive conjunctive fashion.
  You'll get a response by return mail. Do not include anything else in
  the Subject line of the message or in the message body.  For help on
  the query mail server, include:
     help
  instead.

  A Mosaic interface to the keyword searching program is in the
  works.  We also plan to make the source code (including indexes) to
  this program available, as soon as it is stable.

  Most of the Prolog Section of the AI Repository appears on Prime Time
  Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
  includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
  (list) for US$60 plus applicable sales tax and shipping and handling
  charges. Payable through Visa, Mastercard, postal money orders in US
  funds, and checks in US funds drawn on a US bank. For more
  information write to Prime Time Freeware, 370 Altair Way, Suite 150,
  Sunnyvale, CA  94086  USA, call 408-433-9662, 408-433-0727 (fax),
  or send email to [email protected].

  Contributions of software and other materials are always welcome but
  must be accompanied by an unambiguous copyright statement that grants
  permission for free use, copying, and distribution -- either a
  declaration by the author that the materials are in the public domain,
  that the materials are subject to the GNU General Public License (cite
  version), or that the materials are subject to copyright, but the
  copyright holder grants permission for free use, copying, and
  distribution. (We will tell you if the copying permissions are too
  restrictive for us to include the materials in the repository.)
  Inclusion of materials in the repository does not modify their
  copyright status in any way. Materials may be placed in:
     ftp.cs.cmu.edu:/user/ai/new/
  When you put anything in this directory, please send mail to
     [email protected]
  giving us permission to distribute the files, and state whether
  this permission is just for the AI Repository, or also includes
  publication on the CD-ROM version (Prime Time Freeware for AI).
  We would also appreciate if you would include a 0.doc file for your
  package; see /user/ai/new/package.doc for a template. (If you don't
  have the time to write your own, we can write it for you based on
  the information in your package.)

  The Prolog Section of the AI Repository is maintained by Mark Kantrowitz
  <[email protected]>.

Artificial Intelligence Programs:
  ai.uga.edu:/pub/ [128.192.12.9]

  The University of Georgia AI FTP Library contains public domain
  Prologs, such as Open Prolog and ESL PD Prolog, PrEd (a small text
  editor for Prolog), and some miscellaneous prolog programs in
     ai.uga.edu:/pub/prolog/
  A copy of the programs from the book by Covington, Nute, and Vellino, (see
  the section on Books below), is in
     ai.uga.edu:/pub/prolog.book/
  and the draft ISO standard for prolog is in
     ai.uga.edu:/pub/prolog.standard/
  Some technical reports with accompanying code are in
     ai.uga.edu:/pub/ai.reports/
  Other materials of interest are in
     ai.uga.edu:/pub/natural.language/
     ai.uga.edu:/pub/natural.language.book/
  Maintained by Michael Covington <[email protected]>.

ALE:
  ALE (Attribute Logic Engine), a freeware system written in
  Prolog, integrates phrase structure parsing and constraint logic
  programming with typed feature structures as terms.  Types are
  arranged in an inheritance hierarchy and specified for the features
  and value types for which they are appropriate.  Grammars may also
  interleave unification steps with logic program goal calls (as can be
  done in DCGs), thus allowing parsing to be interleaved with other
  system components.  While ALE was developed to handle HPSG grammars,
  it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II,
  and LOGIN programs, etc. Grammars and programs are specified with a
  version of Rounds-Kasper Attribute Value Logic with macros and
  variables.  ALE supports lexical rules and empty categories for
  grammars, using a bottom-up, all-paths dynamic chart parser. ALE
  supports last call optimization, negation by failure and cuts in
  definite clauses, which may be used independently or integrated into
  grammars. The system is distributed with several sample grammars,
  including a fairly comprehensive implementation of a head-driven
  phrase structure grammar for English. Version 2.0 of ALE is
  available free for research purposes by anonymous ftp from
     j.gp.cs.cmu.edu:/usr1/carp/ftp/
  as the files ale.*, or from the CMU AI Repository in
     ftp.cs.cmu.edu:/user/ai/lang/prolog/code/parsing/ale/
  For more information write to Bob Carpenter <[email protected]> or
  Gerald Penn <[email protected]>.

ALP-UK Library:
  The best Prolog library currently is the one collected by the ALP-UK
  group. It is available to members at 30 pounds sterling for a Sun
  cartridge or 2 pounds/IBM DOS disk. (non-members maybe, how much?) It
  contains MBs of Prolog systems (including SB Prolog), libraries
  (including the Edinburgh library), benchmarks, grammars, theorem provers,
  object and graphics systems etc. For more information, write to ALP-UK
  Library, Sanjay Raina, Librarian, Dept. of Computer Science, University
  of Bristol, University Walk, Bristol BS8 1TR, UK, call +44 0272 303030
  x3304, or send email to [email protected].

CASLOG
  CASLOG (Complexity Analysis System for LOGic) is an experimental
  semi-automatic complexity analysis system for logic programs. It can
  perform the worst-case analysis for complexity measures: argument size
  complexity, number of solutions complexity, and time complexity.

  CASLOG extends the techniques developed for analyzing imperative and
  functional languages to deal with nondeterminism and generation of
  multiple solutions via backtracking in logic languages. The analyses
  for different complexity measures are implemented in a unified
  framework and share several common features. First, the predicates in
  a program are processed in an order generated by a bottom-up
  topological sorting over the call graph of the program. Second, the
  complexity function for a predicate is derived from the complexity
  function of its clauses by using the information about the mutual
  exclusion relationships between its clauses. Third, the complexity
  function for a clause is inferred based on the data dependency
  relationships between its literals. Fourth, the complexity functions
  for recursive clauses are in the form of difference equations and are
  transformed into closed form functions using difference equation
  solving techniques. This unified framework can simplify proofs of
  correctness and the implementation of the algorithms.

  CASLOG is available by anonymous ftp from cs.arizona.edu:/caslog/. This
  is an alpha distribution, and includes CASLOG version 1.0, a
  preliminary user manual, a paper on CASLOG, and a set of examples.
  For more information, contact Nai-Wei Lin <[email protected]>.

Constraint Programming Paper Archive:
  Aarhus University, Denmark, has established an anonymous ftp archive
  for papers on "Constraint Programming" at ftp.daimi.aau.dk:/pub/CLP/.
  For further information, contact Brian H. Mayoh <[email protected]>.

CSP:

  Some constraint-related papers by a research group at the
  University of Washington are available by anonymous ftp from
     june.cs.washington.edu:/pub/constraints/papers/
  The papers from the 1994 Principles and Practice of Constraint
  Programming Workshop are available in
     june.cs.washington.edu:/pub/constraints/papers/ppcp94/
  There are also implementations of several constraint satisfaction
  algorithms and constraint-based systems, including the DeltaBlue and
  SkyBlue algorithms, the Multi-Garnet user interface toolkit, ThingLab
  II, and CoolDraw (a constraint-based drawing system), in
  subdirectories of
     june.cs.washington.edu:/pub/constraints/code/
  The ftp archive is also accessible via WWW:
     http://web.cs.city.ac.uk/archive/constraints/constraints.html
  All the source code is in the public domain. For more information,
  write to Alan Borning <[email protected]>.

  C implementations of a number of constraint satisfaction algorithms
  are available by anonymous ftp from
     ftp.cs.ualberta.ca:/pub/ai/csp/
  Get the files README and csplib.tar.Z.  The algorithms include
  variations on backtracking (backjumping, backmarking, chronological
  backtracking, etc.), local consistency preprocessing algorithms (e.g.,
  arc consistency), and random problem generators. For more information,
  write to Peter van Beek <[email protected]>.

Eden:
  Eden is a Poplog-based AI microworld developed by Simon Perkins,
  Jocelyn Paine and Edmund Chattoe of the Oxford University Artificial
  Intelligence Society. It is intended to serve as a testbed for
  learning and planning programs. Programs written in Pop-11, Prolog,
  Lisp, and ML control a "bug" that lives in a 2-dimensional world. Any
  kind of algorithm may be used to control the bug, including genetic
  algorithms, neural nets, and rule-based systems. Eden consists of a
  grid of cells, each of which can contain objects such as keys, doors,
  boulders and quicksand. Bug's objective is to find and eat a piece of
  food which the simulator has placed somewhere within this grid. To do
  this, Bug must negotiate its way towards the food while dealing
  intelligently with obstacles. Eden's laws of physics allow Bug to take
  one of several different actions when it encounters an object. The
  simulator then works out the consequences of the chosen action on Bug
  and on Eden, and displays these graphically in a Ved window. Bug's
  perceptions are updated to reflect the new state of the world, and the
  cycle repeats. Eden is available by anonymous ftp from the Imperial
  College archive in
     src.doc.ic.ac.uk:/packages/prolog-pd-software/ [146.169.2.10]
  as the file eden.tar.Z. (Note: This is really a link to the
  directory computing/programming/languages/prolog/pd-software/.)
  Eden includes PopBeast, a simple Prolog bug which can read and
  parse simple commands, extract their meaning, plan how to satisfy
  these commands, and then carry out the plans.

  Parts of the current Eden are coded in Pop-11, so porting it to
  Prologs other than Poplog will require some effort. Most of the
  recoding needed is in the grid-world simulator and the definition of
  objects. Send mail to Jocelyn Paine <[email protected]> if
  you're willing to try this.

FW_Rules:

  FW_RULES is a Sicstus Prolog library providing a compiler for forward
  chaining rules.  The implementation is based on a non-state saving
  technique coupled with an indexing mechanism on the working memory
  based on C bitwise operations to achieve efficiency. The library
  supports interoperability between the forward chaining language and
  the underlying Prolog engine.  Terms in the working memory are
  represented as Prolog facts and can be accessed from Prolog to perform
  deduction. It is available by anonymous FTP from
     ftp.cs.unibo.it:/pub/gaspari/fw_rules/
  as the files README and fw_rules.tar.Z. For more information,
  please write to Mauro Gaspari <[email protected]>.

HDRUG:

  Hdrug is an environment to develop logic grammars, parsers, and
  generators for natural languages.  The package comes with a number of
  example grammars, including a Categorial Grammar, a Tree Adjoining
  Grammar, a Unification Grammar in the spirit of Head-driven Phrase
  Structure Grammar, an Extraposition Grammar, a Definite Clause
  Grammar, and a port of the HPSG grammar from Bob Carpenter's ALE
  system. Each of the grammars comes with a set of parsers, such as
  Earley-like chart parsers, left-corner parsers and head-driven
  parsers. Some grammars come with variants of the head-driven
  generator. The package allows easy comparison of different
  parsers/generators, extensive possibilities of compiling feature
  equations into Prolog terms, graphical (Tk), LaTeX and ordinary Prolog
  output of trees, feature structures and Prolog terms, and plotted
  graphs and tables of statistical information. Hdrug runs in Sicstus
  Prolog and requires ProTcl and Tcl/Tk. It is available by anonymous
  FTP from
     tyr.let.rug.nl:/pub/prolog-app/Hdrug/
  or by WWW from
     http://tyr.let.rug.nl/~vannoord/prolog-app/Hdrug/
  For more information, write to Gertjan van Noord <[email protected]>.

Logic Programming Bibliographies:
  duck.dfki.uni-sb.de:/pub/lp-proceedings/ [134.96.188.92]

  The ftp server supports tar'ing on the fly, so if you type "get
  bibtex.tar" you will get a tar'ed version of the "bibtex" directory.

  BibTeX entries for the proceedings of the following conferences
  are included: SLP84-87,91, NACLP89-90, ILPS91, ICLP82,84,86-91,93,
     JICLP92, LP88, RTA89,93, PLILP90-92, ALPUK91, ICOT92, ALP90,92,
     CADE90,92, CTRS90,92, LICS86-91, UNIF89, EPIA89,91,93, TACS91,
     TAPSOFT93, EAIA90, FGCS92, FAC, ILPS93, PEPM91,93
  and the following journals: JLP85-93, JAR91-93, JSC91-93, IANDC82-92.

  The bibliography is mirrored by the Universidade Nova de Lisboa.
  In addition, the bibliography can be searched using either WAIS or
  GOPHER. To search the lp-proceedings using WAIS, use the
     lp-proceedings.src
  wais source, available from the directory of servers. To search the
  lp-proceedings using GOPHER, point the client to gopher.fct.unl.pt,
  and follow the directories
     "Research/Bibliography/Logic Programming Proceedings".
  Searching should be easier than retrieving the entire package every
  time you want to locate a particular article.

  Send comments and bug reports to [email protected].

Machine Learning Algorithms Implemented in Prolog:

  In 1988 the Special Interest Group on Machine Learning of the German
  Society for Computer Science (GI e.V.) decided to establish a library
  of PROLOG implementations of Machine Learning algorithms. The library
  includes - amongst others - PROLOG implementations of Winston's arch,
  Becker's AQ-PROLOG, Fisher's COBWEB, Brazdil's generation of
  discriminations from derivation trees, Quinlan's ID3, FOIL, IDT,
  substitution matching, explanation based generalization, inverse
  resolution, and Mitchell's version spaces algorithm.
  All algorithms are written in Edinburgh Prolog syntax. Most of the
  algorithms are copyleft under the GNU General Public License.
  The programs are currently available via anonymous ftp-server from
  the GMD:

       ftp.gmd.de:/gmd/mlt/ML-Program-Library/ [129.26.8.84]

  They are also available by surface mail from Thomas Hoppe,
  Projektgruppe KIT, Technische Universitaet Berlin, Franklinstr. 28/29,
  10629 Berlin, Germany. Files will be distributed via MS-DOS formated
  3.5 inch floppy (double, high and extra-high density),  which should
  be included with your request. You can also get them by sending an email
  message to Thomas Hoppe (see below).

  Send additional PROLOG implementations of Machine Learning
  Algorithms, complaints about them and detected bugs or problems
  to Thomas Hoppe, <[email protected]>. Send suggestions and
  complaints about the ftp library to Werner Emde, Gesellschaft
  fuer Mathematik und Datenverarbeitung, Bonn, <[email protected]>.


Natural Language Processing in Prolog:

  The Prolog and DCG programs from Pereira and Shieber's book, "Prolog
  and Natural Language Analysis", are available by anonymous ftp from
  ftp.das.harvard.edu:/pub/shieber/pnla/. See the file README for the
  conditions under which the material is distributed. If you retrieve
  the files, please send an email message to the authors letting them
  know how you plan to use them. For further information, write to
  Fernando Pereira <[email protected]> or Stuart Shieber
  <[email protected]>.

Parser:
  A parser for standard Prolog text written in C is available by
  anonymous ftp from
     trappist.elis.rug.ac.be:/pub/prolog/
  It consists of only three modules (tokenizer, parser, and display
  routine) and an interface module to integrate it with an existing
  Prolog system. It is completely deterministic and about 10 times
  faster than O'Keefe's public domain parser written in Prolog.
  For more information, write to Koen De Bosschere <[email protected]>.

Partial Evaluation:

  Prolog code for the partial evaluator for the flowchart language
  described in Ch. 4 of "Partial Evaluation and Automatic Program
  Generation" by Jones, Gomard and Sestoft is available for anonymous
  ftp from
     ftp.diku.dk:/pub/diku/dists/jones-book/ch4_pl.tar.Z
  All three Futamura projections are implemented. The code has been
  tested under SWI Prolog 1.5 and 1.7 and should hopefully port to other
  prologs without too many problems.  For more information, please
  contact Zerksis Umrigar <[email protected]>.

Pleuk Grammar Development System:

  Pleuk is intended to be a shell for grammar development, in that many
  different grammatical formalisms can be embedded within it.
  Grammatical formalisms that currently work with Pleuk include CFG (a
  simple context-free grammar system), HPSG-PL (a system for developing
  HPSG-style grammars, produced at Simon Fraser University, Canada, by
  Fred Popowich, Sandi Kodric and Carl Vogel), Mike (a simple
  graph-based unification system, enhanced with additional operations
  for the treatment of free word order proposed by Mike Reape in various
  publications), SLE (a graph-based formalism enhanced with arbitrary
  relations in the manner of Johnson & Rosner and Doerre & Eisele.
  Delayed evaluation is used to compute infinite relations.  This system
  has been used for the development of several HPSG-style grammars) and
  Term (a term-based unification grammar system, originally developed
  for the support of Unification Categorial Grammar of Zeevat, Klein and
  Calder). Sample grammars are provided for all of these formalisms.
  Work continues apace on other formalisms, including Bob Carpenter's
  Ale system for typed feature structures, and Veronica Dahl's Static
  Discontinuity Grammars.

  Pleuk requires SICStus prolog version 2.1#6 or later, plus a variety
  of ancillary programs available free of charge from many FTP servers.
  Pleuk is available via anonymous FTP from the University of Georgia
  Artificial Intelligence FTP library
     ai.uga.edu:/pub/natural.language/
  as the files pleuk.1.0.tar.Z, pleuk.PSmanuals.tar.Z, and pleuk.README.
  Pleuk will also be available shortly from the Natural Language
  Software Registry, German Research Institute for Artificial
  Intelligence (DKFI), Saarbruecken.  For more information, send email
  to [email protected].

Prolog Repository:
  Established by Jocelyn Paine of Experimental Psychology, Oxford
  University in 1987. The current catalogue (January 1991) contains
  30 entries. For catalogue, queries and contributions contact POPX at:
     popx%[email protected] (internet) or
     [email protected] (janet)

  FTP access is available through the Imperial College archive at
     src.doc.ic.ac.uk:/packages/prolog-pd-software/  [146.169.2.10]
  This is actually a link to the directory
     /computing/programming/languages/prolog/pd-software/

  To access it, cd to either of the above directories via
  anonymous ftp. The file README gives a brief summary of the
  contents of the directory and CATALOGUE gives a (long!)
  description of each entry. Entries include the Logic Programming
  Tutor from Paine's book, the DEC-10 public-domain library, the
  Linger natural-language corrector, a simple object-oriented
  add-on for Prolog, graph utilities, among other things.

  Files in the archive are also available on MS-DOS floppies for a
  nominal fee to cover the cost of floppies, postage, and packing.

Prolog to SQL Compiler:
  The Prolog to SQL Compiler translates database access requests,
  which consist of a projection term and a database goal, to the
  appropriate SQL query. The compiler is written in standard Edinburgh
  Prolog and has been ported to a number of Prologs. The code posted to
  comp.lang.prolog works in ECRC's SEPIA Prolog, but should be easily
  ported to other Prologs. A detailed tech report on the implementation
  is available by email from [email protected] (include
  your full postal address). The compiler is copyright, but may be used
  free of charge for non-commercial purposes and redistributed provided
  the copyright notice is retained intact.

PSI:
  PSI is a handy system for the management and retrieval of your
  personal data, be it addresses, CD collections, or bibliographic
  references. It is intended for the non-commercial user. It may not be
  as full-fledged as some data-base systems, but has some features that
  you won't find in most commercial systems. Also, you may find it
  easier to set up and faster to use. PSI is useful for a broad range of
  data. Indexing with descriptors makes searching for the data you need
  fast, and the interface to other data-base formats (import and export)
  is quite powerful. PSI was written in LPA MacProlog and is a "genuine
  'double clickable' Mac application". PSI runs on all Macs with System
  6 or 7 in 1MB of main memory. As LPA MacProlog isn't yet 32-bit clean,
  PSI isn't either. Extensive documentation and some examples are
  included. PSI is available by anonymous ftp from
  sumex-aim.stanford.edu:/info-mac/app/ as the file psi-23.hqx. It
  was also available on a recent Nautilus CD-ROM and will be on the
  first Info-Mac CD-ROM.

Queens and Knights:
  Queens and Knights are favorite problems for Prolog programmers.
  A collection of several implementations is available by anonymous
  ftp from sics.se:/pub/muse/queensANDknights.tar.Z.uue
  Write to Roland Karlsson <[email protected]> for more information.

Rubik's Cube:
  Amzi! Inc., the creators of Cogent Prolog, have made sources to Cube Solver
  II available from their ftp site, ftp.std.com:/vendors/amzi/.  It is
  also available from the Prolog Repository at CMU, in
  ftp.cs.cmu.edu:/user/ai/lang/prolog/code/fun/rubik/.  This Prolog
  program solves Rubik's Cube.  The sources include a simple scrolling
  interface that should work in any Edinburgh standard Prolog.  Also
  included is a ready-made executable for 386 and 486 PCs; it was
  implemented using Cogent Prolog.  For more information, write to Amzi!
  Inc. (formerly Amziod) <[email protected]>, 40 Samuel Prescott Dr.,
  Stow, MA 01775, Tel: 508-897-7332. Fax: 508-897-2784. Their Web page is
     http://world.std.com/~amzi/

SEL:
  SEL is a declarative set processing language. Its main features are
  subset and equational program clauses, pattern matching over sets,
  support for efficient iteration and point-wise/incremental computation
  over sets, the ability to define transitive closures through circular
  constraints, meta-programming and simple higher-order programming, and
  a modest user-interface including tracing. The language seems
  well-suited to a number of problems in graph theory, program analysis,
  and discrete mathematics. The SEL compiler is written in Quintus
  Prolog and the run-time system is written in C. It generates WAM-like
  code, extended to deal with set-matching, memoization, and the novel
  control structure of the language. SEL is available by anonymous FTP
  from ftp.cs.buffalo.edu:/users/bharat/SEL2/.  The FTP release comes with a
  user manual, bibliography of papers (including .dvi files), several
  sample programs, and source code. For further information, write to
  Bharat Jayaraman <[email protected]>.

A public-domain WAM emulator, written in C++ by Herve Touati, is
available by anonymous FTP from gatekeeper.dec.com:/pub/plan/prolog/ucb/.

----------------------------------------------------------------
Subject: [1-6] Free Object-Oriented Systems for Prolog

OL(P), Object Layer for Prolog, is an object-oriented extension to
Prolog.  It provides an object-oriented structuring and reuse
mechanism for Prolog in a manner that preserves performance and
semantics. The object-oriented layer is compiled into Prolog without
introducing any side-effects.  OL(P) takes the view of objects as
collections of predicates (called methods).  To Prolog, OL(P) 1.1 adds
objects with methods, data encapsulation, instances, and multiple
inheritance. Object methods can access Prolog predicates and vice
versa. The OL(P) incremental compiler translates OL(P) programs to
Prolog programs that don't need runtime interpretation (e.g., no
search is needed for inheritance).  OL(P) 1.1 comes with prepared
installation for SICStus Prolog and QUINTUS Prolog (both on UNIX),
documentation, simple built-in project management, some libraries,
and example programs. The source is included, so you can port OL(P)
to different platforms, different Prolog systems, and different
logic programming languages. OL(P) is available by anonymous ftp
from parcftp.xerox.com:/ftp/pub/ol/ [13.1.64.94]. Written by Markus
P.J. Fromherz <[email protected]>.

LogTalk is a free object oriented extension to the Prolog programming
language. It is based on a reflexive architecture intended to provide
an open system, easily tailored to user needs. It implements simple
inheritance and a delegation mechanism. Logtalk enables users to
define new types of slots, each one with its own semantics, that can
be reused by any object. It includes features for event-based
programming. This enables the creation of elegant solutions to
represent and maintain relations that restrict the internal state of
participating objects. Logtalk (and more information about it) is
available using the URL
  http://cygnus.ci.uc.pt/logtalk/logtalk.html
For more information, write to the author Paulo Moura <[email protected]>.

See Common ESP (CESP) in [2-1] and BeBOP in [2-3].

----------------------------------------------------------------
Subject: [1-7] Commercial Object-Oriented Systems for Prolog

LAP is an object-oriented system by Elsa. For more information, write
to Elsa Software, La Grange Dame Rose, 6 ave du Marechal Juin, 92366
Meudon-La-Foret Cedex, France, call +33 (1) 46 30 24 55, fax +33 (1)
46 30 55 26, or send email to [email protected].

SPIRAL is an object oriented system by CRIL for Sun3 and Sun4 under
Unix. For more information, write to CRIL, Conception et Realisation,
Industriel de Logiciel, 146 bd de Valmy 92707, Colombes Cedex, France,
call +33 1 47 69 53 67, or fax +33 1 47 69 53 99.

Quintus Prolog (see [2-2]) has an object system documented in
  http://www.quintus.com/prolog/obj.html
and in Peter Schachte's home page,
  http://muse.cs.mu.oz.au/%7Epets/
Quintus objects are updateable data structures whose slots can contain
Prolog terms. (For increased efficiency, a slot can be constrained to
hold a specific C-style type.) Because the objects are updateable,
they offer and efficient alternative to storing modifiable data in the
Prolog database.

See also LPA Prolog ++ in [2-2].

----------------------------------------------------------------
Subject: [1-8]  The Prolog 1000 Database

The Prolog 1000 is a database of real Prolog applications being
assembled in conjunction with the Association for Logic Programming
(ALP) and PVG. The aim is to demonstrate how Prolog is being used in
the real world and it already contains over 500 programs with a total
of well over 2 million lines of code. The database is available for
research use in SGML format from the Imperial College archive
  src.doc.ic.ac.uk:/packages/prolog-progs-db/prolog1000.v1.gz
If you have or know about a program that might qualify for inclusion,
send an email message to Al Roth ([email protected]) for an
electronic entry form which only takes a few minutes to complete. Or
write to Prolog 1000, PO Box 137, Blackpool, Lancashire, FY2 0XY,
U.K., Fax: +44 253 53811 Telephone: +44 253 58081. (Floppy disks for
PC or Mac in text form are also welcome, and paper entries may also be
sent). Queries may also be addressed to: Chris Moss
([email protected]), Leon Sterling ([email protected]).

----------------------------------------------------------------
Subject: [1-9] X-Windows Interfaces

PI:
  PI is an interface between Prolog applications and the X Window System
  that aims to be independent from the Prolog engine, provided that it
  has a Quintus-style foreign function interface (such as SICStus, YAP).
  It is mostly written in Prolog and is divided in two libraries: (1)
  Edipo, a low-level interface to the Xlib functions, and (2) Ytoolkit,
  a high-level user interface toolkit that allows you to create and
  manage graphical objects, define new classes of objects, and handle
  user interaction. PI is available by anonymous ftp from
  ftp.ncc.up.pt:/pub/prolog/pi_1.2.tar.gz and includes documentation
  and some demos. Also see ytoolkit.tar.Z. PI has been tested in
  Quintus Prolog 3.1.1 and SICStus 2.1 #8. Send questions, comments,
  and bug reports to Ze' Paulo Leal, Universidade de Porto, Portugal,
  <[email protected]>.

XWIP:
  ftp.x.org:/contrib/xwip.tar.Z  (formerly export.lcs.mit.edu)
  ftp.uu.net:/X/contrib/xwip.tar.Z

  XWIP is an X Windows interface for PROLOG.

XPCE:
  XPCE is an object-oriented X-window interface toolkit for symbolic
  programming languages (Prolog and Lisp), offering a high level of
  abstraction for communication with X11, Unix processes, Unix
  networking facilities (sockets) and Unix files. XPCE's built-in
  classes (about 150) are mostly written in C.  The XPCE/Prolog
  interface allows the user to create and manipulate instances of these
  classes.  The user can also create new XPCE classes from Prolog.
  XPCE's window related classes provide various styles of menus,
  primitive graphical objects, compound graphical objects and Emacs
  oriented programmable text manipulation windows. The distribution
  contains several demo programs, including a diagram drawing tool
  (PceDraw), an animation demo, an Epoch-like editor, a graphical
  interface to Unix ispell, and an online hyper-text manual for XPCE
  itself.  A demo version of XPCE/SWI-Prolog for Linux may be obtained
  by anonymous ftp from swi.psy.uva.nl:/pub/xpce/linux/ [145.18.114.17].
  The non-demo versions (for SWI-Prolog, SICStus Prolog, Lucid Common
  Lisp and LispWorks) require filling out a license and paying a fee
  (see the file pub/xpce/INFO).  To be added to the mailing list
  [email protected] send mail to [email protected]. Send
  bugs to [email protected].

  ProWindows 3 is a commercial version of XPCE for Quintus Prolog.
  For further information, write to Simon Heywood, AI International Ltd,
  The Chapel, Park View House, 1 Park View Road, Berkhamsted, Herts,
  HP4 3EY, phone +44-(0)442-876722 (Sales Hotline +44 (0)442 876448),
  fax +44-(0)442-877997, or send email to [email protected].

ProTcl:

  ProTcl (pronounced pro-tickle) is a Prolog interface to Tcl/Tk. It has
  a very simple and lightweight interface, which allows one to evaluate
  Tcl expressions from Prolog. It defines the tcl_eval/1,2 predicate
  which passes the Tcl expressions to the Tcl interpreter. It has been
  tested on ECLiPSe and SICStus, on a Sparc 10. ProTcl is available
  by anonymous ftp from
     ftp.ecrc.de:/pub/eclipse/progs/protcl/
  The ProTCL home page is
     http://www.ecrc.de/eclipse/html/protcl.html
  Send comments and suggestions to Micha Meier <[email protected]>.

----------------------------------------------------------------
Subject: [1-10] Is there a straight-forward way of compiling Prolog to C?

Two methods of compiling Prolog to C have been reported in the
literature:
  -  WAM-based approaches
  -  Continuation-based approaches

The WAM-based approach compiles Prolog programs into a sequence of C
function or macro calls to WAM instructions. A brief description of
this method and some results are given in the paper:

  Michael R. Levy and R. Nigel Horspool, "Translating Prolog to C: a
  WAM-based Approach", in Proceedings of the Second Compulog Network
  Area Meeting on Programming Languages, and the Workshop on Logic
  Languages in Pisa, May 1993. (Available by anonymous ftp from
  csr.uvic.ca:/pub/mlevy/.)

The best tutorial for writing a WAM-based compiler or WAM emulator is
Hassan Ait-Kaci's book, "Warren's Abstract Machine: A Tutorial
Reconstruction" (see [1-3] above).

A "quick-and-dirty" method is to implement the WAM functions as described
in Ait-Kaci's tutorial, to label each call with a C case label, and then throw
a giant switch(P) statement around the entire sequence of calls, where P
is the WAM program counter.  On return from any instruction that modifies
P, a "goto Start" must be inserted. (This method was posted by Rob
Scott, <[email protected]>, based on the JANUS papers by Saraswat.)

This strategy will work, but does not allow you to modularize your
prolog program. Predicates in prolog seem to generate 8 to 15 WAM
instructions per clause, so (assuming very roughly a clause per
line)you might expect your 1,000 line program to expand to a switch
statement containing up to 15,000 lines. Some C compilers can't handle
such a big switch statement.

Levy and Horspool solve this problem by compiling each Prolog
predicate to a seperate C function. A dispatch loop mechanism is used
to call the C functions. C switch statements are used only inside the
functions.  A predicate that calls another predicate sets P to contain
the address of the C function that implements the called predicate,
(and sets another register called W in their scheme) and then returns
to the dispatcher instead of calling the predicate. This bypasses the
C run-time stack.  This lets one exploit WAM optimizations (like LCO)
and yet retain the ability to create many modules. Their system
performs well when compared with byte-code compilers, but translated
code runs slower than code produced by native code compilers.  On the
other hand, it outputs portable ANSI C that can run on any machine
with a C compiler.

Henderson, Somogyi, and Conway's paper "Compiling Logic Programs to C
using GNU C as a portable assembler"
  htpp://www.cs.mu.oz.au/mercury/papers.html
mentions some optimizations to the above approach, and also describes
another approach used in the Mercury compiler which achieves
efficiency comparable to direct native-code generation by using GNU C
extensions.  They use conditional compilation (#ifdef) to enable use
of these extensions, so the generated C code will still run on other
ANSI C compilers, although the GNU C extensions improve performance
for Mercury by nearly a factor of three.

Other approaches to translating to C use continuations. The idea here
is to translate every Prolog predicate to a C function that has
an additional argument, namely a continuation function. If the function
fails, it simply returns, but if it succeeds, it executes the continuation.
When the function regains control from the continuation, it can then try
to generate a new solution. Here are two references
that describe systems built using continuations:

  J. L. Weiner and S. Ramakrishnan, "A Piggy-Back Compiler for Prolog",
  in Proceedings of SIGPLAN T88 Conference on Programming Language
  Design and Implementation, Atlanta, Georgia, 1988, pages 288-296.

  J. L. Boyd and G. M. Karam, "Prolog in C", Carleton University,
  Ottawa, 1988.

Oliver Ridoux <[email protected]> reports that a
continuation-based approach works well when used to compile
LambdaProlog. His scheme translates every predicate into a function
that uses and modifies the success and failure continuations, with
recursion in the predicate becoming iteration in the continuation
passing mechanism. Inside the function one uses whichever intermediate
machine one fancies. Clauses within the function can be either the
branches of a switch statement or simply labelled when using a C
system that can store labels. This approach can still generate
monstrous C programs that blow up the C compiler, but the C programs
aren't as large as those generated by a one module to a function
scheme. Approaches that replace recursion in a predicate with
recursion in a function tend to overload the C stack and lead to
sloppy memory management.  Two technical reports describing Ridoux's
approach are available by anonymous ftp from
  ftp.irisa.fr:/local/
as pm/*.ps.Z and mailv06/*.ps.Z.

Michael Covington <[email protected]> points out that a very simple
approach is to write a Prolog interpreter in C, then store the Prolog
program in that program's data! This will, of course, execute slowly.
One might imagine all sorts of other schemes. For example, a query
could be treated as a stack of "suspensions" (with the left-most goal
on top).  The top suspension is executed by selecting the appropriate
clause (possibly using indexing), and then, if necessary, pushing new
suspensions on the stack (the body of the clause whose head unified
with the current suspension).

Another question to ask is this: Is there any reason why you should want to
convert Prolog to C at all? George Saab of Quintus Corp. pointed out that,
with Quintus Prolog, you can create a standard .o file from a Prolog file,
which can then be linked with your other .o files to create an executable.
What's more, your Prolog code can be called from C code and vice versa.

On ther hand, the advantage of distributing "Prolog objects" as C rather than
o files is portability.

M. Gaspari  and G. Attardi describe an approach to translating Prolog to C
based on the provision of a common runtime architecture. This is
described in

  G. Attardi and M. Gaspari, "Multilanguage Interoperability", in
  Proceedings of The 3rd International Symposium, PLILP 91,
  Springer Verlag, LNCS #528, 1991.

[Note: Thanks to Michael Levy, Department of Computer Science,
University of Victoria, <[email protected]>, for writing this section.]

----------------------------------------------------------------
Subject: [1-11] WAM emulators and tracers

Johan Bevemyr's Luther-based WAM-tracer is available by anonymous ftp
from Uppsala University in Sweden. It includes a simple compiler from
Prolog to WAM code and a low-level WAM code tracer written in
emacs-lisp.  The tracer splits the screen into regions to show
data-areas, registers, and so on. You can then step through running
the code. The tracer is available by anonymous ftp from
  ftp.csd.uu.se:/pub/WAM-tracer/luther.tar.Z
Documentation on the tracer is included in the distribution.  The
emulator is in the /pub/WAM-emulator/ directory (and runs in SICStus
Prolog).  For more information, contact Johan Bevemyr
<[email protected]> or <[email protected]>.

----------------------------------------------------------------
Subject: [1-12] What is the Basic Andorra Model and AKL?

The Basic Andorra Model is a way to execute definite clause programs
that allows dependent and-parallelism to be exploited transparently.
It also supports nice programming techniques for search programs.  The
idea is to first reduce all goals that match at most one clause.  When
no such goal exists, any goal (e.g., the left-most) may be chosen.
The BAM was proposed by David H. D. Warren, and his group at Bristol
has developed an AND-OR parallel implementation called Andorra-I,
which also supports full Prolog.  See, for example,

  Seif Haridi and Per Brand, "Andorra Prolog, an integration of Prolog
  and committed choice languages", in Proceedings of the FGCS 1988,
  ICOT, Tokyo, 1988.

  Vitor Santos Costa, David H. D. Warren, and Rong Yang, "Two papers on
  the Andorra-I engine and preprocessor", in Proceedings of the 8th
  ICLP. MIT Press, 1991.

  Steve Gregory and Rong Yang, "Parallel Constraint Solving in
  Andorra-I", in Proceedings of FGCS'92. ICOT, Tokyo, 1992.

AKL (Andorra Kernel Language) is a concurrent constraint programming
language that supports both Prolog-style programming and committed
choice programming.  Its control of don't-know nondeterminism is based
on the Andorra model, which has been generalised to also deal with
nondeterminism encapsulated in guards and aggregates (such as bagof)
in a concurrent setting. See, for example,

  Sverker Janson and Seif Haridi, "Programming Paradigms of the Andorra
  Kernel Language", in Proceedings of ILPS'91. MIT Press, 1991.

  Torkel Franzen, "Logical Aspects of the Andorra Kernel Language", SICS
  Research Report R91:12, Swedish Institute of Computer Science, 1991.

  Torkel Franzen, Seif Haridi, and Sverker Janson, "An Overview of the
  Andorra Kernel Language", In LNAI (LNCS) 596, Springer-Verlag, 1992.

  Sverker Janson, Johan Montelius, and Seif Haridi, "Ports for Objects
  in Concurrent Logic Programs", in Research Directions in Concurrent
  Object-Oriented Programming, MIT Press, 1993 (forthcoming).

The above papers on AKL are available by anonymous ftp from
  sics.se:/pub/ccp/papers/
An (as yet non-released) prototype implementation of AKL is available
for research purposes (contact [email protected]).

----------------------------------------------------------------
Subject: [1-13] What is Constraint Logic Programming?

Constraint Logic Programming (CLP) augments Prolog by adding
constraints to the clauses. The CLP implementation solves goals in the
same manner as Prolog, but also merges the constraints associated with
each rule. If the merge succeeds, the successful goal and the
corresponding constraints are returned. If, however, the constraints
are mutually exclusive, the solution fails.

There is an extensive wide-ranging archive of material relating to
constraint logic programming at
  http://web.cs.city.ac.uk/archive/constraints/constraints.html

----------------------------------------------------------------
Subject: [1-14] How do you write portable programs in Prolog?

The de-facto standard syntax for Prolog is known as the Edinburgh
standard. It is based on the syntax of DEC-10 Prolog, an early Prolog
implementation developed at the University of Edinburgh.
See question [1-1] for information on the draft ISO standard for
Prolog.

Unfortunately, not every Prolog implementation is Edinburgh compatible.
There also isn't any notion of read-conditionalization, like #+ and #-
*features* in Common Lisp.

One option is to use the C preprocessor on Prolog code before loading
it into Prolog.  Or you could use term-expansion to roll your own
conditional compilation system. Term expanding a clause to []
effectively discards it.

Another possibility is to conditionalize the execution instead of the
compilation. The user would have to uncomment a line like one of the
following,
  % this_is(quintus).
  % this_is(sicstus).
and the code would have to test for the proper literal
  a :- this_is(quintus), blah, blah, blah.
  a :- this_is(sicstus), blah, blah, blah.
at a slight cost in efficiency. (If you first feed the program through
a general partial evaluator, you'll get an equivalent program without
the inefficiency. Partial evaluation is in some sense a more powerful
and semantically cleaner form of source preprocessing. Given
       <head> :- <condition>, <rest of body>.
If <condition> is always false, we can safely drop the clause. If
<condition> is always true, we can drop it from any clauses that
include it.)

Another possibility is Richard O'Keefe's environment package for
Prolog. It was posted to comp.lang.prolog on 1-SEP-94; a copy can be
found in
  ftp.cs.cmu.edu:/user/ai/lang/prolog/code/ext/env/env.pl

----------------------------------------------------------------
Subject: [1-15] World-Wide Web (WWW) Resources

The World Wide Web (WWW) is a hypermedia document that spans the
Internet.  It uses the http (HyperText Transfer Protocol) for the
light-weight exchange of files over the Internet.  NCSA Mosaic is a
World Wide Web browser developed at the National Center for
Supercomputing Applications (NCSA).

Mosaic's popularity derives, in part, from its ability to communicate
using more traditional Internet protocols like FTP, Gopher, WAIS, and
NNTP, in addition to http. Mosaic can display text, hypertext links,
and inlined graphics directly. When Mosaic encounters a file type it
can't handle internally, such as Postscript documents, mpeg movies,
sound files, and JPEG images, it uses an external viewer (or player)
like Ghostscript to handle the file. Mosaic also includes facilities
for exploring the Internet. In other words, Mosaic is an multimedia
interface to the Internet.

The hypertext documents viewed with Mosaic are written in HTML
(HyperText Markup Language), which is a subset of SGML (Standard
Generalized Markup Language).  All that is needed is just a few more
improvements, such as the ability to format tables and mathematics,
and a WYSIWYG editor, for HTML to greatly facilitate electronic
journals and other publications.

NCSA Mosaic for the X Window System is available by anonymous ftp from
  ftp.ncsa.uiuc.edu:/Mosaic/
as source code and binaries for Sun, SGI, IBM RS/6000, DEC Alpha OSF/1, DEC
Ultrix, and HP-UX. Questions about NCSA Mosaic should be directed to
[email protected] (X-Windows version), [email protected]
(Macintosh), and [email protected] (Microsoft Windows).

An automatically generated HTML version of the PRG is accessible by
WWW as part of the AI-related FAQs Mosaic page. The URL for this
resource is
  http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/top.html
The direct URL for the PRG is
  http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html

The remainder of this section lists WWW resources of interest to Prolog
and logic programming researchers, students, and practitioners.

Constraints:

  The newsgroup comp.constraints has an ftp archive and WWW home page:
     ftp.cs.city.ac.uk:/pub/constraints
     http://web.cs.city.ac.uk/archive/constraints/constraints.html

Logic Programming:

  http://www.comlab.ox.ac.uk/archive/logic-prog.html
  Jonathan Bowen <[email protected]>

  http://www.watson.ibm.com/watson/logicpgm/
  [Logic Programming at IBM Research]
  Peter Reintjes <[email protected]>

  http://ps-www.dfki.uni-sb.de/~vanroy/impltalk.html
  ["Issues in Implementing Logic Languages" -- overview of
   state-of-art in Prolog implementation.]
  Peter Van Roy <[email protected]>

  http://www.informatik.uni-trier.de/~ley/db/index.html
  [Table of Contents from Conferences and Journals in the fields
   of database systems and logic programming.]
  Michael Ley <[email protected]>

  http://www.als.com/nalp.html
  Ken Bowen <[email protected]>

Abstract Interpretation for LP Bibliography:

  http://dept-info.labri.u-bordeaux.fr/~corsini/Public/Reports/abint-biblio.ps
  200 entries so far.
  Marc-Michel Corsini <[email protected]>

----------------------------------------------------------------
Subject: [1-16] Prolog Job Postings

The PROLOG-JOBS mailing list exists to help programmers find Prolog
programming positions, and to help companies with Prolog programming
positions find capable Prolog programmers. (Prolog here means Prolog-like
languages, including logic programming languages.)

Material appropriate for the list includes Prolog job announcements and
should be sent to [email protected]. Resumes should NOT be sent to
the list.

[Note: The 'ai+' part of the mailing list name is used for directing
submissions to the appropriate mail-server. The list is NOT restricted
to AI-related Prolog jobs -- all Prolog job announcements are welcome.]

As a matter of policy, the contents of this mailing list is
considered confidential and will not be disclosed to anybody.

To subscribe, send a message to [email protected] with
  subscribe prolog-jobs <First Name> <Last Name>, <Affiliation/Organization>
in the message body.

(If your mailer objects to the "+", send subscription requests to
"ai+query"@cs.cmu.edu, job announcements to "ai+prolog-jobs"@cs.cmu.edu,
etc.)

For help on using the query server, send mail to [email protected] with
  help
in the message body.

Job postings sent to the list are automatically archived in
  ftp.cs.cmu.edu:/user/ai/jobs/prolog/

If you have any other questions, please send them to [email protected]

----------------------------------------------------------------
Subject: [1-17] Is Prolog really used in Windows NT?

Yes.

For more information, see

  Dennis Merritt, "Extending C with Prolog", Dr Dobb's Journal,
  August 1994, pages 78-82 and 102, 104.

  D. Hovel, "Small Prolog and Windows NT Networking", Dr Dobb's Journal,
  August 1994, page 80.

----------------------------------------------------------------
Subject: [1-18] History of Prolog

Van Roy, Peter, "1983-1993: The Wonder Years of Sequential Prolog
Implementation," DEC Paris Research Laboratory, Research Report 36,
December 1993.

Kowalski, Robert A., "The Early Years of Logic Programming", CACM,
January 1988, pages 38-43.

Cohen, Jacques, "A View of the origins and development of Prolog",
CACM, January 1988, pages 26-36.

----------------------------------------------------------------
Subject: [1-19] The ISO Standard for Prolog and other Prolog standards

The ISO standard for Prolog is ISO/IEC 13211-1:1995. Copies can be
purchased from national standards bodies (e.g. ANSI, AFNOR, DIN).
It defines the core features of Prolog: part 2, in preparation,
will define modules. ISO does not currently make standards available
by anonymous FTP, but the 1993 draft ISO standard for Prolog is
available by anonymous FTP from
  ai.uga.edu:/pub/prolog.standard/ [128.192.12.9]
An unofficial summary of the ISO Prolog standard is available
from the same location as isoprolog.tex or isoprolog.ps.Z.  Send mail
to Michael Covington <[email protected]> for more information about
his summary of the standard.

A PostScript version of the August 1995 draft for Part 2 is
available from
  http://www.sju.edu/~jhodgson/x3j17.html

For more information about the ISO Prolog standardzation, write to
Roger Scowen, ISO/IEC JTC1 SC22 WG17 (Prolog) convener, 9 Birchwood
Grove, HAMPTON, Middlesex TW12 3DU, UNITED KINGDOM,
phone +44-181-979-7429, fax +44-181-287-3810,
or, preferably, send email to [email protected].

Richard O'Keefe's 1984 Prolog standard draft is available by anonymous
FTP from
  ftp.ecrc.de:/pub/eclipse/std/plstd.doc

----------------------------------------------------------------
Subject: [1-A] Acknowledgements

The original version of this guide (Version 0.6, Dec 11, 1991) was
compiled by Dag Wahlberg, Uppsala University, Sweden
<[email protected]>, and published in the 5(1) issue of the ALP
Newsletter (February 1992).  Other people who helped with the
compilation include Chris Moss <[email protected]>, Mats Carlsson,
SICS <[email protected]>, Michael A. Covington <[email protected]>,
Jocelyn Paine <[email protected]>, Per G. Bilse, PDC <[email protected]>,
David Cohen, BIM Systems Inc <[email protected]>, Mark Korsloot
<[email protected]>, and David W. Talmage
<[email protected]>.

Thanks also to Jamie Andrews <[email protected]>.

----------------------------------------------------------------
;;; *EOF*