Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR CONSTRUCTING A KNOWLEDGE BASE FOR THE PURPOSE OF MAKING CROSS-FUNCTIONAL USE OF THE APPLICATION FUNCTIONS OF A PLURALITY OF SOFTWARE ITEMS
Document Type and Number:
WIPO Patent Application WO/2024/033192
Kind Code:
A1
Abstract:
The invention relates to a method for constructing a knowledge base, implemented by a construction device during use of an electronic terminal, and characterized in that the method comprises: when a system event on said electronic terminal is detected - a first step of obtaining at least one position datum in relation to a cursor, said cursor being associated with at least one pointing peripheral, and at least one digital image of a snapshot of at least part of the output of at least one screen of said terminal; - a second step of obtaining at least one system datum from said electronic terminal; - a third step of obtaining at least one context datum based on analysis of all or part of said digital image; - a step of updating said knowledge base with said at least one position datum, system datum and context datum.

Inventors:
MARIE TIPHAINE (FR)
GIDON MARYLINE (FR)
LETELLIER JEAN FRANCOIS (FR)
BOYD ALAN GLEN (FR)
Application Number:
PCT/EP2023/071468
Publication Date:
February 15, 2024
Filing Date:
August 02, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
G06F11/34; G06F3/048; G06F8/38; G06F9/451; G06F11/30
Foreign References:
US20160044135A12016-02-11
FR3117240A12022-06-10
US20170060368A12017-03-02
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de construction d’une base de connaissance, ledit procédé étant mis en œuvre par un dispositif de construction au cours d’une utilisation d’un terminal électronique (101), et caractérisé en ce que le procédé comprend : lorsqu’un évènement système sur ledit terminal électronique est détecté

- une première étape d’obtention (GET1) d’au moins une donnée de position d’un curseur, ledit curseur étant associé à au moins un périphérique de pointage (103a, 103b) dudit terminal électronique, et d’au moins une image numérique d’une capture d’au moins une partie du rendu d’au moins un écran dudit terminal électronique ;

- une deuxième étape d’obtention (GET2) d’au moins une donnée système en provenance dudit terminal électronique ;

- une troisième étape d’obtention (GET3) d’au moins une donnée de contexte en fonction d’une analyse de tout ou partie de ladite image numérique ;

- une étape de mise à jour (UPDATE) de ladite base de connaissance avec lesdites au moins une donnée de position, de système et de contexte.

2. Procédé selon la revendication 1 caractérisé en ce que ledit évènement système est généré par au moins un périphérique de pointage (103 a, 103b) associé audit terminal électronique (101).

3. Procédé selon la revendication 1 caractérisé en ce que la capture porte sur une fenêtre applicative active.

4. Procédé selon la revendication 1 caractérisé en ce que l’obtention de ladite au moins une donnée de contexte est réalisée via une technique de reconnaissance optique de caractères et/ou une technique de vision par ordinateur.

5. Procédé selon la revendication 1 caractérisé en ce que l’étape de mise à jour est conditionnée par la valeur d’un score de confiance associé à ladite au moins une donnée de contexte.

6. Procédé selon la revendication 1 caractérisé en ce que ladite au moins une donnée système comprend au moins une commande informatique exécutable par le système d’exploitation dudit terminal électronique.

7. Procédé selon la revendication 1 caractérisé en ce que ladite donnée de contexte appartient au groupe comprenant au moins :

- un libellé ; - une taille de fenêtre graphique ;

- une position au sein dudit écran ;

- un texte ;

- une image.

8. Dispositif de construction d’une base de connaissance mis en œuvre au cours d’une utilisation d’un terminal électronique, et caractérisé en ce que le dispositif comprend :

- un premier module d’obtention (OBT1) d’au moins une donnée de position d’un curseur, ledit curseur étant associé audit au moins un périphérique de pointage (103a, 103b) dudit terminal électronique, et d’au moins une image numérique d’une capture d’au moins une partie du rendu d’au moins un écran dudit terminal électronique ;

- un deuxième module d’obtention (OBT2) d’au moins une donnée système en provenance dudit terminal électronique ;

- un troisième module d’obtention (OBT3) d’au moins une donnée de contexte en fonction d’une analyse de tout ou partie de ladite image numérique ;

- un module de mise à jour (MAJ) de ladite base de connaissance avec lesdites au moins une donnée de position, de système et de contexte.

9. Serveur, passerelle ou terminal caractérisé en ce qu’il comporte un dispositif de construction selon la revendication 8.

10. Programme d’ordinateur comportant les instructions pour l’exécution du procédé de construction selon l’une quelconque des revendications 1 à 7, lorsque le programme est exécuté par un processeur.

Description:
DESCRIPTION

Titre : Procédé et dispositif de construction d’une base de connaissance dans le but d’utiliser de manière transverse des fonctions applicatives d’une pluralité de logiciels.

1. Domaine de l'invention

L’invention se situe dans le domaine des terminaux électroniques aptes à exécuter une pluralité d’applications. Plus particulièrement, l’invention se rapporte aux techniques permettant, par exemple, l’exécution de fonctions d’une ou de plusieurs applications de manière transverse, c’est-à-dire sans dépendre d’une application donnée.

2. Art Antérieur

Les terminaux électroniques (ordinateurs, smartphone, tablette, etc.) peuvent disposer d’écrans de plus en plus grands, et de capacités de calcul leur permettant d’exécuter simultanément de nombreuses applications informatiques.

Dans ce contexte, chaque application peut proposer une expérience utilisateur qui lui est propre. Un inconvénient est que cela peut induire un manque d’homogénéité entre les interfaces utilisateur des applications exécutées par le terminal électronique.

En outre, certaines applications évoluent régulièrement afin d’offrir de nouvelles fonctionnalités. C’est par exemple le cas lorsque les applications proposent des APIs (« Application Programming Interface » en anglais ou « interface de programmation d’application » en français) permettant le développement de modules d'extension / externes (plugin en anglais) aptes à fournir de nouvelles fonctionnalités. Un inconvénient est que les interfaces utilisateur des applications sont de plus en plus riches / complexes et par conséquent difficiles à appréhender pour l’utilisateur.

Ainsi, lorsqu’un utilisateur utilise pour la première fois une application, il n’est pas rare que celui-ci ait besoin d’un temps d’adaptation plus ou moins long avant de pouvoir s’en servir correctement.

Il existe donc un besoin pour une solution simple permettant à un utilisateur et / ou à une application dédiée de piloter avec une expérience utilisateur unifiée, une pluralité d’applications exécutées sur un terminal électronique, la solution devant être indépendante des applications à piloter. 3. Exposé de l'invention

L'invention vient améliorer l'état de la technique et propose à cet effet un procédé de construction d’une base de connaissance, ledit procédé étant mis en œuvre par un dispositif de construction au cours d’une utilisation d’un terminal électronique, et caractérisé en ce que le procédé comprend : lorsqu’un évènement système sur ledit terminal électronique est détecté

- une première étape d’obtention d’au moins une donnée de position d’un curseur, ledit curseur étant associé à au moins un périphérique de pointage dudit terminal électronique, et d’au moins une image numérique d’une capture d’au moins une partie du rendu d’au moins un écran dudit terminal électronique ;

- une deuxième étape d’obtention d’au moins une donnée système en provenance dudit terminal électronique ;

- une troisième étape d’obtention d’au moins une donnée de contexte en fonction d’une analyse de tout ou partie de ladite image numérique ;

- une étape de mise à jour de ladite base de connaissance avec lesdites au moins une donnée de position, de système et de contexte.

Ainsi, la solution proposée repose sur une approche nouvelle et inventive consistant à construire une base de connaissance en exploitant à la fois les évènements système d’un terminal électronique déclenchés par un utilisateur mais aussi les technologies de capture d’écran et d’analyse d’image afin d’établir automatiquement une table de correspondances entre chaque fonction de chaque applicatif (application informatique) utilisé par l’utilisateur et les actions système associées (actions exécutées par le terminal électronique).

Un avantage de la solution proposée est qu’elle est simple à implémenter puisqu’il suffit, outre le terminal dont dispose déjà l’utilisateur, d’une machine de calcul (éventuellement celle déjà présente dans le terminal).

Un autre avantage de la solution proposée est qu’elle permet une construction générique de la base de connaissance en s’affranchissant de l’accès aux API de chaque application exécutée par le terminal. En d’autres termes, du fait qu’elle n’est pas basée sur les APIs d’une application exécutée par le terminal, la solution proposée permet la création d’une base de connaissance indépendante (« agnostique ») de cette application, en ce qui concerne la manière de collecter des informations liées à l’utilisation de cette application. Donc la solution proposée nécessite peu de contrainte de réalisation.

Un autre avantage de la solution proposée est qu’une application informatique configurée pour utiliser le contenu de cette base de connaissance (application OTT pour Over The TOP en anglais ou application dite de contournement) peut être utilisée pour piloter de manière transverse, via par exemple une même interface homme-machine, les différentes applications informatiques présentes sur le terminal électronique. En effet, lorsque l’utilisateur demande l’exécution d’une action / fonction sur son terminal via l’application OTT, par exemple l’action de lancer une application de téléphonie IP (Internet Protocol), celle-ci consulte la base de connaissance puis récupère en fonction de l’action demandée (par exemple du libellé) les informations nécessaires à l’exécution de l’action. Les informations peuvent comprendre à : la position de l’icône d’une application de téléphonie IP, c’est-à-dire la position du curseur obtenue et sauvegardée au sein de la base de connaissance lors d’une précédente utilisation/ exécution de l’application de téléphonie IP (par exemple lorsque l’utilisateur sélectionne / clique sur l’icône de l’application de téléphonie IP avec une souris connectée au terminal électronique). Selon un mode de réalisation particulier, la position du curseur sauvegardée au sein de la base de connaissance correspond à la position de l’icône lorsque l’utilisateur relâche l’appui / la pression sur un bouton de la souris de son terminal électronique. Ce mode réalisation permet, lorsque l’utilisateur déplace l’icône de l’application de téléphonie IP, de mettre à jour la base de connaissance avec la nouvelle position de l’icône. En effet, le déplacement d’une icône au niveau d’un écran d’un terminal électronique est par exemple réalisé via un clic non relâché, c’est à dire maintenu enfoncé, sur un bouton de la souris du terminal électronique additionné à un déplacement du curseur jusqu’à la position souhaitée. Une fois la position atteinte, l’utilisateur relâche la pression exercée sur le bouton de la souris afin que l’icône se place à la position souhaitée ;

- une donnée de contexte comme par exemple la taille et la position de l’interface utilisateur de l’application de téléphonie à exécuter (paramètres d’exécution) ; etc. Une fois ces données récupérées, l’application OTT peut alors exécuter l’application de téléphonie, par exemple, en simulant un clic au niveau de l’icône de l’application de téléphonie IP. L’application OTT peut également fournir des paramètres d’affichages à l’application de téléphonie IP une fois que celle-ci est démarrée.

En d’autres termes, l’application informatique OTT n’a pas à être spécifique à une application et peut coopérer avec la base de connaissance générique, qui peut contenir des informations liées à plusieurs applications (même si dans une implémentation particulière, elle peut aussi contenir des informations liées à une seule application).

En outre, même si la ou les applications évoluent (par exemple via une mise à jour et un changement de version), ou encore si l’utilisateur ajoute une application sur son terminal, la solution proposée continue de fonctionner sans nécessiter de mise à jour, puisqu’elle s’appuie sur des extractions d’écran (partielles ou totales) et /ou d’évènements système.

Par ailleurs, la base de connaissance s’enrichit au fil de l’eau grâce aux actions de l’utilisateur réalisées au niveau des applicatifs du terminal électronique.

A noter que le procédé peut, lors de l’obtention des données de contextes et/ou des données systèmes, détecter que l’application utilisée par l’utilisateur correspond à l’application OTT. Dans ce cas, le procédé peut ne pas mettre à jour la base de connaissance.

Selon un mode de réalisation particulier, l’application OTT peut piloter de manière autonome et transverse les fonctions des applicatifs du terminal électronique en fonction de routines informatiques prédéterminées (une séquence d’instructions informatiques). Une routine peut par exemple comprendre la détection d’un évènement particulier obtenu depuis le terminal électronique tel que la détection d’une action d’un utilisateur, le dépassement d’un seuil ou d’une durée, etc.

On entend par terminal électronique tout dispositif apte au moins à gérer un périphérique d’affichage et/ou un périphérique de pointage / d’entrée (ordinateur personnel, smartphone, tablette électronique, télévision, ordinateur de bord d’une voiture, objets connectés, etc.). On entend par évènement système un évènement généré par un système d’exploitation d’un terminal électronique. L’évènement système est par exemple généré lors de la réception d’un message ou bien à la suite d’une action d’un utilisateur au niveau d’un périphérique du terminal électronique. Un événement système peut par exemple être déclenché à la suite de l’exécution d’une commande informatique (initiée ou non pas l’utilisateur).

On entend par donnée système une donnée par exemple obtenue depuis le système d’exploitation du terminal électronique.

Selon un mode de mise en œuvre particulier de l'invention, un procédé tel que décrit ci- dessus est caractérisé en ce que ledit évènement système est généré par au moins un périphérique de pointage associé audit terminal électronique.

Dans ce mode de réalisation, le procédé est déclenché lorsque l’utilisateur interagit et réalise une action (par exemple un clic) au niveau d’un périphérique de pointage associé au terminal électronique.

On entend par périphérique de pointage tout dispositif d’entrée permettant à un utilisateur d’entrer des données de position (coordonnées / données spatiales), par exemple via un curseur, et /ou d’action, par exemple via un clic, au niveau d’un terminal électronique. Un périphérique de pointage est par exemple un pavé tactile, une souris, un trackball, un trackpoint ou encore un joystick.

Selon un mode de mise en œuvre particulier de l'invention, un procédé tel que décrit ci- dessus est caractérisé en ce que la capture porte sur une fenêtre applicative active.

Dans ce mode de réalisation, le procédé capture une partie de l’écran qui correspond à la fenêtre applicative active affichée à l’écran. Une fenêtre applicative est une fenêtre liée à une exécution d’une application par le terminal. Une fenêtre applicative active est une fenêtre applicative qui est en cours d’utilisation par l’utilisateur, c’est-à-dire qui détient le focus. Ce mode de réalisation s’applique notamment dans le cas où le terminal permet le multifenêtrage (c'est-à-dire peut afficher simultanément plusieurs fenêtres applicatives).

Dans le cas où le terminal ne peut afficher qu’une seule fenêtre applicative à la fois (cas d’un terminal de type smartphone par exemple), la fenêtre applicative correspond à la fenêtre applicative active. La capture est alors réalisée sur la totalité de l’écran du terminal.

A noter que le terminal peut être associé ou comprendre un ou plusieurs périphériques d’affichage.

Selon un mode de mise en œuvre particulier de l'invention, un procédé tel que décrit ci- dessus est caractérisé en ce que l’obtention de ladite au moins une donnée de contexte est réalisée via une technique de reconnaissance optique de caractères et/ou une technique de vision par ordinateur.

De cette façon, la base de connaissance peut être enrichie avec deux types d’informations : celles extraites du texte et celles extraites des éléments d’image. On couvre ainsi la majeure partie, voire dans certains cas la totalité, des données utiles comprises dans l’image.

Selon un mode de mise en œuvre particulier de l'invention, un procédé tel que décrit ci- dessus est caractérisé en ce que l’étape de mise à jour est conditionnée par la valeur d’un score de confiance associé à ladite au moins une donnée de contexte.

De cette façon, la qualité des informations collectées et stockées dans la base de connaissance s’en trouve améliorée.

Selon un mode de mise en œuvre particulier de l'invention, un procédé tel que décrit ci- dessus est caractérisé en ce que ladite au moins une donnée système comprend au moins une commande informatique exécutable par le système d’exploitation dudit terminal électronique.

De cette façon, les informations collectées et stockées dans la base de connaissance comprennent des commandes systèmes aptes à être rejouées par une application informatique OTT. Par exemple, lorsque l’utilisateur souhaite programmer l’extinction de son ordinateur Windows 10 ™ via l’application OTT, celle-ci obtient depuis la base de connaissance la commande associée (shutdown -s -f -t xxx où « xxx » correspond au délai souhaité). Bien évidement cela suppose que cette action a déjà été réalisée au préalable par l’utilisateur via une autre application et ajoutée à la base de connaissance. Un avantage de ce mode de réalisation est qu’il est possible de piloter une application et/ou déclencher une fonction informatique même lorsque celle-ci n’est pas accessible via l’interface homme-machine restituée par le terminal électronique. En effet, l’exécution de la commande permet d’exécuter la fonction demandée par l’utilisateur sans avoir à simuler un clic de souris au niveau du bouton graphique ou d’un menu associé à la fonction demandée. La donnée système peut également comprendre le nom de l’application active (c’est-à-dire l’application en cours d’utilisation par l’utilisateur). Le nom de l’application est par exemple obtenu du système d’exploitation du terminal électronique via une commande système ou bien via une API spécifique telle que la commande JavaScript Node .j s

« ,getActiveWindow() » du gestionnaire de paquets « npm ». Il s’agit généralement du nom du fichier exécutable de l’application, c’est-à-dire du fichier comprenant le code informatique permettant l’exécution de l’application par le terminal électronique. A noter que le nom de l’exécutable peut être comparé à des éléments d’une liste comprenant les noms commerciaux des applications. Ainsi, il est possible, grâce au nom de l’exécutable, d’obtenir le nom de l’application dont l’interface graphique est restituée par un écran du terminal électronique.

Selon un mode de mise en œuvre particulier de l'invention, un procédé tel que décrit ci- dessus est caractérisé en ce que ladite donnée de contexte appartient au groupe comprenant au moins :

- un libellé ;

- une taille de fenêtre graphique ;

- une position au sein dudit écran ;

- un texte ;

- une image.

Ainsi, la solution proposée peut tenir compte de la grande diversité des données obtenues en résultat de l’analyse de l’image numérique. Elle est efficace même si l’utilisateur manipule une grande quantité d’applications. Concrètement, la donnée de contexte peut comprendre la version de l’application, le nom de l’application / de la fonction informatique, la description de la fonction, la position au sein de l’image d’un élément graphique et / ou d’un libellé associé à la fonction, et plus généralement n’importe quelle information associée à l’application et / ou la fonction informatique utilisée par l’utilisateur au niveau du terminal électronique. La donnée de contexte peut également comprendre un raccourci clavier associé à la fonction utilisée et / ou une image symbolisant la fonction.

La donnée de contexte peut également comprendre la nature / le type de la fenêtre graphique affichée par une application informatique au niveau d’un écran du terminal électronique. En effet, il est par exemple possible de distinguer, grâce à la technique de vision par ordinateur, une fenêtre de visioconférence d’une fenêtre de messagerie instantanée affichées par une même application (par exemple Microsoft Teams). Ainsi, la nature / type de la fenêtre peut correspondre à la fonction principale rendue par la fenêtre graphique (édition d’un courriel, visioconférence, messagerie instantanée, base documentaire, etc.).

Cette liste de type de donnée de contexte n’est pas exhaustive.

L'invention concerne également un dispositif de construction d’une base de connaissance mis en œuvre au cours d’une utilisation d’un terminal électronique, et caractérisé en ce que le dispositif comprend :

- un premier module d’obtention d’au moins une donnée de position d’un curseur, ledit curseur étant associé audit au moins un périphérique de pointage dudit terminal électronique, et d’au moins une image numérique d’une capture d’au moins une partie du rendu d’au moins un écran dudit terminal électronique ;

- un deuxième module d’obtention d’au moins une donnée système en provenance dudit terminal électronique ;

- un troisième module d’obtention d’au moins une donnée de contexte en fonction d’une analyse de tout ou partie de ladite image numérique ;

- un module de mise à jour de ladite base de connaissance avec lesdites au moins une donnée de position, de système et de contexte.

Le terme module peut correspondre aussi bien à un composant logiciel qu’à un composant matériel ou un ensemble de composants matériels et logiciels, un composant logiciel correspondant lui -même à un ou plusieurs programmes ou sous-programmes d’ordinateur ou de manière plus générale à tout élément d’un programme apte à mettre en œuvre une fonction ou un ensemble de fonctions telles que décrites pour les modules concernés. De la même manière, un composant matériel correspond à tout élément d’un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble de fonctions pour le module concerné (circuit intégré, carte à puce, carte à mémoire, etc.).

L’invention concerne également un serveur, une passerelle ou un terminal caractérisé en ce qu’il comporte un dispositif de construction tel que décrit ci-dessus.

L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé ci-dessus selon l'un quelconque des modes particuliers de réalisation décrits précédemment, lorsque ledit programme est exécuté par un processeur. Le procédé peut être mis en œuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

L'invention vise aussi un support d'enregistrement ou support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci- dessus. Les supports d'enregistrement mentionnés ci-avant peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur. D'autre part, les supports d'enregistrement peuvent correspondre à un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Les programmes selon l'invention peuvent être en particulier téléchargés sur un réseau de type Internet.

Alternativement, les supports d'enregistrement peuvent correspondre à un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.

Ce dispositif de construction et ce programme d'ordinateur présentent des caractéristiques et avantages analogues à ceux décrits précédemment en relation avec le procédé de construction.

4. Liste des figures D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels :

[Fig 1] La figure 1 illustre un exemple d'environnement de mise en œuvre de l'invention selon un mode particulier de réalisation de l'invention,

[Fig 2] La figure 2 illustre l’architecture d’un dispositif adapté pour la mise en œuvre du procédé de construction, selon un mode particulier de réalisation de l’invention ;

[Fig 3] La figure 3 illustre les principales étapes du procédé de construction selon un mode particulier de réalisation de l’invention.

5. Description d'un mode de réalisation de l'invention

La figure 1 illustre un exemple d'environnement de mise en œuvre de l'invention selon un mode particulier de réalisation. L’environnement représenté en figure 1 comprend au moins un terminal 101 qui intègre un dispositif de construction apte à mettre en œuvre le procédé de construction selon la présente invention.

Le procédé peut fonctionner de manière permanente et autonome dès l’activation du dispositif ou bien à la suite d’une action utilisateur.

Le terminal 101 est par exemple un terminal de type smartphone (téléphone intelligent en anglais), tablette, télévision connectée, objet connecté, ordinateur de bord d’une voiture, ordinateur personnel, serveur, passerelle, etc.

Un ou plusieurs périphériques de restitution graphique/d’affichage (105) peuvent être compris par le terminal 101 ou bien connectés (connecté de façon filaire via un câble VGA, HDMI, USB, etc. ou bien sans fil via la technologie WiFi®, Bluetooth®, etc.). Ce ou ces périphériques de restitution peuvent être un écran ou un vidéo projecteur.

Selon un mode particulier de réalisation de l'invention, le ou les périphériques de restitution graphique peuvent être connectés au terminal 101 via le réseau 102.

De même, un ou plusieurs périphériques d’entrée / de pointage (103a, 103b) peuvent être compris par le terminal 101 ou bien connectés (connectés de façon filaire via un câble VGA, HDMI, USB, etc. ou bien sans fil via la technologie WiFi®, Bluetooth®, etc.). Ce ou ces périphériques de pointage peuvent être un clavier, une souris, une surface tactile, une caméra (104), un micro ou bien tout autre périphérique apte à fournir des données de localisation et d’action au niveau d’un élément affiché par un périphérique d’affichage du terminal 101.

La figure 2 illustre un dispositif (S) configuré pour mettre en œuvre le procédé de construction selon un mode particulier de réalisation de l'invention. Le dispositif (S) a l'architecture classique d'un ordinateur, et comprend notamment une mémoire MEM, une unité de traitement UT, équipée par exemple d'un processeur PROC, et pilotée par le programme d'ordinateur PG stocké en mémoire MEM. Le programme d'ordinateur PG comprend des instructions pour mettre en œuvre les étapes du procédé de construction tel que décrit ultérieurement à l’appui de la figure 3, lorsque le programme est exécuté par le processeur PROC.

A l'initialisation, les instructions de code du programme d'ordinateur PG sont par exemple chargées dans une mémoire avant d'être exécutées par le processeur PROC. Le processeur PROC de l'unité de traitement UT met notamment en œuvre les étapes du procédé de construction selon l'un quelconque des modes particuliers de réalisation décrits en relation avec la figure 3 et selon les instructions du programme d'ordinateur PG.

Le dispositif (S) comprend un module d’obtention OBT1 apte à obtenir au moins une donnée de position d’un curseur associé à un périphérique de pointage /d’entrée. La donnée de position peut être obtenue à la suite d’une action réalisée au niveau du périphérique de pointage. Cette action peut être un mouvement (par exemple un mouvement symbolisant une croix réalisée à l’aide du curseur du périphérique de pointage, les coordonnées pouvant alors correspondre aux coordonnées du point d’intersection des deux droites formant la croix), un clic (les coordonnées pouvant correspondre aux coordonnées du curseur du périphérique de pointage au moment du clic, c’est-à-dire lorsqu’une pression est exercée ou bien relâchée sur un bouton du périphérique de pointage), un appui long (les coordonnées pouvant correspondre aux coordonnées du curseur du périphérique de pointage au moment de l’appui long, par exemple, un appui de plusieurs secondes), etc.

Le dispositif (S) comprend un module d’obtention OBT2 apte à obtenir moins une donnée système en provenance du système d’exploitation du terminal 101. La donnée système peut être une commande, le nom d’un processus informatique exécuté par le système d’exploitation du terminal 101 ou bien n’importe quelle information obtenue et / ou générée par le système d’exploitation du terminal 101. Le dispositif (S) comprend en outre un module d’obtention OBT3 apte à obtenir au moins une donnée de contexte comme résultat d’une analyse d’au moins une image numérique d’une capture d’au moins une partie du rendu d’au moins un écran du terminal 101. La technique employée pour l’obtention d’une donnée de contexte peut être une technique de reconnaissance optique de caractères et/ou de vision par ordinateur.

Le dispositif (S) comprend également un module de mise à jour MAJ apte à alimenter et à mettre à jour une base de connaissance comme une base de données centralisée et/ou distribuée ou bien un ou plusieurs fichiers.

La figure 3 illustre les étapes du procédé de construction d’une base de connaissance (par exemple une base de données) selon un mode particulier de réalisation de l’invention. Une fois cette base de connaissance suffisamment riche d’informations, une application OTT peut l’exploiter afin d’offrir des services innovants tels que par exemple une interface unique apte à piloter les applications informatiques installées sur le terminal électronique. L’application OTT peut également piloter de manière autonome et transverse les fonctions des applicatifs du terminal électronique en fonction de routines informatiques prédéterminées (une séquence d’instructions).

Le procédé est mis en œuvre par un dispositif de construction. Le dispositif de construction mettant en œuvre le procédé est intégré dans, ou confondue avec, le terminal de l’utilisateur 101 (ce terminal est par exemple un ordinateur personnel fixe ou portable, une tablette numérique, un assistant numérique personnel, un smartphone, un poste de travail, un ordinateur de bord, etc.). Dans une deuxième implémentation, le dispositif de construction mettant en œuvre le procédé est intégré dans, ou confondue avec, un autre dispositif électronique qui coopère avec le terminal de l’utilisateur. Cet autre dispositif est par exemple un serveur, une passerelle domestique, un smartphone, un objet connecté, etc.

Selon un autre mode de réalisation, le dispositif de construction peut être situé dans le réseau et/ou réparti sur une ou plusieurs machines informatiques telles que des ordinateurs, des terminaux ou des serveurs.

Dans ce mode de réalisation particulier, on suppose que le terminal de l’utilisateur permet le multifenêtrage, c'est-à-dire l’affichage simultané de plusieurs fenêtres applicatives sur l’écran du terminal. Comme déjà mentionné plus haut, une fenêtre applicative est une fenêtre liée à l’exécution d’une application par le terminal. On suppose également que le système d’exploitation du terminal permet de récupérer, et fournir au dispositif de construction qui implémente le présent procédé, certains événements système comme la position d’un curseur d’un périphérique de pointage associé au terminal de l’utilisateur, le nom d’un processus informatique ou une commande informatique qui a récemment été exécutée par le terminal.

Lors de la première étape (GET1) le procédé obtient une donnée de position d’un curseur en provenance d’un dispositif / périphérique de pointage (un pavé tactile, une souris, un trackball, un trackpoint, un joystick ou encore depuis une caméra (via un procédé d’oculométrie ou « Eye tracking » en anglais)).

Cette donnée de position peut correspondre à des coordonnées en pixel ou bien à un ratio (position relative par exemple en pourcentage) de la taille de l’écran et / ou d’une fenêtre graphique lorsqu’un évènement système particulier est détecté. La donnée de position est par exemple obtenue à la suite d’une action réalisée par un utilisateur du terminal 101 au niveau d’un périphérique d’entrée. Cette action peut être un clic réalisé via une souris, l’enfoncement d’une touche particulière d’un clavier, une commande de sélection énoncée par l’utilisateur, un geste particulier capté par une caméra comprise ou associée au terminal 101 (par exemple la caméra 104) ou bien n’importe quelle action permettant une interaction avec une interface homme-machine restituée par le terminal 101 via l’écran 105.

Lors de cette étape le procédé obtient également une image représentative du contenu affiché par un périphérique d’affichage (105) du terminal 101. L’image est par exemple obtenue en provenance d’un logiciel exécuté par le terminal 101 apte à capturer le contenu graphique du périphérique d’affichage 105 du terminal 101.

Alternativement, l’image est obtenue en provenance d’un terminal tiers (par exemple une caméra ou un smartphone) positionné de façon à capturer le contenu affiché par un périphérique d’affichage (105) du terminal 101. Ce dernier cas peut impliquer la transmission de l’image, par le terminal tiers, à destination du terminal 101.

Alternativement, le procédé génère une image représentative du contenu graphique du périphérique d’affichage 105 du terminal 101.

Selon un mode particulier de réalisation de l'invention, l’image obtenue correspond à une partie du contenu restitué par le périphérique d’affichage 105, par exemple, la fenêtre graphique active (la fenêtre qui détient le focus). Lors de la deuxième étape (GET2) le procédé obtient une donnée système en provenance du système d’exploitation du terminal 101. Cette donnée système peut comprendre le nom d’un processus en cours d’exécution et / ou une commande système interprétable par le système d’exploitation du terminal 101 et apte à déclencher une action / un évènement au niveau du terminal 101 (par exemple le lancement ou la fermeture d’un logiciel, l’exécution d’une fonction, etc.). Cette donnée système peut également comprendre le nom de l’application active (application qui a le focus) ainsi que des paramètres d’exécution comme la taille de la fenêtre graphique active de l’application et sa position au sein de l’écran.

Selon un mode particulier de réalisation de l'invention, le procédé peut obtenir la donnée système depuis un logiciel et / ou un dispositif tiers.

A l’étape (GET3) le procédé analyse l’image obtenue lors de l’étape GET1. L’analyse peut comprendre une reconnaissance optique de caractères appliquée à l’image. La reconnaissance optique de caractères permet d’obtenir une retranscription du texte contenu dans l’image sous forme d’une suite / séquence de caractères.

L’analyse peut en outre comprendre une reconnaissance via une technique de vision par ordinateur. Cette technique permet d’extraire des informations d’éléments graphiques contenus au sein de l’image. Par exemple la reconnaissance de texte, la reconnaissance d’un objet, la reconnaissance d’un élément spécifique (image représentant un animal, un véhicule, etc.). Ces techniques (reconnaissance optique de caractères et vision par ordinateur) peuvent être appliquées à une partie de l’image (par exemple centrée en fonction de la donnée de position obtenue lors de l’étape GET1).

Dans une mise en œuvre particulière, chaque élément de texte (ligne par exemple) ou d’image reconnu par une technique de reconnaissance (OCR, vision par ordinateur, etc.) est ignoré si un score de confiance associé à la reconnaissance est inférieur à un seuil particulier (paramètre de configuration). En d’autres termes, une information extraite n’est prise en compte que si elle est associée à un score de confiance de détection supérieur à une valeur de confiance.

Selon un mode particulier de réalisation de l'invention, la reconnaissance optique de caractères et/ ou la vision par ordinateur est/sont réalisée(s) par un logiciel tiers. Le ou les résultats, par exemple, la retranscription du texte (suite / séquence de caractères et leur position associée) et/ou les éléments graphiques reconnus, sont émis par le logiciel tiers à destination du procédé. Selon un mode particulier de réalisation de l'invention, le procédé réalise la reconnaissance optique de caractères et/ ou la vision par ordinateur au niveau de l’image.

Une fois l’analyse réalisée le procédé obtient en résultat un ensemble de données de contexte. Ces données peuvent appartenir au groupe comprenant :

- un texte (par exemple la description d’une fonction donnée via une pop-up ou une infobulle) ;

- un libellé (nom de la fonction et/ou un raccourci clavier) associé à un élément graphique (bouton, menu, fenêtre) ; la taille d’un élément graphique (bouton, fenêtre, menu, texte, libellé, etc.) au sein de l’image ; la position d’un élément graphique au sein de l’image ;

- une image associée à une fonction de l’application (par exemple une image d’un élément graphique (bouton, menu, etc.) apte à déclencher l’exécution d’une fonction suite à une action utilisateur (clic, commande vocale, un appui sur une touche d’un clavier, etc.) ; etc.

Le libellé peut également comprendre la nature / le type de la fonction principale rendue par une fenêtre graphique affichée et/ou active (par exemple : fenêtre « d’édition de courriels », « de visioconférence », « de messagerie instantanée », etc).

Bien entendu, la liste des données de contexte précédente n’est pas limitative, et d’autres types de données de contexte sont susceptibles d’être déterminés lors de l’analyse de l’image.

A noter que la position peut correspondre à des coordonnées en pixel ou bien à un ratio (position relative par exemple en pourcentage) de la taille de la fenêtre graphique qui contient l’élément graphique. Les informations sur la position et la taille sont formées par une position X,Y (par exemple par rapport à un angle de la fenêtre rectangulaire) et un couple (hauteur, largeur). La présente invention n’est pas limitée aux fenêtres applicatives de forme rectangulaire, mais s’applique quelle que soit la forme (ronde, ovale, etc.).

Lors de l’étape UPDATE, le procédé met à jour une base de connaissance (BDD) avec les données de position, les données système et les données de contextes. Lorsque la base de données est suffisamment remplie (c’est-à-dire que la période d’apprentissage a été suffisamment longue), celle-ci peut être utilisée par une application tierce pour piloter les applicatifs présents sur le terminal 101.

En effet, cette base de connaissance peut être considérée comme une table de correspondances entre chaque fonction de chaque applicatif (application informatique) utilisé par l’utilisateur et les actions système associées (actions exécutées par le terminal électronique) et la position de ces fonctions dans une fenêtre applicative.

Exemple d’application : Un utilisateur utilise régulièrement un logiciel de visioconférence. Le procédé de construction est par exemple exécuté lorsque l’utilisateur clique (évènement système au sens de l’invention) sur l’icône permettant de raccrocher / quitter la visioconférence. Au moment du clic le procédé peut obtenir : la position du curseur de la souris de l’ordinateur de l’utilisateur (donnée de position au sens de l’invention) ;

- une image du contenu affiché par l’écran de l’utilisateur correspondant à la fenêtre active du logiciel de visioconférence ; la position de la fenêtre et / ou la position du curseur par rapport à la fenêtre ; le nom du processus informatique qui vient de réaliser l’action. Le nom du processus peut correspondre au nom du logiciel / de la fenêtre active. Il est par exemple obtenu en scrutant l’utilisation du processeur et ou de la mémoire (variation / pic de consommation). A noter que le nom de la fenêtre active peut également être obtenu en réponse à l’exécution d’une commande émise à destination du système d’exploitation du terminal.

Le procédé réalise ensuite une analyse de l’image via une technique de reconnaissance optique de caractères et/ou de vision par ordinateur. Le procédé peut obtenir en résultat les données de contexte suivantes :

- un libellé de la fenêtre graphique active (qui peut correspondre au nom de l’application, à un numéro de version, à un titre de document, etc.) ; la taille de la fenêtre applicative active (longueur et largeur) en pixels ;

- un libellé qui se trouve à proximité de la position du curseur. Dans ce cas particulier le libellé correspond à « quitter ». A noter que le libellé correspond à la fonction invoquée par l’utilisateur lorsque celui-ci a cliqué (c’est-à-dire quitter la visioconférence). Le libellé peut également correspondre à un raccourci clavier. Dans notre cas le raccourci peut correspondre à « Ctrl + F4 » ; - une image/ icône qui se trouve à proximité de la position du curseur (c’est-à-dire associée à la fonction invoquée par l’utilisateur). Dans notre cas il peut s’agir d’un pictogramme cliquable symbolisant une croix permettant de quitter la visioconférence) ;

- un libellé indiquant le type / la nature de la fenêtre active. Dans notre cas le libellé peut correspondre à « visioconférence ».

A noter que les données obtenues peuvent être ignorées si un score de confiance associé à la reconnaissance optique de caractères et/ou à la vision par ordinateur est inférieur à un seuil particulier (paramètre de configuration). En d’autres termes, une information extraite n’est prise en compte que si elle est associée à un score de confiance de détection supérieur à une valeur de confiance.

Le procédé met à jour ou ajoute ensuite tout ou partie de ces informations dans la base de connaissance BDD (base de données distribuée ou non). Un enregistrement de la base données peut avoir un format du type :

{« fonction » , « nom de l’application », « position X », « position Y » }

Ou bien {« fonction » , « nom de l’application », « position X », « position Y », « raccourci clavier » } ;

Ou encore {« fonction » , « nom de l’application », « position X », « position Y », « type » }•

Les positions X et Y peuvent correspondent aux coordonnées relatives (par exemple en pourcentage) du curseur au sein de la fenêtre applicative active.

Dans le cas décrit ci-dessus l’enregistrement peut correspondre à :

{« quitter » , « Microsoft Teams » , « left :0.85 » , « top:0.09 » , « visioconférence »}

Bien entendu, avant d’ajouter cet enregistrement, le procédé vérifie si un enregistrement du même type n’existe pas au sein de la base de données. Cette vérification consiste à rechercher dans la base de données un enregistrement ayant une clef primaire identique. Dans notre cas la clef primaire peut correspondre à : {« fonction » , « nom de l’application »} ; à {« image/icône de la fonction » , « nom de l’application »} ; ou bien à {« fonction » , « nom de l’application », « type »}. Si un tel enregistrement existe, le procédé compare les données obtenues à celles présentes au sein de l’enregistrement. Dans le cas où les données correspondent, aucun traitement n’est réalisé par le procédé. Dans le cas contraire, le procédé met à jour les données de l’enregistrement trouvé avec les données obtenues préalablement depuis le système d’exploitation du terminal et l’analyse de l’image.

Lorsque la base de données est suffisamment remplie, celle-ci peut être utilisée par une application tierce pour piloter les applicatifs présents sur l’ordinateur de l’utilisateur.

Ainsi, lorsque l’application tierce demande à quitter une visioconférence (par exemple à la suite d’une requête utilisateur), celle-ci récupère les données pertinentes (par exemple la position de l’élément graphique cliquable correspondant à la fonction « quitter » c’est-à-dire les coordonnées X et Y) depuis la base de connaissance via par exemple une recherche ayant pour clef primaire le nom de la fonction et le nom du logiciel. L’application tierce (OTT) rejoue ensuite le clic (simule le clic de l’utilisateur) au niveau de la position (X,Y) obtenue préalablement.

Bien évidement cela suppose que la fonction invoquée par l’utilisateur au travers de l’application tierce (OTT) soit affichée au niveau de l’écran du terminal 101.

Selon un mode particulier de réalisation de l'invention, le procédé peut également rejouer le raccourci clavier correspondant à la fonction invoquée par l’utilisateur.

Selon un mode particulier de réalisation de l'invention, le procédé peut, lors de l’étape de mise à jour de la base de connaissance, ajouter un identifiant associé à la fenêtre applicative active. Cet identifiant est par exemple obtenu via l’application d’une fonction cryptographique au niveau de l’image obtenue. La fonction cryptographique peut être une fonction de hachage permettant l’obtention d’une empreinte numérique de l’image. Ce mode de réalisation permet, lorsque la clef primaire comprend cet identifiant, de distinguer une même fonction (par exemple « quitter ») qui serait présente au sein de deux fenêtres graphiques différentes d’une même application.

Cette identifiant peut également comprendre une donnée obtenue depuis le système d’exploitation du terminal 101 comme par exemple le nom et/ou le chemin d’accès (arborescence de répertoire(s) / fichier(s) inform atique(s)) à l’exécutable de la fenêtre applicative active. A noter que lorsque l’identifiant de la fenêtre correspond à une empreinte numérique, cela suppose que le contenu de la fenêtre ne varie pas.

Selon un mode particulier de réalisation de l'invention, le procédé peut obtenir depuis le système d’exploitation la commande système générée à la suite du clic souris de l’utilisateur. Cette commande peut alors être comprise dans l’enregistrement obtenu par l’application tierce (OTT). Dans le cas décrit ci-dessus l’enregistrement peut correspondre à :

{« fonction » , « nom de l’application », « position X », « position Y », « commande » }

La commande peut ensuite être exécutée par le système d’exploitation de l’ordinateur à la demande de l’application tierce (c’est-à-dire de l’utilisateur).

Ainsi, si la fonctionnalité « quitter » est disponible via un bouton dans l’interface homme- machine mais aussi via un sous-menu « option/quitter », la commande système demandant à l’application de quitter la visioconférence sera la même (peu importe si l’utilisateur a cliqué sur le bouton ou est passé par le menu/sous-menu). En outre, et contrairement à la solution décrite précédemment basée sur un rejeu d’un clic souris ou d’un raccourci clavier, il n’est pas nécessaire que la fonction invoquée par l’application tierce (OTT) soit affichée au niveau de l’écran du terminal 101.