[SCL] naming ontologies
pat hayes
phayes at ihmc.us
Mon Dec 1 15:08:37 CST 2003
Guys, that idea of 'headers' has morphed into a slightly more general
idea. Let me try this out on everyone to see how it flies.
First, observe that there is a need to provide a way to give a name
to an ontology for use on the Web, and it ought almost certainly to
be a URI. So suppose that we provide for some simple syntax for
naming a set of sentences by attaching a URI to the sentences: I'll
write this as a URI enclosed in angle brackets followed by a list of
SCL sentences enclosed in double square brackets, but we can
obviously do better in say, XML.
The meaning of this notation is that the name denotes this set in all
satisfying interpretations: this requires that the universe admits
things called 'sets of sentences' which as far as the semantics are
concerned can be thought of simply as functions from interpretations
to truthvalues, i.e. as propositions, which we can treat as a
primitive semantic category (like strings and integers). So if
'ex:ont' is such a URI then it makes sense to write something like
I(J('ex:ont')) = true where I and J are SCL interpretations.
Ontology names like this can then be used to import one ontology into
another, so that an SCL document named ex:A can contain a top-level
sentence 'import ex:B' indicating that any satisfying interpretation
of A is required to satisfy all the sentences in B. This is emerging
semantic-web practice (it corresponds to the owl:imports definition)
and it seems to be generally useful, e.g. it provides a neat way to
import 'standard' axiom sets or concept definitions.
Given this, however, we have a new option, which is to attach a name
to an ontology *inside another ontology*. This can be used together
with a variation of the 'header vocabulary' to give a general-purpose
way of describing implicit contexts (such as the assumed syntactic or
semantic restrictions on various symbols) as enclosing SCL
surrounding, but not included in, an ontology naming. This requires
a special semantic condition analogous to the 'header' condition: if
we perform an 'inner' labelling, as in:
[[ outer sentences <ex:inner>[[ inner sentences]] ...]]
then I satisfies ex:inner just when it satisfies the inner sentences
*and some extension J of I satisfies the outer sentences* where, as
before, the special header vocabulary Ind, Rel etc, refers to the
constructs in I rather than J (this follows automatically since we
are talking about I as the satisfying interpretation, but it might be
worth emphasizing). We could call this a 'contextual' labelling.
Note that a simple outer-level labelling can be described as a
contextual labelling with a trivially true context.
For example:
<ex:outer>[[
(Ind a)
(Rel P) (Rel Q)
(Arity ?n P) iff (= ?n 1)
<ex:inner>[[
(forall (?x) (= ?x a))
(P a)
(not (Q a))
]]
]]
defines two SCL ontologies. Here, ex:inner is SCL-satisfiable in a
FO Herbrand interpretation with universe {a}, ext(P)={<a>},
ext(Q)={}, even though in this (Horrocks) case there is no SCL
interpretation which satisfies all the inner and outer sentences
simultaneously. The 'contextual' assertions outside the labelled
ontology are not required to be made true by interpretations of the
ontology, since they may mention entities which do not exist in those
interpretations, but they are required to be satisfied in a less
direct sense: one might say, it must always be *possible* that they
could be true, in a rather strong sense of 'possible' (if you were to
allow that some other things exist, then they could become true.)
Note that the enclosing outer ontology in a case of contextual
definition like this has to be given a special status as part of the
definition of the inner labelling.
We havn't yet said what it means to satisfy ex:outer, but I propose
that it would be satisfiable for example by J with a Herbrand
universe {a, P, Q, Ind, Rel, 1, pr} and J(ex:inner)=pr and
J(pr)=false. That is, the outer ontology is required to respect the
labelling, but it isn't required to *satisfy* the inner ontology.
The inner 'naming' is rather like a quotation in this respect. This
means that it would be OK to import either ex:inner or ex:outer, but
if you import them both then you are SCL-inconsistent (and if you
import the outer, then you cannot subsequently disagree about the
meaning of 'ex:inner'; but since that is a URI one would not expect
that you would be able to disagree about it in any case.)
Note that any importation of the inner ontology has to carry along
the satisfaction conditions of the outer part of the contextual
labelling. In practice this will mean that it is unwise to import
ontologies defined from different contexts into a single ontology,
unless you *really* know what you are doing; which in turn means that
many contextual definitions will probably have a special form:
[[(import <standardOuterOntology>) .... ex:newOntology[[....]] ]]
where the context is simply a reiteration of a 'standard' form of
some kind, perhaps with some special additions for the particular
vocabulary. We can provide some of these ourselves, eg a generic
GOFOL outer ontology form. Also, in the XML syntax we can provide for
an abbreviated version of this format since it is so likely to be
widely used.
The previous 'header' idea appears now as the header being simply an
enclosing ontology. I feel this is more elegant and simpler than
having a special syntactic distinction between body and header, and
it integrates nicely with the 'ontology-labelling' idea which we need
to provide in any case in a working language for interchange. It
also makes the transition into a simple ontology more obvious. The
ontology gotten by erasing the inner labelling and just dumping all
the sentences into a single ontology is SCL unsatisfiable (since P
and Q appear as arguments so must be in the universe and must be
distinct): the 'inner' sentences can be moved to the 'outer'
ontology without change of meaning only provided that all quantifiers
are restricted to the 'inner' universe Ind. Call the result ex:flat:
ex:flat[[
(Ind a)
(Rel P Q)
(Arity ?n P) iff (= ?n 1)
(forall (?x) (implies (Ind ?x) (= ?x a)) )
(and (Ind a) (P a) )
(and (Ind a) (not (Q a)) )
]]
then ex:flat is SCL satisfiable; indeed, every satisfying
interpretation of it has a sub-interpretation which satisfies
ex:inner, and vice versa. And of course this is a general result for
any pair of inner and outer ontologies: and it allows for further
layering if required, so that ontologies can be 'nested' inside one
another in any combination.
Sorry this seems to be constantly changing, but really there is a
single idea here, and the changes are consequences of trying to
explain it as simply as possible and trying to absorb as much of the
variation as possible into the model theory rather than the syntax.
Any comments welcome.
Pat
PS. There might still be a role for a 'header', but now it would
really be purely syntactic, eg as a standard way to identify which
SCL concrete syntax was being used in the document. For this kind of
purpose I would be quite happy to restrict this to XML, thereby
acknowledging that the XML surface form has a special status for
document interchange and is the only truly 'universal' format for SCL
transmission.
--
---------------------------------------------------------------------
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 ihmc.us http://www.ihmc.us/users/phayes
More information about the SCL
mailing list