stringtranslate.com

Arquitectura multimodal e interfaces

Arquitectura e Interfaces Multimodales es unestándar abiertodesarrollado por elConsorcio World Wide Webdesde 2005. Fue publicado comoRecomendacióndel W3C el 25 de octubre de 2012. El documento es uninforme técnico que especificaarquitectura de sistemamultimodalinterfacesgenéricaspara facilitar la integración yde la interacción multimodalen un sistema informático. Ha sido desarrollado por elGrupo de Trabajo de Interacción Multimodal.

Descripción

La recomendación de Arquitectura e Interfaces Multimodales introduce una estructura genérica y un protocolo de comunicación para permitir que los módulos de un sistema multimodal se comuniquen entre sí.

Esta especificación propone una arquitectura basada en eventos como marco de referencia general enfocado en el intercambio de datos del flujo de control . Puede utilizarse para determinar las infraestructuras básicas necesarias para comandar los servicios multimodales de la aplicación.

La arquitectura también se propone para facilitar la tarea de implementar varios tipos de proveedores de servicios multimodales en múltiples dispositivos: dispositivos móviles y teléfonos celulares, electrodomésticos , objetos de Internet de las cosas , redes de televisión y del hogar, aplicaciones empresariales, aplicaciones web, [1] automóviles "inteligentes" o en dispositivos y aplicaciones médicas.

Estructura lógica

La arquitectura MMI en el marco de ejecución MMI

La arquitectura multimodal y sus interfaces es la descripción específica de una infraestructura de servicios más amplia denominada marco de ejecución que proporciona las principales funciones que puede necesitar un sistema multimodal. Este marco se encuentra en un nivel de abstracción más alto que la arquitectura MMI. [2] El marco de ejecución MMI son los módulos de soporte y comunicación en tiempo de ejecución del sistema multimodal, mientras que la arquitectura MMI es la descripción y especificación de sus módulos principales, sus interfaces y sus modos de comunicación.

El patrón de diseño MVC en la arquitectura MMI

La especificación de Arquitectura e Interfaces Multimodales se basa en el patrón de diseño MVC , que propone organizar la estructura de la interfaz de usuario en tres partes: el Modelo , la Vista y el Controlador . [3] Este patrón de diseño también se muestra en la arquitectura Data-Flow-Presentation del Voice Browser Working Group. [4]

Recursión en la arquitectura MMI

Una particularidad de esta arquitectura es que si bien la capa de presentación representada por la Vista ha sido tradicionalmente asociada a interfaces gráficas ; esta abstracción de recomendación generaliza la Vista al contexto más amplio de la interacción multimodal , donde el usuario puede utilizar una combinación de modalidades visuales, auditivas, biométricas y/o táctiles.

La recomendación de Arquitectura MMI distingue tres tipos de componentes: el Gestor de Interacción – IM, el Componente de Datos – DC y los Componentes de Modalidad – MC. Esta distinción es similar a la separación entre el Controlador , el Modelo y los documentos de presentación de la Vista en el patrón MVC.

Otra característica es la recursión . Los módulos son cajas negras y es posible encapsular varios componentes en un componente más complejo, que se comunican con un Gestor de Interacción de nivel superior. De esta manera, la arquitectura sigue el principio de muñecas anidadas . [5]

La especificación también cubre las cuestiones de una implementación distribuida sobre múltiples recursos materiales en una red o una implementación centralizada , con todos los módulos instalados en un único soporte material. El intercambio de información entre módulos está acoplado de forma flexible . Esto promueve una baja dependencia entre módulos, reduciendo el impacto de los cambios en un módulo sobre otros módulos y facilitando la reutilización de los módulos. De esta manera, los módulos tienen poco o ningún conocimiento del funcionamiento de cualquier otro módulo y la comunicación entre módulos se realiza mediante el intercambio de mensajes siguiendo un protocolo de comunicación preciso proporcionado por la API de la arquitectura . [6]

Los módulos de arquitectura MMI

Módulos de arquitectura MMI

El gestor de interacciones

El gestor de interacciones es un componente lógico, responsable de todos los intercambios de mensajes entre los componentes del sistema y el Runtime Framework multimodal. Es un bus de comunicación y también un gestor de eventos .

Cada aplicación puede configurar al menos un Interaction Manager para definir la lógica de interacción requerida. Este controlador es el núcleo de la interacción multimodal:

Los componentes de la modalidad

Los componentes de modalidad son responsables de tareas específicas, incluido el manejo de entradas y salidas de diversas maneras, como habla, escritura, video, etc.

Se trata de entidades lógicas que gestionan la entrada y salida de diferentes dispositivos de hardware (micrófono, tableta gráfica, teclado) y servicios de software (detección de movimiento, cambios biométricos) asociados al sistema multimodal. Por ejemplo, (ver figura siguiente), un componente de modalidad A puede encargarse al mismo tiempo del reconocimiento de voz y de la gestión de la entrada de audio. Otro componente de modalidad B puede gestionar las entradas de comandos complementarios en dos dispositivos diferentes: una tableta gráfica y un micrófono. Dos componentes de modalidad C , pueden gestionar por separado dos entradas complementarias dadas por un único dispositivo: una videocámara. Y finalmente, un componente de modalidad D , puede utilizar un servicio web de reconocimiento externo y solo ser responsable del control de los intercambios de comunicación necesarios para la tarea de reconocimiento.

Abstracción de entrada en los componentes de modalidad

En los cuatro casos, el sistema tiene un componente de modalidad genérico para la detección de una entrada de comando de voz, a pesar de las diferencias en la implementación. Cualquier componente de modalidad puede potencialmente incluir múltiples características proporcionadas por múltiples dispositivos físicos, pero también se podría incluir más de un componente de modalidad en un solo dispositivo. En este sentido, el componente de modalidad es una abstracción del mismo tipo de entrada manejada e implementada de manera diferente en cada caso.

Por este motivo, la recomendación del W3C actualmente no describe en detalle la estructura o implementación de los componentes de modalidad, sino que se centra únicamente en la necesidad de una interfaz de comunicación con el Gestor de Interacción y en la necesidad de una implementación que siga un protocolo de comunicación específico : los Eventos del Ciclo de Vida.

Componente de datos públicos y privados

El componente de datos

La función principal del componente de datos es guardar los datos públicos de la aplicación que puedan requerirse por uno o varios componentes de modalidad o por otros módulos (por ejemplo, el módulo de sesión del Framework).

El componente de datos puede ser un módulo interno A o un módulo externo B al Interaction Manager (ver Figura). Esto depende de la implementación elegida por cada aplicación. Sin embargo, el Interaction Manager es el único módulo que tiene acceso directo al Componente de Datos y sólo el Interaction Manager puede ver y editar los datos y comunicarse con servidores externos en caso de ser necesario. Como resultado, los Componentes de Modalidad deben utilizar el Interaction Manager como intermediario para acceder a los datos públicos de la aplicación multimodal.

Sin embargo, para el almacenamiento de datos privados, cada Componente de Modalidad puede implementar su propio Componente de Datos. Este Componente de Datos privado también puede acceder a servidores externos B (ver Figura) y guardar los datos que el Componente de Modalidad pueda requerir, por ejemplo, en la tarea de reconocimiento de voz. Este puede ser el caso de una implementación siguiendo el principio de muñecas anidadas dado por la recomendación de arquitectura MMI.

Protocolo de comunicación entre diferentes módulos

En la arquitectura MMI, el protocolo de comunicación es asincrónico , bidireccional y basado en el intercambio de notificaciones de eventos que son generadas por el sistema luego de una acción del usuario o alguna actividad interna.

Este protocolo define el modo de intercambio y cómo establecer y finalizar la comunicación entre módulos. En el caso de esta especificación, se refleja en los Eventos del Ciclo de Vida. Se trata de seis eventos de control estándar que se proponen para controlar dispositivos y servicios materiales (como un reproductor de vídeo o un dispositivo de reproducción de sonido) y dos notificaciones propuestas para monitorizar el estado actual del sistema multimodal.

Los eventos del ciclo de vida de MMI

Los eventos estándar del ciclo de vida

La especificación recomienda ocho eventos de ciclo de vida estándar especificados como pares de intercambios de Solicitud > Respuesta:

Indica la creación de un ciclo de interacción (contexto) entre cero, uno o más usuarios con uno o múltiples componentes de modalidad. El contexto es el período más largo de interacción en el que los módulos deben mantener disponible la información.
El contexto está asociado a la semántica de la actividad del usuario y del sistema durante el ciclo de interacción. Esto permite a la implementación decidir si mantener la información aún tiene sentido para la ejecución de la actividad actual.
Generalmente, el contexto se crea a partir de la entrada del usuario. El evento normalmente lo envían uno o más componentes de modalidad al administrador de interacción que debe responder la consulta.
Por ejemplo, un componente de modalidad encargado de gestionar las entradas asociadas al gesto del dedo (touchmove) en una página web visualizada en una pantalla táctil. Al comienzo de la interacción física, el componente de modalidad enviará la consulta:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:newContextRequest requestID= "myReq1" source= "myPointerMC.php" target= "myIM.php" data= "myMCStatus.xml" /> </mmi:mmi>       
Ante esta solicitud el Gestor de Interacción responderá:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:newContextResponse requestID= "myReq1" source= "myIM.php" target= "myPointerMC.php" context= "myContextID1" status= "success" /> </mmi:mmi>        
También es posible que el Interaction Manager esté en el origen de la solicitud. En este caso, la sintaxis sigue siendo la misma, pero el valor de las propiedades de origen y destino debe cambiar.
Enviado por el gestor de interacciones, el evento marca el final del ciclo de interacción (contexto) y solicita la liberación de los recursos que estaban asignados al contexto de interacción actual. El evento ClearContext puede estar asociado con el final de la actividad del usuario o del sistema. Por ejemplo:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:clearContextRequest requestID= "myReq2" source= "myPointerMC.php" target= "myIM.php" context= "myContextID1" /> </mmi:mmi>       
Recibida la solicitud, el componente de modalidad podrá dar como respuesta:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:clearContextResponse requestID= "myReq2" source= "myPointerMC.php" target= "myIM.php" context= "myContextID1" status= "success" /> </mmi:mmi>        
Enviado por el administrador de interacción, este control de evento le indica al componente de modalidad que debe estar preparado para iniciar su tarea y que puede cargar los datos que serán necesarios para realizar su trabajo. Por ejemplo:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" xmlns:svg= "http://www.w3.org/2000/svg" > <mmi:prepareRequest requestID= "myReq3" source= "myIM.php" target= "myDisplayMC.php" context= "myContextID2" > <mmi:content> <svg:svg width= "100%" height= "100%" version= "1.1" > <rect width= "300" height= "100" style= "fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)" /> </svg:svg> </mmi:content> </mmi:prepareRequest> </mmi:mmi>             
Si hay varios documentos o datos que se deben cargar durante la fase de preparación, el Interaction Manager podría activar el evento PrepareRequest varias veces sin iniciar la tarea después de cada solicitud. No obstante, cada llamada de solicitud debe ser respondida. En nuestro ejemplo, si el contenido se ha precargado correctamente, la respuesta es:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:prepareResponse requestID= "myReq3" source= "myDisplayMC.php" target= "myIM.php" status= "success" context= "myContextID2" > </mmi:prepareResponse> </mmi:mmi>       
Este evento de control enviado por el administrador de interacción indica al componente de modalidad que puede iniciar su tarea. Por ejemplo:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:startRequest requestID= "myReq4" source= "myIM.php" target= "myPlayerMC.php" context= "myContextID3" data= "myPlayerParams.xml" > <mmi:contentURL href= "myAnimation.swf" /> </mmi:startRequest> </mmi:mmi>        
Si durante la ejecución de su trabajo el Componente Modalidad recibe un nuevo evento StartRequest puede iniciar la nueva tarea o informar del fallo. En caso de ejecución exitosa la respuesta debe ser:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:startResponse requestID= "myReq4" source= "myPlayerMC.php" target= "myIM.php" status= "success" context= "myContextID3" > </mmi:startResponse> </mmi:mmi>       
En caso de fallo la respuesta puede ser por ejemplo:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:startResponse requestID= "myReq4" source= "myPlayerMC.php" target= "myIM.php" status= "failure" context= "myContextID3" > <mmi:statusInfo>       Sin contenido</mmi:statusInfo> </mmi:startResponse> </mmi:mmi>
Este evento de control, enviado por el administrador de interacciones, indica al componente de modalidad que debe detener su tarea actual. Por ejemplo:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:cancelRequest requestID= "myReq5" source= "myIM.php" target= "mySpokerMC.php" context= "myContextID4" Immediate= "true" /> </mmi:mmi>       
La respuesta del componente de modalidad puede ser:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:cancelResponse requestID= "myReq5" source= "mySpokerMC.php" target= "myIM.php" context= "myContextID4" status= "success" data= "myMCStatus.xml" /> </mmi:mmi>        
Enviado por el administrador de interacción, este evento de control indica al componente de modalidad que debe pausar su tarea actual. Por ejemplo, la solicitud para un componente de modalidad que administra la entrada de una tableta gráfica puede ser:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:pauseRequest requestID= "myReq6" source= "myIM.php" target= "myWriterMC.php" context= "myContextID5" emergency= "false" /> </mmi:mmi>       
Y la respuesta del Componente Modalidad puede ser:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:pauseResponse requestID= "myReq6" source= "myWriterMC.php" target= "myIM.php" context= "myContextID5" status= "success" data= "myMCStatus.xml" /> </mmi:mmi>        
Enviado por el Administrador de interacción, este evento de control indica al Componente de modalidad que la tarea previamente pausada debe reanudarse:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:resumeRequest requestID= "myReq7" source= "myIM.php" target= "myWriterMC.php" context= "myContextID5" /> </mmi:mmi>      
La respuesta del componente Modalidad puede ser:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:resumeResponse requestID= "myReq7" source= "myWriterMC.php" target= "myIM.php" context= "myContextID5" status= "success" /> </mmi:mmi>       
Es enviado por el Gestor de Interacción o por los Componentes de Modalidad. Este evento indica si el ciclo de interacción sigue en marcha, es decir, si el contexto está "vivo". Por ejemplo, un Componente de Modalidad puede necesitar monitorear el estado del sistema para detener un proceso en caso de falla o suspensión. En este caso, puede enviar al Gestor de Interacción:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:statusRequest requestID= "myReq8" source= "myRecorderMC.php" target= "myIM.php" requestAutomaticUpdate= "true" /> </mmi:mmi>       
Dado que la solicitud no tiene el parámetro de contexto , el controlador debe devolver el estado del sistema o del servidor host y no el estado del contexto de interacción actual. A esta solicitud, el administrador de interacciones puede responder:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:statusResponse requestID= "myReq8" source= "myIM.php" target= "myRecorderMC.php" status= "alive" AutomaticUpdate= "true" /> </mmi:mmi>        

Las notificaciones

La especificación también recomienda dos tipos de notificaciones, una de las cuales, la Notificación de Extensión, puede contener datos de control o comando para manejar dispositivos o servicios materiales. Por este motivo, esta notificación se considera una excepción, un evento de control estándar que no se describe como un par Solicitud > Respuesta (en una versión anterior se llamaba Evento de Datos). Las dos notificaciones son:

Este evento se utiliza para comunicar datos de control específicos de la aplicación o cualquier otro dato necesario. Puede generarse mediante el administrador de interacciones o mediante un componente de modalidad. Garantiza la extensibilidad de la arquitectura al proporcionar una API genérica dedicada a las necesidades específicas de la aplicación. Por ejemplo, un componente de modalidad que maneja un reproductor de DVD puede indicar al sistema una interacción con el menú principal del DVD:
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:extensionNotification requestID= "myReq9" source= "myPlayerMC.php" target= "myIM.php" context= "myContextID6" name= "playerNavigation" > <applicationdata> <data id= "menu" selected= "true" /> </applicationdata> </mmi:extensionNotification> </mmi:mmi>               
El componente de modalidad envía esta notificación al administrador de interacciones cuando ha finalizado su tarea. Por ejemplo, cuando un componente de modalidad reconocedor ha finalizado la tarea de reconocimiento de imágenes (encontrar un rostro):
<mmi:mmi xmlns:mmi= "http://www.w3.org/2008/04/mmi-arch" version= "1.0" > <mmi:doneNotification requestID= "myReq10" source= "myDetectorMC.php" target= "myIM.php" context= "myContextID7" status= "success" > <mmi:data> <data id= "detectionList" > <usuarios> <id de usuario = "u58" confidence= ".85" /> <id de usuario = "u32" confidence= ".75" /> <id de usuario = "u87" confidence= ".60" /> </usuarios> </datos> </mmi:data> </mmi:doneNotification> </mmi:mmi>                            

Referencias

  1. ^ RAGGETT, Dave.; FROUMENTIN, Max.; HOSCHKA, Philipp. (2004). "Hacia la interacción web multimodal". Construyendo la sociedad de la información . IFIP Federación Internacional para el Procesamiento de la Información. Vol. 156. Springer Boston. págs. 133–138. doi : 10.1007/978-1-4020-8157-6_37 . ISBN . 978-1-4020-8156-9.
  2. ^ James A. LARSON (22 de febrero de 2005). "Lenguajes estándar para el desarrollo de aplicaciones multimodales" (PDF) . Larson Technical Services . Consultado el 20 de agosto de 2011 .
  3. ^ Gerald MCCOBB (8 de mayo de 2007). "La arquitectura multimodal del W3C, parte 1: descripción general y desafíos. Lo que debe saber sobre la arquitectura emergente para aplicaciones multimodales distribuidas". IBM . Consultado el 20 de agosto de 2011 .
  4. ^ VBWG (8 de febrero de 2006). "The Voice Browser DFP Framework". w3.org . Consultado el 11 de enero de 2011 .
  5. ^ GRIFONI, Patrizia (2009). Interacción multimodal entre humanos y computadoras y servicios generalizados . IGI Global. p. 538. ISBN 978-1-60566-386-9.
  6. ^ Deborah DAHL (26 de abril de 2010). "Multimodalidad distribuida en la arquitectura multimodal del W3C" (PDF) . Tecnologías conversacionales . Consultado el 20 de agosto de 2011 .

Enlaces externos

Normas y notas del W3C

Otras normas

Referencias académicas

Campo de golf

Editores