The Evidence Tree

The evidence for a result can be displayed visually in what is called The Evidence Tree, which shows the full chain of reasoning, and The Salience Chart, which shows a more granular view of each rule detailing how the certainty was established.

This provides an easy way to see how a decision was made for debugging, troubleshooting and audit purposes.

These visualisations are predominantly designed for Rainbird Authors to inspect the chain of reasoning during development or to review decisions in production. Presenting the evidence of a decision to an end-user tends to require a custom solution per use case. We can provide assistance on how to construct custom evidence displays for end-users using our APIs.

Viewing the Evidence Tree

For Authors working in the Studio, the Evidence Tree for any result you receive can be accessed by clicking the information icon that appears next to the result.

This will open the evidence tree in a new tab and display a fact card for the result you received. This shows details on how the fact was generated in order to answer the query.

Where you receive multiple results to a query, there will be a unique evidence tree for each result.

A fact card shows:

  1. The source of the fact (a rule, answer, knowledge map, inject or datasource)

  2. The certainty of the fact (0-100%)

  3. The subject, relationship and object names (e.g. (Person) > speaks > (Language))

  4. The subject, relationship and object values (e.g. Mike > speaks > English)

  5. The conditions of the rule (only when the source of the fact was a rule)

Each condition can be expanded to view its own fact card. Where this fact was generate by another rule, those conditions can also be expanded further, and so on. When a fact was generated by another means other than a rule this is the end of the chain and you can expand no further.

The source of a fact could be one of the following:

  1. Rule: a fact was generated because it met the conditions configured in the knowledge map (Dark blue)

    1. List function result: Where a rule uses an expression containing a list function, the function result and contributing facts will be displayed in a separate card (Light blue)

  2. Inject: the fact was injected into the session via API (Light green)

  3. Answer: the fact was generated from an end-users answer (Red)

  4. Datasource: the fact was generated from a datasource response (Dark green)

  5. Knowledge map: the fact was hard-coded in the knowledge map (Orange)

When a fact was generated by a rule, the Salience View can be accessed to understand how the certainty and weighting on each condition affected the overall certainty of the fact generated. This can be opened by clicking the blue square above the conditions list.

Further information on access and functionality be found in The Salience View section.

List function fact card

A list function is a special type of function that can be used within an expression on a rule. These functions gather all available facts for a subject>relationship or relationship>object pair. An operation such as summing, counting or returning the minimum or maximum value can then be performed across the list.

The list function fact card provides visibility on the function, the result of the function and all of the facts that contributed to the result. The source of these facts can then be expanded further to ensure full traceability.

This feature is included in v4.90 (released July 2025) and is only available for sessions created after this release. Evidence from sessions created before v4.90 will not have expandable list functions.

Learn more about viewing evidence from list functions
  1. List functions only The card will only display the result and facts relevant to the list function. If the expression contains further operators these will not be displayed. For example, an expression of sumObjects(%S, 'has coins', *) is greater than 10 would expand to show the result of the sumObjects function (a number) and contributing facts, not the result of the entire expression, which would be true or false in this example and would be shown on the fact card for the rule.

  2. Unmet expressions Expressions containing a list function that were optional and were not met can still be expanded to view more information as to why the expression failed. Using the example of sumObjects(%S, 'has coins', *) is greater than 10 would result in false when sumObjects returns a count of under 10. This will be crossed out in the evidence tree, but the result and contributing facts for sumObjects can still be accessed.

  3. Expressions containing multiple list functions A card will open for each list function used in an expression. The example below uses to two list functions to calculate an average by summing the objects and dividing that by a count of the facts : sumObjects(%S, 'has coins', *) / countRelationshipInstances(%S, 'has coins', *)

  4. No facts found List functions that found no relevant facts can be expanded

  5. List functions that were not processed When a single expression contains or logic between two or more list functions they may not all expand. When the expression can be satisfied by the 1st half (for example), the 2nd half of the expression will never be processed and will not contain evidence for those functions. For example, given an expression of (minObjects(%S, 'has points', *) > 10) OR (sumObjects(%S, 'has points', *) > 15) only the minObjects list function card will display when the 1st half of the expression was met, as the engine does not need to process the 2nd half. If the 1st half doesn't satisfy the expression and the 2nd half does, both will display.

  6. List functions for comparing multiple lists A list function such as isSubset creates lists from two relationships and compares the data in one against the other. Contributing facts will be displayed in the same list card grouped by relationship.

Evidence Tree Access Control

The Evidence Tree, as well as the Evidence Tree API, is an audit log that provides the rationale behind a Rainbird decision. Sometimes, the Evidence Tree can contain sensitive data such as Personally Identifiable Information (PII) or confidential business logic.

By default, access to the evidence tree is secured with a 256-bit encryption key that must be provided with every request for authentication, providing control over who can access this data.

When Authors with permission to view the knowledge map open the Evidence Tree from the Studio, it will always load. However, if the Evidence Tree needs to be accessed by users without permission to view the knowledge map, or people without a Rainbird account, then link sharing needs to be enabled.

This may be required when:

  1. Manually sharing the URL with others to view the Evidence Tree

  2. Publishing and sharing a Rainbird Agent with colleagues or end-users that allow them to view the evidence

  3. Storing the Evidence Tree URL alongside the results in your system

Access Control settings are available in the Rainbird Studio by clicking ‘Publish’ on the top left hand side.

Publicly shareable links are disabled by default and a message will be displayed that the evidence key will be required to view. When building custom integrations to the Evidence API, copy the Evidence Key to share with your development team.

Link sharing disabled by default

To make the Evidence Tree available to anyone with the link, toggle sharing on.

Link sharing enabled

Link sharing can be toggled on and off per Knowledge Map

Building the Evidence Tree URL

Some solutions need to store a link to the Evidence Tree alongside query results within their own systems for audit purposes.

Where this is required, the URL can be programmatically built. This is covered in a Developer Guides article.

Last updated