Part To Whole As Whole Is To Part

One of FrankLloydWright's OrganicArchitecture principles, this seems to prefigure the fractal concept of "scale symmetry", one of the most striking and beautiful aspects of SystemsAsLivingThings.

From the OrganicArchitecture page: ORGANIC denotes in architecture not merely what may hang in a butcher shop, get about on two feet, or be cultivated in a field. The word organic refers to "entity"; perhaps integral or intrinsic would therefore be a better word to use. As originally used in architecture, organic means PartToWholeAsWholeIsToPart. So "entity as integral" is what is really meant by the word organic. INTRINSIC.
Err, can you explain this a bit more? Do you mean that my eye is made from lots of little copies of itself? -- DaveHarris
Not quite, though you might design, say, a theatre, using the arrangement of rods and cones in an eye as a metaphor. A better example is the structure of ferns. MichaelBarnsley cut his teeth producing tiny and most elegant algorithms for generating images of fern leaves and branches. He generalized his work into the concept of IterativeFunctionSystems? and seems to be making a fair buck using them as a compression and image analysis/explication techniques - see for lots more on this.

In our context, we might pursue the design of a large-scale distributed system by extending the patterns designed into each of its elements. This is not always sensible - economies of scale have a habit of biting hard. It is, however, a good way to think about scaling - even if different patterns apply, the effect may still be made consistent by way of PartToWholeAsWholeIsToPart.

-- PeterMerel
Yes, I know what fractals are. Basing a theatre on an eye metaphor might be a good idea, but surely is not relevant to whether it has fractal design. And scaling issues do bite, to the point where I think the guideline is misleading.

It usually seems that scaling issues bite us when they deal with physical constraints like time and space. In logic intensive problems, scaling usually works okay. --MichaelFeathers

I suspect that what Wright is getting at is better expressed by Alexander's notion of a generative grammar. For example, your two eyes have a lot in common because they are generated from the same part of the grammar of human bodies (and not because they have the same function). The two things are in physically different places, but the grammar unifies them and we sense this unity. Where the grammar is recursive we get fractals, but that's just a special case.

In OO we use generalization/specialization as a mechanism of extension. If the specializations do not break any guarantees of the general stuff we can have substitutability. It seems to me that generative things may forego substitutability because the generated item is meant to be used in a different context. Different eye socket for instance. Perhaps there is something in this in software. Patterns are specializations that are not necessarily substitutable. DesmondDSouza calls them refinements, I think. -- MichaelFeathers

What truly comes across as organic is (a) the commonality in design of different things, coupled with (b) adaptations to local circumstance. (The adaptations might be extreme, as when the hand is a modified foot.) -- DaveHarris

See SystemsAsLivingThings.

Are there any non-recursive grammars? DildarMarhas

How about
 bit ::= 0 | 1
The question is whether there are any interesting non-recursive grammars.
The CompositePattern is the essence of PartToWholeAsWholeIsToPart in OO design. I find that the introduction of the CompositePattern often has a dramatic and almost mystical impact on the composability of a set of objects. And sometimes a deleterious effect on its understandability.

I've noticed that the CompositePattern is especially good when you are describing man-made things, and not so good when you are describing natural things. It is good for describing math, organizations, VLSI chips, and programs. It is not so good at describing plants, animals, or ecosystems. I have wondered whether PartToWholeAsWholeIsToPart is not so much a property of nature as it is of humans; we want things to be that way and so we force nature into our box.
I think CompositePattern is capable of describing any recursively composable structure. When one tries to describe natural systems like plant etc, one is dealing with a depth and breadth which is mind-boggling. Just what would the primitives be in such a composite? Quarks? How would we represent the 'irreversible composites' (chemical reactions). Also how can we represent the temporal aspects of such composites.

In any case, I feel that CompositePattern, being a generative pattern, is capable of grasping the temporal aspects of changing structure of objects. An object realized through some CompositePattern can be thought of as a point-in-time view. The structural evolution (SchemaEvolution) of such an object can be traced by the CompositePattern. There may be cases when a structural change in the object requires the CompositePattern itself to change ie it requires creation of new types of components.

The CompositePattern can represent changes in behavior too.

View edit of October 21, 1999 or FindPage with title or text search