Semantic Interoperability
Introduction
At a recent conference, I was asked what I meant by "semantic interoperability". The irony of the question was lost on the questioner, but nonetheless it is one that is appearing more and more fequently.One quick answer would be the following: It is the aspect of interoperability concerned with ensuring that information exchanged between systems is understandable in the manner in which it was intended by the original creator of that information. It should enable systems to aggregate information from different sources and process it in a meaningful manner.
At the very rudimentary data level, this already involves two distinct but tightly related issues. But first we need to accept that "information" is "data in a given context". Take the French word "avocat": it can be translated into English either as the fruit "avocado" or the profession of "lawyer" (or "advocate"). In most natural language situations, the word's intended meaning will be clear from the context: but a computer that is treating purely data level elements in not going to have such context in which to be able to "understand" the intended meaning.
In order to process information in a meaningful way requires agreement on a whole range of issues between parties in a given domain of activity. Farmers and the courts system in France will both need a clear semantic definition of the word "avocat", but it's meaning makes sense in their respective contexts. So it will be with a whole range of basic data definitions.
Even when a word has an unambiguous meaning in a single language, there are still problems. The concept of "address" might seem straightforward enough, until you examine the semantics involved in, say, an automated order processing system: in this context, "address" could refer to the customer's address (and that could be delivery or billing address), the supplier's address or any other of a range of addresses.
In such circumstances, the concept is given precise meaning when put in a specific context. So at this basic data level, we already have two key issues:
- Ensure that there is clear understanding and agreement over the rudimentary terms being used; and
- Establish clear rules about how and where the terms can be used in a way that remains meaningful in the particular domain.