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 #$lifeExpectancy
is #$BiologicalLivingObject
:
(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 #$BiologicalLivingObject
:
(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.