Friday, June 13, 2008

Top to Bottom

It's hard to know if hierarchy is an idea or just a side effect of the way our brains organize information. It may have started as a side effect ... we tend to work from the particular to the general, which is how we recognize cartoon versions of everyday objects, etc. Children learn this very early.

But at some point, we clearly recognized that hierarchies are a useful way of organizing information, people, object-oriented software, etc. We create hierarchical organizations. Even primitive societies had leaders, priests, etc., and a chain of command.

So we use hierarchies to arrange our observations, such as the taxonomies used by Carl Linnaeus to classify plant and animal species. This is descriptive.

But we also explicitly create hierarchies. Businesses and the military both use hierarchical organizations to establish rank, precedence, etc. These structures are well defined and rigidly adhered to. So this would be considered a prescriptive hierarchy.

In object-oriented programming, you can have multiple hierarchies in place at once. There's an inheritance hierarchy that determines which classes are subtypes of which other classes, and what properties they inherit. There are also containment hierarchies ... which object is contained by which other object, etc. In XML terms, this is what determines an xpath.

Don't worry if that last paragraph didn't make any sense. It's all geek speak. The point is that hierarchies come into play in a very large portion of human thought. In fact, they could be considered what Charles Murray calls a meta-invention (Human Accomplishment: The Pursuit of Excellence in the Arts and Sciences, 800 B.C. to 1950), a cognitive innovation that enables other innovations or inventions to happen. Murry doesn't list hierarchies in his roster of meta-inventions, but it seems to fit his criteria.

Of course, if you ever had to do outlines in school, you know about hierarchies.

No comments: