Recording and recalling relevant information
By capturing and analyzing user interface elements from current and previous digital environments, the method provides relevant information without manual intervention, addressing the limitations of existing search engines and enhancing productivity and user experience.
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2026-04-03
AI Technical Summary
Existing search engines are limited in their ability to facilitate extensive searching across different types of servers or storage, including local, remote, and secure environments, leading to inefficiencies in finding relevant information in professional contexts.
A method and system that utilize a computer device with input and output interfaces to capture and analyze user interface elements from a current and previous digital environment, providing relevant information based on similarity, without requiring adaptation to specific applications or environments, and using machine learning to anticipate user needs.
This approach reduces the time spent searching for information, enhances user experience by providing precise and contextual information, optimizes resource use, and improves productivity by limiting manual intervention and information overload.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Recording and recalling relevant information technical field
[0001] This disclosure falls within the domain of data processing and computer systems. Previous technique
[0002] In a professional context, in particular, the time spent searching for relevant information related to a routine computer task is very important.
[0003] In professional environments, a significant amount of time is spent searching for relevant information related to ongoing tasks that is not immediately available. This information can come from various sources such as local files on a PC, remote servers, or web pages.
[0004] Although some search engines can facilitate this search task, they are often limited to specific servers and do not allow extensive searching across different types of servers or storage, whether local, remote or secure.
[0005] There is a need for a computer means to facilitate the search for relevant information. Summary
[0006] The present disclosure improves the efficiency of existing systems in the processing and management of information.
[0007] A method for providing at least one piece of information is proposed, the method comprising: obtaining, via at least one input interface of a first computer device, user interface elements of a common digital environment, and Based on a similarity between the current digital environment and a previous digital environment, the provision, by at least one output interface of a second computing device, of at least one piece of information obtained based on user interface elements of the previous digital environment.
[0008] Depending on the embodiment, the second device may be different from the first device, or the first and second devices may correspond to the same device.
[0009] According to another aspect, a computer device is proposed comprising at least one microprocessor configured to: to obtain user interface elements from a common digital environment via at least one input interface of said computing device, and to provide, based on a similarity between the current digital environment and a previous digital environment, via at least one output interface of said computer device, at least one piece of information obtained based on user interface elements of the previous digital environment.
[0010] According to embodiments, the computer device may include the input interface and / or the output interface, or the input interface and / or the output interface may be coupled to the computer device. In one embodiment, the computer device may include a port capable of temporarily and / or removably connecting an input interface and / or an output interface. A secondary screen connected to the computer device by means of such a port represents an example of an input interface and / or an output interface coupled to the computer device.
[0011] The computer device is capable of implementing the proposed process in any one of its embodiments.
[0012] According to another aspect, a system comprising: is proposed at least one first computing device comprising at least one microprocessor configured to obtain user interface elements from a current digital environment via at least one input interface of at least one first computing device, and at least one second computing device comprising at least one microprocessor configured to provide, based on a similarity between the current digital environment and a previous digital environment, via at least one output interface of said at least one second computing device, at least one piece of information obtained based on user interface elements of the previous digital environment.
[0013] The system is capable of implementing the proposed process in any one of its embodiments.
[0014] In one embodiment, the computer device (or the first and / or second computer device) is a communication terminal.
[0015] In one embodiment, a communication terminal may comprise a plurality of data processing circuits. In such an example, a data processing circuit of the terminal may be designated by the expression "computer device" and may be configured specifically for the implementation of the proposed method. Such an approach makes it possible to illustrate a possible distinction between the computer device which may have a targeted role and the terminal which may comprise such a computer device and include various other functionalities.
[0016] According to another aspect, a computer program is proposed comprising instructions for implementing all or part of a process as defined herein when this program is executed by a processor. According to another aspect, a non-transient, computer-readable recording medium is proposed on which such a program is recorded.
[0017] The proposed technique can help improve the user experience by automatically providing potentially relevant information in the current environment, extracted from previous digital environments. This technique is designed to help anticipate user needs while limiting (or even avoiding) manual user intervention, thus providing information proactively and contextually.
[0018] This approach can help limit (e.g., reduce) the time users need to search for information compared to manual search techniques or less automated, traditional systems. Such time savings can contribute to improving a user's efficiency and productivity compared to such techniques. It can also enhance the user experience, thereby facilitating the completion of daily tasks.
[0019] Compared to existing auto-completion systems that are limited to brief text entries and do not (or only minimally) take into account the overall digital environment, the proposed technique can help provide better adaptation to users' contextual requirements. The information provided can, for example, be more precise and relevant, thus reducing errors and increasing operational efficiency.
[0020] By limiting information overload and focusing solely on providing targeted information, the proposed technique can help optimize the use of computing resources compared to systems that generate an untargeted flow of information. The proposed technique can, at least in some embodiments, accommodate the separation of the same computing environment for multiple uses, such as personal or professional. Thus, the provision of targeted information can be carried out while respecting specific criteria, such as the protection of professional information and the user's privacy.
[0021] The proposed technique does not require being linked to any word processing / document entry application or to any system environment. In particular, it may, in at least some embodiments, require no adaptation of the system environment or of applications running in The computer environment. It is also not limited to intra-document operation. Nor does it require manually defining a screen area using a pointing or selection device. Indeed, the proposed technique allows for contextual search functionality without being dependent on any application currently in use.
[0022] In summary, in at least some embodiments, the proposed technique can help to improve (for example, significantly) access to information for users of computer equipment. By automatically capturing, storing, and analyzing a user's digital environment, the proposed technique can help, in at least some embodiments, to provide relevant contextual information to the user at the appropriate time, limiting or avoiding, for example, tedious manual searching. This can, for example, result, in at least some embodiments, in increased productivity, reduced errors, and an improved overall user experience.
[0023] The features described in the following paragraphs may optionally be implemented independently of each other or in combination with each other.
[0024] In one embodiment, the method includes filtering user interface elements from the current digital environment.
[0025] Such an embodiment can enable targeted selection of the information to be processed, thereby limiting informational noise and helping, for example, to improve responsiveness. For instance, in a medical setting, filtering can be designed to exclude sensitive or irrelevant information for the task at hand, thus respecting the confidentiality and relevance of the displayed data. Furthermore, filtering can prevent the processing of redundant or out-of-context data, concentrating resources on critical information.
[0026] In one embodiment, obtaining user interface elements of the current digital environment includes capturing a current image of a screen of the computer device displaying said current digital environment.
[0027] In one embodiment, the method includes obtaining user interface elements from the previous digital environment.
[0028] In one embodiment, obtaining user interface elements from the previous digital environment includes capturing a previous image rendered on a screen of the computing device displaying said previous digital environment.
[0029] In one embodiment, obtaining the user interface elements of the current digital environment includes extracting text from the current image captured by applying an optical character recognition (OCR) algorithm to the current captured image.
[0030] In one embodiment, obtaining the user interface elements from the previous digital environment includes extracting text from the captured previous image by applying an optical character recognition (OCR) algorithm to the captured previous image.
[0031] In one embodiment, obtaining user interface elements from the current digital environment includes slicing at least a portion of the captured current image into a plurality of information blocks, an information block comprising at least one user interface element from the current digital environment.
[0032] In one embodiment, obtaining user interface elements from the previous digital environment includes slicing at least a portion of the captured previous image into a plurality of information blocks, an information block comprising at least one user interface element from the current digital environment.
[0033] The segmentation can be carried out according to at least one criterion such as an arrangement of the elements on at least one portion of the captured image (current or previous), the presence of at least one visual separator on at least one portion of the captured image, or a semantic analysis of the textual content of at least one portion of the captured image.
[0034] In one embodiment, the method includes storing the user interface elements of the current digital environment and / or storing the user interface elements of the previous digital environment in a database (for example, a relational database).
[0035] In one embodiment, the method includes storing at least one contextual data of at least one user interface element of the current digital environment and / or of at least one user interface element of the current digital environment in the database.
[0036] Examples of contextual data may include, in certain embodiments, a previous image of a computer device screen displaying the previous digital environment, captured. The captured previous image is then divided into information blocks. At least one of these information blocks contains at least one user interface element of the previous digital environment. In such an example, it is possible to store in the database, in addition to the information blocks and / or the user interface elements contained in these blocks, at least one contextual data item associated with at least one such information block and / or at least one such user interface element, for example, the date and time. from the capture, the identifier of an active application (corresponding to the captured image), the position of the relevant information block on the screen, and / or keywords extracted from the content of the relevant information block.
[0037] In one embodiment, the similarity between the current digital environment and the previous digital environment takes into account relationships between the elements of the current digital environment and the elements of the previous digital environment in their respective contexts. In other words, in such an embodiment, the similarity takes into account, at least, a collective comparison between a plurality of elements of the current digital environment and a plurality of elements from the previous digital environment. This does not preclude the similarity from also taking into account an individual comparison between an element of the current digital environment and an element of the previous digital environment.
[0038] Such an embodiment can help anticipate current or future needs. For example, in a routine task such as replying to an email, it is useful to recall relevant information such as the details of a previously accessed file or URL. Considering relationships between user interface elements in the current digital environment can facilitate the inference of useful information to the user. Furthermore, by considering the relationships between interface elements in a previous digital environment, it is possible to identify similar patterns or structures that can help provide relevant information or adapt information suggestions based on that previous digital environment (context).Such an implementation can therefore help to provide consistent and relevant information, even if the current and previous environments are not identical, in anticipation of the user expressing a need.
[0039] Processing user interface elements of the previous digital environment may refer, for example, to an analysis of user interactions or repeated interaction patterns, taking into account, for instance, text entered by the user, the frequency of button clicks, the order in which windows are opened, or the selection of an option from a menu. Such an analysis may, for example, make it possible to determine important or priority actions in the previous digital environment, to anticipate expected actions in the current environment, and to provide useful information for implementing these expected actions.
[0040] In one embodiment, the method includes the use of a database (relational, for example) storing the user interface elements of the previous digital environment. For a previous digital environment associated with a given instant or time interval, an identifier The environment can be associated with a list of user interface elements captured at that time, either in their native form or after any processing. User interface elements can also be associated with additional information, such as their position on a screen in the case of graphical elements, or keywords that have been extracted or inferred from their content. User interface elements can also be associated with temporal and system information, such as the date and time of capture, the applications active at the time of capture, and other relevant system elements. The previous digital environment can be indexed, for example, using a full-index document indexing method or based on specific criteria such as temporal or application-related indexes.
[0041] The speed of delivery of the information obtained is a criterion which can prove particularly important for professional applications requiring real-time operation, and in this context the use of a relational database can facilitate a quick and accurate retrieval of historical data.
[0042] In one embodiment, the method includes using a pre-trained machine learning model to identify a relationship between user interface elements of the previous digital environment.
[0043] Integrating a machine learning model can help improve the ability to interpret and predict user needs based on collected data. An example of a use case is a customer support system where the model predicts customer problems based on previous input, thereby improving the speed and accuracy of the responses provided.
[0044] In one embodiment, the determination of the similarity between the current digital environment and a previous digital environment is performed by the machine learning model. The machine learning model can, for example, be trained on a dataset comprising pairs of digital environments and information deemed relevant to each pair. The model can be configured to learn to identify correlations between user interface elements and the information deemed relevant, and to use these correlations to predict the level of relevance of the stored information to the current digital environment.
[0045] In one embodiment, the method comprises: retrieving prior information based on user interface elements of the previous digital environment, prioritizing the retrieved prior information based on a criterion of relevance to the current digital environment, and a provision, by at least one output interface, of at least one of said prioritized prior information.
[0046] Prioritizing retrieved data based on its current relevance can help improve the effectiveness of the information presented. For example, in a multitasking work environment, previous information can be prioritized based on the proximity of deadlines or the importance of tasks, thus helping with time management and productivity.
[0047] In one embodiment, prioritization is adjusted based on user interaction or lack of interaction with information previously provided by at least one output interface.
[0048] The use of reinforcement learning techniques can enable continuous refinement of information relevance. For example, if a user frequently interacts with certain types of information, prioritizing them more can help improve (e.g., optimize) the user experience by further reducing the time spent searching for relevant information. Conversely, it can be anticipated that information retrieved by the system but never selected will be progressively dropped. One possible way to implement a reinforcement learning technique is to associate a level of usefulness with a piece of information and to adapt the level of usefulness based on user feedback, obtained, for example, via a human-machine interface during and / or after the provision of this information.
[0049] In one embodiment, the output interface of the second device is connected to a display device and the method includes displaying, by the display device, the information provided via a contextual user interface.
[0050] The contextual user interface can, for example, be a pop-up window or a sidebar. A method of displaying the information provided can take into account user interface elements, such as an application in use or a user interaction within the user interface, such as a click, a selection, or a viewing time.
[0051] In one embodiment, the process comprises: obtaining, via a human-machine interface, at least one interaction with the information provided, and a provision of at least one interaction obtained to the machine learning model.
[0052] Interaction with the information provided can, for example, take place in the contextual user interface mentioned above.
[0053] In one embodiment, obtaining the user interface elements is triggered periodically and / or taking into account the current digital working environment.
[0054] Periodically obtaining user interface elements ensures their regular and systematic collection, which can be used to build a rich and comprehensive database or training set. This regularity can help capture even subtle variations or gradual changes in the digital environment, thus creating a detailed history that can be used to analyze long-term trends.
[0055] Triggering based on the current digital work environment can enable targeted and contextually relevant user interface elements to be collected. This approach can help ensure that the database contains information directly related to the user's current activities, thereby limiting or avoiding clutter with irrelevant data and optimizing storage resources. Brief description of the drawings
[0056] Other features, details and advantages will become apparent from reading the detailed description below and from analyzing the accompanying drawings, in which: Fig. 1
[0057] [Fig.1] shows, in an example of an embodiment, a flowchart of a process suitable for implementing the proposed technique. Fig. 2
[0058] [Fig.2] shows, in an example of an embodiment, a diagram of a device suitable for implementing the proposed technique. Fig. 3
[0059] [Fig.3] shows, in an example of an embodiment, a diagram of a system suitable for implementing the proposed technique. Fig. 4
[0060] [Fig. 4] shows, in an example embodiment, a functional architecture diagram of a system enabling the implementation of the proposed technique. Description of embodiments
[0061] In the drawings, identical reference numerals designate identical elements or elements having similar functions.
[0062] Some specific terms are now clarified for a better understanding of the proposed technique.
[0063] A digital environment includes all the user interface elements present on a computer or digital device at a given moment or within a given time interval.
[0064] These user interface elements can be either interactive or passive, depending on the embodiment, and can include, but are not limited to, at least one graphical user interface (GUI) element such as a window, an icon, a menu, a button, a scroll bar and a side panel, at least one multimedia element such as an image, a video, an animation, a graphic, a diagram and a sound, at least one text document displayed on a screen, such as an email, a presentation, a form and an article, and / or at least one subdivision of such a text document, for example a paragraph or a block of text, at least one user interaction, such as text input via a physical or virtual keyboard, voice command, mouse movement, touch gesture, click, scrolling, swiping, or any other form of interaction with the device, at least one running application,and / or at least one element of such an application such as an interface, a window, an open and active tab, a toolbar, and / or at least one underlying data element of such an element such as an open file, a header, session states and an activity log, at least one notification, at least one alert, at least one displayed or audible message, for example a pop-up, a system alert, an instant messaging notification, or a security warning.
[0065] User interface elements may include one of the elements listed above or an aggregation or combination of at least two of the elements listed above.
[0066] The digital environment may also include contextual data not rendered on a user interface (e.g., not displayed, or not directly readable by OCR; such as "system" data), which may include, but is not limited to: at least one state of an open application, such as a running process, a scheduled task, a synchronization state, or a consumed resource; at least one active piece of data in such an application, such as a recently modified document, an ongoing discussion, an online transaction, or a real-time data stream; at least one date and / or time, for example, an exact time, a duration of use, a time zone, or a specific period of a day or week; at least one geographic location, for example, GPS coordinates, an IP address, a connected Wi-Fi access point, or a predefined geographic area. at least one state of a network connection, such as signal strength, connection type (Wi-Fi, Ethernet, cellular), available bandwidth, or a recent or ongoing interruption.
[0067] Contextual data may include one of the elements listed above or an aggregation or combination of at least two of the elements listed above.
[0068] A digital environment can be implemented on a variety of computing or digital devices capable of managing and displaying interactive and passive user interfaces. These devices include, but are not limited to, desktop computers, laptops, tablets, smartphones, embedded devices, virtual and augmented reality devices, etc. A digital environment can be implemented on a single device or on multiple devices.
[0069] A current digital environment refers to the current or recent state of a user's digital environment, captured at a given moment or during a specific time interval. This current digital environment may, in particular, reflect the interactive and contextual elements and data available and active on the user's device at the time of capture.
[0070] A previous digital environment, on the other hand, refers to a past state of the digital environment, captured at a previous time and stored for later use or comparison. This previous digital environment may include, in particular, user interface elements and contextual data that were present and active at that time and may allow for keeping track of the user's digital activity for future analysis or recall.
[0071] Capturing the current digital environment is a recording or acquisition of user interface elements (and optionally contextual data) present in the digital environment at a given time or within a given time interval.This may include, but is not limited to: a snapshot, which records the complete or partial visual display of one or more screens; the recording of text input through a probe or "keylogger," capturing everything the user types on a keyboard; the capture of real-time audio or video, recording, for example, a stream from a microphone, camera, speaker, earphone, or any other connected sensor or device; content intended to be streamed to a screen (e.g., a video) or via an audio device (e.g., a podcast); and the recording of touch or gesture interactions, such as finger movements on a touchscreen or mouse clicks. the acquisition of the states of open applications, including the active data within those applications, the collection of other contextual data, such as time, GPS position, or network connection status.
[0072] Information filtering is a process of selecting or excluding certain data from among all the information captured or stored, or prior to its capture and / or storage, according to predefined or dynamic criteria. Filtering criteria may include: a whitelist or a blacklist, defining the inclusion or exclusion of information based on its membership in a predefined list (by prior or dynamic configuration, for example), such as a predefined list of keywords, the user's geographic location at the time of capture, a time of day, a date, or a specific period.
[0073] Capturing the previous digital environment is based on the same principle as capturing the current digital environment, except that it was carried out at a previous time and at least a portion of the captured elements (or information extracted from the captured elements) is stored in such a way that it can be referred to later (for example, the captured elements may be filtered before storage). This capture may include the same types of data and interactions, recorded at past times, and may be used to compare these stored elements with the current digital environment or to recall relevant information.
[0074] Extracting information from a set of user interface elements in a digital environment involves isolating, selecting, or retrieving a specific portion of the information contained in those elements, for example, for later use or specific analysis. For instance, text data extraction refers to retrieving a specific sentence, paragraph, and / or keyword from a text document. Graphic element extraction refers to isolating an image, icon, and / or graphic present in a user interface or visual document. Multimedia content extraction is retrieving a segment from a video or audio file.It is also possible to extract structured data, such as numerical values and / or specific fields from a spreadsheet and / or a database displayed on the screen, and / or to extract user interactions, that is, specific actions by a user, such as clicking a button and / or selecting an option from a drop-down menu. In short, extracted information is a specific portion of the content of a previous digital environment, isolated to meet a particular need.
[0075] Deriving information from a set of user interface elements in a digital environment consists of generating and / or calculating new information at based on the captured data or elements. This derived information may result from an analysis, transformation, and / or combination of the original elements (i.e., user interface elements captured directly from the digital environment before any modification or transformation by the process described in this application), and may include, but is not limited to: retrieving associated information from a database, related to extracted information as defined herein, generating a summary or synthesis of a textual document or a set of texts. Statistical calculations, such as averages or totals, from numerical data extracted from a spreadsheet and / or database; the generation of metadata, such as labels or categories, from the analysis of the content of an image, video, and / or text; visual transformation, by applying filters and / or modifications to a captured image and / or video, thus generating a modified version of the original; and behavioral analysis of the user, through the use of models and / or the identification of trends from user interactions captured in a previous digital environment.
[0076] Information derivation can be implemented by one of the actions listed above or by a combination of at least two of the actions listed above.
[0077] The actions listed above can be implemented in parallel, i.e., mutually independently, or sequentially. As an example of a sequential implementation, an image captured in the current digital environment can first be modified by a visual filter to improve its sharpness, and this modified version of the image can then be used as input for an object recognition analysis to generate metadata describing the objects present in the image. In this case, the original captured image undergoes a transformation, and then the transformed image (which is itself new information) serves as the basis for another transformation, so that implementing this sequence of transformations has the effect of generating yet another new information (the metadata describing the objects present in the image).
[0078] Information derived from a set of user interface elements of a digital environment is therefore new information, created directly or indirectly from the original elements of the previous digital environment, for example to offer added value and / or a deeper understanding of this data.
[0079] In the context of the proposed technique, the term "obtain" should be interpreted broadly and inclusively. When referring to "obtaining user interface elements from a typical digital environment," this can mean one or more actions, including: visually capturing the elements displayed on the screen (via a screenshot or the use of an optical character recognition module), receiving data from other systems or sensors (such as navigation or file management sensors), extracting information from active documents or applications, or retrieving specific elements via calls to services or databases, or a combination of at least two of the actions listed above. The term "obtained" thus includes the concepts of transmission, reception, capture, extraction, retrieval, derivation, and enrichment, among others.Similarly, the expression "provision of information obtained based on user interface elements of the previous digital environment" encompasses various methods of information acquisition. This information can be stored in a database, referenced from previously captured blocks of information, derived from the analysis of similar contexts, and / or supplemented from multiple information sources.
[0080] Similarity between two digital environments is a measure or assessment of the correspondence or resemblance between these digital environments. Similarity can be, for example, textual, contextual, temporal, functional, and / or visual. Textual similarity refers to the resemblance of texts present in the two environments, for example, similar sentences from a literal and / or semantic point of view in two emails or recurring keywords in different documents. Contextual similarity refers to the correspondence of situations and / or usage scenarios in the two environments, such as working on the same type of project or consulting the same application at different times. Temporal similarity refers to the correspondence related to similar times, such as performing a task at the same time of day and / or on the same date but in different digital environments.Functional similarity refers to the resemblance of functions and / or actions performed in the two environments, for example, carrying out similar tasks with different applications or tools. Visual or graphical similarity refers to the resemblance of visual elements or graphical interfaces between the environments, such as the use of the same colors, fonts, or screen layouts. Generally, in the context of the proposed technique, an evaluation of the similarity of the current digital environment with one or more previous digital environments can be implemented (during a comparison, for example) to extract or derive information considered to be... relevant to at least one digital environment at least partially similar to the current digital environment, and provide at least some of this information to the user, proactively, for example to anticipate the user's needs, or to provide recommendations tailored to their needs.
[0081] This similarity can be determined according to various criteria. For example, one similarity criterion is co-occurrence, that is, the presence of one or more identical elements in both environments. Other quantitative similarity criteria may include similarity values (used as thresholds), similarity distances or metrics such as Euclidean distance, Jaccard distance, or Levenshtein distance, correlation analysis results, statistical tests, similarity coefficients such as Pearson's correlation coefficient or Spearman's rank correlation coefficient, etc. For example, each captured context may correspond to a set of n-grams of different lengths calculated from the text blocks contained in each context, and the similarity between the two contexts is a Jaccard distance between the two sets of n-grams.
[0082] To assess the similarity between a current digital environment and a previous digital environment, various technical means can be implemented. Among these means, the use of a relational database and an autoencoder are two particularly effective approaches.
[0083] A relational database allows for the structuring and storage of user interface elements and contextual data captured in different digital environments. This structure can facilitate the management of relationships between the various stored elements and data, and can thus help to perform quick and accurate comparisons when evaluating similarities. For example, a relational database can link text documents, user interactions, and contextual data such as the date and time, making it possible to find elements similar to those present in the current digital environment.
[0084] An autoencoder is a type of neural network used to learn compressed vector representations of input data. The compressed vector representations can then be used in place of the original inputs for calculating similarity via, for example, Euclidean distance or cosine similarity. In the context of evaluating similarities between two digital environments, an autoencoder can be used to analyze the complex relationships between user interface elements and the contextual data of the captured digital environments. By learning to recognize similar patterns or structures, the autoencoder can facilitate identification relevant similarities, even when those similarities are not immediately apparent to a human.
[0085] Alternatively, a clustering-based approach, or principal component analysis, can be used to assess the similarity between two digital environments.
[0086] Providing information means the process by which extracted or derived information is presented or made available to the user. This provision can be done by various means, including: displaying a notification or pop-up window containing the information on the user's screen, suggesting an action or content in the user interface based on the relevant information, integrating the information into an ongoing workflow, where it is automatically applied or suggested, or presenting the information in the form of text, an image, a link, sound, or any other suitable multimedia format.
[0087] The provision of information can be implemented by one of the above means or by a combination of at least two of the above means.
[0088] The provision of information can be implemented on a variety of computer devices which present the information to the user in an appropriate manner depending on the context: for example, computer, tablet or smartphone monitors or screens, projection or display devices, intelligent voice assistants, etc.
[0089] Reinforcement learning is a continuous process by which a system adjusts its models or decisions based on the results obtained and interactions with the user. For example, if information provided is frequently used by the user, the system can reinforce the relevance of this type of information for similar contexts in the future. Conversely, information that is rarely used may see its relevance decrease.
[0090] The expression "based on" in the proposed technique, as in the expression "provision of information obtained based on user interface elements of the previous digital environment," should be interpreted more broadly than simply "on the basis of" or "from." This expression implies a more flexible and adaptable relationship between past and present contextual elements. For example, information can be provided in response to a direct match between similar elements in the current and past environments, but also based on more complex contextual analyses, taking into account user preferences, deadlines, or repeated interactions. Thus, "based on" "of" includes not only direct links, but also indirect or associative influences, allowing us to anticipate user needs based on past trends or behaviors.
[0091] This disclosure relates to a technique based on a similarity between a current digital context and at least one past digital context to provide information obtained from user interface elements of that or those past digital contexts and which may be considered relevant to the current digital context.
[0092] Unlike conventional automatic completion systems which focus primarily on word prediction based on immediately preceding text sequences, the proposed technique takes into account a context encompassing not only the text being written but also other user interface elements, and which may also include contextual data such as application status, previous interactions, geographical location, and network connection status.
[0093] Unlike existing systems which are often linked to specific applications, the proposed technique can operate independently of any specific application and interact with several applications simultaneously for a more homogeneous integration of contextual information.
[0094] While existing systems are limited to a single type of data, typically textual, the proposed technique can capture a wider range of information, potentially including, for example, screenshots, audio recordings, keystrokes, and touch interactions. This makes it possible to create a complete picture of the user's digital activity, thus facilitating recommendations or actions based on a more comprehensive user context.
[0095] The proposed technique is not limited to processing the current digital context in real time but also takes into account analytical elements of past digital environments. Thanks to this, it can not only provide information based on the current digital context but also draw lessons from historical digital contexts, offering a longitudinal perspective that improves the personalization and relevance of the information provided to the user.
[0096] Thus, the proposed technique differs from the state of the art, in particular from existing automatic completion systems and document retrieval systems.
[0097] Reference is now made to [Fig. 1], which represents a possible example of a flowchart for a process suitable for implementing the proposed technique. This flowchart shows different logic modules, each defined by a specific function: a module 10 for periodic triggering, a module 11 for triggering on request, a module 12 for capturing the digital environment, a module 13 for transforming into information blocks, a module 14 for analyzing the content of information blocks, a module 15 for searching for triggering or inhibiting contextual elements, a module 16 for making decisions regarding information storage, a module 17 for information storage, a module 18 for cycle termination related to information storage, a module 19 for decision-making related to information provision, a module 20 for obtaining a list of stored information, a module 21 for cycle termination related to information provision, a module 22 for ranking the list of stored information, a module 23 for filtering the list of stored information, a module 24 for providing at least one piece of information from the list of stored information, a module 25 for obtaining user interaction, and a module 26 for learning reinforcement.
[0098] A main module (not shown) can be provided so as to coordinate the actions of one or more of said modules, in particular as detailed later in this document according to a cycle of storing user interface elements of the current digital context and according to a cycle of providing information obtained according to user interface elements of a previous digital context.
[0099] This list of modules is indicative and provided for illustrative purposes only. Variations are possible, allowing those skilled in the art to adapt the proposed technique to the specific needs of each application. Examples of possible variations are detailed later in this document.
[0100] For the purposes of describing the modules, unless otherwise stated, we are at a current moment defined as the beginning of a cycle of obtaining user interface elements from a current digital environment and of a potential provision of at least one piece of information depending on a similarity between the current digital environment and a previous digital environment.
[0101] The digital environment capture module 12 is responsible for capturing user interface elements present in the current digital environment, such as active windows, open documents, and user interactions. This module can be configured to capture different types of data: a visual snapshot of the screen, specific contextual data (such as application status or notifications), audio or video streams, cursor movements, clicks, etc. The capture performed by module 12 can thus form a sample of data, which can be time-stamped and made accessible at least temporarily for further processing such as that implemented by modules 13 to 15.
[0102] The visual snapshot of the screen captured by module 12 corresponds to the state of the screen at the current moment. For elements such as audio or video streams, the capture refers to a time interval starting at the current moment and covering a defined duration. This makes it possible to capture not only the frozen image of the present moment, but also the dynamic context in which events unfold.
[0103] Module 12 can also implement a filtering function, where only certain user interface elements present in the current digital environment are captured, or a masking function, where certain information is intentionally omitted or hidden before capture. For example, Module 12 can be configured to capture only user interface elements specified in a whitelist, such as certain keywords, document types, or specific applications. Conversely, a blacklist can exclude undesirable elements, such as confidential information or sensitive content. This filtering can be based on predefined criteria such as file type, associated metadata, or keywords present in the text or window titles.Alternatively, Module 12 can be configured to use artificial intelligence techniques to recognize and capture only specific content, such as faces, text in a particular language, or predefined graphic elements. This content recognition can help automate filtering without the need for predefined lists, dynamically adapting to the content relevant to the user. Module 12 can be configured to adjust filtering based on context, such as the time of day, the user's location, or current activity. For example, the module can be configured to capture only windows open during working hours and ignore those opened outside of those hours.This type of filtering can be particularly useful for complying with privacy policies or reducing informational noise by capturing only what is relevant at a given time. Alternatively, or in addition to filtering, Module 12 can include a masking function that anonymizes or hides certain parts of the screen or contextual data before capture. For example, personal information such as names, addresses, or payment details can be blurred or replaced with wildcards. This masking can be applied automatically based on rules defined by the user or the system administrator. Module 12 can be configured to capture data only when the user actively interacts with certain interface elements, such as clicking a window or typing text. This allows captures to focus on meaningful actions and minimize unnecessary data. the amount of redundant or unnecessary data. Module 12 can be configured to capture only information from certain applications or types of applications (such as web browsers, text editors, or communication software), excluding other applications deemed irrelevant for analysis or storage.
[0104] Depending on the functions selected for module 12, the capture of user interface elements can be carried out in a flexible, selective and secure manner while adapting to different usage contexts and specific user needs.
[0105] The triggering of a capture can be automated by the triggering module 10 iteratively (for example periodically via regular time intervals) and / or initiated by the triggering module 11 on a user request in response to specific events, such as a user action or a change in digital context.
[0106] The periodic trigger module 10 automates the capture performed by module 12 at regular, for example, predefined intervals. This module establishes a repetitive time cycle, for example, every ten seconds, where at each cycle (or "step"), module 12 is activated to capture the digital environment at the current time. At each periodic trigger, a snapshot of the screen or contextual data is captured (for example, immediately upon triggering), while stream captures (audio, video) begin at the time of triggering and continue for a specified duration less than or equal to the capture step.
[0107] Request-triggered module 11 allows the digital environment to be captured in response to a specific user action or request, whether explicit or implicit. For example, an explicit request might be clicking a "Capture" button in the user interface, while an implicit request might be triggered by a specific user action, such as entering a keyword or opening a new application. When a capture is triggered on request, its implementation can, for example, begin immediately upon initiation of the request. For instance, a screen snapshot is taken at the precise moment of the request, and stream captures also begin at that instant to cover the ongoing event.
[0108] In addition to periodic and on-demand triggering, module 12 can be configured to capture information when specific events occur, such as the opening of a new application, the receipt of a critical notification, or a change in network state. This event-driven capture allows you to document key moments in the user's digital environment.
[0109] Module 13, the information block transformation module, takes the data captured by Module 12 and segments it into distinct units of information, called information blocks. This segmentation facilitates subsequent processing, such as the analysis, storage, or retrieval of information. For example, Module 13 can be configured to extract specific portions of information from the captured elements, for example, by splitting a document into paragraphs, extracting sections from a data table, isolating images or portions of images, segmenting videos, etc. Each information block can be identified, cataloged, and thus made ready for further processing. Module 13 can be configured to group the information blocks by theme or context.For example, information related to the same project or task type can be grouped together, facilitating its processing and subsequent retrieval. This grouping can be based on keywords, metadata, or semantic content analysis. Module 13 can be configured to perform contextual segmentation, where information blocks are created based on the user's activity or the application used. For example, all items captured while using an email program can be grouped together, separately from items captured while using a word processor. Module 13 can apply further filtering during segmentation, excluding information blocks deemed irrelevant or redundant.For example, repetitive text sections or similar images can be ignored to avoid unnecessary clutter in the database. It can be stipulated, for instance, that certain types of information blocks likely to appear on a human-machine interface, such as menu ribbons or directory lists, are systematically considered irrelevant.
[0110] Module 14, which analyzes the content of information blocks, intervenes after the segmentation performed by Module 13. It analyzes each block to extract patterns, contextual relationships, or information relevant to the user. Module 14 may use optical character recognition, text analysis, pattern recognition, and / or contextual correlation techniques to understand the content of the information blocks. For example, it may identify keywords, frequent phrases, or connections between different blocks based on their content or context. Module 14 may incorporate machine learning models that adapt the analysis based on the user's past interactions. For example, if the user frequently interacts with certain types of information blocks, the module may adjust its algorithms. to give more weight to these types of content in the future. Module 14 can also categorize information blocks based on their relevance, urgency, or perceived importance to the user. For example, critical or frequently used information can be highlighted for faster processing or recall. Module 14 can be configured to link different information blocks together based on context, creating dynamic associations. For example, information blocks captured while using the same application can be linked together, facilitating their simultaneous retrieval in similar contexts.
[0111] Module 15 identifies, for example within information blocks, context elements called "storage triggers and / or inhibitors" that can respectively trigger or inhibit an information storage action. These storage trigger and / or inhibitor context elements can be associated with different levels of granularity: they can apply to all information blocks captured in a given context, to a specific subset of blocks, or to a single information block. Furthermore, each storage trigger or inhibitor context element can be associated with a weight, ranging from absolute influence (such as the weight of a storage trigger and / or inhibitor context element that must always be stored or never be stored) to intermediate levels (such as a greater or lesser probability of a storage requirement).
[0112] Module 15 can, for example, scan information blocks for specific keywords, dates, locations, or other contextual elements that may justify executing or not executing a storage action. For example, detecting a due date or a critical mention can lead to the priority storage of the corresponding information for future use. Such detection can be based, for example, on predefined rules (based on keywords or regular expressions, etc.). These rules can also be used in a model training phase. Once the model is trained, detection can be performed directly by the model, using relationships learned during the training phase.A machine or semi-automatic learning model can thus be used, with the effect, for example, of helping, at least in some embodiments, to improve the accuracy and efficiency of detection. Module 15 can also adjust its search criteria according to user preferences or changes in the digital context. For example, it can give more weight to contextual elements related to an ongoing project or a recently started task, thus favoring the storage of the most relevant information for these contexts. By integrating predictive analytics algorithms, . Module 15 can help anticipate future storage needs based on observed trends, such as the increasing frequency of certain data types, and proactively decide whether to store them. Furthermore, Module 15 can assess the redundancy of retrieved information to avoid storing data that is already present, thus helping to limit (e.g., optimize) the use of storage resources. Module 15 can be configured to apply filtering to exclude irrelevant or sensitive items, in accordance with policies defined by the user or an organization. This can include obtaining storage-inhibiting contextual elements with absolute influence, resulting in the exclusion of confidential data or the application of additional masking.
[0113] Module 16, which handles information storage decisions, is configured to receive trigger and / or inhibitor context elements for an information storage action, identified by Module 15. Module 16 uses these context elements to decide, based on this information, whether to store or not store all or part of the information blocks or their extracted content. To make its decision, Module 16 can process the trigger and inhibitor context elements for storage using several methods. For example, if an absolutely influential storage inhibitor context element is detected for a specific piece of data, Module 16 can be configured to systematically decide not to store the relevant information block, which amounts to a filtering function.Alternatively, in such a situation, the module can be configured to store the block in a masked form, thus applying a masking function to hide sensitive information while retaining a partial record. Module 16 can evaluate storage trigger and inhibitor context elements with relative influence by assigning them points based on their importance. For example, a storage trigger context element such as a critical deadline can add points, while a storage inhibitor context element such as information redundancy can subtract them. The final storage decision can then be made, for example, based on the total score: above a certain fixed or dynamic threshold, the information is stored; below it, it is not.Module 16 can also apply a weighting or cost function to the relative influence storage trigger and inhibitor context elements, in a manner known per se. Module 16 can also use probabilistic methods, where the decision to store is based on a calculated probability that the information will be useful in the future, taking into account the relative influence storage trigger and inhibitor context elements provided by Module 15. External modules, using, for example, language learning models (LLMs) and / or reinforcement learning techniques, can be used. used to improve the collection of contextual elements that trigger and / or inhibit storage by module 15 and / or the decision-making related to storage by module 16.
[0114] Module 17, the information storage module, supports the organization and storage of information blocks validated by Module 16 (for example, in a database). Module 17 can be configured to ensure that information is not only stored but also structured, for example, to be easily accessible for further processing. For example, Module 17 can index information blocks based on criteria such as content type and / or associated metadata (date, time, source application). Module 17 can apply security measures before storage, such as encrypting sensitive data or implementing access controls. This helps to restrict access to stored information (for example, ensuring that only authorized personnel can access stored information), in accordance with privacy and data protection policies.Storage can, for example, be implemented in a document management system allowing storage and searching within blocks, or in a knowledge base.
[0115] Module 18, the information storage cycle termination module, manages the end of the storage process once the relevant decisions have been made by module 16 and executed by module 17. This module simply ensures the end of the information capture and processing cycle, pending the next capture cycle. Module 18 can, for example, trigger actions to prepare modules 16 and 17 for the next cycle.
[0116] Modules 12 to 18 work in a coordinated manner according to a cycle related to information retrieval. A typical iteration of the cycle begins when a capture is triggered (for example, just before, during, or just after), whether by the periodic triggering module 10 or the request-based triggering module 11. Once the capture is performed by module 12, blocks of information are obtained, possibly transformed, and analyzed by modules 13 and 14. Module 15 then intervenes to identify triggering and / or inhibiting contextual elements that may influence the storage decision. Module 16 then decides whether or not to store the blocks of information, and / or to filter or mask them based on the analyzed contextual elements. The cycle ends when module 16 has made a decision on the storage of the blocks of information. If storage is decided, module 17 stores the validated blocks.The cycle can also end earlier, without storage, if module 16 determines that the information is redundant or irrelevant. Module 18 can then, for example, close the information retrieval process for the iteration. common. Of course, this closure may not be immediate in embodiments where other actions are implemented during an iteration of the information-gathering process.
[0117] Furthermore, modules 15 and 19 to 26 work in a coordinated manner according to a cycle relating to the provision of information obtained based on a similarity between the current digital environment and a previous digital environment, and based on the user interface elements of the previous digital environment. An iteration of the cycle begins when module 15 determines, for the information blocks from the current digital environment, triggering or inhibiting contextual elements likely to influence the provision of information. These elements are then transmitted to module 19, which makes a decision regarding the provision of information. If provision is decided, module 20 extracts a list of relevant information from the database, and modules 22, 23, and 24 manage the classification, filtering, and presentation of this information.Module 25 collects user interactions, and module 26 adjusts the delivery criteria based on past interactions. The cycle can also end earlier, without providing information, if module 19 determines that such provision is not relevant given the current digital environment. Module 21 can then, for example, close the information delivery process for the current iteration. Of course, this closure may not be immediate in embodiments where other actions are implemented during an iteration of the information retrieval process.
[0118] The cycles relating to information retrieval and the provision of the retrieved information can operate in conjunction. For example, it can be stipulated that the closure by module 18 of the information retrieval process for the current iteration results in the closure by module 21 of the information provision process for the current iteration. In other words, the action of module 21 can be slaved to that of module 18. Conversely, it is also possible that the action of module 18 is slaved to that of module 21, such that the closure of the information provision process directly influences the closure of the storage process for the same current iteration.
[0119] Alternatively, the information retrieval and delivery cycles can operate independently, without any interdependence between the two. For example, the closing criteria for the information retrieval process and the information delivery process can be distinct. The implementation of the information retrieval cycle can, for example, be desynchronized from the implementation of the information delivery cycle.
[0120] Module 15 is responsible for analyzing information blocks obtained from the current digital environment to identify contextual elements that can respectively trigger or inhibit an information delivery action, referred to as "delivery triggering and / or delivery inhibiting contextual elements." These delivery triggering and / or delivery inhibiting contextual elements can take several forms, such as keywords, user events, changes in the digital environment, or temporal criteria. Module 15 focuses primarily on analyzing information blocks extracted from the capture of the current environment to identify delivery triggering and delivery inhibiting contextual elements that influence the decision to trigger or not a delivery action.However, to facilitate the identification of contextual elements that trigger and / or inhibit provision, module 15 may have access not only to information blocks obtained from the current digital environment, but also, for example, to information blocks obtained from previous digital environments, to a document database, and / or to a history of information provided during previous iterations of the provision cycle.
[0121] Contextual elements that trigger delivery are cues present in the current digital environment that indicate that providing information may be relevant. These elements can include a variety of factors such as specific keywords, user events, changes in application state, or temporal signals. Module 15 can evaluate these factors to determine whether the context justifies initiating an information delivery cycle. For example, Module 15 can analyze the content of open applications or documents to identify specific keywords or terms that have historically been associated with useful information.For example, in an environment where a user is viewing a financial document containing terms like "balance sheet," "budget," or "forecast," Module 15 can identify these words as contextual triggers for information provision, suggesting that providing additional information about financial statements, past projections, or previous financial reports may be relevant. Module 15 flags these terms to signal that the context is favorable for potentially providing information. The application context is another possible contextual trigger. Module 15 can be configured to analyze which applications are currently active and what tasks the user is performing.For example, if the user is working on a project management application or accounting software, module 15 may interpret this as a signal that providing information may be useful to support that specific task, such as previous reports, project deadlines, or . Invoices. User actions within the digital interface can also trigger the provision of information. For example, if a user performs a search in document management software or navigates to a file related to a specific project, this can be interpreted by Module 15 as a context element triggering the provision of information, indicating that the current context may require the provision of additional information. This analysis can be extended to simpler actions, such as clicking a certain button or navigating within a given application. Module 15 can incorporate temporal factors into its context evaluation. For example, if it detects that a due date is approaching in a document or that a scheduled event in the user's calendar is imminent, these elements can serve as context elements triggering the provision of information. If the current digital environment shows intense activity just before a deadline, Module 15 can signal that the context is favorable for providing additional information to assist the user in managing that deadline. Module 15 can also be based on patterns of repeated activity. If the user regularly performs certain actions in a specific context (for example, reviewing a report at the end of each month to close accounts), Module 15 can learn to associate these moments with cycles of providing relevant information. These recurring contextual triggers allow the system to anticipate the user's needs without requiring an explicit request.
[0122] Module 15 can also be responsible for identifying supply-inhibiting context elements, that is, elements that indicate that providing information would be inappropriate or unnecessary in the current context. These supply-inhibiting context elements serve to filter (i.e., in this case, eliminate) situations where a supply action might cause distractions, be redundant, or interfere with ongoing activity. For example, Module 15 can analyze blocks of information captured in the current environment to determine whether certain information is already present or has recently been provided.If the digital environment already contains information that has been recalled (such as an open document that corresponds to a possible supply), the module may consider this an inhibiting context element, signaling that providing information may be redundant in this context. If the current digital environment shows that the user is engaged in a specific task unrelated to previously stored and / or supplied information, Module 15 may identify this context as an inhibiting context element. For example, if the user is working on a drawing or graphic design software for a given project, while the information available for that project is... Exclusively related to financial management, Module 15 can be configured to detect a lack of relevant information and identify this lack of relevant information as a contextual factor inhibiting its provision. Module 15 thus ensures that the information provided is appropriate for the task at hand. Module 15 can incorporate privacy policies that prevent the provision of sensitive information in certain contexts. If confidential data is present in the current digital environment, such as personal information or protected data, Module 15 can flag contextual factors inhibiting its provision, indicating that providing information in this context would be inappropriate or risk a potential leak. Module 15 can also determine that information is no longer relevant due to the age of the captured information.For example, if a project was closed several months ago, and no contextual element in the current digital environment justifies recalling information about that project, Module 15 can consider this a contextual element that inhibits provision and decide that no provision is necessary. Module 15 can be configured to operate modularly, meaning that provision-triggering and provision-inhibiting contextual elements can be applied globally or partially. For example, Module 15 can be configured to, in a given context, inhibit the provision of some information while allowing the provision of other information. This allows for adaptation to situations where some information may still be relevant, while other information is no longer relevant, thus facilitating the provision of information that is more tailored to the user's specific needs and / or constraints.In some variants, Module 15 can detect if the user is engaged in a critical or highly focused task (for example, during a presentation or an online meeting). In these cases, irrelevant information or untimely reminders can be disruptive. Module 15 can inhibit the delivery of information to avoid interrupting these important moments.
[0123] Module 15 can incorporate machine learning algorithms to dynamically adjust the detection of provisioning trigger and inhibitor context elements. For example, it can learn from previous interactions that certain user actions, such as navigating to a specific project or opening a file type, are consistent provisioning trigger context elements for certain information provisioning. Conversely, it can adjust its provisioning inhibitor context elements based on repeated user behavior (e.g., ignoring callbacks in specific contexts). Module 15 can be configured to adapt to specific user preferences. A user can choose to enable certain provisioning trigger context elements (such as Alerts based on dates or critical events can be enabled, while others (such as reminders related to secondary tasks) can be disabled. This personalization allows for fine-tuning of the contextual elements that trigger and / or inhibit delivery, based on each individual's usage profile.
[0124] A configuration interface (not shown) may be provided, for example via a module launched during the initial use of the proposed technique and / or accessible at any time. The configuration interface may allow the user to specify the types of information to be captured, extracted, and their retention period, as well as the types of information to never be captured (related, for example, to privacy or confidential projects). In one variant, the configuration information is stored in a file, and pre-configuration profiles may be offered. Module 15 may be configured to access the parameters set via the configuration interface and thus allow the user or an organization to manage various storage parameters, thereby helping to ensure confidentiality and compliance with regulatory obligations, such as the GDPR.
[0125] Module 15 can be configured to analyze the user's real-time behavior in order to adjust triggers and inhibitors. For example, if an acceleration of the user's actions is detected (such as a series of rapid clicks or intensive use of an application), this can be interpreted by Module 15 as a signal of urgency or high concentration, and inhibitors can be activated to prevent distractions. Conversely, a period of relative inactivity can trigger an action to recall relevant information.
[0126] Module 15 can leverage the frequency of captures to establish correlations between recurring elements in the digital environment. For example, if a sales report and a project tracking document often appear together, Module 15 can associate this recurrence with a trigger to suggest providing information related to these documents in similar future situations.
[0127] Module 19, the decision-making module for information provision, is configured to receive the triggering and / or inhibiting context elements for an information provision action, identified by Module 15. Module 19 uses these context elements to decide, based on this information, whether or not to provide information. To make its decision, Module 19 can process the triggering and inhibiting context elements using several possible methods, analogous to those described in the context of the storage or non-storage decision made by Module 16.
[0128] Module 21, the cycle stopper for information provision, intervenes to stop the iteration of an information provision cycle if Module 19 decides that no information provision is relevant. The role of Module 21 may include The goal is to ensure effective management of IT resources by closing the delivery process for the current iteration of the cycle as soon as a negative decision is made by Module 19. For example, Module 21 can be configured to release the resources related to the potential delivery of information and prepare for the next iteration of the cycle. Module 21 can also be configured to manage the cycle's termination after an information delivery, and / or in cases of unforeseen interruptions. For example, if the digital environment changes drastically before the information delivery can be completed, a module (not shown) for detecting such a change in the digital environment can be configured to interrupt an information delivery initially decided by Module 19 to avoid inconsistencies.
[0129] When module 19 determines that a provision of information is relevant, module 20, which retrieves a list of stored information, is activated to query the database and obtain a list of potentially useful information based on stored user interface elements from previous digital environments. For example, module 20 can extract a list of relevant information from information blocks captured during previous cycles and stored in the database. This information may include documents, reports, contextual data, or any other stored element that can assist the user in their current task. This extraction may be based, in particular, on similarities between the current digital environment and past environments.For example, if the user is working on a specific project and documents related to that project have been accessed in similar contexts, Module 20 will include them in the list of relevant information. Module 20 can be configured to leverage external or document databases. For instance, numbered documents (such as invoices or contracts) can be pre-stored, and if a document contains a specific identifier that matches the current environment, then Module 20 can be configured to retrieve that document. Module 20 can also be configured to provide only extracts of information in contexts where it is unnecessary to retrieve entire documents. For example, it can extract only the paragraphs or sections of a document that contain information directly related to the current task.
[0130] Once the list of information is obtained by module 20, module 22, which sorts the resulting list, intervenes to classify the information in the resulting list according to its estimated relevance to the user (in the current environment). Module 22 establishes, for example, a hierarchy of the information in the list based on criteria such as contextual relevance (directly related to the current task), seniority (more recent information may, for example, (to be judged more relevant), frequency of use (information consulted regularly may, for example, be prioritized), and user responsiveness (information with which the user has had repeated interactions, such as clicks). Module 22 can optionally integrate a dynamic ranking system that adjusts the relevance of information in real time based on user interactions. Module 22 can allow (in certain embodiments) the user to define (for example, beforehand via a configuration module, or dynamically) personalized relevance criteria. For example, a user may give more importance to information related to specific projects or short-term deadlines.
[0131] Once the information in the resulting list has been sorted by module 22, module 23, which filters the resulting list, intervenes to filter this list and retain only the information to be provided. For example, the filtering may include removing information from the resulting list whose provision is deemed irrelevant, redundant, and / or inappropriate in the current context. Module 23 applies dynamic filtering rules to reduce the list of information to be provided, based on criteria such as: Redundancy: If certain information has already been provided recently or is already visible in the current digital environment, it may be considered redundant and removed from the list in some embodiments. Temporal relevance: Information that is too old, although initially classified, may be filtered in some embodiments if its relevance decreases over time, especially if more recent versions exist. Confidentiality and / or sensitivity: Filtering rules may be provided in some embodiments to exclude sensitive or private information, based on privacy policies, so that, for example, medical or financial information is not recalled in professional contexts. Lists of prohibited keywords or prohibited regular expressions may, for example, be used for this functionality.
[0132] External modules, using for example language models (LLM) and / or reinforcement learning techniques, can be used to improve the evaluation of the similarity between the current digital context of use and a previous digital context from which relevant information is obtained and / or to determine the relevance of such information given the current digital context.
[0133] Module 23 can be configured to adjust the filtering according to the user's current digital context. For example, during a meeting or a presentation to third parties, the filtering can, in certain embodiments, be more strict to avoid providing information that may be considered irrelevant or inappropriate.
[0134] Module 23 can incorporate machine learning algorithms that learn user preferences over time. For example, if certain information is consistently ignored or irrelevant in specific contexts, the module can be configured to automatically adjust its filtering criteria to avoid providing that information in the future.
[0135] Module 24, which provides at least one piece of information from the list of stored information, is responsible for actually providing the information to the user, after sorting and / or filtering (optional in some embodiments). These types of information can, for example, be determined during system configuration: they can be snippets, small blocks of text, or snippets containing typed information such as names, dates, references, keywords of specific interest, URLs, etc.
[0136] The choice of the amount of information to be provided may depend on the embodiments. Thus, in some embodiments, it may depend on several factors, such as the relevance of the information in the current digital context, a factor related to the nature of the information delivery interface, user preference, a threshold, etc. For example, when the user is focused on a specific task, module 24 can be configured in some embodiments to limit the information provided to only one or two items to avoid distracting the user.In a context where the list contains too much relevant information to be provided all at once, module 24 can schedule the provision of this information over several successive supply cycles, depending on the evolution of the digital context over time or in response to a user action (activation of a "next" button for example).
[0137] Module 24 can also manage how information is delivered to the user, taking into account the type of device used and the current digital context. Module 24 can use different methods to present information in a non-intrusive yet effective way. For example, information can be presented as contextual notifications that appear in a corner of the screen, or, for more complex information requiring interaction, pop-up windows can open to display several options. In a pop-up window, some information can, for example, be clickable (for links) or copyable to a clipboard (for other information).If the user is working in a specific document or application, the information can be inserted directly into the application, for example as suggestions in a word processing program or references in a table. Information delivery is not limited to visual interfaces. Module 24 can also, for example, provide information via a voice assistant or through tactile or vibratory cues. In this case, the information is delivered using speech synthesis. Such implementations can be particularly useful when the user cannot visually interact with a screen, for example, while driving, performing tasks that require the use of hands, using the screen for other purposes, or to accommodate a user's visual impairment. For example, the voice assistant can remind the user of upcoming appointments, tasks to be completed, or provide practical information such as directions, depending on their needs.As another example, Module 24 can integrate information via connected devices embedded in a vehicle, where the information can be displayed on a dashboard screen or provided through the vehicle's audio system. The information provided can include appointment reminders or instructions based on the destination and driving context, all while avoiding distractions for the user. Module 24 can also utilize wearable devices such as smartwatches. For example, a reminder for a meeting or task can appear on a smartwatch as a vibration or a discreet visual notification. Module 24 can also be configured to tailor the information provided to the user's display preferences, which can be set via a dedicated configuration interface.For example, the size, position, display duration, refresh rate, and / or scrolling speed of notifications can be adjusted according to preferences or the type of task being performed. Module 24 can include a smart display that adjusts how information is presented based on the context. For example, in a highly focused environment (such as a presentation or meeting), notifications can be more discreet or delivered only via a voice assistant to minimize interruptions.
[0138] It is understood that the provision of information to the user is carried out via one or more user interface elements. Thus, it can be provided that the capture operations implemented by module 12 automatically exclude the user interface elements used for the provision of information to the user, managed by module 24.
[0139] The user interaction acquisition module 25 monitors and collects user interactions with the information provided, for example, to adjust the future behavior of the system. Such embodiments can contribute to improving the relevance of the information provided in subsequent cycles. Module 25 can record explicit interactions, such as clicking on a notification, The opening of a pop-up window and / or the use of a voice command. Alternatively or in addition, Module 25 can record implicit interactions in certain embodiments. For example, a lack of user interaction with the provided information can be interpreted as an implicit non-engagement interaction, indicating that the information was ignored. The same applies in the case of a delayed interaction. The assessment of whether an interaction is delayed can be defined absolutely, for example, beyond a certain duration (used as a threshold), or relatively compared to an average or typical duration of user interactions with the provided information or with a particular type of information. Based on the interactions collected, Module 25 can adjust the provision of future information.Such embodiments can help the process described in this request to respond more effectively to the user's needs. For example, in some embodiments, if certain information is consistently ignored in a specific context, Module 25 can signal this behavior to other modules to lower the priority of that information in subsequent cycles. Module 25 can be configured to accept interactions through different interfaces. For example, when information is provided via a voice assistant, the user can interact by giving voice commands to request more details, dismiss reminders, or obtain additional information. For example, the user can say "Show me the meeting details" or "Cancel this reminder" to interact with the system.If the information is delivered on a connected device such as a watch, the user can interact via touch gestures, like swiping to dismiss a notification or performing specific gestures to open additional details about the information provided. When a user is in a vehicle, Module 25 can be configured to capture interactions via the dashboard or the vehicle's integrated voice system. For example, the user can verbally request information about their appointments while driving or confirm a task via a command on the dashboard. Module 25 can also analyze user behavior in real time to adjust the information delivery.For example, if the user appears focused on a specific task and the module detects low engagement with the information provided (such as not reacting to notifications or closing them quickly), this may signal a need to reduce the volume of information recalled or to adapt the delivery method (such as switching from a visual notification to a voice notification).
[0140] Module 26, the learning reinforcement module, intervenes to dynamically adjust the delivery criteria based on the user's past interactions, thereby helping to improve the relevance and personalization of the Information is provided during future cycles. Module 26 collects data on user interactions captured by Module 25 and analyzes it to detect usage patterns. For example, in some embodiments, if it finds that certain information is accessed more frequently than other information in similar contexts, Module 26 can increase the priority of that information in the future. Module 26 can incorporate a continuous learning model, where the system continues, for example, to learn and adjust its delivery criteria based on interactions accumulated over a time window (e.g., a long-term time window), without needing to reset or relearn user preferences. The window size can be set manually or through learning, and can range from a few hours to a few weeks or months.For example, Module 26 can also anticipate future user needs based on a number of previous cycles (for example, a large number of cycles based on day, hour, or week). Such an approach can help identify recurring or cyclical actions. For example, Module 26 can predict, in some embodiments, that particular information will likely be needed at a specific time or in a recurring context (such as the end of the month for financial reports).
[0141] The embodiment shown in [Fig. 1] details a possible flowchart of a process suitable for implementing the proposed technique. Alternatively, the process can be simplified, reducing it to a combination of an input interface and an output interface.
[0142] The input interface can be reduced to a module configured to obtain user interface elements from the current digital environment. This module can be a simple routine that intercepts elements visible on the screen, such as active windows or open documents, or that receives information already captured and / or processed directly from an external system.
[0143] The output interface may be limited to a module configured to decide whether or not to provide information relating to a previous digital environment to the user by applying a similarity criterion (predefined for example) between the current digital environment and stored information relating to the previous digital environment.
[0144] Such an embodiment offers the advantage of requiring reduced hardware and software resources, making the process lighter and more responsive while retaining the functionalities of obtaining user interface elements from the current digital environment and providing information.
[0145] The proposed technique can be implemented in a single computer device or in a system comprising a plurality of computer devices, each fulfilling specific functions.
[0146] For example, a single computer device can be configured to integrate all the functions necessary to obtain user interface elements from a common digital environment, to process these elements and to provide information.
[0147] Any suitable hardware and / or software may be used for the practical implementation of said device. In general, although aspects of the proposed technique may be described in this document as a process, device, system, procedure, method or method, it should be noted that the proposed technique may also cover computer memory that can be connected to a processor possibly connected to a communication interface, the memory storing instructions which, when executed by such a processor, enable the implementation of the processes, devices, systems, procedures, methods or methods described in this document.
[0148] Examples of devices suitable for implementing the proposed technique include, for example, but not limited to, personal computers, cloud servers, virtualization platforms, mobile devices such as smartphones or tablets, embedded systems for example in vehicles, augmented reality headsets, etc.
[0149] Such a device 30 comprises, as illustrated in [Fig.2], the following elements: an input interface 33 coupled (connected) in particular to a source 35, an output interface 34 coupled in particular to a human-machine interface 36, a processor 31 or processing unit, and a memory 32 storing instructions in the form of a computer program.
[0150] In this embodiment, when these instructions are executed by the processor, they enable the processor to control the input interface to obtain user interface elements from a current digital environment.
[0151] Furthermore, in this embodiment, when these instructions are executed by the processor, they allow the processor to control, based on a similarity between the current digital environment and a previous digital environment, the output interface to provide at least one piece of information obtained based on user interface elements of the previous digital environment.
[0152] Source 35 can correspond to various types of input depending on the context of use. For example, it can be a classic user interface (keyboard, mouse, touchscreen), an image source (camera, screenshot or multiple screens), an audio input (microphone for capturing voice commands or ambient sounds), or contextual sensors (such as a time clock, a GPS location sensor, or environmental sensors that collect data on brightness or temperature). In other cases, the source may also include live video feeds or information from surveillance or recording systems. The source may include a preprocessing circuit configured, for example, to filter, compress, or transform captured signals before their transmission to the processor 31 via the input interface 33, in order to optimize their subsequent processing by the processor 31. For example, a preprocessing circuit may be configured to improve the quality of captured data (audio, video, image, for example) and / or to extract specific features, such as visual patterns or acoustic signatures.
[0153] The human-machine interface 36 can refer to a wide range of devices enabling interaction with the user. This includes display screens (monitors, touchscreens, dashboards in vehicles), projection systems, virtual or augmented reality headsets, audio devices (speakers, earphones) for reproducing sound information, and haptic feedback systems that provide tactile feedback. This interface can also integrate more specific devices such as voice commands, visual guidance systems, or virtual assistants, depending on the user's needs and the context. The human-machine interface 36 can include a post-processing circuit configured, for example, to prepare and adapt signals for presentation to the user.For example, in the case of a visual display, a post-processing circuit can be configured to adjust the resolution, contrast, or apply graphic filters before presenting the information to the user. For an audio output, it can be configured to optimize sound clarity or adjust the volume.
[0154] The instructions may also cause, when executed by the processor, the implementation of the functions of one or more of the modules 10 to 26.
[0155] Alternatively, the input interface and the output interface can be provided by two separate devices configured to communicate with each other, either directly or via an intermediate device.
[0156] For example, a system for implementing the proposed method may include, as illustrated in [Fig. 3], the following elements: a first computer device 30 configured for obtaining the user interface elements of a typical digital environment and comprising at least the input interface 33, and a second computer device 40 configured for providing relevant information to the user and comprising at least the output interface 34, and a direct or indirect communication channel between the first device and the second device.
[0157] In such a configuration, the system may include at least one processor 31, 41 connected to at least one memory 32, 42, for example within the first device and / or the second device and / or an intermediate device. The first device, the second device, and / or the intermediate device may be configured to manage additional functions in order to optimize information processing and its delivery to the user. These functions may include, for example, intermediate processes for transforming, filtering, or classifying information obtained from the current digital environment, or processes related to analyzing the user's needs and preferences.
[0158] The first device can also be configured to analyze and process the captured information before transmitting it to the second device. For example, it can include modules implementing functions for transforming information blocks (module 13), content analysis (module 14), or searching for triggering or inhibiting contextual elements (module 15).
[0159] The second device may also include functions related to the personalization and prioritization of information. For example, it may be equipped with modules responsible for classification (module 22), filtering (module 23), or personalization of the delivery methods (module 24).
[0160] An intermediate device, if used, can act as a processing unit dedicated to data storage and management. For example, such a device can implement the functions of modules 16 (storage decision), 17 (information storage), and 18 (storage cycle stop).
[0161] In addition, the intermediate device, or the first or second device, or a combination of these devices, can also support adaptive learning functions via the learning reinforcement module 26. For example, by monitoring user interactions and dynamically adjusting the criteria for providing information, the device can refine the information provided in real time, helping to improve the user experience (e.g., through a more personalized and relevant experience at each iteration of the cycle).
[0162] Reference is now made to [Fig.4], which illustrates an example of a system suitable for implementing the proposed technique, in an example of an embodiment.
[0163] The illustrated system has a functional architecture composed of a set of functional modules: a main module 50, a screen capture module 51, an image analysis module 52, including for example an optical character recognition module 53 and an image block cutting module 54, an activation and / or inhibition decision module 55, a storage module 56, a search and recommendation module 57, including for example a similarity search module 58 and a block selection module 59, and a human-machine interface 60, including for example a display management module 61 and a user feedback management module 62.
[0164] The main module 50 coordinates the actions of the other modules in the system. It ensures that each module communicates and works in a synchronized manner for the smooth running of operations.
[0165] The screenshot module 51 is responsible for regularly capturing copies of one or more screens of a user device. Captures are performed, for example, every T seconds, thus providing a dynamic view of the current digital environment. The captured images are then transmitted to the image analysis module 52 for processing. The screen capture module 51 represents a specific implementation of the digital environment capture module 12 described in [Fig. 1], in which the current digital environment includes an image of the user's screen.
[0166] The image analysis module 52, similar to modules 13 and 14 in [Fig. 1], is responsible for analyzing the captured images. It can be implemented in several ways, with varying levels of complexity. For example, module 52 may include an optical character recognition (OCR) module 53 configured to extract text blocks from the captured images. Module 52 may further include an image block-slicing module 54 configured to receive as input one or more text blocks, previously extracted by module 53 from a captured image, and to output a new segmentation of the captured image into text blocks. Module 54 may, for example, take into account predefined rules and / or predefined parameters to perform the segmentation.Module 54 can, for example, be configured to identify multiple themes within a single input text block and to decompose that text block into smaller blocks. For instance, the decomposition parameters can cause Module 54 to break down certain blocks into atomic information, such as names, URLs, references, links, etc. Conversely, Module 54 can be configured to group several input blocks that relate to the same theme.
[0167] Alternatively, module 52 may include an automatic slicing module trained by deep learning, via numerous image examples and associated text blocks, to perform automatic segmentation of a captured image into blocks, end-to-end. The automatic segmentation module can, for example, be based on a computer vision model coupled with a Transformer-type architecture.
[0168] Module 52 may include a filtering module for the extracted blocks so as to allow selection of the blocks of information actually retained. For example, the filtering module may be configured to automatically recognize and prune certain text fields such as menu ribbons, headers, footers, a directory list, etc. When module 52 includes an optical character recognition module 53 and a block image segmentation module 54, the filtering may be implemented before optical character recognition, or after optical character recognition and before block image segmentation, or after block image segmentation.When module 52 includes a deep learning-trained auto-slicing module, filtering can be implemented before or after auto-slicing, or the auto-slicing module can be trained to perform both slicing and filtering simultaneously.
[0169] Module 52 can also be configured to retrieve block-related metadata, such as the position of blocks on the screen or text styles appearing in blocks, or to retrieve contextual information from captured images such as the date, the user's geographic location, or the version and / or language of the operating system being used.
[0170] The activation and / or inhibition decision module 55, analogous to module 15 in [Fig. 1], is responsible for determining in real time whether the system's recording and recall functions should be active or not. Module 55 can, for example, take into account rules (e.g., predefined) and / or parameters (e.g., predefined) defining the conditions under which the system's recording and recall functions are active and / or the conditions under which the system's recording and recall functions are inactive.
[0171] In an example, these functions are active if and only if: certain trigger keywords and / or certain allowed applications are detected on the screen at the current time, and no inhibitor keyword and / or no prohibited application is detected on the screen at the current time.
[0172] Triggering keywords may, for example, include project names, technical vocabulary, identifiable references with regular expressions, URLs, etc. Inhibiting keywords may be grouped by default in a blacklist covering private use cases of the workstation (medical appointment, urgent school / personal message, banking application, etc.).
[0173] The storage module 56 is responsible for managing the recording and organization of blocks, metadata, and contextual information in a persistent database. In the database, each block is associated with the digital environment at the time the image from which it originates was captured. Each block can also be associated with a utility level. A block's utility level is likely to change over time, influencing the probability that this block will be recalled in similar future contexts. Although the example detailed here primarily concerns the processing of image blocks, the storage module 56 can also be configured to store blocks other than image blocks. For example, blocks of the current environment can be obtained by temporally segmenting an audio or video stream captured during a time interval corresponding to the current instant.Module 56 can, for example, take into account rules (predefined, for example) and / or parameters (predefined, for example), defining, for example, the size of the database, the nature of the data stored in it, and / or the retention period of the stored data. Module 56 can also be configured to pre-inject external document sources into the database to enrich the available information, such as document repositories and / or project-specific files.
[0174] Module 57, the search and recommendation module, is responsible for searching for and / or selecting relevant information based on the current digital environment. Module 57 may, for example, include a similarity-based search module 58, which identifies previous digital environments similar to the current digital environment. These previously identified digital environments are then sorted by similarity. Module 57 may further include a block selection module 59, which selects, from among the blocks associated with the previous digital environments identified by module 58, the most useful blocks that are not redundant with each other or with respect to the information already present in the current digital context.Parameters (predefined for example) and / or rules (predefined for example) can also be applied to prioritize blocks containing certain types of information, such as links, references and / or names of people.
[0175] Alternatively or in addition, the search and recommendation module 57 may include one or more autoencoders pre-trained to associate blocks of prior digital environments with a vector representation (or "embedding") of those blocks. A vector representation, extracted from the blocks by an autoencoder, constitutes, in a condensed form, an abstraction of the significant and relevant features of those blocks for the intended task. As this representation is not directly observable in the input data, it is described as "latent" or "hidden". This or these auto-encoders can be used to associate blocks of the current digital environment with a set of latent vector representations of blocks from previous digital environments, in a relational way, and to identify, on the basis of this association, the previous digital environments most similar to the current digital environment.
[0176] Module 57 can also be configured to take into account a date and / or time indicated in a block of a previous digital environment, and automatically recall one or more blocks of that previous digital environment when the current date and / or time is the one indicated.
[0177] The human-machine interface 60, similar to the information delivery module 24 of [Fig. 1], is responsible for interacting with the user. The human-machine interface 60 may include a display management module 61, which presents the selected blocks as extracts ("snippets") or other forms of summary. The human-machine interface 60 may include a user feedback management module 62, which records the user's interactions with the presented blocks. The human-machine interface 60 may also be configured to launch other applications when the provided block includes a link or a document to be opened.Interactions can also be used to adjust the utility level of blocks: for example, interacting with a presented block can increase its associated utility level, while not interacting with a presented block can decrease it. Optionally, the database can be cyclically purged of blocks (and associated digital environments) whose utility level is considered very low or zero.
[0178] Finally, the system can be adapted to manage multiple users in a shared environment. For example, specific parameters can be applied to distinguish one user's digital environment from another's, based on metadata such as user IDs or access times. This ensures that the information provided to each user is relevant to their specific digital environment.
[0179] Some examples of use cases are now proposed.
[0180] A first use case concerns a reply to an email.
[0181] Alice receives an email from a new correspondent, Bob. On the screen, the signature The correspondent's digital information (name, address, phone number, etc.) appears. This signature is captured, along with a response deadline in the email body (the day after tomorrow...). To reply to this email, Alice opens a file and consults the associated document: the link to this file is captured. Similarly, when Alice makes a When searching online to verify other necessary information, the browser URL is also captured. All associations are stored and linked together, including the correspondent's name and email address, as well as the response deadline.
[0182] Alice has other urgent matters to attend to, and interrupts her response to Bob.
[0183] The process in this application can help Alice return to her task in several ways:
[0184] The next day, Alice spontaneously starts an email to Bob. As she types his email address on the screen, the associated information (Bob's electronic signature, the response deadline, the link to the file she had opened on the subject, and the URL she had consulted) appears in a pop-up window in the corner of the screen. Alice can then view or copy / paste this information to quickly get back into the context of her work.
[0185] In certain embodiments, the method of the present application is capable of sending a reminder to Alice, starting from the response deadline which has been captured and automatically recognized as a date, on the same day or the day before. In this case, a pop-up window entitled, for example, "Reminder" appears, displaying the paragraph in which this date was captured, Bob's name, and other contextual information (signature, link to the document, URL).
[0186] A second use case concerns the recovery of a context following a teletraining session.
[0187] Alice completed a distance learning course two weeks ago on a specialization in labor law. During this course, various information was displayed on her screen, such as excerpts from legal texts, case studies, and other example situations. Today, Alice receives an email from a colleague asking for advice on a problem similar to what she covered in her course two weeks ago. The similar situation discussed in the course, along with the relevant legal texts, is presented in pop-up windows.
[0188] A third use case relates to retrieving information about a product.
[0189] Alice performs internet searches (for example on a smartphone), and retrieves several pieces of information about herself, such as her price, and various technical details that correspond to keywords for information to be retrieved
[0190] Subsequently, Alice begins to write a report on this product; the information previously seen and corresponding to her writing context is displayed and offered for copy / paste as she goes along, or as simple information to be taken into consideration during the writing process. Industrial application
[0191] These technical solutions can be applied in various types of services where they can contribute to improving information management, operational efficiency, and / or user experience. Examples of possible service types include office automation, accounting, telemedicine, digital marketing, IT security, industrial maintenance, etc.
[0192] This disclosure is not limited to the examples described above, which are merely examples, but encompasses all the variations that a person skilled in the art can consider in the context of the protection sought.
Claims
Demands
1. Method of supplying at least one piece of information, the method comprising: obtaining, by at least one input interface of a first computer device, user interface elements of a current digital environment, and based on a similarity between the current digital environment and a previous digital environment, supplying, by at least one output interface of a second computer device, at least one piece of information obtained based on user interface elements of the previous digital environment.
2. A method according to the preceding claim, comprising filtering user interface elements of the current digital environment.
3. A method according to any one of the preceding claims, comprising the use of a database storing user interface elements from the previous digital environment.
4. A method according to any one of the preceding claims, comprising the use of a pre-trained machine learning model to identify a relationship between user interface elements of the previous digital environment.
5. A method according to any one of the preceding claims, comprising: obtaining prior information based on the user interface elements of the prior digital environment, prioritizing the prior information obtained based on a criterion of relevance relative to the current digital environment, and providing, by at least one output interface, at least one of said 'prioritized prior information'.
6. A method according to claim 5, wherein the prioritization is adjusted based on user interaction or lack of interaction with information previously provided by at least one output interface.
7. A method according to any one of the preceding claims, wherein the acquisition of user interface elements is triggered periodically and / or taking into account the current digital working environment.
8. A computer device comprising at least one microprocessor configured to: obtain user interface elements from a current digital environment via at least one input interface of said computer device, and provide, based on a similarity between the current digital environment and a previous digital environment, via at least one output interface of said computer device, at least one piece of information obtained based on user interface elements from the previous digital environment.
9. Computer device according to claim 9, wherein said computer device is a communication terminal.
10. System comprising: at least a first computing device comprising at least one microprocessor configured to obtain user interface elements from a current digital environment via at least one input interface of at least a first computing device, and at least a second computing device comprising at least one microprocessor configured to provide, based on a similarity between the current digital environment and a previous digital environment, via at least one output interface of said at least a second computing device, at least one piece of information obtained based on user interface elements of the previous digital environment.
Citation Information
Patent Citations
Switching back to a previously-interacted-with application
US20120304132A1
Recall service for productivity applications
US20170220359A1