Limbo

May 3, 2011

The essence of interoperability is to get computer systems talking to each other, to get them to exchange information and make use of it. It’s just like people: they need to be able to get together, have a conversation, and understand each other. So the basic principles of interoperability are just communication theory, and it’s all about the people. In order to understand each other, people and computers need to have the follow elements: |Transmission of Data|A transmission channel between the two, so they can exchange symbols of meaning (usually this is bidirectional, but not always) |Common Terminology|A common set of terms (words) with meanings that both parties understand |Identification Policies|Some way to identify instances of things that are being talked about |Information Structures|A common method to assemble the terms / words into a coherent larger structure |Behavioral Models|A conversation protocol (who says what when, and then what happens next - this also needs to be aligned with consequences beyond the conversation) |Common Understanding|A common understanding of the context in which the discussion is taking place

If you want two or more computer systems or people to be able to understand each other, then you need all these things; each person or system needs to have enough agreement on these things so they can understand each other.

I will follow this with 6 posts, one on each of these from the point of view of healthcare interoperability in 2011.

This table provides some examples of these:

Element Person Computer
Transmission Of Data Voice; phone; email Files, TCP/IP, HTTP/webservices
Common Terminology Oxford Dictionary / Wiktionary Controlled Vocabularies (e.g. LOINC, SNOMED)
Identification Policies Telephone Book DNS system, OIDs
Information Structures English Language HTML, HL7
Behavioral Model Hello / Goodbye HTTP, SMTP
Common Understanding Established by Education, professional societies Provided by the analysts & programmers

Note: Generally there are a number of languages around the world that are more rigorous at defining coherent structure than English. I think that the fact that English is the most widely spoken language, and in particular, the recognized language of interoperability, is evidence that structure is not as important as interoperability practitioners make out.