Digital Health Research Center, Fondazione Bruno Kessler
CreativeCommons 4.0 NonCommercial-ShareAlike <https://creativecommons.org/licenses/by-nc-sa/4.0/>
Convology (Conversational Ontology)
activates
has Bot
has DIalog Action
has Intent
has Question
has Status Item
has trigger Question
has User
has User Event
has User Status
performed Event
refers to Dialog
triggers
The Actor concept defines the different roles that can take part into a conversation. Within Convology, we foresee two main roles represented by the concepts Agent and User.
Actor
Instances of the Agent concept are conversational agents that interact with users. When Convology is deployed into an application, instances of Agent concept represents the different agents involved into the conversations with the users adopting the application. Within the same application, Convology will have a different instance of the Agent concept for each User even if the application is the same. The rationale behind is that different active conversations may be in different statuses. Hence, for favoring the efficiency of reasoning activity, different instances are created into the ontology. Finally, different instances of the Agent concept are associated with different instances of the Dialog concept.
Agent
A ConversationItem is an entity taking part into a conversation and that allows to represent relevant knowledge for supporting each interaction. Within Convology, we defined four subclasses of the ConversationItem concept: Question, Intent, Feedback, and DialogAction.
Conversation Item
The Dialog concept represents a multi-turn interaction between a User and one or more Agent. A new instance of the Dialog concept is created when a user starts a conversation with one of the agents available within a specific application. The hasGoalAchieved datatype property is instantiated at the end of the dialogue session, informing the Status achieved as the goal of the dialogue.
Dialog
Instances of the DialogAction concept describes the next action that an Agent individual has to perform. DialogAction individuals can be defined by domain experts as consequences of the detection of specific intents or can be generated as result of reasoning activities and associated with a DialogStatus instance. Individuals of type DialogAction are associated with a Question or a Feedback individual representing the next message sent to a User. Moreover, a DialogAction might have the datatype property waitTime set, i.e. the amount of seconds that the system must wait before sending the Question or the Feedback to the User.
Dialog Action
A DialogStatus individual provides a snapshot of a specific Dialog at a certain time. Entities associated with a DialogStatus individual are the Dialog which the status refers to and the DialogAction that has to be performed as next step. Individuals of type DialogStatus are created at execution time after the processing of the Intent recognized by the system.
Dialog Status
The Event concept describes a single event that can occur during a conversation. Within Convology, we identified three kinds of events: EventQuestion, EventAnswer, and UserEvent. Instances of these concepts enable the storage of information within the knowledge repository, trigger the execution of the reasoning process, and allow the retrieval of information for both analysis and debugging purposes.
Event
The EventAnswer concept represents an Answer provided by an Actor. The timing information associated with individuals of this concept is defined through the hasTimestamp datatype property, while the sender and the receiver are defined by the sentAnswer and receivedAnswer object properties.
Event Answer
An EventQuestion represents the fact that a Question has been submitted to an Actor. Here, we do not make distinctions between the actors because, from a general perspective, the model supports scenarios where questions are sent from a User to an Agent. Instances of this concept are associated with knowledge allowing to identify the timing (hasTimestamp datatype property), the Actor instance that sent the question (sentQuestion object property), and the Actor instance that received the question (receivedQuestion object property).
Event Question
A Feedback represents a simple sentence that an Agent can send to users and for which it does not expect any reply. A Feedback can be used to close a conversation when the goal is achieved, to answer a user request, or simply to send single messages to users without requiring any further interaction (e.g. follow-up messages).
Feedback
An Intent represents a relevant information, detected within a natural language answer provided by a User, that the NLU module is able to recognize and that the reasoner is able to process. Concerning the mention to the NLU module, it is important to clarify that the detection of an Intent within a user's answer requires the integration of a NLU module able to classify the content of users' answers with respect to each Intent associated with the Question sent to a User. Hence, one of the pre-requisites for deploying Convology into a real-world system is the availability of a module that maps the content of users' answers with the instances of the Intent concept defined into the ontology. The possible strategies that can be implemented for supporting such a mapping operation are out of scope of this paper. An Intent is then associated with a StatusItem through the activated object property: once a specific Intent is recognized, a StatusItem instance is created into the knowledge repository for supporting the inference of the user's status.
Intent
An individual of type Question represents a possible question that an instance of type Agent can send to a User. Instances of Question are defined by domain experts together with all the Intent individuals that are associated with each Question through the hasRelevantIntent object property. A Question can be associated with also a specific UserEvent through the hasTriggerQuestion object property.
Question
Uno Slot e' una parte di informazione che serve a completare la rilevazione di un intento.
This Status concept subsumes concepts describing the possible statuses of users, through the UserStatus and StatusItem concepts, or of dialogues, through the DialogStatus concept.
Status
\rdf{StatusItem} individuals represent atomic conditions under which a UserStatus can be activated. Generally, not all StatusItem has to be activated for inferring, in turn, a UserStatus.
Status Item
Instances of the User concept represents the actual users that are dialoguing with the conversational agent. A new instance of the User concept is created when a new user starts a conversation within a specific application. An instance of the User concept can be associated with different instances of the Dialog and Agent concepts. The reasons for which this does not happen for the Agent concept (i.e. an Agent instance can be associated with one and only one instance of User) is because the focus of Convology is to track and support the conversations from the user perspective. Thus, the ontology maintains a single instance of User for each deployment of \convology due to the necessity of tracing the whole history of users.
User
A UserEvent represents an Event associated with a specific user. The purpose of having a specific UserEvent concept instead of inferring UserEvent objects from the EventQuestion and EventAnswer individuals is that a UserEvent does not refer only to questions and answers but also to other events that can occur. Examples are the presence of one or more Intent within users' answer (this kind of knowledge cannot be associated with EventAnswer individuals because Agent instances do not provide Intent within an answer) or information about users' action that are not directly connected with the conversation (the storage of these information is important in case of it is of interest to analyze users' behaviors). The relationship between a UserEvent and an Intent is instantiated through the hasRecognizedIntent object property. Finally, instances of UserEvent can trigger the activation of a specific UserStatus (explained below) as result of the reasoning process. Triggering events are instantiated through the hasTriggerQuestion and triggers object properties. The former allows to put in relationship a UserEvent with a Question. The latter associates a UserEvent with a specific UserStatus. Both relationships are defined as result of the reasoning process.
User Event
Instances of the UserStatus concept are defined by the domain experts and they represent which are the relevant statuses of a User that the conversational agent should discover during the execution of a Dialog. A UserStatus is associated with a set of UserEvent that, in turn, are associated with Intent individuals. This path describes which is the list of Intent enabling the classification of a User with respect to a specific UserStatus.
User Status
Sorry, I didn't get you. Could you use other words?
Have you had episodes of coughing recently?
Do you feel shortness of breath in general and also when talking?
Do you feel shortness of breath in general?
Have you had rhinitis associated with some coughing?
Do you think that your symptoms are not getting any better or may be worsening?
Are you experiencing persistent cough together with whistling?
Are you continuously using the bronchodilator?