Eric, (01)
That is true of most current ontologies: (02)
EP> The only way that ontologies can form a lattice is when
> they depend and build upon one another like Ontolingua
> or Cyc microtheories. If we were to take the existing
> upper ontologies, they would form a *completely* flat
> lattice because they are not monotonic variants of one another. (03)
But that is because they were not designed in a systematic way. (04)
A lattice is nothing more nor less than a systematic
multiple inheritance hierarchy. In object-oriented systems,
such hierarchies have proved to be useful for defining
new objects and new types of objects by inheriting
structures and definitions from more general types. (05)
Each object in an O-O hierarchy has an associated theory:
namely, the set of axioms that describe the structures
and properties of each object type or instance and the
preconditions and postconditions of the methods of each type.
Although such theories are not usually stated explicitly,
they could and would be stated, if there were any tools
that could make use of such statements effectively. (06)
Whenever you define a new object as an instance of some
type, that object inherits a theory, which is the union of
all the axioms of all the theories associated with that
type and its supertypes. As soon as you make assignments
to any of the local variables of that new instance, you add
new information, which effectively creates a new theory,
which is the union of the theory from which it was created
together with the new information that distinguishes the
instance from its type and its other siblings. (07)
In effect, an O-O library or collection of libraries is
hierarchy of objects defined by a hierarchy of theories
(explicit or implicit). A running program builds on that
hierarchy by creating new instances, each of which has
its own associated theory that specializes the theories
of the type from which it was created. (08)
But if you look at the programs that were created before
O-O systems became available, you would have found a much
flatter system of theories, in which every program had its
own theory, which was not related in any systematic way to
the theories that describe any other program. (09)
Today, ontology development is at roughly the same level
of sophistication as program development in the 1960s.
Each one is a monolithic lump, which does not take advantage
of the all the lessons learned by the programming community:
structured design, modular design, O-O design, etc. (010)
The procedural methodologies don't carry over exactly to
the declarative, logic-based languages, but there are many
structural similarities. When I talk about a lattice of
theories, all I'm saying is that we should take advantage
of structured, modular, inheritance methodologies that have
proved to be useful in the programming community and adapt
them to ontology design, development, sharing, use, and reuse. (011)
John Sowa (012)
_________________________________________________________________
Message Archives: http://colab.cim3.net/forum/ontac-forum/
To Post: mailto:ontac-forum@xxxxxxxxxxxxxx
Subscribe/Unsubscribe/Config:
http://colab.cim3.net/mailman/listinfo/ontac-forum/
Shared Files: http://colab.cim3.net/file/work/SICoP/ontac/
Community Wiki:
http://colab.cim3.net/cgi-bin/wiki.pl?SICoP/OntologyTaxonomyCoordinatingWG (013)
|