Relation Has-Value

Arity: 3
HAS-VALUE is a way to state that an instance has a value on some slot. Its third argument is a single value; one may use HAS-VALUE repeatedly for each value of a multiple-valued relation.

For example, (HAS-VALUE i R v_1), (HAS-VALUE i R v_2) means that slot R applied to domain instance i maps to values v_1 and v_2. In other words, R(i,v_1) and R(i,v_2) hold.

There is no closed-world assumption implied; there may be other values for the specified slot on a given domain instance.


  • See-Also: all-values
  • This is for completeness. In definitions, one could say (slot ?instance value) instead of (has-value ?instance slot value).

  • Version-4: In version 3, this was called VALUES and took a set of values as a third argument. That didn't make a lot of sense, since there could be many different sets (all subsets of the actual set of values), all of which are the value of this relation on the same instance and class. The new form also makes it clearer that there is no closed-world assumption.

  • Version 4: removed VALUES from the ontology, replaced it with HAS-VALUE, which was formerly defined in the KL-ONE ontology.
Instance-Of: Relation, Set

Implication Axioms for Has-Value:

(=> (Has-Value ?Instance ?Binary-Relation ?Value)
    (Holds ?Binary-Relation ?Instance ?Value))

Equivalence Axioms for Has-Value:

(<=> (Has-Value ?Instance ?Binary-Relation ?Value)
     (And (Binary-Relation ?Binary-Relation)
          (Holds ?Binary-Relation ?Instance ?Value)))

Axioms for Has-Value:

(Binary-Relation ?Binary-Relation)

(Nth-Domain Has-Value 2 Binary-Relation)

Implication Axioms mentioning Has-Value:

(=> (Has-Values@Ol-User%Slot-Constraint-Sugar ?Instance
    (Forall (?Instance)
            (<=> (Member ?Value ?Set-Of-Values)
                 (Has-Value ?Instance ?Binary-Relation ?Value))))

Equivalence Axioms mentioning Has-Value:

(<=> (Has-Values@Ol-User%Slot-Constraint-Sugar ?Instance
     (And (Binary-Relation ?Binary-Relation)
          (Set ?Set-Of-Values)
          (Forall (?Instance)
                  (<=> (Member ?Value ?Set-Of-Values)
                       (Has-Value ?Instance ?Binary-Relation ?Value)))))