In the last article, I took everyone on a whistlestop tour of a reasoning engine for an Artificial General Intelligence. Throughout there are consistant references to causality and a causality engine which resolves much of the challenges of classic AGI development. In this article I will take a closer look at this Causality Engine.

It should be fairly clear that the Knowledge base which contains facts, premises, assumptions, arguements, etc., is just your average relational database. The general problem of using a relational database is one of explosion. When we start a process of combinatorics, the size of the database grows exponentially and, in turn, information retrieval becomes an ever increasing problem. In addition, building upon this to create new knowledge also slows as the database grows.

A less rigid structure which permits random access massively parallel traversal is required. Today, the closest software we have to this is graph databases. Modern graph databases though tend to be built upon two dimensional representation which can leave hyper connected databases rather cluttered and inefficient to traverse. The Causality Engine behind Snasci is built upon n dimensional graphs where each dimension serves as a partition.

In each partition, the same data can be available, however, some partitions can hold unique data. For example, if a partition refers to the year 1969, data from any other year is not exposed but rather an inter-partition link indicates that related data is held in other partitions, like a different year. Data exposed to multiple partitions allows links to be built in different contexts. As an example, take a biography of a person, in one partition we could have their relationship to other people, in another their relationship to fields of study.

In practice this is a form of Semantic Network except that the underlying solution, the database engine, is tailored to the needs of the Semantic Network.

The closest database we have of this nature and of appropriate scale is Azure Cosmos. It has some of the basic features described here but would require quite a bit of re-engineering to make it suitable for a Causality Engine.

In addition, a true Causality Engine would require hardware acceleration for traversal, as well as the ability to project subsets to in-memory versions of the database. Hardware acceleration can also be quite specific and geared towards well-defined traversal scenarios.

A Causality Engine is really a series of partitions within this database which link data in terms of their Causality in every known context. As an AGI is really a Turing complete system capable of constructing Turing complete and Turing incomplete systems autonomously, the database requires seeding with enough Causal relationships and data to complete this task. From this point, the system will become self-learning when integrated with reasoning and other sub-systems which make up the AGI like memory management, objective-based tasks, workflows, etc.

Of course, we can add to this the requirement of an appropriate human computer interaction layer which provides for natural interaction, such as speech, gestures, image/video recognition, etc.

The Causality Engine is an engine because its role within the database is quite distinct. It needs to have a range of functions to integrate, archive and restore causal relationships in a broad range of contexts. Further, as relationships in the causality engine will be dependent on other relationships, a form of dependency, consistancy and integrity checking is required.

The causality engine is a key system in areas such as common sense, reasoning, planning, selecting course of action, decomposing problems and ultimately solving them.

The Causality Engine, database and underlying elastic hardware architectures is a complex problem, however, we do have a broad range of technologies which can serve as the basis of this new system. Strucutring the database is an even bigger task, one that requires heavy optimisation.

It may be the case rather than pursuing independent solutions, companies will need to come together to create a shared globally distributed resource. This arrangement has a lot of benefits spanning from costs to security while still permitting companies to distinguishing themselves at the HCI layer.