SUO: Re: General Design
Julian and Jon,
I agree with Julian's three levels, but I would use
different labels for them:
JF> thing
> philosophical-stuff
> useful-stuff
The top node could be called the "empty" node since
it has no axioms and is true of everything. The bottom
level could be called the "concrete instance" level,
since the categories apply to instances of things that
people see, hear, feel, smell, and taste. The middle
level is the level of generalizations or abstractions
from the lower levels.
Some labels in the middle may come from philosophical
discussions, but many of them come from physics (which
used to be called "natural philosophy"). They are
extremely useful for stating general principles that
apply to more than one application. Without them,
there is no hope of sharing modules between different
concrete applications.
Jon Awbrey stated it well:
JA> Or maybe axioms are the cart and experiences are the cartload.
> It can a take a couple hundred or a couple thousand years of
> experience with a motley crue of crude examples before some
> people will start to notice that the same darn patterns of
> thought tend to keep turning up in what appears to be the
> darndest places, and the useful sorts of axioms only but
> gradually percolate themselves to the top of the heap.
> But even this is a retrospective illusion. At the
> beginning of the story you don't even know what
> the "examples" are supposed to be examples of.
My major criticism of Cyc, Sumo, and Dolce is that
the developers started from the top down with some
preconceived assumptions about what would be
necessary for every level beneath the top.
I believe that it is important to scour the philosophical
and scientific literature in order to take an inventory
of all the best distinctions and generalizations that
anyone has ever discovered. But rather than organize
those distinctions according to somebody's best guess,
I would recommend using an algorithm that would generate
the organization automatically. And I would iterate and
reiterate the application of that algorithm with every
new addition at any level of the hierarchy.
There is a lot more to be said about the algorithms and
how to use them. But for starters, I would suggest that
people look at the work on Formal Concept Analysis (FCA)
for deriving lattices from low-level distinctions. For
a brief discussion of lattices with an example of FCA,
see Section 7 of my tutorial on math & logic:
http://www.jfsowa.com/logic/math.htm#Lattice
Note that when you apply FCA or any other method for
deriving lattices, the algorithms often generate new
nodes that don't correspond to any names in the original
language. When philosophers and scientists find such
nodes, they coin new words from Greek roots. Those are
the "philosophical terms" that Julian said were not
useful. But mathematically, they are important for
labeling potential generalizations, which may turn
out to be very useful for applications that no one
had ever considered before.
I won't say that FCA is the answer to all our prayers,
but I will say that it is better than drawing trees or
lattices by hand.
John Sowa