Small Prolog


A small post just to break the blog hiatus. Once upon a time there was a Prolog interpreter that was used in the Windows NT kernel. You can read about it here. The code is in the public domain and years ago I had downloaded from the net. It seems that it took me close to 8 years to put it on GitHub, for software archaeologists to dig into if they like.





The process of finding explanations for observed facts. The generation of explanations.

[Simply Logical]

From the SWI-Prolog mailing list: “Coding Guidelines for Prolog“. There’s also interesting commentary on the list, but has not yet appeared in the list archives.

This is an incomplete list of books about Prolog that can be found online:

I am counting on readers’ comments to grow it.

Update by ΤΖΩΤΖΙΟΥ:

For those who have not heard Greenspun’s Tenth Rule, it states that:

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

By the way, Greenspun‘s rules 1 to 9 do not exist.

Seven months ago, during a discussion about Prolog, I asked Ozan S. Yigit to reformulate Greenspun’s tenth rule for Prolog. Oz replied:

Any sufficiently complicated modern program contains a buggy, informal implementation of prolog that casual observers confuse with lisp.

Just hours earlier I was basically a listener in a discussion that involved NoSQL. While clearly I am not a NoSQL advocate, I am no hater either, but what I heard lead me to the following reformulation of Greenspun’s rule, this time involving the relational model:

Those who blindly adopt #NoSQL will discover a variation of Greenspun’s tenth rule

I am sure that many other variations exist. In fact the Wikipedia page on Greenspun’s Tenth Rule contains a Prolog variation similar to Ozan’s and an Erlang version. So if you know of (or can make up) any other, please post it here (or somewhere).

I have a dream…


A Simple Dream

Everyone working in configuration management would like to find a way to simplify and perhaps obsolete this dreary job. The ‘impossible dream’ is that everyone writing configuration scripts can use the work of the whole community instead of re-inventing the wheel for each site and purpose. But so far, while configuration tools proliferate, it has been difficult to convince people to distribute and maintain reusable scripts for configuring systems and implementing common services. There seem to be “too many options,” “too many system dependencies,” and “too many site-specific assumptions.”

This was written in 1999. Then the XML holy grail crap became popular and managing organized complexity became even more painful.

Hassan Aït-Kaci has written the excellent tutorial on the WAM entitled Warren’s Abstract Machine: A Tutorial Reconstruction. This book is out of print (I consider myself one of the lucky ones to have purchased a copy). For years it was available at vanx.org, but now the domain seems parked.

I had downloaded a copy of the files, and now the electronic version of the book has a new home at: http://wambook.sourceforge.net

Update 2013/04/13: Also available on https://github.com/a-yiorgos/wambook