Computer-implemented method for providing automated chat output in industrial plant
By obtaining prompt input from users in industrial factories and selecting relevant files in multiple industrial factory file databases, identifying enhanced prompts and generating chat output, the problems of accuracy and efficiency of automated chat output in industrial factories are solved, and high accuracy and domain-specific automated chat output are achieved.
Patent Information
- Application Number
- CN202411461950.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-26
- Filing Date
- 2024-10-18
- Publication Date
- 2025-04-29
AI Technical Summary
In industrial plants, prior art is difficult to provide accurate and efficient automated chat output, especially when it is necessary to quickly acquire expertise and solve specific problems, the limited resources of experts in human fields become bottlenecks.
Determine the enhanced prompt by obtaining prompt input from the user and selecting relevant files in the file database of multiple industrial factory files. Then, the enhanced prompt is input into the large language model to generate the chat output. The method preferably uses natural language processing and machine learning models, including semantic search and dynamically scalable indexing techniques.
It provides high accuracy, domain-specific automated chat output in industrial factories, simplifies access and use of industrial factories and solutions, supports the application of intelligent ChatBot, and ensures the accuracy and correctness of answers to questions.
Smart Images

Figure CN119903126A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to computer-implemented methods and apparatus for providing automated chat output in an industrial plant. Background Art
[0002] Today, process and automation engineering requires and includes a great deal of expertise, not only in terms of processes (e.g. chemical processes such as reactions with specific conditions or hazards) or automation technology (which component or pipeline is needed for what purpose and under what circumstances), but also in terms of, for example, libraries (MinLib, PC-Device-Lib, etc.) or tools for describing, engineering and controlling applications (800xA, etc.).
[0003] For specific problems, one needs to quickly contact and ask specific human domain experts (which are a limited resource) to help with specific tools or libraries, etc. Out-of-the-box Natural Language Processing (NLP)-based applications and chatbots (ChatBots) are very interesting, as ChatBots provide ease of use and accessibility to the underlying AI mechanisms (e.g., Large Language Models (LLMs) for question answering or semantic search).
[0004] However, LLMs can make mistakes with confidence, so it is necessary to build mechanisms into the process to ensure the accuracy of the results (e.g., by providing domain-specific information sources that are to be taken as context for AI-based output generation, or by referencing where the answered / retrieved information source can be found, which file, which line of text, etc.).
[0005] Therefore, there is a need for an improved ChatBot for use in the engineering and / or operation of industrial plants. Summary of the invention
[0006] The invention is defined by the subject matter of the independent claims. Further characteristics of the invention are set forth in the dependent claims.
[0007] According to one aspect of the present invention, a computer-implemented method for providing automated chat output in an industrial plant includes the following steps. A step includes obtaining a prompt input from a user. Another step includes selecting at least one related industrial plant document from a provided document database of a plurality of industrial plant documents, wherein the at least one related industrial plant document is related to the obtained prompt input. Another step includes determining an enhanced prompt using the obtained prompt input and the selected at least one related industrial plant document. Another step includes determining a chat output by inputting the enhanced prompt into a first large language model.
[0008] The method is preferably performed by a ChatBot.
[0009] The term "ChatBot" as used herein includes a question-answering system that preferably includes at least one large language model.
[0010] As used herein, the term "industrial plant" includes any industrial environment, whether indoors or outdoors, virtual or real, as long as it is applicable to the industrial context.
[0011] The term "user" used herein preferably includes industrial personnel, such as engineers. In addition, users also include any non-technical users, such as customers. In this regard, users include internal users of industrial plants and external users not associated with the plant.
[0012] The term "chat output" used herein includes any form of output that the first LLM can provide. For example, the chat output includes answers to user questions or task solutions provided by the user.
[0013] The term "prompt" as used herein includes a user question that should be answered by the ChatBot or a user task that should be performed by the ChatBot.
[0014] The term "enhanced prompt" as used herein relates to an original prompt provided by a user that has been enriched and / or adapted based on industry-specific knowledge. Thus, for example, an enhanced prompt consists of the original prompt input as a prompt by the user plus information retrieved from relevant industrial plant documents. The enhanced prompt is also referred to as an "expert prompt". Thus, the enhanced prompt is a more domain-specific and / or context-relevant input to the first LLM than the acquired prompt input by the user.
[0015] The term "related plant file" as used herein is related to at least a portion of an industrial plant file that is considered to be related to a prompt input by a user. In other words, there is no one-to-one match between a prompt input and a single industrial plant file, but rather any portion of a single industrial plant file can be considered a related plant file.
[0016] Preferably, the selection is achieved by using, in particular, natural language processing, NLP-based semantic or neural search, or in other words the search. The selection is also preferably based on a machine learning model, for example based on a pre-trained open source or commercial LLM, such as Sentence-BERT, LLaMa or DOLLY.
[0017] Furthermore, the selection is preferably based on an index of multiple, in particular dynamically extensible, industrial plant documents, so that the index can be efficiently queried in natural language, for example using tools such as LangChain or Ilama-index. In the case where the multiple industrial plant documents do not change dynamically, the index is preferably calculated only once and remains unchanged until the multiple documents change.
[0018] In other words, the determination of the chat output and the selection of at least one relevant industrial plant document are performed by only one large language model or by two or more different large language models.
[0019] Preferably, the enhanced prompt includes additional prompt information based on the prompt input and related industrial plant documents. The additional prompt information also preferably includes the user's role, the context of the prompt input, questions derived from the prompt input, and output indicators, etc.
[0020] The following are examples of enhanced prompts:
[0021] Role: Serves as 800xA / MinLib expert.
[0022] Background: Based on the above relevant industrial plant documents.
[0023] Question: How can I achieve this process.
[0024] Output indicators: Present answers in bullet point form and include cited sources.
[0025] Preferably, the acquired prompt input is analyzed by a machine learning model, in particular a semantic analysis, so that at least one relevant industrial plant document can be selected for determining the enhanced prompt. In other words, selecting at least one relevant industrial plant document comprises: a semantic search for relevant, or in other words related, industrial plant documents, in particular a LLM-based search.
[0026] Preferably, the chat output based on the enhanced prompt includes: answers to the user prompts (especially answers with explanations), codes (especially control codes or pseudo codes), and / or source references.
[0027] Since enhanced prompts are determined using the selected at least one relevant industrial plant document, the method supports users of industrial plant specific products and solutions, and the method simplifies access to and use of industrial plant specific products and solutions, in particular with the help of a customized "expert assistant chatbot".
[0028] The enhanced hints allow the first LLM to also provide alternatives or additions to the proposed solution, where the first LLM would have only proposed one solution without the enhanced hints.
[0029] Prompts for determining enhancement preferably include: role prompts, learning in context, chain of thought, providing examples, one time / several times prompts.
[0030] In other words, the method allows providing an intelligent ChatBot for industrial applications (e.g. related to 800xA, and / or for MinLib and / or PC-Device-Lib), such as a support system like ChatGPT. This allows creating an advanced chat interface to industrial plant files (e.g. documents, codes, files, data, information, knowledge, tools or applications).
[0031] Preferably, obtaining the prompt input from the user may include uploading a file, in particular uploading to the ChatBot, as the prompt input from the user.
[0032] For example, the input prompt includes a request for troubleshooting steps and technical details for a specific machine in an industrial plant. The output can be a detailed response and step-by-step instructions, as well as technical details for diagnosing and resolving the problem associated with the prompt input.
[0033] Furthermore, the approach allows for a system that is able to act as a customized expert chatbot trained on a customized knowledge base, thereby providing value to users.
[0034] Enhanced hints allow ensuring the accuracy, correctness, and appropriateness of question answering results (e.g., by providing a domain-specific information source that is to be taken as context for AI-based output generation, or by referencing where the answered / retrieved information source can be found, in which file, which line of text, etc.). In addition, it can also reference where the answered information source can be found, in which text, and in which line of text.
[0035] Thus, the present invention describes an LLM-based application as a question-and-answer tool for customers' own methods, codes, libraries and tools.
[0036] Thus, an improved ChatBot for use in the engineering and / or operation of an industrial plant is provided.
[0037] In a preferred embodiment, the document database includes a joint embedding space of a plurality of embeddings, wherein each embedding is associated with at least a portion of an industrial plant document of a plurality of industrial plant documents.
[0038] The process of determining document embeddings is built on a "chunking approach". In the context of building LLM-related applications, "chunking" is the process of breaking down large chunks of text (e.g., the industrial plant-related documents mentioned above) into smaller pieces. This is an important technique to help optimize the relevance of the content we get back from the embedding (or vector) database once we have embedded the content using LLM. Typical chunking strategies include fixed-size chunking, content-aware chunking, etc. (which are implemented in open source libraries such as langchain, nltk, or spacy).
[0039] The term "embedding" as used herein, in other words, is a representation, in particular a hidden representation, of a piece of data (e.g., input). More preferably, the embedding is a vector representation of the input, called an embedding vector. For example, an embedding is a meaningful vector representation of a word, sentence, and / or equation with respect to an engineering or operational context, such as a user's intent or the content of an industrial plant document. The embedding is preferably acquired or learned through natural language processing techniques (i.e., LLM).
[0040] Preferably, the federated embedding space is dynamically extensible. In other words, the federated embedding space is not a fixed pool of embeddings, but can be expanded and / or adapted, for example when new industrial plant files become available or when further development is done on the embedding space itself.
[0041] The embedding is preferably generated in a previous step before the input prompt is entered.
[0042] Therefore, the document database uses a suitable vector database to index and search for at least one relevant industrial plant document.
[0043] In a preferred embodiment, wherein selecting at least one relevant industrial plant document from the provided document database comprises the following steps. A step comprises determining a prompt embedding of the acquired prompt input. Another step comprises mapping the prompt embedding into an embedding space. Another step comprises selecting an embedding in the embedding space that is similar to (i.e., mathematically close to) an embedding with respect to a predetermined metric.
[0044] The predetermined metric preferably comprises a similarity metric, such as Levenstein, Wasserstein or cosine similarity.
[0045] In a preferred embodiment, mapping the prompt embeddings into an embedding space comprises using a predetermined ontology, taxonomy and / or vocabulary.
[0046] Use an underlying ontology or taxonomy or vocabulary to help generate embeddings with more certainty and transparency.
[0047] In a preferred embodiment, mapping the prompt embeddings into the embedding space comprises using a named entity recognition transformer to recognize process typical names or library specific names in the prompt input and / or at least one industrial plant document.
[0048] Process typical names or library specific names include, for example, names like 800xA or MinLib or specific terms, names, method signatures, parameters, plant or control components, their abbreviations and / or vocabularies.
[0049] In a preferred embodiment, the predetermined metrics include semantically meaningful metrics.
[0050] In a preferred embodiment, determining the prompt embedding includes the following steps: One step includes identifying the engineering or operation content in the input prompt. Another step includes: determining the prompt embedding based on the identified engineering or operation content.
[0051] In a preferred embodiment, at least one industrial plant file includes an engineering file and / or an operations file. The engineering file includes sources, libraries, code, and / or repositories related to the engineering and / or automation workflow of the industrial plant. The operations file includes sources, libraries, code, and / or repositories related to the operation of the industrial plant.
[0052] Preferably, the at least one industrial file comprises an 800xA file or a MinLib file or a PC-Device-Lib file, a ReUse-Lib file or other files.
[0053] Preferably, the library comprises a programming language related library and / or a code related library.
[0054] In other words, the chat output is factory-specifically customized, e.g., providing customized transparent and / or explainable document-based expert support for users using specific industry tools, libraries, solutions, codes and / or documents.
[0055] In a preferred embodiment, the method comprises providing a document database, wherein in particular providing the document database comprises mapping a plurality of industrial plant documents into the embedding space.
[0056] Thus, a plurality of industrial plant documents are converted into embeddings, in particular embedding vectors. The embedding vector comprises a plurality of vector entries specifying the embedding. Each of the vector entries is associated with the content of the industrial plant document. The mapping then comprises an analysis of the embedding with respect to its position in the entire embedding space, e.g., in particular with respect to which other embedding vectors are closest. In other words, similar industrial plant documents are also located close to each other in the embedding space.
[0057] This mechanism allows indexing of the entire file database, which also allows continuous expansion and / or replacement and / or updating of the file database.
[0058] Furthermore, this allows full control over the information sources (documentation, code, libraries, methods, tools) used to train and / or fine-tune the ChatBot.
[0059] Preferably, providing the file database is a preparatory step for the described method. However, when the method has been executed (ie the ChatBot has been deployed), the provision of the file database also preferably continues.
[0060] In other words, industrial device files (especially together with engineering ontologies and library descriptors) are mapped into a joint embedding space.
[0061] This step is preferably performed by a LLM.
[0062] In a preferred embodiment, the method includes post-processing the chat output, wherein the post-processing includes summarizing the chat output, shortening the chat output, giving references / sources to the chat output, and / or determining library-specific or library-consistent chat output.
[0063] Post-processing preferably includes a step-by-step method of describing the chat output using a specific set of vocabularies, terms, components and / or code blocks. For example, this can be achieved by using a named entity recognition transformer to find typical names.
[0064] Post-processing preferably includes ordering and / or selecting different solutions contained in the chat output.
[0065] In a preferred embodiment, the first large language model is fine-tuned to be specific to an industrial plant.
[0066] Industrial plant specific fine-tuning preferably includes fine-tuning of pre-trained instruction-adjusted LLMs, and / or training strategies such as multi-task strategies, such as adaptive layers and gradual unfreezing.
[0067] In a preferred embodiment, the industrial plant specific fine-tuning includes at least one of fine-tuning of input / output schema, fine-tuning for tasks, fine-tuning of vocabulary / ontology, and fine-tuning of library documents.
[0068] This allows, for example, to generate library specific (pseudo) control code based on the underlying context database of the project library file (e.g. with method signatures, method descriptions, I / Os, parameters, tags, etc. from MinLib, PC-Device-Lib, ReUse-Lib, AC800M Lib, etc.).
[0069] Preferably, fine-tuning follows (optionally pre-trained) instruction tuning, with the focus on making the LLM follow instructions and align with humans. Thus, the LLM should be applicable to several general tasks, such as "answer this question", "summarize a given text", "generate python code to accomplish some task".
[0070] The fine-tuning of LLM, especially the input-output outline and structure of LLM, reduces the dimensionality of LLM so that LLM can focus on one task.
[0071] Preferably, for a specific engineering application, an LLM is used that is fine-tuned for a specific task with specific instructions. For example, "answer this question with code from MinLib or 800xA".
[0072] In addition to the enhanced prompting capabilities, the ChatBot can be further extended with engineering library documentation (e.g. method signatures, method descriptions, inputs / outputs, parameters, tags from MinLib, PC-Device-Lib, ReUse Lib, AC800M Lib, etc.) using another LLM, for example using a different embedding space for itself.
[0073] In other words, for different specific purposes, the first LLM preferably includes differently fine-tuned pre-trained instruction fine-tuned models, especially differently fine-tuned out-of-the-box LLMs.
[0074] According to one aspect of the invention, the apparatus comprises means for executing the method described in the invention.
[0075] Preferably, the device comprises a ChatBot.
[0076] According to one aspect of the invention, a computer program comprises instructions which, when a computer executes the program, cause the computer to perform the method as described herein.
[0077] According to one aspect, a computer-readable storage medium comprises instructions which, when executed by a computer, cause the computer to perform a method as described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0078] Exemplary embodiments of the present invention will be described below with reference to the accompanying drawings:
[0079] Figure 1 schematically illustrates an apparatus for providing automated chat output in an industrial plant; and
[0080] Figure 2 A method for providing automated chat output in an industrial plant is schematically illustrated. DETAILED DESCRIPTION
[0081] Figure 1 A device for providing an automated chat output in an industrial plant is shown. The device comprises a processing unit 10, an analysis unit 20, a selection unit 30 and an output unit 40. A database 50 is also provided, which may be part of the device.
[0082] The database 50 includes a plurality of industrial plant files D1, D2, and D3. For example, the database 50 includes a joint embedding space of a plurality of embeddings. Each embedding is a representation of an industrial plant file in the industrial plant files D1, D2, and D3. For example, an embedding is a vector representation of industrial plant files D1, D2, and D3, referred to as an embedding vector. For example, an embedding is a meaningful vector representation of words, sentences, and / or equations about an engineering or operational context, such as a user's intent or the content of industrial plant files D1, D2, and D3. Therefore, providing the file database 50 preferably includes mapping a plurality of industrial plant files D1, D2, and D3 into an embedding space.
[0083] The user U provides a prompt input P to the device, in particular the processing unit 10, for example via a user interface. The prompt input P comprises a question or a task that the user wants the device to support. The prompt input P is usually used directly as an input for an output unit (e.g., output unit 40), in particular in the form of a large language model (LLM), to provide a chat output O. However, in this case, the processing unit 10 provides the prompt input P to the analysis unit 20.
[0084] The analysis unit 20 processes the prompt input P, for example, in a semantically meaningful way. In other words, the analysis unit 20 determines the context C of the prompt input P. The context C includes, for example, an engineering context or an operational context. The analysis unit 20 provides the context C to the selection unit 30. In the case of using embedding, the analysis unit 20 determines the embedding, in particular the embedding vector, from the prompt input P. The vector entry reflects the context C of the prompt input P. In this case, the analysis unit 20 provides the embedding vector of the prompt input P to the selection unit 30.
[0085] The selection unit 30 selects at least one relevant industrial plant file Dr from the file database 50. The at least one relevant industrial plant file Dr is relevant to the acquired prompt input P. In other words, the selection unit 30 uses the context data C and sends a request R for any industrial plant file related to the context data C to the database 50 based on the context data C. The database 50 then provides the selection unit 30 with at least one relevant industrial plant file Dr. When embedding is used, the selection unit 30 uses the embedding vector of the prompt P and sends a request R for any industrial plant file related to the embedding vector of the prompt P to the database 50 based on the embedding vector of the prompt P. In other words, the embedding vector of the prompt P is mapped to the embedding vectors of all the industrial plant files mapped in the joint embedding space, or in other words, near the embedding vector of the prompt P, and is selected as the relevant industrial plant file Dr. Then, the database 50 provides the selection unit 30 with at least one relevant industrial plant file Dr. The context C is not necessarily directly related to an industrial plant file, but may be related to only a portion of the industrial plant file. Therefore, the at least one relevant industrial plant file Dr may only include a portion of the industrial plant file.
[0086] The selected at least one relevant industrial plant document Dr is provided to the processing unit 10, in which an enhanced prompt Pe is determined based on the at least one relevant industrial plant document D and the prompt input P.
[0087] The enhanced prompt Pe is then provided to the output unit 40 to determine the chat output O. The output unit 40 comprises a large language model LLM. The processing unit 10, the analysis unit 20 and the selection unit 30 may also comprise a machine learning model, in particular a LLM, or use the same machine learning model.
[0088] Therefore, instead of providing chat output O based solely on the user's prompt input P, the output unit 40 (e.g., general LLM) uses enhanced prompts Pe, which are enriched and / or rephrased based on industrial plant-specific knowledge and thereby result in the chat output O having improved accuracy.
[0089] In the first example, the user prompt input P includes:
[0090] “How does XYZ use 800xA / MinLib?”
[0091] Based on the enhanced prompts, the ChatBot generates customized document-based answers, including reference(s) to the exact source of the information.
[0092] In the second example, the user prompt input P includes:
[0093] "Create a conveyor belt interlocked by 4 drift switches and 2 rope switches".
[0094] Based on the enhanced prompt, the ChatBot (which in this case was trained on MinLib) answers with the corresponding code, indicating that the information is based on file number ABC1234 and library XZY9876.
[0095] In the third example, the user prompt input P includes:
[0096] "Help me find the right class, method / function, property, pattern, service, module, or interface for XYZ."
[0097] Based on the enhanced prompt, the ChatBot (which in this case is trained on Function Modules and 800xA) responds, for example, “I found the following function modules from the repository that can be used: ‘SeperatorFM’, ‘Feeder FM’, and ‘ReactorFM’, which are suitable for XYZ.”
[0098] The answer can be linked to an Asset Management Shell (AAS) or other data exchange format containing information about the functional module. The engineer can then simply click on the link and integrate the FM into his project.
[0099] In the fourth example, the user prompt input P includes:
[0100] "Please tell me how other ABB engineers have used the PC Device Library to solve valve-to-pump interlocking problems?"
[0101] Based on the enhanced prompt, an answer could be: a Boolean equation connecting the feedback signal of the valve with the linkage input of the pump within a specific library element. The Chatbot can also reply with an xml file for ControlBuilder M import, which contains all relevant information about the library elements used and the connections between these elements.
[0102] Figure 2 A method for providing automated chat output in an industrial plant is shown.
[0103] The preparation step S0 comprises providing a document database of a plurality of industrial plant documents.
[0104] The first step S1 includes obtaining a prompt input P from a user U. In other words, the prompt input P (also referred to as an original prompt) of the user U is related to a question or task expressed in a human language.
[0105] The second step S2 comprises selecting at least one relevant industrial plant document Dr from a provided document database 50 of a plurality of industrial plant documents D1 , D2 , D3 , wherein the at least one relevant industrial plant document Dr is relevant to the acquired prompt input P.
[0106] A third step S3 comprises determining an enhanced prompt Pe using the acquired prompt input P and the selected at least one relevant industrial plant document Dr.
[0107] The fourth step S4 comprises determining the chat output O by inputting the enhanced prompt Pe into the first large language model 40 .
[0108] The fifth step S5 includes post-processing the chat output O, wherein the post-processing includes summarizing the chat output O, shortening the chat output O, giving a reference / source to the chat output O, and / or determining library-specific or library-consistent chat output O.
Claims
1. A computer-implemented method for providing automated chat output in an industrial plant, comprising the steps of: Obtain (S1) prompt input (P) from the user (U); selecting (S2) at least one relevant industrial plant document (Dr) from a document database (50) of a plurality of provided industrial plant documents (D1, D2, D3), wherein the at least one relevant industrial plant document (Dr) is related to the acquired prompt input (P); determining (S3) an enhanced prompt (Pe) using the acquired prompt input (P) and the selected at least one relevant industrial plant document (Dr); The chat output (O) is determined (S4) by inputting the enhanced prompt (Pe) into a first large language model (40).
2. The method according to claim 1, The document database (50) comprises a joint embedding space of a plurality of embeddings, wherein each embedding is associated with at least a portion of an industrial plant document among the plurality of industrial plant documents (D1, D2, D3).
3. The method according to claim 2, The at least one relevant industrial plant document (Dr) is selected (S2) from the provided document database (50) comprising: determining a prompt embedding of the obtained prompt input (P); mapping the cue embedding into the embedding space; An embedding is selected in the embedding space that is similar to the embedding with respect to a predetermined metric.
4. The method according to claim 3, Wherein mapping the prompt embedding into the embedding space comprises: Use a predetermined ontology, taxonomy, and / or vocabulary.
5. The method according to claim 3 or 4, Wherein mapping the prompt embedding into the embedding space comprises: A named entity recognition transformer is used to recognize process typical names or library specific names in the prompt input and / or the at least one industrial plant document.
6. The method according to any one of claims 3 to 5, The predetermined metrics include semantically meaningful metrics.
7. The method according to any one of claims 3 to 6, Wherein determining the prompt embedding comprises: Identifying a project or operation content (C) in the prompt input (P); The prompt embedding is determined based on the identified engineering or operational content.
8. The method according to any one of the preceding claims, wherein the at least one industrial plant document (D1, D2, D3) comprises an engineering document and / or an operational document; wherein the engineering files include sources, libraries, codes and / or repositories related to the engineering and / or automation workflow of the industrial plant; and The operational files include sources, libraries, codes and / or repositories related to the operation of the industrial plant.
9. A method according to any one of the preceding claims, comprising Providing (S0) the document database (50), wherein in particular providing the document database comprises: The plurality of industrial plant files (D1, D2, D3) are mapped into the embedding space.
10. A method according to any one of the preceding claims, comprising: The chat output (O) is post-processed, wherein the post-processing includes: summarizing the chat output (O), shortening the chat output (O), providing a reference / source for the chat output (O), and / or determining library-specific or library-consistent chat output (O).
11. The method according to any of the preceding claims, wherein the first large language model (40) is industrial plant specific fine-tuned.
12. The method according to claim 11, The industrial plant-specific adjustments include: At least one of fine-tuning the input / output schema, fine-tuning to the task, fine-tuning the vocabulary / ontology, or fine-tuning the library files.
13. An apparatus comprising means for performing the method according to any one of claims 1 to 12.
14. A computer program comprising instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 12.
15. A computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 12.