<p><a href="http://arxiv.org/abs/0911.2899" rel="noreferrer">Coding guidelines for Prolog</a> by Covington <em>et al.</em> is very recent; in fact, I believe it hasn't even been formally published yet. There was some discussion about it on the <a href="https://lists.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog" rel="noreferrer">SWI-Prolog mailing list</a> some six weeks ago.</p>
Reference for Prolog Best Practices?
<p>Is there a (relatively) current reference for best practices in Prolog?  One suitable for giving to commercial Prolog developers who have not studied logic programming or advanced texts like "The Craft of Prolog"?</p>

<p>There are plenty of general tutorials but the only one on best practices I could find was this one from 1994:</p>

<p><a href="http://www.cs.auckland.ac.nz/~j-hamer/07.363/prolog-for-se.html" rel="nofollow noreferrer">http://www.cs.auckland.ac.nz/~j-hamer/07.363/prolog-for-se.html</a></p>

<p>There's also the individual question on comp.lang.prolog or here like the following:</p>

<p><a href="https://stackoverflow.com/questions/3014933/prolog-best-practice-checking-if-a-variable-is-already-bound">Prolog Best Practice: checking if a variable is already bound.</a> </p>

<p>But nothing more comprehensive, current, and suitable to the commercial developer.</p>

<p>This issue came up during an interview for a job that would require formal mentoring and code reviews for beginner to intermediate Prolog developers.  Working as an experienced Prolog contractor, I frequently advised other developers who had advanced knowledge of their product and its domain, but were self-taught or who had limited Prolog training.  But the mentoring was on an ad hoc basis, responding to their particular day-to-day issues.</p>

<p>Anyway, I've been away from Prolog development for a while and the interviewers question got me thinking that there should be such a reference.  If there isn't one out there, I will likely create it myself if I get this job.</p>