Multimodal Architecture and Interfaces (« architecture multimodale et interfaces » en anglais) ou MMI-Arch est un standard ouvert en développement par le W3C depuis 2005. Depuis 2010 est une recommandation d'architecture à composants conteneurs du W3C. Le document est le rapport technique de spécification d'une architecture informatique générique et de ses interfaces pour faciliter l’intégration et la gestion des interactions multimodales dans un environnement informatique. Il a été produit par le groupe de travail en Interaction multimodale du W3C.
Description
La recommandation Multimodal Architecture and Interfaces se concentre sur la proposition d'un cadre général pour permettre aux modules requis dans un système multimodal, de communiquer les uns avec les autres.
Cette spécification propose une architecture orientée évènement dont le principal objet est le flux de données de contrôle car en tant que cadre général de référence, elle sert à déterminer les infrastructures de base utiles pour le contrôle de l'application et des services multimodaux.
L'architecture est aussi proposée pour faciliter la tâche d'implémentation à plusieurs types de dispositifs fournisseurs de services multimodaux, comme les dispositifs mobiles et portables, les appareils électroménagers, l'internet des objets, la télévision et les réseaux domestiques, les applications d'entreprise, les applications web[1], les voitures "intelligentes" ou comme les applications médicales.
Structure Logique
Multimodal Architecture and Interfaces est la description spécifiée d'une infrastructure de services plus large appelée The Runtime Framework dans laquelle sont fournies les principales fonctions dont un système multimodal a besoin et qui se trouve a un niveau d'abstraction plus haut que l'architecture MMI[2]. Ce framework est le support d'exécution et de communication des modules du système multimodal tandis que l'architecture MMI est la description et la spécification de ses principaux modules, ses interfaces et son mode de communication.
La recommandation Multimodal Architecture and Interfaces s'inspire du patron de conception d'architecture applicative MVC qui organise la structure des interfaces utilisateur en trois parties : le Modèle, la Vue et le Contrôleur[3].
Une particularité de cette architecture c'est que bien que la couche de présentation représentée par la Vue a été traditionnellement appliquée aux interfaces graphiques; cette recommandation généralise l'abstraction au contexte plus large de l'interaction multimodale où l'utilisateur peut utiliser une combinaison de modalités visuelles, auditives, biométriques et/ou tactiles.
L'architecture MMI fait donc la distinction entre le contrôleur d'interaction (Interaction Manager - IM), le composant de données (Data Component - DC) et les composants modalité (Modality Components - MC). Cette distinction est similaire à la distinction entre le Contrôleur, le Modèle et les documents de présentation de la Vue dans le patron MVC.
Une autre particularité est l'imbrication. Les modules étant des boîtes noires, il est possible d'encapsuler plusieurs composants dans un composant plus complexe, qui communiquerait avec un contrôleur de plus haut niveau. De cette manière l'architecture suit le principe des poupées russes[4].
La recommandation propose aussi une mise en œuvre de façon distribuée sur plusieurs supports matériels en réseau ou de façon centralisée, avec tous les modules sur un même support matériel. L'échange d'information entre les différents modules se fait avec un couplage lâche qui favorise la faible dépendance entre les modules, la réduction de l'impact des changements dans un module et la réutilisation des modules. De cette manière les modules ont peu ou aucune connaissance du fonctionnement des autres modules et la communication entre les modules se fait grâce à l'échange de messages selon un protocole de communication précis à travers les interfaces de programmation fournies par l'architecture MMI[5].
Les modules de l'Architecture MMI
Le contrôleur d'interaction (Interaction Manager)
Le contrôleur d'Interaction est un composant logique, chargé de tous les échanges de messages entre les composants de modalité du système et l'infrastructure multimodale (le Runtime Framework). Il est un bus de communication et un gestionnaire d'évènements.
Chaque application peut configurer au moins un contrôleur d'interaction (Interaction Manager) pour définir la logique d'interaction souhaitée. Ce contrôleur est au cœur de l'interaction multimodale:
Il gère les comportements spécifiques déclenchés par les messages échangés entre les différents modules d'entrée et de sortie.
Il gère la communication avec toute entité externe au système.
Les composants de modalité (Modality Component)
Les composants de modalité sont responsables de tâches spécifiques, notamment la manipulation des entrées et des sorties dans les diverses modalités, comme la parole, l'écriture, la vidéo, etc. Ce sont des entités logiques responsables du contrôle des entrées et des sorties des différents dispositifs matériels (microphone, tablette graphique, clavier) et logiciels (détection de mouvement, changements biométriques) associés au système multimodal. Par exemple (voir diagramme ci-dessous), un composant de modalité A peut se charger de la reconnaissance de la parole avec la gestion des entrées audio. Un autre composant de modalité B peut gérer plutôt les entrées complémentaires provenant de deux dispositifs différents : une tablette graphique et un microphone. Deux composants de modalité C, peuvent gérer séparément deux entrées complémentaires fournies par un même dispositif: une caméra vidéo. Un dernier composant de modelité D, peut utiliser un service externe de reconnaissance et ne contenir que le contrôle des échanges nécessaires à la reconnaissance.
Dans les quatre cas le système possède un composant de modalité pour la détection des commandes vocales en entrée, malgré les différences d'implémentation: le composant de modalité étant une abstraction d'un type d'entrée qui est gérée et implémentée de manière différente à chaque cas. Tout composant de modalité peut éventuellement envelopper de multiples fonctionnalités fournies par plusieurs périphériques physiques, mais aussi plusieurs composants de modalité pourraient être inclus dans un seul appareil. Pour cette raison, la recommandation du W3C dans son état actuel ne décrit pas en détail la structure ou l'implémentation des composants de modalité. Elle porte seulement sur la nécessité de prévoir une interface de communication avec le contrôleur d'interaction et une implémentation qui respecte un protocole de communication précis: les Life-Cycle Events.
Le composant de données (Data Component)
Le composant de données a pour rôle de sauvegarder les données publiques de l'application qui peuvent être requises par plusieurs composants de modalité ou par d'autre modules (par exemple, le module de session du framework MMI).
Le composant de données peut être un module interne A au contrôleur d'interaction ou externe B (voir diagramme). Ceci dépend de l'implémentation choisie par chaque application. Toutefois le contrôleur d'interaction est le seul à avoir un accès direct au composant de données et lui seul peut consulter et modifier ses données et même communiquer avec des serveurs externes si besoin. En conséquence, les composants de modalité doivent se servir du contrôleur comme intermédiaire pour accéder aux données publiques de l'application multimodale.
En revanche, pour le stockage des données privées, chaque composant de modalité peut implémenter son propre composant de données qui lui-même peut accéder aussi à des serveurs externes B et garder les données dont le composant de modalité peut avoir besoin, par exemple, pour la tâche de reconnaissance de la parole. Ceci peut être un cas d'implémentation du principe des poupées russes de l'architecture MMI.
Protocole de communication entre les différents modules
Dans l'architecture MMI le protocole de communication est asynchrone, bi-directionnel et il est basé sur l'échange de notifications d'événements qui sont levés par le système à la suite d'une action de l’utilisateur ou par une activité interne.
Ce protocole définit le mode de communication et la façon d'établir et de terminer la communication. Dans le cas de cette recommandation, il est reflété dans les Life-Cycle Events. Ce sont des événements de contrôle de base qui sont proposés pour la commande des dispositifs et services matériels (par exemple un lecteur vidéo ou un appareil de reproduction sonore) et des notifications pour le monitoring de l'état du système multimodal.
Les événements de base (Standard Life-Cycle Events)
La spécification propose huit Life-Cycle Events de base qui sont spécifiés sous la forme des paires d'échanges Request > Response:
Indique la création d'un cycle d'interaction (un contexte) entre zéro, un ou plusieurs utilisateur avec une modalité ou plusieurs modalités. Le contexte représente la période la plus longue d'interaction pendant laquelle les modules doivent garder l'information.
Le contexte est associé à la sémantique de l'activité de l'utilisateur et du système pendant le cycle d'interaction ; ceci permet de décider si garder l'information a encore un sens en vue du déroulement de l'activité courante.
Généralement le contexte est créé à partir d'une entrée utilisateur. L'évènement est normalement envoyé par un ou plusieurs composants de modalité au contrôleur d'interaction qui devrait répondre à la requête.
Imaginons par exemple, un composant de modalité chargé de gérer les entrées associées au déplacement du doigt (touchmove) dans une page web lue sur un écran tactile. Lors du démarrage de l'interaction le composant de modalité enverra la requête :
Il est aussi possible que le contrôleur d'interaction soit à l'origine de la requête. Dans ce cas la syntaxe reste la même mais la valeur des propriétés source et target doit changer.
Envoyé par le contrôleur d'interaction, l'évènement indique la fin du cycle d'interaction (le contexte) et demande la libération des ressources qui étaient allouées au contexte d'interaction courant. L'évènement ClearContext peut être associé à la fin de l'activité de l'utilisateur ou du système. Par exemple :
Envoyé par le contrôleur d'interaction cet événement de contrôle signale au composant de modalité qu'il doit se préparer pour le démarrage de sa tâche et qu'il peut charger les données qui seront nécessaires à l'exécution de la même. Par exemple :
S'il y a plusieurs documents ou données à charger lors de la phase de préparation, le contrôleur d'interaction pourrait déclencher plusieurs fois l'évènement PrepareRequest sans pour autant démarrer la tâche après chaque envoi. Néanmoins, à chaque envoi il devra recevoir une réponse. Dans notre exemple, si le contenu a été correctement préchargé la réponse est :
Si pendant l'exécution de sa tâche le composant de modalité reçoit un nouvel évènement StartRequest il peut, soit démarrer au nouveau sa tâche, soit signaler l'échec. Dans le cas d'une exécution réussie la réponse doit être :
Envoyé par le contrôleur d'interaction, cet événement de contrôle signale au composant de modalité qu'il doit arrêter le processus en cours. Par exemple :
Envoyé par le contrôleur d'interaction, cet événement de contrôle signale au composant de modalité qu'il doit mettre en pause le processus en cours. Par exemple, la requête pour une composant qui gère les entrées d'une tablette graphique peut être :
Envoyé par le contrôleur d'interaction, cet événement de contrôle signale au composant de modalité qu'il doit reprendre la tâche précédemment mise en pause par un évènement Pause.
Il est envoyé indifféremment par le contrôleur d'interaction ou par les composants de modalité. Cet événement indique si le cycle d'interaction est encore en cours, c'est-à-dire, si le contexte est "en vie". Par exemple, un composant de modalité peut avoir besoin de surveiller l'état du système pour arrêter un processus en cas de faille ou mise en veille du système. Dans ce cas, il peut envoyer cette requête au contrôleur d'interaction :
Étant donné que la requête n'indique pas le paramètre context, le contrôleur d'interaction doit fournir l'état du système ou du serveur hôte et pas du contexte courant d'interaction. À cette requête le contrôleur d'interaction peut donc donner comme réponse :
La spécification propose aussi deux types de notifications dont une, l'Extension Notification, peut contenir des données de contrôle ou de commande des dispositifs ou services matériaux et pour cette raison cette notification est considérée comme un évènement de base qui exceptionnellement n'est pas décrit comme une paire Request > Response (dans des versions précédentes il était appelé l'évènement data). Ces deux notifications sont:
Cet évènement est utilisé pour communiquer des données de contrôle spécifiques à chaque application. Il peut être généré par le contrôleur d'interaction ou par l'un des composants de modalité indifféremment. Il assure l'extensibilité de l'architecture, dans le sens de donner une API générique dédié aux besoins propres des applications. Par exemple, un composant de modalité qui gère un lecteur DVD peut indiquer au système l'interaction avec le menu principal:
Cette notification est envoyée par le composant de modalité au contrôleur d'interaction dès qu'il a fini sa tâche. Par exemple, lorsqu'un composant de modalité a fini sa reconnaissance d'image (un visage):
↑(en) Dave RAGGETT, Max FROUMENTIN et Philipp HOSCHKA, « Towards Multimodal Web Interaction », Building the Information Society, Springer Boston, vol. 156, , p. 5 (lire en ligne)
Standards et notes du W3C associés à cette recommandation
MMIF: Multimodal Interaction Framework (en) par James A. Larson, T.V. Raman and Dave Raggett, Ed., W3C, 2003. Cette note du W3C propose un framework qui identifie de manière abstraite les principaux composants d'un système multimodal. Ce framework est une base pour développer des applications multimodales en termes de langage de description à utiliser, les scripts, les styles et d'autres ressources utiles.
SCXML : State Chart XML. A State Machine Notation for Control Abstraction (en) par Jim Barnett et al. Ed. W3C, 2006. C'est un langage de machine à états à usage général basé sur des événements. Il peut être utilisé : comme un langage de contrôle de dialogue invoquant différents types de reconnaissance ; comme un métalangage d'application vocale qui peut également contrôler l'accès à des bases de données et des modules de logique métier; comme un langage de contrôle multimodal combinant les dialogues VoiceXML avec des dialogues dans d'autres modalités, y compris le clavier, la souris, l'encre, la vision, les dispositifs haptiques, etc; comme un langage de gestion de centre d'appels étendu et finalement comme langue de contrôle de processus généraux dans d'autres contextes ne comportant pas de traitement de la parole.
CCXML: Voice Browser Call Control Version 1.0 (en) par R.J. Auburn Ed., W3C, 2005. CCXML permet de contrôler les appels vocaux dans des systèmes de dialogue capables de gèrer divers médias comme c'est le cas des systèmes utilisant VoiceXML.
EMMA: Extensible Multimodal Annotation markup language (en) par Michael Johnson et al. Ed., W3C, 2005. Format XML pour annoter l'interprétation des entrées utilisateur avec des informations spécifiques à chaque application telles que le taux de confiance, l'horodatage, la modalité d'entrée et les hypothèses utiles pour la reconnaissance des données saisies.
MMIUse: Multimodal Interaction Use Cases (en) par Emily Candell et Dave Raggett, Ed., W3C, 2002. Cette Note du W3C décrit plusieurs cas d'utilisation pour l'interaction multimodale et les présente en termes de capacités de l'appareil variables et les événements nécessaires à chaque cas d'utilisation de coupler les différentes composantes d'une application multimodale dans laquelle il est possible d'interagir avec de multiples modalités, par exemple, en utilisant la parole, l'écriture, des raccourcis, des commandes vocales et avoir une sortie sonore et visuelle en retour.
SMIL: Synchronized Multimedia Integration Language Version 2.1 (en) par Dick Bulterman et al. Ed. W3C, 2005. Langage qui permet d'écrire des présentations multimédias interactives en décrivant le comportement temporel de la présentation, en associant des liens hypertextes aux médias et en décrivant la disposition de la présentation sur l'écran. Il apporte aussi de la temporisation et de la synchronisation à d'autres langages qui en ont besoin.
VoiceXML: Voice Extensible Markup Language Version 2.0 (en) par Scott McGlashan et al. Ed., W3C, 2004. Il permet de créer des pages avec lesquelles on interagit avec la voix et le son. Il permet la création de dialogues entre l'utilisateur et la page web avec une voix synthétisée, un signal sonore numérisé, une entrée vocale ou une tonalité DTMF.
HTML: HyperText Markup Language Version 4.01 (en) par Raggett et al. Ed., W3C, 1999. Il permet de décrire la présentation et le texte des pages web et d'inclure dans les pages des liens vers des textes complémentaires; des ressources média (images, vidéo, sons) et des ressources média interactifs (formulaires, animations interactives, univers 3D). Cette description est faite avec des balises écrites selon un code structuré et peut être complétée par des informations de style graphique (CSS) ou par une programmation de l'interaction par script (ECMAScript)
2015 single by TamiaStuck with MeSingle by Tamiafrom the album Love Life ReleasedMay 7, 2015 (2015-05-07)Length4:46Label Plus 1 Def Jam Songwriter(s) Rachel Assil Kesia Hollins Jamal Jones Producer(s) Polow da Don Tamia singles chronology Sandwich and a Soda (2015) Stuck with Me (2015) Love Falls Over Me (2015) Stuck with Me is a song by Canadian recording artist Tamia. It was written by Rachel Assil, Kesia Hollins and Jamal Jones for her sixth studio album Love Life (2015), wh...
Town in Central Denmark, DenmarkTranebjergTownTranebjerg ChurchTranebjergLocation in the Central Denmark RegionCoordinates: 55°50′N 10°36′E / 55.833°N 10.600°E / 55.833; 10.600CountryDenmarkRegionCentral DenmarkMunicipalitySamsøPopulation (2023)[1]857Time zoneUTC+1 (CET) • Summer (DST)UTC+2 (CEST) Tranebjerg is a town, situated at the south central part of the island of Samsø in Denmark. It is the largest town on Samsø and also the m...
Term for accelerations felt as weight in multiples of standard gravity This article is about the physics concept. For other uses, see G-Force (disambiguation). G's redirects here. For other uses, see GS. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: G-force – news · newspapers · books · scholar · JSTOR (Oc...
Voce principale: Banconote in euro. La banconota da 200 euro (200 €) è una dei sette tagli di banconota in euro e la seconda in ordine di valore (la prima in ordine di valore è la banconota da 500€). È utilizzata a partire dall'introduzione dell'euro nel 2002 e ad oggi è in circolazione in ventisei Paesi: ventiquattro appartenenti all'eurozona (venti membri e quattro microstati convenzionati all'uso dell'euro) che utilizzano l'euro come moneta unica e due che utilizzano l'euro in man...
MARKERS AND SUCHAlbum mini karya Sal PriadiDirilis18 Maret 2022 (2022-03-18)Durasi10:57LabelOrang PertunjukanProduser Petra Sihombing Mahatamtama Arya Adinegara Kronologi Sal Priadi Berhati(2020) MARKERS AND SUCH(2022) Markers and Such (ditulis dalam huruf kapital) merupakan album mini pertama karya penyanyi dan penulis lagu Indonesia, Sal Priadi.[1] Album mini ini dirilis pada 18 Maret 2022 melalui label rekaman Orang Pertunjukan.[2] Latar belakang Sal Priadi merilis...
Final Piala Liga Inggris 1962TurnamenPiala Liga Inggris 1961–1962 Norwich City Rochdale 4 0 Pertandingan pertama Norwich City Rochdale 3 0 Tanggal26 April 1962StadionSpotland, RochdaleWasitArthur Holland (Barnsley)Penonton11.123Pertandingan kedua Rochdale Norwich City 1 0 Tanggal1 Mei 1962StadionCarrow Road, NorwichWasitR. H. Mann (Worcester)Penonton19.708← 1961 1963 → Final Piala Liga Inggris 1962 adalah pertandingan final ke-2 dari turnamen sepak bola Piala Liga Inggris untuk ...
Lebanese anti-Syrian political coalition March 14 Alliance تحالف ١٤ آذارLeaderSaad HaririWalid JumblattSamir GeageaGeneral SecretaryFares SouaidFounded14 March 2005 (14 March 2005)Dissolved14 March 2016 (14 March 2016)HeadquartersBeirutIdeologyLebanese nationalismPolitical positionBig tentColors Red, whiteParty flagPolitics of LebanonPolitical partiesElections Politics of Lebanon Member State of the Arab League Constitution Constitution of 1926 Human rig...
Colombian people of African descent Ethnic group Afro-ColombiansAfrocolombianosTotal population4,671,160 (9.34% of the population, 2018 census)[1] 15%,[2] 18.1%,[3] 19.4%,[4] 21%,[5] 22%,[6] 25%,[7] or 26%[8] of Colombians (external sources)Regions with significant populationsPacific Region, Caribbean Region, Interandean Valles and urban areas across the countryLanguagesColombian Spanish, English, San Andrés–Providencia Creole...
American game show television program This article is about the 1980s television program on TBS. For other uses, see Starcade (disambiguation). Not to be confused with Starrcade. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Starcade – news · newspapers · books · scholar · JSTOR (January 2024) (Learn how a...
Australian actor This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Damien Garvey – news · newspapers · books · scholar · JSTOR (October 2012) (Learn how and when to remove this message) Damien Gar...
US Open 2013Qualificazioni singolare maschileSport Tennis Tornei Singolare uomini (q) donne (q) ragazzi ragazze Doppio uomini donne misto ragazzi ragazze Singolare carrozzina uomini donne quad Doppio carrozzina uomini donne quad Leggende donne maschile misto 2012 2014 Voci principali: US Open 2013, US Open 2013 - Singolare maschile. Le qualificazioni del singolare maschile dell'US Open 2013 sono state un torneo di tennis preliminare per accedere alla fase finale della manifestazione. I...
For the Anglican Church of Australia school in Karrabin, Queensland, Australia, see West Moreton Anglican College. Radio station in Macon, GeorgiaWMACMacon, GeorgiaBroadcast areaCentral GeorgiaFrequency940 kHzBrandingNews Talk 940 WMACProgrammingFormatNews/talkAffiliationsFox News RadioPremiere NetworksWestwood OneWMAZ-TV (Local news and weather updates)OwnershipOwnerCumulus Media(Cumulus Licensing LLC)Sister stationsWDEN-FMWLZNWMGBWPEZHistoryFirst air dateOctober 30, 1922; 101 y...
City in Massachusetts, United States Holyoke redirects here. For other uses, see Holyoke (disambiguation). City in Massachusetts, United StatesHolyoke, MassachusettsCityClockwise from top: The Holyoke skyline with the clock tower of City Hall and Mount Tom Range in the background, Holyoke Heritage State Park and the Canalwalk, the Holyoke Dam, the Beech Street landscape in spring, and North High Street Historic District FlagSealWordmarkNickname(s): The Paper City[1][2]Bir...
Michael LerjéusInformazioni personaliArbitro di Calcio Federazione Svezia ProfessioneUfficiale militare Attività nazionale AnniCampionatoRuolo 2002-2014 2006-2015Superettan AllsvenskanArbitro Arbitro Attività internazionale AnniConfederazioneRuolo 2009-2015UEFA e FIFAArbitro Jan Michael Lerjéus (Skövde, 18 giugno 1973) è un ex arbitro di calcio svedese. Indice 1 Carriera 2 Note 3 Altri progetti 4 Collegamenti esterni Carriera Lerjéus è un arbitro affiliato alla Federcalcio svedes...
Genre of music Not to be confused with New wave music. New-ageStylistic originsElectronicambientfolkworldclassicalkrautrockrockeasy listeningminimalprogressive rockCultural origins1960s and early 1970s, Europe and United StatesSubgenres Space music biomusic progressive electronic Neoclassical new-age music Fusion genresCeltic fusionOther topics New Age meditation environmentalism List of new-age music artists vaporwave New-age is a genre of music intended to create artistic inspiration, relax...