Mammut Markdown

Definición

Mammut Markdown es un lenguaje de marcado que puede usarse en un package. Cada event de un corpusM es un documento en Mammut Markdown. Esta extensión usa como base las marcas de Markdown y permite añadir en un mismo event la mezcla de información con distintos formatos (énfasis, listas, imágenes, listas jerárquicas, listas no jerárquicas, etc.). Además de estas marcas, añade otras marcas que especifican información adicional sobre la estructura o la forma en que un documento tiene que ser presentado. Por ejemplo, si se esta definiendo una lista de elementos con Mammut Markdown, se puede especificar si la lista va a ser enviada al usuario horizontal o verticalmente.

Nota: Mammut Markdown es una extensión que incide en la presentación de los mensajes que un bot enviará. Con este formato se implementan mejoras en los mensajes que el bot reconoce y genera en una interacción con los usuarios.

Las marcas que se añaden con esta extensión denotan transformaciones de la forma del texto que dependen de la conversación en curso. Mammut markdown facilita las transformaciones a través de una variable, que asume su forma en los mensajes generados o reconocidos desde knowledge. Estos datos de salida toman su forma dependiendo de la instance pertinente en la conversación en curso. Mammut Markdown permite crear un events que pueden tomar forma en innumerables mensajes concretos. Los packages que se crean con Mammut Markdown se pueden renderizar de distinta forma según el channel por donde se comuniquen los usuarios.

Conceptos relacionados: event, corpus M, scope.

Tipo de marcas

Mammut Markdown permite crear events en los corpusM con los siguientes recursos:

Texto

Para incluir texto, se debe escribir directamente como se quiere mostrar el texto sin ninguna marca especial.

Ejemplo:

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
1 1 Conversation Hola, Sylvia Carla es
1 2 Conversation Hola! ¿Cómo puedo ayudarte hoy? Mammut es

Dividir un event en varios mensajes

Para dividir un event en varios mensajes, crea párrafos en una misma celda. Usa una o más líneas en blanco para separar un event en varios mensajes.

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
2 1 Conversation Hola, Sylvia Carla es
2 2 Conversation Hola!
¿Cómo puedo ayudarte hoy? Mammut es

Énfasis

Para agregar énfasis en un texto puedes poner el texto en negrita o cursiva. Usa el texto entre dos asteriscos **texto** para poner el texto en negrita. Usa el texto entre un asterisco *texto* para poner el texto en cursiva.

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
1 1 Conversation Hola, Sylvia Carla es
1 2 Conversation Hola! ¿Cómo puedo ayudarte hoy? Mammut es

Texto desde el knowledge

Para incluir texto desde el knowledge, puedes usar una variable. La variable es un elemento que se transforma en datos con formato de texto, imagen, video, o audio. La variable asume su valor dependiendo del scope de cada conversación. Esta sigue la forma [variable|vértice.edge.vértice[...].property] para describir el lugar del knowledge donde buscará los datos (Véase variable).

Ejemplo

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
2 1 Conversation ¿Cuál es el precio de [variable|tienda.sell_several.varita.name] en [variable|tienda.name]? Carla es
2 2 Conversation [variable|tienda.sell_several.varita.name] cuesta [variable|tienda.sell_several.varita.price] Mammut es

Sintaxis alterna: Imagen desde el knowlegde

Para incluir imágenes que ya sean parte del knowledge, puedes usar una variable. Sin embargo, también se permite agregar una imagen desde el knowledge a través de una sintaxis alterna. Para lograrlo se debe seguir la siguiente forma [image|id_del_archivo]. De esta manera, se describe el lugar donde buscará la imagen (Véase variable).

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
4 1 Conversation Muéstrame una imagen de las instalaciones. Carla es
4 2 Conversation [image|1FbcfdFsPCQO-bEwvhLGxMLLo_klpeAVV] Mammut es

Botón

Un botón es un elemento en el chat que provoca alguna acción. Para incluir botones, se debe indicar entre doble llaves el id `````` de la acción previamente definida que se quiere añadir al evento.

Nota: Estas acciones se definen en el variables_sheet del package.

Ejemplo

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
2 5 Conversation Quiero la [variable|tienda.sell_several.varita.name] Carla es
2 6 Conversation De inmediato 2 Mammut es

Listas

Para incluir listas, se ofrece la opción de definir secciones que componen la lista de mensajes. Se usa el símbolo ## para todos los elementos de la lista enumerada. Y se usa el símbolo * para todos los elementos de una lista no enumerada.

Ejemplo

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
5 1 Conversation ¿Cuál es el procedimiento para realizar compras? Carla es
5 2 Conversation Selecciona el producto que quieras. Mammut es
## Envía un mensaje por nuestro Dobibot con el nombre de la varita diciendo que la quieres comprar
## Ofrece tu correo electrónico para procesar la compra
## Completa los datos para completar la compra

Jerarquía de secciones

Para crear una jerarquía de secciones se usa el símbolo #. En esta # es el nivel más alto, ## el segundo nivel, ### el tercero, y así sucesivamente. Esto permite crear events complejos que denoten una jerarquía entre los elementos que lo componen.

Ejemplo

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
2 1 Conversation ¿Cuál es el precio de las varitas en [variable|tienda.name]? Carla es
2 2 Conversation # En [variable|tienda.name] ofrecemos Mammut es
## [variable|tienda.sell_several.varita.name] cuesta [variable|tienda.sell_several.varita.price]

Nota: Esta jerarquía puede estar motivada por la ontology lo cual permitirá que suman su valor al mismo tiempo desde varios vertices del knowledge.

Tags de estilos en una lista

Las listas que se construyen en los events pueden ser formateadas con tags de estilos. De esta manera, se identificarán valores esenciales tales como la orientación del mensaje (vertical u horizontal), la presencia o ausencia de un mensaje introductorio y también la posiblidad de resaltar uno de los elementos del event.

Nota: Si la lista no contiene tags de estilos, esta se asumirá como una lista horizontal.

Tag Descripción
<SimpleCarrousel> Carrusel de uno o mas elementos sin mensaje introductorio
<Carrousel> Carrusel de uno o mas elementos con mensaje introductorio
<SimpleLargeList> Lista de uno o mas elementos, resaltando el primero de ellos, sin mensaje introductorio
<LargeList> Lista de uno o mas elementos, resaltando el primero de ellos, con mensaje introductorio
<SimpleCompactList> Lista de uno o mas elementos, sin mensaje introductorio
<CompactList> Lista de uno o mas elementos, con mensaje introductorio

Ejemplo

id sub_id scenario_type event_message hidden field lambda_condition ui_event action source regional_settings complexity
2 1 Conversation ¿Cuál es el precio de las varitas en [variable|tienda.name]? Carla es
2 2 Conversation \ Mammut es
# En [variable|tienda.name] ofrecemos
## [variable|tienda.sell_several.varita.name] cuesta [variable|tienda.sell_several.varita.price]