Rainbird Basics --> Facts and Certainty Factors -->

Rainbird uses three different ways to get information. Rainbird will:

Match: 

Rainbird will consider and try to match concept instances and facts created by the knowledge engineer and inserted directly into the knowledge map, or by the end-user at run time. Populating a map with concept instances and facts provides Rainbird with direct access to the data required to solve a query.  Setting a knowledge map up to match concept instances and facts is straightforward and easy to track; however it’s not very flexible and cannot cover every potential subject/object variable as they would need to all be manually input by the engineer/end-user.

Infer:

Thanks to the rules enclosed in relationships, Rainbird can infer information. Rainbird will attempt to satisfy the conditions of a rule by generating appropriate relationship instances at run-time by running any rules that are provided for the relationship in question.  Rainbird will generally infer a final decision, but Rainbird will also infer information needed for the final decision. Setting up Rainbird to complete a query through inferring information is a suitable method to cover all potential subject/object variables.

Ask: 

If Rainbird cannot match or infer a relationship instance, Rainbird will ask questions to the user. If the user provides an answer, a new relationship instances will be created which Rainbird can use to satisfy the rules of a condition. A query just relying on Rainbird asking questions can be time consuming for users to complete, especially when the questions pertain to general truths, which could potentially be asked again and again.

A concept instance is a specific example of a concept.  “Someone” is a general concept; an instance of ‘someone’ could be a particular person, “Paul”.

Figure 1: ‘Someone’ concept with concept instance ‘Paul’

The example map below determines if a person is mortal or immortal. We interrogated an ancient Greek theologian to understand the subtleties of Olympians, humans and mortality. 

The map will demonstrate the key differences between the 3 main ways Rainbird can be fed concept instances and facts, as well as going through the different types of facts that exists.

To understand who’s mortal or not,  we first build the concepts and relationships in a triangle as shown below:

Figure 4: Basic triangle Someone-Entity-Mortality 

The concept on the right “Strict Mortality” is a boolean (true/false) concept, as for the purposes of the model, someone is either Mortal or Immortal.

Overall Rule:

The relationship called “is strictly mortal or not” is the relationship that will be queried. We create the following rules  to enable Rainbird to make an inference:

Figure 5: “is strictly mortal or not” relationship settings

Different Concept Types, as well as mutually exclusive concepts, in both singular and plural relationships, can be used in facts.

Because the concept “Strict Mortality” is a boolean concept, the outcome of the model will display like this: 

Figure 8: Boolean result

 

The outcome provides little useful information to the end-user. We’d rather have something like “Socrates is Mortal”, or just “Mortal”. To improve the model, we’ll use the mutually exclusive type concept.

 

Note: data can also be fed to Rainbird through data sources or injection (see importing knowledge from google spreadsheet).

The RBLang below will generate the example map used in the article. Click on ‘Export .rbird’ to download the knowledge map, or ‘copy RBLang’ and paste the code directly into Rainbird.

Query and Results

  1. For the Boolean fact, query the “is strictly mortal or not” relationship.
  2. For the Mutually exclusive fact, query the “is strictly mortal or not 2” relationship.
  3. For the Plural answer fact, query the “is mortal or not” relationship.
  4. For the dates facts, the unscalable solution is run by querying the “is mortal based on date” relationship, and the scalable solution is run by querying the “is mortal based on date of birth group“ relationship.
  5. For the Numbers facts, query the “has estimate date of arrival” relationship.

Article Feedback form
Did you find this article useful?

Version 1.01 – Last Update: 17/02/2021