Convology (Conversational Ontology)
type: Ontology
creator: Mauro Dragoni
creator: Milene Santos Teixeira
issued: 2019-04-11
license: https://creativecommons.org/licenses/by-nc-sa/4.0
modified: 2022-04-06
publisher: Digital Health Research Center, Fondazione Bruno Kessler
rights: CreativeCommons 4.0 NonCommercial-ShareAlike <https://creativecommons.org/licenses/by-nc-sa/4.0/>
preferred namespace prefix: cvo
preferred namespace uri: https://w3id.org/convology/ontology/core#
version info: 1.1

activates
type: ObjectProperty
domain: Intent
range: Status

has Bot
type: ObjectProperty
type: FunctionalProperty
domain: Dialog
range: Agent

has DIalog Action
type: ObjectProperty
domain: Dialog Status
range: Dialog Action

has Intent
type: ObjectProperty
domain: Thing
range: Intent

has Question
type: ObjectProperty
domain: Event Question
range: Question

has Status Item
type: ObjectProperty
domain: User Status
range: Status Item

has trigger Question
type: ObjectProperty
domain: Event
domain: User Event
range: Question

has User
type: ObjectProperty
type: FunctionalProperty
domain: Dialog
range: User

has User Event
type: ObjectProperty
domain: User Status
range: User Event

has User Status
type: ObjectProperty
domain: User
range: User Status

performed Event
type: ObjectProperty
domain: Actor
range: Event

refers to Dialog
type: ObjectProperty
type: FunctionalProperty
range: Dialog

triggers
type: ObjectProperty

Actor
type: Class
disjoint with: Conversation Item
disjoint with: Dialog
disjoint with: Event
disjoint with: Status
comment: 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.

Agent
type: Class
subclass of: Actor
disjoint with: Service
disjoint with: User
comment: 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.

Conversation Item
type: Class
disjoint with: Dialog
disjoint with: Event
comment: 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.

Dialog
type: Class
equivalent class: Class
  intersection of: Dialog
  intersection of: Class
    union of: Restriction
      on property: hasGoal
      some values from: Feedback
    union of: Restriction
      on property: hasGoal
      some values from: Status
  intersection of: Restriction
    on property: has Bot
    some values from: Agent
  intersection of: Restriction
    on property: hasDialogType
    some values from: DialogType
  intersection of: Restriction
    on property: has User
    some values from: User
disjoint with: Event
disjoint with: Status
comment: 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 Action
type: Class
subclass of: Conversation Item
disjoint with: Intent
comment: 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 Status
type: Class
equivalent class: Class
  intersection of: Dialog Status
  intersection of: Restriction
    on property: has DIalog Action
    some values from: Dialog Action
  intersection of: Restriction
    on property: refers to Dialog
    some values from: Dialog
  intersection of: Restriction
    on property: hasTimestamp
    some values from: long
subclass of: Status
comment: 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.

Event
type: Class
equivalent class: Class
  intersection of: Event
  intersection of: Restriction
    on property: performedBy
    some values from: Actor
disjoint with: Status
comment: 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 Answer
type: Class
subclass of: Event
disjoint with: Event Question
comment: 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 Question
type: Class
equivalent class: Class
  intersection of: Event Question
  intersection of: Restriction
    on property: has Question
    some values from: Question
subclass of: Event
comment: 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).

Feedback
type: Class
subclass of: Dialog Action
comment: 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).

FilledSlot
type: Class
equivalent class: Class
  intersection of: Slot
  intersection of: Restriction
    on property: hasRelevantInformation
    some values from: RelevantInformation
  intersection of: Restriction
    on property: hasRelevantInformation
    min qualified cardinality: 1
    on class: RelevantInformation

Intent
type: Class
equivalent class: Restriction
  on property: hasConfidenceValue
  max qualified cardinality: 1
  on data range: float
subclass of: Conversation Item
comment: 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.

Question
type: Class
subclass of: Dialog Action
comment: 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.

RelevantInformation
type: Class
equivalent class: Class
  intersection of: RelevantInformation
  intersection of: Restriction
    on property: isPlanningType
    has value: 1
subclass of: Conversation Item

Slot
type: Class
equivalent class: Class
  intersection of: Slot
  intersection of: Restriction
    on property: hasAllowedRelevantInformation
    some values from: RelevantInformation
  intersection of: Restriction
    on property: isPlanningType
    has value: 1
subclass of: Conversation Item
comment: Uno Slot e' una parte di informazione che serve a completare la rilevazione di un intento. @it

Status
type: Class
comment: 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 Item
type: Class
subclass of: Status
comment: \ df{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.

User
type: Class
subclass of: Actor
comment: 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 Event
type: Class
equivalent class: Class
  intersection of: User Event
  intersection of: Restriction
    on property: hasRecognizedIntent
    some values from: Intent
  intersection of: Restriction
    on property: performedBy
    some values from: User
subclass of: Event
comment: 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 Status
type: Class
equivalent class: Class
  intersection of: User Status
  intersection of: Restriction
    on property: has Status Item
    some values from: Status Item
  intersection of: Restriction
    on property: isPlanningType
    has value: 1
subclass of: Status
comment: 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.

classification green
type: NamedIndividual
type: AbstractUserStatus
refers to subdialog: subdialog1
has priority: 4
is goal of dialog: 1

classification green subdialog1 dialog1
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification green
refers to Dialog: subdialog1 dialog1
refers to subdialog: subdialog1 dialog1
has priority: 4
is goal of dialog: 1

classification green subdialog1 dialog2
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification green
refers to Dialog: subdialog1 dialog2
refers to subdialog: subdialog1 dialog2
has priority: 4
is goal of dialog: 1

classification green subdialog1 dialog3
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification green
refers to Dialog: subdialog1 dialog3
refers to subdialog: subdialog1 dialog3
has priority: 4
is goal of dialog: 1

classification green subdialog1 dialog4
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification green
refers to Dialog: subdialog1 dialog4
refers to subdialog: subdialog1 dialog4
has priority: 4
is goal of dialog: 1

classification green subdialog1 dialog5
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification green
refers to Dialog: subdialog1 dialog5
refers to subdialog: subdialog1 dialog5
has priority: 4
is goal of dialog: 1

classification orange
type: NamedIndividual
type: AbstractUserStatus
has Status Item: item fatica respirare
has Status Item: item senso costrizione toracica
has Status Item: item tosse insistente fischio
refers to subdialog: subdialog1
has priority: 2
is goal of dialog: 1

classification orange subdialog1 dialog1
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification orange
refers to Dialog: subdialog1 dialog1
refers to subdialog: subdialog1 dialog1
has priority: 2
is goal of dialog: 1

classification orange subdialog1 dialog2
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification orange
refers to Dialog: subdialog1 dialog2
refers to subdialog: subdialog1 dialog2
has priority: 2
is goal of dialog: 1

classification orange subdialog1 dialog3
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification orange
refers to Dialog: subdialog1 dialog3
refers to subdialog: subdialog1 dialog3
has priority: 2
is goal of dialog: 1

classification orange subdialog1 dialog4
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification orange
refers to Dialog: subdialog1 dialog4
refers to subdialog: subdialog1 dialog4
has priority: 2
is goal of dialog: 1

classification orange subdialog1 dialog5
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification orange
refers to Dialog: subdialog1 dialog5
refers to subdialog: subdialog1 dialog5
has priority: 2
is goal of dialog: 1

classification red
type: NamedIndividual
type: AbstractUserStatus
has Status Item: item fatica parlare respirare
has Status Item: item sintomi non megliorati peggiorati
has Status Item: item uso continuo broncodilatatore
refers to subdialog: subdialog1
has priority: 1
is goal of dialog: 1

classification red subdialog1 dialog1
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification red
refers to Dialog: subdialog1 dialog1
refers to subdialog: subdialog1 dialog1
has priority: 1
is goal of dialog: 1

classification red subdialog1 dialog2
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification red
refers to Dialog: subdialog1 dialog2
refers to subdialog: subdialog1 dialog2
has priority: 1
is goal of dialog: 1

classification red subdialog1 dialog3
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification red
refers to Dialog: subdialog1 dialog3
refers to subdialog: subdialog1 dialog3
has priority: 1
is goal of dialog: 1

classification red subdialog1 dialog4
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification red
refers to Dialog: subdialog1 dialog4
refers to subdialog: subdialog1 dialog4
has priority: 1
is goal of dialog: 1

classification red subdialog1 dialog5
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification red
refers to Dialog: subdialog1 dialog5
refers to subdialog: subdialog1 dialog5
has priority: 1
is goal of dialog: 1

classification yellow
type: NamedIndividual
type: AbstractUserStatus
has Status Item: item rinite con tosse
has Status Item: item tosse corsa
has Status Item: item tosse episodica
has Status Item: item tosse secca stizzosa
refers to subdialog: subdialog1
has priority: 3
is goal of dialog: 1

classification yellow subdialog1 dialog1
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification yellow
refers to Dialog: subdialog1 dialog1
refers to subdialog: subdialog1 dialog1
has priority: 3
is goal of dialog: 1

classification yellow subdialog1 dialog2
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification yellow
refers to Dialog: subdialog1 dialog2
refers to subdialog: subdialog1 dialog2
has priority: 3
is goal of dialog: 1

classification yellow subdialog1 dialog3
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification yellow
refers to Dialog: subdialog1 dialog3
refers to subdialog: subdialog1 dialog3
has priority: 3
is goal of dialog: 1

classification yellow subdialog1 dialog4
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification yellow
refers to Dialog: subdialog1 dialog4
refers to subdialog: subdialog1 dialog4
has priority: 3
is goal of dialog: 1

classification yellow subdialog1 dialog5
type: NamedIndividual
type: SessionUserStatus
refers to abstract class: classification yellow
refers to Dialog: subdialog1 dialog5
refers to subdialog: subdialog1 dialog5
has priority: 3
is goal of dialog: 1

fallback intent
type: NamedIndividual
type: AbstractIntent
is activated: 0

fallback intent subdialog1 dialog1
type: NamedIndividual
type: SessionIntent
refers to abstract class: fallback intent
refers to Dialog: subdialog1 dialog1
is activated: 0

fallback intent subdialog1 dialog2
type: NamedIndividual
type: SessionIntent
refers to abstract class: fallback intent
refers to Dialog: subdialog1 dialog2
is activated: 0

fallback intent subdialog1 dialog3
type: NamedIndividual
type: SessionIntent
refers to abstract class: fallback intent
refers to Dialog: subdialog1 dialog3
is activated: 0

fallback intent subdialog1 dialog4
type: NamedIndividual
type: SessionIntent
refers to abstract class: fallback intent
refers to Dialog: subdialog1 dialog4
is activated: 0

fallback intent subdialog1 dialog5
type: NamedIndividual
type: SessionIntent
refers to abstract class: fallback intent
refers to Dialog: subdialog1 dialog5
is activated: 0

fallback question
type: NamedIndividual
type: OpenQuestion
has utterance: Sorry, I didn't get you. Could you use other words?

inform tosse episodica
type: NamedIndividual
type: AbstractIntent
has slot: tosse episodica
has utterance: Have you had episodes of coughing recently?

initial question
type: NamedIndividual
type: OpenQuestion
has utterance: How do you feel today?

recommendation1 orange
type: NamedIndividual
type: AbstractSlot
has allowed relevant information: NoValue
has allowed relevant information: YesValue
influences user status: classification orange deliberation
has ordering: 1

recommendation2 orange
type: NamedIndividual
type: AbstractSlot
has allowed relevant information: NoValue
has allowed relevant information: YesValue
influences user status: classification orange deliberation
has ordering: 2

request fatica parlare respirare
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform fatica parlare respirare
has utterance: Do you feel shortness of breath in general and also when talking?

request fatica respirare
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform fatica respirare
has utterance: Do you feel shortness of breath in general?

request rinite con tosse
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform rinite con tosse
has utterance: Have you had rhinitis associated with some coughing?

request senso costrizione toracica
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform senso costrizione toracica
has utterance: Are you sensing chest tightness?

request sintomi non megliorati peggiorati
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform sintomi non megliorati peggiorati
has utterance: Do you think that your symptoms are not getting any better or may be worsening?

request tosse corsa
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform tosse corsa
has utterance: Have you coughed while running?

request tosse episodica
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform tosse episodica
has utterance: Have you had episodes of coughing recently?

request tosse insistente fischio
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform tosse insistente fischio
has utterance: Are you experiencing persistent cough together with whistling?

request tosse secca stizzosa
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform tosse secca stizzosa
has utterance: Do you have a dry cough?

request uso continuo broncodilatatore
type: NamedIndividual
type: ClosedQuestion
has relevant intent: inform uso continuo broncodilatatore
has utterance: Are you continuously using the bronchodilator?

subdialog1
type: NamedIndividual
type: AbstractSubdialog
has dialog type: information seeking
has ordering: 1
is activated: 1

subdialog1 dialog1
type: NamedIndividual
type: SessionSubdialog
has dialog type: information seeking
refers to abstract class: subdialog1
refers to Dialog: dialog1
has ordering: 1
is activated: 1

subdialog1 dialog2
type: NamedIndividual
type: SessionSubdialog
has dialog type: information seeking
refers to abstract class: subdialog1
refers to Dialog: dialog2
has ordering: 1
is activated: 1

subdialog1 dialog3
type: NamedIndividual
type: SessionSubdialog
has dialog type: information seeking
refers to abstract class: subdialog1
refers to Dialog: dialog3
has ordering: 1
is activated: 1

subdialog1 dialog4
type: NamedIndividual
type: SessionSubdialog
has dialog type: information seeking
refers to abstract class: subdialog1
refers to Dialog: dialog4
has ordering: 1
is activated: 1

subdialog1 dialog5
type: NamedIndividual
type: SessionSubdialog
has dialog type: information seeking
refers to abstract class: subdialog1
refers to Dialog: dialog5
has ordering: 1
is activated: 1

subdialog2
type: NamedIndividual
type: AbstractSubdialog
has dialog type: deliberation
has ordering: 2
is activated: 0

subdialog2 dialog1
type: NamedIndividual
type: SessionSubdialog
has dialog type: deliberation
refers to abstract class: subdialog2
refers to Dialog: dialog1
has ordering: 2
is activated: 1

subdialog2 dialog2
type: NamedIndividual
type: SessionSubdialog
has dialog type: deliberation
refers to abstract class: subdialog2
refers to Dialog: dialog2
has ordering: 2
is activated: 1

subdialog2 dialog3
type: NamedIndividual
type: SessionSubdialog
has dialog type: deliberation
refers to abstract class: subdialog2
refers to Dialog: dialog3
has ordering: 2
is activated: 1

subdialog2 dialog4
type: NamedIndividual
type: SessionSubdialog
has dialog type: deliberation
refers to abstract class: subdialog2
refers to Dialog: dialog4
has ordering: 2
is activated: 1

subdialog2 dialog5
type: NamedIndividual
type: SessionSubdialog
has dialog type: deliberation
refers to abstract class: subdialog2
refers to Dialog: dialog5
has ordering: 2
is activated: 1