[Top] [All Lists]

[ontolog-forum] Generalization, specialization, and interoperability

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: John F Sowa <sowa@xxxxxxxxxxx>
Date: Fri, 19 Sep 2014 10:15:56 -0400
Message-id: <541C3A9C.7090408@xxxxxxxxxxx>
In another forum, I sent a note about using the terms 'generalization'
and 'specialization' as a way to clarify relationships among ontologies
(or any theories of any kind).    (01)

In particular, they provide a convenient way to specify the conditions
for interoperability among theories and the systems they describe:    (02)

  1. Definition.  A theory A is a generalization of a theory B iff B
     entails A:  every model for which B is true is also a model for A.
     If A is a generalization of B, then B is a specialization of A.    (03)

  2. Even when those two words aren't used, the concept is implicit.
     In Cyc, for example, they are the basis for the partial ordering
     of microtheories:  every microtheory is a specialization of
     (entails) the theories above it in the hierarchy.    (04)

  3. As another example, Schema.org is a very general (underspecified)
     collection of types (or classes) that many developers adopted for
     applications that are inconsistent with one another.  But the
     theories that specify those applications (explicitly or implicitly)
     are all specializations of Schema.org.    (05)

  4. If data d is specified in a general theory, such as Schema.org, and
     used a more specialized theory X, all properties of d specified in
     the general theory may be assumed in X.  But any property P that
     is not specified in the general theory may be used in X only after
     a test such as "If P(d), then ..."    (06)

  5. With these two terms, the conditions for interoperability among
     two theories A and B (or any systems that are specified by or
     described by A and B) can be stated:    (07)

     a) If two theories A and B are inconsistent in their details,
        they can interoperate on shared data that is specified by
        a common generalization C.    (08)

     b) To use data specified in C, neither A nor B may assume any
        properties of that data not specified in C.  But they can use
        the details in conditionals that begin "If x has property P ..."    (09)

     c) Points 5a and 5b are implicit in the way interoperable systems
        work.  The spec's for the data on which interoperability is
        required are the common generalization C.  Any property not
        specified in C can only be used in A or B after an appropriate
        test.    (010)

The generalization/specialization distinction can also clarify other
relationships, practical and theoretical.  For example, we have often
discussed issues about defaults, open worlds vs close worlds, and
related problems in nonmonotonic reasoning.    (011)

But every proof in a nonmonotonic logic can be converted to a proof
in a monotonic (classical) logic from a suitably revised theory --
because each nonmon step adds, deletes, or modifies a monotonic axiom.    (012)

After the nonmon proof has finished, it's possible to gather up all
the monotonic axioms into one purely classical theory, from which an
equivalent proof can be carried out with classical rules of inference.    (013)

In terms of generalization/specialization, every nonmon proof
corresponds to a walk in a lattice of classical theories.  The full
lattice may be infinite, but only a finite set of nodes are used
for any application:  The number of nodes is equal to the number
of steps in the nonmon proof.    (014)

Summary:  The terms 'generalization' and 'specialization' can be
used to explain and clarify a wide range of issues, both practical
and theoretical.    (015)

John    (016)

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    (017)

<Prev in Thread] Current Thread [Next in Thread>