Dear Matthew, (01)
I agree with your points. I'd like to add some comments and give
a historical example of the way a simple theory develops over time
into a large family (a hierarchy) of related theories. (02)
JFS>> There is no [stage in the development of an ontology] that is
>> "just enough" for *all* applications. Cyc, for example, found
>> that no matter how much knowledge they have formalized over the
>> past 26 years, they can't get up to a level that is "enough".
>> Every new application requires more. (03)
MW> What this does is change the problem slightly from actually having
> an ontology that does capture everything, to having an ontology that
> is easily extensible when things are found that are beyond its current
> scope. (04)
I agree. But if you think of a ontology as a single, unified theory,
then you have many thorny issues about what it means to be extensible.
But if you think of an ontology as a collection of theories organized
in a hierarchy, no single theory ever changes. Instead, each innovation
adds another theory to the hierarchy, which may be a generalization,
a specialization, a sibling, or a cousin of some other theory. You
can also compare and combine theories. (05)
MW> Another thing that falls out from this is how you deal with context.
> By this I mean what is left implicit. Making the context explicit
> becomes increasingly important if you want to adopt this approach. (06)
Yes, you can think of context as some additional statements S that are
added to a theory T to specialize it for some particular application.
But there are also many other reasons for adding more statements.
In terms of the hierarchy, the deductive closure of T with more
statements S is a new theory T2 that is placed below the original T. (07)
JFS>> But for any given set of applications, it is not too difficult
>> to formalize just enough for those applications. (08)
MW> Doing this for a known set of applications is relatively easy.
> The challenge is to enable arbitrary addition of applications. (09)
I agree. And my suggestion for supporting an open-ended number of
applications of any kind is to organize the collection of theories
in a hierarchy. Any change of any kind can be accommodated by
inserting a generalization, specialization, sibling, or cousin. (010)
To illustrate how a collection of theories evolves from a simple
starting point, I'd like to review the developments that evolved
from George Boole's algebra of the mid 19th century: (011)
1. The original Boolean algebra had four operators, represented
by the arithmetic symbols +, x, -, and =, and two constants
0 and 1. But he modified the axioms of the usual arithmetic. (012)
2. Boole interpreted the letters related by those operators in three
different ways (propositions, sets, or monadic predicates), but he
used exactly the same symbols and axioms for all interpretations. (013)
a) Letters such as A, B, and C would represent propositions:
'A + B = C' means C is the disjunction (OR) of A and B.
'A x B = C' means C is the conjunction (AND) of A and B.
'-A' is the negation of A.
'A=0' means A is false.
'A=1' means A is true. (014)
b) Letters represent sets:
'A + B = C' means C is the union of A and B.
'A x B = C' means C is the intersection of A and B.
'-A' is the complement of A.
'A=0' means A is the empty set.
'A=1' means A is the universal set of everything. (015)
c) Letters represent monadic predicates applied to some fixed
or implicit subject or context. In modern notation, let
s represent the subject and use the notation A(s):
'A + B = C' means A(s) or B(s) = C(s).
'A x B = C' means A(s) and B(s) = C(s).
'-A' means ~A(s).
'A=0' means A(s) is false.
'A=1' means A(s) is true. (016)
During the 1860s, there were many applications, discussions,
extensions, and revisions of Boolean algebra: (017)
1. Boole had interpreted '+' as exclusive OR for propositions
and disjoint union for sets, but many people preferred to
use that symbol for inclusive OR and the modern union. (018)
2. De Morgan showed that you only needed two operators, and
you can define '+' in terms of 'x' and '-' or define
'x' in terms of '+' and '-'. (019)
3. Peirce introduced the "claw symbol" '-<' as a way of writing
less-than-or-equal. He interpreted -< as subset for sets and
material implication for propositions or monadic predicates. (020)
Up to this point (late 1860s), the same letters, operators, and
axioms were still being used for propositions, sets, and predicates.
But in the 1870s, Peirce and Cantor specialized Boolean algebra
into different branches for propositions and sets. (021)
When applied to sets, Boolean algebra only considered subsets,
and it didn't distinguish a single individual from a set with
one member. During the 1860s and '70s, many mathematicians
debated whether to distinguish individuals from singleton sets.
In the mid 1870s, Georg Cantor developed modern set theory in
which the basic primitive is a dyadic operator x?S for x is
an element (or member) of the set S. The other operators of
union, intersection, and subset were defined in terms of ?. (022)
In 1870, Peirce extended Boolean algebra to dyadic predicates, in
a paper De Morgan called "the greatest contribution since Boole."
In papers of 1880 and 1885, Peirce extended Boolean algebra by
adding operators for repeated addition (using the Greek letter
Sigma) and repeated multiplication (using Pi). He called Sigma
the _existential quantifier_ and Pi the _universal quantifier_.
Although he introduced the operators in 1880, he didn't develop
the full theory of first-order logic until 1885. (023)
In 1879, Frege abandoned the Boolean notation and introduced a
tree-structured notation for full FOL. Peano called Frege's
notation "unreadable", and he adopted the Boole-Peirce algebraic
notation. But Peano changed the symbols because he wanted to
mix the operators for logic and set theory in the same formulas. (024)
I presented this historical summary as an example of the basic
principles about the evolution of a hierarchy of theories: (025)
1. Start with a simple theory, such as the original Boolean algebra. (026)
2. You could consider the switch from exclusive OR to inclusive OR
to create a different theory. But you could also consider it
an extension by using both operators and assigning different
symbols for each. (027)
3. This raises the question whether two theories with different
symbols, but exactly analogous operators and theorems are the
"same" or "different". I would prefer to call them distinct,
but *analogous* theories, since they might later be extended
in different directions. For example, Peirce and Cantor split
Boolean algebra into distinct theories of logic and set theory,
which Peano later combined. (028)
4. If you wanted to organize these theories in a hierarchy, you
could start with the original Boolean algebra and use analogy
to make distinct copies with different symbols for sets and
5. Then Peirce and Cantor would create more specialized (AKA
extended) theories for FOL and set theory. Peano combined
them in a common specialization, which has been very widely
used throughout the 20th century. (Note the advantage of
treating theories with different symbols as distinct.) (030)
6. But it's also possible to split off other useful developments.
For example, Cantor made a sharp distinction between an
individual and a singleton set. But plurals in English and
other languages don't make such a sharp distinction. (That's
why students are often confused about that distinction when
they first encounter set theory.) In the 20th century, various
theories of mereology introduced a partOf operator, which is
analogous to subset, and they don't have an element operator. (031)
7. Boole's original algebra used A=1 for truth and A=0 for
falsehood, but he didn't rule out intermediate values.
Both multivalued logic and strict two-valued logic are
distinct specializations of the original Boolean algebra. (032)
This story illustrates the basic ways in which theories evolve,
and that's the framework I proposed for ontologies: (033)
A Dynamic Theory of Ontology (034)
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (036)