PatH has provided some clarification about what he (perhaps the
world?) considers as the “meaning” of terms in a mathematical
theory. This is very useful, and it now seems to me that we can distinguish
the meaning of “meaning” in math and in computational ontology (the
computer technology). From this, it appears that the notion of “primitives”
as I consider them to be useful in ontologies dealing with real-world entities
may have only an analogical relation (or no relation at all) to the elements
used in mathematical theories. I have often (when trying to be careful) used
the term “intended meaning” to emphasize that the “meaning”
of an ontology term should be what the ontologist intended it to be (unless
s/he made a logical error - which should be detectable by testing). To
reiterate PatH’s comment:
Concerning the distinction between ontology primitives and
>>> [JS] >
>>> What I was trying to say is that terms
specified by imagery are
>>> family resemblance terms that cannot be
defined by necessary and
>>> sufficient conditions.
>> [PC] Agreed - they cannot be defined by
necessary and sufficient
>> conditions, and I have never said and have tried
hard to avoid
>> implying that they are.
[PH] > Well then, you have to give us some idea of
what you ARE saying. Let me summarize so as to reveal my confusion. You insist
that there is, or will be, a clear distinction between primitive concepts in
the FO and others. The others will be 'defined in terms of' the primitives.
But this does not mean by necessary and sufficient
conditions, so it does not mean 'defined in terms of' as this is understood in
mathematics and logic.
[PC] Right, although some primitive elements may be
defined by necessary and sufficient conditions, others, perhaps most will not
be. I have tried hard not to use phrases such as “defined in terms of”
to avoid giving the impression that I am talking about necessary and sufficient
mathematical definition. If I slipped and actually used that phrase,
apologies, my bad.
[PH] > So what *does* it mean? Apparently, necessary
conditions are all that will be required in some cases.
[PC] Correct, as far as the FOL elements of the ontology
are concerned. But (1) there may also be procedural code that adds to the specificity
of the interpretation that a computer will place on the ontology elements (I
use “ontelm” to refer to any ontology element: type, relation, function,
instance, rule) – procedures can be labeled as functions in the ontology,
but executed as procedural code (e.g. arithmetic functions, string manipulation,
input-output, display); (2) the linguistic documentation may provide additional
information, such as reference to well-known instances of types, that help the **human
ontologist or programmer** to properly interpret and properly use the type or
relation.; and (3) the intended meanings of each relation has to be specified
by rules describing the logical inferences that can be calculated for an assertion
using that relation. Perhaps the most important difference between a computational
ontology and a mathematical theorem is that the ontology is only valuable if
used in some practical application that reference entities *outside* of the
ontology itself (math theories may also be intended to model real-world
entities, but don’t have to); this means that the programmer or ontologist
who uses the ontology must understand enough of the intended meanings of the
ontelms so that the application uses the ontology appropriately. The meaning
of an ontology element in a practical application depends on how that element is
used in that application; here “meaning” invariably references
something outside the symbols of the ontology itself.
So it appears that the
meanings for mathematicians of symbols in a mathematical theorem have only at
best analogical relation to the intended meanings in an ontology that both the ontologist
and computer need to interpret properly in order for the application to work as
So, I now conclude (if I have interpreted you
correctly) that you are correct, that the “meanings” of the
mathematical primitives that are used in the time catalogue are not the kinds
of meanings that I believe a computational ontology tries to describe. A computational
ontology used in an application is definitely not just a closed set of symbols
related by logical operators. The meanings of the elements are given grounding
at a minimum by the way they are used in the program. There may be even more
direct grounding if functions in the ontology call procedural code. For
example, a function searchGoogleFor(?String) could return the ranked list of
hits (as strings). This is direct connection to the external world, and the
function is not merely related to other symbols in the ontology, it is directly
related to the internet and the world external to the local computer.
[PH] > So, to take an example, if we have the concepts
of time interval, mass and duration in the FO, as I believe you have suggested,
then we introduce the concept of dieting, and have the axiom that dieting over
an interval implies the ones mass decreases during the interval, if the dieting
is successful, then an axiom expressing this necessary condition might count
as a *definition* of 'dieting' in terms of mass and timeinterval, say. Is that
more or less right? Or would you want to say that one needs more than just a
simple observation like this to count as a 'definition' of dieting? But how
much more? How are we to judge when enough axioms are written to count as
having captured the essence of a concept and reduced it definitionally to
> What bothers me is that there are no such criteria,
in fact, and that all you are actually saying is that axioms will get written
which are enough for practical purposes to draw the conclusions that people
feel ought to be possible to draw.
[PC] Yes and perhaps no - I view the utility of a
computational ontology as an artifact serving some practical purpose at any
given time for some users, and there is no guarantee that a given set of
primitives will always suffice to logically describe everything new that one
would want to describe (to whatever level of detail the users consider
adequate). But even without such a guarantee the question that I think is still
important to answer is whether some set of primitives will in fact prove
sufficient, after at least a some years of testing in different applications
and modification to correct deficiencies, to remain stable (not need
supplementation), say for a whole year at a time, and be adequate to construct
the desired representations. I would expect this to the quite useful for supporting
semantic interoperability. (more below)
[PH] > But this is exactly the Cyc vision of a large
Theory of Everything,
[PC] No, it is not. I specifically asked Doug Lenat (last
year) whether CYC had tried to identify some set of primitives from which they
could logically describe the remainder of the CYC and he specifically said “no”.
It may be that the CYC BaseKB is a good approximation to such a set, but it
hasn’t been tested. From my own effort at trying to represent the
Longman, I suspect it would need some supplementation – don’t know how
Perhaps you have new information?
[PH] > and I see nothing in it which suggests that
identifying this Longman Core of concepts is going to serve any useful purpose.
The theory as a whole is not going to be a conservative extension of the core
theory (because then all those definitions would be necessary and sufficient;
but you insist they are not.
[PC] The simple case of defining a new type by adding a
necessary condition to an existing FO class would (if I interpreted John S correctly)
be a conservative extension. I still do not fully understand that term; would
it still be a “conservative extension” if one (1) adds a new
relation; (2) creates a rule, using only the new term plus terms already in the
FO, describing the logical consequence of that relation holding; (3) adds a new
subtype as in the simple case; and (4) uses that new rule to assert some
relation between the new type and existing types in the FO? It seems that this
process would not be creating necessary and sufficient conditions, but please
enlighten me if it actually does. In any case, I think that this would be at
least one method to use the FO to create new useful concepts in a non-trivial
[PH] > So how does the presence in it of this
subtheory make it any different from any other large, interconnected
general-purpose ontology such as CYC or SUMO?
[PC] If after testing CYC or SUMO, or some subset of either,
one concludes that its existing inventory of ontelms is sufficient to specify all
new domain ontelms desired, that would be great! It might save perhaps as much
as six months from the 3-year FO project that I have suggested. As I mentioned
on several occasions, the actual construction of and agreement to the FO by a large
consortium is only a minor part of the FO project – most of the required
elements are already in existing ontologies; mapping to the domain ontologies,
development of translations among the linked ontologies and useful open-source demo
applications, and demonstration of the utility of the FO to support semantic
interoperability among the applications are the *main* goals. Achieving
those goals are what will determine how widely the FO and its accompanying
utilities could be used, and create incentives for others to actually use it.
>> [PC] This system will, as best I can tell,
enable a broad semantic interoperability
> [PH] You keep saying this. I simply do not believe
it. Can you show HOW the existence of this ontology will enable any kind of
[PC] First to define what is “broad general accurate
semantic interoperability”: a system of agreed data structures and
programs that allow *any* local group using this common system to place
information **on any topic** on the internet or some other public place, or to
transmit it directly to another system, and have the information interpreted in
the sense intended by its creators, regardless of whether the transmitting and
receiving systems have any prior contact.
The tactic I envision as being the closest I can imagine to
one enabling broad general accurate semantic interoperability uses the FO in
ontelms in the FO all have a meaning agreed to by the participants, and the
logical specifications and linguistic documentation is unambiguous enough to
satisfy all participants that they agree on the intended meanings,
(2) The ontelms
in domain ontologies or upper ontologies are identical to or logically specified
as FOL combinations of ontelms in the FO.
(3) The computations
performed with ontology-specified data in applications (other than simple
input-output, or computations not affecting data communicated among applications)
are performed either (a) using an agreed common implementation of FOL; or (b)
the procedural code that is part of some element in the FO.
(4) When any
two programs that want to interoperate and have separately developed domain
ontologies need to communicate, then in addition to the data that is to be
transmitted, the transmitting system must send all the logical descriptions of the
domain elements needed to describe the data that are not already in the FO or
in some public extension used in common between those two applications. There
then needs to be an integrating program that (on the receiving side) takes the new
descriptions of previously unknown elements, and integrates them into the local
ontology, to arrive at an ad-hoc (temporary) merged ontology that is
sufficient to properly interpret the data communicated. The merger should be
accurate because all of the new ontology descriptions use only FO elements in
FOL combinations, and the FOL implementation is common among all communicating systems.
application that can properly interpret elements of the FO should be able to
properly and consistently interpret elements described as FOL combinations of those
the computations performed by all applications using the FO should all arrive
at the same inferences from the same data. That is all I can expect to demand
for programs that are intended to be interoperable.
any procedural code is used locally that manipulates the data other than for
input output or presentation, there may be a risk of misinterpretation. The
local programmers need to be aware of the risk, and avoid misuse of the data so
as to change its intended meaning.
information not transmitted to other systems, of course local systems have
complete freedom to use them as they consider optimal. It is only the
information transmitted to other systems that has to be interpretable by means
of the FO specification.
that the FO will be able to have procedural code labeled as functions. Any systems
that require procedural code that is not adequately mimicked by FOL can add it
as a primitive function to the FO.
FO, in order to accommodate newly mapped systems that require new primitives,
should have an expeditious procedure for rapidly adding new primitives, after
review by the technical committed agrees that the new element is not FOL
specifiable using existing FO ontelms, and is not redundant or logically
contradictory to the exiting FO.
I can anticipate some objections or problems in this tactic, in
particular on the issue of the ontology merging . One potential problem may be
in recognizing when the intended meanings of elements in the separately developed
domain ontologies are identical. Since the FO allows alternate structures to
represent the same meanings, but has translation axioms among them , the
various alternatives can be calculated and compared for identity. But unless
the system can develop some normal form into which all elements can be converted,
identical meanings may not be recognized as such. I do not have any feeling
for how easy it might be to develop a normal form for the FO, or whether failure
to recognize identity would have significant negative effects.
An additional issue is whether newly added axioms could change
the interpretations of existing FO ontelms. To minimize that potential, it
would seem important to try to identify all axioms necessary to specify the intended
meanings of the FO primitives as fully as possible at the earliest stage, so
that few if any need to be added after the initial shake-down period of a few
years. Additions that are conservative extensions of the FO may not be
problematic in the same way.
I expect this approach to semantic interoperability to be
(1) faster than a slow aggregation of local agreements that eventually
coalesce into some usable global agreement; (2) less costly than the ad hoc creation
of semiautomated mappings between different ontologies; and (3) more accurate
than any automated mapping, at least until machines have the intelligence and expertise
of trained human ontologists.
[PH] > BUt to get down to details. Take the basic
ideas of timepoint, interval and duration. What is the FO for these? Is the
timeline dense or discrete? They are logically incompatible, so either one
cannot be in the FO. So we simply make no assumptions as to continuity or
density. Are timepoints totally ordered? SOme axioms (eg the situation
calculus) say no, so we cannot assume that. Do intervals
meet at points? Many theories assume so, but there are some that refuse to even
contemplate points in this exact sense; so we cannot assume that the temporal
FO allows Allen-interval-relation reasoning. What we are left with in the
temporal FO is that time-intervals can be partially ordered and might be
contained on one another. Not very much, this, for a temporal FO. Not enough,
for example, to even support simple calendar applications, which would have to
all be in extensions. In fact, just about anything useful at all will have to
be in some extension, and they are all logically incompatible with one
So we have a variety of temporal ontologies, all mutually
incompatible. Which is exactly what we have had for the past decade or more.
> I see absolutely no reason why this pattern will not
be repeated over and over again.
Every primitive including time
(points and intervals) will have to be agreed to by the majority of participants
in the FO project. I wouldn’t attempt to dictate an outcome. I would
expect the majority to want to represent the ordinary interpretation of time used
in most physics, that the time line (as measured by any one clock) is
isomorphic to the real line (or at least to rational numbers), and its
magnitude is measured by the distance between the two end points, using some
time unit. If this cannot accommodate other preferred theories, then the other
theories, if they cannot be specified with the same primitives, may not be
compatible with the agreed FO. The FO can include things like open, semi-open
and closed intervals, and ways of testing whether they abut or overlap, or are
disjoint. If the *agreed* methods do not accommodate those who prefer
other theories, then those who feel they need those other theories will
presumably choose not to participate in the project. I don’t expect such
holdouts to create any problems for the project. The goal is not to create a
universally acceptable FO, but one that has a wide user community, so that
those who *want* to interoperate accurately with a wide community will
have a means to do so. I expect that the overwhelmingly largest number of
end-users will be database developers, who are not likely to be concerned about
the finer points of such theories and will find any self-consistent theory that
gives them measurable intervals and fixed time locations as satisfactory.
I expect most users to be more
proprietary about different representations that affect specific domain elements.
If those can all be specified logically using FO primitives, they can all use the
same FO and use their preferred local representations, having translations
among them. More logically sophisticated ontology developers may (or may not)
conclude that they cannot reconcile their local uses to the common FO. It will
be a shame, but they can create their own FO (perhaps by mere excision of a few
theorems in the most common FO) and communicate accurately within their own
*** on a point from a different note from PatH ***
[PC] >> There is no logical contradiction in an
>> *describing* logically contradictory theories
[PH] > Yes, there is, at least if an ontology is
itself a logical theory, which I take it we all agree that it is.
[PC] Part of the FO is a logical theory (other than the
procedures that may implement some functions), but my understanding of a
logical contradiction is that it requires something that can reduce in whole or
P(x) and not P(x).
But I don’t see the logical contradiction in:
P(x, ?CONTEXT1) and not P(x,
Where ?CONTEXT1 is not equal
The ‘contexts’ are the incompatible theories
described as combinations of the elements of the FO.
[PH] > . The OBO foundry, for example, is in wide use,
has funding, a vibrant and active user community, etc.. But it embodies and
sets in stone some very bad (IMO) ontological decisions. And now it is
impossible to change or even discuss these because the very utility of the
'consensus' of the OBO foundation makes it practically impossible to change it.
Ø . .
> This kind of ossification of early decisions happens
throughout large- scale standards activities, and I see no reason why it won't
happen here in the same way and for the same reasons
[PC] The FO project as I envision it is intended to avoid
precisely those problems. The ontological decisions used in the upper level of
OBO (specifically BFO) for example were *not* determined after a bunch of independent
users tested it in some practical applications - the minimalist single-inheritance
BFO was created by a small group with a unique viewpoint. The FO will have to
be (a) satisfactory to a lot of people to start; and (b) survive testing with
at least a dozen practical applications that actually test it as an inference
engine, not just as a hierarchy; and (c) from the start and always public and
open so that anyone who detects a flaw can inform the technical committee that
manages it. This doesn’t guarantee that the result will last forever,
but it makes its likely that it will be more usable and more long-lasting than
any of the foundation ontologies thus far developed by small groups (or, as
SUMO, even with some minimal input from a larger community but ultimately
restricted by its very few managers). If you think that CYC would be a better
starting point, as I do, then it may well be that the public part of CYC will
turn out to be the backbone of the FO, perhaps with some minor changes and
The FO, if it develops as I hope, will always be open
to supplementation and even modification. If it proves to be necessary even
after a few years, it should continue to evolve to take advantage of any new
lessons learned from applications. I would hope that an agreement against
freezing the FO would be part of the agreed process, at least until such time that
it appeared to be adequately stable so that only conservative extensions could subsequently
>> [PC] My expectation is that, after some initial
period in which
> the FO is used by, say, at least 50 independent
groups, the need to
> add new primitives will dwindle
[PH> I see no reason why the rate would dip even
slightly. Cyc did not experience any such 'reduction to the primitive'.
[PC] I recall some paper or presentation by Doug Lenat in
which he asserts that the need to modify the BaseKB (common to all
microtheories) dwindled to zero or almost zero after some time (not sure how long).
The BaseKB is not an FO, but its concepts are similarly basic. That is the
only analogy I can think of between CYC and the FO – what part of CYC did
you have in mind that keeps growing?
In any case, that is precisely one of the questions that only
a project like the FO project could answer – in response to a method that
tests that specific question.