Talk:Prolog

From Wikipedia, the free encyclopedia

This is the talk page for discussing improvements to the Prolog article.

Article policies
This article is within the scope of Computing WikiProject, an attempt to build a comprehensive and detailed guide to computers and computing. If you would like to participate, you can edit the article attached to this page, or visit the project page, where you can join the project and/or contribute to the discussion.
B This article has been rated as B-Class on the quality scale
??? This article has not yet received an rating on the importance scale.
Prolog was a good article nominee, but did not meet the good article criteria at the time. There are suggestions below for improving the article. Once these are addressed, the article can be renominated. Editors may also seek a reassessment of the decision if they believe there was a mistake.

Reviewed version: October 17, 2008

Contents

[edit] Focus

I found one basic flaw : you speak about some side effects caused by predicates. At that point it should be mentioned that the raw Prolog DOES NOT support side-effects predicates, at least it wasn't designed to. When you describe some programming language speak about essensials, not the strange details, i don't know but many of the articels on wiki are similar quality, too many redundant details are attached --- it shouldn't be a proze !!!

First of all, Prolog is an ISO-standardized programming language, and even plain ISO-Prolog has predicates with side-effects. Second, the article has changed considerably, and I hope your main point (speaking more about essentials) is adequately addressed.

Which of the Prologs are open source and support Unicode?

Gnu and swi at least should be. Support Unicode where? In strings (probably all), symbols (probably none)? blades
SWI supports Unicode in strings and symbols. --134.58.253.114 08:27, 27 July 2005 (UTC)

[edit] Good article

I just wanted to say, I really like the example-driven style of this article, and I find the intro very accurate. Good work to the editors. Deco 03:27, 17 Nov 2004 (UTC)

I agree, this article was the best starting point for me picking up this new language, which is nothing like anything I've seen before coming from a C++/Java background. Student 04:20, 15 October 2005 (UTC)

[edit] Turing completeness

I have a question: does the fact that Prolog is restricted to Horn clauses have a consequence on its generality, meaning, does it follow that Prolog is not equivalent to a Turing machine? 81.63.124.173 23:58, 2 November 2005 (UTC)

No, Prolog is Turing-complete. --Saforrest 05:19, 27 January 2006 (UTC)

[edit] Opening Wording

I really don't like the implication of part of the opening paragraph: "It was created by Alain Colmerauer and Robert Kowalski around 1972 as an alternative to the American-dominated Lisp programming languages."

Prolog wasn't built as an alternative to Lisp and in definatly not because of American domination of Lisp. The two are simply different languages. Lisp is based around list processing and it's AI uses and Prolog is centered around logical constructs (which may feature lists heavily and also has AI applications), but that doesn't mean they are alternatives or were intentionally built as alternatives. Canderra 20:25, 30 May 2006 (UTC)

[edit] GA Consideration

I've decided not to speedy fail the article because I do think you have a good 3-5 days before a reviewer would come to do a full review. However the article currently would not pass Criteria 2b of the WP:WIAGA. I encourage the editors to work on implementing the needed cites so that it has a chance of passing GA consideration. Agne 06:47, 17 October 2006 (UTC)

[edit] Reasons for not promoting

Hi all,

I've decided not to promote this article for two reasons:

Firstly, parts of the writing could use improvement. Two phrases in a row in brackets as is the case for, "(especially natural language processing, which it was originally designed for). (The original goal was to provide a tool for computer-illiterate linguists.)", hurts the article's readability.

Secondly, I feel the Data types section is weak. Part of the problem is that readers start to read it without much discussion of what Prolog is but I am also concerned about subsections such as the Numbers one which simply reads, "Most Prolog implementations do not distinguish integers from real numbers."

Cedars 10:05, 17 October 2006 (UTC)

The data types section was indeed extremely flawed. The ISO standard for Prolog prescribes floats and ints; many implementations go beyond that by providing unbounded integers and rational numbers in addition. I corrected this and several other misconceptions.

[edit] Philippe Roussel

Philippe Roussel is described in the reference "The Birth of Prolog" (by Alain Colmerauer and Philippe Roussel) as being the one that choosed the name Prolog as an abbreviation for “PROgrammation en LOGique”. I corrected this in the article where it said PROLOG was taken from the English word "programming in logic". I also added Philippe Roussel as one of the designers of Prolog, since this reference clearly points it to be. --Nuno Morgadinho 12:08, 12 November 2006 (UTC)

[edit] Free PROLOG distribution missing

There is a free prolog implementation missing in the article : Arity Prolog for Windows, it can be downloaded from www.arity.com It uses an old text based user interface (for creating program code text files) with good debug tool, offers good speed, simple and solid operation for 32bit systems.

Portability : It's Edingburg like, not ISO. Doesn't support other operating systems but interpretation/compilation in SWI-PROLOG for example is direct, unless you use many specific Arity commands like local & global counters, the [! !] operator (works like once/1 SWI-PROLOG operator), etc. all very handy but specific.

Edgardo Garcia

[edit] Oopsie

Hi all, I just added a 'more interesting' example to the intro. part, but on saving, I realize that the article itself goes on to introduce rules anyway. I suggest that the Programming In Prolog section is revised, maybe trashing the 'Extra-logical' subsection, and maybe the whole 'Programming In Prolog' section as it does seem to be a rather bumpy obstacle to getting into the meat of the article. Sweavo 14:53, 22 June 2007 (UTC)

Thanks, I've now merged rule and fact explanations and done away with the extra-logical subsection: Only write/1 is extra-logical in that section, not backtracking etc. I've also changed back is_cat/1 to cat/1: Prolog built-in predicates like integer/1 are not called "is_integer/1" either.

[edit] See Also

I added a *See Also section* of WP links because of the significance of typed prolog variants in the evolution of Oz and Alice; the others are these as *See Also* usually covers related/alternative/other-than-this links in other WP CS articles. I didn't think to check for a reference to Peter van Roy's excellent CTM book from MIT Press which is so even-handed in its treatment of Prolog's strengths and weaknesses I will add a link to YProlog when it becomes available Prolog/V should be restored to Squeak Smalltalk 3.10

[edit] Data types section

I cleaned up the data types section so that it is readable to someone who does not already know Prolog. When I first tried to learn Prolog I came to this page, and found myself cursing and swearing at the incomprehensible and grossly incomplete definitions. Now it has better examples and is accurate and understandable, at least to me. Xezlec (talk) 01:12, 25 December 2007 (UTC)

[edit] "Too Short" Intro

I've extended the intro in the hopes that someone will see fit to remove the "too short" tag. I'm well aware I didn't do the most amazing job, but it was the best I could do. Please revise and/or comment on it as you see fit. Xezlec (talk) 01:12, 25 December 2007 (UTC)

Yep, intro's better now. Could do with some additional work on summarising the article, but it's not woefully incomplete now. Chris Cunningham (talk) 12:09, 25 December 2007 (UTC)
Added more intro, to capture more of the main article, but also to set more context for those entirely unfamiliar with Prolog. The new parts could still use some references, e.g. pointing to entries in the "References" section. Thron7 (talk) 15:26, 7 January 2008 (UTC)
Thanks. I've trimmed this back a little, so as to present only what is reallyrequired to provide an overview and to avoid some repetition. I've removed the tag. As for references, the Wikipedia Manual of Style does not mandate that article leads contain inline citations so long as the points that it makes are adequately covered (and referenced) in the article body itself. So I think we're okay without them. Chris Cunningham (talk) 15:36, 7 January 2008 (UTC)

[edit] functor arity

I agree with the suggestion to remove complicated arities such as "/2". These are an unnecessary complication in an introductory article and are sure to put people off Prolog. Logperson (talk) 17:05, 21 January 2008 (UTC)

Agreed. We should endeavour not to smother the reader with less essential information. Chris Cunningham (talk) 17:50, 21 January 2008 (UTC)
I exaggerated when I commented that the use of arities makes the article unreadable. I should have said only that it makes it unnecessarily complicated. Explicit arities are needed when there are ambiguities. I don't see that there are ambiguities here. Also, the use of arities in the current version is not consistent. Why use them in some places and not in others, unless of course there would be ambiguities without them.
Logperson (talk) 13:06, 22 January 2008 (UTC)
After some more thought I agree that the arities are not needed and should be removed from the article text. (I don't think that arities are "sure to put people off Prolog", though.) —Tobias Bergemann (talk) 14:23, 22 January 2008 (UTC)
I disagree completely. The arities are essential, since they are needed to uniquely identify the predicates. For example, conjunction is ,/2, and not ,/3 or ,/4. Also, several built-in predicates are provided with various arities, for example append/3 and append/2 (see SWI-Prolog). It is important and customary to denote predicates this way, and it is also clearly explained in the article. I vote for restoring the original article. 128.131.197.234 (talk) —Preceding comment was added at 16:40, 22 January 2008 (UTC)