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 (01)
http://people.cs.vt.edu/~kafura/cs2704/generalization.html (02)
This is Section 1.6 of the class notes for a course at
Virginia Tech. (Excerpts below.) (03)
It has a clear definition of the terms with good examples
that apply to both ontology and software design. (04)
John
______________________________________________________________ (05)
The following notes are based on preprints for the book
_Object Oriented Software Design and Construction_
by Dennis Kafura, Prentice-Hall, 2000. (06)
1.6 Generalization (07)
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". (08)
Generalization may be defined as: (09)
Generalization -- the identification, and possible organization,
of common properties of abstractions. (010)
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... (011)
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. (012)
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". (013)
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... (014)
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... (015)
_________________________________________________________________
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 (016)
|