If any of these values are very different from one another, Crystal will know which information to retrieve, yet, when these are very close to one another, Crystal will need more information to be sure she is answering with the correct insight. In this case, we will talk about ambiguities.
Crystal resolves the presence of ambiguous information thanks to the Disambiguation, through which Crystal will retrieve ambiguous terms and let the user choose the desired one.
There are different types of ambiguities that might bet detected, depending on the nature and granularity of the information.
Please note: a question might contain more than one ambiguity and different types of them.
Let’s see in detail what happens with cases we can find when using Crystal:
- One filter, multiple values
- One question, multiple topics
- One question, suggested topics
For example, in this case, the user is asking about total sales in America: in the connected data source we have two regions whose name partially includes “America”, and they are “South America” and “North America”. 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 America”
- Ambiguity: “America”
- Candidate filter values: South America - North America
When: when the combination of the entities extracted from the user question leads to multiple possible topics fully compatible with the request but differentiated by a diverse measure:
- Aggregation function ( Total, Average)
- Time aggregation (by day, by month, by year)
Please note: 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.
This ambiguity is raised when there are multiple topics differing only in the aggregation function.
- Question: "Show me the cost”
- Ambiguity: “cost”
- Candidate topic values: total of cost - average cost
This ambiguity is raised when there are multiple overtime topics differing only in the time aggregator.
- Question: "What's the tax overtime?”
- Ambiguity: “time aggregator”
- Candidate topic values: tax over time (by day) - tax over time (by semester) - tax over time (by quarter)
This ambiguity is raised when there are multiple topics differing only in the breakdown parameter.
- Question: "Show me the breakdown of sales”
- Ambiguous value: “breakdown”
- Candidate topic values: breakdown of sales by region - breakdown of score by category
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: "Bring me up the count of sales”
- Ambiguity: “count of sales”
- Candidate topic values (the topic count of sales does not exist): total of net sales volume actual - total of net sales value actual
In general, the use of dynamic filters is very useful to better specify what you are looking for and to add useful details when interacting with Crystal, without falling into disambiguation.