For years now I have been struggling with Relational DBMS technology and Associative DBMS technology attempting to get them to do what I want. In my first efforts, Relational models were structurally restrictive, Dimensional models were unable to grow organically, EAV models are incompatible with relational architecture. I came upon Simon Williams Associative Model of Data and although enthralled with its potential I found it too had limitations. It was semi-structured and allowed for too much flexibility. 25 years in Information Technology had taught me that there was a single standard classification system for setting up databases not a plethora of ontologies. I was determined to find the theoretical structure and was not concerned with hardware limitations, database architecture, abilties of current query languages or any other constraints.
The Associative Model of Data had made the difference in liberating me from Relational and Dimensional thinking. A traditional ERD of the Associative Model of Data I at first thought would look like the following:
Basically what you have is a Schema composed of Nodes with Node Associations through Verbs and Associations with Nodes Attributions through Verbs. The range of Node Entities, Verb Entities, Association Entities and Attribution Entities are endless. As well the population of the Schema has an unlimited dataset of natural key values. I have been challenged by Relational database specialists and SQL experts regarding the viability of this model within current limitations, however their arguments are irrelevant. What is important is the logical validity of the model, not the physical validity.
After receiving the criticism I decided to revisit the model in order to simplify it. I went over Simon William’s explanations of his model and its application and found I could reduce it to the following:
This was profoundly simpler and better reflected the Associative Model of Data’s Architecture. But even with this simpler architecture I was not satisfied. I felt that the Associatve Model although giving the benefit of explicitly defining the associations was a tabula rasa. Research has shown that tabula rasa’s are contrary to the behavior of the finite physical universe. There is an intermediate level of nature and nuture. And this is what I sought to model.
When I first encountered the Zachman Framework, something about it struck me in a very profound way. I could see there was something fundamental in its description of systems, however I felt that the metaphors that John Zachman used were wrong because they themselves lacked a fundamental simplicity. The consequences of this were that those who studied under Zachman ultimately could not agree on what he was talking about. Also the “disciplines” that Zachman’s Framework generated were continually reinventing the wheel. Zachman had created a world of vertical and horizontal stovepipes. To further the confusion Zachman refused to conceive of a methodology based upon his framework. Consequently, there was no way to determine what the priorities were in creating a system. I call this the Zachman Clusterfuck.
Zachman’s work spawned years of work for me. I could see that systems had a fundamental structure, but I could not agree with Zachman. Focuses and Perspectives were useless terms. The construction metaphor was useless. I read anything I could get my hands on dealing with systems, methodologies, modeling, networks and a broad range of other literature across the disciplines. Out of this came a set of conclusions:
- There were a fundamental set of Noun Entities
- There were a fundamental set of Verb Entities
- There were a fundamental set of Association Entities
- There was a clear order in which the Nouns were addressed
- There was a clear order in which the Verbs were executed
- The structure was fractal
- The content was a scale-free network
I made some attempts at creating the vocabulary and experimented with this new Structured Thinking Language. However, the real break came when I worked with John Boyd’s OODA Loop:
The OODA Loop revealed a governing structure for the methodology and guided my way into the following hybrid relational/dimensional/associational model I call the Structured Associative Model of Data:
One of the key things this model demonstrates is the sequence followed by the OODA Loop. Starting from the top, each dimension set spawns the next. Choices are created from the dimensions. There is no centrism to this model which is an inherent flaw in Service Oriented Architecture (SOA), Event based architecture, Data centric architecture, Goal-Directed Design, Rule based systems among others. The stove pipes of Focuses and Pespectives disappear by reasserting a clear order of priorities and dependencies for achieving success. The model also supports bottom up inductive as well as top down deductive sequencing. This will make the system able to reconfigure to handle exceptions.
Some of the things I have learned in designing this model include the realization that unit defines datatype and that all measures are variable character string text. This is because any displayed value is only a symbolic representation of the actual quantity. If operations are to be performed on measures they are converted to the correct type as part of the operation. I also recognized that Unit was necessary to define the scale and scalability of the system. Further, it became apparent that analog calculations should not be practiced. Every value should be treated as discrete and aggregated.
Another aspect of this system is the inclusion of currency and amount. I have been critical of Zachman and academics for their hypocrisy regarding the economics of systems. All systems have a cost and a benefit and they are measurable in currency. Contrary to the reasoning of the majority, every decision is ultimately economic.
Tim Brown of IDEO has coined the term “Design Thinking” and has been toying with the concept for some time. Many designers dwell on the two dimensional concept of divergence and convergence as modes of thought. If we look at my model, divergence is the creation of choice while convergence is selection of choice. There is no alteration or deletion of choice in my model as history is preserved.
Now what you have is a unencumbered framework with a clear methodological sequence.
Welcome to the Cognitary Universe.