Popular links

Topic maps


Claudio Monteverdi

Alexander Johannesen

Technologies used
topic map logo
xSiteable logo
Thu, 20 May 2004 13:00:00 GMT

Notice! This blog is no longer updated as such, and the new spot to point your feedreaders and blurry eyes are https://shelter.nu/blog/

This also means no more comments here, and especially not you spammers, you filthy floatsam of the internet!

Binary philosophy stand-still : I don't know how to procede

I'm stuck in a traffic jam created by roadwork somewhere on the information and knowledge highway between computer languages and the philosophy of science. I struggle these days with finding the way to go forward, because my philosophic musings are no longer compatible with my computer actions. Back in the days when object-oriented programming was devised, we all hailed it, and said it was good. And it was, only it is still touted as the Credula Ultima of programming techniques out there.

My own philosophical musings of late tells me a different tale; object class and object instances are a narrow way of going about things. It was a good step from functional abstractions, but what ever happened to the next step? We want to corrolate human understanding with computational logic, yet our current abstractions are in trying to create something viable with our old tools. A class : person. An instance : me. A : problem.

I am not an instance of a class, I am a class. There really is no classification that is true to human cognition; it only mimics it, creating an abstraction that seems to work. My "seems to work" does not equate "does work" or any form of truth. To equal cans of Coke is not exactly equal. The are both unique, as everything else in the world, and thus deserving of being a class all of by themselves. And as such, there really are no classes, only instances. Makes sense?

The class hiarchial systems we create are abstractions so that computers can come close to how humans work. Or, even the other way, they are created as philosophical constructs so that we can understand them, and a nice side effect is that we can put them into a computer and make some logic sense, too.

It is hard to shake the notion of a class system; it is permuted through our language ( a bike, the bike ) and, in speaking of my own profession, our computer languages ( class Bike, instance aBike ), and since it makes almost perfect sense, it must be true? Well, I don't think so. Let's look at the class Bike or the expression "a bike"; it is a non-specific construct of two wheels, you usually sit on it, it has a nice bell, you ride it to go from A to B, and you use your feet on pedals to make it go. Umm, fine, but aren't there enough bikes out there as exceptions to this general idea that the idea shouldn't really be general? In fact "bike" for me means a whole range of constructs, from one, two and three wheelers, lying, standing, tilting, motorised, pedals, water, land, air ... on and on, bikes and bikes. "Yes, " I hear you say, "class inheritance is what you use for these things." True, but is the seat you sit on a property of some sub-class or is it a class of bikes? Ah, enter the wonderfulness of multiple inheritance, that solution to all things.

Multiple inheritance also appeals to us because the most flaglant example of it is very close to us; we all have a mum and a dad; we inherited bits from both. But any similarity between the computer language construct and nature ends there, because even if the basic idea is the same, the reality totally bangs out; I didn't inherit my mums blue eyes. My biggest problem with multiple inheritance is that it is a hack, a cludge, jolted on to the class-instance solution in trying to solve the notion that the class-instance model is flawed. Multiple inheritance is an abstract construct created to make classification work. Why?

When classes came along it was meant to make it simpler to create datatypes and encapsulation of code to work on those datatypes. As we all know, the datatype is fundamental to our programming languages. There is no such thing in real life, mind you, but computers being invented by people we needed a few kludges, and datatypes fitted the bill. It makes sense too, I'm not bashing the construction of the datatype; it was nescessary then and probably still is, as we need simple abstraction to work with and to fit into our bits and bytes of our given problem. But there is no such thing in real life. None, not even the atom is a fixed datatype, if you want to meddle in such a level of detail. Can you see the link here between how we try to classify things and how there is no real life datatypes?

There is no "a bike", but "that bike" exist. Yet, when we see a bike, we think "that is a bike." The classification "Sonata for two recorders and Basso Continuo" is broken the instance someone dares to play that sonata with two flutes. Do we call Bach's keyboard concertoes for Piano, Cembalo, Harpsichord or Keyboard concertoes? I've heard it played on guitars. Is it then a "originally keyboard concerto that can be played on other instruments as well"? What if someone hums it? What is it in notation form?

Classification is a human invention of quick guiding us from a general class to a specific instance, but is - in my opinion - not the way we do cognitive thinking at all; I think it is much more evolved than that. In this old way of thinking, our cognitive minds are reduced to keywords and associations between them, and they are - and note this! - words. I think we hear a word, picture something in our minds, and do visually lookups for similarities in "word - picture" until the right picture comes along, and we nail the final word. Studies with blind people show they have a very active inner minds, and they always have an idea of what things look like, even though they've never actually seen anything. How come?

Humans are visual beings. The reason we are able to think about complex things stems totally from being able to visualise what you're talking about. How many times haven't you heard something being explained, and uttered "I'm trying to visualise what you're saying ..." Maybe you see a figure or graph, and Wham! it hits you. A picture says a million words, because words are secondary, at least at our stage in the evolution of things. Maybe it will change, but right now we are highly visual beings.

Which bring me back to the beginning; a class and an instance are things - words - we use to describe what things are. We can visualise instances just fine, but abstractions like classes are harder to get. So why are we doing it? In knowledge technologies we're obsessed with classification, almost seeing it for the Holy Grail, yet no one has proven it to work very well, after how many years of high-tech AI research? The psychologists of the world are in agreement that classification is the way we work, but I am not convinced. It is all instances, and properties don't exists in as so far you don't want to call certain instances for properties. What is really the property "brown" of my eyes? In the instance of "Alexander" it is this specific combination of colors, patterns and tissue that makes my eyes. The "brown eyes" section of my passport is not more specific than "bike", yet it is the best we've come up with so far for identification.

Things are just instances in a geographical environment, nothing more. The troubling thing with this, and which is why we're trying to meddle in all these abstractions, is that the world is in constant change, and things move about, and change, and we want to stop the world, if only for a second, so we can write it down and record it. of course, the problem is that the world moves again, and a lot of our work is futile. Things happen in real life a long time before they happen in the computer abstractions; my homepage says my daughter Lilje is not yet one year, however she had her one year birthday yesterday, and I haven't updated the page yet. What's up with that?

So what's my problem? What's this stand-still you're talking about? It is just that; for the world to work in the way we do programming now, it needs to stop. The computer languages I use in attempts of trying to express the information and knowledge I want to express are not designed in such a way to probmote these goals, they are created to express something lying down, stopped in its tracks, or even dead. I create classes and instances and multiple inheritence and all the OOP marvels of the world and yet can't seem to get any closer to the core knowledge of my highly moving data.

I'm gonna go away for a few and have a think on what to do next, which way to go, what computer language and constructs to create. I need to find some more human way of doing things, or else I'll lose my mind. Again. Another paradigm shift in the making. I can feel it. The air is thick with mositure, and the cold is embracing me as I face the outdoors.

Permalink (Thu, 20 May 2004 13:00:00 GMT)| Comments (11) | Opinions
( Thu, May 20 2004 )
There is one model of human behaviour which interprets that we are all observers in the world. All that we respond to, see, think etc., is a function of what we are capable of observing. If you change or expand what you can observer a greater choice of action becomes available to you.
Perhaps part of the solution Alex lies in understanding that computer systems do not observe. We 'tell' them what is observable (a class) but that is limited by what we are able to observe ourselves and the language we have with which to express it. And by the time we've finished coding we have changed the observers we are. It's not so much that the world changes but that we become capable of seeing a new world. Ironically it is often the exercise of trying to force what we know into a computer model that we begin to understand (overwhelm) ourselves with the myriad of fine distinctions available. The problem compounds again because what we observer is inherently network in nature.
Happy Birthday Lilje. It's a good thing that you don't have to rely on a web page to tell you how old you are.
Alex ( Thu, May 20 2004 )
Hi David : Yes, computer don't observe, but they are supposed to work on our observed data, but in trying to put our data in to the machines, the abstraction layer gets in the way and muddles the waters further.
I agree that we are ever changing (although some people don't prove this much) and as such we don't understand the complexity of it before we dig into the meat of it. But there is a snag here; we are trying to put the data into a term a computer can understand, and maybe that in itself is the very cfactor that makes it complex. We humans have a very clever brain that deals so easy with associations and abstractions, probably because we have several models for doing many different things, yet we only have a very limited and terribly constrained way of doing it with computers. This must change, and will change. I'm just pondering about the next natural step to do it, trying to find the key log to get this jam going.
Tom Passin/ ( Thu, May 20 2004 )
Alex, I think this would be a fine time for you to read George Lakoff's 'Women, Fire, and Dangerous Things - What Categories reveal about the Mind'.
BTW, the main title apparently is really a classification used by speakers of the Australian aboriginal language Dyirbal.
One nice thing about this book is that it brings in a lot of experimental data, of kinds that most computer people would never think of or know about.
So, Alex, you need to run right out and get this book (and I need to re-read it). It is not hard reading, but it is very dense and the material is extensive and complex.
Donna/http://maadmob.net/donna/blog/ ( Thu, May 20 2004 )
I agree with Tom - you'd really like Lakoff. Some of what you are talking about with bike-ness is about prototype effects where some instances of a class are more prototypical than others (well, Lakoff doesn't describe it in terms of classes and instances, but categories and ??). ie some bikes are 'bikier' than other bikes. Bike is a pretty good basic level category - it is something that we (in our culture) all have a similar enough idea of what it is.
But Tom must be smarter than me - I'm finding it hard reading. Just waiting for uni semester to end to really tuck into it (I'm going to do some summarising on my blog as I go & might even do some proper research around this for uni next semester). I'll loan it to you after I finish it if you want ;)
Gosh this is a good thought ;)
Alex ( Thu, May 20 2004 )
Thanks for that, guys; just the kind of recomendation I was looking for. As you can see, there is a lot of stuff going through my head these days, some of it trivial and mundane to some, but I've only been serious in the KM scene for about a year or so and don't have the formal background I sometimes wish I had the time for.
And Donna; I don't have the time to wait for next semester; I'm hungry for this stuff now! :) But thanks for the offer. I'll let you all know how it goes from here.
donna ( Thu, May 20 2004 )
well, I could loan it to you for a couple of days I guess ;) As long as you promise to be a good book buddy and give it back quickly...
Alex ( Thu, May 20 2004 )
Hey, that would be cool. And I promise to treat your book like it wasn't mine, but borrowed and precious and made out of glass, I'll wrap it in pillows, etc, etc, etc.
Tom Passin/ ( Thu, May 20 2004 )
Donna, you said 'Tom must be smarter than me - I'm finding it hard reading'. I dunno about that... When I said the book is not 'hard reading' I meant that that each small part is highly readable, understandable, and stimulating. It's just the totality is hard to keep in mind and put together - at least for me it is.
Just to tweak your interest, Alex, I'll quote a bit from p 282 - this is in connection with cognitive models
'A mental space. unlike a situation or a possible world, is not the kind of thing that the real world, or some aspect of it, could be an instance of. It is therefore not the kind of thing that could function within a theory of meaning based on the relationship between symbols and things in the world. Because their status is purely cognitive, mental spaces are free to function within a semantics based on internal or experiential realism. Yet they allow for a semantics with all the explicitness of a model-theoretic semantics.
The structure of Cognitive Models
We have argued that basic-level and image-schematic concepts are directly understood in terms of physical experience. We will now argue that these provide sufficient foundations for a theory of general conceptual structure.'
Have fun!
Alex ( Thu, May 20 2004 )
Thanks, Tom. Very stimulating, and I'm looking forward to the read. I really need better thought-food these days.
Tommy ( Sat, May 22 2004 )
The problem with OO (and for that matter with Topic Maps) is that it tries do describe the world by describing the *edges* of its objects. 'This is a bike. That is not'. While human language, and the concept in our heads, seams to be based on centers or archetypes. Some things are clearly bikes. But there is no clear edge where stuff on one side is bikes and stuff on the other is not bikes. Instead there is a sliding scale of bikiness. 'A one wheeled bike is kind of a bike, but not realy.'.
It's not the case in the real world (or at least in real language) that things are or are not. Things are more or less.
So, if you are looking for a new computional model, maybe it's time to develop the 'Topic field' theory, where things are alowed to change, to be more or less.
But don't ask me how to get that into a computer...
Tom Passin/ ( Sun, May 23 2004 )
Well, topic maps do not intrinsically do quite what Tommy said. It's more like this -
'There is this notion, see, and here are some things that are related to it, and over there is some more information about it.'
Now if you go ahead and use topic maps to describe a classical ontology, then you of course do get that effect of sharp boundaries of collections.