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 1, 2020 - September 30, 2020
Gephi
Someone made me aware of Gephi today. Gephi is a free, open source, and pretty powerful graph/network visualization tool. You can download it for free. (NOTE that there is generally an error when you install Gephi on Windows; the error is simple to fix, watch this video)
There are a bunch of tutorials.
To get started, I recommend these two videos:
If you want even more, the person that created the two videos above created this video play list.
Gephi supports multiple formats including CSV. While CSV is not really a graph, you can express nodes and edges in the CSV format and then import them into Gephi. Two other graph formats are supported: Graph Modeling Language (GML) and Graph Exchange XML Format (GEXF).
Here are some sample data sets that you can use.
If you don't understand graphs, I recommend this Introduction to Graphs (Part 1) tutorial.
Gephi supports a lot of different formats. While Gephi does not support XBRL yet (maybe it will some day); you can convert XBRL presentation, XBRL calculation, and XBRL definition relations into one of the supported formats extremely easily.
Here is a graph of common concepts used to report current assets using US GAAP. You can turn that into this where the size, color, and width of the nodes and edges have meaning.




Metalogic
Logic is a set of principles that forms a framework for correct reasoning. Logic is a process of deducing information correctly. Logic is about the correct methods that can be used to prove a statement is true or false. Logic tells us exactly what is meant. Logic allows systems to be proven.
The principles of logic are topic-neutral, universal principles which are more general than say the single domain of law, biology, mathematics, accounting, or economics. Logic has to do with the meaning of concepts common to all domains and establishes general rules governing concepts.
Logical truths are necessary. The principles of logic are derived solely using reasoning and the validity of the universal principles are not dependent on any other feature of the world.
Logic is the process of deducing information correctly; logic is not about deducing correct information. Understanding the distinction between correct logic and correct information is important because it is important to follow the consequences of an incorrect assumption. Ideally, we want both our logic to be correct and the facts we are applying the logic to, to be correct.
But the point here is that correct logic and correct information are two different things. If our logic is correct, then anything we deduce from such information will also be correct per the rules of logic.
Now, I have mentioned that there are a number different logic systems that could be used to represent a logical system: OWL+SHACL+RDF, Modern Prolog, ISO Prolog, Datalog, PSOA, GQL/Cypher, XBRL+More, SQL+More.
And so, can you prove the same things in one of the systems mentioned above in another one of the systems above? Or saying this another way, is the logic of say OWL+SHACL+RDF equivalent to that of say Modern Prolog?
Enter the notion of metalogic.
Metalogic relates to the comparison between the logic of different systems. As pointed on in Specifying the Rule Metalogic on the Web, interoperability issues can become problematic if you are using different logics to perform work and evaluate two different logical systems such as two different financial report models. Both systems, although different software applications, should derive the same logical conclusions.
For things like computational law, computational audit, computational economics, and computational regulation to become useful; many different systems need to process the same information in exactly the same one standard way. There needs to be some fundamental "baseline".
This becomes apparent with tools such as PSOA that can translate from one logical system to some other logical system. It is absurd to think that simply by changing which software system is "looking" at information that the meaning of that information could change.




PSOA
PSOA or Positional-Slotted Object-Applicative is a funny sounding but very important technology that was intentionally created by the not-for-profit organization RuleML Inc. to bridge the gap between different computing paradigms. RuleML is a industry standards organization focused on standard, global rule interoperability. RuleML is currently being specified as a Rule MetaLogic on the Web.
Many different techniques or paradigms have been created by humans for representing data, information, logic, knowledge, and models in forms that computers can interact with that data, information, logic, knowledge, and models.
PSOA was created to intentionally and consciously pull many of those specific important techniques together into one language creating what amounts to a universal translator:
- Storage and deduction of tabular-based information (e.g. relational database tables and views; logic programming facts and rules)
- Storage and deduction of hierarchical-based or graph-based information (e.g. labeled property graphs like Neo4j and TigerGraph; knowledge graphs such as OWL+SHAQL+RDF)
- Physical-like declarative structures, object oriented (OO-like) software objects
- Logical structures, frames
PSOA is a very expressive (i.e. powerful logic, Turing Complete) and relatively safe (i.e. problems can occur such as a decidability problem, but craftsmen understand and can work around those problems to effectively manage risk) language that bridges between these different techniques all in this one machine-readable language.
PSOA can thus act as an intermediate language for interoperating between long-established languages. Its own safety properties can be derived from those of its translators and target logic engines.
PSOA is a full programming logic language that is often referred to as Full Prolog. Whereas "Pure Prolog" limits itself to Horn Clauses for safety and other reasons. Datalog is an even more safe subset of that is intended to be consistent with relational databases.
Why is all this important? If you want to implement things such as computational law, computational audit, computational economics, and computational regulation you need to be able to (a) express information symbolically and (b) process that information reliably, predictably, and effectively. You want the MAXIMUM about of expressiveness and reasoning capability with the MINIMUM chance of catastrophic system failure (i.e. getting stuck in an infinite loop, never able to finish a process, decidability problems, logical paradoxes, and such).
Tools exist for working with PSOA. PSOATransRun is a browser-based tool.
###########################




Computational Regulation
The Data Coalition calls it "smart regulation". Others refer to it as "algorithmic regulation". Still others conjure up the same meaning using terms such as "robo cop". I will use the term computational regulation which is consistent with computational law, computational audit, and computational economics.
By "computational" I mean able to be processed by a computer, a symbolic system.
So what exactly is computational regulation? Well; rather than defining statutory and regulatory terms and rules only in documents that only humans can read and where intended meaning can be (and often is) ambiguous; terms and rules are also defined using machine-readable, machine-understandable, machine-interpretable standard formal models.
Because those standard formal models can be processed using computer software, the statutory and regulatory rules can be significantly less ambiguous so the intent of those rules is clear to those that must comply with those rules. Because of this increased clarity compliance with rules an be tested which reduces risk of those being regulated.
And so how can these symbolic systems, this logic, be processed? There are many different approaches (Here are details that explain exactly how).
The human imagination is incredibly powerful. Albert Einstein pointed out, "Imagination is more important than knowledge." Transformational moments in human history have come about when someone or some group of people were able to imagine a world the rest of us could not yet see.
XBRL International was formed in 1999 when a group of people imagined possibilities such as computational regulation. Twenty years later far less imagination is necessary. All the pieces are almost in place!




Taxonomy Organization
This is an interesting way to organize a taxonomy.



