Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

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