Strict Standards: Non-static method DB::connect() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 32

Strict Standards: Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 520

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 557

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 34

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 92

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB/common.php on line 1009

Strict Standards: Non-static method DB::isManip() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB/common.php on line 2200

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 97

Strict Standards: Non-static method DB::connect() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 32

Strict Standards: Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 520

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 557

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 34Catalogue of Artificial Intelligence Techniques

Temporal Logic

Temporal logic deals with reasoning about time. There are three
different approaches to temporal logic. The first approach is the
Situation Calculus. In the situation calculus,
one simply adds an argument to each predicate which represents the
time at which the predicate is assumed to be true. Thus, a two-place
predicate like `hit' becomes a three-place predicate, and the
proposition that `Harry loves Mary at time t' is represented simply as
hit(harry,mary,t). The second approach is the reified approach.
In the reified approach, of which the Event Calculus is an example, one complicates the language by introducing
separate terms for events, processes etc. as well as a predicate
which is sometimes called HOLDS, sometimes TT, for saying
that an event took place at some time. So, to express the proposition
that `Harry hit Mary at time t,' one would write
HOLDS(hit(harry,mary),t), where hit(harry,mary) is a functional
expression denoting the event of `Harry hitting Mary.' The final and
third approach, which has not been too popular in AI, is
modal temporal logic. One introduces a
number of modal operators (see Modal Logic),
such as P (for past) and F (for future) and uses these to
represent time-dependent information. For example, the information
that `Harry hit Mary in the past' is represented as
P(hit(harry,mary)).
Reasoning about time is important in a number of areas in AI. In
planning, for example, it is necessary to reason about the effects that an
action will have on the world, and this involves reasoning about
future states of affairs. Another example is natural language
processing where one is concerned with extracting temporal information
from the tenses of sentences.