Balancing System Expressiveness and System Soundness
I have shown the graphic below before. The graphic summarizes the relative expressiveness and related relative reasoning capacity of various knowledge representation languages. I stole this idea from this blog post and this presentation which show the same information, I just organized some things slightly differently and added various XBRL implementation strategies: (see my original blog post here)
Here is another good graphic that compares relative expressiveness of different languages also:
The vast majority of people are familiar with the level of expressiveness which can be achieved using relational databases. Experience with relational databases for past 25 years helps us undertand that. See my blog post Characterizing Truth: Semantics in Databases which explains the expressiveness which has generally been expressed within databases and specifically this graphic which tries to show limitations of databases.
But things are changing. Here are some changes that I see occurring:
- Richer information is being stored in databases: Contrast storing the information for an invoice in and accounting system with storing the information from an XBRL-based public company 10-K financial report. Both can be seen as transactions. But the relative richness of information in the financial report exceeds the relative richness of the information in the invoice. In the past, things like financial reports were not even structured. More and more information will be structured in the future.
- Business rules are moving from code to metadata: In the past, the information used to verify something like an invoice was stored in the code of an application, in the programming logic. That made it hard to add new rules or change rules because it took a programmer. This approach was costly and made such rules hard to maintain. Ronald G. Ross is the "father of business rules". Business rules are metadata which is properly separated from programming logic and maintained by business professionals.
- More business rules are necessary because information is richer: Because the richness of information is going up, the quantity of business rules that keep the quality of the information high also must also go up.
- More transactions and business rules are external to an organization: People could look at their systems as "silos" in the past. The Internet is changing that all that. Today sets of transactions can be shared between enterprises. Business rules are shared also. Think supply chain.
So those are the changes that are occurring. There are different camps of software vendors trying to provide products and solutions that address with these changes. There is the "semantic web" camp which seems to be pushing RDF/OWL and new types of databases such as triple stores and reasoners/inference engines and SPARQL queries. And you have your "NOSQL" camp that seems to be pushing NOSQL databases as the answer to these changes. And of course there are the entrenched incumbents, the relational database vendors, where a boatload of information is currently being stored, there is a heavy investment in such relational databases, and the relational database has morphed more than once in order to keep up with the changes that are occuring.
But I don't think anyone has pulled all the pieces together and gotten this right yet.
No one product/solution has put all the right pieces together and balanced the system correctly. For me, if the pieces are put together correctly you get an expert system. In this blog post I summarize the benefits offered by an expert system. Think "smart database".
Remember the Law of Conservation of Complexity and the notion of irreducible complexity. Remember that irreducible complexity is explained as follows:
A single system which is composed of several interacting parts that contribute to the basic function, and where the removal of any one of the parts causes the system to effectively cease functioning.
Partial solutions will not work. Complete solutions are necessary. What are the evaluation criteria which one should use to determine is some product or solution will fit your needs? Here are the general, high-level criteria as I see them:
It will be interesting to see what software vendors come up with. Balancing all these pieces and creating the proper equilibrium will be a valuable tool for business professionals.
Reader Comments