WO2017006066A1 - System and method for the adaptation of a user interface - Google Patents

System and method for the adaptation of a user interface Download PDF

Info

Publication number
WO2017006066A1
WO2017006066A1 PCT/FR2016/051742 FR2016051742W WO2017006066A1 WO 2017006066 A1 WO2017006066 A1 WO 2017006066A1 FR 2016051742 W FR2016051742 W FR 2016051742W WO 2017006066 A1 WO2017006066 A1 WO 2017006066A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
user
user device
transformations
user interface
Prior art date
Application number
PCT/FR2016/051742
Other languages
French (fr)
Inventor
Eric CERET
Gaëlle PAEN-CALVARY
Marc BITTAR
Sophie CHESSA
Original Assignee
Institut Polytechnique De Grenoble
Universite Grenoble Alpes
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institut Polytechnique De Grenoble, Universite Grenoble Alpes filed Critical Institut Polytechnique De Grenoble
Priority to EP16750941.3A priority Critical patent/EP3320419A1/en
Publication of WO2017006066A1 publication Critical patent/WO2017006066A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Abstract

The invention relates to a system for generating a user interface (UI) to be executed on a user device, the system comprising: one or more memory devices (212, 228) storing characteristics associated with the user device, with one or more users of the user device and/or with the environment of the user device; and a processing device (224, 304) adapted to generate code UI so as to implement the UI: by generating a first portion of the code UI by using one or more first transformations selected on the basis of one or more of the characteristics; by generating a second portion of the code UI by using one or more second transformations selected on the basis of one or more of the characteristics; and by assembling at least the first and second portions so as to generate the code UI.

Description

SYSTEME ET PROCEDE POUR L'ADAPTATION D'UNE INTERFACE  SYSTEM AND METHOD FOR ADAPTING AN INTERFACE
D'UTILISATEUR  USER
La présente demande de brevet revendique la priorité de la demande de brevet français FR15/56433 qui sera considérée comme faisant partie intégrante de la présente description. The present patent application claims the priority of the French patent application FR15 / 56433 which will be considered as an integral part of the present description.
Domaine Field
La présente description concerne le domaine de l'interaction homme-ordinateur, et en particulier un système et un procédé pour générer une interface d'utilisateur.  The present disclosure relates to the field of human-computer interaction, and in particular a system and method for generating a user interface.
Exposé de 1 ' art antérieur Presentation of the prior art
Les interfaces utilisateurs comprennent des dispo- sitifs matériels et des applications logicielles qui facilitent l'interaction entre les humains, appelés ici utilisateurs, et des machines. Dans le domaine des technologies de l'infor¬ mation, un composant essentiel de l'interface utilisateur est l'interface utilisateur graphique (GUI), qui est affichée sur un afficheur d'un dispositif d'utilisateur. Le dispositif d'utili¬ sateur pourrait par exemple être un ordinateur de bureau, un ordinateur portable, un smartphone, une tablette informatique, etc.. En plus ou à la place de l'interface d'utilisateur graphique, une interface utilisateur peut comprendre une interface de type audio basée sur de la parole, et une interface de type tactile et/ou un autre type d'interface. Les interfaces utilisateurs sont utilisées dans une grande diversité d'applications logicielles, comme le traitement de texte, les tableurs, les navigateurs web, etc.. User interfaces include hardware devices and software applications that facilitate interaction between humans, referred to herein as users, and machines. In the field of the infor mation technology ¬, an essential component of the user interface is the graphical user interface (GUI), which is displayed on a display of a user device. The utili ¬ sateur device could for example be a desktop computer, a laptop, a smartphone, a tablet computer, etc .. In addition to or instead of the graphical user interface, a user interface may include an audio interface based on speech, and a touch type interface and / or another type of interface. User interfaces are used in a wide variety of software applications, such as word processing, spreadsheets, web browsers, etc.
Le contenu numérique des interfaces utilisateurs, et la manière avec laquelle elles sont présentées sur le dispositif d'utilisateur, sont déterminés par les données fournies par un fichier mémorisé sur un dispositif d'utilisateur ou transmis par un serveur distant. Par exemple, des fenêtres d'affichage concernant certaines applications peuvent être représentées par des fichiers codés en Java ou en C++, alors que les pages sont en général codées par des fichiers de type HTML (langage de marquage hypertexte) .  The digital content of the user interfaces, and the manner in which they are presented on the user device, are determined by the data provided by a file stored on a user device or transmitted by a remote server. For example, display windows for some applications may be represented by files encoded in Java or C ++, while pages are usually encoded by files of type HTML (Hypertext Markup Language).
De nos jours, les interfaces utilisateurs sont en général conçues pour être compatibles avec une gamme relativement large de dispositifs d'utilisateurs, de sorte qu'un utilisateur peut accéder avec succès à des informations, faire des sélections, naviguer vers de nouvelles fenêtres/pages, et introduire des données. Cependant, on s'est aperçu qu'il peut être souhaitable d'adapter ces interfaces utilisateurs aux catégories de dispositifs sur lesquelles elles sont exécutées. Par exemple, dans le cas d'une page web, on fait souvent la distinction entre dispositif « de bureau » et dispositif « mobile ». Alors qu'un dispositif de bureau est en général considéré comme comprenant un écran relativement grand de 12 pouces ou plus, un clavier et une souris, un dispositif mobile est en général caractérisé en ce qu'il utilise un écran tactile de dimensions relativement faibles, et par l'absence de clavier ou de souris. Par conséquent, il y a souvent deux versions d'une interface utilisateur graphique, l'une étant adaptée aux dispositifs « de bureau », et l'autre étant adaptée aux dispositifs « mobiles ». L'utilisateur installe la version de l'application correspondant à son dispositif, ou dans le cas d'interfaces web, les deux types de pages web sont mémorisés par le serveur distant hébergeant le site, et les unes ou les autres sont transmises au dispositif d'utilisateur, par exemple sur la base d'une détection automatique du type du dispositif d'utilisateur, et/ou sur la base d'une sélection par 1' utilisateur . Nowadays, user interfaces are generally designed to be compatible with a relatively wide range of user devices, so that a user can successfully access information, make selections, navigate to new windows / pages , and introduce data. However, it has been found that it may be desirable to adapt these user interfaces to the categories of devices on which they are executed. For example, in the case of a web page, there is often a distinction between "desktop" device and "mobile" device. While a desktop device is generally considered to comprise a relatively large screen of 12 inches or more, a keyboard and a mouse, a mobile device is generally characterized in that it uses a relatively small touch screen, and by the absence of keyboard or mouse. Therefore, there are often two versions of a graphical user interface, one being adapted to "desktop" devices, and the other adapted to "mobile" devices. The user installs the version of the application corresponding to his device, or in the case of web interfaces, the two types of web pages are stored by the remote server hosting the site, and one or the other are transmitted to the device. user, for example on the based on an automatic detection of the type of the user device, and / or on the basis of a selection by the user.
Au cours de ces dernières années, de nouveaux types de dispositifs d'utilisateurs sont apparus, comprenant des dispositifs correspondant à la technologie appelée en anglais « wearable technology », c'est-à-dire « technologie pouvant être portée sur soi », comme des montres à capacité internet, ou des écouteurs ayant la forme de lunettes. En outre, il est devenu courant que des utilisateurs utilisent leur dispositif d'utilisateur pour accéder à du contenu ou exécuter des applications logicielles dans une grande gamme d'environnements, comme dans les trains, les avions, les automobiles, pendant des réunions, etc. Au vu de ces facteurs, il serait souhaitable d'avoir une plage encore plus grande de versions d'interface, chaque version étant adaptée à une catégorie de dispositifs différents, à des utilisateurs différents et/ou un environnement d'accès différent.  In recent years, new types of user devices have emerged, including devices corresponding to the so-called wearable technology, that is, "wearable technology", such as watches with internet capability, or headphones in the form of glasses. In addition, it has become commonplace for users to use their user device to access content or run software applications in a wide range of environments, such as trains, planes, automobiles, meetings, etc. . In view of these factors, it would be desirable to have an even wider range of interface versions, each version being adapted to a different category of devices, to different users and / or to a different access environment.
Une solution pour obtenir de telles versions de l'interface utilisateur serait d'étendre la stratégie actuellement adoptée pour créer et mémoriser plus d'une seule version de chaque interface. Toutefois, puisque le nombre de versions à prendre en charge augmente, cette solution conduirait à un coût élevé en stockage de données, et aussi à un coût élevé pour le développement et la maintenance de chaque version.  One solution for obtaining such versions of the user interface would be to extend the strategy currently adopted to create and store more than one version of each interface. However, since the number of versions to be supported increases, this solution would lead to a high cost in data storage, and also to a high cost for the development and maintenance of each version.
Une approche conceptuelle connue sous le nom anglais de « Responsive Design » a été proposée pour adapter une page web à une taille particulière de fenêtre d'affichage. Cette approche implique la programmation du fichier CSS (Cascading Style Sheets) associé à un document HTML de telle sorte que le format d'affichage soit sélectionné sur la base d'une taille de fenêtre détectée dans laquelle la page web doit être affichée. L'adaptation peut changer l'organisation de l'affichage (par exemple, modifier l'emplacement de certaines parties de l'interface utilisateur), ou rendre certaines parties de l'interface utilisateur invisibles. Ainsi, le même code d' interface utilisateur est transmis à tous les dispositifs accédant à la page web, et l'un des formats d'affichage défini dans le fichier CSS de ce code va être sélectionné en fonction de la taille de la fenêtre. Toutes les données qui pourraient être affichées sur le dispositif sont transférées, même si les directives CSS expriment que, dans la situation courante, certaines des données ne sont pas affichées . A conceptual approach known as "Responsive Design" has been proposed to adapt a web page to a particular size of display window. This approach involves programming the CSS file (Cascading Style Sheets) associated with an HTML document so that the display format is selected based on a detected window size in which the web page is to be displayed. Adaptation can change the organization of the display (for example, change the location of some parts of the user interface), or make some parts of the user interface invisible. Thus, the same user interface code is transmitted to all the devices accessing the web page, and one of the display formats defined in the CSS file of this code will be selected according to the size of the window. All the data that could be displayed on the device is transferred, even if the CSS directives express that in the current situation, some of the data is not displayed.
En plus du fait que l'adaptation d'une conception réactive soit limitée à la taille de la fenêtre, un inconvénient de l'approche « Responsive Design » est que, au vu de la taille supérieure des fichiers CSS et HTML, les temps de téléchargement des pages web peuvent être accrus, et que les performances du dispositif sur lequel l'interface utilisateur est affichée sont aussi réduites. En outre, le fait de développer une interface utilisateur sur la base de cette approche conceptuelle est complexe et consommatrice de temps.  In addition to the fact that the adaptation of a reactive design is limited to the size of the window, a disadvantage of the "Responsive Design" approach is that, given the larger size of the CSS and HTML files, download of web pages can be increased, and the performance of the device on which the user interface is displayed is also reduced. In addition, developing a user interface based on this conceptual approach is complex and time consuming.
Il existe donc un problème technique pour permettre qu'une grande gamme de versions d'interface soit accessible, sans augmenter de façon significative les coûts de stockage de données, de développement et de maintenance.  There is therefore a technical problem to allow a wide range of interface versions to be accessible, without significantly increasing the cost of data storage, development and maintenance.
Résumé summary
Un objet de modes de réalisation de la présente description est de résoudre au moins partiellement un ou plusieurs problèmes de l'art antérieur.  An object of embodiments of the present disclosure is to at least partially solve one or more problems of the prior art.
Selon un aspect, on prévoit un système pour générer une interface d'utilisateur, UI, à exécuter sur un dispositif d'utilisateur, le système comprenant : un ou plusieurs dispositifs mémoires mémorisant un contexte courant défini par des caractéristiques associées au dispositif d'utilisateur, à un ou plusieurs utilisateurs du dispositif d'utilisateur et/ou à l'environnement du dispositif d'utilisateur ; et un dispositif de traitement capable de sélectionner un UI adapté parmi des UI prédéfinis le cas échéant, ou, à défaut, de générer du code UI pour mettre en oeuvre l'UI : en générant une première portion du code UI en utilisant une ou plusieurs premières transformations sélectionnées sur la base d'une ou plusieurs des caractéristiques, lesdites une ou plusieurs premières transformations étant adaptées à transformer au moins un modèle définissant une première portion de l'interface utilisateur en ladite première portion du code UI ; en générant une deuxième portion du code UI en utilisant une ou plusieurs deuxièmes transformations sélectionnées sur la base d'une ou plusieurs des caractéristiques ; et en assemblant au moins les première et deuxième portions pour générer le code UI, lesdites ou plusieurs deuxièmes transformations étant adaptées à transformer au moins un modèle définissant une deuxième portion de l'interface utilisateur en ladite deuxième portion du code UI . In one aspect, there is provided a system for generating a user interface, UI, to be executed on a user device, the system comprising: one or more memory devices storing a current context defined by characteristics associated with the user device , to one or more users of the user device and / or the environment of the user device; and a processing device capable of selecting an adapted UI from among predefined UIs if necessary, or, failing that, of generating UI code to implement the UI: by generating a first portion of the UI; UI code using one or more first transformations selected on the basis of one or more of the features, said one or more first transformations being adapted to transform at least one model defining a first portion of the user interface into said first portion of the code UI; generating a second portion of the UI code using one or more second selected transformations based on one or more of the features; and assembling at least the first and second portions to generate the UI code, said one or more second transformations being adapted to transform at least one model defining a second portion of the user interface into said second portion of the UI code.
Selon un mode de réalisation, le dispositif de traitement est adapté en outre à calculer une distance entre le contexte courant et un contexte associé avec un ou plusieurs autres codes UI générés précédemment, et à sélectionner l'un des autres codes UI selon cette distance.  According to one embodiment, the processing device is further adapted to calculate a distance between the current context and a context associated with one or more other UI codes generated previously, and to select one of the other UI codes according to this distance.
Selon un mode de réalisation, le dispositif de traitement est adapté en outre à générer le code UI sur la base d'une ou plusieurs transformations supplémentaires sélectionnées précédemment pour la génération d'une interface utilisateur adaptée à un contexte précédant similaire au contexte courant.  According to one embodiment, the processing device is further adapted to generate the UI code on the basis of one or more additional transformations previously selected for the generation of a user interface adapted to a previous context similar to the current context.
Selon un mode de réalisation, lesdits un ou plusieurs dispositifs mémoires mémorisent en outre un contenu dynamique à représenter par l'UI, et le dispositif de traitement est adapté à sélectionner lesdites une ou plusieurs premières et deuxièmes transformations en outre sur la base du contenu dynamique.  According to one embodiment, said one or more memory devices further store dynamic content to be represented by the UI, and the processing device is adapted to select said one or more first and second transformations further on the basis of the dynamic content. .
Selon un mode de réalisation, les caractéristiques comprennent une ou plusieurs caractéristiques parmi : une indication de la taille de l'afficheur du dispositif d'utili¬ sateur ; une indication d'au moins un langage de programmation d'UI compatible avec le dispositif d'utilisateur ; une indication d'un niveau de lumière ambiante détecté par le dispositif d'utilisateur ; une indication d'un niveau de bruit ambiant détecté par le dispositif d'utilisateur ; une indication d'un niveau d'expertise de l'utilisateur du dispositif d'utilisateur ; une indication de la langue de l'utilisateur du dispositif d'utilisateur ; et une indication du niveau de la vue de l'utilisateur du dispositif d'utilisateur. According to one embodiment, the features comprise one or more characteristics among: an indication of the size of the display device of utili ¬ sateur; an indication of at least one UI programming language compatible with the user device; an indication of an ambient light level detected by the user device; an indication of a noise level ambient detected by the user device; an indication of a level of expertise of the user of the user device; an indication of the language of the user of the user device; and an indication of the level of the user's view of the user device.
Selon un mode de réalisation, le dispositif d'utilisateur comprend un ou plusieurs éléments parmi : un détecteur de lumière ambiante pour détecter le niveau de lumière ambiant ; un microphone pour détecter le niveau de bruit ambiant ; et un dispositif de localisation pour détecter la position du dispositif d'utilisateur.  According to one embodiment, the user device comprises one or more of: an ambient light detector for detecting the ambient light level; a microphone for detecting the ambient noise level; and a location device for detecting the position of the user device.
Selon un mode de réalisation, l'UI est une interface audio .  According to one embodiment, the UI is an audio interface.
Selon un mode de réalisation, l'UI est une interface utilisateur graphique, et chacune des première et deuxième portions du code UI génère une fenêtre élémentaire corres¬ pondante de l'interface d'utilisateur graphique. According to one embodiment, the UI is a graphical user interface, and each of the first and second portions of the code IU generates an elementary window corres ponding ¬ of the graphical user interface.
Selon un mode de réalisation, au moins l'une des première et deuxième portions du code UI met en œuvre un élément de saisie d'utilisateur pour permettre à un utilisateur d'introduire une sélection.  According to one embodiment, at least one of the first and second portions of the UI code implements a user input element to allow a user to enter a selection.
Selon un mode de réalisation, le dispositif de traitement est en outre adapté à générer un code d' entête et un code de terminaison du code UI .  According to one embodiment, the processing device is further adapted to generate a header code and a termination code of the UI code.
Selon un mode de réalisation, pendant l'exécution du code UI par le dispositif d'utilisateur, le dispositif de traitement est en outre adapté à recevoir une ou plusieurs caractéristiques modifiées et à adapter le code UI sur la base des caractéristiques modifiées.  According to one embodiment, during the execution of the UI code by the user device, the processing device is further adapted to receive one or more modified characteristics and to adapt the UI code based on the modified characteristics.
Selon un mode de réalisation, l'adaptation du code UI sur la base des caractéristiques modifiées est une adaptation globale du code UI comprenant la régénération de la totalité du code UI .  According to one embodiment, the adaptation of the UI code on the basis of the modified characteristics is a global adaptation of the UI code comprising the regeneration of the entire UI code.
Selon un mode de réalisation, le dispositif de traitement est adapté à identifier au moins la première portion du code UI à adapter sur la base des caractéristiques modifiées, et l'adaptation du code UI comprend une adaptation locale du code UI dans laquelle la première portion du code UI est adaptée mais pas la deuxième portion. According to one embodiment, the treatment device is adapted to identify at least the first portion of the UI code to be adapted on the basis of the modified characteristics, and the adaptation of the UI code comprises a local adaptation of the UI code in which the first portion of the UI code is adapted but not the second portion.
Selon un mode de réalisation, le dispositif de traitement est adapté à sélectionner les première et deuxième transformations en calculant une distance par rapport à un volume Vi correspondant à chaque transformation sur la base de l'équation suivante :  According to one embodiment, the processing device is adapted to select the first and second transformations by calculating a distance with respect to a volume Vi corresponding to each transformation on the basis of the following equation:
d{C,V) = d {C, V) =
n  not
y min(|Kic - Kivimin|, |Kic - Kivimax y min (| Ki c - Ki vimin |, | Ki c - Ki vima x
[(Kic > Kivimin Λ Kic≤ Kivimax) ? 0 : nKi-[(Ki c > Ki vimin Λ Ki c ≤ Kivimax)? 0: n Ki -
1=1 où le symbole "Λ" représente un "ET" logique, l'opérateur "?" désigne une condition si/sinon de telle sorte que l'expression (x)?0: (y) implique que si la condition x est vraie, alors le résultat est égal à 0, sinon il est égal à y, Kiç est une valeur courante de chacune des caractéristiques Ki, chaque volume Vi est défini par des valeurs minimum et maximum de chaque caractéristique Kl à Kn de la façon suivante : Vi=<Kle [Klvimin,Klvimax] ...Kne [ nvimin, Knvimax] >, et chaque caractéristique Ki est associée à une valeur maximum Kimax et une valeur minimum Kim-j_n, et nKi est un coéfficient de pondération. 1 = 1 where the symbol "Λ" represents a logical "AND", the operator "?" denotes a condition if / otherwise such that the expression (x)? 0: (y) implies that if the condition x is true, then the result is equal to 0, otherwise it is equal to y, Kiç is a value current of each of the characteristics Ki, each volume Vi is defined by minimum and maximum values of each characteristic Kl to Kn as follows: Vi = <Kle [Kl vimin , Kl vimax ] ... Kne [n vimin , Kn vimax ]>, and each characteristic Ki is associated with a maximum value Ki max and a minimum value Ki m -j_ n , and n Ki is a weighting coefficient.
Selon un mode de réalisation, le système est mis en oeuvre : dans le dispositif d'utilisateur ; et/ou dans un serveur distant agencé pour communiquer avec le dispositif d'utilisateur par l'intermédiaire d'un ou plusieurs réseaux intermédiaires .  According to one embodiment, the system is implemented: in the user device; and / or in a remote server arranged to communicate with the user device via one or more intermediate networks.
Selon un autre aspect, on prévoit un procédé pour générer une interface d'utilisateur, UI, à exécuter par un dispositif d'utilisateur, le procédé comprenant : générer du code UI pour mettre en oeuvre 1 ' UI : en générant une première portion du code UI en utilisant une ou plusieurs premières transformations sélectionnées sur la base d'une ou plusieurs caractéristiques associées au dispositif d'utilisateur, à un ou plusieurs utilisateurs du dispositif d'utilisateur et/ou à l'environnement du dispositif d'utilisateur, lesdites une ou plusieurs premières transformations étant adaptées à transformer au moins un modèle définissant une première portion de l'interface utilisateur en ladite première portion du code UI ; en générant une deuxième portion du code UI en utilisant une ou plusieurs deuxièmes transformations sélectionnées sur la base d'une ou plusieurs des caractéristiques ; et en assemblant au moins les première et deuxième portions pour générer le code UI, lesdites une ou plusieurs deuxièmes transformations étant adaptées à transformer au moins un modèle définissant une deuxième portion de l'interface utilisateur en ladite deuxième portion du code UI ; et exécuter le code UI par le dispositif d'utilisateur. In another aspect, there is provided a method for generating a user interface, UI, to be executed by a user device, the method comprising: generating UI code to implement the UI: generating a first portion of the UI code using one or more first selected transformations on the basis of one or more characteristics associated with the user device, one or more users of the user device and / or the environment of the user device, said one or more first transformations being adapted to transforming at least one model defining a first portion of the user interface into said first portion of the UI code; generating a second portion of the UI code using one or more second selected transformations based on one or more of the features; and assembling at least the first and second portions to generate the UI code, said one or more second transformations being adapted to transform at least one model defining a second portion of the user interface into said second portion of the UI code; and execute the UI code by the user device.
Selon un mode de réalisation, le procédé comprend en outre le calcul d'une distance entre le contexte courant et un contexte associé avec un ou plusieurs autres codes UI générés précédemment, et la sélection de l'un des autres codes UI selon cette distance.  According to one embodiment, the method further comprises calculating a distance between the current context and a context associated with one or more other UI codes generated previously, and the selection of one of the other UI codes according to this distance.
Selon un mode de réalisation, l'assemblage d'au moins les première et deuxième portions pour générer le code UI comprend la génération d'un code d' entête et d'un code de terminaison du code UI .  According to one embodiment, the assembly of at least the first and second portions to generate the UI code comprises generating a header code and a termination code of the UI code.
Selon un mode de réalisation, la première portion de code correspond à une fenêtre élémentaire de 1 ' interface d'utilisateur, et la génération de la première portion de code comprend la génération d'un entête de code d'un élément de GUI (interface d'utilisateur graphique) et d'une terminaison de code d'un élément de GUI.  According to one embodiment, the first portion of code corresponds to an elementary window of the user interface, and the generation of the first portion of code comprises the generation of a code header of a GUI element (interface graphical user) and a code termination of a GUI element.
Selon un autre aspect, on prévoit un support de stockage lisible par un ordinateur mémorisant sur lui des instructions qui, lorsqu'elles sont exécutées par un dispositif de traitement, mettent en oeuvre le procédé susmentionné. Brève description des dessins In another aspect, there is provided a computer-readable storage medium storing instructions on it which, when executed by a processing device, implement the above-mentioned method. Brief description of the drawings
Les caractéristiques et avantages susmentionnés, et d'autres, apparaîtront clairement à la lecture de la description détaillée suivante de modes de réalisation, donnés à titre d' illustration et non de limitation en référence aux dessins joints dans lesquels :  The foregoing and other features and advantages will be apparent from the following detailed description of embodiments, given by way of illustration and not limitation with reference to the accompanying drawings in which:
la figure 1 illustre schématiquement un exemple de système pour fournir une interface utilisateur à un dispositif d'utilisateur ;  Figure 1 schematically illustrates an exemplary system for providing a user interface to a user device;
la figure 2 illustre schématiquement un système pour fournir une interface utilisateur à un dispositif d'utilisateur selon un exemple de réalisation de la présente description ;  Figure 2 schematically illustrates a system for providing a user interface to a user device according to an exemplary embodiment of the present description;
la figure 3 illustre schématiquement un dispositif d'utilisateur selon un exemple de réalisation ;  Figure 3 schematically illustrates a user device according to an exemplary embodiment;
la figure 4A représente une interface utilisateur graphique selon un exemple de réalisation ;  FIG. 4A represents a graphical user interface according to an exemplary embodiment;
la figure 4B représente une fenêtre élémentaire d'introduction de données de l'interface de la figure 4A selon un exemple de réalisation ;  FIG. 4B represents an elementary data input window of the interface of FIG. 4A according to an exemplary embodiment;
la figure 4C représente des fenêtres élémentaires d'identification de l'interface de la figure 4A selon plusieurs exemples de réalisation ;  FIG. 4C represents elementary identification windows of the interface of FIG. 4A according to several exemplary embodiments;
les figures 5A, 5B et 5C sont des organigrammes illustrant des opérations dans un procédé pour générer une interface utilisateur selon un exemple de réalisation ;  Figs. 5A, 5B and 5C are flow diagrams illustrating operations in a method for generating a user interface according to an exemplary embodiment;
la figure 6 est un schéma représentant des catégories d'interfaces utilisateurs adaptées à des niveaux de lumière, à l'expertise de l'utilisateur, et à la surface d'affichage, selon un exemple de réalisation ;  Fig. 6 is a diagram showing user interface categories adapted to light levels, user expertise, and display surface, according to an exemplary embodiment;
la figure 7A est un schéma représentant des volumes dans un espace monodimensionnel selon un exemple de réalisation ;  Fig. 7A is a diagram showing volumes in a one-dimensional space according to an exemplary embodiment;
la figure 7B est un schéma représentant des volumes dans un espace monodimensionnel selon un autre exemple de réalisation ; la figure 7C est un schéma représentant des volumes dans un espace bidimensionnel selon un exemple de réalisation ; Figure 7B is a diagram showing volumes in a one-dimensional space according to another embodiment; Fig. 7C is a diagram showing volumes in a two-dimensional space according to an exemplary embodiment;
la figure 8 est un organigramme illustrant des opérations dans un procédé pour générer une interface utilisateur selon un exemple de réalisation ;  Fig. 8 is a flowchart illustrating operations in a method for generating a user interface according to an exemplary embodiment;
les figures 9A et 9B sont des organigrammes représentant des opérations dans un procédé de sélection d'un volume magnétique sur la base d'un calcul de distance selon un exemple de réalisation ;  Figs. 9A and 9B are flowcharts showing operations in a method of selecting a magnetic volume based on a distance calculation according to an exemplary embodiment;
la figure 10A est un organigramme illustrant un procédé d'adaptation dynamique d'une interface utilisateur selon un exemple de réalisation ;  Fig. 10A is a flowchart illustrating a method of dynamically adapting a user interface according to an exemplary embodiment;
la figure 10B est un organigramme illustrant des étapes d'une opération de la figure 10A de surveillance de contexte selon un exemple de réalisation ;  Fig. 10B is a flowchart illustrating steps of an operation of Fig. 10A of context monitoring according to an exemplary embodiment;
la figure 10C est un organigramme illustrant des étapes d'une opération de la figure 10A pour sélectionner une interface utilisateur préexistante selon un exemple de réalisation ;  Fig. 10C is a flowchart illustrating steps of an operation of Fig. 10A for selecting a pre-existing user interface according to an exemplary embodiment;
la figure 10D est un organigramme illustrant des étapes d'une opération de la figure 10A pour gérer un fonctionnement défectueux selon une approche centralisée ; et la figure 10E est un organigramme illustrant des étapes d'une opération de la figure 10A pour gérer un fonctionnement défectueux selon une approche distribuée.  Fig. 10D is a flowchart illustrating steps of an operation of Fig. 10A for managing faulty operation according to a centralized approach; and Fig. 10E is a flowchart illustrating steps of an operation of Fig. 10A for managing faulty operation according to a distributed approach.
Description détaillée  detailed description
Bien qu'on décrive ici des modes de réalisation faisant référence à une interface utilisateur graphique (GUI), il sera clair pour l'homme de l'art que les techniques décrites ici pourraient être appliquées à d'autres types d'interfaces utilisateurs, comme des interfaces basées entièrement ou partiellement sur du son, comme une interface vocale inter¬ active . Although embodiments referring to a graphical user interface (GUI) are described here, it will be clear to those skilled in the art that the techniques described herein could be applied to other types of user interfaces, as interfaces based entirely or partially on sound, as an inter ¬ active voice interface.
La figure 1 illustre schématiquement un exemple de système 100 pour fournir une interface utilisateur graphique selon une solution similaire à celle décrite dans la section d'art antérieur susmentionnée. Le système comprend un certain nombre de dispositifs d'utilisateurs, comme un ordinateur portable 102, un smartphone 104, et une montre à capacité internet 106. Chaque dispositif d'utilisateur 102, 104, 106 comprend un afficheur pour afficher un GUI . Figure 1 schematically illustrates an exemplary system 100 for providing a graphical user interface according to a solution similar to that described in the aforementioned prior art section. The system includes a number of user devices, such as a laptop 102, a smartphone 104, and an internet-capable watch 106. Each user device 102, 104, 106 includes a display for displaying a GUI.
Par exemple, chaque dispositif d'utilisateur 102, 104, 106 peut exécuter un navigateur web agencé pour communiquer avec un serveur distant (SERVER) 108 par l'intermédiaire d'un ou plusieurs réseaux intermédiaires 110 comprenant par exemple le réseau internet. Un navigateur web est une application logicielle, chargée sur un dispositif d'utilisateur, qui permet d'accéder à des informations par l'intermédiaire de pages web fournies par un serveur distant. Le navigateur web amène des ressources d'information à un utilisateur, permettant à l'utilisateur de visualiser les informations, d'introduire des données, et d'accéder à d'autres informations en navigant sur d'autres pages. Le serveur distant (SERVER) 108 transmet par exemple des pages web aux dispositifs d'utilisateurs 102, 104, 106 afin d'afficher un contenu et de recevoir des sélections faites par l'utilisateur. Les pages web sont par exemple mémorisées en format HTML par un ou plusieurs dispositifs mémoires (MEMORY) 112 au niveau du serveur distant 108. Dans l'exemple de la figure 1, la mémoire 112 mémorise différentes versions de chaque page web, chaque version assurant une interface utilisateur graphique (GUI) différente, GUI 1 à GUI N. Chacune de ces interfaces est par exemple adaptée à un type différent de dispositif d'utilisateur, d'expertise de l'utilisateur et/ou d'environnement. Bien que le temps de réponse soit relativement court pour la transmission d'une version appropriée des versions de la page web vers un dispositif d'utilisateur demandeur, lorsque le nombre N de versions GUI devient relativement élevé, il y aura une augmentation correspondante des ressources mémoires nécessaires pour stocker ces interfaces. En plus ou à la place, chaque dispositif d'utilisateur 102, 104, 106 est par exemple agencé pour exécuter une ou plusieurs applications logicielles. En association avec chaque application logicielle, le dispositif d'utilisateur 102, 104, 106 mémorise par exemple N interfaces GUIl à GUIN (non illustré en figure 1) . For example, each user device 102, 104, 106 may execute a web browser arranged to communicate with a remote server (SERVER) 108 via one or more intermediate networks 110 comprising, for example, the internet network. A web browser is a software application, loaded onto a user device, which provides access to information via web pages provided by a remote server. The web browser provides information resources to a user, allowing the user to view the information, to enter data, and to access other information by browsing other pages. The remote server (SERVER) 108 for example transmits web pages to the user devices 102, 104, 106 to display content and to receive selections made by the user. The web pages are for example stored in HTML format by one or more memory devices (MEMORY) 112 at the remote server 108. In the example of Figure 1, the memory 112 stores different versions of each web page, each version ensuring a different GUI, GUI 1 to GUI N. Each of these interfaces is for example adapted to a different type of user device, user expertise and / or environment. Although the response time is relatively short for the transmission of an appropriate version of the versions of the web page to a requesting user device, when the number N of GUI versions becomes relatively high, there will be a corresponding increase in resources memories needed to store these interfaces. In addition or instead, each user device 102, 104, 106 is for example designed to execute one or more software applications. In association with each software application, the user device 102, 104, 106 stores for example N GUI1 GUI interfaces (not shown in Figure 1).
Pour prendre un exemple, il peut être souhaité que les différents GUI prennent en compte les caractéristiques variables suivantes :  To take an example, it may be desired that the different GUIs take into account the following variable characteristics:
Caractéristiques du dispositif :  Features of the device:
- 4 tailles d'affichage : montre, smartphone, tablette, PC ;  - 4 display sizes: watch, smartphone, tablet, PC;
- 5 langages de programmation : Objective C sur Windows, AppKit sur MacOs, UIKit sur iOS, Java sur Android et une version HTML pour les autres cas ; - 5 programming languages: Objective C on Windows, AppKit on MacOs, UIKit on iOS, Java on Android and an HTML version for other cases;
Caractéristiques de l'utilisateur : User characteristics:
- 5 langues écrites : français, anglais, allemand, italien, espagnol ;  - 5 written languages: French, English, German, Italian, Spanish;
- 5 niveaux d'expérience de l'utilisateur : novice, débutant, compétent, performant, expert ;  - 5 levels of user experience: novice, beginner, competent, efficient, expert;
- 4 types de qualification d'utilisateur : électricien, plombier, ingénieur en électronique, spécialiste réseau ;  - 4 types of user qualification: electrician, plumber, electronics engineer, network specialist;
Caractéristiques d'environnement :  Environmental characteristics:
- 3 niveaux de lumière ambiante : faible, moyen et fort .  - 3 levels of ambient light: low, medium and strong.
Dans le cas où les GUI sont stockés au niveau d'un serveur distant et mis à la disposition de n' importe quel type de dispositif, le développement d'un GUI correspondant à chaque combinaison possible de ces caractéristiques nécessiterait la création d'un nombre N d'interfaces égal à (nombre de tailles) * (nombre de langages de programmation) * (nombre de langues écrites) * (nombre de niveaux d' expérience) * (nombre de types de qualification d' utilisateur) * (nombre de niveaux de lumière ambiante), en d'autres termes 4*5*5*5*4*3 = 6000 versions du GUI. En supposant qu'une application ou un site web comprennent 100 GUI, en d'autres termes 100 pages web ou fenêtres, cela conduirait à un total de 600 000 interfaces. Les besoins en stockage pour ces nombreuses interfaces seraient 6000 fois ceux des 100 GUI, et le coût de développement et de maintenance serait excessif. In the case where the GUIs are stored at a remote server and made available to any type of device, the development of a GUI corresponding to each possible combination of these features would require the creation of a number N interfaces equal to (number of sizes) * (number of programming languages) * (number of written languages) * (number of levels of experience) * (number of types of user qualification) * (number of languages) ambient light levels), in other words 4 * 5 * 5 * 5 * 4 * 3 = 6000 versions of the GUI. Assuming that an application or website includes 100 GUIs, in other words 100 web pages or windows, this would lead to a total of 600,000 interfaces. The storage requirements for these many interfaces would be 6000 times those of the 100 GUIs, and the cost of development and maintenance would be excessive.
Dans le cas où la sélection entre les GUI se fait de façon native sur le dispositif lui-même, le nombre de versions de GUI pourrait être déjà limité à un type donné de dispositif et à un langage de programmation donné, ce qui diviserait par 20, dans l'exemple précédent, le nombre de versions devant être disponibles. Cependant, le nombre de versions de GUI serait encore de 300, ce qui est susceptible de dépasser la capacité de stockage disponible d'une montre à capacités internet ou d'un smartphone .  In the case where the selection between the GUIs is done natively on the device itself, the number of GUI versions could already be limited to a given type of device and a given programming language, which would divide by 20 in the previous example, the number of versions to be available. However, the number of GUI versions would still be 300, which is likely to exceed the available storage capacity of an internet-enabled watch or smartphone.
La figure 2 illustre schématiquement un exemple de système 200 pour fournir une interface utilisateur selon un exemple de réalisation de la présente description. Selon l'exemple de réalisation de la figure 2, des interfaces utilisateurs (UI) adaptées sont générées par un serveur 208 et transmises aux dispositifs d'utilisateurs (non illustrés en figure 2) .  Figure 2 schematically illustrates an exemplary system 200 for providing a user interface according to an exemplary embodiment of the present description. According to the exemplary embodiment of FIG. 2, adapted user interfaces (UI) are generated by a server 208 and transmitted to the user devices (not shown in FIG. 2).
Comme dans le système 100 de la figure 1, le système 200 peut communiquer avec un ou plusieurs dispositifs d'utilisateurs par l'intermédiaire d'un ou plusieurs réseaux intermédiaires 110 comme l' internet. Le système 200 comprend le serveur 208 et un ou plusieurs dispositifs mémoires (MEMORY) 212 stockant des profils d'utilisateurs ou de dispositifs 1 à N (USER/DEVICE PROFILE1 à USER/DEVICE PROFILEN) , comme on va le décrire plus en détail ci-après.  As in the system 100 of Figure 1, the system 200 can communicate with one or more user devices via one or more intermediate networks 110 such as the Internet. The system 200 comprises the server 208 and one or more memory devices (MEMORY) 212 storing user or device profiles 1 to N (USER / DEVICE PROFILE1 to USER / DEVICE PROFILEN), as will be described in more detail hereinafter. -after.
Le serveur 208 comprend par exemple une interface de communication (COMMS INTERFACE) 220 pour communiquer avec les dispositifs d'utilisateurs par l'intermédiaire des réseaux intermédiaires 110. L'interface de communications 220 est couplée à un module de génération d'UI 222. Le module 222 est par exemple mis en œuvre par du logiciel. Par exemple, le module 222 comprend un dispositif de traitement (P) 224 comprenant un ou plusieurs processeurs sous le contrôle d'instructions mémorisées dans une mémoire d'instructions (INSTR MEM) 226. Le module 222 comprend aussi par exemple une ou plusieurs mémoires (MEMORY) 228 mémorisant le contenu dynamique (DYNAMIC CONTENT) d'un UI, et des transformations (TRANSFORMATIONS) utilisées pendant la génération de l'UI, au sens de l'Ingénierie Dirigée par les Modèles et comme on va le décrire plus en détail dans la suite. The server 208 comprises, for example, a communication interface (COMMS INTERFACE) 220 for communicating with the user devices via the intermediate networks 110. The communications interface 220 is coupled to a UI generation module 222. The module 222 is for example implemented by software. For example, the module 222 comprises a processing device (P) 224 comprising one or more processors under the control of instructions stored in an instruction memory (MEM INSTR) 226. The module 222 also comprises for example one or more memories (MEMORY) 228 memorizing the dynamic content (DYNAMIC CONTENT) of a UI, and the transformations (TRANSFORMATIONS) used during the generation of the UI, in the sense of Model Driven Engineering and as we will describe it more in detail in the following.
En fonctionnement, le module de génération d'UI 222 génère par exemple des UI, pratiquement en temps réel, en réponse à des requêtes provenant de dispositifs d'utilisateurs. Par exemple, pour chaque dispositif d'utilisateur, et/ou pour chaque utilisateur, la mémoire 212 mémorise par exemple un profil indiquant des caractéristiques concernant le dispositif d'utilisateur, comme le type de dispositif, la taille de l'écran d'affichage, et d'autres capacités du dispositif. La mémoire 112 mémorise aussi par exemple des caractéristiques concernant l'utilisateur, comme sa langue préférée, son niveau d'expertise, et une indication d'exigences spécifiques de l'utilisateur, comme une taille de texte plus grande pour des utilisateurs ayant une mauvaise vue, etc. Par exemple, pour un dispositif d'utilisateur donné, il pourrait y avoir une pluralité de profils d'utilisateurs, chacun correspondant à chaque utilisateur qui peut se servir du dispositif. En plus ou à la place, pour chaque utilisateur, il pourrait y avoir une pluralité de profils de dispositifs, chacun correspondant à chaque dispositif d'utilisateur que l'utilisateur peut utiliser pour accéder à des pages web.  In operation, the UI generation module 222 generates, for example, UIs, practically in real time, in response to requests from user devices. For example, for each user device, and / or for each user, the memory 212 stores for example a profile indicating features relating to the user device, such as the type of device, the size of the display screen , and other capabilities of the device. The memory 112 also stores, for example, characteristics concerning the user, such as his preferred language, his level of expertise, and an indication of specific user requirements, such as a larger text size for users having a bad view, etc. For example, for a given user device, there could be a plurality of user profiles, each corresponding to each user who can use the device. In addition or instead, for each user, there could be a plurality of device profiles, each corresponding to each user device that the user can use to access web pages.
Le module de génération d'UI 222 génère par exemple des UI sur la base du profil de l'utilisateur et/ou du dispositif demandant un accès à une page web/UI, et sur la base d'une ou plusieurs caractéristiques d'environnement, qui sont par exemple reçues du dispositif d'utilisateur. Optionnellement, le module de génération d'UI 222 adapte aussi l'UI sur la base d'un contenu dynamique récupéré par le serveur 208 et qui doit être affiché à l'utilisateur. L'adaptation de l'UI peut être décrite comme étant « magnétique » dans le sens où l'UI générée est par exemple celle qui correspond le plus à un contexte courant, en d'autres termes à des caractéristiques courantes de dispositif, d'utilisateur et/ou d'environnement. The UI generation module 222 for example generates UIs based on the profile of the user and / or the device requesting access to a web page / UI, and on the basis of one or more environment characteristics. , which are for example received from the user device. optionally, the UI generation module 222 also adapts the UI on the basis of dynamic content retrieved by the server 208 and which must be displayed to the user. The adaptation of the UI can be described as being "magnetic" in the sense that the generated UI is for example the one that corresponds most to a current context, in other words to common device characteristics, user and / or environment.
La figure 3 illustre schématiquement un dispositif d'utilisateur 300 selon un exemple de réalisation. Comme cela est illustré, le dispositif d'utilisateur 300 comprend par exemple une interface de communication (COMMS INTERFACE) 302 permettant des communications avec le serveur distant 208. En outre, le dispositif 300 comprend par exemple un dispositif de traitement 304 comprenant un ou plusieurs processeurs sous le contrôle d'instructions mémorisées dans une mémoire d'ins¬ tructions (INSTR MEM) 306, les processeurs 304 réalisant les fonctions du dispositif mobile. Parmi les applications mémorisées par la mémoire 306, un navigateur web permet par exemple de visualiser des pages web sur un afficheur (DISPLAY) 307 du dispositif d'utilisateur. En plus ou à place, d'autres types d'applications mémorisées par la mémoire 306 peuvent permettre que d'autres types d'UI soient affichés à un utilisateur. Figure 3 schematically illustrates a user device 300 according to an exemplary embodiment. As illustrated, the user device 300 comprises for example a communication interface (COMMS INTERFACE) 302 allowing communications with the remote server 208. In addition, the device 300 comprises for example a processing device 304 comprising one or more processors under the control of instructions stored in a memory ins ¬ structions (INSTR MEM) 306, the processor 304 performs the functions of the mobile device. Among the applications stored by the memory 306, a web browser makes it possible, for example, to display web pages on a display (DISPLAY) 307 of the user device. In addition or instead, other types of applications stored by the memory 306 may allow other types of UIs to be displayed to a user.
Le dispositif d'utilisateur 300 comprend par exemple un ou plusieurs détecteurs, comme un détecteur de lumière ambiante (AMBIENT LIGHT DETECTOR) 308, un microphone (MICROPHONE) 310, et un dispositif de localisation (GPS) 312. Par exemple, le détecteur de lumière ambiante 308 indique le niveau de luminosité à utiliser pour l'UI. Les données provenant du microphone indiquent par exemple si l'utilisateur est dans un environnement calme comme un bureau, ou dans un environnement bruyant comme dans des transports publics. Le GPS 312 peut par exemple indiquer la position du dispositif d'utilisateur et/ou la vitesse avec laquelle l'utilisateur se déplace, ce qui pourrait influencer la façon dont l'UI est généré pour ce dispositif d'utilisateur. The user device 300 comprises for example one or more detectors, such as an ambient light detector (AMBIENT LIGHT DETECTOR) 308, a microphone (MICROPHONE) 310, and a location device (GPS) 312. For example, the detector of Ambient light 308 indicates the level of brightness to be used for the UI. For example, data from the microphone indicates whether the user is in a quiet environment such as a desk, or in a noisy environment such as public transport. The GPS 312 can for example indicate the position of the user device and / or the speed with which the user moves, which could influence how the UI is generated for this user device.
Le dispositif d'utilisateur 300 peut recevoir des interfaces d'utilisateur, comme des pages web, générées par le serveur distant 208. Dans un tel cas, pour aider à cette génération, des données capturées par un ou plusieurs des détecteurs 308, 310, 312 sont par exemple transmises au serveur distant 208 et utilisées pour définir le profil du dispositif 300 mémorisé dans la mémoire 212.  The user device 300 may receive user interfaces, such as web pages, generated by the remote server 208. In such a case, to assist in this generation, data captured by one or more of the detectors 308, 310, 312 are for example transmitted to the remote server 208 and used to define the profile of the device 300 stored in the memory 212.
En plus ou à la place, le dispositif d'utilisateur In addition or instead, the user device
300, et en particulier le dispositif de traitement 304 sous le contrôle de la mémoire d'instructions 306, peut lui-même générer des interfaces utilisateurs adaptées. Pour cela, le dispositif d'utilisateur 300 comprend par exemple un ou plusieurs dispositifs mémoires (MEMORY) 314, qui pourraient être la même mémoire ou une mémoire différente de la mémoire d' instructions 306, et qui par exemple mémorisent un profil d'utilisateur et/ou de dispositif (USER/DEVICE PROFILE) 316 et des transformations (TRANSFORMATIONS) utilisées pendant la génération de l'UI, comme on va le décrire plus en détail dans la suite. Le profil de l'utilisateur et/ou du dispositif peut inclure une ou plusieurs lectures provenant des détecteurs 308, 310 et 312. En plus ou à la place, le profil de l'utilisateur et/ou du dispositif peut inclure d'autres caractéristiques pertinentes concernant le dispositif d'utilisateur 300 et/ou son environnement, comme une indication des dimensions de l'afficheur 307, une indication de l'espace de stockage mémoire disponible du dispositif pour mettre en tampon des pages web, une indication de la puissance de traitement desdits un ou plusieurs processeurs 304, une indication du niveau de lumière ambiante, etc. Dans certains modes de réalisation, ces caractéristiques peuvent en plus être transmises périodiquement au serveur distant 208 pour former le profil de dispositif associé au dispositif d'utilisateur 300. 300, and in particular the processing device 304 under the control of the instruction memory 306, can itself generate appropriate user interfaces. For this, the user device 300 comprises for example one or more memory devices (MEMORY) 314, which could be the same memory or a different memory of the instruction memory 306, and which for example memorize a user profile and / or device (USER / DEVICE PROFILE) 316 and transformations (TRANSFORMATIONS) used during the generation of the UI, as will be described in more detail below. The user and / or device profile may include one or more readings from the detectors 308, 310 and 312. In addition to or instead, the user and / or device profile may include other features. relevant to the user device 300 and / or its environment, such as an indication of the dimensions of the display 307, an indication of the available memory storage space of the device for buffering web pages, an indication of the power processing said one or more processors 304, an indication of the ambient light level, etc. In some embodiments, these features may further be periodically transmitted to the remote server 208 to form the device profile associated with the user device 300.
La figure 4A illustre un exemple d'interface utilisateur graphique 400, qui est par exemple généré par le module de génération d'UI 222, ou par le dispositif de traitement 304 du dispositif d'utilisateur 300. Le GUI 400 a par exemple la forme d'une page web au format de fichier HTML, ou d'un autre langage de programmation approprié. Le GUI 400 est représenté à l'intérieur d'une frontière 401 représentant la limite extérieure de la fenêtre UI globale formant le GUI 400. Lorsque le GUI 400 est affiché sur un afficheur, cette fenêtre globale 401 peut être entièrement visible sur l'afficheur, ou bien seulement une partie de cette fenêtre peut être visible, et l'utilisateur peut naviguer dans la fenêtre 401, par exemple en provoquant un défilement en utilisant une souris ou en touchant un écran tactile. FIG. 4A illustrates an exemplary graphical user interface 400, which is for example generated by the UI generation module 222, or by the processing device 304 of the user device 300. The GUI 400 has for example the form of a web page in the HTML file format, or another appropriate programming language . The GUI 400 is represented inside a boundary 401 representing the outer limit of the global UI window forming the GUI 400. When the GUI 400 is displayed on a display, this global window 401 can be entirely visible on the display or only part of this window can be visible, and the user can navigate in the window 401, for example by causing scrolling using a mouse or by touching a touch screen.
Le GUI 400 comprend par exemple des fenêtres élémentaires à l'intérieur de la fenêtre GUI globale, chaque fenêtre élémentaire comprenant un ou plusieurs éléments d'interface comme des titres, des boîtes de dialogue, des boutons à cliquer, etc.  The GUI 400 comprises for example elementary windows within the global GUI window, each elementary window comprising one or more interface elements such as titles, dialogs, buttons to click, etc.
Dans l'exemple de la figure 4A, le GUI fournit, par exemple en réponse à une requête d'utilisateur faite en utilisant une page web séparée, une liste de cinémas dans une zone de 1 kilomètre autour du dispositif d'utilisateur. Cela est indiqué dans une fenêtre élémentaire 402, ayant le titre « Cinémas dans un rayon de 1 Km ».  In the example of Figure 4A, the GUI provides, for example in response to a user request made using a separate web page, a list of cinemas in a 1 kilometer area around the user device. This is indicated in an elementary window 402, with the title "Cinemas within a radius of 1 Km".
Le GUI 400 comprend par exemple un contenu dynamique dans une fenêtre élémentaire 404, qui par exemple indique une liste 406 de cinémas (CINEMA 1 à CINEMA J) , une liste 407 des distances de chaque cinéma par rapport à l'utilisateur, et une liste 408 des adresses de chaque cinéma.  The GUI 400 comprises for example a dynamic content in a basic window 404, which for example indicates a list 406 of cinemas (CINEMA 1 to CINEMA J), a list 407 of the distances of each cinema with respect to the user, and a list 408 addresses of each cinema.
Un formulaire de réservation de tickets de cinéma 410 est aussi par exemple prévu sur le GUI 400, permettant à un utilisateur du dispositif d'utilisateur de réserver des tickets en ligne pour aller voir un film passant dans un des cinémas. Le formulaire 410 comprend par exemple une fenêtre élémentaire 412 répétant la liste des cinémas identifiés, chacun muni d'une case de sélection 413 permettant à l'utilisateur de sélectionner l'un des cinémas . Une fenêtre élémentaire d' introduction de date et d'heure, 414, permet par exemple à l'utilisateur de sélectionner une heure et une date pour le film. Une fenêtre élémentaire 416 fournit une boîte de sélection de films pour présenter, en réponse au fait que l'utilisateur tape une ou plusieurs lettres du film, une liste 417 de films disponibles dont le nom commence par ces lettres. A movie ticket reservation form 410 is also for example provided on the GUI 400, allowing a user of the user device to book tickets online to go see a movie in one of the cinemas. The form 410 comprises for example a basic window 412 repeating the list of identified cinemas, each provided with a selection box 413 allowing the user to select one cinemas. A basic date and time entry window 414, for example, allows the user to select a time and date for the movie. An elementary window 416 provides a movie selection box for presenting, in response to the user typing one or more letters of the movie, a list of 417 available movies whose names begin with those letters.
Une fenêtre élémentaire d'identification 418 est aussi par exemple prévue dans le GUI 400, et est constituée de boîtes d'introduction de texte où l'utilisateur peut introduire un nom d'utilisateur et un mot de passe d'identification. Par exemple, en s' identifiant sur le site web, des données de compte d'utilisateur préenregistrées, comme des détails de carte de paiement, peuvent être récupérées pour permettre l'achat d'un ticket de cinéma.  A basic identification window 418 is also for example provided in the GUI 400, and consists of text entry boxes where the user can enter a user name and password identification. For example, by logging on to the website, prerecorded user account data, such as credit card details, can be retrieved to allow the purchase of a movie ticket.
C'est par exemple le module de génération d'UI 222 du serveur distant 208, ou du dispositif d'utilisateur 300, qui sélectionne le format et/ou le type de fenêtre élémentaire 402, 404, 412, 414, 416 et 418, sur la base de caractéristiques du dispositif d'utilisateur, de l'utilisateur et/ou de l'environnement. Par exemple, chacune des fenêtres élémentaires 402, 404, 412, 414, 416 et 418 est générée sur la base de caractéristiques telles que les dimensions de l'afficheur du dispositif d'utilisateur, du fait que l'afficheur est un écran tactile, du fait qu'une souris est ou pas disponible, et/ou de l'expertise de l'utilisateur pour réaliser ce type d'introduction de données. En outre, bien que cela ne soit pas représenté en figure 4A, dans certains modes de réalisation, la couleur et/ou le contraste du GUI 400 sont adaptés sur la base du niveau de lumière ambiante détecté par le dispositif d'utilisateur. Par exemple, dans certains modes de réalisation, le format de fichier HTML peut permettre de définir un réglage de luminosité pour contrôler la luminosité de l'afficheur du dispositif d' utilisateur . La figure 4B illustre un exemple de variante d'une fenêtre élémentaire d'introduction de date 414' qui pourrait se substituer à la fenêtre élémentaire 414 dans une version différente du GUI 400. Par exemple, la fenêtre élémentaire d'introduction de date 414 de la figure 4A est adaptée pour les utilisateurs avancés, et permet d'introduire une date et une heure. La fenêtre élémentaire d'introduction de date 414' est par exemple destinée à des utilisateurs moins compétents, et ne permet qu'une sélection de la date. It is for example the UI generation module 222 of the remote server 208, or the user device 300, which selects the format and / or the type of elementary window 402, 404, 412, 414, 416 and 418, based on characteristics of the user device, the user and / or the environment. For example, each of the elementary windows 402, 404, 412, 414, 416 and 418 is generated based on features such as the dimensions of the display of the user device, because the display is a touch screen, whether or not a mouse is available, and / or the expertise of the user to perform this type of data entry. Further, although not shown in Fig. 4A, in some embodiments, the color and / or contrast of the GUI 400 are adapted based on the ambient light level detected by the user device. For example, in some embodiments, the HTML file format may allow a brightness setting to be set to control the brightness of the display of the user device. FIG. 4B illustrates an example of a variant of a date introduction elementary window 414 'that could be substituted for the elementary window 414 in a different version of the GUI 400. For example, the elementary date introduction window 414 of FIG. Figure 4A is suitable for advanced users, and allows to introduce a date and time. The elementary date introduction window 414 'is for example intended for less competent users, and allows only a selection of the date.
La figure 4C illustre des exemples de la mise en œuvre de la fenêtre élémentaire d'identification 418 qui pourrait être utilisée dans le GUI 400.  FIG. 4C illustrates examples of the implementation of the elementary identification window 418 that could be used in the GUI 400.
Par exemple, une fenêtre élémentaire 420 selon une mise en œuvre minimum comprend seulement une boîte d' intro- duction de texte 422 permettant à un utilisateur d'introduire des données d' identification et une autre boîte d' introduction de texte 424 permettant à un utilisateur d'introduire un mot de passe, et un petit bouton 426, que l'utilisateur peut cliquer en utilisant une souris, ou toucher sur un écran tactile, afin de soumettre les données qui ont été introduites. Cette mise en œuvre est par exemple appropriée pour un très petit afficheur, et pour des utilisateurs raisonnablement avancés, puisqu'il n'y a pas d' indication concernant les données qui sont requises dans chaque boîte de texte.  For example, a basic window 420 in a minimum implementation includes only a text insertion box 422 allowing a user to enter identification data and another text input box 424 allowing a user to enter a password. user to enter a password, and a small button 426, that the user can click using a mouse, or touch on a touch screen, to submit the data that has been entered. This implementation is for example suitable for a very small display, and for reasonably advanced users, since there is no indication of the data that is required in each text box.
Une fenêtre élémentaire légèrement plus grande 430 mettant en œuvre la fenêtre d'identification 418 comprend les mêmes éléments que la mise en œuvre 420, mais avec les mots « Identifiant : » et « Mot de passe : » ajoutés. Cette mise en œuvre est par exemple appropriée pour des utilisateurs moins avancés que pour la fenêtre 420, mais nécessite aussi un afficheur légèrement plus grand.  A slightly larger basic window 430 implementing the identification window 418 includes the same elements as the implementation 420, but with the words "Identifier:" and "Password:" added. This implementation is for example suitable for less advanced users than for the window 420, but also requires a slightly larger display.
Les fenêtres élémentaires 440 et 450 fournissent des mises en œuvre progressivement de plus en plus grandes de la fenêtre d'identification 418, contenant les boîtes d' intro- duction de texte 422, 424 et le bouton 426, les deux mises en œuvre comprenant l'instruction "Veuillez-vous identifier :", ce qui rend ces interfaces adaptées à des utilisateurs encore moins compétents. La fenêtre élémentaire 450 comprend en plus un logo de société 452 et une image d'arrière-plan 454, nécessitant un écran d'affichage relativement grand. The elementary windows 440 and 450 provide progressively larger implementations of the identification window 418, containing the text insertion boxes 422, 424 and the button 426, both of which are set. work with the "Please identify yourself" statement, which makes these interfaces suitable for even less competent users. The elementary window 450 further includes a company logo 452 and a background image 454, requiring a relatively large display screen.
La figure 5A est un organigramme illustrant des opérations dans un procédé de génération d'UI selon un exemple de réalisation. Ces opérations sont par exemple réalisées par le module de génération d'UI 222 de la figure 2, en exécutant des instructions de logiciel mémorisées dans la mémoire d'instructions 226.  Fig. 5A is a flowchart illustrating operations in a UI generation method according to an exemplary embodiment. These operations are for example carried out by the UI generation module 222 of FIG. 2, by executing software instructions stored in the instruction memory 226.
Comme cela est représenté par un bloc 501 en figure 5A, on suppose que l'interface d'utilisateur est représentée :  As represented by a block 501 in FIG. 5A, it is assumed that the user interface is represented:
par un modèle de domaine représentant les concepts manipulés sur le GUI. En prenant l'exemple du GUI 400 de la figure 4, les concepts pourraient inclure les cinémas ;  by a domain model representing the concepts handled on the GUI. Taking the example of GUI 400 in Figure 4, the concepts could include cinemas;
par un modèle de contexte représentant tous les paramètres à prendre en compte pendant le processus d'adaptation de l'UI, comme la luminosité, la taille de l'écran, le niveau de la vue de l'utilisateur, etc.. ;  by a context model representing all the parameters to be taken into account during the adaptation process of the UI, such as the brightness, the screen size, the level of the user's view, etc .;
par plusieurs transformations, une ou plusieurs des transformations étant sélectionnées pour générer le code UI, et au moins un modèle définissant l'interface utilisateur, ce modèle étant par exemple soit un modèle en tâches, représentant l'interface sous forme d'une série de tâches, soit un modèle d'UI abstrait qui représente les divers espaces de travail dans l'UI et les possibilités de navigation entre eux, soit un modèle d'UI concret qui représente les intervenants sélectionnés, comme des intervenants composites (par exemple un panneau) , ou des intervenants élémentaires (par exemple un champ de texte) , des espaces de travail de l'UI abstrait.  by several transformations, one or more transformations being selected to generate the UI code, and at least one model defining the user interface, this model being for example a task model, representing the interface in the form of a series of tasks, an abstract UI model that represents the various workspaces in the IU and the possibilities of navigation between them, ie a concrete UI model that represents selected stakeholders, such as composite speakers (eg a panel ), or elementary speakers (eg a text field), workspaces of the abstract UI.
Dans une opération 502, le niveau d'abstraction du modèle d'UI est détecté. Par exemple, chaque type de modèle est associé à un méta-modèle donné décrivant le modèle, et le système est capable de détecter le type du modèle sur la base du méta-modèle . In an operation 502, the level of abstraction of the UI model is detected. For example, each type of model is associated with a given meta-model describing the model, and the system is able to detect the type of model based on the meta-model.
Dans le cas où ledit au moins un modèle d'UI est un modèle en tâches, dans une opération 503, le modèle est transformé en un modèle d'UI abstrait, et l'opération suivante est l'opération 504. Cette transformation du modèle est par exemple réalisée en utilisant une ou plusieurs transformations sélectionnées sur la base des caractéristiques du dispositif, de l'utilisateur et/ou de l'environnement.  In the case where the said at least one UI model is a task model, in an operation 503, the model is transformed into an abstract UI model, and the next operation is the operation 504. This transformation of the model is for example performed using one or more transformations selected on the basis of the characteristics of the device, the user and / or the environment.
Dans le cas où ledit au moins un modèle d'UI est un modèle d'UI abstrait, ou à la suite de l'opération 503, le modèle est transformé en un modèle d'UI concret, et l'opération suivante est l'opération 505. Là encore, la transformation du modèle est par exemple réalisée en utilisant une ou plusieurs transformations sélectionnées sur la base des caractéristiques du dispositif, de l'utilisateur et/ou de l'environnement.  In the case where the at least one UI model is an abstract UI model, or following the operation 503, the model is transformed into a concrete UI model, and the next operation is Operation 505. Here again, the transformation of the model is for example carried out using one or more transformations selected on the basis of the characteristics of the device, the user and / or the environment.
Dans le cas où ledit au moins un modèle d'UI est un modèle d'UI concret, ou à la suite de l'opération 504, le modèle est transformé en code pour exécuter l'UI, par exemple au format de fichier HTML ou similaire. Là encore, la transformation du modèle est par exemple réalisée en utilisant une ou plusieurs transformations sélectionnées sur la base des caractéristiques du dispositif, de l'utilisateur et/ou de l'environnement.  In the case where the said at least one UI model is a concrete UI model, or following the operation 504, the model is transformed into code to execute the UI, for example in the HTML file format or similar. Here again, the transformation of the model is for example carried out using one or more transformations selected on the basis of the characteristics of the device, the user and / or the environment.
La génération de code de l'opération 505 sur la base des transformations sélectionnées lors des opérations 503, 504 et/ou 505 va maintenant être décrite plus en détail en faisant référence aux figures 5B et 5C.  The code generation of operation 505 based on the transformations selected in operations 503, 504 and / or 505 will now be described in more detail with reference to FIGS. 5B and 5C.
La figure 5B est un organigramme illustrant un exemple d'opérations dans un procédé de génération du code de l'UI au niveau global, en d'autres termes pour la fenêtre UI globale, comme la fenêtre 401 dans l'exemple de la figure 4A.  Fig. 5B is a flowchart illustrating an example of operations in a method of generating the UI code at the global level, in other words for the global UI window, such as window 401 in the example of Fig. 4A .
Dans une opération 506, une ou plusieurs transformations concernant la fenêtre UI globale sont sélec¬ tionnées. Par exemple, la ou les transformations transforment au moins un modèle définissant l'UI en code UI pour générer une fenêtre UI globale ayant des dimensions particulières, un modèle de couleur particulier, un agencement particulier des fenêtres élémentaires, et/ou d'autres éléments caractéristiques. La sélection de la transformation ou des transformations va maintenant être décrite plus en détail. In an operation 506, one or more transformations on the overall UI window are selec ¬ tioned. For example, the at least one transform transforms at least one model defining the UI into UI code to generate a global UI window having particular dimensions, a particular color model, a particular arrangement of elementary windows, and / or other characteristic elements. The selection of the transformation or transformations will now be described in more detail.
Dans une opération 507, un entête de code GUI global du code représentant le GUI est généré.  In an operation 507, a global GUI code header representing the GUI is generated.
Dans une opération suivante 508, le corps du code GUI global est généré en utilisant lesdites une ou plusieurs transformations sélectionnées. Le corps est généré par l'exécution d'une ou plusieurs tâches élémentaires pour générer chaque fenêtre élémentaire. Ces tâches élémentaires sont appelées éléments enfants.  In a next operation 508, the body of the global GUI code is generated using said one or more selected transformations. The body is generated by the execution of one or more elementary tasks to generate each elementary window. These basic tasks are called child elements.
Dans une opération 510, on détermine s'il y a un élément enfant à traiter. Si oui, l'opération suivante est l'opération 511, dans laquelle le code de l'élément enfant est généré, comme on va le décrire en référence à la figure 5C. Le procédé revient ensuite à l'opération 510. Dans l'autre cas, si tous les éléments enfants ont été traités, l'opération suivante est une opération 512 dans laquelle une terminaison du code GUI global est générée afin d' achever la représentation du code du GUI.  In an operation 510, it is determined whether there is a child element to be processed. If so, the next operation is operation 511, in which the code of the child element is generated, as will be described with reference to FIG. 5C. The method then returns to the operation 510. In the other case, if all the child elements have been processed, the next operation is an operation 512 in which a termination of the global GUI code is generated in order to complete the representation of the child. GUI code.
Dans une opération 513, on détermine ensuite si le code nécessite une compilation. Si oui, le code est compilé dans une opération 514.  In an operation 513, it is then determined whether the code requires compilation. If yes, the code is compiled in an operation 514.
Dans l'autre cas, si aucune compilation n'est nécessaire, ou après l'opération 514, l'opération suivante est une opération 515, dans laquelle le fichier comprenant le code généré est transmis à un dispositif d'utilisateur pour être affiché.  In the other case, if no compilation is necessary, or after the operation 514, the next operation is an operation 515, in which the file comprising the generated code is transmitted to a user device for display.
La figure 5C est un organigramme illustrant un exemple d'opérations pour mettre en œuvre l'opération 511 de la figure 5B afin de générer le code pour un élément enfant.  Fig. 5C is a flowchart illustrating an example of operations for implementing operation 511 of Fig. 5B to generate the code for a child element.
Dans une opération 516, une ou plusieurs transfor- mations sont sélectionnées afin de générer le code d'une fenêtre élémentaire du GUI, sur la base du contenu à afficher, et des caractéristiques du profil d'utilisateur et/ou du dispositif et/ou de l'environnement (luminosité, bruit, etc.)- Par exemple, pour au moins certaines des fenêtres élémentaires de l'interface utilisateur, il y a une pluralité de transformations potentielles qui peuvent être utilisées afin de générer la fenêtre élémentaire ayant des éléments adaptés à certaines caractéristiques du dispositif d'utilisateur, de l'environnement et/ou de l'utilisateur. La sélection d'une transformation peut impliquer un calcul d'une distance représentant l'étendue dans laquelle chaque transformation concorde avec les caracté¬ ristiques, avec optionnellement l'application d'une pondération différente à chaque caractéristique. Un exemple de procédé pour sélectionner une transformation va être décrit plus en détail ci-après. In an operation 516, one or more transformations are selected to generate the code of a window elementary GUI, based on the content to be displayed, and the characteristics of the user profile and / or the device and / or the environment (brightness, noise, etc.) - For example, for at least some of the windows In the basic elements of the user interface, there are a plurality of potential transformations that can be used to generate the elementary window having elements adapted to certain characteristics of the user device, the environment and / or the user. Selecting a conversion may involve a calculation of a distance representative of the extent to which each processing is consistent with the charac teristics ¬, optionally with the application of a different weight to each characteristic. An exemplary method for selecting a transformation will be described in more detail below.
Après la sélection de la transformation, dans une opération 517, un entête d'élément de code GUI est généré.  After selection of the transformation, in an operation 517, a GUI code element header is generated.
Dans une opération 518, un corps d'élément de code de GUI est alors généré en utilisant une ou plusieurs transformations sélectionnées.  In an operation 518, a GUI code element body is then generated using one or more selected transformations.
Dans une opération 519, on détermine s'il y a un élément enfant à traiter. Si oui, l'opération suivante est l'opération 520, dans laquelle le code de l'élément enfant est généré. On revient ensuite à l'opération 519. Dans l'autre cas, si tous les éléments enfants ont été traités, l'opération suivante est l'opération 521, dans laquelle une terminaison d' élément de code de GUI est générée afin d' achever la représentation en code de l'élément enfant du GUI global.  In an operation 519, it is determined whether there is a child element to be processed. If so, the next operation is operation 520, in which the code of the child element is generated. Then return to operation 519. In the other case, if all the child elements have been processed, the next operation is the operation 521, in which a GUI code element termination is generated in order to complete the code representation of the child element of the global GUI.
Des techniques pour sélectionner les transformations à utiliser pour générer une ou plusieurs fenêtres élémentaires de l'UI, correspondant à l'opération 516 en figure 5C, vont maintenant être décrites en faisant référence aux figures 6 à 9.  Techniques for selecting the transformations to be used to generate one or more elementary windows of the UI, corresponding to operation 516 in FIG. 5C, will now be described with reference to FIGS. 6 to 9.
La figure 6 illustre un exemple d'espace 3D de caractéristiques, dans lequel un niveau d'expertise d'utili- sateur (USER EXPERTISE) est représenté sur l'axe x, un niveau de lumière ambiante (LIGHT LEVEL) est représenté sur l'axe y, et la taille de l'affichage (DISPLAY SURFACE) est représentée sur l'axe z. Bien sûr, les caractéristiques présentes en figure 6 ne sont qu'un exemple, et en fonction de la fenêtre élémentaire UI à générer, des caractéristiques différentes pourraient être prises en compte. Figure 6 illustrates an example of a 3D feature space, in which a USER EXPERTISE level is represented on the x-axis, a level of Ambient light (LIGHT LEVEL) is shown on the y-axis, and the display size (DISPLAY SURFACE) is shown on the z-axis. Of course, the characteristics present in FIG. 6 are only one example, and depending on the elementary window UI to be generated, different characteristics could be taken into account.
Dans l'exemple de la figure 6, on suppose que, pour une fenêtre élémentaire UI donnée à générer, il y a trois transformations différentes possibles. Une première transfor- mation conduit à un composant élémentaire d'UI qui est approprié pour des niveaux de caractéristiques tombant dans un volume VI de la figure 6, une deuxième transformation conduit à un composant élémentaire d'UI qui est approprié pour des niveaux de caractéristiques tombant dans un volume V2 de la figure 6, et une troisième transformation conduit à un composant élémentaire d'UI qui est approprié pour des niveaux de caractéristiques tombant dans un volume V3 de la figure 6.  In the example of Figure 6, it is assumed that for a given elementary window UI to be generated, there are three different possible transformations. A first transformation leads to an elementary component of UI which is suitable for feature levels falling in a volume VI of FIG. 6, a second transformation leads to an elementary component of UI which is suitable for characteristic levels falling into a volume V2 of Figure 6, and a third transformation leads to an elementary component of UI which is suitable for feature levels falling in a volume V3 of Figure 6.
Pour un niveau donné d'expertise de l'utilisateur, de niveau lumineux et de surface d'affichage, le module de génération d'UI 222 sélectionne par exemple la transformation associée aux volumes VI , V2 et V3 sur la base d'un calcul de distance par rapport à chaque volume. On va maintenant décrire plus en détail des exemples de calculs de distance en faisant référence aux figures 7A, 7B et 7C.  For a given level of user expertise, light level and display surface, the UI generation module 222 selects for example the transformation associated with the volumes VI, V2 and V3 on the basis of a calculation. distance from each volume. Examples of distance calculations will now be described in more detail with reference to Figs. 7A, 7B and 7C.
La figure 7A est un diagramme illustrant le cas de volumes monodimensionnels VI et V2 pour une seule caractéristique, chaque volume correspondant à une transfor¬ mation donnée. La distance d(C,Vi) d'un point C par rapport à un volume Vi est par exemple considérée nulle si le point C tombe dans le volume, en d'autres termes si Vimj_n<C<Vimax, où le volume Vi a des limites inférieure et supérieure Vim-j_n et Vimax respectivement. C'est le cas pour le point Cl en figure 7A, qui tombe dans le volume VI . 7A is a diagram illustrating the case of one-dimensional volumes VI and V2 for a single feature, each volume corresponding to a given TRANSFORMATION ¬ mation. The distance (C, V) of a point C with respect to a volume V is for example void if the point C falls within the volume, in other words if Vi m j_ n <C <V max, where the volume Vi has lower and upper limits Vi m -j_ n and Vi max respectively. This is the case for point C1 in FIG. 7A, which falls in volume VI.
Pour des points qui ne tombent dans aucun volume, ce qui est le cas des points C2 et C3 en figure 7A, la distance est par exemple calculée comme étant la distance par rapport à la frontière Vi la plus proche, en d'autres termes d(C2,Vl)=C2- Vlmax et d (C2, V2) =V2m-j_n-C2, en d'autres termes, d (C2, Vi) =min (|C2- viminUc2-vimaxD · For points that do not fall into any volume, which is the case of points C2 and C3 in Figure 7A, the distance is for example, calculated as being the distance from the nearest boundary Vi, in other words d (C2, V1) = C2-V1 max and d (C2, V2) = V2 m - j _ n -C2, in other words, d (C2, Vi) = min (| C2- vi minU c2 - vi maxD ·
Pour un point donné, on sélectionne par exemple le volume ayant la distance la plus courte, qui, pour les points C2 et C3, est le volume V2.  For a given point, for example, the volume with the shortest distance is selected, which for the points C2 and C3 is the volume V2.
La figure 7B illustre un autre exemple de volumes monodimensionnels VI et V2, mais pour une caractéristique définie par des valeurs discrètes. Dans l'exemple de la figure 7B, la valeur est le niveau de compétence de l'utilisateur, qui est par exemple l'une des cinq valeurs suivantes classées dans l'ordre : novice ; débutant ; compétent ; performant ; et expert .  Figure 7B illustrates another example of one-dimensional volumes VI and V2, but for a characteristic defined by discrete values. In the example of FIG. 7B, the value is the skill level of the user, which is for example one of the following five values in order: novice; beginner ; competent; powerful; and expert.
Dans l'exemple, Cl est « débutant », qui appartient au volume VI, et C3 est « performant », qui appartient au volume V2 . Cependant, le point C2 est « compétent », qui ne fait partie ni de l'un ni de l'autre des volumes. Chacun des niveaux discrets est par exemple affecté à une valeur numérique, par exemple novice = 1, débutant = 2, etc., et la formule  In the example, Cl is "beginner", which belongs to volume VI, and C3 is "efficient", which belongs to volume V2. However, point C2 is "competent", which is not part of either volume. Each of the discrete levels is for example assigned to a numerical value, for example novice = 1, beginner = 2, etc., and the formula
d (C2, Vi) =min (|C2-Vimj_n|, |C2-Vimax|) , est par exemple appliquée. Cependant, dans cet exemple, d(C2,Vl)=l, et d(C2,V2)=l. Dans le cas de distances égales, on peut sélectionner l'un ou l'autre des volumes, ou on peut par exemple sélectionner le volume le plus sûr, qui dans cet exemple est le volume VI, qui ne risque pas de dépasser le niveau de compétence de l'utilisateur. d (C2, Vi) = min (| C2-Vi mj- n |, | C2-Vi max |) is applied, for example. However, in this example, d (C2, Vl) = 1, and d (C2, V2) = 1. In the case of equal distances, one can select one or the other of the volumes, or one can for example select the safest volume, which in this example is the volume VI, which is not likely to exceed the level of competence of the user.
Dans le cas d'une caractéristique ayant une valeur binaire, comme vrai ou faux, la distance est par exemple égale à 0 si le volume et le point ont la même valeur, et égale à 1 si le volume et le point ont des valeurs différentes. Par exemple, si la caractéristique est la présence ou l'absence d'un système de positionnement dans le dispositif d'utilisateur, et si le volume VI est adapté à une utilisation où il y a un système de positionnement, la distance sera égale à 0 si le dispositif d'utilisateur a un système de positionnement, et égale à 1 autrement . In the case of a characteristic having a binary value, such as true or false, the distance is for example equal to 0 if the volume and the point have the same value, and equal to 1 if the volume and the point have different values. . For example, if the feature is the presence or absence of a positioning system in the user device, and if the volume VI is suitable for use where there is a positioning system, the distance will be equal to 0 if the device user has a positioning system, and equal to 1 otherwise.
La figure 7C illustre un exemple d'un cas dans lequel des distances doivent être calculées dans un espace bi- dimensionnel sur la base de caractéristiques Kl et K2. Les volumes VI et V2 sont par exemple définis par :  Figure 7C illustrates an example of a case in which distances must be calculated in a two-dimensional space on the basis of characteristics K1 and K2. The volumes VI and V2 are for example defined by:
VI : <K1 e [Klvlmin, Klvlmax] , K2 e [K2vlmin, K2vlmax] > VI: <K1 e [K1 v1min , K1 v1max ], K2 e [K2 v1min , K2 v1max ]>
V2 : <K1 e [Klv2min, Klv2max] , K2 e [K2v2min, K2v2max] > V2: <K1 e [K1 v2min , K1 v2max ], K2 e [K2 v2min , K2 v2max ]>
Dans l'exemple de la figure 7C, un point Cl tombe dans le volume VI, et ainsi sa distance par rapport à ce volume est égale à 0. Cependant, le point C2 est dans la plage du volume VI en ce qui concerne la caractéristique Kl, mais pas en ce qui concerne la caractéristique K2. Le point C3 n'est pas dans les plages des volumes VI ou V2 pour aucune des caractéristiques Kl et K2. Chacune des distances entre C2 et C3 et les volumes VI et V2 est par exemple définie comme la plus petite longueur d'une ligne droite joignant un point situé dans le volume Vi au point C :  In the example of FIG. 7C, a point C1 falls in volume VI, and thus its distance from this volume is equal to 0. However, point C2 is in the range of volume VI with respect to the characteristic Kl, but not with respect to the K2 feature. Point C3 is not in the volume ranges VI or V2 for any of the characteristics K1 and K2. Each of the distances between C2 and C3 and the volumes VI and V2 is for example defined as the smallest length of a straight line joining a point situated in the volume Vi at the point C:
d(C,Vi)=V(dK1 (C,Vi)2+dK2 (C,Vi)2) d (C, Vi) = V (d K1 (C, Vi) 2 + d K2 (C, Vi) 2 )
De préférence, lorsqu'on applique cette équation, les valeurs des caractéristiques Kl et K2 ont été normalisées l'une par rapport à l'autre, par exemple sur une échelle de 0 à 100, où 0 correspond à la valeur la plus faible Km-j_n de la caractéristique K, et 100 correspond à la valeur la plus élevée Kmax de la caractéristique K. La formule pour la distance entre un point C représentant un contexte courant et un volume V=<ke [ν^ίη,ν^χ] >, pour une caractéristique K= [Kmj_n, Kmax] est ainsi : Preferably, when this equation is applied, the values of the characteristics K1 and K2 have been normalized with respect to each other, for example on a scale of 0 to 100, where 0 corresponds to the lowest value K m -j_ n of the characteristic K, and 100 corresponds to the highest value K max of the characteristic K. The formula for the distance between a point C representing a current context and a volume V = <ke [ν ^ ί η , ν ^ χ]>, for a characteristic K = [K m j_ n, K max] is as follows:
d (C, V) =
Figure imgf000028_0001
/ (Kmax-Kmin) où le symbole "Λ" représente un "ET" logique, et l'opérateur "?" désigne une condition si/sinon de telle sorte que l'expression (x)?0: (y) implique que si la condition x est vraie, alors le résultat est égal à 0, sinon il est égal à y.
d (C, V) =
Figure imgf000028_0001
/ (K max -K min ) where the symbol "Λ" represents a logical "AND", and the operator "?" denotes a condition if / otherwise such that the expression (x)? 0: (y) implies that if the condition x is true, then the result is 0, otherwise it is equal to y.
Pour un espace multidimensionnel dans lequel il y a n caractéristiques Ki, et dans lequel C est un point correspondant à des valeurs courantes Kiç de chacune des caractéristiques Ki, la distance à un volume Vi peut ainsi être définie par : For a multidimensional space in which there are characteristics Ki, and in which C is a corresponding point at current values Kiç of each of the characteristics Ki, the distance to a volume Vi can thus be defined by:
d(C,V) =
Figure imgf000029_0001
d (C, V) =
Figure imgf000029_0001
En outre, dans certains modes de réalisation, certaines caractéristiques peuvent être pondérées pour avoir des importances différentes. Par exemple, dans le cas d'un UI destiné à être utilisé dans des environnements de bureau bien éclairés, les conditions de lumière ambiante peuvent ne varier que relativement peu et être d'une importance relativement faible. Par contre, pour un UI destiné à être utilisé dans des conditions tout terrain, par exemple comme outil de navigation pour des randonneurs, les conditions de lumière ambiante peuvent avoir une grande importance, et être ainsi pondérées en conséquence. Un coefficient de pondération πκί est ainsi par exemple ajouté à la formule, qui devient la formule suivante : In addition, in some embodiments, certain features may be weighted to have different importance. For example, in the case of a UI for use in well-lit office environments, the ambient light conditions may vary only relatively little and be of relatively low importance. On the other hand, for a UI intended to be used in off-road conditions, for example as a navigation tool for hikers, ambient light conditions can be of great importance, and thus be weighted accordingly. A weighting coefficient π κί is thus for example added to the formula, which becomes the following formula:
=
Figure imgf000029_0002
=
Figure imgf000029_0002
Dans certains cas, la sélection de certains volumes pour des caractéristiques de certaines plages peut être complètement empêchée. Par exemple, il pourrait être impossible qu'une certaine fenêtre élémentaire associée à un certain volume soit appliquée à un écran d'affichage qui est plus grand qu'une certaine taille. De tels volumes sont par exemple définis par : V=<Vm-j_n, Vmax, Limm-j_n, Limmax>, où Limm-j_n est la valeur la plus faible d'une caractéristique K pour laquelle le volume V peut être sélectionné, et Limmax est la valeur la plus forte de la caractéristique K pour laquelle le volume V peut être sélectionné. Bien sûr, dans certains modes de réalisation, seule la limite inférieure Limm-j_n ou seule la limite supérieure Limmax pourrait être prévue. In some cases, selecting certain volumes for certain track characteristics may be completely prevented. For example, it may not be possible for a certain elementary window associated with a certain volume to be applied to a display screen that is larger than a certain size. Such volumes are for example defined by: V = <V m -j_ n , V max , Lim m -j_ n , Lim max >, where Lim m -j_ n is the lowest value of a characteristic K for which the volume V can be selected, and Lim max is the highest value of the characteristic K for which the volume V can be selected. Of course, in some embodiments, only the lower limit Lim m -j_ n or only the upper limit Lim max could be provided.
La figure 8 est un organigramme représentant un exemple d' opérations dans un procédé de création de modèles et de transformations pour générer une fenêtre élémentaire selon un exemple de réalisation. Ces opérations sont par exemple réalisées par un concepteur pendant une phase de conception.  Fig. 8 is a flowchart showing an example of operations in a method for creating models and transformations for generating an elementary window according to an exemplary embodiment. These operations are for example performed by a designer during a design phase.
Dans une opération 801, on identifie un ensemble de n caractéristiques pertinentes {K-j_}n. Par exemple, cette opération implique de déterminer, pour le contenu donné à afficher, quelles sont les caractéristiques pertinentes qui peuvent affecter la façon avec laquelle le contenu est affiché. Par exemple, lorsque le nombre d'éléments à afficher est supérieur à un certain nombre, la taille de l'afficheur du dispositif d'utilisateur peut devenir pertinente pour décider de la façon de représenter ce contenu. In an operation 801, a set of n relevant characteristics {K-j_} n is identified . For example, this operation involves determining, for the given content to be displayed, which relevant features may affect how the content is displayed. For example, when the number of items to be displayed is greater than a certain number, the size of the display of the user device may become relevant to decide how to represent that content.
Dans une opération 802, une plage de valeurs possibles, entre jmj_n et jmax, est récupérée ou définie pour chaque caractéristique, comme cela est représenté par {<Kj_, jmj_n,K;max>}n. Par exemple, chaque caractéristique peut prendre l'une des formes suivantes : In an operation 802, a range of possible values between jm j_ n and jmax is retrieved or set for each feature, as shown by {<K i, jm j_ n, K; max >} n . For example, each characteristic can take one of the following forms:
- une valeur binaire, comme « vrai » ou « faux ».  - a binary value, such as "true" or "false".
Exemple : une caractéristique définissant si le dispositif d'utilisateur a ou pas un système de positionnement global ;  Example: a characteristic defining whether or not the user device has a global positioning system;
- un classement ordonné de niveaux prédéfinis.  - an ordered ranking of predefined levels.
Exemple : le niveau d'expertise d'un utilisateur, qui peut être défini parmi les niveaux « novice », « débutant », « compétent », « expérimenté », et « expert » ;  Example: the level of expertise of a user, which can be defined among the levels "novice", "beginner", "competent", "experienced", and "expert";
- une valeur dans une plage continue de nombres. Exemple : une valeur représentant le niveau lumineux ambiant, qui va par exemple de 0 (noir absolu) à 120000 (soleil direct) ; - des valeurs discrètes. Exemple : les valeurs représentant la taille de l'afficheur, qui pourrait aller d'une valeur de diagonale la plus petite de 0,27 pouce jusqu'à une valeur de diagonale la plus grande de 4015 pouces. - a value in a continuous range of numbers. Example: a value representing the ambient light level, which ranges from 0 (absolute black) to 120000 (direct sun); - discrete values. Example: The values representing the size of the display, which could range from the smallest diagonal value of 0.27 inches to the largest diagonal value of 4015 inches.
Dans une opération 803, on définit des poids relatifs 7¾-ί_ pour chaque caractéristique. Les poids sont définis sur la base du contenu. Par exemple, en fonction du contenu à afficher, la taille de l'afficheur du dispositif d'utilisateur peut avoir une importance élevée lors de la définition de l'UI.  In an operation 803, relative weights 7¾-ί are defined for each characteristic. Weights are defined based on the content. For example, depending on the content to be displayed, the size of the display of the user device may be of high importance when defining the UI.
Dans une opération 804, on définit une pluralité de volumes magnétiques Vi, par exemple en subdivisant chaque plage de caractéristique en deux ou plusieurs sous-plages, chaque volume magnétique correspondant à un vecteur d'une combinaison de sous-plages sélectionnées.  In an operation 804, a plurality of magnetic volumes Vi is defined, for example by subdividing each characteristic range into two or more sub-ranges, each magnetic volume corresponding to a vector of a combination of selected sub-ranges.
Dans une opération 805, on définit par exemple des conditions pour un fonctionnement effectif de chaque UI afin de spécifier les exigences fonctionnelles de l'UI et/ou des composants élémentaires de l'UI. Par exemple, si l'UI affiche la température courante, il a besoin d'une connexion à un capteur de température pour obtenir des mesures de température. Si cette connexion est perdue, l'UI ne peut pas fonctionner correctement, et par exemple il produit une réaction comme l'affichage d'un message d'avertissement ou d'erreur. De telles conditions fonctionnelles et de telles réactions peuvent être définies au niveau de l'UI ou au niveau composant élémentaire.  In an operation 805, for example, conditions are defined for an effective operation of each UI in order to specify the functional requirements of the UI and / or the elementary components of the UI. For example, if the UI displays the current temperature, it needs a connection to a temperature sensor to get temperature readings. If this connection is lost, the UI can not function properly, and for example it produces a reaction such as displaying a warning or error message. Such functional conditions and such reactions can be defined at the level of the IU or the elementary component level.
Dans une opération 806, un ou plusieurs modèles et une ou plusieurs transformations sont conçus et générés ou créés d'une autre façon pour générer une fenêtre élémentaire d'UI associée à chaque volume. Par exemple, les transformations qui comprennent des instructions utilisées par le module de génération d'UI ou par un dispositif d'utilisateur pendant la génération d'un UI, sont créées par un concepteur. En outre, des modèles de tâches, de domaines et de contextes sont par exemple créés par un concepteur, et ces modèles sont aussi utilisés pendant la génération de l'UI. Le modèle de contexte peut être rempli par un concepteur sur la base de caractéristiques d'utilisateurs, ou par des programmes et/ou des capteurs, par exemple sur la base de géolocalisation. D'autres modèles, comme le modèle d'UI abstrait et le modèle d'UI concret peuvent être générés automatiquement sur la base du modèle de tâche. In an operation 806, one or more models and one or more transformations are designed and generated or otherwise created to generate an elementary UI window associated with each volume. For example, transformations that include instructions used by the UI generation module or by a user device during the generation of a UI, are created by a designer. In addition, for example, task, domain, and context templates are created by a designer, and these templates are also used. during the generation of the UI. The context model can be filled by a designer based on user characteristics, or by programs and / or sensors, for example based on geolocation. Other models, such as the abstract UI model and the concrete UI model can be generated automatically based on the task model.
La figure 9A est un organigramme illustrant des opérations dans un procédé de sélection de transformations pour générer un UI constitué d'une ou plusieurs fenêtres élémen- taires . Ce procédé est par exemple réalisé pendant l'opération 516 de la figure 5C.  Figure 9A is a flowchart illustrating operations in a method of selecting transformations to generate a UI consisting of one or more elementary windows. This method is for example carried out during the operation 516 of FIG. 5C.
Comme cela est représenté dans l'opération 901, on suppose qu'un processus de conception a fourni N caracté¬ ristiques de contextes K={<Ki,Kimin,Kimax, πκί>}η , et des trans- formations pour générer des fenêtres élémentaires d'UI ayant des volumes magnétiques correspondants V={<{KVImin,KVImax}n,UIi>} *, où * est un entier égal ou supérieur à 0 représentant le nombre de volumes. As shown in step 901, it is assumed that the design process has provided N charac ¬ teristics contexts K = {<Ki Kimin, Kimax, π κί>} η, and trans- formations to generate elementary windows of UI with corresponding magnetic volumes V = {<{KVImin, KVImax} n , UIi>} *, where * is an integer equal to or greater than 0 representing the number of volumes.
Dans une opération 902, une fonction "getTrans- formation" est appelée, avec comme paramètres d'entrée le contexte courant C, les volumes magnétiques V, et les caractéristiques de contexte K avec leurs poids associés nKi . In an operation 902, a "getTransformation" function is called, with as input parameters the current context C, the magnetic volumes V, and the context characteristics K with their associated weights n Ki .
Dans une opération 903, une variable "minDistance" est mise à l'infini, une valeur de résultat "Transformation" de la fonction est mise à une valeur nulle, et une variable v est mise à 0.  In an operation 903, a variable "minDistance" is set to infinity, a result value "Transformation" of the function is set to zero, and a variable v is set to 0.
Dans une opération 904, on détermine si la variable v est inférieure à Card(V), en d'autres termes le nombre de volumes magnétiques. Si la réponse est non, les opérations 905 à 908 sont réalisées.  In an operation 904, it is determined whether the variable v is smaller than Card (V), in other words the number of magnetic volumes. If the answer is no, operations 905 to 908 are performed.
Dans l'opération 905, une distance est calculée en appelant une autre fonction "magneticDistance", avec comme paramètres d'entrée le contexte courant C, le volume V[v], et les caractéristiques de contexte K. Dans l'opération 906, on détermine si la distance déterminée dans l'opération 905 est inférieure à la valeur de la variable minDistance. Si oui, l'opération suivante est l'opération 907, dans laquelle la variable minDistance est mise égale à la valeur de distance, et la valeur de "Transformation" est mise égale à la transformation associée au volume V[v]. Après l'opération 907, ou si dans l'opération 906 la distance n'est pas inférieure à la valeur de la variable minDistance, l'opération suivante est l'opération 908, dans laquelle la variable v est incrémentée, puis on revient à l'opération 904. In the operation 905, a distance is calculated by calling another function "magneticDistance", with as input parameters the current context C, the volume V [v], and the context characteristics K. In the operation 906, it is determined whether the distance determined in the operation 905 is smaller than the value of the variable minDistance. If so, the next operation is the operation 907, in which the minDistance variable is set equal to the distance value, and the value of "Transformation" is set equal to the transformation associated with the volume V [v]. After the operation 907, or if in the operation 906 the distance is not smaller than the value of the variable minDistance, the following operation is the operation 908, in which the variable v is incremented, then it returns to operation 904.
Lorsque la valeur du paramètre v n'est plus inférieure au nombre de volumes magnétiques V, l'opération après l'opération 904 est une opération 909, dans laquelle la valeur de la variable "Transformation" est retournée comme résultat.  When the value of the parameter v is no longer smaller than the number of magnetic volumes V, the operation after the operation 904 is an operation 909, in which the value of the variable "Transformation" is returned as a result.
La figure 9B illustre un exemple d'opérations mettant en oeuvre le calcul de distance de l'opération 905 de la figure 9A.  FIG. 9B illustrates an example of operations implementing the distance calculation of operation 905 of FIG. 9A.
Comme cela est représenté en 910, la fonction est appelée avec des paramètres d'entrée C={Ci}n, vol={<{KVImin, KVImax, LimVImin, LimVImax>}n, où vol est l'un des volumes de l'ensemble V de volumes, et K={<Ki, Kimin, Kimax, 7¾>}n. As shown in 910, the function is called with input parameters C = {Ci} n , vol = {<{KVImin, KVImax, LimVImin, LimVImax>} n , where vol is one of the volumes of the set V of volumes, and K = {<Ki, Kimin, Kimax, 7¾>} n .
Dans une opération 911, la variable "distance" est mise à 0, et une variable i est mise à 0.  In an operation 911, the variable "distance" is set to 0, and a variable i is set to 0.
Dans une opération 912, on détermine si i est inférieur à n. Si oui, l'opération suivante est l'opération 913, dans laquelle la distance est calculée par :  In an operation 912, it is determined if i is less than n. If yes, the next operation is operation 913, in which the distance is calculated by:
distance=distance+ (Ck≥Kyimj_n&&Ck≤Ky;max? distance = distance + (Ck≥Kyi mj _ n &&Ck≤Ky; max ?
0:  0:
(Ck≥LimVImin&&Ck≤LimVImax? (Ck≥Lim VImin && Ck≤Lim VImax ?
+∞ :  + ∞:
7¾*min (|Ci-KVImin|, |Ci-KVImax|) / (KImax-7¾ * min (| Ci-K VImin |, | Ci-K VImax |) / (K Imax -
Klmin) 2 Dans une opération 914, la variable i est incrémentée, puis le procédé revient à l'opération 912. Klmin) 2 In an operation 914, the variable i is incremented, then the process returns to the operation 912.
Si dans l'opération 912 on détermine que i n'est pas inférieur à n, l'opération suivante est l'opération 915, dans laquelle la racine carrée de la valeur de la distance est renvoyée comme résultat.  If in operation 912 it is determined that i is not less than n, the next operation is operation 915, in which the square root of the value of the distance is returned as a result.
La figure 10A est un organigramme illustrant un exemple d'opérations dans un procédé d'adaptation d'un UI sur la base d'un contexte de changements d'utilisation survenant pendant l'affichage d'un UI sur un dispositif d'utilisateur. Par exemple, bien que les caractéristiques du dispositif d'utili¬ sateur soient peu susceptibles de changer, certaines caractéristiques de l'environnement, comme le niveau lumineux ambiant, ou le bruit de fond, pourraient changer pendant que l'UI est visualisé. Le procédé de la figure 10A permet à l'UI d'être adapté sur la base d'un tel changement. Fig. 10A is a flowchart illustrating an example of operations in a method of adapting a UI based on a context of usage changes occurring during the display of a UI on a user device. For example, although the characteristics of the device utili ¬ sateur are unlikely to change, some features of the environment such as the ambient light level or background noise might change as the UI is displayed. The method of Figure 10A allows the UI to be adapted based on such a change.
Dans une opération 1001, le contexte courant est surveillé, et dans le cas de changement, l'opération suivante est l'opération 1002. L'opération 1002 est aussi par exemple réalisée si dans une opération 1003 un utilisateur demande de naviguer vers un UI qui doit être généré, ou si dans une opération 1004 un fonctionnement défectueux est détecté.  In an operation 1001, the current context is monitored, and in the case of change, the following operation is the operation 1002. The operation 1002 is also for example carried out if in an operation 1003 a user requests to navigate to a UI which must be generated, or if in an operation 1004 a faulty operation is detected.
Dans l'opération 1002, on détermine s'il y a un UI préexistant adapté au nouveau contexte courant. Par exemple, dans certains modes de réalisation, un nombre limité des UI les plus courants peut être généré à l'avance et stocké en mémoire. En plus ou à la place, à la suite de la génération d'un UI donné, le code peut être maintenu pendant un certain temps dans le cas où un autre dispositif d'utilisateur a le même contexte et demande le même UI .  In the operation 1002, it is determined whether there is a pre-existing UI adapted to the new current context. For example, in some embodiments, a limited number of the most common IUs may be generated in advance and stored in memory. In addition or instead, following the generation of a given UI, the code can be maintained for a certain time in the case where another user device has the same context and requests the same UI.
La vérification dans l'opération 1002 comprend par exemple un calcul de distance similaire à celui décrit en relation avec les figures 9A et 9B susmentionnées, mais dans lequel on identifie qu'un UI est associé à un volume, plutôt qu'à des transformations. Si dans une opération 1002 un UI est trouvé, l'opération suivante est l'opération 1005, dans laquelle cet UI est considéré comme étant du code à exécuter, après compilation si nécessaire. L'UI, appelé UI magnétique en figure 10A, est ainsi transmis vers le dispositif d'utilisateur et exécuté par celui-ci . The check in operation 1002 includes, for example, a distance calculation similar to that described in relation to the aforementioned FIGS. 9A and 9B, but in which it is recognized that a UI is associated with a volume, rather than transformations. If in an operation 1002 a UI is found, the next operation is the operation 1005, in which this UI is considered to be code to execute, after compilation if necessary. The UI, called magnetic UI in FIG. 10A, is thus transmitted to the user device and executed by it.
De façon alternative, si aucun UI n'est trouvé dans l'opération 1002, dans une opération 1006, il est déterminé s'il existe un UI similaire, c'est-à-dire un UI généré pour un contexte similaire au nouveau contexte courant, et qui peut être adapté sur la base du contexte courant. Un contexte similaire est par exemple défini comme un contexte partageant une même valeur d'au moins une de ses caractéristiques avec le nouveau contexte courant.  Alternatively, if no UI is found in the operation 1002, in an operation 1006, it is determined whether there is a similar UI, i.e. a UI generated for a context similar to the new context current, and which can be adapted on the basis of the current context. A similar context is for example defined as a context sharing the same value of at least one of its characteristics with the new current context.
Si dans l'opération 1006 il n'existe pas d'UI similaire, dans une opération 1007, l'UI est généré en utilisant par exemple le procédé décrit en relation avec les figures 5A, 5B et 5C, puis le procédé passe à l'opération 1005.  If in operation 1006 there is no similar UI, in an operation 1007, the UI is generated using, for example, the method described in connection with FIGS. 5A, 5B and 5C, then the process proceeds to operation 1005.
Si toutefois, dans l'opération 1006, il est déterminé qu'il existe un UI similaire, dans une opération 1008, l'UI similaire est par exemple adapté sur la base du nouveau contexte courant. Ceci implique par exemple la détermination des transformations utilisées pour la génération de l'UI similaire, et la détermination qu'une ou plusieurs des transformations devraient être remplacées par une ou plusieurs nouvelles transformations au vu du nouveau contexte courant. Par exemple, sur la base des différences entre le contexte associé au contexte similaire et le nouveau contexte, il pourrait être déterminé qu'une ou plusieurs des transformations sélectionnée pour l'UI similaire ne sont pas bien adaptées et doivent être remplacées. Des nouvelles sélections sont par exemple réalisées pour uniquement ces transformations. Les transformations sélectionnées peuvent ensuite être utilisées pour générer un UI adapté, puis le procédé passe à une opération 1014 de la Figure 10C décrite plus en détail dans la suite. Un avantage de l'adaptation d'un UI similaire au nouveau contexte courant est qu'il en résulte uniquement une modification modérée de l'UI, et la sélection d'au moins une des transformations sélectionnées précédemment pour l'UI similaire ne doit pas être répétée. If however, in the operation 1006, it is determined that there is a similar UI, in an operation 1008, the similar UI is for example adapted on the basis of the new current context. This implies, for example, the determination of the transformations used for the generation of the similar UI, and the determination that one or more of the transformations should be replaced by one or more new transformations in the light of the new current context. For example, based on the differences between the context associated with the similar context and the new context, it could be determined that one or more of the transformations selected for the similar UI are not well adapted and need to be replaced. New selections are for example made for only these transformations. The selected transformations can then be used to generate an adapted UI, and then the process proceeds to an operation 1014 of Figure 10C described in more detail below. An advantage of the adaptation of a similar UI to the new current context is that only a moderate change in the UI results, and the selection of at least one of the previously selected transformations for the similar UI should not be repeated.
Dans le mode de réalisation décrit en relation avec la figure 10A, l'adaptation de l'UI en fonction du contexte dans les opérations 1002, 1005 et 1006 est réalisée globalement sur l'UI, plutôt qu'au niveau du serveur ou sur le dispositif d'utilisateur. En d'autres termes, l'adaptation du code de l'UI sur la base des caractéristiques modifiées est une adaptation globale du code de l'UI comprenant la régénération de la totalité du code de l'UI.  In the embodiment described in connection with FIG. 10A, the adaptation of the UI according to the context in the operations 1002, 1005 and 1006 is performed globally on the UI, rather than at the server level or on the server. user device. In other words, the adaptation of the UI code based on the modified characteristics is a global adaptation of the UI code including the regeneration of the entire code of the UI.
Cependant, dans des variantes de réalisation, l'adap¬ tation de l'UI en fonction du contexte dans les opérations 1002, 1005 et 1006 pourrait être réalisée localement, en d'autres termes sur seulement une portion de l'UI, en régénérant au niveau du serveur seulement une partie du code de l'UI (par exemple lorsque certaines parties de l'UI ne peuvent plus être affichées) ou en modifiant localement, au niveau du serveur ou sur le dispositif d'utilisateur, le code de l'UI (par exemple lorsque la couleur du texte est mise à rouge) . Par exemple, l'opération 1001 implique l'identification, par le dispositif de traitement 224, d'une ou plusieurs portions du code de l'UI à adapter sur la base du contexte modifié. Dans les opérations 1002, 1005 et 1006, seulement lesdites une ou plusieurs portions identifiées du code de l'UI sont alors adaptées. Une adaptation locale est avantageuse puisqu'elle peut être réalisée plus rapidement qu'une adaptation globale de l'UI, et/ou implique des ressources de traitement réduites. However, in alternative embodiments, the adap ¬ tation of the UI according to the context in the operations 1002, 1005 and 1006 may be performed locally, in other words on only a portion of the UI, regenerating at the server level only a part of the code of the UI (for example when parts of the UI can no longer be displayed) or by modifying locally, at the server or on the user device, the code of the UI 'UI (for example when the color of the text is set to red). For example, the operation 1001 involves the identification, by the processor 224, of one or more portions of the UI code to be adapted based on the modified context. In operations 1002, 1005 and 1006, only said one or more identified portions of the code of the UI are then adapted. Local adaptation is advantageous since it can be performed faster than a global adaptation of the IU, and / or involves reduced processing resources.
La figure 10B est un organigramme illustrant l'opération de surveillance de contexte 1001 de la figure 10A plus en détail selon un exemple de réalisation.  Fig. 10B is a flowchart illustrating the context monitoring operation 1001 of Fig. 10A in more detail according to an exemplary embodiment.
Dans une opération 1027, le contexte d'utilisation C est capturé à partir du dispositif d'utilisateur. Le contexte d'utilisation C est par exemple défini par n valeurs de contexte {Ci}n. In an operation 1027, the usage context C is captured from the user device. The context for use C is for example defined by n context values {Ci} n .
Dans une opération 1028, on vérifie si le contexte d'utilisation C a changé par rapport à la valeur précédemment conservée. Si ce n'est pas le cas, le procédé revient à l'opération 1027. Par contre si le contexte a changé, l'opération suivante est l'opération 1029.  In an operation 1028, it is checked whether the use context C has changed with respect to the previously conserved value. If it is not the case, the process returns to the operation 1027. By cons if the context has changed, the next operation is the operation 1029.
Dans l'opération 1029, on détermine si le changement dans le contexte nécessite une adaptation de l'UI. Par exemple, un calcul est fait pour déterminer si les transformations à sélectionner sur la base des valeurs de contexte sont identiques aux transformations sélectionnées lorsque l'UI a été généré pour la dernière fois. Si elles sont identiques, le procédé revient à l'opération 1027. Par contre, si une ou plusieurs des transformations ont changé, on considère qu'une adaptation est requise, et le procédé passe à l'opération 1002 de la figure 10A.  In operation 1029, it is determined whether the change in context requires adaptation of the UI. For example, a calculation is made to determine whether the transformations to be selected based on the context values are identical to the transformations selected when the IU was last generated. If they are identical, the method returns to operation 1027. On the other hand, if one or more of the transformations have changed, an adaptation is considered to be required, and the process proceeds to operation 1002 of FIG. 10A.
La figure 10C est un organigramme illustrant plus en détail l'opération 1005 consistant à exécuter l'UI, selon un exemple de réalisation.  Fig. 10C is a flowchart illustrating in more detail operation 1005 of executing the UI, according to an exemplary embodiment.
Dans une opération 1010, on détermine si le code de l'UI est exécutable. Si la réponse est non, dans une opération 1011, le système identifie le langage de programmation utilisé dans l'UI, puis, dans une opération 1012, on détermine si le langage nécessite ou pas une compilation. Si la réponse est oui, le fichier est compilé dans une opération 1013. L'opération après l'opération 1013, ou après l'opération 1010 ou 1012 si le fichier est exécutable ou ne nécessite pas de compilation, est l'opération 1014 dans laquelle le fichier, appelé FUI magnétique en figure 10C, est considéré comme étant une Interface In an operation 1010, it is determined whether the code of the UI is executable. If the answer is no, in an operation 1011, the system identifies the programming language used in the UI, then, in an operation 1012, it is determined whether the language requires compilation or not. If the answer is yes, the file is compiled in an operation 1013. The operation after the operation 1013, or after the operation 1010 or 1012 if the file is executable or does not require compilation, is the operation 1014 in which the file, called magnetic FUI in Figure 10C, is considered to be an interface
Utilisateur Finale (FUI), en d'autres termes du code à exécuter sur le dispositif d'utilisateur. End User (FUI), in other words the code to execute on the user device.
Bien que la figure 10C soit basée sur le cas d'une adaptation globale de l'UI, une adaptation locale pourrait être réalisée comme cela a été décrit précédemment, soit au niveau du serveur soit sur le dispositif d'utilisateur. Dans un tel cas, les opérations 1010 à 1014 sont par exemple réalisées pour chaque composant élémentaire de l'UI qui doit être adapté. Although Figure 10C is based on the case of a global adaptation of the UI, local adaptation could be achieved as described previously, either at the server either on the user device. In such a case, the operations 1010 to 1014 are for example carried out for each elementary component of the UI that must be adapted.
La figure 10D est un organigramme illustrant l'opération 1004 de la figure 10A plus en détail selon un exemple de réalisation. L'exemple de la figure 10D correspond par exemple à une approche centralisée mise en œuvre par le module de génération d'UI 222 de la figure 2.  Fig. 10D is a flowchart illustrating the operation 1004 of Fig. 10A in more detail according to an exemplary embodiment. The example of FIG. 10D corresponds for example to a centralized approach implemented by the UI generation module 222 of FIG. 2.
Dans une opération 1015, des conditions pendant l'exécution d'un UI courant sont par exemple examinées pour déterminer, dans une opération 1016, s'il y a des conditions non remplies. Les conditions non remplies correspondent, par exemple, à une ou plusieurs valeurs d'entrée manquantes qui doivent être affichées par l'UI. Si la réponse est non, le procédé revient à l'opération 1015.  In an operation 1015, conditions during the execution of a current UI are for example examined to determine, in an operation 1016, whether there are unfilled conditions. The unsatisfied conditions correspond, for example, to one or more missing input values to be displayed by the UI. If the answer is no, the process returns to step 1015.
Dans une opération 1017, on sélectionne l'une d'une pluralité de réactions, comprenant par exemple : une opération In an operation 1017, one of a plurality of reactions is selected, comprising for example: an operation
1018 dans laquelle un UI alternatif est affiché ; une opération1018 in which an alternative UI is displayed; an operation
1019 dans laquelle un autre utilisateur, comme un technicien surveillant le système complet, est informé du problème ; une opération 1020 dans laquelle l'UI est dégradé, par exemple en modifiant l'aspect de la fenêtre élémentaire de l'UI concernée par la condition non remplie, par exemple en changeant la couleur de son texte de noir à rouge ; et une opération 1021 dans laquelle une alerte est affichée. Dans certains cas plusieurs des réactions 1018 à 1021 peuvent être réalisées. A la suite des réactions 1018 à 1020, l'opération 1002 est par exemple réalisée, afin d'adapter l'UI. A la suite des réactions 1019, 1020 et 1021, le procédé revient en plus ou en alternative à l'opération 1015. 1019 in which another user, such as a technician monitoring the complete system, is informed of the problem; an operation 1020 in which the UI is degraded, for example by modifying the appearance of the elementary window of the UI concerned by the unfilled condition, for example by changing the color of its text from black to red; and an operation 1021 in which an alert is displayed. In some cases several of the reactions 1018 to 1021 can be performed. As a result of the reactions 1018 to 1020, the operation 1002 is for example carried out, in order to adapt the UI. Following the reactions 1019, 1020 and 1021, the process returns in addition or alternatively to the operation 1015.
La figure 10E est aussi un organigramme illustrant plus en détail l'opération 1004 de la figure 10A, et les éléments similaires à ceux de la figure 10D ont été représentés avec les mêmes références numériques et ne seront pas décrits de nouveau en détail. Cependant, la figure 10E correspond à une approche distribuée, dans laquelle au moins une partie du procédé est réalisé au niveau des dispositifs d'utilisateurs. Par exemple, les opérations 1015 et 1016 sont réalisées au niveau du dispositif d'utilisateur. Cependant, si une condition est trouvée non remplie dans l'opération 1016, l'opération suivante est l'opération 1022, dans laquelle le dispositif d'utilisateur détermine la réaction qui est par exemple soit de modifier le style de l'UI dans une opération 1022, par exemple en affichant une forme de signe d'avertissement sur l'afficheur du dispositif de l'utilisateur, soit de transmettre un rapport au serveur 208 dans une opération 1023. Dans ce dernier cas, le serveur par exemple met en œuvre l'opération 1017 et met en œuvre une ou plusieurs des opérations 1018, 1019 et 1020 avant d'exécuter l'opération 1002. Fig. 10E is also a flowchart illustrating in more detail operation 1004 of Fig. 10A, and elements similar to those of Fig. 10D have been shown with the same reference numerals and will not be described again in detail. However, Figure 10E corresponds to a distributed approach, wherein at least a portion of the method is performed at user devices. For example, operations 1015 and 1016 are performed at the user device. However, if a condition is found not fulfilled in the operation 1016, the next operation is the operation 1022, wherein the user device determines the reaction which is for example to change the style of the UI in a operation 1022, for example by displaying a form of warning sign on the display of the device of the user, or to transmit a report to the server 208 in an operation 1023. In the latter case, the server for example implements operation 1017 and implements one or more of the operations 1018, 1019 and 1020 before performing the operation 1002.
Un avantage des modes de réalisation décrits ici est que, en générant une interface utilisateur adaptée à des caractéristiques associées à un utilisateur, à un ou plusieurs dispositifs d'utilisateurs, et/ou à l'environnement, l'interface peut être adaptée à des contextes d'utilisation spécifiques, sans avoir besoin de créer à l'avance, de maintenir et de mémoriser toutes les versions de l'UI disponibles. En effet, comme cela a été décrit précédemment, le nombre de versions augmente exponentiellement avec le nombre de caractéristiques différentes d'utilisateurs, de dispositifs et/ou d'environnement à considérer, ce qui rend rapidement infaisable de créer et de mémoriser chaque version.  An advantage of the embodiments described herein is that, by generating a user interface adapted to features associated with a user, one or more user devices, and / or the environment, the interface may be adapted to specific usage contexts, without the need to create in advance, maintain and store all available UI versions. Indeed, as previously described, the number of versions increases exponentially with the number of different characteristics of users, devices and / or environment to consider, which makes it quickly unfeasible to create and memorize each version.
Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art.  With the description thus made of at least one illustrative embodiment, various alterations, modifications and improvements will readily occur to those skilled in the art.
En particulier, bien que certains exemples des caractéristiques utilisées pour définir les UI aient été donnés, il apparaîtra à l'homme de l'art que les modes de réalisation décrits ici pourraient être appliqués à n'importe quelles caractéristiques pertinentes.  In particular, although some examples of the characteristics used to define UIs have been given, it will be apparent to those skilled in the art that the embodiments described herein could be applied to any relevant features.

Claims

REVENDICATIONS
1. Système pour sélectionner, adapter ou générer une interface utilisateur (UI) à exécuter sur un dispositif d'utilisateur (300) , le système comprenant : A system for selecting, adapting or generating a user interface (UI) to be executed on a user device (300), the system comprising:
un ou plusieurs dispositifs mémoires (212, 228) mémorisant un contexte courant défini par des caractéristiques associées au dispositif d'utilisateur, à un ou plusieurs utilisateurs du dispositif d'utilisateur et/ou à l'environnement du dispositif d'utilisateur ; et  one or more memory devices (212, 228) storing a current context defined by features associated with the user device, one or more users of the user device and / or the environment of the user device; and
un dispositif de traitement (224, 304) adapté à générer du code UI pour mettre en oeuvre 1 ' UI :  a processing device (224, 304) adapted to generate UI code for implementing the UI:
en générant une première portion du code UI en utilisant une ou plusieurs premières transformations sélec¬ tionnées sur la base d'une ou plusieurs des caractéristiques, lesdites une ou plusieurs premières transformations étant adaptées à transformer au moins un modèle définissant une première portion de l'interface utilisateur en ladite première portion du code UI ; generating a first portion of the UI code using one or more first processing selec ¬ tioned on the basis of one or more features, said one or more first transformations being adapted to transform at least one model defining a first portion of user interface in said first portion of the UI code;
en générant une deuxième portion du code UI en utilisant une ou plusieurs deuxièmes transformations sélec- tionnées sur la base d'une ou plusieurs des caractéristiques, lesdites une ou plusieurs deuxièmes transformations étant adaptées à transformer au moins un modèle définissant une deuxième portion de l'interface utilisateur en ladite deuxième portion du code UI ; et  generating a second portion of the UI code using one or more second transformations selected on the basis of one or more of the features, said one or more second transformations being adapted to transform at least one model defining a second portion of the user interface in said second portion of the UI code; and
en assemblant au moins les première et deuxième portions pour générer le code UI .  by assembling at least the first and second portions to generate the UI code.
2. Système selon la revendication 1, dans lequel le dispositif de traitement est adapté en outre à calculer une distance entre le contexte courant et un contexte associé avec un ou plusieurs autres codes UI générés précédemment, et à sélectionner l'un des autres codes UI selon cette distance.  2. System according to claim 1, wherein the processing device is further adapted to calculate a distance between the current context and a context associated with one or more other UI codes generated previously, and to select one of the other UI codes. according to this distance.
3. Système selon la revendication 1 ou 2, dans lequel le dispositif de traitement (224, 304) est adapté en outre à générer le code UI sur la base d'une ou plusieurs transformations supplémentaires sélectionnées précédemment pour la génération d'une interface utilisateur adaptée à un contexte précédant similaire au contexte courant. The system of claim 1 or 2, wherein the processing device (224,304) is further adapted to generate the UI code based on one or more additional transformations previously selected for generating a user interface adapted to a previous context similar to the current context.
4. Système selon l'une quelconque des revendications 1 à 3, dans lequel lesdits un ou plusieurs dispositifs mémoires 4. System according to any one of claims 1 to 3, wherein said one or more memory devices
(212, 228) mémorisent en outre un contenu dynamique à représenter par l'UI, et dans lequel le dispositif de traitement (224) est adapté à sélectionner lesdites une ou plusieurs premières et deuxièmes transformations en outre sur la base du contenu dynamique. (212, 228) further memorizes a dynamic content to be represented by the UI, and wherein the processing device (224) is adapted to select said one or more first and second transformations further based on the dynamic content.
5. Système selon l'une quelconques des revendications 1 à 4, dans lequel les caractéristiques comprennent une ou plusieurs caractéristiques parmi :  The system of any one of claims 1 to 4, wherein the features include one or more of:
une indication de la taille de l'afficheur du dispositif d'utilisateur ;  an indication of the size of the display of the user device;
une indication d'au moins un langage de programmation d'UI compatible avec le dispositif d'utilisateur ;  an indication of at least one UI programming language compatible with the user device;
une indication d'un niveau de lumière ambiante détecté par le dispositif d'utilisateur ;  an indication of an ambient light level detected by the user device;
une indication d'un niveau de bruit ambiant détecté par le dispositif d'utilisateur ;  an indication of an ambient noise level detected by the user device;
une indication d'un niveau d'expertise de l'utili¬ sateur du dispositif d'utilisateur ; an indication of a level of expertise of the utili ¬ sateur the user device;
une indication de la langue de l'utilisateur du dispositif d'utilisateur ; et  an indication of the language of the user of the user device; and
une indication du niveau de la vue de l'utilisateur du dispositif d'utilisateur.  an indication of the level of the user's view of the user device.
6. Système selon la revendication 5, dans lequel le dispositif d'utilisateur comprend un ou plusieurs éléments parmi :  The system of claim 5, wherein the user device comprises one or more of:
un détecteur de lumière ambiante (308) pour détecter le niveau de lumière ambiante ;  an ambient light detector (308) for detecting the ambient light level;
un microphone (310) pour détecter le niveau de bruit ambiant ; et un dispositif de localisation (312) pour détecter la position du dispositif d'utilisateur. a microphone (310) for detecting the ambient noise level; and a location device (312) for detecting the position of the user device.
7. Système selon l'une quelconque des revendications 1 à 6, dans lequel l'UI est une interface audio.  7. System according to any one of claims 1 to 6, wherein the UI is an audio interface.
8. Système selon l'une quelconque des revendications 1 à 7, dans lequel l'UI est une interface utilisateur graphique, et dans lequel chacune des première et deuxième portions du code UI génère une fenêtre élémentaire correspondante de 1 ' interface utilisateur graphique.  The system of any one of claims 1 to 7, wherein the UI is a graphical user interface, and wherein each of the first and second portions of the UI code generates a corresponding elementary window of the graphical user interface.
9. Système selon la revendication 8, dans lequel au moins l'une des première et deuxième portions du code UI met en œuvre un élément de saisie d'utilisateur pour permettre à un utilisateur d'introduire une sélection.  The system of claim 8, wherein at least one of the first and second portions of the UI code implements a user input element to allow a user to enter a selection.
10. Système selon l'une quelconque des revendications 1 à 9, dans lequel le dispositif de traitement (224, 304) est en outre adapté à générer un code d' entête et un code de terminaison du code UI .  10. System according to any one of claims 1 to 9, wherein the processing device (224, 304) is further adapted to generate a header code and a termination code of the UI code.
11. Système selon l'une quelconque des revendications 1 à 10, dans lequel, pendant l'exécution du code UI par le dispositif d'utilisateur, le dispositif de traitement (224, 304) est en outre adapté à recevoir une ou plusieurs caractéristiques modifiées et à adapter le code UI sur la base des caractéristiques modifiées.  System according to any one of claims 1 to 10, wherein, during the execution of the UI code by the user device, the processing device (224, 304) is further adapted to receive one or more characteristics. modified and to adapt the UI code on the basis of the modified characteristics.
12. Système selon la revendication 11, dans lequel l'adaptation du code UI sur la base des caractéristiques modifiées est une adaptation globale du code UI comprenant la régénération de la totalité du code UI .  12. System according to claim 11, wherein the adaptation of the UI code on the basis of the modified characteristics is a global adaptation of the UI code comprising the regeneration of the entire UI code.
13. Système selon la revendication 12, dans lequel le dispositif de traitement est adapté à identifier au moins la première portion du code UI à adapter sur la base des caractéristiques modifiées, et dans lequel l'adaptation du code UI comprend une adaptation locale du code UI dans laquelle la première portion du code UI est adaptée mais pas la deuxième portion. The system of claim 12, wherein the processing device is adapted to identify at least the first portion of the UI code to be adapted based on the modified characteristics, and wherein the adaptation of the UI code comprises a local adaptation of the code. UI in which the first portion of the UI code is adapted but not the second portion.
14. Système selon l'une quelconque des revendications 1 à 13, dans lequel le dispositif de traitement (224, 304) est adapté à sélectionner les premières et deuxièmes transformations en calculant une distance par rapport à un volume Vi correspondant à chaque transformation sur la base de l'équation suivante : A system according to any one of claims 1 to 13, wherein the processing device (224, 304) is adapted to select the first and second transformations by calculating a distance from a volume Vi corresponding to each transformation on the basis of the following equation:
=
Figure imgf000043_0001
=
Figure imgf000043_0001
où le symbole "Λ" représente un "ET" logique, l'opérateur "?" désigne une condition si/sinon, Kiç est une valeur courante de chacune des caractéristiques Ki, chaque volume Vi est défini par des valeurs minimum et maximum de chaque caractéristique Kl à Kn de la façon suivante : Vi=<Kle [Klvimin,Klvimax] ...Kne [Knvimin, Knvimax] >, et dans lequel chaque caractéristique Ki est associée à une valeur maximum Kimax et une valeur minimum Kim-j_n, et nKi est un coéfficient de pondération. where the symbol "Λ" represents a logical "AND", the operator "?" denotes a condition if / otherwise, Kiç is a current value of each of the characteristics Ki, each volume Vi is defined by minimum and maximum values of each characteristic K1 to K1 as follows: Vi = <Kle [Kl vimin , Kl vimax ] ... Kne [Kn vimin , Kn vimax ]>, and in which each characteristic Ki is associated with a maximum value Ki max and a minimum value Ki m -j_ n , and n Ki is a weighting coefficient.
15. Système selon l'une quelconque des revendications 1 à 14, mis en œuvre :  15. System according to any one of claims 1 to 14, implemented:
dans le dispositif d'utilisateur ; et/ou  in the user device; and or
dans un serveur distant (208) agencé pour communiquer avec le dispositif d'utilisateur par l'intermédiaire d'un ou plusieurs réseaux intermédiaires (110) .  in a remote server (208) arranged to communicate with the user device through one or more intermediate networks (110).
16. Procédé pour générer une interface d'utilisateur (UI) à exécuter par un dispositif d'utilisateur (300), le procédé comprenant :  A method for generating a user interface (UI) to be executed by a user device (300), the method comprising:
générer du code UI pour mettre en œuvre l'UI :  generate UI code to implement the UI:
- en générant une première portion du code UI en utilisant une ou plusieurs premières transformations sélectionnées sur la base d'une ou plusieurs caractéristiques associées au dispositif d'utili¬ sateur, à un ou plusieurs utilisateurs du dispositif d'utilisateur et/ou à l'environnement du dispositif d'utilisateur, lesdites une ou plusieurs premières transformations étant adaptée à transformer au moins un modèle définissant une première portion de l'interface utilisateur en ladite première portion du code UI ; - generating a first portion of the UI code using one or more first selected transformations based on one or more characteristics associated with the device utili ¬ sateur, to one or more users of the device and / or the environment of the user device, said one or more first transformations being adapted to transform at least one model defining a first portion of the user interface into said first portion of the UI code;
- en générant une deuxième portion du code UI en utilisant une ou plusieurs deuxièmes transformations sélectionnées sur la base d'une ou plusieurs des caractéristiques, lesdites une ou plusieurs deuxièmes transformations étant adaptée à transformer au moins un modèle définissant une deuxième portion de l'interface utilisateur en ladite deuxième portion du code UI ; et generating a second portion of the UI code by using one or more second transformations selected on the basis of one or more of the characteristics, said one or more second transformations being adapted to transform at least one model defining a second portion of the interface; user in said second portion of the UI code; and
- en assemblant au moins les première et deuxième portions pour générer le code UI ; et by assembling at least the first and second portions to generate the UI code; and
exécuter le code UI par le dispositif d'utilisateur. execute the UI code by the user device.
17. Procédé selon la revendication 16, comprenant en outre le calcul d'une distance entre le contexte courant et un contexte associé avec un ou plusieurs autres codes UI générés précédemment, et la sélection de l'un des autres codes UI selon cette distance. The method of claim 16, further comprising calculating a distance between the current context and a context associated with one or more other UI codes generated previously, and selecting one of the other UI codes according to that distance.
18. Procédé selon la revendication 16 ou 17, dans lequel l'assemblage d'au moins les première et deuxième portions pour générer le code UI comprend la génération d'un code d' entête et d'un code de terminaison du code UI .  The method of claim 16 or 17, wherein assembling at least the first and second portions to generate the UI code comprises generating a header code and a termination code of the UI code.
19. Procédé selon l'une quelconque des revendications 16 à 18, dans lequel la première portion de code correspond à une fenêtre élémentaire de l'interface d'utilisateur, et dans lequel la génération de la première portion de code comprend la génération d'un entête de code d'un élément de GUI (interface d'utilisateur graphique) et d'une terminaison de code d'un élément de GUI .  The method of any one of claims 16 to 18, wherein the first code portion corresponds to a basic window of the user interface, and wherein the generation of the first code portion comprises the generation of a code header of a GUI element (graphical user interface) and a code termination of a GUI element.
20. Support de stockage lisible par un ordinateur mémorisant sur lui des instructions qui, lorsqu'elles sont exécutées par un dispositif de traitement, mettent en œuvre le procédé de l'une quelconque des revendications 16 à 19. 20. A computer-readable storage medium storing instructions on the computer which, when performed by a processing device, implement the method of any one of claims 16 to 19.
PCT/FR2016/051742 2015-07-07 2016-07-07 System and method for the adaptation of a user interface WO2017006066A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP16750941.3A EP3320419A1 (en) 2015-07-07 2016-07-07 System and method for the adaptation of a user interface

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1556433A FR3038744B1 (en) 2015-07-07 2015-07-07 SYSTEM AND METHOD FOR MAGNETIC ADAPTATION OF A USER INTERFACE
FR1556433 2015-07-07

Publications (1)

Publication Number Publication Date
WO2017006066A1 true WO2017006066A1 (en) 2017-01-12

Family

ID=54848665

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2016/051742 WO2017006066A1 (en) 2015-07-07 2016-07-07 System and method for the adaptation of a user interface

Country Status (3)

Country Link
EP (1) EP3320419A1 (en)
FR (1) FR3038744B1 (en)
WO (1) WO2017006066A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004044735A2 (en) * 2002-11-14 2004-05-27 Sap Ag Modeling system for graphic user interface
WO2008121712A1 (en) * 2007-03-28 2008-10-09 Honeywell International Inc. A method and system for automatically generating an adaptive user interface for a physical environment
EP2610743A1 (en) * 2011-12-29 2013-07-03 Thales Method for simulating the human-machine interface of an apparatus.

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004044735A2 (en) * 2002-11-14 2004-05-27 Sap Ag Modeling system for graphic user interface
WO2008121712A1 (en) * 2007-03-28 2008-10-09 Honeywell International Inc. A method and system for automatically generating an adaptive user interface for a physical environment
EP2610743A1 (en) * 2011-12-29 2013-07-03 Thales Method for simulating the human-machine interface of an apparatus.

Also Published As

Publication number Publication date
FR3038744B1 (en) 2017-08-11
FR3038744A1 (en) 2017-01-13
EP3320419A1 (en) 2018-05-16

Similar Documents

Publication Publication Date Title
US10956128B2 (en) Application with embedded workflow designer
CN108292206B (en) Workflow development system with easy-to-use features
CN102016905B (en) Intelligent autocompletion
US8966405B2 (en) Method and system for providing user interface representing organization hierarchy
CN102483698B (en) The client tier checking of dynamic WEB application
US20120166522A1 (en) Supporting intelligent user interface interactions
US20130212534A1 (en) Expanding thumbnail with metadata overlay
KR102518172B1 (en) Apparatus and method for providing user assistance in a computing system
WO2013140076A2 (en) Method and system for developing applications for consulting content and services on a telecommunications network
CN102124460B (en) Standard schema and user interface for website maps
US10997359B2 (en) Real-time cognitive modifying a mark-up language document
US10430256B2 (en) Data engine
US20080288865A1 (en) Application with in-context video assistance
US20210027643A1 (en) Augmented reality tutorial generation
EP2187321B1 (en) Method and system for editing an object represented on a web page
Rodrigues et al. New trends on ubiquitous mobile multimedia applications
US20190250999A1 (en) Method and device for storing and restoring a navigation context
US20210342130A1 (en) Systems and methods for software application generation and delivery
EP3320419A1 (en) System and method for the adaptation of a user interface
US20140237368A1 (en) Proxying non-interactive controls to enable narration
JP2023540479A (en) Augmenting speech recognition and interlaced audio input using data analysis
US20150378530A1 (en) Command surface drill-in control
US20230269322A1 (en) Cross-channel configurable navigation
US20220180452A1 (en) Automated Web Content Publishing
Delfos et al. Enhancing accessibility to web mapping systems with technology-aligned adaptive profiles

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16750941

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016750941

Country of ref document: EP