This repository provides the top-level definition for interpretations of Situations in Logtalk.
Examples include: - SitCalc - STRIPState
A library implementing these protocols is suitable for use with BedSit for developing applications quickly and flexibly.
An additional category is provided to use queries with holds/2
.
sitcalc::holds(Query, Situation).
Query what holds in a Situation
. Queries can be Fluents, or
compound terms with and
conjunction, or
disjunction, not
for Prolog style negation, implies
for implication and equivalentTo
for equivalence.
Caveats
- For the case
not P
, Prolog style negation is used (+) - For the case where
P implies Q
,P
is false, andQ
is not ground, we can't unifyQ
with a false case due to Prolog style negation. - For the case where
P equivalentTo Q
if eitherP
orQ
are non-ground, only the case where bothP
andQ
are true will hold. So ifP
is ground to a false case andQ
is not ground, thenP equivalentTo Q
won't hold even if some value of Q would make it so. The same applies ifQ
is ground to the false case andP
is not ground. This is due to the Prolog style negation.