EN
Search…
Disambiguation: what it is and how it works
In the conversation with crystal sometimes topics can refer to similar elements (entities, aliases, filters, and so on) — especially when several topics are involved.
If these values are very different from one another, crystal will know which information to retrieve when users ask questions related to them.
Yet, when these topics share elements such as entities, aliases, or filters, crystal will need more information to be sure she is answering with the correct insight. In this case we will talk about ambiguities.
Ambiguities are raised when the information extracted from a question can lead to multiple possible viable results.
crystal resolves the presence of ambiguous information thanks to the disambiguation feature, through which the system will retrieve ambiguous terms and let the user choose the desired one.
There are different types of ambiguities that our system might detect, depending on the nature and granularity of the ambiguous information.
In particular, the scenarios we might encounter are:
  1. 1.
    One filter, multiple values
  2. 2.
    One value, multiple filters
  3. 3.
    One question, multiple topics
  4. 4.
    One question, suggested topics
We also need to consider that a question might contain more than one ambiguity and of different types.
Let’s see in detail what happens with each scenario.

In this case, the user asks for a filter value that has more than one result in the data collection of one specific filter. This behavior only happens when the asked filter value is partial and the Partial Matching feature returns multiple results for that value.
For example, in this case the user is asking about total sales in Sesto: in the connected data source we have two cities whose name partially includes “Sesto”, and they are “Sesto San Giovanni” and “Sesto Calende”. That’s why the user will be asked to disambiguate and choose one of the two values, or both.
  • Question: “Show me the total sales in Sesto
  • Ambiguous value: “Sesto
  • Ambiguity candidate filter values: Sesto San Giovanni - Sesto Calende

This ambiguity type is raised when the user asks for a filter value that can be found in multiple filters data collections. For example, we might have an acronym like “IT” that could either refer to the country Italy or to the IT department. Here the user will have to declare if the relevant value is the country or the department, or both.
  • Question: "Show me the total sales for IT
  • Ambiguous value: “IT”
  • Ambiguity candidate filter values: country - department
Whatever the case, you can select multiple values for the filters. To do that, simply select the values you want to be displayed, then click on Apply:

This ambiguity type is raised when the combination of the entities extracted from the user question leads to multiple possible topics fully compatible with the request.
A topic is defined as fully compatible if all the classified entities can be found inside the entities that compose the same topic.
For example, a very common value like “sales” might be involved in disambiguation very often. In this case, the user is generically referring to "sales", but the system needs to know if we want to know about total sales or average sales, or both.
  • Question: "Show me the sales for Product X
  • Ambiguous value: “sales
  • Ambiguity candidate filter values: total sales - average sales

This ambiguity is raised when there are multiple topics differing only in the aggregation function.
  • Question: "Show me the score
  • Ambiguous value: “score
  • Ambiguity candidate filter values: total of score - average score

This ambiguity is raised when there are multiple overtime topics differing only in the time aggregator.
  • Question: "What’s the average score overtime?”
  • Ambiguous value: “time aggregator
  • Ambiguity candidate filter values: average score over time (by month) - avarega score over time (by week)

This ambiguity is raised when there multiple topics differing only in the breakdown parameter.
  • Question: "Show me the breakdown of score”
  • Ambiguous value: “breakdown
  • Ambiguity candidate filter values: breakdown of score by country - breakdown of score by source

This ambiguity type is raised when the combination of the entities extracted from the user question leads to a set of topics partially compatible with the request.
A topic is defined as partially compatible if not every classified entity can be found inside the entities composing the same topic. For example, if we ask about the count of sales, a value not present in any of our topics, the system will still try to help by retrieving those topics including the value “sales”.
  • Question: "Show me the count of sales in Colombia
  • Ambiguous value: “count of sales
  • Ambiguity candidate filter values (the topic count of sales does not exist): total sales - average sales, or both
Also when setting alerts, if you are using an element that may sound ambiguous to crystal, you will be asked to clarify the exact occurrence you are referring to.
In order to better clarify the terms of your data representations, dynamic filters are also very useful.
Want to know more about crystal? Check out this overview on the Dashboard!
If you have any questions about crystal’s features, you have encountered a problem or you would like to share your feedback, contact us using this form.
Copy link
On this page
1. One filter, multiple values
2. One value, multiple filters
3. One question, multiple topics
4. One question, suggested topics