Dear Matthew, Chris, and Nicola,
                  
                  MW
                  > One of the problems with primitives is that if
                  you are developing
                  > an ontology, then it is quite likely that
                  entities that start out
                  > primitive may acquire a complete definition over
                  time.
                  
                  Yes, indeed.  That is also a problem with URIs that
                  are supposed to
                  point to unique definitions.  When you import such a
                  definition into
                  a context A that contains a lot of other axioms and
                  definitions, the
                  simple imported terms will be used in more specialized
                  ways.
                  
                  Then if somebody else imports the same term into a
                  different context B
                  with different axioms (or procedures), it will be used
                  in a different
                  specialization.
                  
                  So far, so good.  But a problem arises when systems A
                  and B exchange
                  messages that use only the "common" vocabulary defined
                  by the shared
                  URIs.  They may use the same terms, but their
                  specialized "senses"
                  of the terms may be inconsistent.
                  
                  CM
                  > It is impossible to define addition in terms of
                  zero and successor.
                  > The reason for this, in a nutshell, is that the
                  addition symbol is
                  > not eliminable; given the axioms for addition
                  along with the axioms
                  > for zero and successor, you can "say" things that
                  you cannot say
                  > in terms of the axioms for zero and successor
                  alone...
                  
                  Yes.  In general, a "closed form" definition can be
                  eliminated.
                  For example,
                  
                     f(x) =  3x^2 + 5x - 17
                  
                  You can replace any occurrence of f(y) by replacing x
                  with y in the
                  defining _expression_.  But you can't do that for
                  functions that are
                  directly or indirectly defined by recursion.  That is
                  true of most
                  terms in any realistic ontology.
                  
                  You can adopt a language that prohibits recursion, but
                  that doesn't
                  solve the problem.  It just makes it impossible to
                  state the full
                  definition of your critical terms.
                  
                  Basic contradiction:  You can't have a practical
                  system with completely
                  specified URIs and a restricted language to define
                  them.
                  
                  NG
                  > This is the reason why lightweight ontologies
                  work very well as long as
                  > their terms are simple and understood by
                  everybody. When we have very
                  > general, highly ambiguous terms, or technical
                  terms whose meaning is
                  > not understood by everybody, then the importance
                  of a clear semantic
                  > characterization (i.e., an axiomatic ontology)
                  increases.
                  
                  Yes, indeed.  And as in the examples by Chris, those
                  axioms will be
                  explicitly or implicitly recursive.
                  
                  The net result (Horror of Horrors!) is that your
                  ontology language
                  will be undecidable.  But as anybody who has worked
                  with any practical
                  application knows, people have learned how to use
                  undecidable languages
                  in practical ways for real-world applications.  In
                  fact, decidable
                  languages are *never* used in practical applications
                  without having
                  undecidable supplementary languages to do all the
                  "heavy lifting".
                  
                  John
                  
_________________________________________________________________
                  Message Archives: 
http://ontolog.cim3.net/forum/ontolog-forum/
                  Config Subscr: 
http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
                  Unsubscribe: mailto:
ontolog-forum-leave@xxxxxxxxxxxxxxxx
                  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
                  
                  
                  
_________________________________________________________________
                  Message Archives: 
http://ontolog.cim3.net/forum/ontolog-forum/
                  Config Subscr: 
http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
                  Unsubscribe: mailto:
ontolog-forum-leave@xxxxxxxxxxxxxxxx
                  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