Development of PAL is no longer
supported. See the
P A L
Pertinence
Action Language
PAL is a causal language for describing action domains. There are
two
main parts in a PAL theory: the declarations part and the sentences.
Declarations
allow describing the sets of actions and fluents together with the set
of rules that describe the domain behavior. Rule semantics relies on
the
concept of Pertinence (a rule can be applied iff its condition
is
true and directly or indirectly depends on the performed actions). The
sentences allow initializing and updating an actual narrative (that is,
describe the things that have actually happened) and making queries
about
the current narrative or a hypothetical future one.
Version 1.4.3:
- Rules are finally grounded and encoded into a Logic Program which
can
be
interpreted using:
- a specialized version of Well Founded Semantics
- Stable Models semantics via connection to smodels
- The `well-founded' version does not make query optimization.
Planning
queries
are answered by simply trying each possible combination.
- Persistence short-circuit operators (conjunction && and
disjunction
||) have been incorporated
- New pseudo-action "print(expr,expr,...);"
How to use it:
-
(only
well-founded version online)
Some examples:
- Yale
shooting
scenario
- Example of ramifications: Lin's
suitcase
- Concurrent actions: the
soup bowl example, and a second
version with intermediate fluents.
- A simple but large temporal projection problem: a binary
counter of 1000 bits
- Missionaires
and Cannibals (and a second
version with more intermediate actions)
- Blocks
world
- Implementations of a queue
and a stack
of processes
- Some cycles: abba0.pal,
abba1.pal,
abba2.pal,
auto.pal
- Example of well
founded based logic program encoded in pal.
- An example of pertinence: the
scoring scenario