# Practical Reasoning

### 1. Knowledge, operation, and goal

"Practical reasoning" refers to the reasoning about "what to do", in contrast to "theoretical reasoning" that is about "what to believe". This distinction is also related to the distinction between declarative knowledge and procedural knowledge (e.g., the knowledge of a basketball commentator vs. that of a basketball player).

In general, a system's knowledge relates the system's operations to its goals. A conventional program organizes certain operations together to serve a certain goal, while reasoning creates new relations on the basis of the existing ones to related operations and goals in more flexible ways.

### 2. Logic programming

Logic programming treats problem solving as an inference process. It is a form of declarative programming that attempts to specify problems (entities and their relations), rather than to specify solutions (algorithms) as in imperative programming.

The key technical idea is to give a proposition P(a, b, c) a procedural interpretation to see it as an executable procedure. The same proposition can also be interpreted as a goal, i.e., a proposition to be realized.

Prolog: introduction with examples that can be tested in SWI-Prolog online.

The same Prolog program can be used for multiple goals with different input/output combinations. This property also increases the complexity of programming and debugging.

### 3. Planning and scheduling

Planning: to organize operations to achieve a goal. Scheduling handles the details of timing in plan.

Planning can be carried out as state-space search without executing the operations, but only recording the path.

Without a given graph to be searched, planning can also be carried out as reasoning that generates part of the graph when necessary: to specify each state by a set of propositions, and each operation by its preconditions and consequences (postconditions). Example: STRIPS in Shakey.

Planning can be considered as one form of self-programming. Beside combinatorial explosion, there is also the frame problem, which is about the difficulty of fully specifying the preconditions and consequences of an operation.

### 4. Intelligent agent

The concept of "agent" was introduced into AI initially for a special type of systems that is capable of autonomous action in this environment to meets its design objective, or a "softbot" (Jennings and Wooldridge, 1994; Franklin and Grasser, 1996). Later, the meaning of the concept is broaden to a framework to cover almost all AI research.

A well-known agent framework is the Belief-Desire-Intention (BDI) model, which provides the procedures for plan selection, execution, monitoring, and revision.