Device and method for processing a query for information for a control task

A generative machine learning model with combined ranking methods optimizes query processing and response refinement in complex systems, addressing the challenge of dispersed expert knowledge for efficient and accurate control in dynamic environments.

WO2026135558A1PCT designated stage Publication Date: 2026-06-25RAZER ASIA PACIFIC

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
RAZER ASIA PACIFIC
Filing Date
2025-06-17
Publication Date
2026-06-25

AI Technical Summary

Technical Problem

Controlling complex processing systems with multiple devices and data sources requires reliable methods for processing queries and providing accurate responses, especially in dynamic environments like production lines and simulated scenarios, where expert knowledge is dispersed across various data sources.

Method used

A method involving a generative machine learning model that combines multiple ranking methods to select relevant data elements, optimizes queries, and refines responses using Retrieval-Augmented Generation (RAG) to provide contextually grounded and real-time information for controlling systems.

Benefits of technology

Enhances control efficiency and accuracy in production facilities and simulated environments by delivering actionable insights and personalized suggestions, improving user experience and decision-making through low-latency, contextually enriched responses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure SG2025050418_25062026_PF_FP_ABST
    Figure SG2025050418_25062026_PF_FP_ABST
Patent Text Reader

Abstract

Aspects concern a method for processing a query for information for a control task, comprising receiving a query, retrieving a plurality of data elements from one or more data sources, wherein the data elements containing information related to the query, determining a ranking score for each of the plurality of data elements according to each of a plurality of ranking methods, determining a combined ranking score for each data element of the plurality of data elements by combining the ranking scores determined for the data element according to the plurality of ranking methods, selecting a subset of the plurality of data elements based on the combined ranking score, formulating a prompt with a request to respond to the query for a generative machine learning model using information from the selected subset, supplying the prompt to the generative machine learning model and generating a response to the query using an output provided by the generative machine learning model in response to the prompt.
Need to check novelty before this filing date? Find Prior Art

Description

DEVICE AND METHOD FOR PROCESSING A QUERY FOR INFORMATION FOR A CONTROL TASKTECHNICAL FIELD

[0001] Various aspects of this disclosure relate to devices and methods for processing a query for information for a control task.BACKGROUND

[0002] Controlling processing systems including possibly a high number of processing devices is a complex task and requires expert knowledge. This may apply to production lines comprising robot devices and / or machinery but also to simulated environments, where for example a high number of users interact for professional or recreational purposes.

[0003] Typically, there arc various data sources of expert knowledge available, c.g. internal manuals or databases or public sources on the Internet. Machine learning models can help extract and summarize expert knowledge from those data sources but in view of the many different queries for data that may occur and the many different data sources that are available, reliable approaches for processing of queries (and in particular providing responses to queries) are desirable.SUMMARY

[0004] Various embodiments concern a method for processing a query for information for a control task, comprising receiving a query, retrieving a plurality of data elements from one or more data sources, wherein the data elements containing information related to the query, determining a ranking score for each of the plurality of data elements according to each of a plurality of ranking methods, determining a combined ranking score for each data element of the plurality of data elements by combining the ranking scores determined for the data element according to the plurality of ranking methods, selecting a subset of the plurality of data elements based on the combined ranking score, formulating a prompt with a request to respond to the query for a generative machine learning model using information from the selected subset, supplying the prompt to the generative machine learning model and generating aresponse to the query using an output provided by the generative machine learning model in response to the prompt.

[0005] According to one embodiment, the plurality of ranking methods includes one or more keyword-based ranking methods, one or more semantic ranking methods and one or more cross-encoder ranking methods.

[0006] According to one embodiment, the method comprises determining the combined ranking score by a weighted combination of the ranking scores determined for the data element according to the plurality of ranking methods.

[0007] According to one embodiment, the method comprises determining the combined ranking score according to a reciprocal ranking score.

[0008] According to one embodiment, the subset includes data elements which have higher ranks according to the combined ranking score than data elements of the plurality of data elements not included in the subset.

[0009] According to one embodiment, selecting the subset includes selecting n data elements of the plurality of data elements which have the highest rank according to the combined ranking score.

[0010] According to one embodiment, selecting the subset includes selecting data elements of the plurality of data elements which have scores within m (i.e. a predefined number of) standard deviations of the highest combined ranking score (to account for varied amounts of data elements).

[0011] According to one embodiment, the data elements contain context information of the query.

[0012] According to one embodiment, the query specifies context information of the query.

[0013] According to one embodiment, the method comprises selecting the plurality of ranking methods depending on a type of the query.

[0014] According to one embodiment, the method comprises retrieving the plurality of data elements from the one or more data sources by identifying the one or more data sources by expanding the query or breaking it down into multiple related sub-queries.

[0015] According to one embodiment, the data sources are disparate databases, each containing different data structures, content, timestamp and places of origin.

[0016] According to one embodiment, the data sources are subsets of the same database, grouped by similarity or structure.

[0017] According to one embodiment, the method comprises formulating the prompt using a prompt history.

[0018] According to one embodiment, the method comprises performing an evaluation of information from the selected subset, augmenting the information from the selected subset using one or more Internet searches in response to a result of the evaluation of the information indicating an information quality or quantity below a predetermined minimum and formulating the prompt using the augmented information (else omitting the Internet searches and directly using the information without the augmentation).

[0019] According to one embodiment, generating the response to the query comprises performing an evaluation of the output provided by the generative machine learning model and generating the response by refining the output of the generative machine learning model using one or more Internet searches in response to a result of the evaluation indicating a response quality below a predetermined threshold (else omitting the Internet searches and directly using the output for the response).

[0020] According to one embodiment, the generative machine learning model is a large language model.

[0021] According to one embodiment, a method for controlling a controlled (technical) system is provided, comprising generating a query regarding an operation of the controlled system, processing the query according to any one of the embodiments described above and controlling the controlled system according to the generated response to the query.

[0022] According to one embodiment, the controlled system is a data processing system.

[0023] According to one embodiment, the controlled system performs a simulation of an environment and controlling the controlled system includes controlling an object in the simulated environment.

[0024] According to one embodiment, the controlled system comprises an arrangement of robot devices and / or machinery.

[0025] According to one embodiment, the method comprises controlling the controlled system according to a user input.

[0026] According to one embodiment, a server computer is provided comprising a communication interface, a memory interface and a processing unit configured to perform the method of any one of the embodiments described above.

[0027] According to one embodiment, a computer program element is provided comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of the embodiments described above.

[0028] According to one embodiment, a computer-readable medium is provided comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of the embodiments described above.

[0029] BRIEF DESCRIPTION OF THE DRAWINGS

[0030] The invention will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and the accompanying drawings, in which:- FIG. 1 shows a processing arrangement comprising one or more processing devices.- FIG. 2 illustrates an information provision system according to an embodiment.- FIG. 3 shows a flow diagram illustrating a method for processing a query for information for a control task.- FIG. 4 shows a server computer according to an embodiment.DETAILED DESCRIPTION

[0031] The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure. Other embodiments may be utilized and structural, and logical changes may be made without departing from the scope of the disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.

[0032] Embodiments described in the context of one of the devices or methods are analogously valid for the other devices or methods. Similarly, embodiments described in the context of a device are analogously valid for a vehicle or a method, and vice-versa.

[0033] Features that arc described in the context of an embodiment may correspondingly be applicable to the same or similar features in the other embodiments. Features that are described in the context of an embodiment may correspondingly be applicable to the other embodiments,even if not explicitly described in these other embodiments. Furthermore, additions and / or combinations and / or alternatives as described for a feature in the context of an embodiment may correspondingly be applicable to the same or similar feature in the other embodiments.

[0034] In the context of various embodiments, the articles “a”, “an” and “the” as used with regard to a feature or element include a reference to one or more of the features or elements.

[0035] As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.

[0036] In the following, embodiments will be described in detail.

[0037] FIG. 1 shows a processing arrangement 100 (as an example of a technical system to be monitored and / or controlled) comprising one or more processing devices 102. The one or more processing devices may for example be robot devices (e.g. robot arms or mobile robots, e.g. for transportation), manufacturing machines, etc., which are traversed, for example, by a product (or a preliminary product or an intermediate product) according to a sequence of processing stages. The one or more processing device may also be data processing devices, i.c. one or more computers performing a data processing task which may also include simulations of physical environments, in particular simulations of a gaming world for a computer game.

[0038] So, the one or more processing devices 102 carry out a physical or chemical process, which may comprise any type of technical processing, such as a manufacturing process (e.g., the manufacture of a product or intermediate product) and / or a machining process (e.g., the machining of a workpiece) or may cany out a data processing e.g. a simulation.

[0039] The processing arrangement 100 comprises a control device 101 which is configured, for example, to monitor the processing carried out by one or more processing devices 102 and to control it by supplying control parameters 107 (e.g. process parameters such as temperature, exposure time, force, torque) to the one or more processing devices 102.

[0040] The term “control device” (also referred to as “controller”) can be understood to mean any type of logical implementation unit that may, for example, comprise a circuit and / or a processor capable of executing software, firmware or a combination thereof stored in a storage medium and capable of issuing instructions, for example to a device for executing a process in the present example. For example, the control device can be set up by program code (e.g., software) to control the operation and / or adjustment (e.g., calibration) of one or more processing devices 102, such as components of production systems such as a robot, etc., in order to perform a specific task (e.g., manufacturing and / or processing) or the control devicemay correspond to a software module which receives user input and controls a data processing task performed by the one or more data processing devices 102, c.g. control movement or actions of a character in a simulated world.

[0041] So, control parameter can be a parameter that describes an input variable, such as a physical or chemical quantity, an applied voltage, the opening of a valve, etc. but may also be value of a variable in a data processing task such as a certain input, e.g. controlling an object (e.g. a character) in a simulated environment.

[0042] The control device 101 monitors, for example, the operation of the processing arrangement 100 to collect system state information which provides it with awareness of the system to be monitored and / or controlled. Collection of such system state information may include, in particular, determining a result of the task (e.g., properties of a manufactured product) during or after the execution of a processing task.

[0043] To allow the control device 101 to collect system state information, the processing arrangement 100 may comprise, for example, one or more sensors 103. The one or more sensors 103 may be set up to detect a result of the target task, in particular' of a physical or chemical process. A result of the process may be, for example, a property of a manufactured product or a processed workpiece (e.g., hardness, strength, density, micro structure, macro structure, chemical composition, etc.), the success or failure of a skill (e.g., picking up an object) of a robot, the resolution of an image captured by a camera, etc. The result of the process can be described by at least one (i.e., exactly one or more) output variables. The one or more sensors 103 can be set up to detect the at least one output variable, and based on this, the control device 101 can determine a monitoring result 104, which may in particular include system state information. It should be noted that the monitoring result 104 may also contain information about how a processing task is being performed, e.g., a temperature reached during processing or a specific alarm (e.g., processing temperature or pressure exceeded), etc.

[0044] In case of a data processing task, e.g. a simulation, the control device 101 is provided with feedback from the simulation. This may be results of actions performed by a character controlled by the control device 101 but, c.g. in case that multiple users have an impact on the simulation, such as in a multi-player game, the feedback may also result from impact of other users or control devices on the simulation. For example, each user operates one of the processing devices 102 via a respective control device 101 (e.g. providing a respective user interface).

[0045] Using the monitoring result 104, the control device 101 can set or adjust the control parameters 107, e.g., to ensure that a specific property of a manufactured product is achieved, i.e., e.g., for quality assurance or control an object or character in the simulation.

[0046] This can be done according to an input from a user who is shown the monitoring result 104 (processed if necessary), makes monitoring and control decisions, and gives corresponding commands to the control device 101.

[0047] In order to carry out monitoring and control decisions, e.g. to select control parameters 107 on the basis of monitoring results and / or required properties, the human user or the control device 101 may want or require information about the processing arrangement100 (e.g. about characteristics of machines, products, control parameters, sensor data, the simulation (e.g. game mechanics) etc.), i.e. expert knowledge. According to various embodiments, an information provision system 109 is provided connected to the control device101 via an interface 105 (e.g. a communication network, e.g. for connecting to the Internet) via which the control device 101 may send queries 108 to the information provision system 109.

[0048] In the case of a human user or a software agent that uses natural language (e.g., an Al assistant that is also intended to be understood by humans), it may be desirable for such information to be provided by means of queries 108 in natural language. To enable this, the information provision system 109 includes a large language model (LLM) 106 which is prompted to provide responses to queries 108.

[0049] LLMs may employ Retrieval-Augmented Generation (RAG) as a strategy to enhance their capabilities. RAG can be seen to combine the strengths of retrieval of relevant external knowledge and the generative abilities of the LLM.

[0050] According to various embodiments, an enhancement of the traditional RAG approach is provided by incorporating enhancements at multiple stages. Accordingly, embodiments relate to an artificial intelligence (Al) engine, and in particular, an Al engine with advanced Retrieval- Augmented Generation (RAG) workflow. This allows providing a control device 101 or its user with even more pertinent information and thus results in an improved control of the processing arrangement 100.

[0051] This may for example result in a more efficient control of a production facility and / or higher quality of manufactured products.

[0052] However, also in applications where the processing arrangement 100 performs data processing, it may improve efficiency or accuracy (e.g. in prediction tasks such as objectdetection, object tracking, etc.). It may also mainly improve user experience and / or convenience: for example, in a gaming environment, particularly in real-time multiplayer games, players must navigate dynamic game (i.e. simulation) states that evolve continuously based on hero movements, enemy positioning, or in-game purchases. This fast-paced evolution necessitates tools capable of delivering personalized, actionable insights in real time. A highly specialized and efficient Al engine designed for real-time (RAG-based) retrieval of data, e.g. for decision-making in fast-paced multiplayer environments (e.g. for context-aware guidance in games requiring split-second decisions and adaptive strategies) may be very helpful for users (i.e. players in this use case).

[0053] Tn the following, embodiments of an AT engine with advanced RAG workflow are described that enhance traditional RAG systems by incorporating enhancements at multiple stages, for handling (possibly highly dynamic) states of a technical system (e.g. a production facility) or a simulation (e.g. a computer game) and deliver actionable insights, i.e. information for performing control actions (such as setting control parameters 107, e.g. for one or more machines, or also input for a real-time multiplayer games).

[0054] So, according to various embodiments, a real-time AT-drivcn approach for providing a control device 101 or user with information allowing decisions about actions (e.g. setting of control parameters 107) to be taken is provided, integrating system state awareness (e.g. game awareness) with a RAG pipeline, resulting in a RAG-based (and in particular LLM-based) information provision system 109. By leveraging query optimization, dynamic routing, and post-retrieval refinement, such an information provision system 109 can offer real-time insights and personalized control (e.g. gameplay) suggestions tailored to the system state (e.g. evolving game context).

[0055] The information provision system 109 is configured according to a framework which not only ensures low-latency responses but also provides actionable outputs to improve decision-making (e.g. by the control device 101 and / or a human user (e.g. a player) and thus enhances, for example, the control strategy (e.g. elevating user (e.g. gameplay) experience).

[0056] Input to the information provision system 109 (which may come in the query or from other data sources, e.g. an interface to the one or more processing devise 102, and in particular the sensors 103) includes information providing the information provision system with system awareness (of the monitored and / or controlled system). In case of a simulation, such as a computer game, the system state awareness may correspond to game state awareness, and thesensors 103 may correspond to an output interface of the simulation, e.g. a live stream. Thus, game state awareness may, for example, come from interpreting live data streams from the game environment, including minimap data (e.g., hero movements, enemy clusters), health / resource levels, and event triggers (e.g., tower destruction).

[0057] The information provi ion system 109 may provide information for deriving control actions or directly indicate control actions (such as settings of control parameters, e.g., temperature, voltage, etc). In case of a simulation such as a computer game, information for a user (player) to derive control actions may include gameplay suggestions derived from processed game data tailored to the player's live game conditions. It should be noted that in gaming applications, a control action may not only be an action performed by a user and thus have direct impact on the simulation but also be adaptation performed by a control device 101 which adapts the simulation or game. The suggested action may also be used for automating gameplay and detect any bugs that may have been missed during game development. For example, Al-driven solutions may be employed to analyse player behaviour in real-time, adjusting game environments dynamically to match skill levels and preferences. This approach ensures players remain engaged and challenged without feeling overwhelmed.

[0058] FIG. 2 illustrates an information provision system 200 according to an embodiment.

[0059] According to various embodiments, the information provision system 200 uses an RAG workflow which builds on traditional RAG systems and incorporates enhancements at multiple stages, including query optimization 201, semantic routing 202, post-retrieval refinement 203 and post-generation processing 204.

[0060] The input to the information provision system 200 is a query 205 (typically including contextual information, e.g. information about the system state), e.g. corresponding to a query 108.

[0061] According to various embodiments, semantic caching 206 is applied to queries. Semantic caching 206 efficiently reuses frequently retrieved embeddings and query results, reducing latency and computational costs.

[0062] The semantic routing 202 may include dynamic query routing which intelligently directs contextual queries to multiple data sources 207 (or database modules, in general data sources), i.c. searches for additional context information, e.g. in the Internet, ensuring optimized and targeted data retrieval, i.e. retrieval of data elements 208 e.g. documents from data sources (e.g. databases) which hold information giving context of the query. The dataelements may for example be some sort of data structures, in particular, for example, include one or more data structures including system state information, c.g. received via an interface to the one or more processing devices 102 or sensors 103. It should be noted that depending on the architecture used, system state information may also be retrieved from one of the data sources 207 (e.g. in case of sensor data being provided to a certain storage or is provided at a certain interface). Data may be stored in the data sources using a pre-retrieval process 211. The pre-retrieval process 211 refers to the pipeline by which raw data is prepared for efficient and context-aware retrieval. This process begins with the data, including metadata, which may originate from various sources such as documents, system logs, product manuals, HTML pages, or sensor feeds. The data is then segmented through a chunking process, which splits the input into coherent units. Next, each data chunk is passed through an embedding model, which transforms the content into vector representations suitable for similarity search. These embeddings capture the contextual and semantic meaning of the content, enabling robust retrieval even when queries arc phrased differently from the source data. Finally, the vectorized data is indexed using advanced techniques such as HNSW (Hierarchical Navigable Small World), IVF (Inverted File Index), or Flat indexing, and stored in a database. This indexing phase enables fast and scalable similarity-based retrieval during runtime queries, allowing the system to fetch the most relevant content based on live input or system state.

[0063] The post-retrieval refinement (or post-retrieval processing) 203 may include postretrieval context processing, where context (which is additional to the one included in the query 205 itself and which is given by the data elements 208, i.e. the content (i.e. search results) retrieved from the data sources 207) is reranked and evaluated, enriching the retrieved content and improving downstream processing.

[0064] The post-retrieval refinement 203 for example includes refinement of retrieved results (i.e. data elements 208) through compression, iterative re-ranking, and corrective RAG strategies through a multi-stage evaluation and correction pipeline. These features ensure that the information provision system 200 generates accurate, contextually grounded, and real-time responses. After initial re-ranking and compression of the retrieved data elements 208, a retrieval evaluation module assesses the quality of the re-ranked results. If the evaluated content is deemed to be of high relevance ("good"), it proceeds through a knowledge refinement stage. If the evaluation deems the initial retrieval insufficient or irrelevant ("bad"), the system triggers active retrieval, incorporating corrective RAG strategies. These strategiesmay involve retrieving supplementary data from a web search component. This iterative feedback loop, comprising retrieval evaluation, corrective retrieval, knowledge refinement, and web search, ensures that the system continuously adapts to dynamic contexts based on up-to- date or external knowledge sources, ultimately contributing to the final context generation used in downstream processing. As such, post-retrieval refinement 203 plays a crucial role in delivering accurate, real-time, and context-aware outputs within the overall information provision system.

[0065] Based on the query 205 and the additional context information found (included in the data elements 208 and processed by post-retrieval refinement 203) and possibly a chat history 214 and a system prompt 215, a prompt 209 is formed which is fed to a generative model 210, e.g. an LLM. The post-generation (Self- RAG) process 204 operates on the reflection tokens 212 of the generative model 210 for generating a final response 213 to the query 205 (e.g. fed back to the control device 101 and / or its user).

[0066] The enhancements described above ensure, at least in combination, real-time adaptability, delivering robust, low-latency, and precise results for dynamic industries like gaming, customer support, and real-time analytics and control of technical system such as production plants. In particular, the information provision system’s pipeline allows generating reliable and contextually enriched responses for compound queries.

[0067] Tn the following, features of the information provision system 200 are described in more detail.

[0068] Regarding the query optimization 201: this improves retrieval accuracy by refining queries before data (e.g. document) retrieval. Key techniques for example include:• Decomposition: Splitting complex queries into sub-queries.• Expansion: Reformulating queries to retrieve broader, relevant results.• HyDE (Hypothetical Document Embeddings): Generating synthetic query documents for better matching.• Step-Back Prompting: Refining query prompts iteratively to align with task goals.It improves retrieval recall and relevance and allows the information provision system 200 to handle complex queries more effectively by gathering a larger range of relevant initial documents.

[0069] Regaiding the semantic routing 202 (static and / or dynamic): routing determines how the query 205 interacts with the data retrieval layer (i.c. the data sources 207 and their interfaces):• Static Routing: predefined rules route queries to specific methods, such as SQL for structured data.• Dynamic Routing: incorporates function calling for external tools.It balances efficiency and adaptability and ensures that queries arc routed to the most appropriate data source 207 (e.g. database).

[0070] Regarding the semantic caching 206 in the data retrieval from the data sources 207 : queries 205 interact with multiple databases (DBs) 207 (Vector DB, Graph DB, relational database service), while semantic caching enhances retrieval efficiency:• Semantic caching stores query embeddings and their results for reuse when similar queries appear.• Integrating semantic caching into retrieval pipelines results in reduced latency and improved efficiency.It enables latency reduction since it eliminates redundant database lookups, computational savings since it reduces the cost of repetitive or semantically similar queries and increases scalability since it enables fast response times under heavy query loads.

[0071] Regarding the context compression of the post-retrieval refinement 203: context compression reduces the size of retrieved data elements 208 to fit within token limits while retaining essential details. It may include• summarization: generates concise, task-specific summaries.• embedding filtering: selects only the most relevant content for generation.It reduces computational costs, generation time, and improves focus and efficiency of generation tasks.

[0072] Regarding the corrective RAG of the post-retrieval refinement 203: it ensures the quality and relevance of retrieved data elements and for example includes:• re-ranking: ranks data elements for contextual relevance.• retrieval evaluation: filters data elements that align poorly with the query intent• web search: dynamically fetches real-time information when retrieval fails or is outdated.It combines static and dynamic retrieval for accuracy and enables real-time knowledge updates, bypassing model limitations.

[0073] According to various embodiments, the ranking of data elements is performed according to multiple ranking methods, such as:Keyword-Based Ranking (e.g. tf(term frequency), idf(inverse document frequency)) Semantic ranking: ranking based on similarity of embeddings of the data elements with an embedding of the query', for example using an OpcnAI embedding model), by computing a similarity score (e.g. cosine similarity or dot product similarity), to the query embedding for each data element embedding and rank the data elements according to their cosine similarity scores• Cross-Encoder Ranking: Use a pretrained cross-encoder model (such as a transformer e.g. mini-BERT) to embed (query, data element) pairs with each other and rank the data elements accordingly by scoreThe plurality of ranking methods may be selected (from a set of ranking methods) depending on the type of the query.

[0074] From the multiple rankings (one for each ranking method), e.g. giving a ranking score to each retrieved data element, a combined ranking score is then determined, for example by application of a Reciprocal Rank Fusion (RRF) according towherein d is a data element, RRF(d) is the combined ranking score of a document, r is a ranking method (according to which rankings have been generated) of all ranking methods R, k is the reciprocal rank constant (usually around 60), and r(d) is the rank of data element d according to the r-th ranking method. For example, the higher the ranking score of a data element is according to a ranking method, the higher its rank is according to the ranking method and the more relevant information it contains. This may also hold for the ranking according to the combined ranking score.

[0075] So, for example, three or more separate ranking & scoring methods are used, and their results are recombined to find a certain number of top-score data elements. For example, a certain number (e.g. 15) of data elements with the highest combined ranking score are kept or a certain number (e.g. 35 out of 50) data elements with the lowest combined ranking score are discarded and only the data elements kept are used for formulating the prompt 209. Thedata elements with the highest combined ranking score can be expected to give the right context to augment the prompt.

[0076] Reranking can be / is applied to both documents within a given query across multiple reranking methods, as well as across multiple queries in the case of embodiments with query expansion methods to consolidate the results of multi-query expansion to a singular resulting document set.

[0077] Regarding the usage of a semantic chat history 214 for forming the prompt 209: the information provision system 200 maintains query and generation history such as• a short-term memory: summarizes recent conversations for immediate relevance.• a long-term memory: stores and retrieves historical data for context continuity.It ensures multi-turn coherence and provides contextual grounding across long interactions.

[0078] Regarding the post-generation processing (Self-RAG) 204: it introduces an iterative feedback loop to refine generated outputs, for example by• generation critique: validates responses against retrieved data elements.• web search and refinement: replaces low-confidence outputs with improved, real-time information.It guarantees factual accuracy and continuously improves output quality through iterative refinements.

[0079] This information provision system 200 as described above, which may be seen to operate according to an advanced RAG workflow, offers significant improvements in multiple performance metrics, enhancing efficiency, accuracy, and scalability such as one of more of the following:1. Reduced Latency a. Semantic Caching: By reusing precomputed embeddings and retrieval results, the invention reduces query processing time. b. Dynamic Routing: Efficiently directs queries to the appropriate source, minimizing redundant operations. c. Context Compression: Reduction of number of input tokens reduces average generation time of ML model.2. Improved Accuracy and Relevance a. Post-Retrieval Reranking: Ensures that only the most contextually relevant data elements are selected.b. Retrieval Evaluation: Filters irrelevant data elements by aligning them with query intent. c. Self-RAG Iterative Refinement: Refines outputs by re-evaluating generated responses against retrieved data elements.3. Improved Recall and Retrieval Precision a. Query Decomposition: Splits complex queries into sub-queries to address all facets of user intent. b. Expansion: Incorporates synonyms and related terms, enhancing embedding alignment. c. HyDE: Generates synthetic data elements to improve retrieval when explicit matches are scarce4. Enhanced Scalability a. Context Compression: Reduces the computational overhead of handling long contexts while retaining relevant information. b. Increased Dynamicity: Enables systems to respond to a larger range of queries accurately without additional human intervention5. Improved User Experience a. Multi-Turn Chat History: Maintains contextual coherence in chatbot interactions. b. Dynamic Real-Time Knowledge Integration: Enables the system to incorporate new information without retraining.6. Real-Time Knowledge Integration a. Dynamic Web Search: Fetches up-to-date information when static knowledge sources are insufficient.

[0080] In the following, various use cases are given. Table 1 gives an overview of use cases and exemplary use cases are described below.Table 1

[0081] Use case example 1 : a data processing device 102 is a user’s laptop (e.g. a “Razer blade 17”), the control device 101 is its user interface (e.g. a keyboard and / or mouse and / or an operating system input module). The information of about the system state is that the temperature of the laptop is very high, so the user may formulate a query 108 to the information provisioning system 109 as follows: “Why is my Razer blade 17 overheating while idle?”

[0082] In such a case, data sources 207 may include• A product information database having information per o Product family o Product specifications o Product category• A knowledge base (KB) of known laptop issues (of the company where the user works)• Device logs (CPU usage, fan speed, thermal sensor logs)• BlOS / firmwarc changelogs• Community forums (Reddit, laptop manufacturer forums)• Past support tickets, e.g. resolved customer support tickets such as customer support queries consisting of o Found solutions, potential causes, date of occurrence o Relevant products affected by the problem o Number of tickets raised for a given problem o Resolution steps o Unresolved problems• Manufacturer diagnostics (Onboard diagnostics logs)• Public web results (cached or real-time via fallback)• Product Documentation including product details and additional information about products

[0083] Each data source can be embedded and stored in its own database, with a data retrieval component of the information provision system (e.g. a data retrieval bot) able to access any of them against need, or be restricted based on user, document type, etc. As opposed to one centralised database, these disparate databases may be managed by different teams, have different storage formats, etc. This is applicable to any use case.

[0084] These data sources may provide data elements which for example contain:• Model- specific known issues• Idle temperature ranges• Background service behaviour• Firmware bugs, driver issues• Thermal design limitationsThe given problem message (i.e. query 205) does not necessarily contain enough information to retrieve the most correct information for the data retrieval component to use, so the information provision system 200 may perform (data source) query optimization including decomposition and expansion. For example, given the data retrieval component of the information provision system 200 would know what sorts of documents are available in the databases, it can expand the given prompt to focus more specifically on finding the most relevant documentation, creating multiple questions (i.e. data source queries) which aim to collect a large range of potentially relevant information such as:(QI): What is the most up to date information for the Razer blade 17 laptop?(Q2): Are there any problems related to the Razer blade 17• (Q3): Have there been any occurrences of laptops overheating lately?

[0085] Each expanded data source query focuses on a specific subsection of information provided by the original message, sometimes augmented with additional information that the bot has about the tools under its control.

[0086] For each of these optimized data source queries, the information provision system 200 can route the data source query to the best database to look for relevant documents. This may for example be done by a query' router of the information provision system 200.• QI focuses specifically on the product in the original query. The query router may decide this question is relevant to both DB1 and DB3, fetching any documents it can about the Razer blade 17, whether product specifications or other articles written about it.• Q2 is most relevant to DB2, looking specifically for any previous issues raise in relation to the Razer blade 17.• Q3 is more open ended, and may provide information on similar issues affecting another laptop in the product list. While it may not be the same laptop, they could use similar parts affected by the same problem. We may expect the router to look in DB2 and DB3 for this query

[0087] Using this form of database routing, the information provision system 200 can get a more comprehensive coverage of documents related to the original query 205 than it might otherwise have been able to. This allows avoiding:• Narrow document retrieval that may not contain the solution for the given vague query• Missing information about the laptop being asked about• Lack of insight to previous issues faced by the given productWhile information may still not be complete, improving the query preprocessing and initial document retrieval steps can help to mitigate the chances of missing information.

[0088] With a large number of potential documents retrieved, the post retrieval process aims to take only the most relevant information from each batch of retrieved documents, consolidating them to reduce the lost in the middle effect, and reduce the amount of irrelevant information. While the documents were originally retrieved from the generated subqueries, the information provision system 200 compares the documents found also to the original query to ensure we get articles relevant to that specifically.

[0089] Retrieved data elements are ranked as described above using multiple ranking methods, wherein keyword-based ranking for example gives a score based on matches with the keywords: “Razer”, “Blade 17”, “overheat”, “idle”, “temperature”, “thermal” and the ranking scores are combined.

[0090] Other ranking methods and tools that may be used include• Vector- similarity based ranking• Cross-encoder based ranking, which rc-cmbcds the retrieved text with the query simultaneously using an encoder, providing a better understanding of information similarity• Fuzzy searching, in cases where the length of the document retrieved is not very large, the individual words in the document can be compared to the query, looking for the overlap in word usage. This is largely unable to comprehend semantic meaning, but can be utilised as a tool in the post retrieval stage to supplement other methods. It may be utilised even better in the query routing stage, in routing queries to the most relevant database by comparing the queries to short descriptions of the style and content of each database.It should be noted that one ranking method may be used for an initial (fast) ranking (e.g. Vectorsimilarity based ranking) and other methods are then used for a re -ranking. The re-ranking may be used to do a first elimination of documents. Then for example, cross-encoder based ranking (which is slower) may also be used due to the reduced number of documents.

[0091] The data elements with the highest combined ranking score are then kept as described above.

[0092] As part of the corrective RAG of the post-retrieval refinement 203, an evaluation of the context is for example performed by heuristic evaluation checks (checking the coverage of the respective context information) to score the context such as• Does the context include model name “Razer Blade 17”?• Docs the context mention overheating under idle usage?• Does the context include possible causes such as BIOS bug, background process, GPU thermal throttle?

[0093] For example, the following five documents may be found in each of three data source queries (although real use cases may instead have 10-20 documents per data source query at this step).

[0094] Using three different ranking methods, the results for the first data source query (QI) may for example be ranked as follows:

[0095] It should be noted that ranking is done based on the entire content of the document, and only titles are shown here as sample representatives of the content.

[0096] As the Advanced RAG process relies on the utilisation of many tools combined together to produce an aggregate reranked document list, which can average out the flaws present in every use tool to produce consistent result quality, RRF is used to abstract away from the different scoring systems, instead relying on the final position of the documents to determine their (combined) ranking score.

[0097] Ranking all found documents (found in all of the three data source queries) and combining the respective rankings using RRF gives for example a ranking of documents found as follows:Strikethrough here indicates trimmed documents, i.e. only the eight highest-ranked documents are kept in this example.

[0098] It can be seen that Q3 in particular performed better than average when compared to the other data source queries. It should be noted that based on the title alone, some of the more promising articles retrieved are not specifically about the Razer Blade 17, showing the importance of initially gathering a larger range of documents

[0099] As stated earlier, the example above does not show the extent of documents retrieved in a real case, where instead of 13 this may be upwards of 50. As a final step, the reranked documents are trimmed down to a size that optimizes the total relevant information vs total provided information. To do this, a variable cutoff based on the final RRF scores is for example used (c.g. documents with a combined score of 1.5 standard deviations of the combined score of the highest ranking document are kept). A hard limit may also be set as too many documents increase LLM cost, generation time, and may reduce response quality. This can be limited as a hard number of documents, e.g. 15, or as a percentage of total documents retrieved, depending on use case.

[0100] Further, as part of the corrective RAG of the post-retrieval refinement 203, a web search may be added if evaluation shows that the found context has low relevance.

[0101] Evaluation provides another set of tools to provide insight to the quality of documents initially retrieved. Where ranking returns a position of a document in relation to the other documents, evaluation methods can be used to determine the quality of an entire context collated together. According to one embodiment, each document is evaluated separately, and then the resultant scores are used to sort the articles from highest to lowest score.

[0102] These evaluation methods may work similarly to reranking methods, utilising vector similarity, cross-encoders, etc, but may also use tools such as LLMs to assist in determining contextual relevance by extracting factual statements presented in the document and comparing them to the query, or similar.

[0103] Depending on the evaluation result, a web search may for example be added as follows:If context relevance score is lower than defined threshold, perform Web Search Augmentation: "Razer Blade 17 overheating idle site: forams.razer.com OR site:reddit.com"Retrieve top 3 relevant thrcads / articlcs. Re-rank using same scoring methods (Keyword + Embedding + Cross-Encoder — ► RRF). Append to selected internal data elements. Re-evaluate context score.

[0104] The LLM prompt 209 may then for example be formulated as follows:SYSTEM:You are a laptop diagnostics expert. Use the provided data to identify the overheating cause. Be model-aware.USER:Why is my Razer Blade 17 laptop overheating while idle?CONTEXT:- Internal logs and KB articles- Forum reports (if applicable)- Web articles (if augmented)

[0105] The resultant documents can then be consolidated to a context to be provided to the LLM 210 to provide suggested solutions to the initial user query 205. Compared to traditional troubleshooting methods — such as searching online forums, contacting customer support, reading product documentation, or experimenting with different search queries to pinpoint the root cause — this approach automatically consolidates the most relevant information from a wide range of sources. It then uses a LLM to interpret and organize that information into aconcise list of potential causes, recommended resolution steps, and any additional actions the user may need to take. While still reliant on the information being available in the databases, it can streamline the process greatly.

[0106] Use Case example 2: a data processing device 102 is a gaming server implementing a Multiplayer Online Battle Arena (MOBA) game and each of multiple users uses a personal computer or gaming console as control device 101 to participate in the game and thus have impacted on the simulated environment (i.e. gaming world).

[0107] One of the users may formulate a query 108 to the information provisioning system 109 as follows:"Where should T farm safely as a carry during mid game?"

[0108] The information of about the system state is for example the current game state from game events and / or computer vision (player gold, game stage, player positions on the map etc.)

[0109] The data sources 207 may for example include• Information about hero roles (carry / offlane / support), c.g. from a website about the game• Items available for each hero at each stage of the game, c.g. from a game manual• Patch notes (recent game updates), e.g. from a website• Game meta guides, e.g. from a conununity site discussing the game• Best item / weapon / armor builds, e.g. from a community site discussing the game.

[0110] Retrieved data elements are ranked as described above using multiple ranking methods, wherein keyword-based ranking for example gives a score based on matches with the keywords: “carry”, “mid game”, “farm”, “safe”, “gank”, “enemy location”, “map” and the ranking scores are combined. The data elements with the highest combined ranking score are then kept as described above.

[0111] As part of the corrective RAG of the post-retrieval refinement 203, an evaluation of the context is for example performed by heuristic evaluation checks (checking the coverage of the respective context information) to score the context such as• Docs the context include a game stage, hero role, and farm objective• Does the context mention relevant map regions for the role & game stage• Docs the context include enemy threat awareness• Does the context include scalable item-based farming guidance.

[0112] Further, as pail of the corrective RAG of the post-retrieval refinement 203, a web search may be added if evaluation shows that the found context has low relevance, c.g. as follows:If coverage is weak (e.g. query-specific advice not in retrieved context) perform web-search for"safe farming carry mid game”Retrieve top 3 threads or guides, re-rank with same TF-1DF + embedding + cross-encoder — > RRF.Append high-scoring web results to data elements.[001 13] The LLM prompt 209 may then for example be formulated as follows:SYSTEM:You are a MOBA strategy expert. Use the provided context and current game state to guide player positioning and decision-making.USER:Where should I farm safely as a cany during mid game?CONTEXT:Game State: Current time, player gold, levels, and positions.Hero Role: Role labels (carry, offlanc, support) to determine farm priority and zone ownership.Itemization: Current items per hero at the current game stageFarming Zones: Recommended regions (jungle, safe lane) based on role, side, and tower status.Safe fallback zones and wave equilibrium strategies.Enemy Threats: Inferred enemy positions, known initiator items (blink, smoke), and missing hero alerts.Game Knowledge: Recent patch updates, meta strategics and optimal builds from guides or analytics.

[0114] In view of use case example 2, more generally, use cases may include gamer copilot applications wherein the advanced RAG pipeline of the information provisioning system 200 serves as a gamer copilot, offering real-time guidance, context-aware suggestions and tailored assistance based on live in-game conditions to players during gameplay. Contextual awareness and enrichment are key components of this use case, as the information provisioning systemdynamically derives and incorporates relevant information from the evolving game state to enhance decision-making.

[0115] In such a use case, the information provisioning system 200 monitors evolving game states and provides actionable insights, such as combat strategies based on enemy formations or hero cooldowns. For example, in a MOBA game, if the information provisioning system 200 detects an enemy hero cluster (from the system state information which it may retrieve via the query or retrieve from one of the data sources 207), it can recommend retreating, setting ambush wards, or preparing for a team fight, depending on the broader game context. This ability to enrich guidance with contextual factors ensures precise and timely recommendations. It may also guide players on optimal skill combos and cooldown management, ensuring efficient use of abilities during critical moments. This application enhances gameplay fluidity by reducing cognitive load on players, allowing them to focus on high-level strategic decisions while the copilot handles real-time optimization.

[0116] Further use cases include one or more of the following when one or more of the data processing devices 102 perform data processing for providing a computer game (but use cases arc not limited to the given examples).• Procedural Storytelling and Dynamic Narrative Creation: the advanced RAG pipelines of the information provisioning system 200 enables procedural content generation, creating immersive and adaptive stories in games. For example, o Dynamic quest generation: Real-time narrative creation tailors quests based on player actions, ensuring that no two playthroughs are the same. For instance, in a role-playing game, the information provisioning system 200 generates quests that align with the player's previous decisions and character traits. o Interactive NPC Dialogues: Non-playable characters (NPCs) can respond dynamically to player interactions, using the RAG pipeline of the information provisioning system 200 to generate personalized, context-aware dialogue.• Gaming Analytics and Performance Feedback: the information provisioning system 200 can enhance player performance through post-game analytics and feedback mechanisms. For example:o Performance analysis: The information provisioning system 200 evaluates gameplay, identifying missed opportunities such as unutilized abilities or unexploited enemy weaknesses. It then provides actionable insights for improvement. o Personalized Training Recommendations: Based on a player’s strengths and wealmesses, the information provisioning system 200 suggests tailored training modules or practice scenarios, improving skills over time.• Real-Time Event Monitoring in Esports: in the highly competitive world of esports, the information provisioning system 200 can help monitoring and analysing real-time events. For example: o Live Strategy Adaptation: coaches and analysts can be provided with instant updates on in-game events, such as team movements or resource control, enabling real-time strategy adjustments. o Event Summarization: The information provisioning system 200 generates concise match summaries for broadcasters or viewers, capturing key moments and strategies without delay.• Adaptive World Building and Procedural Content Creation: for game developers, the information provisioning system 200 can revolutionize procedural content generation, making game worlds more interactive and engaging. For example: o Dynamic Environment Updates: game environments can be made to adapt in real-time to player choices, such as changing terrain or enemy spawn rates. o Personalized In-Game Challenges: the information provisioning system 200 may help generate challenges based on player behaviour, skill level, or playstyle, ensuring continuous engagement.AI-Driven Game Mastering: in multiplayer or tabletop-inspired games, the information provisioning system 200 can act as Al-powered game master, enhancing player immersion. It may for example provide:o Dynamic Rule Adjustments: The information provisioning system 200 modifies game rules or scenarios in response to player actions, maintaining balance and challenge. o Custom Game Narratives: it may provide content to have players experience unique game worlds and story arcs dynamically crafted through the pipeline.• Chatbots and In-Game Virtual Assistants: the information provisioning system 200 can improve player interaction with Al-driven chatbots and virtual assistants within games. For example, o Real-Time Help Desks: it can provide players with instant support for in-game queries, such as understanding complex mechanics or finding quest objectives. o Game Lore Exploration: it can implement a virtual assistant which generates lore-based responses, allowing players to explore deeper narratives on demand.

[0117] In summary, according to various embodiments, a method is provided as illustrated in FIG. 3.[001 18] FIG. 3 shows a flow diagram 300 illustrating a method for processing a query (in particular providing a response to the query) for information for a control task.

[0119] In 301, a query is received.

[0120] In 302, a plurality of data elements is retrieved from one or more data sources (e.g. by routing one or more data source queries to the one or more data sources), wherein the data elements containing information related to the query.

[0121] In 303, a ranking score is determined for each of the plurality of data elements according to each of a plurality of ranking methods.

[0122] In 304, a combined ranking score is determined for each data element of the plurality of data elements by combining the ranking scores determined for the data element according to the plurality of ranking methods.

[0123] In 305, a subset of the plurality of data elements is selected based on the combined ranking score.

[0124] In 306, a prompt with a request to respond to the query for a generative machine learning model is generated using information from the selected subset (as context information, e.g. is included as context information into the prompt).

[0125] In 307, the prompt is supplied to the generative machine learning model.

[0126] In 308, a response to the query is generated using an output provided by the generative machine learning model in response to the prompt.

[0127] According to various embodiments, in other words, data found is ranked according to a combination of multiple ranking methods to enable a more reliable selection of information which is included in a prompt for a machine-learning model to respond to a query.

[0128] The method of FIG. 3 is for example carried out by a server computer as illustrated in FIG. 4.

[0129] FIG. 4 shows a server computer 400 according to an embodiment.

[0130] The server computer 400 includes a communication interface 401 (e.g. configured to receive the query and send the response to the query as well as access data sources). The server computer 400 further includes a processing unit 402 and a memory 403. The memory 403 may be used by the processing unit 402 to store, for example, data to be processed, such as the retrieved data elements. The server computer is configured to perform the method of FIG. 3.

[0131] The methods described herein may be performed and the various processing or computation units and the devices and computing entities described herein may be implemented by one or more circuits. In an embodiment, a "circuit" may be understood as any kind of a logic implementing entity, which may be hardware, software, firmware, or any combination thereof. Thus, in an embodiment, a "circuit" may be a hard-wired logic circuit or a programmable logic circuit such as a programmable processor, e.g. a microprocessor. A "circuit" may also be software being implemented or executed by a processor, e.g. any kind of computer program, e.g. a computer program using a virtual machine code. Any other kind of implementation of the respective functions which are described herein may also be understood as a "circuit" in accordance with an alternative embodiment.

[0132] In the preceding detailed description, reference is made to the accompanying drawings that form a part hereof wherein like numerals designate like parts throughout, and in which is shown by way of illustration embodiments that may be practiced. It is to be understood that other embodiments may be utilized, and structural or logical changes may bemade without departing from the scope of the present disclosure. Therefore, the detailed description is not to be taken in a limiting sense.

[0133] Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order than the described embodiment. Various additional operations may be performed and / or described operations may be omitted in additional embodiments.

[0134] Although certain embodiments have been illustrated and described herein for purposes of description, this application is intended to cover any adaptations or variations of the embodiments discussed herein. So, while the disclosure has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.

Claims

CLAIMS1. A method for processing a query for information for a control task, comprising: receiving a query; retrieving a plurality of data elements from one or more data sources, wherein the data elements containing information related to the query; determining a ranking score for each of the plurality of data elements according to each of a plurality of ranking methods; determining a combined ranking score for each data element of the plurality of data elements by combining the ranking scores determined for the data element according to the plurality of ranking methods; selecting a subset of the plurality of data elements based on the combined ranking score; formulating a prompt with a request to respond to the query for a generative machine learning model using information from the selected subset; supplying the prompt to the generative machine learning model; and generating a response to the query using an output provided by the generative machine learning model in response to the prompt.

2. The method of claim 1, wherein the plurality of ranking methods includes one or more keyword-based ranking methods, one or more semantic ranking methods and one or more cross-encoder ranking methods.

3. The method of claim 1 or 2, comprising determining the combined ranking score by a weighted combination of the ranking scores determined for the data element according to the plurality of ranking methods.

4. The method of claim 1 or 2, comprising determining the combined ranking score according to a reciprocal ranking score.

5. The method of any one of claims 1 to 4, wherein the subset includes data elements which have higher ranks according to the combined ranking score than data elements of the plurality of data elements not included in the subset.

6. The method of any one of claims 1 to 5, wherein selecting the subset includes selecting n data elements of the plurality of data elements which have the highest rank according to the combined ranking score.

7. The method of any one of claims 1 to 6, wherein the data elements contain context information of the query'.

8. The method of any one of claims 1 to 7, wherein the query specifies context information of the query.

9. The method of any one of claims 1 to 8. comprising selecting the plurality of ranking methods depending on a type of the query.

10. The method of any one of claims 1 to 9, comprising retrieving the plurality of data elements from the one or more data sources by identifying the one or more data sources by expanding the query or breaking it down into multiple related sub-queries.

11. The method of any one of claims 1 to 10, comprising formulating the prompt using a prompt history.

12. The method of any one of claims 1 to 11, comprising performing an evaluation of information from the selected subset, augmenting the information from the selected subset using one or more Internet searches in response to a result of the evaluation of the information indicating an information quality or quantity below a predetermined minimum and formulating the prompt using the augmented information.

13. The method of any one of claims 1 to 12, wherein generating the response to the query comprises performing an evaluation of the output provided by the generativemachine learning model and generating the response by refining the output of the generative machine learning model using one or more Internet searches in response to a result of the evaluation indicating a response quality below a predetermined threshold.

14. The method of any one of claims 1 to 13, wherein the generative machine learning model is a large language model.

15. A method for controlling a controlled system, comprising generating a query regarding an operation of the controlled system, processing the query according to any one of claims 1 to 14 and controlling the controlled system according to the generated response to the query.

16. The method of claim 15, wherein the controlled system is a data processing system.

17. The method of claim 16, wherein the controlled system performs a simulation of an environment and controlling the controlled system includes controlling an object in the simulated environment.

18. The method of claim 15, wherein the controlled system comprises an arrangement of robot devices and / or machinery.

19. The method of any one of claims 15 to 18, comprising controlling the controlled system according to a user input.

20. A server computer comprising a communication interface, a memory interface and a processing unit configured to perform the method of any one of claims 1 to 19.

21. A computer program element comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 19.

22. A computer-readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 19.