From: iac!iac@uunet.uu.net (IAC tool kit)
Newsgroups: comp.object
Subject: Re: O.M() versus M(O) notation
Summary: Hierarchies can be good
Keywords: Zen, hierarchies, motorcycles
Date: 18 Aug 92 04:39:29 GMT
Reply-To: iac!simpson@uunet.uu.net
Organization: Investment Technology Group, Culver City, CA

In article <PCG.92Aug14170701@aberdb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo Grandi) writes:
>Yes, but all hierarchical taxonomies are inappropriate, in the sense
>that they always cause bad classifications. Just consider the Unix
>filesystem; one is forced to choose between thse two organizations:
>
>	c_compiler/bin c_compiler/bin ada_compiler/man ada_compiler_man
>	bin/c_compiler bin/ada_compiler man/c_compiler man/ada_compiler
>
>when neither is really appropriate; the man page for the ada compiler is
>both a man page and part of the ada compiler package, and neither aspect
>prevails. Similarly in many data design instances. Hierarchical database

True, but this argument is misleading because it says that "all
hiearchical taxonomies are inappropriate". I don't believe this to be
true. It is true that objects in the real world are made up of many
attributes and their are an infinite number of ways to categorize real
world objects. The AI people noticed this long ago and tried different
ways of representing knowledge such as semantic nets and such. But the
problem with this type of organization is its complexity. No computer
scientist (or taxonimist) that I know of yet has developed a clean
way to represent real world knowledge so that it can be efficiently
manipulated, easily re-categorized, made easy to understand and made easy
to extend. Because of this, we throw a lot of information out and only
represent the information that we deem useful to solve our problem at
hand. Hierarchies are one way of doing this. Suppose we try to
represent mammals and we have an operation that notes that mammals
give live birth. But the platypus is an animal and it doesn't give
live birth. Do we chuck our operation? Not necessarily. We can take
note of this restriction and continue onward.
	There are many languages developed by people who don't have a
real grasp of the issues and some developed by people who do have a
grasp of the issues but choose to make their decisions a different way
than yours. It doesn't mean they are wrong. Each language has its
place and if you don't like the language, modify it to your taste or
develop your own. It is true that more people need to learn the
differences between type algebras, type interfaces and type
implementations. This would allow them to use types more effectively.
A lot of the argument going on here is over terminology and I don't
expect it to be resolved and set in concrete here or in any other news
group.

	"Once we have the handful of sand, the world of which we are
conscious, a process of discrimination goes to work on it. This is the
knife. We divide the sand into parts. This and that. Here and there.
Black and white. Now and then. The discrimination is the division of
the conscious universe into parts."
...
	"This structure of concepts is formally called a hierarchy and
since ancient times has been a basic structure for all Western
knowledge. Kingdoms, empires, churches, businesses are all so
structured. Tables of contents of reference material are so
structured, mechanical assemblies, computer software, all scientific
and technical knowledge is so structured---so much so that in some
fields such as biology, the hierarchy of
kingdom-phylum-class-order-family-genus-species is almost an icon."
	-- Robert Pirsig, "Zen and the Art of Motorcycle Maintenance"

-- 
Scott Simpson, Investment Technology Group, iac!simpson@uunet.uu.net