SUO: Re: KIF syntax and semantics and a basic ontology
Chris, Pat, and others,
In my categorical approach to ontological structuring I want to use a core,
bootstrap, or basic KIF ontology -- a single namespace, say with namespace
prefix 'KIF', that provides me with the following terminology: 'KIF$Class',
'KIF$subclass', 'KIF$BinaryRelation', 'KIF$UnaryFunction',
'KIF$BinaryFunction', 'KIF$TernaryFunction', KIF$Pair (a predicate), the
pair constructor 'KIF$pair', the pair selectors 'KIF$first' and KIF$second',
and the same for triples. As you see, my needs are very simple ;^). I like
your basic ontology, and I want to use it for this core ontology. However,
there are some small inconveniences in doing this.
First, the pair-triple terms are not there. I realize that these can be
defined in terms of sequences, and I could define my own, but I prefer that
there be only one basic, core namespace. Could we include such convenience
and derivative terminology for pairs and triples in the basic ontology?
Second, I seem to be using function terminology much more than relation
terminology, probably because my stuff is rather mathematical. However, the
basic ontology seems to be oriented more towards relations than functions.
For example, suppose I want to define a "binary" function 'func' whose
argument types are 'X' and 'Y' and whose return type is 'Z'. Previously, I
was using the code:
(KIF$UnaryFunction func)
(forall (?x ?y ?z)
(=> (= (func ?x ?y) ?z)
(and (X ?x) (Y ?y) (Z ?z))))
Now it seems that I should use the following code:
(KIF$relation func)
(KIF$functional func)
(KIF$arity func 3) or (= (KIF$arity func) 3)
(KIF$signature func X Y Z)
Is this correct? Now, the arity statement is not needed because of the
signature. In addition, the arity statement is a little odd, since this is
normally considered to be a binary function. Perhaps we just shouldn't use
arity with functions. Plus, I would prefer to use just the statement
(KIF$function func)
instead of the first two, thus, ending up with just the following simple
code for this declaration:
(KIF$function func)
(KIF$signature func X Y Z)
Could we include the term 'function' in the basic ontology, again as a
convenience in wanting only one basic, core namespace?
Robert E. Kent
rekent@ontologos.org