Re: Modularity
John F. Sowa writes:
> I have been arguing that modularity is essential for
> developing software, ontology, and reasoning engines.
...
>
> I emphasized the need for modularity as a way of aiding the
> design, development, and testing processes. But it is just
> as important for the standardization process. There is no
> way that we can ever reach agreement on a monolithic ontology.
... not even in ``Brave New World''.
> But there are many modules that have been standardized and many
> more that are ripe for standardization. Most of them, however,
> are rather small, detachable pieces, such as mathematical
> theories, representation of dates and times, chemical elements
> and compounds, and important computational packages, such as
> floating-point arithmetic or software APIs.
>
> Although the upper-level concepts of an ontology are
> prerequisites to standardizing most of the lower levels,
> that makes them hard to standardize because they affect
> everything at every level.
Better: ``they may affect''. Only signature changes affect the less
abstract levels. E.g., if you decide to remould an upper part of
your ontology in order to make it more fine-granular[, e.g. wrt.
inheritance], while leaving the signature intact, this does not affect
its users[, i.e. the lower parts of your ontology].
The [GoF-]facade pattern could also help to keep dependencies on
internal structures low /*but then you have to publish a policy, when
to rely on the facade and when to bypass it, early.*/.
> That is why the earliest modules
> to be standardized are either domain-independent mathematical
> theories
ACK.
> or conventions for representing
NAK.
> dates, times, and
> measures, which can be standardized independently of any theory
> of Time, Space, or other things that are being measured.
>
I'm not a fan of mixing representational[, or better:
``communicational'',] issues with ontological issues. If you talk
about the representation of[, say,] a date, in fact you talk about how
people happen to serialise ontological content for communicational
purposes.
In my opinion, you keep things cleaner and easier, if you keep models
of a [kind of objective] [maybe] physical world separate from a model
for the communication, which transfers ontological content. I don't
say, one shouldn't model communication, but I see it in a position one
meta-level above the models of the graspable.
MODULARISING ANYHOW IS NOT ENOUGH
Another important strategy, that tells you how to modularise, is that
to brush dependencies /*``uses'', ``knows'', ``operates on'',
``modifies'', ...*/ in a global direction. And by dependencies, I
mean those between ontological subsystems on all levels of granularity
/*from the simple binary reference between two entities up to large
theories*/. Especially, it is desirable to avoid cycles whenever
possible. A region of a graph, which has no cycles may be organised
into layers -- a great simplification.
That said, I find a clear direction in your enumeration above:
- logic
- div. mathematical theories
- physics
- chemistry
- biology
- sociology /*i.e. statistical phenomena on cellular systems*/
- global economy
...
and dependency goes from lower to upper, i.e. the upper parts must
not even know, that the lower exist.
/*Of course, this is not only a chain, but a tree or a forest or even
a more general graph:
biology is not the only user of the upper parts. Some theory around a
steel screw [e.g.] would probably be located beneath biology on the
same level.*/
Bye,
Markus
- References:
- Modularity
- From: "John F. Sowa" <sowa@BESTWEB.NET>