The compute-value-restriction function computes the value restriction of a given concept on a given relation.
compute-value-restriction concept relation &key return-a-list-p
The concept argument is a concept.
The relation argument is a relation.
If the return-a-list-p argument is t, then a list of the concepts which constitute the value restriction will be returned, rather than a single concept that represents the conjunction of those concepts.
The value restriction of concept is the type of all fillers of the relation role in instances of concept. Depending on return-a-list-p, compute-value-restriction returns either a list of the concepts which make up this type, or a concept which is the unification of all the concepts in the type.
(defconcept A :implies (:and (:all r B) (:all r C)))
(defconcept C :implies D)
(defrelation r :range E)
(compute-value-restriction (fc A) (fr r)) ==> |C|B&C&D&E
(compute-value-restriction (fc A) (fr r) :return-a-list-p t) ==>
(|C|B |C|C |C|D |C|E)
Last modified: Jun 1 1995