Argument Constraints are assertions in the KB that place syntactic and semantic conditions on the well-formedness of sentences and formulas. They are put on functions and relations and are used to restrict what can appear in each argument position of a predicate or function.
Argument constraints most often take the form of
#$isa (instance of) and
#$genls (generalization) constraints. E.g.
#$lifeExpecancy is a relation between a living object and a particular quantity of time. Hence the first “arg isa” (
#$arg1Isa) constraint on
(arg1Isa lifeExpectancy BiologicalLivingObject)
Hence, placing some instance of
#$Train in the first argument place of that relation would result in a formula that would not be well-formed, since no instance of
#$Train is an instance of
#$BiologicalLivingObject. On the other hand, a relation like
#$scientificName, which takes a type of organism and relates it to its official scientific name has a generalization, rather than a membership (
#$isa), constraint on its first argument position — anything standing in the first argument place of
#$scientificName must generalize to
(arg1Genl scientificName BiologicalLivingObject)
Argument constraints can also constrain how an argument’s value must be expressed. E.g.
#$arg1QuotedIsa can be used to express the constraint that the first argument of a particular relation be expressed by a certain sort of term.