Dear John, (01)
Generalization removes a property or method from
the old type to create a new type, while
specialization adds a property or method to the
old type to create the new type, by definition.
As a result of strict application of these
definitions, the result is a hierarchy by
construction. (02)
Perhaps INFO and DOLCE only offer such well formed
instances (I am not familiar with either), as many
programming languages (Delphi) also restrict type
constructors to only have singular inheritance
which avoids the very possibility of introducing
consistency errors. (03)
But what about languages with multiple inheritance
(C++ etc) where the new type is a combination of
old type properties and methods, given that the
specific new type definition ALSO leaves out some
of the properties and methods of the old types?
That would make a lattice rather than a hierarchy.
The problem is that the constructors might
introduce inconsistencies that are based on
combining properties and methods of an old type
with contradictory properties and methods of
another old type. (04)
Can you expound on such constructions? They
certainly can lead to some very ugly new types,
yet serendipitously produce interesting ones. Is
there any rule you can give that would make the
new type ALWAYS be a valid one (whatever valid
means) by construction, or must every new type so
formed be checked individually for consistency? (05)
Curiously,
-Rich (06)
Sincerely,
Rich Cooper
EnglishLogicKernel.com
Rich AT EnglishLogicKernel DOT com
9 4 9 \ 5 2 5 - 5 7 1 2 (07)
-----Original Message-----
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
[mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On
Behalf Of John F. Sowa
Sent: Wednesday, September 07, 2011 7:16 AM
To: ontolog-forum@xxxxxxxxxxxxxxxx
Subject: Re: [ontolog-forum] Universal and
categories in BFO & DOLCE (08)
Since there was some recent discussion about
generalization
and specialization in this thread, I decided to
check Google
for the phrase "generalization specialization
hierarchy".
There were 3,520 hits, of which the first one was (09)
http://people.cs.vt.edu/~kafura/cs2704/generalizat
ion.html (010)
This is Section 1.6 of the class notes for a
course at
Virginia Tech. (Excerpts below.) (011)
It has a clear definition of the terms with good
examples
that apply to both ontology and software design. (012)
John
__________________________________________________
____________ (013)
The following notes are based on preprints for the
book
_Object Oriented Software Design and Construction_
by Dennis Kafura, Prentice-Hall, 2000. (014)
1.6 Generalization (015)
Generalization identifies commonalities among a
set of entities.
The commonality may be of attributes, behavior, or
both. For example,
a statement such as "All windows have a title"
expresses a common
attribute among all entities that are considered
windows. Similarly,
the statement, "All windows can be resized."
expresses a common
behavior that all windows provide. Generalizations
are usually easy
to recognize as they contain words like "all" and
"every". (016)
Generalization may be defined as: (017)
Generalization -- the identification, and possible
organization,
of common properties of abstractions. (018)
This definition shows that generalization is not
abstraction although
the two are often confused. Abstraction aims at
simplifying the
description of an entity while generalization
looks for common
properties among these abstractions... (019)
One of the four forms of generalization is
hierarchy. In the case of
hierarchy, the commonalities are organized into a
tree structured form.
At the root of any subtree are found all the
attributes and behavior
common to all of the descendants of that root.
This particular kind of
tree structure is referred to as a
generalization/specialization
hierarchy because the root provides more general
properties shared by
all its descendants while the descendants
typically add specializing
properties which make them distinct among their
siblings and their
siblings' descendants. (020)
The second form of generalization is genericity.
In the case of
genericity, the commonality is expressed with the
aid of a parameter.
Various specializations are distinguished by what
they provide for the
parameter. For example, using genericity it is
possible to represent the
common properties of a "stack" through the
generalization of a "stack of
anything", where "anything" represents the
parameter. Specialized forms
of this generalization are "stack of integers" and
"stack of characters". (021)
The third form of generalization is polymorphism.
Polymorphism captures
commonality in algorithms. An algorithm may have a
nested if-then-else
(or case statement) logic which tests for the
exact type of an object
which it is manipulating. the algorithm performs
some operations on the
object based on the exact type of the object.
However, in many algorithm
the operations to be performed are the same, only
the type of the object
on which they are performed varies. Polymorphism
allows this nested
logic (or case statement) to be collapsed to a
single case in which the
different object types are treated in a uniform
manner. Through a
mechanism called dynamic binding, the algorithm
allows the object to
determine which of its operations to perform in
response to the
algorithms invocation... (022)
The fourth form of generalization is patterns. A
pattern expresses a
general solution (the key components and
relationships) to a commonly
occurring design problem. The attributes and
behavior of the individual
components are only partially defined to allow the
pattern to be
interpreted and applied to a wide range of
situations. For example, a
"wheeled vehicle" pattern might be defined in
terms of the components
"wheel", "axle", "frame", "body" and "power
source". The pattern would
also show how these components would be arranged
in relation to each
other (e.g., the axle must connect two wheels).
The pattern could be
interpreted in many different ways to solve
particular problems that
differ in their requirements for speed,
durability, payload, fuel
source, available materials, and other factors.
Example of the wheeled
vehicle pattern are "automobile", "horse-drawn
carriage", "ox cart",
"moon buggy" and many others... (023)
__________________________________________________
_______________
Message Archives:
http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr:
http://ontolog.cim3.net/mailman/listinfo/ontolog-f
orum/
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?WikiHomePa
ge#nid1J (024)
_________________________________________________________________
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 (025)
|