Flipping Bits: It All Distills Down to Logic Statements and Reasoning
If you grab information from one of my modern approach to creating a reporting scheme prototypes; you can see that everything distills down to a chain of logic gates that are used to construct a chain of reasoning.
For instance, grab this Excel spreadsheet that contains VBA code that extracts metadata from the US GAAP Ontology-like thing. You can use that and other metadata to create things like:
- This interface
- This comparison
- This validator
- These extraction tools
- This HTML rendering
- This different HTML rendering
- This SEC viewer
- This metadata interface
- Or anything else...
That is more, most of the associations are very simple "from" one concept, "to" some other concept, and the nature of the relationship explained by some "arcrole". The most complicated logic represented are the impute rules that look like this:
if (NoncurrentLiabilities = 0 and not(CurrentLiabilities = 0) and not(Liabilities = 0)) then (NoncurrentLiabilities = Liabilities - CurrentLiabilities) else (NoncurrentLiabilities = NoncurrentLiabilities)
That is the toughest software application interface that needs to be created, expressing that relationship. Yes the volume of rules is rather large and there is a lot of professional knowledge that you need to have to create the rules; but professional accountants have that. So, accountants will only work with LOGIC to represent knowledge of a domain that they understand.
Fundamentally, a computer is a bunch of "1s" and "0s" and everything you create is about flipping the right bits with some programming language.
What is a bit different here is that all my metadata is declarative as contrast to interpretive. That changes the programming paradigm. Rather than creating procedural code that is locked into one sequence of IF...THEN statements; the logic is represented via the XBRL technical syntax (instance, taxonomy schema, linkbases) and they a rules engine is used to process the logic represented via the declarative rules.
Semantics are represented in the form of models. The rules engine understands the semantics, models, and how to read the decarative metadata (logic) and can sort everything out.
This is closer to logic programming that functional programming. This is a different paradigm than most software developers are use to.
Powerful stuff!
Reader Comments