29 April 2008

What's wrong with Topic Maps people and their tools?

Hoo boy, I'm feeling a bit testy today, but seriously; how many who read this blog know the difference between an association type, an association role type, and a reified topic type? When we humans try to put to "words" - in a Topic Map, as we're dealing with here - our various models, do you know when to create a new topic type, how to use the role type in multi-member association of given types, what a "type" really is, and what an "occurrence" of anything really is all about? And - more importantly! - do you really need to know?

The Topic Maps paradigm takes a good while to sink into your brain. It takes a few goes and lots of patience to get what it is really all about, and when you get there you discover - surprise, surprise! - that "topic maps" are irrelevant to the real nugget of wisdom within; shareable models.

Here's a model of me. (If you can see it properly, ) Does it seem right to you?

No, not the glossy models on the covers of magazines, but the kind of models the way the brain tries to shape an immensely complex reality for a brain than can only hold bits of small distorted representations at a time. Here's a piece of this, a representation of that, held together with some contextual duct tape, and Voila! you've got some "kinda" understanding of how the world works. Kinda.

The world does not want to be modeled, and anyone who has ever attempted ontology work (another phrase that means everything and nothing at the same time, and - of course - I use all the time!) soon discover how impossibly crazy it is to model anything to any degree of correctness. We, as human beings see this infinite tool of modeling our world, and falls promptly into the trap of actually trying it out. In some ways the amazing things you can do with Topic Maps is its own death! Don't try to model anything to any degree of detail; there's crazy in there.

We model all the time, but until I learned all the ins and outs of Topic Maps I didn't have the words for what I was doing, nor did I have the knowledge that I was even doing it. But I was, and I still am. You are, right now even by just reading these words. Just by writing this blog posting I'm modeling my opinion, phrasing it through prose, interacting with my computer, and posting it contextually, all in the hope of you understanding this model. I have a purpose, a model in my head if you will, of what this message is and how it should come across. The fun is, of course, that no matter how accurately and carefully I try to communicate the model in my head to you, every single person who ever comes across these words will have their own unique special - and, dare I say, still correct - version of it. Every single sound, vision, thought and feeling ever expressed is uniquely interpreted.

So, maybe I describe my model to the best of my ability in an attempt to remove tacit knowledge surrounding my message. Maybe I say things like "I use my blog to post this message, choosing a title that might catch your attention, and I'm talking about more important issues than a selected technology; human perception, communication between us in a way that is as close to truth as we can hope to achieve, that what we all do is communicate models from our brain to the hopefully next one. And of course, Topic Maps is one really good way of doing this." That's my mental model for writing this stuff, but you can be quite sure I've forgotten to say bucket loads of stuff, neatly hidden away in prose, innuendo, lost context and the mere fact that my brain is impossible to model, little less understand. These are tremendously complicated things that are, by their very nature, bloody impossible to get to! It just can't be done!

But, because it looks like it has some element of truth to it, we pursue it as if it is the truth. It looks like we can model things well, so we try to model things well. Ouch. Bummer. No, don't do that; you need to have less precision in your models for them to actually be taken seriously, at least by people. But let's talk about computer to computer communication. Surely there we can have precision?

This is the area which for me really brings Topic Maps to its right, where we - as digital communicators - create artificial models which we can attach our data to, and share around. Forget all this human knowledge stuff; if anyone who is to model their idea need to know what an association type is, forget it. Sure, we allude to what it might be, hold a course in it, or explain it on end, and then we throw ourselves heavy into the Topic Maps Data Model and explain that it is just another model that's mapped to the Topic Maps Reference Model, which is a model which is framed in frames theory (or thereabouts), which is a model of key/value pairs in a table setting, which is a model of simplistic systems, which is in a computer model setting, which is a digital model of ... and so on. Models, models, models. And you know what? There's translation and interpretation at every single step of the way.

Steve Pepper claims that Topic Maps are great because Topic Maps are closer to how the brain works than other means of mapping information, and I agree with him, but only in the "sure thing" kind of way, not the "correct" kinda way. The human brain doesn't think about how it models things. In it, there are no kinds, or types, or roles, or occurrences, or reification, or identifiers of any kind. So let's agree that Topic Maps, at the moment, is perhaps the closest we've got standardized right now that somewhat is closer to the way the brain works in computer terms.

Translations. That's what it's all about. I say "hei", you say "hi", she says "hola", he says "yo." Some use Java, some use C#, some PHP or Perl. Business people use business speak, designers talk the talk, programmers code. There's translations up and down and back and forth between them all, and then some. And wherever there is translation, there's a margin of error that gets higher the further the translated models are from each other. No wonder there's problems in the world.

As technologists we care a lot about these things, and from a technical standpoint, Topic Maps kicks ass! Seriously! But I've worked extensively with Topic Maps over the years, and if there's one thing I've learned it is that people don't give a toss about what the underlying technology is, and they certainly don't care what type or association concept any relationship might be. When people perk up about Topic Maps, it's not because of the data model but it's because of some underlying modeling ideas, that promise of sharing models and bring tacit knowledge up from traditional taxonomic and document-centric ways of dealing with "knowledge" in computer systems. They do not care about how to "map" their concepts, and seriously, don't care whether the modeling tools are standardized, shareable or not. They care about the models, for sure, but only as a conceptual thing they wish to share. So let's forget the technology and the data model and Topic Maps, because it really doesn't matter.

What matter is that communication happens, and it doesn't happen on the Topic Maps Data Model level. There is a higher, sloppier, fuzzier level that we humans live on, and that's the model we should try to get closer to. Sure, we can create cool systems using the Topic Maps standard to do all this, but it sucks as a platform of expression! It really, really sucks! Try right now to model the simple concept which is "freedom"; what are your topics, associations, role types, occurrences? One can appreciate that we can try, but there's no one answer to do this. The TMDM does no support human thinking, don't let yourself be fooled, it can only represent some misguided attempt at jotting it down in some machine-exchangeable way.

Topincs, Omnigator and other tools we Topic Mappers give to people who are to model things are a thing that only a technologist can love, and, in addition, a technologist who understand all the ins and outs of the Topic Maps Data Model. This is a huge limitation! People, the real group we have been trying to sell this concept to for years, just can't wrap their head around the Data Model to such a degree as to conceptualize their models! It's lunacy to think so, but of course, the Topic Maps community is chock full of technologists, so that's kinda expected. But I really wished that we had outside help. The Data Model is there for technologists and tool-makers, not people.

Can we rethink this part of the problem? I'm often embarrassed to give these tools to people, as it is extremely counter to claims we lay down to the greatness of Topic Maps. Don't get me wrong; TM is fantastic stuff, but the tools sucks for normal people, and by "normal people" I mean almost anybody but us.

We need to be even more human in our approach to knowledge representation. Topic Maps is a good foundations to build our systems on, but it sucks as a knowledge representation system for humans. What can we do?

Labels: , , , ,

The full Monteverdi

UPDATE: , the director of "The Full Monteverdi" (who's in a relationship with someone who sounds very Norwegian sounding ... :), wrote me a short message saying that there's also a set up for the project. I should also point out that I am actually one of the biggest Monteverdi fans around, so for me his project is the most fantastic thing that has happened in the "Monteverdi trenches" in a long time. I cannot praise it enough. It's on my Christmas wish list, and the wife has been informed.

By pure chance I happened to find out that "The Full Monteverdi" was shown on Swedish TV channel 1 (which we here in Norway also get) last night at 9.15pm. I hurried cleaning up the house, putting the children to bed and making a cup of tea (and Milo for the wife), and turned the dreaded box on at the right moment.

I normally don't like watching TV. Our culture has become too dependent on being fed spoonfulls of whatever some committee has decided that you should see, especially those in charge of the no. 1 entertainment medium. TV seems to have embrace the idea that the lack of understanding a complex context can be solved through a simple mix of image and music, with some additional editing and commentary thrown on top, with the news, I guess, being the prime example.

On the radio the other day (a place quite a bit way down the list of entertainment outlets these days, on a channel that don't meddle much in the realm of fast and funny tidbits) I heard it mention that the sale of the great classic books was decreasing every year, and there was some concern to the lack of reading going on these days. I'd go further and express concern for any real thinking going on. Even 100 years ago poetry was an integral part of modern society; where did it go? As a society we are less about smart opinions as we are about strong opinions. Why is it that strong is better than smart? And what do I mean by smart? Not always the smart we think.

Personal freedom is great, but not always so smart. The individual detached from a social network is locked into rigid systems we as human beings really don't maintain well over time. So what is smart? Smart is to do things that urge the survivability of cooperating systems. Maybe this is a tonic of misconceived misanthropies, but even the human individual is a system of organic matter. We are all cooperating systems of sorts, and there's strong reasons for why we stick together even when we probably shouldn't. We need cooperating systems because we often don't understand the repercussions of missing pieces. What happens when our humanity turn diabetic? Will we find a remedy for the asthma of our little blue planet? And do we know what happens to the definition of humanity when all things not human is shaken up or taken away?

Context is everything, and humanity with everything which is not human is - in fact - nothing at all. Our conscience and our ability to even think human thoughts are dependent on every other system we've got on this planet and outside it. Thinking we're above such things are the very thing that keeps me up at night; we need every context we can get our hands on, and we need to nurture them and take care of them, because they are what we are.

I used to work for a national library. I think that was very smart move by me, and I met a lot of really smart people there, too. The library world is an example of a world that in many ways is a cooperating system of people who hold some ideals about education, reading, knowledge and accessibility, often for the sake of advancing humanity. And, by humanity, they're often thinking of education about everything out there as a means to understand that what is human is dependent on everything non-human. Libraries give context to what it means to be human.

It is important to understand this context; it gives light to the more complex models of life on our little blue planet. Like music, for example.

I listened to "The full Monteverdi" and the songs from Monteverdi's fourth book of madrigals, songs and music written over 300 years ago put to modern settings. Music is sounds in cooperating systems, where one sequence of tones provides a context to other sequences, where a single note could ruin a whole! If the singer, or the lyrics, or a note, or the visual representation, or the physical singing, or even the thoughts and feelings inside my head, if any single one of these didn't cooperate in some form of a system and create an environment that didn't work, it would render the whole experience very bad indeed.

But that didn't happen. Instead I cried in the best possible way, by understanding something that I cannot easily express. The Full Monteverdi was indeed in and out of context at the same time, and this - my dear friends - is art, an art that is rooted in reality and show us where we could be going, expressed through a complexity of systems we as humans don't understand very well but fully embrace. And it was beautiful. And I urge you to see it, too.

Labels: context, cooperation, humanity, monteverdi, music

22 April 2008

SOA; ROA; WOA; REST; SOAP : A point about what we're addressing

Hang on to your buzzword-safe underwear! There's a lot of buzz these days in the IT architecture world about whether to pursue SOA, ROA, WOA, do it RESTfully or SOAPy, what bus to drive, and what governance you can throw on top to make it all work.

I am a RESTafarian myself, and everything I do I do in a Resource Oriented way, so you can say I prefer the Resource Oriented Architecture (ROA) which really is a synonym to Web Oriented Architecture (WOA). The SOA way is far less technically defined, as SOA can be created with almost any technology, but there are some traditions and current marketplace geist with the term that associate it with larger stacks that use the SOAP and the various WebServices standards as a mean to "put it all together."

Right, what's the fuzz all about? Why are some throwing themselves at the resource oriented way while others stay with the API oriented way?

Did I say API oriented? My golly, I think I did, and this needs some explanation, and I'm going to quote from an upcoming article I'm writing which include a section on what I call the reversal of the address-function space ;
Let's talk about design of your systems for a minute, as the answer is that all you know about governance, from IT governance to SOA governance, needs to have the same type of reversal of how you think about the services themselves and their individual evolution throughout your SOA space. You're not governing API design, identity pollination, semantics across APIs and functional silos that addresses "access to things": you're governing how to express the "things" themselves. Thinking that services starts and ends at given points in your ROA is severly limiting your options, especially in terms of expressiveness.

This reversal is well known to functional (not to be confused with imperative) and declarative developers, where the focus is on the operational expression of results as opposed to executing a series of commands to get there. Within the RESTful community we often talk about how we use nouns instead of verbs, where we address "things" and relationships instead of "actions" and functions, and we need to be aware of both these angles into how we work with our systems.

If you thought these notions were small and somewhat insignificant, I'd beg to differ. Once you travel down the path of functional operations it's hard to look back. Indeed, the combination of the reversal of the addressable function space and resource orientation is the very thing that makes the unified interface work so well, and that very interface is extremely important in terms of performance and scaling of systems, but there's one more thing that needs to be addressed, pointed out and shouted, which is the semantic goodness of pointing to something and say "I want it."

This is the way we humans foremost operate; first we point, then we interact. We don't say "You know, cars? Well, you know all blue cars? Of those, there's some that goes quite fast, and have really cool spoilers? Some of these are of the brand BMW. And of them, you know those that have the letters X, Y and Z on them, and really looks a lot like the car in front of us right now? You see that one? I'd like one of them." No, we point at the car in front of us, and say "I'd like that one, please." We don't start with the generics of our conversations and traverse down until we find the specific thing we're after, so why should we do this when dealing with computer systems as well?
APIs - or, I should say, the culture that emerge from it - focus on processes, but quite often we're not interested in processes but results. Why are we defining processes instead?

SOA and SOAP / WS-* are highly process-oriented ways of thinking ("first do this, then that, then this, and finally that"), grown from the RPC (remote procedural call) philosophy of distributed computer systems. It was the natural way to start, but it doesn't have to be the thing we should keep on doing. When we move into a resource-oriented way of thinking, we're not defining a process as such, but a result. In fact, we leave the process-part to the backend systems, perhaps as a constraint of loose coupling, and this is an extremely subtle but important point.

I'm not even sure it can be explained as much as experienced; when you shift your thinking from processes to results (and, this is why XSLT programming is so hard for many people; it's a paradigm shift in thinking) there's a lot of boilerplate code that magically disappears. Declaring where you want to be instead of defining how to get there is subtle, oh so subtle. I can't say anything more than just try it yourself. Try something new. I dare you.

Labels: SOA ROA WOA REST SOAP WS architecture

Dear reader : Quick opinions, please!

I've had this blog for many years, and know that my audience is rather scattered in why they read it, from family and friends to Topic Maps crazies and library lunatics. Because I'm the boss, I've written whatever I felt like but I'm getting to a point where I feel that to properly express myself I may need to split up a bit;

I've noticed that I've been reluctant to write about a certain topics, either because they're too small, too divergent from the normal path, too insignificant, too intrepid, too silly or too personal. Most of the time I am my worst show-stopper, and I need to write about more stuff. My head is about to pop, but how should I shape this pop in a way that most people here would find interesting?


11 April 2008

Violent Acres is ignorant : A lesson in truth

Update: Ok, so Violent Acres was having us on. What a great way to instill my lecture on truth, science and theories, which you should read anyway. Toot.

Why is it that some people cling to stereotypes and stupidly assumed fantasy when a few asserted searches would reveal the truth in a matter of seconds? (neither Richard Dawkins, Christopher Hitchins nor Dr. Meyers do what VC claims) Why do otherwise upwalking people such as Violent Acres (whom most posts I enjoy very much) then stumble into the world of the ignorant and stupid?

To justify their own belief, of course. The truth has got nothing to do with it. So I'd like to talk about truth a little.

I am one of those people who seeks the truth. Now, we have to be careful about what that means because a lot of people think that "the truth" has a specific meaning, or a specific goal. The religious are the biggest proponents of "the truth is what I believe" although you'll find it pretty much everywhere.

No, I'm after that truth which we all can agree on; Throw a rock into the air, we can all agree it falls to the ground. If we measure the speed of the falling rock, we can all agree to how fast that is by throwing lots of rocks into the air, perhaps at various places around the world to get a wider view of it, document our rock throwing with pictures, recordings and documents, and perhaps - some time in the future - collate our various findings, and we just might call this thing "gravity" and agree to some properties it has.

There's nothing magical about this kind of truth. It's just there, sitting there as knowledge, which we can use and apply to solving whatever whimsical wish we have.

Later, when John went to the moon and threw a rock, the properties of that rock-throwing even was compared to the generic rock-throwing info back at earth, and we folded the new information into our "gravity" thing, saying that gravity has different pull under different circumstances. To understand this pull, we need to know geology and cosmology and astrophysics as mass and chemical markup plays an important role. And so on and so on.

If we then learn, in other areas that's got other theories, about some properties that also applies to throwing rocks - for example, we discover a planet of size X made up of Y and circles its sun like Z - and then the true magic happens; we can make predictions about what will happen if we threw a rock standing on that planet. The more data we've got, and the more other theories are verified, the more accurate the prediction. This is how we land things on the moon, on mars, and on asteroids flying through space at high velocities. This is how we backtrack life and discover new things through evolution. This is how we further experiment with stuff, because we've got theories that can predict a lot of stuff when we apply X, Y and Z to it. This is, basically, how we come up with all the cool stuff we do these days.

This is science. Lots of different people all over the world all the time find out stuff. We collect data, and have explanations for why the data do what they do, also known as theories. These theories are not guesswork; over hundreds of years scientists adjusts the theory as we know more. The theory of gravity have changed a lot from Newton to today. This is how science works; data forms a theory, and new data further shape the theory, and all theories need to make sense together. No theory stands out and goes against what all the others are saying.

In science there are thousands and thousands of theories, all interconnected. If someone comes up with a theory (note: singular) that seems to go against what the other theories say (note: plural theories; no scientific theory stands alone! Never!), then you've got two options; your one theory is wrong, or you've stumbled upon something that's either revolutionary or crazy.

We never really get one theory that goes against the majority of scientific theories. They are all interconnected, a web of theories that fit into one another, backing each other up, making sense of the world we live in. Thousands of theories that gets tweaked as we find new data, creating a larger theory of how it all fits together. It's a long process (thousands of years of asking the most powerful question in the universe; "How does that work?"), lots of hard work, lots of hours of repeating what others have done (to verify or falsify some small part of some theory).

In the real world, as seen in the movies, a "theory" is someones' crazy guess. Please don't make the grave mistake of mixing up the folksie "my theory to why JFR got shot was hidden advice coming out of Area51"; that's not a theory as science use it, but conjecture, an opinion, or just plain speculation. It's important to know the difference, because at each end of the truth-o-meter there is science and religion.

One claims to be in pursuit of truth, the other claims to already hold it. One is not afraid to modify the truth if new evidence comes along, while the other is the same for eternity. One is about investigation, curiosity and being open, the other is about accepting, don't question and close yourself to others. Science holds no other goals than truth, while religion dips its toe into any human physical and psychological endevour.

Let's get back to what triggered this post; "Atheists are snobs." First, a conjecture such as that is just plain silly. Which atheists? What do you mean by atheist? How broad must your brush be before you're painting your way into the loony-bin? Second, some religious people play roleplaying games. They enjoy a fantasy play as much as the next guy. Of course the next guy will them them they are already living in a fantasy game, but a fantasy game within another fantasy game is still just a fantasy game, so I guess that's ok. As long as they are away of the real world. Third, some religious people are heavy into porn. They perhaps shouldn't be, but they are people, too. All too often, they are people, too.

I suspect VC wants to bring this atheist vs. religious people down to a question of ethics and morals, that somehow religious people hold better ethics and morals. Hogwash, and I'll repeat Steven Weinberg : “With or without [religion] you’d have good people doing good things and evil people doing evil things. But for good people to do evil things, it takes religion.”

The importance - in the end - comes down to how truth is defined; as something we all agree to through an open process, or truth as handed down to you by a guru. And Violent Acres is no guru. And that's the truth.

Topic Maps 2008

I just quickly need to jot down some thoughts on the Topic Maps 2008 conference I attended last week before I move on to more personal things.

First of all, it was a very smooth operation as conferences go, and I felt comfortable and welcome thanks to very nice hosts. I met a lot of really interesting and smart people there, too, all interested in roughly the same thing (which is such a generic thing as "world peace" and "doing what's right").

I have to say, though, that my tutorial on "Topic Maps for Information Architects" was the hardest presentation or tutorial I have ever prepared. It was very hard to balance based on the audience type, as they were either heavy into Topic Maps, heavy into information architecture, or some other thing alltogether. I struggled a long time, and ended up with a 33% focus on each subject, with the remaining 33% focusing on philosophy and epistemology. Some loved it, some hated it, but that's what you get when you take a risk such as this.

My presentation on "A Topic Maps vision for the library world" on the second day went much better, with much enthusiastic response afterwards. At least here I know my audience, and have been saying these things for years. And the quest for a library world uptake of Topic Maps is of course one that I shall pursue further even if I'm now back in commercial sector.

There was a great deal of wound up dust about the latest OOXML standardization process by ISO, how Steve Pepper, one of the main people behind the conference, also has quit ISO in protest over the latest happenings. The funny part is that another Topic Maps great, Patrick Durusau, was also at the conference, together with the Microsoft-bought consultant Shahzad Rana, which made the whole thing a bit poignant at times throughout. It was actually quite fun to watch sometimes as greats clashed in a non-clashing sorta way. All smart people, serious fun.

I also talked a bit with Robert Barta and his wife (having them over for dinner was the conference highlight, hands down!) about theirs and ours experiences with moving in and out of Australia. The verdict, I think, is that Australia is great unless you're a foreigner staying for more than 3 months. :) Also we talked about Topic maps, and I was extremely happy to confirm that I at least were not alone in my madness. Thanks, Robert.

All in all, a great conference with lots of interesting presentations. Winning presentation might be Conal Tuhoys presentation on what New Zealand is doing in the area, and especially their Electronic Library is doing, and I'm very thrilled to see them push forth an persistant identification open-source project that libraries can use for their work. I hope the uptake is large, because the library world won't survive without it.

So, tThanks for having me, and thanks for putting the conference on. Good stuff.

Labels: , ooxml,