Ever since the National Information Exchange Model (NIEM) was developed, I’ve been curious: Just how good a model is it?
That may seem like a peculiar question, so let’s take a step back and ask a more basic one first: In what sense (or senses) is NIEM a model at all?
NIEM’s website offers no easy answer. A page entitled The Model says that it provides common, agreed-upon terms, definitions, formats, and relationships independent of how information is stored in individual systems. That certainly describes a set of standards useful for exchange. But is it a model?
Elsewhere the website refers to the NIEM data model, which sounds more promising. But that also points to the crux of the problem: What is a data model anyway?
A large proportion of the software development profession seems to be satisfied with the notion that a data model is a blueprint for organizing data in the service of some set of requirements, which requires building a database or exchanging data, and… um, end of discussion. According to that view, since NIEM does indeed organize data, it is a data model (and therefore presumably a model).
There is, however, another perspective. A (minority) tendency asserts that a data model is—or at least can be and by rights ought to be—something altogether more meaningful. In this view, a data model ought to be an attempt to create a (limited) model of (some part of) the world. This sense of the term model implies a referent. In this sense, a model is a model not because it is a blueprint for something but because it is a representation referring back to something.
So is NIEM intended to be a model in this sense? The website doesn’t address the question. There are some encouraging references to the data components representing real-world objects, but that’s about it.
Nonetheless, it’s easy to back into an argument that NIEM must, in fact, be a model of the world. NIEM is commonly described as a sort of Rosetta stone that will allow different agencies to exchange data: This is the idea behind NIEM—letting your system and my system speak—even if they’ve never spoken before. NIEM ensures that information is well-understood and carries the same consistent meaning across various communities, allowing interoperability to occur. With NIEM, you only need to know two languages—your own and NIEM.
Exactly. And NIEM as a common language can fulfill this translation function only insofar as its data components (into and out of which all local dialects of data must be translated!) comprise a sufficiently accurate and comprehensive model of that portion of the world that is represented in the public sector information systems that use NIEM to exchange data.
So if we accept that NIEM is a model in that sense, how good a model is it? I’ve been wondering for years, but never had time to delve in and see what it asserts about the world. So I’m delighted that David C. Hay has done that, and is presenting his conclusions for all to share.
Hay is the author of the 1996 book Data Model Patterns: Conventions of Thought which has become a classic. I bought the book soon after it came out and I’ve gone back to it year after year, finding fresh value each time. (For examples of how Hay’s approach can be applied in designing public sector information systems, see my article on clarity and holism in human service information and an article that Jim McMillan and I wrote about courts.)
In the years since then, Hay has published other books about data modeling, UML, and requirements analysis. Now he’s turned his attention to NIEM and has posted National Information Exchange Model: Core Evaluation for free download. His paper thoughtfully pulls NIEM apart, highlighting many areas of virtue where it provides a good model but also pointing out specific weaknesses and offering alternatives that could correct them.
Does it matter that NIEM be a really accurate, flexible and comprehensive model of the world represented in public sector information systems? I have a hunch that it may matter a great deal. Here’s just one reason why: as NIEM provides a common language for interoperability, it will become familiar to more and more data analysts and system designers. As that happens, it’s likely that the structure of NIEM will subtly begin to influence the architecture of new information systems being built. A couple of decades from now, someone looking under the hood of those systems will probably see a lot of conventions that originated in NIEM. In other words, NIEM is the closest thing that the public sector has to a common data model. For the sake of building high quality systems in the future, the model needs to be as good as it possibly can be.
If you found this post useful, please pass it on! (And subscribe to the blog, if you haven’t already.)
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License