This definition is specifically crafted to make it convenient to limit such type restrictions to subclasses of State-Of-Affairs which only refer to certain Relations or Classes of Relations.
E.g. For automatic planning applications it may be convenient to define
a sub-class of State-Of-Affairs called World-State that
only included Relations that expressed world state conditions.
This could be done as follows:
* Create a subclass of Relation called World-State-Relation and then make all world state relations instances of this Subclass.
* Then define World-State as a subclass of State-Of-Affairs such that:
(<Where the restriction applies to a small number of Relations, it may be more convenient to name each one individually. For example, the following defines a subclass of state-of-affairs to be restricted to a single relation:
=> (World-State ?soa) (Restricted-List-Of-Relsents ?soa
(setofall ?r (World-State-Relation ?r))))
:own-slots ((Documentation "An State-Of-Affairs that expresses information using the
Hold-Authority relation.") (Subclass-Of State-Of-Affairs) (Instance-Of Class))
=> (Authority-Condition ?soa) (Restricted-List-Of-Relsents ?soa ('Hold-Authority) )
(Restricted-List-Of-Relsents ?soa ('Hold-Authority))precludes things like:
(or (hold-authority joe sign-checks) (hold-authority jane sign-checks) )which ought to be allowed. So what is needed is a relation that restricts all R's to be a certain set; but also allows logical combinations of same. THis may involve re-defining things in a manner very similar to in Kif-Meta.
A situation. It is described by or consists of one or more statements asserting that a RELATIONSHIP holds between particular ENTITIES. Syntacticlly, a State-Of-Affairs is either
1. a Relational Sentence [Relsent@KIf-Meta] --or--
2. a non-empty list of Relational Sentences.
A Relsent is a list of the form: [R ?x1 ?x2 ... xn] where R is a relation [or function] constant; each xi is a term; and n>0
(<=> (State-Of-Affairs ?Soa) (Restricted-List-Of-Relsents ?Soa (Setofall ?R (Relation ?R))))
(<=> (Influence-Factor ?Influence-Factor) (And (State-Of-Affairs ?Influence-Factor) (Exists (?Actor) (And (Known-True ?Actor ?Influence-Factor) (In-Scope-Of-Interest ?Actor ?Influence-Factor))))) (<=> (Assumption ?Assumption) (And (State-Of-Affairs ?Assumption) (Qua-Entity ?Assumption) (Exists (?Actor) (Assumed ?Actor ?Assumption)))) (<=> (Purpose ?Purpose) (And (State-Of-Affairs ?Purpose) (Qua-Entity ?Purpose) (Or (Exists (?Plan) (Intended-Purpose ?Plan ?Purpose)) (Exists (?Actor) (Hold-Purpose ?Actor ?Purpose)))))
(Inherited-Facet-Value Slot-Value-Type Plan Intended-Purpose State-Of-Affairs) (Inherited-Facet-Value Slot-Value-Type Effect State-Description State-Of-Affairs) (Inherited-Facet-Value Slot-Value-Type Pre-Condition State-Description State-Of-Affairs) (Inherited-Facet-Value Slot-Value-Type Planning-Constraint State-Description State-Of-Affairs)