Models are useful abstractions, but the regularity and perfection of these idealizations doesn’t exist in nature. But there are laws of nature that things obey, and models are our entre to understanding and using those rules. At least at some coarse-grained level we can predict the future of real world events based on rules we have derived from a model-based understanding of real world things. There are no perfect circles in nature, but we can still calculate the circumference of a circle-like-thing with useful accuracy.

Software architecture is building and using models of software to help us understand the reality of software.

Software itself is based on models. But insofar as one of the primary types of data we deal with is indicative, data that indexes and describes something in the world, it is important for us to remember, as Rene Magritte famously reminds us, a picture of a pipe is not a pipe. And a record of a person is not a person.

What I’d like to explore in this rumination is the gap.

Underneath both the relational model and the object-oriented model, the two dominant models in software today, we find Zermelo-Fraenkel, or ZF, set theory.

There are two deterministic ways of describing the members of a set, intension and extension. Intension applies rules to a population to carve out set membership. Red-headed step children is an intensional set. Extension simply lists the members: the world’s greatest guitar players are Paco de Lucia, Pat Metheny, John McLaughlin, and Eric Clapton. (Ok, maybe not the same as your list.)

But, as Wittgenstein pointed out, humans have the ability to categorize, to make sets, based not on explicit rules but on family resemblances. We can include or exclude things in sets without applying exact rules. These conceptual categories are how we interact with the world.

So when we design and build our model-based, rule-based, logic-based software, we leave out stuff our users _know should be there_, things they _know should be included_.

How do we deal with the gap?

I don’t have a fully formed idea. But I think it may be to always build extension into our model of set descriptions to complement intension…to always have a way that users can say, ‘I know your software says birds fly, but a penguin is a bird, so just deal with it.’

This means no complete partitions. If you partition people on gender, and your subtypes are ‘male’ and ‘female’, build your software to enable users to extend it so it will accommodate the real world where we have hermaphrodites.

These aren’t exceptions. We should not have to deal with them as such. It is our software that is imperfect, not the world.

5 Responses to “On intension, extension, Wittgenstein and exceptional software”

  1. AMS Says:

    Max,

    It is clear that you sit next to a redhead in your day to day office life. Red-headed step child…Could there not be a more elegant way to describe? You are so…articulate. I challenge thee. And read on enthusiastically.

    -A

  2. Max Says:

    I trust the gentle reader will realize I meant no disrespect to redheads or stepchildren. For me – perhaps because I am neither – the expression from which I took the ‘rule’, ‘beat you like a red-headed stepchild’ – has become denatured. But a quick Google finds this history of the phrase and a little guidance as to its propriety (from WikiAnswers):

    The origin of the phrase “red haired step child” dates to the 1830’s & 40’s when Irish emigrants began arriving in America. The newly arrived Irish were somewhere below free blacks on the social scale at the time, and lived in segregated communities. Then, like now, young men were having sexual relations with young women before marriage. Sometimes the men were Irish and the girls were not. This resulted in many out of wedlock children with that red Irish hair. When these young women did finally marry, usually to a young man not of Irish descent, the new husband was not particularly patient or sympathetic to the red haired step child and treated them harshly. The phrase is derogatory although many do not know its origin, it is still considered an insult to knowledgeable people of Irish descent, and should be avoided in polite conversation.

  3. AMS Says:

    Ah…thank god for the internet. ! ;-)

  4. Paul Mace Says:

    So, what’s the problem? Are penguins in danger of extinction because some unmonitored software automata failed to note they can only fly when immersed in a fluid much denser than air?

    If you can smoke it without burning your hand or drawing flame into your mouth, it IS a pipe. Beyond that utilitarian threshold any gap is a quality judgment, not a categorical one.

    And there is always a gap between theory and practice. The question is always what doth it benefit a man to refine the practice? Architecting flight dynamics systems for Boeing? Proton back-scattering detection at GE Med Systems? Six Sigma accuracy in modelling is the rule.

    For the rest of the world, the result of consequential interaction of humans with software is called versioning–leading to regular paychecks for you and sometimes even me.

    But I’ll play your game. What if….?

    The Mind distinguishes–the particular cannot stand alone in memory. But there are no distinctions between distinctions, only degrees of separation. Both the intensional and extensional models are constrained to modest approximation. Who among us has world enough or time to design, program or compute to the levels of distinction of which the simplest Mind is capable? Will 10,000 minds at Microsoft and Intel eventually refine thje Core 10,000 processor running .NET 10000.0.0.f encompass all possible distinctions computationally?

    Or will we realize the dream of some other heuristic auto-programing pattern matcher like neural nets.

    Or are we looking at the wrong net?

    The computational exercise that most intrigues me is the planet-wide net. With the arrival of each new computational node, and its particular concerns, on the internet, the hive brain grows. What’s missing is the Mind. Not the hive mind. I don’t even know what that is–and neither does anyone else. The internet offers unparalleled sensory inputs, some in the form of unprocessed data, a greater amount pre-processed–but all of it available in exponentially greater volume each day. Model me a penguin that can swim that sea of information! Model me a great blue web-whale!

    Model me a mind that can approximate from net-sensory inputs distinctions that do not pre-exist, determine their degree of separation from distinctions previously drawn, and eventually either forget those for whom no future reinforcing correlations are encountered–or, alternately, examine those leaf-node outliers for their intrinsic, “not a pipe” uniqueness.

    Oh yes, the final gap to be bridged: place it all within the context of human culture so you can explain to your boss why this is in the budget? Or to Mimi why you want to quit your day job to pursue it :)

    pbm

  5. Max Says:

    I completely agree about your ‘utilitarian threshold’ – any artifact, such as software, or a pipe, is only intelligible in the context of its intended use. But surely there is some agreement about what good software is, or a good pipe. A good pipe draws nicely, stays cool in your hand, is long enough so that you don’t singe your eyebrows when lighting it, perhaps is readily concealable : ).

    Can one qualify the aesthetics beyond that threshold? When I was a boy my father gave me a copy of James Newman’s classic four volume ‘World of Mathematics.’ It is a collection of original essays on math, logic, and related topics by Decartes, Bertrand Russell, Heisenberg, Alan Turing, John von Neumann, and others.

    One of the essays is Hermann Weyl (of the Weyl Curvature Tensor and other deep quantum physical math) on symmetry. His essential argument is that symmetrical is beautiful (cf Eva Green in 2006’s ‘Casino Royale’, the _best Bond movie ever_), and we can measure symmetry. And I believe we can come to some common agreement about what good software is. And one of those points of agreement is that it doesn’t chafe…it doesn’t, at least too frequently, constrain us from where we want to or need to go to accomplish our task.

    My extended point, perhaps poorly made, echoes Hubert Dreyfus in ‘What Computers (Still) Can’t Do:’ we cannot reduce intelligence to rules. There are more things in heaven and earth, Horatio, then are dreamt of in your philosophy. When we build rule-based software we need to give ourselves an ‘out’ – an arbitrary non-rule-based way of extending it.

    As to web-whales, part of Dreyfus’s extended argument is that human intelligence only exists in humans…who have bodies, and grow in human social contexts. He suggests that a non-human intelligence could be
    intelligent…but would likely be unintelligible – your final gap.


Leave a Reply