Algorithm = logic + control

  title={Algorithm = logic + control},
  author={Robert A. Kowalski},
  journal={Commun. ACM},
  • R. Kowalski
  • Published 1 July 1979
  • Philosophy, Computer Science
  • Commun. ACM
The notion that computation = controlled deduction was first proposed by Pay Hayes [19] and more recently by Bibel [2] and Vaughn-Pratt [31]. A similar thesis that database systems should be regarded as consisting of a relational component, which defines the logic of the data, and a control component, which stores and retrieves it, has been successfully argued by Codd [10]. Hewitt's argument [20] for the programming language PLANNER, though generally regarded as an argument against logic, can… 

Computational Logic: Logic Programming and Beyond

A distributed object oriented logic programming language in which an object is a collection of threads deductively accessing and updating a shared logic program, and a class of co-operative reasoning agents that can do resource bounded inference for full first order predicate logic.

The Divide-and-Conquer Subgoal-Ordering Algorithm for Speeding up Logic Inference

This paper presents a novel algorithm for automatic finding of lowest-cost subgoal orderings using the divide-and-conquer strategy, and experimentally demonstrates the utility of the algorithm by testing it in several domains, and discusses the possibilities of its cooperation with other existing methods.

Middle History of Logic Programming: Resolution, Planner, Edinburgh Logic for Computable Functions, Prolog and the Japanese Fifth Generation Project

The focus of this article is on the development of Logic Programming, and it does not treat any other associated topics related to Logic Programming such as constraints, abduction, etc.

Logic Programming and Nonmonotonic Reasoning

I suggest that this is an appropriate level for dealing with change in logic programs, complementing earlier syntax-dependent approaches, and touches on work concerning AS revision, with respect to both specific approaches and logical characterisations.

Declarative Priority in a Concurrent Logic Language ON

A model of priority is defined and some properties of the model are proved, and a concurrent logic language called ON is designed based on the theoretical framework and some prominent characteristics that are embodied in sample programs written in ON are discussed.

Negation in Logic Programming

  • K. Kunen
  • Computer Science
    J. Log. Program.
  • 1987

Communicating control knowledge to a deductive database system

The architecture of a deductive database system which offers the user a framework for specifying control knowledge is recaptured, and it is shown how these two examples can be solved more efficiently with the system.

A denotational semantics approach to functional and logic programming

This dissertation addresses the problem of incorporating into lazy higher-order functional programming the relational programming capability of Horn logic, a feature whose denotational semantics has until now not been rigorously defined.

Parallel branch-and-bound search in Parlog

This paper investigates the concurrent logic languages application to a search problem commonly used as an illustration of artificial intelligence techniques, the 8-puzzle and proposes a solution which controls the parallelism using user-defined priorities, which has the advantage of being architecture-independent.



A Man-Machine Theorem-Proving System

Logic for problem solving

  • R. Kowalski
  • Psychology
    The computer science library : Artificial intelligence series
  • 1979
This book investigates the application of logic to problem-solving and computer programming. It assumes no previous knowledge of these fields, and may be Karl duncker in addition to make difficult

The Competence/Performance Dichotomy in Programming

The immediate objectives of this research are to learn how to program keeping fact and control separate, and to identify those aspects of control amenable to automation.

A Proof Procedure Using Connection Graphs

A new theorem-proving system designed to remedy deficiencies of resolution systems is presented, beginning as a supplement to SL-resolution in the form of classificatmn trees and incorporating an analogue of the Waltz algorithm for picture Interpretation.

A Relational Model for Large Shared Data Banks

His goal is to describe data, not to build a model of computation (which one would then be expected to prove equivalent to Turing Machines), and the idea of using a relation view of data to avoid ordering dependencies, access path dependencies and other implementation dependencies.

Non-Deterministic Algorithms

Two examples follow, showing the usefulness of the primitwes m computer-reded problem solving: the first is a simple question-answering program, the other is a parser for a context-sensitive language.

The competence/performance dichotomy in programming preliminary report

The claim that data management has been automated to the point where the programmer concerned only about the correctness of his program need not involve himself in any aspect of the storage allocation problem is taken as a point of departure.

Relational Completeness of Data Base Sublanguages

  • E. Codd
  • Computer Science
    Research Report / RJ / IBM / San Jose, California
  • 1972
This paper attempts to provide a theoretical basis which may be used to determine how complete a selection capability is provided in a proposed data sublanguage independently of any host language in which the sublanguage may be embedded.

Prolog - the language and its implementation compared with Lisp

It is argued that pattern matching is a better method for expressing operations on structured data than conventional selectors and constructors - both for the user and for the implementor.

PLANNER: A Language for Proving Theorems in Robots

The deductive system of PLANNER is subordinate to the hierarchical control structure in order to make the language efficient and the use of a general purpose matching language makes the deductives system more powerful.