BLOG: Digital Financial Reporting
This is a blog for information relating to digital financial reporting. This blog is basically my "lab notebook" for experimenting and learning about XBRL-based digital financial reporting. This is my brain storming platform. This is where I think out loud (i.e. publicly) about digital financial reporting. This information is for innovators and early adopters who are ushering in a new era of accounting, reporting, auditing, and analysis in a digital environment.
Much of the information contained in this blog is synthasized, summarized, condensed, better organized and articulated in my book XBRL for Dummies and in the chapters of Intelligent XBRL-based Digital Financial Reporting. If you have any questions, feel free to contact me.
Entries from September 13, 2020 - September 19, 2020
Computational Thinking
The Carnegie Mellon Center for Computational Thinking defines computational thinking as:
"Computational Thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent."
I have mentioned computational thinking in a prior blog post. The notion of computational thinking has more relevance when you think about computational professional services. Here are some ways to learn more:
- Five minutes: This five minute video, Computational Thinking by JULES, provides an excellent overview of computational thinking.
- About an hour: This 40 minute video, Computational Thinking, provides a bit more depth.
- Couple of hours: Want even more? Here is a video play list, Computational Thinking, that contains 9 videos (including the two above).
If you already get what computational thinking is and why it is critically important, then you might want to check out this XBRL-based financial reporting jumpstart or Mastering XBRL-based Digital Financial Reporting.




Pacioli
Logical Contracts has created an Logic Toolkit for XBRL-based Digital Financial Reporting that is being called by the codename "Pacioli" (after Luca Pacioli) currently. Fundamentally, Pacioli is a digital business reporting platform (including financial reporting), it is not just the one report you see. You can interact with the details of reports; see this demonstration of interacting with reports using the logical conceptualization of a business report provide by SBRM. Alternatively, you can interact with the report information using XBRL, you can use this demonstration to do that.
This is a summary of my testing of Pacioli.
Pacioli is build using SWI Prolog. This includes an online interface called SWISH. (See SWI Prolog's features here.)
You can load pretty much any XBRL-based report on the internet from that page above. A short 2 minute video is provided that walks you through the Pacioli web service.
If you want to try this Logic Toolkit for XBRL-based Digital Financial Reporting out; I would encourage you to use these sample XBRL instances FIRST because you can gradually use larger, and larger, and larger documents and see what is going on. I would suggest: Accounting equation, SFAC 6, Common Elements, Proof, XASB, and Not for Profit.
You can also use the documents from this XBRL Conformance Suite which are on the smaller size.
You can also try these XBRL-based reports submitted to the SEC for Microsoft, all of these software companies, any reports on this Edgar Dashboard, these IFRS-based reports, or any of these US GAAP-based reports. Other reports you can use include:
- TB Financial Reporting Scheme
- MINI Financial Reporting Scheme
- Not-for-Profit Financial Reporting Scheme
- XASB Financial Reporting Scheme (older)
- Corporate Financial Reporting Exercises
Logical Contracts used Prolog to implement the Logic Toolkit for XBRL-based Digital Financial Reporting. You can get more details on this webpage.
##################################
Other demos:





Luca
Luca is very basic working proof of concept software application that can be used to create an XBRL-based financial report. We are not sure how far we will take this. It is being used to help a software engineer understand some important details.
Requirements
To run Luca, you need the following:
- Microsoft Windows 10.
- Microsoft.Net Framework version 4.7.2.
- Microsoft SQL Server Local DB.
After you have installed the above, you should download and install the most current version of Luca.
Download Luca
You can download incremental builds of Luca here: (be sure to uninstall prior versions of Luca before installing a newer version)
- Luca Version 2.3.0.0 (May 19, 2021) Stable; entering dimensions now works. (Note that with this version, you might need to go to "Tools, Create New DB" to create/update your database.)
Tutorials to help you understand Luca and Standard Business Report Model (SBRM)
The following tutorials will help you understand how to use Luca and the nature of the Standard Business Report (SBRM) model. With the SBRM model, you work with the logic of a business report, not the XBRL technical syntax. XBRL is generated from the SBRM model. Luca is not intended to be the GUI for interacting with business reports or financial reports; it is intended only to help you understand the SBRM logical conceptulization of a business report. These basic tutorials will help you understand that model step-by-step:
- Accounting equation
- Hello World example (very basic)
- Very Basic XBRL Primer (You should focus on section 1.3)
- Excel spreadsheet to copy/paste terms, structures, and associations
- All documentation
- SFAC 6 - Elements of Financial Statements - Very Basic (no hypercubes)
- Tutorial documentation for SFAC 6 Very Basic.
- This version of the SFAC 6 Elements of Financial Statements does not use hypercubes or dimensions to keep this as simple as possible.
- Excel spreadsheet with SFAC 6 terms, labels, structures, assocations, facts to copy/paste into Luca
- All documentation
- SFAC 6 - Elements of Financial Statements - With Hypercubes
- Common Elements of Financial Statement
- Proof
- MINI (not using hypercubes)
The following is free and sometimes open source software that you can use to validate and view the XBRL-based reports that you created using Luca:
- Arelle (free, open source, API available, fairly technical)
- UBmatrix XBRL Processing Engine (free, open source, API, fairly technical)
- Pesseract (free, easy to use and non-technical)
This is a prototype cloud-based version of Luca. (work in progress)




Primary Problem Solving Logic Paradigms
In a RuleML technical memo; Graph-Relational Data, Ontology, Rules; Harold Boley points out that there tends to be three general paradigms for problem solving using machines: knowledge graphs, graph databases, and logic programing. In that paper he provided a graphic that showed the intersections of these three paradigms.
The following is an enhanced version of that same graphic. Dr. Boley helped me make the adjustments. Different organizations use different problem solving paradigms. In fact, within many organizations different paradigms are used. So how do you cross between different paradigms? RuleML's PSOA helps with that.
Saying the same thing in a different way; different people and organizations have different preferences in how they store, retrieve, process, and make available information. Those different approaches can be grouped into those three categories. But effectively, you are using "data" and "ontologies" (or ontology-like things) and "rules". You are storing information in the form of a "tree" (a graph really) or a "table" (a database).
(Note that different people use different terms to describe the same thing or what could be different things; I may be using terms in different ways than you are used to so I am describing each term in detail)
- Knowledge graphs: By knowledge graph I am specifically referring to the W3C semantic web stack. This approach uses RDF, SWRL, OWL, N3, SHACL, SPARQL, and other such W3C standard technologies for representing data, ontologies, and rules. Other terms for this are enterprise knowledge graph. One top knowledge graph vendor is TopQuadrant. This is TopQuadrant's description of knowledge graphs.
- Graph databases: By graph databases I am specifically referring to graph databases that will ultimately support the forthcoming ISO standard graph query language (GQL). I am pretty sure this means labeled property graphs such as Neo4j. But it might mean something else; here is a list of software vendors that seem to be behind ISO standard graph query language. The GQL Manifesto is a good explanation of what is going on here.
- Logic programming: By logic programming I am specifically referring to Modern Prolog on top of relational (SQL) databases. By Modern Prolog I mean SWI Prolog or Scryer Prolog or something similar that is both safe and powerful. This Wikipedia article on logic programming describes this paradigm. Note that Answer Set Programming (ASP) is included in the logic programming paradigm.
So what PSOA RuleML does is tie these paradigms together. PSOA RuleML is a "translation" or "bridging" mechanism. Because each of the three paradigms above use different terminology, structures, association types, rule types, and other such philosophies, there needs to be some sort of "Rosetta Stone" to tie things together.
Remember the days before the internet when there was no one global standard network protocol? That all changed with the invention of the Web Browser. See this history of the Internet.
TCP/IP was not necessarily the "best" network protocol, but it worked and everyone ultimately agreed with and supported that standard. It is that agreement that created the magic of the Internet and World Wide Web.
Will people ultimatly agree on some standard problem solving paradigm? Maybe, maybe not. Does there need to be only one? I don't know.
What I do know is that I have been able to represent XBRL-based financial reports using all three of these paradigms and convert from one paradigm to another. Effectively, the SEC's implementation of XBRL, the ESMA's implementation of XBRL, and the SBRM implementation of XBRL (a) fit into that PSOA RuleML intersection box and (b) can be used to create a provably properly functioning logical system. The SEC, the ESMA and SBRM all avoid potential problem areas plus XBRL effectively supports the creation of "data", the creation of "ontologies", and the creation of "rules". XBRL is powerful enough for financial reporting and it can be made to work by, for example, following my method. This is provable and I have proven it effectively. Further, these same ideas can be applied to nonfinancial reporting use cases.
Properly functioning technology makes things seem to work like magic. But, there is really no magic. For example, consider the OSI model. You use that model every day if you use a computer. You very likely take the OSI model for granted, if you even understand what it is and what it does.
XBRL-based digital financial reporting and in fact computational professional services will ultimatly work as well. Why do I know that? Because it has to. If it does not, then it simply will not be useful and therefore it will not be used.
#########################
Note the intersections between Knowlege Graphs and Logic Programming in the diagram above. These documents help understand that: An Introduction to Prolog and RDF; Comparison of Prolog and RDF.
Note the intersections between Graph Databases and Knowledge Graphs in the diagram above: RDF Triple Stores and Labeled Property Graphs: What's the Difference?; Comparison; Knowledge Graphs vs Property Graphs;
Note the intersections between Logic Programming and Graph Databases in the diagram above: A Graph DB vs Prolog;
#########################
Property Graphs: Training Wheels on the Way to Knowledge Graphs
Alan Morrison's comparison of the pros and cons of property graph databases and RDF/OWL triplestores
Contrasting PROLOG and Graph Databases
Neo4j vs Grakn Part 2: Semantics
KgBase Knowledge Graph (Requires Chrome)




Serenity Prayer
“God grant me the serenity to accept the things I cannot change, courage to change the things I can and the wisdom to know the difference.”