**Defined in ontology: Frame-ontology****Source pathname: /tmp_mnt/vol/q/htw/cms/ontolingua/examples/ontolingua/../../all-ontologies/ontolingua/frame-ontology.lisp****Also defined in:**Interface-ontology

**Arity:**2**Definition-Sort-Index@Interface-Ontology:***-100***Documentation:**Arity is the number of arguments that a relation can take. If a relation can take an arbitrary number of arguments, its arity is undefined. For example, a function such as `+' is of undefined arity; its last formal argument is specified with a sequence variable. The arity of a function is one more than the number of arguments it can take, in keeping with the unified treatment of functions and relations. The arity of the empty relation (i.e., with no tuples) is undefined.

### Notes:

- KIF 2.2 doesn't
*require*one to declare the arity of a relation, nor does it require one to use a relation with a consistent number of arguments. However, relations defined with Ontolingua are always of fixed arity, which Ontolingua asserts as part of the translation. This is to facilitate sharing over implemented frame systems, most of which do not support variable-arity relations. - Asserting that the arity is undefined is not the same as saying that
the arity is unconstrained. The arity can only exist if the relation
is of fixed arity. Asserting (undefined (arity ?relation)) means
that one
*knows*that the relation has variable arity.

- KIF 2.2 doesn't
**Domain:**Relation**Instance-Of:**- Binary-Relation, Binary-Relation, Function, Function, Function ...
**Range:**Integer

(<=> (Arity ?Relation) (And (Relation ?Relation) (Not (Empty ?Relation)) (Integer ?N) (Forall (?Tuple) (=> (Member ?Tuple ?Relation) (= (Length ?Tuple) ?N)))))

**Arity:**1

**Arity:**2

**Arity:**2

**Arity:**1

**Arity:**2

**Arity:**2

(=> (= (Arity ?Relation) ?N) (Forall (?Tuple) (=> (Member ?Tuple ?Relation) (= (Length ?Tuple) ?N)))) (=> (= (Arity ?Relation) ?N) (Integer ?N)) (=> (= (Arity ?Relation) ?N) (Not (Empty ?Relation))) (=> (= (Arity ?Relation) ?N) (Relation ?Relation)) (=> (= (Projection ?Relation ?Column) ?Projection-Relation) (=< ?Column (Arity ?Relation)))

(<=> (Class ?Class) (And (Relation ?Class) (= (Arity ?Class) 1))) (<=> (Projection ?Relation ?Column) (And (Defined (Arity ?Relation)) (Positive-Integer ?Column) (=< ?Column (Arity ?Relation)) (Class ?Projection-Relation) (Forall (?Projection-Instance) (<=> (Instance-Of ?Instance ?Projection-Relation) (Exists (?Tuple) (And (Member ?Tuple ?Relation) (= (Nth ?Tuple ?Column) ?Instance))))))) (<=> (Nth-Domain ?Relation ?N ?Type) (And (Defined (Arity ?Relation)) (Positive-Integer ?N) (Class ?Type) (Forall (?Tuple) (=> (Member ?Tuple ?Relation) (And (>= (Length ?Tuple) ?N) (Instance-Of (Nth ?Tuple ?N) ?Type))))))

(<= (Arity ?X 1) (Class ?X)) (<= (Arity ?X 3) (Facet ?X)) (Undefined (Arity One-Of)) (Undefined (Arity Compose)) (Defined (Arity ?Relation))