For those of us who have been doing Knowledge Representation for decades, we judge a modeling tool on its power: How many whiz-bang shortcuts for complex OWL restrictions or mass editing of similar items or refactoring does it have? But when we try to get Modeling to the Masses, or at least Modeling in the Enterprise, we find that it isn't the power tools that they are interested in. Enterprise knowledge workers will prefer pretty simple model editing tools. But they insist that they have strict control over version governance.
What exactly is version governance? Often the people who want it aren't quite sure, but they know it when it isn't there. Someone makes a change to a part of a model on someone else's turf. Someone wants to try out a long-transaction 'better idea' to see how it works - but we want to be able to toss it later on if we don't like it. Or we find something wrong in a category - who changed it? When? What was the model like when they changed it?
Some of this stuff comes for free when you use a version control system like SVN or CVS. But these solutions, which are great for managing versions of java code, aren't intuitive to a team that is organizing, say, a vocabulary project. They want something a bit finer grained (who changed this term?) and with a bit of process ("I can propose a change, but only John can approve it").
That's why the biggest part of TopQuadrant's Enterprise Vocabulary Management System (EVMS) is a system for collaborating on model changes. You don't just use the EVMS to change a vocabulary; you use it to build a sandbox in which you make your changes. The changes then enter a (configurable) workflow, where, if they get approved, they are committed to the shared version. If not, well, then they aren't.
Now, that's pretty cool. After all, it lets teams collaborate on their vocabulary management, lets them manage territory on a term-by-term basis, and even provides a process for moving the changes along. But the thing that I find most cool about this is that it was all built using the TopBraid Ensemble assembly platform.
You see, I never got the hang of coding Java, and I'm not really a programmer. But I like making systems do what I want them to do, so I am a big scripter. The entire EVMS collaboration control system is written as a TopBraid Ensemble application.
What does this mean? It means a lot of things, but for this project it means that when I was talking to a colleague about how to display the changes that had been made to a vocabulary. He said, "to my mind, I want to be able to click on a term, and see all the people who have changed it, and why!" Well, all that information is modeled in the system - it is just a matter of querying it out with SPARQL.
In the figure, we see the final step of this. We are looking at a fragment of the NCI Thesaurus regarding Organisms. The change log shows a rather silly argument over what we should call lab mice by two of the taxonomists. Every change was made through the EVMS, so we can track back the whole story about each term. Adding this to the system was as easy as writing a SPARQL query and wiring it up to the display components (a grid in the upper-right and a form in the lower-right) so that the changes relevant to a chosen term would be shown.