# The technology behind the bot

While black-box systems like Deep Learning and Generative AI are great for many more speculative applications, if you need a repeatable and transparent system, you need something else.

The AI ethics bot uses ThinkBase, a product created by a sister company, which uses *Dynamic Knowledge Graphs* to model the problem domain. These combine a graph-theoretic model of the elements of the domain with Fuzzy-Logic rule sets to represent the flow of information between them.

Knowledge graphs are typically used as representations of structures in a domain, and inferences are made by traversing the graph. In the case of ThinkBase, the graph is dynamic, and the traversal is guided by the rules.

The result is a system that makes it relatively easy to represent a complex domain and to generate inferences from it. A node is chosen as the target element, and graph theory is used, both on the structures of the graph and the structures of the rules, to determine all the data items required to satisfy that target, and to determine the order in which the items should be requested.

As each data item is requested and obtained, the graph search is repeated. This process rejects data items that are redundant based on previous answers.

Since this process is repeatable, it is also testable, and since the rule language used, DARL, is easily understood, it is easy to explain any inference created by reapplying the same data, and to create a report on how it was generated, for debugging or auditing purposes.

The question/answer process fits nicely into a chat format. ThinkBase can be easily interfaced with a variety of bot frameworks. In this case we have used the Microsoft Bot Framework, which means we can also easily support a Microsoft Teams app.

ThinkBase allows you to generate knowledge graphs directly by machine learning, or to generate initial speculative graphs using generative AI. In this case, where creating training data would be onerous, the AI ethics bot was created by hand.

Any set of logical statements is subject to the satisfaction problem, which is NP-complete. Specifically in this case this relates to determining whether there are sets of inputs that the logic doesn't cover. ThinkBase permits numeric variables using fuzzy sets as well as fuzzy numbers, making this more complex.
ThinkBase uses a form of *Genetic Algorithm* to efficiently search for such lacunae, giving the system a high degree of confidence in its coverage.

In recent years we've got used to the idea that AI means neural-net derived systems. This ignores many different algorithms and a huge body of work in alternative ways to do AI and ML. ThinkBase attempts to keep these non-neural methods up to date and relevant.