I was on a call this afternoon, with the HR-XML people discussing that old chestnut, contact information. The really interesting comment that came up was that many people don’t get any kind of intermediate domain model – rather, they just want to see their implementation (or practice) reflected directly in the specification, and so they are disappointed when (inevitably) it doesn’t happen. The HR-XML solution may be serviceable in the end, but what interested me more was the process which is really needed to do interoperability properly. I’ve been going on about semantic web approaches to interoperability for a while, but I hadn’t really thought through the processes which are necessary to implement it. So it’s a step forward for me.
Here’s how I now see it. Lots of people start off with their own way of seeing, thinking about, or conceptualising things. The primary task of the interoperability analyst or consultant (inventing a term that I’d feel comfortable with for myself) is to create a model into which all the initial variants can be mapped, one way or another. We don’t want one single uniform model into which everyone’s concepts are forced to fit, but rather a common model containing all the differences of view. Now, as I see it, that’s one of the big advantages of the semantic web: it’s so flexible and adaptable that you really can make a model which is a superset of just about any set of models that you can pick. Just what sort of model is needed becomes clearer when we think of the detailed steps of its creation and use.
If one group of people have a particular way of seeing things, the mapping to this common model must be acceptable to them. It won’t always be so immediately, so one has to allow for an educational process, possibly a Socratic one, of leading them to that acceptance. But you don’t have to show them all the other mappings at the same time, just theirs. Relating to other models comes later.
From the mappings to the common model, it is possible, likely even, that there will be some correspondence between concepts, so that different people can recognise they are talking about the same thing. One way of confirming this is to show the various people user interfaces of their systems, dealing with that kind of information. You could easily get remarks such as “yes, we have that, too”. Though one has to look out for, and evaluate, the “except that…” riders.
On the other hand, there are bound to be several concepts which don’t match directly in the common model. To complete the road to interoperability, what is needed is to ascertain, and get agreed, the logical connections between the common model concepts into which the original people’s concepts map. This, of course, is the area of ontologies, but it has a very different feel to the normal one of formalising the logical relationships between the concepts in just one group’s model. We are aiming at a common ontology, not in the sense that everyone must understand and use all the concepts, but that everyone agrees on the way that the concepts interrelate; the way that “their” concepts touch on “foreign” concepts, all within the same ontology.
Once the implications have been agreed between the different concepts in the common model, the way is open to create transforms between information seen in one view and information seen in another view. Each different group can, if they want, keep their own XML schemas to represent their own way of conceptualising the domain, but there will be (approximate) ways of translating this to other conceptualisations, perhaps via an intermediate RDF form. But, perhaps more ambitiously, once these implications are agreed, it is likely that people will be free to migrate towards more coherent views of the domain – actually to change the way they see things.
It is potentially a long process, and supporting it is not straightforward. I could imagine a year’s full-time postgraduate study – an MSc if you like – being needed to study, understand and put together the different roots and branches of philosophy, logic, communication, consensus process, IT, and education that are needed. But if we had trained, not just the naturally gifted, practitioners in this area, perhaps we could have enough people to get beyond the pitfalls of processes that are too often bogged down in mutual misunderstanding or incomprehension, or just plain amateurishness.
Simon, interesting thoughts, what would your essential reading list be to brace this imaginary student for their journey? I’ve been asking myself similar questions, as I see look to fill the gaps in my own patchy understanding.. I have some pedgagogic edges to the jigsaw, a nice section of completed philosophy… and then some glaring gaps..
Thanks, Rob… my reading list would be based on my own rather patchy and eclectic reading and study.
One key text would probably be Peter Checkland’s “Systems Thinking, Systems Practice”. Studied properly, it prepares people to cope with the variety of points of view that are likely to be met with in any human-oriented technical systems development. Other systems analysis techniques might also help in the task of trying to unpack any particular individual’s model of a piece of reality that they are trying to represent in a system. Usability and HCI techniques are also relevant. There’s a whole literature on cognitive modelling and mental models which I reviewed in my PhD (read that as well!) – I think also particularly of Kelly’s Personal Construct Psychology (see Wikipedia).
I don’t really know what the best sources are for Semantic Web and ontology matters. There is a lot of material around, a great deal of it on the Web (of course), but the choice of material really needs to be tailored to the learner.
Transforms just need a good technical reference – I’ve recently bought a good-looking new one by Michael Kay which I’ll be getting round to read in due course.
How do you get people to understand the fundamental differences between different people’s points of view? I have found William G. Perry’s “Forms of Intellectual and Ethical Development in the College Years” very stimulating and relevant, and it would be very useful for the capable learner. (By the way, I was put onto it by Janet Strivens.) But it treats ethical development as a maturational process, not giving any particular ideas how to stimulate it.
Consensus process? I haven’t read the literature, but in any case I am a devotee of the Quaker business method.
Pingback: Doing XML semantically | Simon Grant of CETIS