Flipping Bits: It All Distills Down to Logic Statements and Reasoning
Tuesday, December 31, 2019 at 12:17PM
Charlie in Digital Financial Reporting

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:

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!

Article originally appeared on XBRL-based structured digital financial reporting (http://xbrl.squarespace.com/).
See website for complete article licensing information.