TODODM: Dialogue Management Module for Task-Oriented Dialogue management Ontology (TODO)
type: Ontology
license: http://purl.org/NET/rdflicense/cc-by4.0
contributor: Izaskun Fernández (Tekniker) <mailto:izaskun.fernandez@tekniker.es>
created: 2020-04-21T00:00:00
creator: Cristina Aceta (Tekniker) <mailto:cristina.aceta@tekniker.es>
description: Module for dialogue process and system output management.
modified: 2021-09-23T10:00:00
preferred namespace prefix: tododm
version info: 2.1

hasStepFunction
type: ObjectProperty
inverse of: isStepFunctionOf
comment: Establishes the StepFunction corresponding to a SystemRequest or a ProcessStep.
term status: stable

implies
type: ObjectProperty
comment: Establishes the implications of the output of a StepFunction in the Dialogue Manager code.
term status: stable

incorrectUserResponseTypeImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications of an incorrect UserResponseType (e.g. when the request requires Yes/No as response and the user provides a ContentResponse).
term status: stable

initiatedBy
type: ObjectProperty
comment: Establishes the SystemRequest/Response that initiates a DialogueStep.
term status: stable

isRequiredBy
type: ObjectProperty
inverse of: requires
comment: Establishes the SystemRequest that requires a given UserResponse type.
term status: stable

isStepFunctionOf
type: ObjectProperty
comment: Establishes the SystemRequest or a ProcessStep corresponding to a StepFunction.
term status: stable

lessMaxOptionsImplies
type: ObjectProperty
sub property of: multipleOptionsImplies
comment: Establishes the implications when a StepFunction, in the Dialogue Manager code, returns more than one result as output and the length of the output is smaller than the number of maximum results previously defined.
term status: stable

moreMaxOptionsImplies
type: ObjectProperty
sub property of: multipleOptionsImplies
comment: Establishes the implications when a StepFunction, in the Dialogue Manager code, returns more than one result as output and the length of the output is higher than the number of maximum results previously defined.
term status: stable

multipleOptionsImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications when a StepFunction, in the Dialogue Manager code, returns more than one result as output.
term status: stable

noOptionsImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications when a StepFunction, in the Dialogue Manager code, returns no results as output.
term status: stable

noUserResponseTypeImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications of a negative UserResponse.
term status: stable

requires
type: ObjectProperty
comment: Establishes the type of UserResponse required by a SystemRequest.
term status: stable

singleOptionImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications when a StepFunction, in the Dialogue Manager code, returns one result as output.
term status: stable

userResponseNotUnderstoodImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications when the system does not understand a UserResponse.
term status: stable

YesUserResponseImplies
type: ObjectProperty
sub property of: implies
comment: Establishes the implications of a positive UserResponse.
term status: stable

IDval
type: DatatypeProperty
sub property of: topDataProperty
comment: Unique identification value for individuals.
term status: stable

order
type: DatatypeProperty
comment: Sets the order for StepFunctions/DialogueSteps.
term status: stable

outputSentence
type: DatatypeProperty
comment: String to be output by the system in order to communicate a SystemRequest/Response to the user.
term status: stable

ActionDisambiguationRequest
type: Class
subclass of: YesNoRequest
comment: Request that makes the user choose from a set of Actions obtained through inference.
term status: stable
example: [Previous SysResp: "I couldn't resolve the action from your request".] "Do you want to {ActionTag}? "Do you want to {go somewhere}?
example: [Previous SysResp: "No he podido resolver la acción a partir de tu petición"] "¿Quieres {ActionTag}? "¿Quieres {que te lleve a algún sitio}?" @es

ActionOptionsAvailable
type: Class
subclass of: OptionsAvailableResponse
subclass of: Restriction
  on property: implies
  some values from: ActionDisambiguationRequest
comment: Response in which the system tells the user that it has several options for an Action.
term status: stable

ActionOptionsResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ActionDisambiguationRequest
comment: Response that the system gives when a command can be associated to more than one action.
term status: stable
example: Your command can be associated to many actions!
example: ¡El comando puede asociarse a varias acciones! @es

AlternativeArgumentSuggestionRequest
type: Class
subclass of: YesNoRequest
comment: Request that arises when the system has not been able to obtain an argument through an item + complement. The system suggests an alternative that contains the complement in the request. @es
term status: stable
example: Request: "Llévame a un laboratorio con micrófono". "No encuentro ningún/a {Item} con {Complement} como {argumentTag}, pero puedo sugerir {IDval_AlternativeItem}, que sí que tiene. ¿Le llevo ahí?" "No encuentro ningún/a {laboratorio} con {micrófono} como {el destino al que quiere que le lleve}, pero puedo sugerir {sala de reunión 1}, que sí que tiene. ¿Le llevo ahí?" @es
example: Request: "Take me to a laboratory with microphone". "I cannot find any {Item} with {Complement} as {ArgumentTag}, but I can suggest {IDval_AlternativeItem}, which it does have it. Do you want me to take you there?" "I cannot find any {laboratory} with {microphone} as {the destination you want to go}, but I can suggest {meeting room 1}, which it does have it. Do you want me to take you there?"

ArgumentAssignationRequest
type: Class
subclass of: YesNoRequest
comment: Request made to reassure the assignation of a value from the KEE to an Argument.
term status: stable
example: "El {Argument} es el {Argument_value}, ¿verdad?" "El Destino es el "Auditorio", ¿verdad?" @es
example: The {Argument} is {Argument_value}, isn't it? "The Destination is "Auditorium", isn't it?"

ArgumentCharacteristicRequest
type: Class
subclass of: ContentRequest
comment: Request that demands a specific characteristic of the argument. This request is used when the argument provided is too broad and the system needs some characteristic that allows determining the specific element the user is refering to. For example, the user would require a "piece", and the system includes data for 300 types of pieces.
term status: stable
example: "Which {characteristic} is {too_broad_argument}?" "Which {colour} is (the) {piece}?"
example: "¿De qué {characteristic} es {too_broad_argument}? "¿De qué {color} es (la) {pieza}?" @es

ArgumentClarificationRequest
type: Class
subclass of: ContentRequest
comment: Request that asks the user for some clarification for the value of an argument when a previously saved value generates too many options.
term status: stable
example: "Could you please be more specific with {ArgTag}?" "Could you please be more specific with {the destination you want me to take you}?" @es
example: "¿Puedes ser un poco más específico con el {ArgTag}?" "¿Puedes ser un poco más específico con el {destino al que quieres que te guíe}?" @es

ArgumentExplanationResponse
type: Class
subclass of: SystemResponse
comment: Response that gives details about an Argument. For example, when the user does not understand what information conveys said Argument.
term status: stable
example: "El {Argument} corresponde a{ArgDescription}" "El {Error} corresponde a{l número de error que aparece en la máquina}" @es
example: "The {Argument} corresponds to {ArgDescription}" "The {Error} corresponds to {the ID of the error that appears in the machine}"

ArgumentNotCompatibleResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: VerifyInfoRequest
comment: The system informs the user the Argument value provided is not valid according to what has been modelled in the KB.
comment: This would imply an ArgumentRequest.
term status: stable
example: "{ArgumentValue} cannot be the {Argument}." "{Toilet} cannot be the {Error}."
example: "{ArgumentValue} no puede ser {Argument}." "{Baño} no puede ser {Error}." @es

ArgumentNotGuessedResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentRequest
comment: Response given when the system has not been able to guess the value of the Argument through its characteristics.
comment: This would imply an ArgumentRequest/ArgumentCharacteristicRequest
term status: stable
example: "Con las características que me has dado, no he podido averiguar el {Argument}." "Con las características que me has dado, no he podido averiguar el {Error}." @es
example: "I cannot guess the {Argument} with the information you provided." "I cannot guess the {Error} with the information you provided." @es

ArgumentOptionsAvailable
type: Class
subclass of: OptionsAvailableResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentSpecifyRequest
comment: Response in which the system tells the user that it has several options for an Argument.
term status: stable

ArgumentOptionsResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentSpecifyRequest
comment: Response that the system gives when an item can be associated to more than one argument.
term status: stable
example: The item {item} can be associated to many arguments!
example: ¡El item {item} puede asociarse a varios argumentos! @es

ArgumentRequest
type: Class
subclass of: ContentRequest
comment: Request that demands for the value of an Argument.
term status: stable
example: "Can you tell me the {argument}? "Can you tell me the {Destination}?"
example: "¿Puedes decirme el {argument}?" "¿Puedes decirme el {Destino}?" @es

ArgumentSpecifyRequest
type: Class
subclass of: YesNoRequest
comment: Request made when a value for an Argument can belong to different Arguments. The strategy is asking for each Argument option until the user confirms.
term status: stable
example: [Situation: the value "Mesa de reparación" could be Origin or Destination] [Previous SysResponse: "¡Lo que me has dicho podría ser varias cosas!"] "¿Es {el lugar al que quieres que te lleve}?" "¿Es {Argument}?" @es
example: [Situation: the value "Repairing table" could be Origin or Destination] [Previous SysResponse: "What you told me could correspond to many elements!"] "Is it {the place you want me to take you}?" "Is it {Argument}?"

ArgumentValueDisambiguationRequest
type: Class
subclass of: YesNoRequest
comment: Request that tries to obtain the value of the argument when it is ambiguous (e.g. "sala" may apply to "sala Ura", "sala Sua", etc.).
term status: stable
example: "Do you want {Action} {ArgumentConnector} {WorldElement}?" "Do you want {to go} {to} {Sala Ura}?"
example: "¿Quieres {Action} {ArgumentConnector} {WorldElement}?" "¿Quieres {que te guíe} {a} {Sala Ura}?" @es

ArgumentValueOptionsAvailable
type: Class
subclass of: OptionsAvailableResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentValueDisambiguationRequest
comment: Response in which the system tells the user that it has several options for an argument value.
term status: stable

CannotResolveActionResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: UserCommandRequest
comment: Response that the system gives when it cannot associate an action/target to one or more actions.
term status: stable
example: I couldn't associate your command to an action. Can you please be more specific?
example: No he podido asociar tu comando a una acción. ¿Puedes repetir y ser más específico, por favor? @es

CannotResolveCommandResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentRequest
comment: Response that informs the user that the command could not be resolved. [to be followed by an ArgRequest]
term status: stable
example: I could not resolve your command.
example: No he podido resolver tu petición. @es

ContentRequest
type: Class
subclass of: SystemRequest
subclass of: Restriction
  on property: hasStepFunction
  some values from: ContentRequestStepFunction
disjoint with: YesNoRequest
comment: Request that asks for specific information, other than "Yes" or "No" (and equivalents). Also known as "Non polar/Open question" in linguistics.
term status: stable
example: Which is the error code?

ContentRequestStepFunction
type: Class
subclass of: StepFunction
subclass of: Restriction
  on property: incorrectUserResponseTypeImplies
  some values from: YesNoResponseNotExpected
subclass of: Restriction
  on property: isStepFunctionOf
  some values from: ContentRequest
subclass of: Restriction
  on property: userResponseNotUnderstoodImplies
  some values from: NotUnderstoodResponse
comment: Step Function associated to a ContentRequest.
term status: stable

ContentResponseNotExpected
type: Class
subclass of: ResponseTypeNotExpectedResponse
comment: "Solo necesito que me digas sí o no, por favor" @es
comment: "You only need me to tell me yes or no, please"
comment: Reponse given to the user when the UserResponse is a ContentResponse and the SystemRequest requires a YesNoResponse.
term status: stable

Continue
type: Class
subclass of: DialogueControlMarkers
comment: Marker that conveys the idea of continuing with the dialogue process.
term status: stable

DialogueControlMarkers
type: Class
subclass of: Restriction
  on property: IDval
  some values from: string
comment: Elements that correspond to predefined or generic actions in dialogue control.
term status: stable
example: Continue, restart dialogue

DialogueFinished
type: Class
subclass of: SystemResponse
comment: Response given by the system when the dialogue process has finished (i.e., when the user confirms the action and argument values)
term status: stable
example: Done!
example: ¡Listo! @es

DialogueStep
type: Class
subclass of: Restriction
  on property: initiatedBy
  some values from: SystemStep
subclass of: Restriction
  on property: IDval
  some values from: string
subclass of: Restriction
  on property: order
  some values from: integer
disjoint with: ProcessStep
comment: Step in the dialogue process that requires a system interaction with the user (SystemStep).
term status: stable

FinishDial
type: Class
subclass of: DialogueControlMarkers
comment: Marker that establishes that the dialogue must be finished.
term status: stable

GreetingResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: UserCommandRequest
comment: Welcome message.
term status: stable
example: "Hi! I am {SystemName}. I am happy to help you." "Hi! I am {Teknibot}. I am happy to help you."
example: "¡Hola! Soy {SystemName}. Encantado de ayudarte." "¡Hola! Soy {Teknibot}. Encantado de ayudarte." @es

IncorrectArgumentRequest
type: Class
subclass of: YesNoRequest
comment: Request that checks which is the Argument/Action that has not been interpreter correctly, after a negative ReassureFeedbackRequest.
term status: stable
example: "Have I missed the {Argument}?" "Have I missed the {Origin}?"
example: "¿Me he equivocado con el {Argument}?" "¿Me he equivocado con el {Origen}?" @es

IntentRequest
type: Class
subclass of: YesNoRequest
comment: Request made when a UserRequest can belong to different Intents. The strategy is asking for each Intent option until the user confirms.
term status: stable
example: Situation: the Intent for the Request could be "Information" or "Guiding" "So many interpretations! See if you can help me! Do you need {Intent}?" "Then do you need {Intent}? SYS: "So many interpretations! See if you can help me! Do you need {Information}?" USR: "No" SYS: "Then do you need {Guiding}? USR: "Yes"
example: Situation: the intent for the Request could be "Information" or "Guiding" "¡Cuántas interpretaciones! ¡A ver si me puedes ayudar! ¿Quieres {Intent}?" "¿Entonces necesitas {Intent}? SYS: "¡Cuántas interpretaciones! ¡A ver si me puedes ayudar! ¿Quieres {que te dé información}?" USR: "No" SYS: "¿Entonces necesitas {que te lleve}? USR: "Sí" @es

ItemNotCompatibleAnyArgResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: VerifyInfoRequest
comment: El item {item} no es compatible con ningún argumento de la acción. @es
comment: The item {item} is not compatible with any argument for this action.
comment: The system informs the user the Item value provided is not compatible with any action argument, according to what has been modelled in the KB.
term status: stable

MissingInformationResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentRequest
comment: Response that is given when, after checking if all the core Arguments have been provided by the user command, there are core Arguments that are missing.
term status: stable
example: Hay información que me falta. @es
example: I still need some more information. @es

NewDialogue
type: Class
subclass of: YesNoRequest
comment: Request that asks the user whether they want to initiate a new dialogue process.
term status: stable
example: Do you need anything else?
example: ¿Necesitas algo más? @es

NoMoreOptionsContinueResponse
type: Class
subclass of: SystemResponse
comment: Response that the system displays when it runs out of options. It is intended to continue with a full request of the element that the previous options corresponded to.
term status: stable
example: I do not have more options to offer you!
example: ¡No tengo más opciones que mostrarte! @es

NoMoreOptionsRestartResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: UserCommandRequest
comment: Response that the system displays when it runs out of options. It finishes the current Dialogue.
term status: stable
example: I do not have more options to offer you! Can you reformulate your command so I can understand better?
example: ¡No tengo más opciones que mostrarte! ¿Puedes reformular tu comando para que te entienda mejor? @es

NoResultsClarificationResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: RepeatArgumentRequest
comment: Response that the system returns when the clarification step of the value of an Argument does not return any results.
term status: stable
example: I cannot find anything that corresponds to your demand.
example: No encuentro ningún elemento que responda a lo que me pides. @es

NotUnderstoodResponse
type: Class
subclass of: SystemResponse
comment: Response that informs the user that the system has not understood the user command.
term status: stable
example: "I am sorry, but I haven't understood. Can you repeat, please?"
example: "Lo siento, no te he entendido. ¿Puedes repetir, por favor? @es

OptionsAvailableResponse
type: Class
subclass of: SystemResponse
comment: Response in which the system tells the user that it has several options for a specific element (e.g. WorldElement). Note the difference between OptionsAvailableResponse and TooManyAlternativesResponse: the first implies that there is a fair amount of options, whereas the latter implies that the options that are available are too many and it will require the user to be more specific.
term status: stable
example: "I have many options for your request."
example: "Tengo varias opciones para tu comando." "¡Lo que me has dicho puede ser varias cosas!" @es

ProcessStep
type: Class
subclass of: Restriction
  on property: hasStepFunction
  some values from: ProcessStepStepFunction
subclass of: Restriction
  on property: IDval
  some values from: string
comment: Step in the dialogue process that does not require a system interaction with the user (SystemStep).
term status: stable

ProcessStepStepFunction
type: Class
subclass of: StepFunction
subclass of: Restriction
  on property: isStepFunctionOf
  some values from: ProcessStep
subclass of: Restriction
  on property: order
  some values from: integer
comment: Step Function associated to a ProcessStep.
term status: stable

ReassureFeedbackRequest
type: Class
subclass of: YesNoRequest
comment: Request that is sent in order to obtain feedback whether the interpretation obtained is correct or not.
term status: stable
example: "Entonces, quieres que {Action} {ArgumentConnector} {Argument}, ¿verdad?" "Entonces, quieres que {te lleve} {a} {l baño}, ¿verdad?" @es
example: "So, you want me {Action} {ArgumentConnector} {Argument}, right?" "So, you want me {to take you} {to} {the toilet}, right?"

RepeatArgumentRequest
type: Class
subclass of: ContentRequest
comment: Request that demands the user to repeat the value of an Argument.
term status: stable
example: "Can you repeat the {Argument}? "Can you repeat the {Destination}?"
example: "¿Puedes repetir el {argument}?" "¿Puedes repetir el {Destino}?" @es

ResponseTypeNotExpectedResponse
type: Class
subclass of: SystemResponse
comment: Reponse given to the user when the UserResponse does not correspond with the expected response of the SystemRequest.
term status: stable

Restart
type: Class
subclass of: DialogueControlMarkers
comment: Marker that requires the dialogue to restart.
term status: stable

Return
type: Class
subclass of: DialogueControlMarkers
comment: Marker that returns to the last SystemResponse+Request/SystemRequest performed.
term status: stable

StepFunction
type: Class
subclass of: Restriction
  on property: IDval
  some values from: string
comment: Element that is linked to a function in the Dialogue Manager code. This element also determines the implications of the output of said function in the code.
term status: stable

SystemRequest
type: Class
subclass of: SystemStep
disjoint with: SystemResponse
comment: Act in which the system requires user input.
term status: stable
example: Ask for missing information, ask for confirmation.

SystemResponse
type: Class
subclass of: SystemStep
comment: Information that the system provides in response to a UserRequest or as a piece of information directed to the user without a prior UserRequest.
term status: stable

SystemStep
type: Class
subclass of: Restriction
  on property: outputSentence
  some values from: string
comment: Step performed by the system in order to request information to the user or simply outputting information.
term status: stable

TooManyActionOptionsResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: UserCommandRequest
comment: Response given when the number of possible Actions is too big.
term status: stable
example: Your command can be associated to too many actions! Can you repeat and be more specific, please?
example: ¡Tu comando se puede asociar a demasiadas acciones! ¿Puedes repetir y ser un poco más específico, por favor? @es

TooManyAlternativesResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentClarificationRequest
comment: Response given when the alternatives (in general) are too big.
term status: stable
example: "I have too many options taking into account the information you provided to me." "I have too many options taking into account the information you provided to me."
example: "Tengo demasiadas opciones con la información que me has dado." "Tengo demasiadas opciones con la información que me has dado." @es

TooManyArgumentOptionsResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: UserCommandRequest
term status: stable
example: Response given when the number of possible Arguments is too big.
example: Your command can be associated to too many arguments! Can you repeat and be more specific, please?
example: ¡Tu comando se puede asociar a demasiados argumentos! ¿Puedes repetir y ser un poco más específico, por favor? @es

TooManyWorldElementOptionsResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: ArgumentClarificationRequest
comment: Response given when the number of possible World Elements is too big.
term status: stable
example: Your command can be associated to too many elements!
example: ¡Tu comando se puede asociar a demasiados elementos! @es

UnderstoodResponse
type: Class
subclass of: SystemResponse
comment: Response given by the system to reassure the user that it has understood the request.
term status: stable

UserCommandRequest
type: Class
subclass of: ContentRequest
comment: Request to the user to provide their (initial) command.
term status: stable
example: How can I help you? Tell me your command. @es
example: ¿En qué puedo ayudarte? Dame tu comando. @es

ValueNotCompatibleWithArgumentResponse
type: Class
subclass of: SystemResponse
subclass of: Restriction
  on property: implies
  some values from: VerifyInfoRequest
comment: Response given when the ArgValue for an Argument provided by the user is not compatible with said Argument.
term status: stable
example: "It cannot be the {Argument}". "It cannot be the {destination you want me to take you}".
example: "No puede ser {Argument}". "No puede ser {el lugar al que quieres que te lleve}". @es

VerifyInfoRequest
type: Class
subclass of: ContentRequest
comment: Request that requires the user to repeat some information.
term status: stable
example: [Previous SysResponse: "This item cannot be {ArgTag}"] "Can you verify?" [Previous SysResponse: "This item cannot be {the destination}"] "Can you verify?"
example: [PreviousSysResponse: "Este elemento no puede ser {ArgTag}"] "¿Puedes verificarlo?" [PreviousSysResponse: "Este elemento no puede ser {el destino}"] "¿Puedes verificarlo?"

YesNoRequest
type: Class
subclass of: SystemRequest
subclass of: Restriction
  on property: hasStepFunction
  some values from: YesNoRequestStepFunction
comment: Request the response of which is expected to be limited to "Yes" or "No" (and equivalents). Also known as "Polar question" in linguistics.
term status: stable
example: Do you want to go to the laboratory?

YesNoRequestStepFunction
type: Class
subclass of: StepFunction
subclass of: Restriction
  on property: incorrectUserResponseTypeImplies
  some values from: ContentResponseNotExpected
subclass of: Restriction
  on property: isStepFunctionOf
  some values from: YesNoRequest
subclass of: Restriction
  on property: userResponseNotUnderstoodImplies
  some values from: NotUnderstoodResponse
comment: Step Function associated to a YesNoRequest.
term status: stable

YesNoResponseNotExpected
type: Class
subclass of: ResponseTypeNotExpectedResponse
comment: "Creo que no te he entendido. ¿Puedes ser un poco más concreto con tu respuesta?" @es
comment: "I think I haven't understood. Can you be more specific?
comment: Reponse given to the user when the UserResponse is a YesNoResponse and the SystemRequest requires a ContentResponse.
term status: stable