Structural – Gating

Gating

Rainbird can dynamically alter the questions it might ask an end-user depending on the answers that a user selects whilst completing a query. These questions are known as “gating” questions, as they are only applicable if the user passes through a metaphorical gate by selecting the right answer. 

For example, if Rainbird was being used to work out the most suitable loan for a user, you would only want Rainbird to ask for the value of an applicant’s property if they indicated that they own a house instead of renting or living with parents. By using gating questions to create logic-powered surveys, Rainbird will only ask the user questions that are relevant to the user, reducing abandonment rates by not presenting the user with superfluous questions.

Set a question/inference which will impact the downstream logic. This question acts as a gate in which the user will go through, and depending on their answer, will lead to different routes through the query.

It aims at creating different logical paths within a model, enabling designers to lead users through different questions, or skipping some, or applying different weighting and other logical inference parameters.

What problem/context does it address?

  • the user needs to make a choice on how the decision will be made
  • some questions can be skipped
  • propose different ways to get to the result

The gating condition can either be triggered by a question or a rule inference. It is illustrated below by a question.

The image below shows an example of how a gating question or rules in a map might follow different options to complete or follow the user journey.

Figure 1: Generic Structure

To allow the user to choose a specific option, a question needs to be asked to him. A concept with the different options is created, as well as a relationship which will hold the question. The question can eventually describe the different options. The result of this question will then be used in other relationships.

This basic model will determine what illness a Person is likely to have:

Using the Triangle build

Symptom concept instances and illness concept instances have been created and linked with facts:

Each Symptom has facts against one or more Illnesses

The main rule sits on the ‘might have’ relationship:

Main query

Rainbird will ask the user for their symptoms, and then produce a result based on the answer the user selects:

This is a very basic model, and doesn’t account for illnesses that might have more than one symptom.

Refer to the logic option selected

A relationship is used to output the result. This relationship has 3 different rules, one for each option. Each rule will call the gating question relationship and check if it is specifically corresponding to an option. After checking the option number, each corresponding logic will be called throughout the logic option relationship.

Let’s expand the model to also work out whether the user might have coronavirus:

Adding further triangle elements

We’ve added to the model a new concept

  • Coronavirus Symptoms

and two new relationships:

  • might have symptoms of coronavirus
  • indicates coronavirus

To keep the map basic, we’ve also created three concept instances under ‘Coronavirus Symptoms’:

  • Fever
  • Lack of taste and/or smell
  • No additional symptoms

A new ‘Illness’ concept, ‘Coronavirus’, has also been created.

We have also created facts between the relevant ‘Coronavirus Symptoms’ concept instances and the ‘Coronavirus’ ‘Illness’ concept instance, to instruct Rainbird that if a user has symptoms of a fever or lack of taste and/or smell, then they might have coronavirus.

Next, we need to create an object-specific rule on the ‘might have’ relationship so Rainbird can take into account coronavirus symptoms when making a decision. We only want Rainbird to ask if a user has any additional symptoms if they say they have a cough. To achieve this, the rule would look like this:

The below 2 Rules are Object Specific

With those new rules in place, Rainbird knows to ask the user a follow up question, but only if the user selects that they have a cough:

Further gating questions, built in the same way as above, can be added to the model:

Refer to the logic option selected

A relationship is used to output the result. This relationship has different rules, one for each option. Each rule will call the gating question relationship and check if it is specifically corresponding to an option. After checking the option number, each corresponding logic will be called throughout the logic option relationship.

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

Query & Results

The gating rule is built on the ‘might have’ relationship.

Article Feedback form
Did you find this article useful?

Version 1.02 – Last Update: 19/02/2021