Talk:Logic programming

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Delete redirect Relational programming?[edit]

According to the header of this talk page, Relational programming was merged to Logic programming. However, the term "relation programming" isn't mentioned at Logic programming at all, and apparently no content was actually merged when Relational programming was turned into a redirect to Logic programming. So perhaps Relational programming should be deleted? – Tea2min (talk) 12:11, 30 June 2018 (UTC)[reply]

It would be better to add something about Relational programming here. The type of material we need is hinted at in wiki.c2.com?RelationalProgramming. There was an old article on Relational programming that you can still see under the Relational programming redirect but it's not very clear. At a minimum, we ought to have something that clarifies the connection between logic programming and relational programming. EdJohnston (talk) 15:57, 30 June 2018 (UTC)[reply]
"Relational programming" seems to be the name for logic programming, preferred by many functional programmers. See for example: Friedman, D.P., Byrd, W.E., Kiselyov, O. and Hemann, J., 2018. The reasoned schemer. MIT Press. Here is a quote from the MIT Press web page: "Summary A new edition of a book, written in a humorous question-and-answer style, that shows how to implement and use an elegant little programming language for logic programming. The goal of this book is to show the beauty and elegance of relational programming, which captures the essence of logic programming. The book shows how to implement a relational programming language in Scheme, or in any other functional language, and demonstrates the remarkable flexibility of the resulting relational programs."Logperson (talk) 15:26, 9 July 2018 (UTC)[reply]
A section, Relationship with relational programming, has now been added to the article, and the redirect has been changed to redirect to the section. — Preceding unsigned comment added by Robert Kowalski (talkcontribs) 14:43, 17 February 2024 (UTC)[reply]

Include discussion of kanren, miniKanren, microKanren[edit]

See an excellent overview of the miniKanren logic programming approach vs Prolog, and don't forget Mercury, Curry, Gödel. ★NealMcB★ (talk) 22:23, 23 December 2019 (UTC)[reply]

The make Program is a Logical Programming Language[edit]

make is a program that should be included in this discussion of Logical Programming. It is the most frequently used Logical Programming Language. 50.206.176.154 (talk) 22:11, 14 January 2022 (UTC)[reply]

I do not believe that make is a logic programming language. Can you provide reliable sources that say otherwise?
siddharthist (talk) 16:25, 5 March 2023 (UTC)[reply]
Here is a quote from Adams, P. and Solomon, M., 1993, An overview of the CAPITL software development environment. In International Workshop on Software Configuration Management (pp. 1-34). Berlin, Heidelberg: Springer Berlin Heidelberg.
"The similarity between the rules and dependency statements in a makefile and a logic programming language has been noted by others. Logic and logic-programming languages have been used as description languages and as the basis for build tools like Make. All these systems share the desire to use the power of logic languages for consistency checking and make good use of the richer data model provided by terms."
Unfortunately, the authors do not give any references for the "others" who have also noted the similarity. In any case, it is mentioned in the paper only as a similarity, rather than as an explicit instance. Robert Kowalski (talk) 20:41, 10 October 2023 (UTC)[reply]

Restructuring the article[edit]

I have made a start on restructuring the article, mainly to acknowledge the greater importance of negation in the bodies of clauses. I started to edit the semantics subsection of the Concepts section. But it is now becoming too complicated, and I think it needs to be moved to the end of the section and after the subsection on negation. This is the new order that I propose for the Concepts section: Logic and Control, negation (and not just negation as failure), knowledge representation, problem solving, semantics and goal solution strategies. Maybe there should also be a subsection on LP and human thinking, reflecting the work of Stenning and van Lambalgen and others. See Stenning, K. and Van Lambalgen, M., 2012. Human reasoning and cognitive science. MIT Press.Human reasoning and cognitive science with 676 citations on google scholar.Robert Kowalski (talk) 09:44, 2 October 2023 (UTC)[reply]

These and other changes have now been made. The most significant change is that the semantics subsection has been simplified, so that it now deals only with the Horn clause case, and it comes between the A=L+C and negation subsections. The problem solving subsection has been absorbed into the A=L+C section. The negation subsection now contains a discussion of the semantics of negation more generally. The metalogic programming subsection has been moved from Extensions to Concepts. A new subsection on LP and human thinking has been added. Robert Kowalski (talk) 09:27, 2 December 2023 (UTC)[reply]