[SCL] Re: implementing a nonstandard unifier
pat hayes
phayes at ai.uwf.edu
Thu Jun 5 19:59:14 CDT 2003
Thanks for your rapid reply.
> > A number of us are considering drafting a logic standard with an
>> extended syntax for FO logic in which relations and functions in
>> atomic sentences are allowed to be arbitrary terms (including
>> variables) rather than being required to be constants. In all other
>> respects the language is first-order, so the appropriate notion of
>> unification in this logic would be similar to the usual FO unifier
>> except that the unification algorithm would apply recursively to
>> terms in the relation or function position (first) in an atom or term
>> just as it does to terms in the other positions.
>
>It is a bit off line but unification is not the most important operation
>in the implementation, and definitely not a bottleneck in theorem
>provers performance. Indexing will suffer most (you mention this below).
>
>> Obviously this can be mapped into conventional FO syntax by
>> interposing a 'dummy' function or relation name in the front of each
>> atom or term with a given arity; my question, however, is what would
>> be the costs of implementing such a unification algorithm directly?
>
>If I remember the full story (you probably refer to KIF
Son of KIF, as it were, currently labelled SCL.
>), you probably
>speak about logic with equality. Then you get strange effects like
>
> (!x)(!y)(x = y) -> (p <-> q)
The current semantics does not have these unusual properties. The
conventional-syntax subset of the extended syntax has the usual
meaning, unchanged from conventional FOL, hence the interest in
preserving the form of current FOL axiomatizations while extending
the inference machinery.
>The cost of implementing unification and other algorithms would probably
>be not so high, but if you have a large knowledge base with many atoms
>using a variable relation x(t1,..,tn), you are in trouble. Roughly
>speaking, because too many terms become unifiable.
True, but they would be so unifiable if uniformly translated into
conventional FOL syntax using 'holds'. But I take your point that
this notation might change the search dynamics in new ways.
> > In your implementation experience, would your implementation style
>> need to be radically modified if atoms and terms could have
>> non-constant terms in the relation or function position? I have in
>> mind such matters as indexing or hash-coding schemes which depend on
>> relation or function name tables, for example, or optimizing
>> call-outs to special code for handling particular cases such as
>> transitive or reflexive relations. It would be particularly helpful
>> if you could identify (or simply report on the existence of) any such
>> problems which would *not* arise if the 'dummy function/relation'
>> style were adopted, bearing in mind that this would produce axiom
>> sets using only a very small number of relation and function symbols.
>
>If you want to build in a small number of particular variable-relation
>axioms, this can be done in many ways, depending on the axioms you
>have. For example, you can add additional rules to the resolution system
>as soon as statements such as transitive(p) occur.
>
>In general, architectures of modern provers are VERY complex and any
>additions like those you mentioned would be highly time-consuming.
Do you mean, for the programmers, or that they would slow down the
operation of the code?
>
>> I realize that to answer an open-ended technical question is a burden
>> on your time, but if you were able to give even a short answer I
>> would be grateful, as it may influence our decisions on writing what
>> we hope will be a useful draft of a standards document for a logical
>> notation.
>
>I would simply suggest to use a dummy predicate with a special meaning
>(e.g. holds) when you use non-constant relations. For example:
>
> transitive(u) <->
> (!x)(!y)(!z)(holds(u,x,y) & holds(u,y,z) -> holds(u,z,x))
>
>Of course in the logic holds will have a special semantics.
>
>Any other syntax that comes to my mind would be quite confusing.
It is quite popular with 'users' who write ontologies, hence our
interest in supporting it if possible.
>Of
>course, it would be best to use a clearly visible name for this
>predicate, e.g. #holds.
Quite. It will be a logically reserved vocabulary. Thanks again for your input.
Pat
--
---------------------------------------------------------------------
IHMC (850)434 8903 or (650)494 3973 home
40 South Alcaniz St. (850)202 4416 office
Pensacola (850)202 4440 fax
FL 32501 (850)291 0667 cell
phayes at ai.uwf.edu http://www.coginst.uwf.edu/~phayes
s.pam at ai.uwf.edu for spam
More information about the Scl
mailing list