Command generation system and command issuing method
The command generation system addresses complex network configuration challenges by interpreting natural language input to generate commands, reducing errors and downtime in utility, industrial, and communication networks.
Patent Information
- Application Number
- JP2023558231
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-17
- Filing Date
- 2022-03-23
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2042-03-23
AI Technical Summary
Existing methods for initiating tasks in utility, industrial, or communication networks are complex, error-prone, and require extensive system knowledge, leading to configuration errors and network outages, particularly during commissioning or reconfiguration.
A command generation system that interprets natural language input to determine user intent, decomposes it into subtasks, and automatically generates commands to manage or reconfigure network devices, using an intent-based network (IBN) to reduce human cognitive load and errors.
The system simplifies task initiation by reducing configuration errors, lowering costs, and minimizing downtime through intuitive natural language interaction, ensuring consistent network operations.
Smart Images

Figure 0007731435000001 
Figure 0007731435000002 
Figure 0007731435000003
Abstract
Description
[Technical Field]
[0001] FIELD OF THE INVENTION The present invention relates to methods, devices, and systems for issuing commands to a utility system (such as a power system), an industrial system (such as an industrial manufacturing plant), and / or a communication network (such as a utility system or an industrial system communication network). The present invention relates to methods, devices, and systems that can be used to initiate tasks in a utility system, industrial system, or communication network during commissioning or reconfiguration of the utility system, industrial system, or communication network, or during ongoing field operation of the utility system, industrial system, or communication network. [Background technology]
[0002] Background of the Invention Modern industrial automation control systems (IACS), such as power generation systems, distribution systems, transmission systems, power grids, or substations, and modern industrial systems contain a vast number of components. The operation of a communication network, such as a utility system, industrial system, or communication network in an IACS, requires that the devices in the network be configured during commissioning or reconfigured after the utility system, industrial system, or communication network begins operation. To illustrate, network engineers need to view the operational state and make appropriate changes as needed, for example, introducing a set of new traffic flows and / or removing existing traffic flows. Network management systems (NMS) or other actors in the utility system, industrial system, or communication network can be deployed to help in this regard.
[0003] Even when an NMS or other actor is deployed, it can be difficult to use. While communication networks continue to evolve, managing them remains a complex, device-centric task that involves locating target devices and connections and manually reconfiguring them. The human-based command generation step often introduces configuration errors, potentially disrupting utility systems or communication networks. However, such network outages are unacceptable for mission-critical networks such as power grids.
[0004] Because operators are required to be highly familiar with individual device settings and accurately execute the correct commands, configuration errors can occur frequently. However, in reality, such steps are often complex and involve multiple dependent subtasks. For example, retrieving backups from an intranet server to the cloud may involve 1) finding a viable bandwidth path that does not throttle other flows, 2) creating firewalls to whitelist the appropriate flows, and 3) installing appropriate rules on the relevant switches. It is also difficult to track the sequence of actions taken in the past and the resulting changes in network conditions.
[0005] Thus, generating commands that need to be issued to NMSs or other actors in utility systems, industrial systems, or communication networks can be difficult, require extensive system knowledge and experience, and can be error-prone even when performed by well-trained professionals.
[0006] US Pat. No. 10,585,957 discloses a technique for identifying user intent.
[0007] M. Kiran et al., "Enabling Intent to Configure Scientific Networks for High Performance Demands," Future Generation Computer Systems, Int. J. Electron. Telecommun. 60(4), 2014, provides tools for data-intensive activities in scientific networks. Summary of the Invention [Problem to be solved by the invention]
[0008] overview There is a need to provide improved techniques for initiating the execution of tasks in a utility system, an industrial system, or a communications network, particularly an industrial system or a communications network of a utility system. In particular, there is a need for improved techniques that allow for initiating a desired task in a simple manner that is less error prone than traditional approaches that rely on human-generated commands. There is a need for improved techniques that allow for flow management, device configuration or reconfiguration, or other tasks when commissioning a utility system, industrial system, or communications network, or when reconfiguring a utility system, industrial system, or communications network while it is in use. [Means for solving the problem]
[0009] In accordance with the present invention, a method and system is provided in which natural language input is received and interpreted to determine intent for flow management or other utility system actions, industrial system actions, or communication network actions.
[0010] The systems and methods according to the present invention operate to understand the intent of a user (e.g., a network operator) expressed in natural language, decompose the high-level intent into subtasks, and trigger appropriate commands by interfacing with a network management system (NMS) or other actors in a utility system, industrial system, or communications network.
[0011] The systems and methods according to the present invention enable reducing the cognitive load on human users (e.g., operators), thereby reducing the risk of configuration errors, which in turn can reduce costs, troubleshooting effort and time, and downtime for utility systems, industrial systems, or communication networks.
[0012] An intent-based network (IBN) can be provided that operates to receive as input an intended task expressed in natural language input and to automatically or semi-automatically generate and output appropriate network commands to perform implementation of the task.
[0013] Network intents can include simple tasks (such as installing a rule on a switch) or can be complex tasks. Thus, IBN can operate to identify both simple intents and compound intents composed of k>1 simple intents.
[0014] The IBN can be trained with a set of simple and compound intents to generate a classification model. Network entities can also be extracted by the IBN based on the configured intents. Then, when a user enters natural language input, the IBN classifies the input text into intent classes and identifies network entities, if any.
[0015] Ambiguity may arise during the classification process because two similar texts may belong to two different intent classes. To address this, intent classification confidence information can be determined and taken into account when generating and / or outputting commands. Illustratively, a classification tree can be automatically created and the path with the highest confidence score identified. The intent at the root of the path (or subpath) is identified as the most likely target intent. The system may operate to confirm the identified intended task via user feedback in a user interface.
[0016] The IBN can operate to communicate with and issue commands to an NMS or other actor in a utility system, industrial system, or communications network. The NMS or other actor can then trigger network tasks to accomplish the tasks expressed by the natural language input. Once all tasks are executed, the NMS or other actor can capture the network state and communicate it to the IBN.
[0017] The intent resolution process can be stateful. The IBN maintains a transaction between intent and network command. This allows the command generation system and method to take previously identified intents and / or previously issued commands into account when determining the next command to be issued. A user (e.g., a network operator) no longer needs to keep track of previously issued commands and / or network state. This simplifies the configuration or reconfiguration process using the IBN and reduces the risk of misconfiguration.
[0018] According to one aspect of the present invention, there is provided a command generation system for issuing commands to actors in a utility system, an industrial system, or a communications network. The command generation system comprises a first interface operative to receive natural language input specifying a task to be performed. The command generation system includes one or more processing modules operative to perform a stateful intent resolution process to determine a user's intent expressed by the natural language input and generate at least one command based on the determined intent. The command generation system comprises a second interface operative to issue at least one command to an actor to perform the task in the utility system, the industrial system, or the communications network.
[0019] The command generation system may implement an intent-based network (IBN). An actor may be a management or control system. An actor may be a network management system (NMS).
[0020] The command generation system operates to maintain one or more intent transactions and, if termination criteria are not met, may perform intent resolution using intent transactions that provide information about previously identified intents within the same session.
[0021] An actor may be a utility system, an industrial system, or a management or control system for a communication network of a utility or industrial system.
[0022] The command generation system may operate to quantitatively determine how reliable the identification of the user's intent is and use the confidence information to determine whether the command can be automatically output or whether user confirmation is required.
[0023] The command generation system may operate to generate and issue commands to a control system, which may be a utility system (such as an electric power grid, such as an electric distribution grid or an electric transmission grid, a fluid grid for enabling and controlling the flow of at least one fluid, such as gas, water, wastewater, or other fluid, or other utility system).
[0024] The command generation system may operate to generate and issue commands to a control system, which may be an industrial system, such as an industrial system having an industrial automation control system (IACS). The control system may be a substation of a power grid.
[0025] The command generation system may operate to generate and issue commands to a control system, which may be a communications network, particularly a communications network for a utility system (such as an electric power grid or another utility grid) or an industrial system. The control system may be a communications network for a power system or a power system substation.
[0026] The command generation system may operate to perform a stateful intent resolution process using information about previously identified intents and / or previously issued commands.
[0027] The command generation system may include or be communicatively coupled to a data storage system that stores information regarding previously identified intentions and / or previously issued commands.
[0028] The data storage system may be provided at the IBN. The data storage system may be provided in a utility system, an industrial system, or a communications network.
[0029] The command generation system may be operable to store information regarding the determined intention and / or the at least one command in a data storage system.
[0030] The command generation system may be operative to store information regarding the determined intent and / or at least one command in a data storage system in response to confirmation that the task has been performed in the utility system, the industrial system, or the communications network.
[0031] The confirmation may include receiving data from a utility system, an industrial system, or a communications network.
[0032] The command generation system may be operative to perform a verification, including verifying that the user's intent as expressed by the natural language input matches previously identified intents and / or previously issued commands, before issuing the at least one command.
[0033] Alternatively, or in addition to using information regarding previously identified intents and / or previously issued commands, the command generation system may operate to retrieve status information regarding the status of the utility system, industrial system, or communications network.
[0034] The command generation system may be operable to perform validation, including validating that the user's intent as expressed by the natural language input is consistent with the retrieved state information, before issuing the at least one command.
[0035] The command generation system may operate to receive and process messages from a utility system, an industrial system, or a communication network that indicate one or more changes in the utility system, the industrial system, or the communication network that are not triggered by the command generation system. Such changes may be caused by control or protection functions, or manual configuration or reconfiguration tasks.
[0036] The command generation system may operate to automatically determine, based on changes in the utility system, industrial system, or communications network, whether the current state of the utility system, industrial system, or communications network is still consistent with previously identified intent and / or previously issued commands.
[0037] The command generation system may operate to automatically generate and output additional commands in response to determining that the current state of the utility system, industrial system, or communications network is inconsistent with previously identified intent and / or previously issued commands.
[0038] The command generation system may operate to automatically generate and output additional commands to conform the current state of the utility system, industrial system, or communications network to previously identified intents and / or previously issued commands.
[0039] The command generation system may operate to automatically generate and output additional commands without receiving user input if it determines that the current state of the utility system, industrial system, or communications network is inconsistent with a previously identified intent and / or a previously issued command.
[0040] The command generation system may operate to assign the natural language input to at least one intent class.
[0041] The intent class can be selected from a group consisting of multiple simple intents and multiple compound intents.
[0042] Each compound intention of the plurality of compound intentions may be composed of two or more simple intentions selected from the plurality of simple intentions.
[0043] The command generation system may operate to automatically generate multiple compound intentions. The command generation system may operate to automatically generate multiple compound intents through natural language processing (NLP)-based combination of simple intents selected from the multiple simple intents.
[0044] The stateful intent resolution process may include assigning the natural language input to at least one intent class.
[0045] The command generation system may operate to determine confidence information for classification into different intent classes.
[0046] The confidence information may be a scalar value. The confidence information may quantify the reliability of the classification result.
[0047] The confidence information may be determined according to a metric. The command generation system may be operable to use the confidence information to assign the natural language input to at least one intent class and / or to output the confidence information.
[0048] The command generation system may operate to generate a trust tree for determining trust information.
[0049] Each node of the trust tree may be associated with one of a number of simple intents or one of a number of compound intents.
[0050] Alternatively or additionally, the trust tree may include at least one node associated with one of the plurality of compound intents and at least two nodes each associated with a simple intent selected from the plurality of simple intents.
[0051] Alternatively or additionally, a node of the trust tree associated with one of the multiple compound intentions has child nodes associated with the compound intention or the simple intention from which one of the multiple compound intentions is formed.
[0052] Determining trust information for different intent classes may include identifying paths through the tree from among all possible paths through the tree based on trust values assigned to nodes and / or links of the trust tree.
[0053] Determining the trust information for a path may involve multiplying the trust value of each node (determined for each natural language input) along the path from the leaf node upward along the tree to each ancestor node until the trust value of the ancestor node is zero.
[0054] Determining the most likely intent from the trust tree may include determining the child node of the root node with the greatest trust information along the path.
[0055] The command generation system may be operable to identify one or more attributes of at least one intent class from the natural language input.
[0056] The command generation system may operate such that at least one command is dependent on the identified attribute or attributes.
[0057] The attributes may include attributes that identify system entities within a controlled utility system, industrial system, or communications network.
[0058] A (partial) ontology can be used to identify system entities based on natural language input.
[0059] The identified one or more attributes may include one or more of: a source of the flow, a goal of the flow, an action to be performed, a quality of service, and an identifier of a virtual network function.
[0060] The command generation system may operate to maintain one or more intent transactions.
[0061] The command generation system may operate to simultaneously maintain multiple different intent transactions, each associated with a different user.
[0062] The command generation system may be operable to establish an intent transaction in response to receiving a natural language input if there is no active intent transaction of the user for whom the natural language input is received.
[0063] The command generation system may be operable to include at least an identifier of the determined intent expressed by the natural language input in the intent transaction.
[0064] The command generation system may be operable to include the execution time of the determined intent in the intent transaction.
[0065] The execution time may include a start time and an end time. The command generation system can operate to add additional user intents expressed by additional natural language inputs of the same user to the intent transaction if the termination criteria are not met. This can include adding additional identifiers for the additional user intents expressed by the additional natural language inputs to the intent transaction. Execution times of the additional user intents can optionally be added to the intent transaction.
[0066] The command generation system may operate to perform intent resolution using intent transactions (i.e., information about previously identified intents within the same session) if the termination criteria are not met.
[0067] The command generation system may operate to terminate the addition of further user intents to the intent transaction if termination criteria are met.
[0068] The termination criteria may include any one of a time threshold criteria, receipt of a command to terminate the intent transaction, receipt of a command to load a previous intent transaction, or any combination thereof.
[0069] The command generation system may operate to simultaneously maintain and update a first intent transaction for a first user and a second intent transaction for a second user different from the first user.
[0070] The command generation system may operate to execute an intent supervisor that operates to continuously monitor a utility system, an industrial system, or a communications network.
[0071] The intent supervisor may operate to ensure automatic adaptation of the command generation system to changes in the utility system, industrial system, or communication network.
[0072] Ensuring automatic adaptation of the command generation system to changes in the utility system, industrial system, or communications network may include one or more of: automatically generating and issuing at least one additional command in response to detecting changes in topology and / or entity state to ensure the utility system, industrial system, or communications network continues to operate according to a user intent expressed by the natural language input; verifying that the determined intent expressed by the natural language input is consistent with previously received user intent and / or state of the utility system, industrial system, or communications network; and verifying that execution of the at least one command causes the utility system, industrial system, or communications network to reach a target state.
[0073] The first interface may be operable to receive the natural language input as a text input.
[0074] The first interface may be a web-based interface. The first interface may be operable to receive the natural language input as a speech input.
[0075] The command generation system may include a speech-to-text module for converting speech input into text input before performing the stateful intent resolution process.
[0076] The first interface may be operable to receive natural language input as freehand user input via a graphical user interface.
[0077] The command generation system may be operable to use the labeled natural language input to train at least one classifier model for performing intent classification.
[0078] The command generation system may be operative to use the labeled natural language input to train an entity extractor to extract system entities of the control system from the natural language input.
[0079] The command generation system may operate to apply NLP techniques to the labeled natural language input to generate additional training data.
[0080] The additional training data may include compound intents that are composed of several labeled simple intents.
[0081] According to another aspect of the present invention, there is provided a system including a utility system, an industrial system, or a communications network having an actor, and an inventive command generation system operative to issue at least one command to the actor.
[0082] An actor may be a management or control system, in particular a network management system (NMS).
[0083] The control system may be a utility system (such as an electrical power grid, e.g., an electrical distribution grid or transmission grid, another electrical power system, a fluid grid for enabling and controlling the flow of at least one fluid, such as gas, water, wastewater, or other fluid, or other utility system).
[0084] The control system may be an industrial system, such as an industrial system having an industrial automation control system (IACS).
[0085] The control system may be a substation of a power grid. The control system may be a communication network, in particular a communication network of a utility system (such as an electric power grid or another utility grid) or an industrial system. The control system may be a communication network of a power system or a power system substation.
[0086] According to another aspect of the present invention, there is provided a method for issuing commands to a utility system, an industrial system, or a communications network, the method including receiving, at a first interface, natural language input specifying a task, performing a stateful intent resolution process to determine a user intent expressed by the natural language input, generating at least one command based on the determined intent, and issuing, at a second interface, the at least one command to an actor for performance of the task.
[0087] The method can be performed automatically using at least one integrated circuit. The method can be performed automatically using an intent-based network (IBN). The IBN may comprise one or more integrated circuits operative to perform a stateful intent resolution process and generate at least one command.
[0088] An actor may be a management or control system. An actor may be a network management system (NMS).
[0089] The commands may be output to a utility system (e.g., an electrical power grid such as an electrical distribution grid or an electrical transmission grid, a fluid grid for enabling and controlling the flow of at least one fluid such as gas, water, wastewater, or other fluid, or other utility system).
[0090] The commands can be output to an industrial system, such as an industrial system having an industrial automation control system (IACS). The control system can be a substation of a power grid.
[0091] The commands can be output to a communication network, particularly a communication network of a utility system (such as an electric power grid or another utility grid) or an industrial system. The control system can be a communication network of a power system or a power system substation.
[0092] The stateful intent resolution process may use information about previously identified intents and / or previously issued commands.
[0093] Performing the stateful intent resolution process may include retrieving information regarding previously identified intents and / or previously issued commands from a data storage system.
[0094] The data storage system may be provided at the IBN. The data storage system may be provided in a utility system, an industrial system, or a communications network.
[0095] The method may include storing information regarding the determined intent and / or the at least one command in a data storage system.
[0096] The method may include storing information regarding the determined intent and / or the at least one command in a data storage system in response to confirming that the task was performed in the utility system, the industrial system, or the communications network.
[0097] The confirmation may include receiving data from a utility system, an industrial system, or a communications network.
[0098] The method may include performing a verification that includes verifying that the user's intent expressed by the natural language input matches a previously identified intent and / or a previously issued command before issuing the at least one command.
[0099] Alternatively or additionally to using information regarding previously identified intent and / or previously issued commands, the method may include retrieving status information regarding the status of the utility system, industrial system, or communications network.
[0100] The method may include performing a verification that includes verifying that the user's intent expressed by the natural language input is consistent with the retrieved state information before issuing the at least one command.
[0101] The method may include receiving and processing a message from a utility system, an industrial system, or a communication network indicating one or more changes in the utility system, the industrial system, or the communication network that are not triggered by a command generation system, such as a control or protection function, or a manual configuration or reconfiguration task.
[0102] The method may include automatically determining, based on changes in the utility system, industrial system, or communications network, whether a current state of the utility system, industrial system, or communications network remains consistent with a previously identified intent and / or a previously issued command.
[0103] The method may include automatically generating and outputting additional commands in response to determining that a current state of the utility system, industrial system, or communications network is inconsistent with a previously identified intent and / or a previously issued command.
[0104] The method may include automatically generating and outputting additional commands to conform a current state of the utility system, industrial system, or communications network to a previously identified intent and / or a previously issued command.
[0105] The method may include automatically generating and outputting additional commands without receiving user input when the method determines that a current state of the utility system, industrial system, or communications network is inconsistent with a previously identified intent and / or a previously issued command.
[0106] The method may include assigning the natural language input to at least one intent class.
[0107] The intent class can be selected from a group consisting of multiple simple intents and multiple compound intents.
[0108] Each compound intention of the plurality of compound intentions may be composed of two or more simple intentions selected from the plurality of simple intentions.
[0109] The method may include automatically generating a plurality of compound intents. The method may include automatically generating a plurality of compound intents through natural language processing (NLP)-based combination of simple intents selected from a plurality of simple intents.
[0110] The stateful intent resolution process may include assigning the natural language input to at least one intent class.
[0111] The method may include determining confidence information for classification into different intent classes. The confidence information may be a scalar value.
[0112] The confidence information may quantify the reliability of the classification result. The confidence information may be a metric.
[0113] The method may include using the confidence information to assign the natural language input to at least one intent class and / or outputting the confidence information.
[0114] The method may include generating a trust tree to determine the trust information. Each node of the trust tree may be associated with one of a number of simple intents or one of a number of compound intents.
[0115] Alternatively or additionally, the trust tree may include at least one node associated with one of the plurality of compound intents and at least two nodes each associated with a simple intent selected from the plurality of simple intents.
[0116] Alternatively or additionally, a node of the trust tree associated with one of the multiple compound intentions has child nodes associated with the compound intention or the simple intention from which one of the multiple compound intentions is formed.
[0117] Determining trust information for different intent classes may include identifying paths through the tree from among all possible paths through the tree based on trust values assigned to nodes and / or links of the trust tree.
[0118] Determining the trust information for a path may involve multiplying the trust value of each node (determined for each natural language input) along the path from the leaf node upward along the tree to each ancestor node until the trust value of the ancestor node is zero.
[0119] The method can include identifying one or more attributes of at least one intent class from the natural language input.
[0120] At least one command may be generated that is dependent on the identified attribute or attributes.
[0121] The attributes may include attributes that identify system entities of the control system. A (partial) ontology of the control system can be used to identify system entities.
[0122] The identified one or more attributes may include one or more of: a source of the flow, a goal of the flow, an action to be performed, a quality of service, and an identifier of a virtual network function.
[0123] The method may include maintaining one or more intent transactions. The method may include simultaneously maintaining multiple different intent transactions, each associated with a different user.
[0124] The method may include establishing an intent transaction in response to receiving the natural language input if there is no active intent transaction for the user for whom the natural language input was received.
[0125] The method may include including at least an identifier of the determined intent expressed by the natural language input in the intent transaction.
[0126] The method may include including the determined intent execution time in the intent transaction.
[0127] The execution time may include a start time and an end time. The method may include, if the termination criteria are not met, adding additional user intents expressed by additional natural language inputs of the same user to the intent transaction. This may include adding additional identifiers for the additional user intents expressed by the additional natural language inputs to the intent transaction. Execution times of the additional user intents may optionally be added to the intent transaction.
[0128] The method may include performing intent resolution using intent transactions (i.e., information about previously identified intents within the same session) if the termination criteria are not met.
[0129] The method may include terminating the addition of further user intents to the intent transaction if a termination criterion is met.
[0130] The termination criteria may include any one of a time threshold criteria, receipt of a command to terminate the intent transaction, receipt of a command to load a previous intent transaction, or any combination thereof.
[0131] The method may include simultaneously maintaining and updating a first intent transaction for a first user and a second intent transaction for a second user different from the first user.
[0132] The method may include continuously monitoring, by an intent supervisor, a utility system, an industrial system, or a communications network.
[0133] The method may include ensuring, by the intent supervisor, automatic adaptation of the command generation system to changes in the utility system, industrial system, or communication network.
[0134] Ensuring automatic adaptation of the command generation system to changes in the utility system, industrial system, or communications network may include one or more of: automatically generating and issuing at least one additional command in response to detecting a change in topology and / or entity state to confirm that the utility system, industrial system, or communications network continues to operate according to a user intent expressed by the natural language input; verifying that the determined intent expressed by the natural language input is consistent with previously received user intent and / or the state of the utility system, industrial system, or communications network; and verifying that execution of the at least one command causes the utility system, industrial system, or communications network to reach a target state.
[0135] The first interface may be operable to receive the natural language input as a text input.
[0136] The first interface may be a web-based interface. The first interface may be operable to receive the natural language input as a speech input.
[0137] The method may include converting the speech input into text input using a speech-to-text module before performing the stateful intent resolution process.
[0138] The first interface may be operable to receive natural language input as freehand user input via a graphical user interface.
[0139] The method may include extracting natural language input from input received via a graphical user interface.
[0140] The method may include using the labeled natural language input to train at least one classifier model for performing intent classification.
[0141] The method may include using the labeled natural language input to train an entity extractor that operates to extract system entities of the control system from the natural language input.
[0142] The method can include applying NLP techniques to the labeled natural language input to generate additional training data.
[0143] The additional training data may include compound intents that are composed of several labeled simple intents.
[0144] According to another embodiment of the present invention, there is provided a method that includes training at least one classifier model of a command generation system or IBN according to an embodiment.
[0145] The method may include using the labeled natural language input to train at least one classifier model for performing intent classification.
[0146] The method may include using the labeled natural language input to train an entity extractor that operates to extract system entities of the control system from the natural language input.
[0147] The method can include applying NLP techniques to the labeled natural language input to generate additional training data.
[0148] According to another embodiment of the present invention, there is provided a method for triggering the implementation of a task according to a natural language input of a user for configuring or reconfiguring at least one device of a utility system using a command generation system, in particular a command generation system implementing an IBN.
[0149] The utility system may be or may include an electric power system.
[0150] The utility system may be or may include an electrical distribution system or an electrical transmission system.
[0151] The utility system may be or may include a fluid flow system.
[0152] The fluid flow system may operate to allow for a controlled flow of fluid. The fluid may include any one or any combination of gas, water, fresh water, wastewater, fossil fuel, oil, or other fluids.
[0153] According to another embodiment of the present invention, there is provided a method for configuring or reconfiguring at least one device of an industrial system, comprising using a command generation system, in particular an IBN, for triggering the implementation of a task according to a natural language input of a user.
[0154] The industrial system may be or may include an industrial system having an IACS.
[0155] The industrial system may include an electrical substation. According to another embodiment of the present invention, there is provided a method for triggering the implementation of a task according to a natural language input of a user for configuring or reconfiguring at least one device of a communication network using a command generation system, in particular a command generation system implementing an IBN.
[0156] The communication network may be a communication network of an IACS. The communication network may be a communication network of a utility system, such as a communication network of an electric power system.
[0157] The communication network may be a communication network of an industrial system. This method can be used to change device settings using natural language input.
[0158] The natural language input may be text input or voice input. The use of the command generation system, and in particular the IBN, may include implementing changes to device settings using the command generation system without the user having to navigate menus in a graphical user interface (GUI).
[0159] IBNs can be used to simplify the commissioning, configuration, or reconfiguration of utility systems, industrial systems, or communication networks.
[0160] The IBN may be used to change device settings of at least one device during commissioning, configuration, or reconfiguration of a utility system, industrial system, or communications network in response to natural language input.
[0161] According to another aspect of the invention, instruction code executable by at least one processing device, in particular at least one integrated circuit, in particular at least one computer, is provided to cause the at least one processing device to automatically perform a method according to any embodiment.
[0162] According to another aspect of the present invention, there is provided a storage medium having stored thereon instruction code executable by at least one processing device, in particular at least one integrated circuit, in particular at least one computer, thereby causing the at least one processing device to automatically perform a method according to any embodiment.
[0163] The storage medium may be a non-transitory storage medium. The methods, devices and systems according to the present invention can be used to initiate actions such as flow management in an intuitive manner during commissioning and / or field operation of a utility system, industrial system or communications network.
[0164] User intent is determined based on natural language input, eliminating the complexity and challenges engineers face when they have to navigate complex NMS menus to implement even small changes.
[0165] The methods, devices, and systems according to the invention can be used in connection with a communication network of an IACS, for example a communication network of an electricity generation, transmission, or distribution system. The methods, devices, and systems according to the invention allow for managing communication flows and / or power flows in an intuitive way, but can also be used for other actions.
[0166] The subject matter of the present invention will now be explained in more detail with reference to preferred exemplary embodiments shown in the accompanying drawings. [Brief explanation of the drawings]
[0167] [Figure 1] FIG. 1 is a schematic diagram of a command generation system coupled to a user input device and a control system. [Figure 2] 1 is a flowchart of a method. [Figure 3] FIG. 1 is a schematic diagram of a command generation system. [Figure 4] 1 is a flowchart of a method. [Figure 5] FIG. 1 is a schematic diagram of a command generation system. [Figure 6] 1 is a flowchart of a method. [Figure 7] FIG. 10 is a diagram illustrating an implementation of an intent transaction table. [Figure 8]FIG. 1 is a state diagram of a command generation system implementing an intent-based network. [Figure 9] FIG. 1 is a schematic diagram of a command generation system coupled to a user input device and a control system. [Figure 10] FIG. 1 is a diagram showing a set of simple intentions and compound intentions. [Figure 11] 1 is a flowchart of a method. [Figure 12] 1 is a flowchart of a method. [Figure 13] FIG. 1 is a diagram illustrating a trust tree. [Figure 14] FIG. 1 is a diagram illustrating a trust tree. [Figure 15] 1 is a flowchart of a method. [Figure 16] FIG. 1 illustrates a partial network ontology. [Figure 17] FIG. 1 illustrates a system. [Figure 18] FIG. 1 is a schematic diagram of an input device. DETAILED DESCRIPTION OF THE INVENTION
[0168] Detailed Description of the Embodiments Exemplary embodiments of the present invention are described with reference to the drawings, in which like or similar reference numerals indicate like or similar elements. Although some embodiments are described in the context of communications systems or other components of electrical power generation, transmission, or distribution systems, the methods and devices described in detail below can be used in a wide variety of systems, such as other utility or industrial systems.
[0169] Features of the embodiments may be combined with each other unless otherwise stated. According to embodiments of the present invention, a command generation system and method is provided that allows natural language input to be received, interpreted, and converted into appropriate network actions.
[0170] The command generation system and method operates to process text and / or voice natural language input, determine intent from the natural language input and, optionally, a network entity, and automatically generate and output commands to a network management system (NMS) or other actor within a utility system, industrial system, or communications network.
[0171] The command generation system and method operate to perform stateful intent resolution. Previously identified intents, previously issued commands, and / or the state of the utility system, industrial system, or communication network may be taken into account by the command generation system and method. For example, before generating and / or outputting a command generated based on intent resolution, the command generation system may verify that the command to be issued is consistent with the previously identified intents, previously issued commands, and / or the state of the utility system, industrial system, or communication network. The command generation system may selectively generate and / or output a command generated based on intent resolution only if the command is consistent with the previously identified intents, previously issued commands, and / or the state of the utility system, industrial system, or communication network.
[0172] As used herein, an "actor" of a control system is a device or set of devices that operates to implement commands in the control system, which may include changing settings and / or other configuration data of one or more control devices, such as intelligent electronic devices (IEDs) or communication network devices.
[0173] The actor may include or be a management or control system of a control system. The actor may be a network management system (NMS).
[0174] As used herein, the term "network management system" refers to a system that operates to provision, discover, monitor, and maintain a network, such as a computer network. A network management system may be implemented using one or more integrated circuits that execute computer-readable instruction code that operates to provision, discover, monitor, and maintain a network, such as a computer network.
[0175] As used herein, the terms "consistent" or "consistency" refer to the absence of conflicts. A device, system, or method that ensures consistency may operate, for example, to perform actions that verify that they do not conflict with the system state of a control system, previously identified intent, and / or previously issued commands. Ensuring consistency may include or consist of verifying the absence of conflicts.
[0176] The command generation system and method may operate to quantitatively determine how reliable the identification of an intent is. Confidence information may be automatically determined that quantifies the confidence that the natural language input is classified as belonging to an intent class. The confidence information may be used to determine whether the command can be automatically output or whether user confirmation is required. The confidence information may be used to control an interface to request user confirmation that the intent was correctly identified and / or to request the user's selection from among multiple possible intents determined from the natural language input.
[0177] The command generation system may be an intent-based network (IBN). All components of the IBN may reside outside the utility system, industrial system, or communications network being controlled. Alternatively, some of the components of the IBN may reside within the utility system, industrial system, or communications network being controlled.
[0178] The command generation system and method operates to perform stateful resolution of natural language (NL) based simple and compound intents.
[0179] Thus, the command generation system and method allows an engineer to interact with a network management system (NMS) or another network actor in a simple and intuitive manner.
[0180] The IBN receives intended actions expressed in natural language text or voice input and triggers appropriate network tasks. The natural language input can include simple or complex expressions, which are resolved using natural language processing (NLP) and / or natural language understanding (NLU) techniques. The IBN can maintain the overall network state and transaction state of the intent so that actions of past intents continue to be honored. This can reduce the cognitive load of human operators, the possibility of misconfigurations, costs, and outages in utility systems, industrial systems, or communications networks.
[0181] As an example, a network intent may include a simple task, such as installing a rule on a switch, or it may be a complex task that can be divided into separate subtasks (such as identifying a transmission path and configuring one or more devices along the transmission path so that data can be stored in a cloud device). The former type of intent is called simple, and the latter intent is called compound. A k-compound intent is composed of k different simple intents (k>1).
[0182] The IBN and method may operate by considering a set of simple intents (plain text) and assigning a label ("intent class") to each. For each such intent, a network entity (e.g., IP address or port number) is also separately labeled. NLP and / or NLU techniques are then used to combine the simple intents from the k different classes to generate k compound intents.
[0183] An IBN can be trained with a set of simple and compound intents to generate a classification model. Network entities can also be extracted based on the set of intents.
[0184] When an IBN receives text or speech natural language input, it classifies the input text into an intent class and identifies network entities, if any.
[0185] Ambiguity can arise during the classification process because similar texts may belong to different intent classes. To address this, we can consider the intent classification confidence values, build a classification tree, and identify the path with the highest positive confidence score. The intent at the root of a path (or subpath) is most often the target intent. This can be confirmed by user feedback.
[0186] Once the user confirms the target intent and action, the IBN communicates with the NMS or other actors in the utility system, industrial system, or communication network and issues commands. The NMS or actors respond to the commands and trigger actions to achieve the desired behavior specified in the natural language input. Once all tasks are executed, the NMS captures the network state and communicates it to the intent supervisor. Furthermore, the intent resolution process is stateful, and the IBN maintains the transaction of intents and network commands.
[0187] It will be appreciated that intent identification and entity extraction are prominent aspects of NLP, and that both commercial and open source solutions are available for implementing intent identification and entity extraction. The feasibility of specific implementations used to implement user intent in utility systems, industrial systems, or communication networks is further described below.
[0188] Various features and advantages are achieved by embodiments that include any one or any combination of the following:
[0189] Automatically generating compound intents through NLP-based combination of simple intents from a database of pre-classified simple intents expressed in natural language. The command generation system or method can automatically generate compound intents that are then used for intent resolution.
[0190] Building a confidence tree based on intent classification results to identify target network intent classes. The command generation system or method can automatically quantify the confidence of the classification process in intent resolution.
[0191] Creating, assigning, and maintaining intent transactions to track operator-initiated changes to a utility system, industrial system, or communications network and maintain the intended network state, thereby mitigating the challenges operators face in tracking previously issued commands and / or previously identified intent.
[0192] Providing a natural language interface to control NMS or other actors in utility systems, industrial systems, or communication networks.
[0193] By allowing operators to specify behavior in natural language, the system can reduce the cognitive load on operators and the likelihood of misconfiguration, resulting in less downtime for utility systems, industrial systems, or communication networks.
[0194] · The synthesis of multiple intents can be useful to achieve interoperability between heterogeneous networks such as Ethernet and Synchronous Digital Hierarchy (SDH).
[0195] In embodiments, various additional features may be used: For illustrative purposes, instead of providing a text-based natural language interface, a voice-based interface may be used.
[0196] The command generation system and method may use a translator to process natural language input received in a language other than the primary language (e.g., English) into the primary language for processing.
[0197] 1 is a block diagram of a command generation system 20 that operates to automatically generate and issue commands to actors 11 in a control system 10. The control system may be a utility system, an industrial system, or a communications network. The control system may be a substation, a distribution or transmission grid, a communications network of a substation, a distribution or transmission grid, or another utility or industrial system.
[0198] Actor 11 may be a management or control system such as a network management system (NMS).
[0199] The command generation system 20 has a first interface 21 operative to receive natural language input. The natural language input may be text input or speech input. The first interface 21 may be operative for communicative coupling with an input device 40 that allows a user to input text and / or speech natural language input. The input device 40 may be a workstation, a mobile device, particularly a handheld device, or another input device.
[0200] The command generation system 20 operates to determine a user's intent expressed by the natural language input and generate a command based on the identified intent. The command generation system 20 includes one or more processing modules 30 that operate to determine a user's intent expressed by the natural language input and generate a command based on the identified intent. The processing modules may include one or more integrated circuits (ICs). The one or more ICs may include one or more of a processor, a microprocessor, a controller, a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any combination thereof. Some or all of the processing modules may be implemented by a virtual machine (VM). Some or all of the processing modules may run in a distributed computing architecture, such as a cloud-based computing infrastructure.
[0201] The command generation system 20 operates to execute an intent resolution module 31. The intent resolution module 31 receives natural language input from the first interface 21 and may execute a classifier that classifies the natural language input according to one or more intent classes. The intent resolution module 31 operates to determine an intent class of the natural language input, the intent class being selected from a set consisting of multiple simple intents and multiple compound intents. Compound intents include compound intents formed from two, three, and / or more than three simple intents. The intent resolution module 31 may use a classifier with a trained classification model. Training of the classification model may be performed automatically by the command generation system 20.
[0202] The command generation system 20 may operate to execute a consistency verification module 32. The consistency verification module 32 may be included by an intent supervisor, as described in more detail below.
[0203] Consistency verification module 32 may perform checks on the intent determined by intent resolution module 31. This may include verifying the consistency of the intent determined by intent resolution module 31 compared to previously determined intents, previously output commands, or the state of control system 10.
[0204] The consistency verification module 32 may operate to perform verification, including verifying that the user's intention expressed by the natural language input is consistent with previously identified intentions and / or previously issued commands, before issuing at least one command generated based on the intention determined by the intent resolution 31.
[0205] Alternatively, or in addition to using information regarding previously identified intent and / or previously issued commands, consistency verification module 32 may operate to retrieve state information regarding the state of the utility system, industrial system, or communications network.
[0206] The consistency verification module 32 may operate to perform verification, including verifying that the user's intent, as expressed by the natural language input, is consistent with the retrieved state information, before issuing the at least one command.
[0207] The command generation system 20 operates to execute a command generation module 33. The command generation module 33 may generate commands that depend on (i) the user's intent identified by the intent resolution module 31 and (ii) the interface of the actor 33. A lookup table may be used to translate intents and attributes (such as identifiers of network entities or other numeric or alphanumeric attributes) into commands to be issued to the actor 11. When the command generation system 20 operates to issue commands to several different actors and / or on different interface implementations, different lookup tables may be provided, one of which may be selected to determine the format and attributes of the command to be output via the second interface 22.
[0208] The command generation system 20 includes a second interface 22. The second interface 22 may be an interface that operates to output state information to the actor 10. The second interface 22 may be a stateful application programming interface (API). The second interface 22 may be, but is not limited to, a representational state transfer application programming interface (REST API) or a gRPC remote procedure call (gRPC) interface.
[0209] The control system 10, i.e., an industrial system, a utility system, or a communication network, includes several system entities 12, 13. In response to receiving at least one command automatically generated by the command generation system 20, the actors 11 of the control system 10 can perform appropriate actions according to the received commands, which may include changing the settings of one or more of the system entities 12, 13. The system entities 12, 13 may include one or more of a communication switch (e.g., an Ethernet switch), an intelligent electronic device (IED), a firewall, or other devices.
[0210] The command generation system 20 can use information about the identified intent and / or the issued command. The command generation system 20 may use this information when determining the intent based on the natural language input. The command generation system 20 may alternatively or additionally use this information when determining whether to generate and / or output a command according to the determined intent.
[0211] The command generation system 20 may include a storage system 23 in which previously identified intentions and / or previously issued commands are installed. This may occur at various stages. Illustratively, the storage system 23 may include a database of previously identified intentions and / or previously issued commands. Alternatively or additionally, information regarding the state of the control system 10 may be maintained and stored in the storage system 23.
[0212] The storage system 23 need not be included in the command generation system 20, but may be provided separately therefrom.
[0213] Additional or alternative features that may be implemented by command generation system 20 to determine whether an identified intent and / or generated command matches a previously identified intent and / or previously generated command are described in more detail with reference to Figures 3-4.
[0214] The command generation system 20 may operate to generate a compound intent from a set of simple intents using natural language processing (NLP)-based techniques. The simple intents and the compound intents may then be used to perform classifier training to generate a trained classifier model. The command generation system 20 may operate to perform classifier training to generate a trained classifier model. An implementation is described in more detail with reference to FIG. 5.
[0215] The command generation system 20 may operate to respond to natural language input from multiple different users. The command generation system 20 may generate and manage one open intent transaction per user as long as natural language input is received from that user and termination criteria (which may be user-specific or non-user-specific) are not met. The intent transaction may provide a data structure in which identified intent, associated time information, and associated resulting network state are aggregated. There may be multiple concurrent open intent transactions associated with multiple different users.
[0216] Additional or alternative features may be implemented by command generation system 20 to manage the implementation of natural language input from one or more users using intent transactions. Implementations are described in more detail with reference to Figures 6 through 9.
[0217] The command generation system 20 may operate to determine how reliable the intent resolution process is. To illustrate, if the natural language input is classified using a classifier, the command generation system 20 may operate to determine which one of several intent classes the user input is most likely to belong to. Alternatively or additionally, the command generation system 20 may operate to determine whether user confirmation is required before issuing a command to confirm the identified intent. Alternatively or additionally, the command generation system 20 may operate to quantify the likelihood that the natural language input belongs to that intent class and output information indicating the confidence in each of multiple intent classes. This information may be output via a user interface to trigger the user to perform a simple selection.
[0218] Additional or alternative features may be implemented by command generation system 20 to determine and / or use confidence information to classify natural language input according to a set of intents, including multiple simple intents and multiple compound intents. Possible implementations are described in more detail with reference to Figures 11-14.
[0219] Command generation system 20 may implement an intent-based network (IBN). Processing system 20 may be a node of an IBN that may also include other IBN devices (particularly, elements of a control system) and data storage. A possible implementation is described in detail with reference to FIG. 9. Thus, a command generation system implementing an IBN is a command generation system that forms an IBN or is set up in a manner that operates to interact with other devices to form an IBN.
[0220] As used herein, the terms IBN, intent transaction, and intent supervisor may be interpreted as follows:
[0221] Intent-Based Network (IBN): An IBN includes modules of computer-readable instruction code and / or one or more integrated circuits executing computer-readable instruction code, receives natural language input, resolves a user's (e.g., a network operator's) intent from such natural language input, and issues commands to be executed by actors in a utility system, industrial system, or communications network. The intents and inputs are related to tasks being performed within the utility system, industrial system, or communications network. Potential intents unrelated to configuration or management tasks of the utility system, industrial system, or communications network, such as making a restaurant reservation, are not considered. The control system (utility system, industrial system, or communications network) involved and its elements are said to be "intent-aware" when integrated with the IBN.
[0222] Intent Transaction: When a user (e.g., operator) interacts with the IBN for the first time, a new intent transaction is initiated for this user. All subsequent intents (and executed network commands) sent by the same user are part of the same transaction, unless termination criteria are met. An operator's intent transaction terminates when:
[0223] The time delay between the end of the execution of the previous intention and the sending of the new intention is greater than a threshold D. A user command explicitly requests the end of the current intent transaction. A user command explicitly requests the loading of the previous intent transaction state Any two concurrent users have their own distinct intent transactions.
[0224] Intent Supervisor: An intent supervisor can be provided in the IBN or command generation system. If provided, the intent supervisor is responsible for continuously monitoring the intent-enabled control system (utility system, industrial system, or communication network) and its elements. The intent supervisor ensures that previously installed intended states are not unintentionally overwritten in the future due to unintended changes in the control system, which may result from temporary or persistent faults or failures. For example, an intent may require a 10 Mbps bandwidth path between two endpoints. If any link in that path fails or the available bandwidth of the path drops below 10 Mbps, the intent supervisor can proactively activate an alternative path with at least 10 Mbps bandwidth availability to fulfill the intent. The intent supervisor has access to intent transactions (e.g., a table of intent transactions) in this regard. Furthermore, when a new intent is submitted and resolved, the intent supervisor can verify whether the incoming intent conflicts with the network state induced by the previously executed intent. For example, formal verification methods can be used in this regard. If a conflict occurs, the intent supervisor can act to reject the new intent. Otherwise, the intent supervisor can clear the intent for execution. In the latter case, the intent supervisor also verifies that the target network state is reached after the command execution. The intent supervisor can enforce the self-adaptivity of the IBN.
[0225] User: The term user refers to the person from whom the natural language input originates. The user may be an operator of a control system (utility system, industrial system, or communication network) or a network engineer.
[0226] Command generation system implementing an IBN: A command generation system that is, or includes, an IBN, or has one or more integrated circuits that interact with one or more entities of a control system (utility system, industrial system, or communications network) to form an IBN.
[0227] 2 is a flowchart of method 50. Method 50 provides a detailed view of a subset of the tasks performed by command generation system 20.
[0228] In step 51, natural language input is received. The natural language input may be text input. The text natural language input may be received via a web-based input interface. The natural language input may be voice input. Speech-to-text conversion may be performed automatically. The natural language input may be in a language different from the main language used by the command generation system or the IBN's NLP or NLU-based technology. Language recognition may be performed on the natural language input. If the natural language input is voice input or text input in a language other than the main language, a translation routine may be automatically invoked to translate the natural language input into text input in the main language (e.g., English).
[0229] In step 52, intent resolution is performed. The intent resolution may include classification. The classification may be performed according to a classifier model. The command generation system 20 or IBN may automatically generate the classifier model. The command generation system 20 or IBN may use NLP or NLU-based techniques to automatically generate compound intents from a set of simple intents stored in a database, and use both the simple intents and the compound intents to train a classifier model, which can then be used to process natural language input, more specifically, to perform intent classification.
[0230] In step 53, command attributes may be determined from the natural language input. The natural language input may specify command attributes that may be automatically determined and included in the generated and output command. For illustrative purposes, at least some intents (such as changing a flow between a first entity and a second entity in a control system, or changing a setting of an entity in the control system to a new value or by a specific increment or decrement) may include (i) a word or phrase in the natural language input that specifies an action to be implemented, (ii) another word or phrase in the natural language input that specifies at least one entity in the control system, and / or (iii) yet another word or phrase in the natural language input that specifies a numerical value. For illustrative purposes, for configuring or reconfiguring a flow path (which may be a data flow path, an energy flow path, or a fluid flow path) between a first node and a second node in a utility grid or a communications network, the natural language input may include a word or phrase that specifies the action of configuring or reconfiguring the flow path, another word or phrase that uniquely identifies the first and second nodes, and any other attributes governing the flow (such as data throughput, power throughput, or fluid flow rate). A command is then generated, which includes attributes specifying the first and second nodes and attributes specifying the flow characteristics.
[0231] At step 54, consistency verification may be performed. The consistency verification may be performed to automatically determine whether a command (which may be defined by the determined intent class and the determined attributes) should be generated according to the determined intent and / or whether a command generated according to the determined intent should be output to an actor in the control system (i.e., a utility system, an industrial system, or a communication network). The consistency verification may include receiving user input in response to the output of the intent resolution result for user confirmation. The consistency verification may include verifying that the determined intent is consistent with previously identified intents. The previously identified intents may include intents identified from several different user natural language inputs. The previously identified intents may be retrieved from a database in which they are stored in response to execution of a command generated based on the previously identified intent. The consistency verification may include verifying that the determined intent is consistent with previously issued commands. The previously issued commands may be retrieved from a database in which they are stored in response to execution of the command. The consistency verification may include verifying that the determined intent is consistent with a state of the control system (i.e., a utility system, an industrial system, or a communication network). Status information for the state of the control system may be retrieved from a database that may be located within the control system or separate from the control system, directly from one or more entities in the control system, and / or from a database maintained locally by the command generation system 20 or the IBN.
[0232] In step 55, a command may be generated according to the determined intent. The command may be generated based on the intent determined by intent resolution and may be defined by one or more identifiers of one or more intent classes. Illustratively, a lookup technique may be used to determine which command to output based on the intent determined by intent resolution and based on information about the interface of the actor to which the command is to be output. The command may be generated based on attributes determined from the natural language input. The generation of the command in step 55 and / or the output of the command in step 55 may be selectively performed depending on the result of the validation in step 54.
[0233] In step 56, in response to confirmation that a command was executed to implement the action specified by the natural language input, the command generation system 20 or IBN may update a dataset specifying the determined intent, the executed command, and / or the network state obtained in response to the execution of the command.
[0234] 3 is a block diagram of command generation system 20. The command generation system may include or be communicatively coupled to a command storage system 34 that stores previously issued commands.
[0235] The command generation system 20 may include or be communicatively coupled to the system state storage system 14. The system state storage system 14 may reside within the controlled utility system, industrial system, or communication network.
[0236] The consistency verification module 32 may retrieve information about commands previously output from the command storage system 34 and / or state information from the system state storage system 14 that defines at least a portion of the state of the control system (utility system, industrial system, or communication network).
[0237] Consistency verification module 32 may operate to verify that the intent determined by intent resolution module 31 matches previously issued commands. Previously issued commands may be retrieved from command storage system 34 where they are stored in response to execution of the commands.
[0238] The consistency verification module 32 may operate to verify that the intent determined by the intent resolution module 31 is consistent with the state of the control system (i.e., utility system, industrial system, or communications network). State information for the state of the control system may be retrieved from the system state store 14, which may be located within the control system or separate from the control system.
[0239] Consistency verification may include (1) verifying whether the incoming intent creates a conflict with the network state induced by a previously executed intent, and (2) verifying that the target network state is reached after the command is executed.
[0240] Intent resolution, as well as consistency verification, may depend on previously issued commands and / or the current state of the control system. To illustrate, information about previously issued commands and / or information about the current state of the control system may be used in a classification procedure that classifies a natural language input as belonging to one of a plurality of intent classes. To perform intent classification, a classifier model may receive as input information about one or more previously issued commands and / or information about at least one parameter of at least one device of the control system.
[0241] Figure 4 is a flowchart of a method 60. Method 60 may be performed to implement consistency verification step 54 of Figure 2. Method 60 may be performed automatically by consistency verification module 32.
[0242] In step 61, information regarding previously identified intentions and / or previously executed commands is retrieved. The retrieval of this information may be triggered by the receipt of natural language input. The information may be retrieved from a database within the IBN.
[0243] At step 62, it is determined whether the intent determined by intent resolution from the natural language input matches a previously identified intent and / or a previously executed command. If a mismatch is determined, the natural language input is rejected at step 66. Step 66 may include outputting information (such as an alert, warning, or other signal) via a user interface (UI). The information may indicate that the natural language input has been rejected. The information may indicate a reason for rejecting the natural language input, such as an indication of a previously identified intent and / or a previously executed command that conflicts with the intent.
[0244] In step 63, information regarding the state of the control system (utility system, industrial system, or communications network) is retrieved. The retrieval of information in step 63 may be triggered by receiving natural language input. Information regarding the state of the control system may be retrieved from a control or management center within the control system or from a database maintained separate from the control system.
[0245] In step 64, it is determined whether the predicted state of the control system (utility system, industrial system, or communication network) based on the input intent matches the desired (intended) state of the control system. If an inconsistency (i.e., a conflict) is determined, the natural language input is rejected in step 66. Step 66 may include outputting information (such as an alert, warning, or other signal) via a user interface (UI). The information may indicate that the natural language input has been rejected. The information may indicate the reason for rejecting the natural language input, such as an indication of the system state of the control system that conflicts with the intent.
[0246] In step 65, if the determined intent matches the previously identified intent, the previously executed command, and the current state of the control system, execution of the task specified by the natural language input may be triggered, which may include triggering the command generation module 33 to generate and output a command according to the determined intent class and the identified attributes.
[0247] While method 60 of Figure 4 illustrates various checks to ensure there are no conflicts with previous intent, commands, or system states, not all of these steps need to be performed in combination. For purposes of illustration, steps 63 and 64 are optional if the control system has a central control or management system that interfaces with the command generation system. Steps 63 and 64 may be beneficially used if the control system has distributed control.
[0248] The operation of method 60 without the need to perform steps 63 and 64 is described below with reference to non-limiting examples (i), (ii), (iii), and (iv). Method 60, with or without steps 63 and 64, can be implemented for a variety of other commands and / or a variety of other control systems without being limited to the examples.
[0249] (i) A first user sends the following intent: Allow 10Gbps flows between 10.0.0.1 and 10.0.0.2 for the next 24 hours, and this intent is successfully installed on the network. A second user then sends an additional intent within the 24-hour timeframe: Limit flows from 10.0.0.1 to 10.0.0.2 to 1Gbps. The further intent is determined to violate the network state intended by the first user. The IBN can reject this further intent without consulting the network state table.
[0250] (ii) A first user sends the following intent: Allow 10Gbps flows between 10.0.0.1 and 10.0.0.2 for the next 24 hours, and this intent is successfully installed in the network. A second user then sends an additional intent within the 24-hour timeframe: Delete flows from 10.0.0.1 to 10.0.0.2. The further intent is determined to violate the network state intended by the first user. The IBN can reject this further intent without consulting the network state table.
[0251] (iii) The control system is a fluid utility grid or an industrial (e.g., chemical) plant with fluid pumps. A first user issues an intent to set the volumetric flow rate of a pump from 1 to 100 cubic meters per unit time. Later, a second user issues another intent to set the flow rate of the same pump from 1 to 10 cubic meters per unit time. The IBN recognizes this as a violation of the first user's intended state. Therefore, the IBN can immediately reject the second user's intent without referring to the detailed system state stored in the database.
[0252] (iv) The control system is a power system with sources (e.g., distributed energy resources (DERs)) and / or battery energy storage systems (BESSs). A first user issues an intention to set the amount of DER generation and / or BESS storage within a first range for a first time period. Later, within the first time period, a second user issues another intention to set the amount of DER generation and / or BESS storage within a second range having at least one boundary different from the first range. The IBN recognizes this as a violation of the first user's intended state. Thus, the IBN can immediately reject the second user's intention without referring to the detailed system state stored in the database.
[0253] In other embodiments, steps 61 and 62 are optional. At least one classifier can be executed to assign the natural language input to an intent class. The classifier can be operative to assign the natural language input to a set of intent classes, the set including a plurality of intent classes associated with simple intents and a plurality of intent classes associated with compound intents.
[0254] FIG. 5 is a block diagram of the command generation system 20. The command generation system may include or be communicatively coupled to an intent database 36. Initially, the intent database may store at least a set of simple intents. The simple intents may include persistently stored simple intents and / or user-specified simple intents. The simple intents may depend on the type of network being controlled. To illustrate, different sets of simple intents may be used depending on whether the command generation system 20 is intended to implement an IBN for issuing commands to an electric power system, a fluid grid, an industrial manufacturing system, or a communication network. Different sets may be stored simultaneously in the intent database 36, and one of the different sets may be accessed depending on which type of system (e.g., electric power system, fluid grid, industrial manufacturing system, communication network) is to be controlled by the command generation system 20.
[0255] The command generation system 20 may include a composite intention generation module 37. The composite intention generation module 37 may operate to retrieve simple intentions from the database 36. The composite intention generation module 37 may operate to generate composite intentions from the simple intentions. Each composite intention may be composed of two or more simple intentions. The composite intention generation module 37 may operate to apply natural language processing (NLP) techniques to generate composite intentions from the simple intentions. The composite intention generation module 37 may operate to store the generated composite intentions in an intention database and / or output the generated composite intentions to the intention trainer 38.
[0256] The composite intent generation module 37 can access simple intents in the intent database 36 that depend on what type of system (e.g., power system, fluid grid, industrial manufacturing system, communication network) is to be controlled by the command generation system 20.
[0257] The NLP rules applied by composite intent generation module 37 to generate composite intents from simple intents may depend on what type of system (e.g., an electric power system, a fluid grid, an industrial manufacturing system, a communication network) is to be controlled by command generation system 20. To illustrate, different NLP-based rule sets may be used to generate composite intents depending on whether an electric power system, a fluid grid, an industrial manufacturing system, or a communication network is to be controlled by command generation system 20.
[0258] The command generation system 20 may include an intent trainer 38. The intent trainer 38 may operate to retrieve simple intents from the intent database 36, retrieve compound intents from the intent database 36, and / or receive compound intents from the compound intent generation module 37. The intent trainer 38 may operate to train a classifier model 39 using the retrieved simple intents and compound intents.
[0259] The intent trainer 38 can apply NLP, natural language understanding (NLU), and machine learning classification techniques to generate an intent classification model.
[0260] The intent classification model 39 may operate to receive a natural language input as an input and to assign the natural language input to at least one input class, each of which may be comprised of one of a simple intent and a compound intent.
[0261] The intent classification model 39 may be a machine learning (ML) model. The intent trainer 38 may operate to perform training of the intent classification model 39. Supervised techniques (such as supervised ML) may be used. Alternatively or additionally, the intent trainer 38 may operate to implement a generative adversarial network (GAN) architecture to train the intent classification model 39. The intent trainer 38 may execute a generator (which may be, without limitation, a neural network) trained to generate candidate classifier models and a discriminator trained to evaluate the candidates. Training of the classifier model 39 may be terminated if the performance of the intent classification model 39 meets a termination criterion (such as a performance threshold criterion and / or a timeout criterion).
[0262] The command generation system 20 or IBN may maintain an intent transaction table to track ongoing and past intents sent by any user and / or executed in the control system. An intent transaction, e.g., T(u,t), for user u at time t records a list of intents sent in a given session initiated by the user using the IBN interface, commands executed, and / or changes affected in the control system (such as power, fluid, and / or communication flows). For example, a given intent transaction may store, for each intent therein, a flow identifier (a unique positive integer) for the affected flow, from which various relevant parameters can be determined. Examples of such relevant parameters include endpoints, paths, bandwidth, and latency. Each T(u,t) is identified by a unique positive number, which may be alphanumeric.
[0263] Intent transactions can help resolve complex network intent, as described in more detail below.
[0264] 6 is a flowchart of the method 70. The method 70 may be performed automatically by the command generation system 20 or an IBN implemented by the command generation system 20.
[0265] Natural language input is received from a user at step 71. The user may be identified using the user's logon information to the command generation system or other authentication technique that provides the user with a unique identifier.
[0266] In step 72, it is determined whether an intent transaction is currently open for the identified user.
[0267] If there is no intent transaction currently open for the user, then a new intent transaction is opened in step 73. The method proceeds to step 75.
[0268] In step 75, when the intent transaction is open to the user, the intent transaction can be used to perform intent resolution of the received natural language input.
[0269] At step 76, it is determined whether termination criteria have been met. The termination criteria may include any one or any combination of a time threshold criterion, receipt of a command to terminate the intent transaction, or receipt of a command to load a previous intent transaction. If the termination criteria have not been met, the method may return to step 71. Additional natural language input received from the same user is added to the same intent transaction.
[0270] In step 77, if the decision criteria are met, the intent transaction is closed. The closed intent transaction can be stored and retrieved on demand. By way of illustration, a user can request the loading of a closed intent transaction when entering a new natural language input that causes the generation of a command.
[0271] Multiple intent transactions associated with multiple different users may be open simultaneously. For purposes of illustration, command generation system 20 or IBN may operate to maintain and use a first open intent transaction associated with a first user simultaneously with maintaining and using a second open intent transaction associated with a second user different from the first user.
[0272] FIG. 7 illustrates an implementation of an intent transaction 80. An intent transaction can include or consist of a data structure representing a table. The intent transaction table can include, among other things, timing information, e.g., in the form of a timing table. The timing table can include data stored using either a relational database management system (RDBMS) or a key-value data store, as shown in FIG. 7.
[0273] The timing table contains a table of data for each intent transaction, including a unique transaction identifier, an intent identifier for each intent in that transaction, the intent's transmission and completion times, and the resulting network state.
[0274] As shown in Figure 7, when an intent (e.g., I_1) under transaction T_1 is sent to the command generation system 20 or IBN, a row in the associated table is created. Here, t_1_0 indicates the time when I_1 is received, and t_1_1 indicates the time when the intent reaches the executed "finished" state. S(T_1, I_1) indicates the state of the control system (utility system, industrial system, or communication network) achieved at that stage. Because every intent transaction is uniquely identified, T_1 also includes information indicating the user (e.g., system operator) initiating that particular intent transaction.
[0275] For further explanation, it is assumed that the intention I_(j + 1) is sent at time t_(j + 1)_0. The intention I_(j + 1) can be regarded as part of the ongoing transaction T_1 only if the time threshold criterion is met. For illustration, the time elapsed since the execution of the previous intention (t_(j + 1)_0 - t_j_1) can be calculated, and this time can be the subject of threshold comparison. The intention I_(j + 1) sent at time t_(j + 1)_0 can be included in the ongoing intention transaction T_1 only if t_(j + 1)_0 - t_j_1 < D. To evaluate this, when any intention reaches the "ended" state, the command generation system 20 or IBN can start a transaction timer. If the transaction timer value exceeds D without another intention being sent from the same user, the user's current intention transaction ends. When the user sends a new intention after this period, a new intention transaction is started for that user. The end of a user's intention transaction, if any, does not affect the ongoing intention transactions of other users. The transaction timer is specific to a given transaction. There are two different transaction timers for two different intention transactions.
[0276] The threshold D can depend on the activities within the control system. The threshold D can depend on the state information retrieved from the control system. The threshold D may be user-specific or the same for all users.
[0277] Figure 8 shows a state machine for processing new intentions included in natural language input. As shown in Figure 9, when natural language input indicating an intention is sent, the intention enters the "sent" state 91. The command generation system or IBN identifies the corresponding intention class and, if it exists, extracts relevant attributes (such as entities of the control system specified in the natural language input) from the natural language input.
[0278] The intent then moves to a "resolved" state 92 in response to identifying the intent class and associated attributes, if any.
[0279] The Intent Supervisor verifies whether applying this intent violates the state of the control system caused by previous intents. If a violation is predicted, the intent moves to the "Rejected" state 93. Alternatively or additionally, an intent can be rejected if the resources of the control system do not allow it to be fulfilled. As an example, for a control system that is a communications network, a user may request a 100 Gbps path, but only 1 Gbps is feasible, so the intent is rejected.
[0280] If not rejected, the intent moves to the "Received" state 94. The IBN then instructs an actor in the control system (such as the NMS of a communications network) to execute a set of commands corresponding to the received intent. The intent is then "prepared" for execution ("Prepared" state 95). Once the actor in the control system confirms that the command execution is complete, the Intent Supervisor verifies this and moves the intent to the "Installed" state 96.
[0281] 9 shows a detailed block diagram of an embodiment of the present invention. The embodiment is described in connection with a control system that is a communications network, a control system actor that is an NMS, and an exemplary input device for inputting natural language input, but the embodiment is not limited thereto. For purposes of illustration, the control system may be a utility system or an industrial system. The control system actor may be a control or management system other than an NMS, such as a substation control or management center, a regional control or management center, or another control or management entity.
[0282] In Figure 9, the IBN 120 complements the control system through the NMS 111. The network can include various network elements such as multi-service platforms, routers, switches, and hosts. Network hosts can be workstations that use wired and wireless connections. Network hosts can also be handheld mobile devices such as tablets and smartphones that connect through a virtual private network (VPN).
[0283] Preparing the IBN120 to process natural language input in the field A user (including, but not limited to, an operator) sends network intent data 150 to the IBN 120, which is labeled by a domain expert 151. For example, both "create a flow between 10.0.0.1 and 10.0.0.2" and "allow communication between a1:b2:c3:d4:e5:f5 and aa:bb:cc:dd:ee:66" belong to the same intent class, e.g., create_unicast_flow. Furthermore, all associated network entities are also labeled. For example, in the first example, "10.0.0.1" and "10.0.0.2" are the target network entities. All labeled examples are added to the intent database 136. Domain translation and labeling may be performed by the domain translation and labeling module 151. Furthermore, an intent descriptor 152 is created, which stores metadata about the intent, such as the intent's name and the required and optional entities required for the intent.
[0284] The intents entered by users (including, but not limited to, operators and / or network engineers) are typically “simple” intents, i.e., they relate to one small (atomic) unit of any network-related task. The composite intent generator module 137 uses NLP techniques to combine two or more simple intents to form a composite intent. In particular, a k-compound intent is composed of k simple intents (k>1). For example, “create a flow between 10.0.0.1 and 10.0.0.2” and “allow HTTPS traffic” are two simple intents. Conjunctions, infinitives, n-gram arrays, and / or other NLP techniques can be used to generate such composite intents. For example, “create a flow between 10.0.0.1 and 10.0.0.2 and allow HTTPS traffic” are two composite intents formed using conjunctions. Such composite intents are labeled with a composite intent class and added to both the intent database 136 and the intent descriptor 152. In the case of a compound intent, the intent descriptor 152 also records the simple intent classes that make up a given compound intent class. Figure 10 shows some intents and metadata stored in the intent descriptor in the form of a table 180.
[0285] If enough examples of each intent class are available in the database, the intent trainer module 138 applies NLP, natural language understanding (NLU), and / or machine learning classification techniques to generate an intent classification model 139. Additionally, machine learning can be used to extract network entities from intent examples. For example, the intent "Create a flow between 10.0.0.1 and 10.0.0.2" consists of two network entities: "10.0.0.1" identified as the "source" and "10.0.0.2" identified as the "target." As a result, given a network intent, the IBN 120 can identify the corresponding intent class and the required entities.
[0286] Processing natural language input for field use of IBN120 The IBN 120 provides a natural language interface where users (particularly operators) can input and transmit their network intent in natural language via input devices 141, 142, 143. The input devices 141, 142, 143 may be handheld or mobile devices. The input devices 141, 142, 143 may provide a simple text or voice interface that allows a user to cause changes to the control system via the IBN without having to navigate menus in the NMS 111's graphical user interface and / or without requiring knowledge of the NMS 111's interface, its commands, and / or the current state of the control system.
[0287] The IBN 120 receives natural language input via a first interface 121, which is a natural language interface.
[0288] The intent and entity resolver module 131 is responsible for classifying any input intent. The intent and entity resolver module 131 can perform the classification according to a classification model 139 previously trained by an intent trainer 138.
[0289] The intent and entity resolver module 131 may operate to assign classification trust values (between 0 and 1, inclusive) to all known intent classes. For example, the intent "create a flow from host1 to host2" may have a high trust value with respect to the create_unicast_flow intent class, but a low trust value with respect to other intent classes.
[0290] Ambiguity may arise during the classification process because two similar input texts may belong to two different intent classes. To address this, intent classification confidence values are considered and used. Illustratively, as described in more detail with reference to FIGS. 11 through 14, the IBN 120 may build a classification tree and identify the path with the highest positive confidence score. The intent at the root of a path (or subpath) is most often the target intent. This can be confirmed by user feedback.
[0291] The IBN 120 compares the entities extracted from the user's input intent, if any, to a (possibly empty) list of entities expected by the relevant intent class. This has various effects. First, the percentage of identified expected entities, taken together with the classification confidence value, can help further clarify the target intent class. Second, the IBN 120 can prompt the user via input devices 141-143 to input the remaining expected entities, if any.
[0292] Additionally, artificial intelligence (AI) techniques such as ontologies and description logic can be used to infer conceptual equivalence of network entities. For example, to create a unicast flow, two entities are required: a source and a destination. However, an IBN may identify the two entities as "source" and "endpoint 1." AI can then be used to derive equivalence between "endpoint 1" and "destination." An exemplary network ontology is described in more detail with reference to FIG. 16.
[0293] Once the target intent and action are confirmed by the user, the intent supervisor 132 considers the potential impact of applying the intent. In particular, the intent supervisor 132 verifies whether the new intent will move the network into a state that violates the state induced by the previously installed intent. If such a violation is predicted, the intent is rejected. Otherwise, the IBN 120 processes the intent.
[0294] With the intent classes and entities known, the intent and entity resolver module 131 of the IBN 120 communicates with the NMS 111 and issues the appropriate commands. The NMS 111 then triggers network tasks (which can be computer-executable instructions) to achieve the user's desired behavior. A network task can be a command or program to accomplish a small, specific task, such as installing a rule on a switch to allocate a new flow between two endpoints. Once all tasks are executed, the NMS 111 captures the network state and communicates it to the intent supervisor.
[0295] Furthermore, the above intent resolution process is stateful. The IBN 120 maintains the state of intents and network commands. A network state table 112 can keep a record of the current and past network states. Such a network state table 112 can be part of the controlled network or can be separate from the IBN system 120. The network state, e.g., S(t) at time t, can be represented by a combination of various parameters, such as active virtual network functions (VNFs) and their loads, assigned IP address ranges, flow details, and network utilization. When the network manager 111 triggers a network task, the command in the controlled network can be conditioned by the network state table 112. The intent supervisor 132 can access and use the information in the network state table 112 to determine whether the intent should be executed.
[0296] The IBN 120 maintains intent transaction information 123. The intent transaction information 123 may be or include an intent transaction table, as described above. The intent transaction information 123 can be maintained to track ongoing and past intents sent / executed by any user (e.g., any operator). An intent transaction, such as T(u,t) for operator u at time t, records a list of intents sent in a given session initiated by the operator using the IBN interface, the network commands executed, and, specifically, the affected flows. For example, in the case of (data, power, or fluid) flow control, a given intent transaction can store, for each intent therein, the flow identifier (a unique positive integer) of the affected flow. From there, various related parameters, such as the endpoint, path, bandwidth (or throughput), and latency, can be known. Each T(u,t) is identified by a unique positive number, which may be alphanumeric.
[0297] Current intent transactions can help resolve complex network intents. For example, an example natural language input could be "Create a flow between 10.0.0.1 and 10.0.0.2 and allocate 100 Mbps of bandwidth." The intent in this example is clear: only the flow between 10.0.0.1 and 10.0.0.2 should get 100 Mbps of bandwidth, not all flows in the network. In contrast, consider a scenario in which an operator sends the following two intents separately, one after the other with a delay of less than D:
[0298] (a) Create a flow between 10.0.0.1 and 10.0.0.2 (b) Allocate 100Mbps bandwidth IBN 120 is able to resolve intent (a) and process it. However, without additional information, IBN 120 cannot resolve intent (b) (or may be prone to incorrectly resolve it). The context obtained in the current transaction after processing intent (a) (i.e., the flow between 10.0.0.1 and 10.0.0.2) can be used to assist in the resolution of a later-submitted intent (b).
[0299] Continuing with this illustrative example, the next intent may be sent with a delay greater than D since the completion of execution of intent (b).
[0300] (c) Delete the last assigned flow In this case, the transaction timeout will cause a new intent transaction to be initiated for the operator. Since all transactions are stored in the intent transaction table 123, the intent and entity resolver 131 can retrieve the flow identifier (e.g., F101) from the previous transaction and ask the user who sent intent (c) whether F101 should be deleted.
[0301] Referring to FIG. 9 , intent database 136 and intent descriptor 152 can reside in a control system or a commercial cloud. In such a case, the virtual machine, shown in dashed lines in FIG. 9 , and intent database 136 and intent descriptor 152 together form IBN 120. Alternatively, intent database 136 and intent descriptor 152 can both be included in the virtual machine. In such a case, the virtual machine and its contents form IBN 120. In either case, the virtual machine with the IBN instruction code can be hosted as a guest on a physical system. In other embodiments, the use of virtualization technology is not required to implement the IBN.
[0302] There may be a primary network path and a backup network path between the IBN 120 and the NMS 111. The control system may have a backup NMS (not shown in FIG. 9). There may be another primary network path and another backup network path between the IBN 120 and the backup NMS (not shown in FIG. 9).
[0303] Identifying Intent Classes Information quantifying the probability of the natural language input belonging to the intent class can be determined for each intent class. The information quantifying the probability can be determined according to a metric. The information quantifying the probability can be used for various purposes, such as automatically determining a most plausible classification, determining whether user confirmation is required, and / or selecting multiple candidate intent classes for output to a user when user confirmation is requested.
[0304] 11 is a flowchart of a method 170. The method 170 may be performed by the command generation system 20 or the IBN.
[0305] In step 171, natural language input is received. In step 172, a classifier may be executed to perform intent classification in which the natural language input is assigned to at least one intent class. Intent resolution may include classifying the natural language input into an intent class. Multiple possible intent classes may be identified.
[0306] At step 173, confidence information is determined. The confidence information may be determined when performing the intent classification. The confidence information may indicate a metric that quantifies the probability that the natural language input is associated with a respective intent class. The confidence information may be determined by the classifier when performing the classification. The confidence information may be obtained by re-running the classifier several times and determining statistical information about the results. This is particularly true if the classifier employs non-deterministic techniques. The confidence information may be obtained by further processing the classification confidence values. For illustrative purposes, a confidence tree may be constructed and a path confidence may be determined for each of multiple paths through the confidence tree, as will be described in more detail with reference to FIGS. 12-14 .
[0307] In step 174, the confidence information is used to generate an output. Depending on whether the confidence information of any one of the intent classes meets a confidence threshold criterion, a command may be generated and output to an actor of the control system without requiring user confirmation. Illustratively, if the confidence information of one intent class is equal to or greater than a first confidence threshold, a command may be generated and output to an actor of the control system without requiring user confirmation. If an output is generated via a user interface requesting user confirmation, the selection of candidate intents presented to the user for confirmation may be based on the confidence information. Illustratively, all candidate intents having confidence information equal to or greater than a second confidence threshold may be output to the user for selection. The second confidence threshold may be less than the first confidence threshold.
[0308] 12 is a flowchart of method 180. Method 180 may be performed by command generation system 20 or IBN. Method 180 may be implemented to determine trust information in step 173. Method 180 includes generating a data structure representing a tree with nodes and links and determining a path through the tree.
[0309] Each node of the trust tree may be associated with one of multiple simple intents or (only) one of multiple compound intents.
[0310] The trust tree may include at least one node associated with one of the plurality of compound intents and at least two nodes each associated with a simple intent selected from the plurality of simple intents.
[0311] A node of the trust tree associated with one of the multiple compound intents may have child nodes associated with the compound intent or the simple intent from which one of the multiple compound intents is formed.
[0312] Determining confidence information that quantifies the reliability of the classification results for the different intent classes may include identifying paths through the tree from among all possible paths through the tree based on confidence values assigned to nodes and / or links of the confidence tree.
[0313] In step 181, a trust tree may be constructed. The trust tree may have a root node associated with n composite intents, where n is an integer and n≧2. Any node in the trust tree other than a leaf node may be associated with a composite intent. Any node other than a leaf node may have multiple child nodes. Any node associated with k composite intents, where k is an integer and n≧k≧2, may have k child nodes, each associated with (k−1) composite intents (the (k−1) composite intents of all child nodes are distinct from one another).
[0314] A confidence value obtained by the intent classification can be assigned to each node in step 182. The confidence value can be a classification confidence that the natural language input belongs to the simple intent class or the compound intent class of the respective node.
[0315] The trust of the path through the trust tree is determined in step 183. Step 183 can be performed repeatedly for each possible path.
[0316] This can be done by a process that includes: (i) starting with a leaf node that has a positive (i.e., non-zero) trust value; (ii) moving up to an ancestor node; (iii) repeating step (ii) until the ancestor node's trust value is zero; and (iv) determining the trust of each path through the trust tree by multiplying all positive trust values found along this path.
[0317] This process can be repeated for each leaf node. In step 184, the path with the highest path reliability is determined.
[0318] The path reliability of the path with the highest path reliability, and optionally the path reliability of other paths, can be used to generate an output. Depending on whether the path reliability meets the path reliability threshold criteria, a command can be generated and output to an actor in the control system without requiring user confirmation. For illustrative purposes, if the path reliability of one (simple or compound) intent class is equal to or greater than a first path reliability threshold, a command can be generated and output to an actor in the control system without requiring user confirmation. When generating an output via a user interface to request user confirmation, the selection of candidate (simple or compound) intents presented to the user for confirmation can be based on the path reliability information. For illustrative purposes, all candidate (simple or compound) intents with path reliability equal to or greater than a second path reliability threshold can be output to the user for selection. The second path reliability threshold may be less than the first path reliability threshold.
[0319] The children of the highest-confidence root node are most likely to be the desired intent class. However, a zero-confidence node (or its ancestors) may also be the desired intent. User confirmation may be required.
[0320] A process that can be used to (approximately) identify a target intent class using confidence values from intent classification is described below.
[0321] 1. Receiving natural language input x 2.IBN performs classification using a classifier that can classify natural language input into predefined (simple and complex) intent classes C_1, C_2, ..., C_n.
[0322] 3. c(x,C) is the classification confidence that input x belongs to any (simple and complex) class C.
[0323] 4. A trust tree is constructed with simple and compound intent classes as its nodes.
[0324] a. Figures 13 and 14 show example trust trees with only two and three compound intentions.
[0325] b. The root node of the trust tree has all three composite intent classes as its children.
[0326] c. Each of the three compound intentions, in turn, has as its children two of its component compound intentions.
[0327] d. Each of the two compound intentions has its constituent simple intentions as children.
[0328] e. Although Figures 13 and 14 show trees for up to three compound intents, generating a trust tree for n>3 can be performed similarly, as described in connection with Figure 12.
[0329] 5. Assigning classification confidence values to each node in the tree 6. Finding the highest confidence path: a. Start with a leaf node b. Move up to ancestor nodes as long as their trust value is positive (i.e., non-zero). c. Stop reaching ancestor nodes with trust value 0.0 d. Multiply all positive confidence values found along this path; this is called the "path confidence." e. Repeat the process for all other leaf nodes f. Select the path with the highest path reliability i. The child of the root node with the highest confidence is the most likely desired intent class ii. However, a zero-trust node (or its ancestors) may also be the intended destination. 7. Ask the user for the intent class Figure 13 shows the trust tree 190 for the natural language input "Create an HTTPS flow between a mail server and a database server through a firewall." Except for the root node, all other nodes correspond to intent classes defined in IBN. Three composite intent classes are children of the root, and two composite classes are children of the former. The leaves represent simple intent classes. The numerical value within any node indicates the classification confidence of the corresponding intent class. Paths highlighted with thick edges represent highly confident paths, while the highlighted intent classes represent goal intent classes. In this example, the path confidence value is 0.05. This means that the input intent is most similar to the three composite intent classes, which consist of three simple intents: create_flow_unicast, create_nfv, and apply_filter. Because these three composite classes are children of the root node, IBN interprets them as the goal classes or goal actions intended by the user.
[0330] Figure 14 shows the trust tree 200 for the natural language input "Allow HTTPS communication between mail server and database server through the firewall." In this case, the two composite intent classes, create_nfv+apply_filter, are marked as the target intent class. However, because this class is not a direct child of the root node, the IBN asks the operator to confirm whether an action is required for this intent class or its parent intent class.
[0331] As mentioned above, the natural language input can specify not only the intent class (which determines which command to generate) but also the attributes of the command. To illustrate, to configure or reconfigure a flow (which may be a communication flow, a power flow, or a fluid flow), the natural language input can specify at least the following parameters:
[0332] Flow Source Flow endpoint Optionally, the capacity of the flow path (maximum communication bandwidth, maximum power transfer, or maximum fluid flow rate) Any other attributes (such as margins or thresholds for alarms, warnings, or corrective actions).
[0333] The natural language processing performed by command generation system 20 or IBN 120 may not only determine the intent class but may also perform entity resolution (and, if applicable, resolution of other attributes). Performing entity resolution may include determining unique identifiers of controllable devices (such as IEC 61850-compliant intelligent electronic devices (IEDs); for purposes of illustration, an IED may be an IED compatible with one or more of IEC 61850-3:2013, IEC 61850-5:2013, and / or IEC 61850-6:2009) within a controlled utility system, industrial system, or communications network.
[0334] 15 is a flowchart of the method 210. The method 210 may be performed by the command generation system 20 or the IBN 120.
[0335] In step 211, intent classification is performed to determine the most likely or multiple possible intent classes for the natural language input.
[0336] In step 212, entity resolution is performed. NLP or NLU can be used to process the natural language input. The command generation system 20 or IBN 120 can use system information about the controlled utility system, industrial system, or communication network to determine the address of the device (e.g., IED) to which the natural language input refers. To illustrate, a Standardized Configuration Description (SCD), particularly an IEC 61850-compliant Standardized Configuration Language (SCL) file (e.g., an IEC 61850-6:2009 compatible substation file), can be used in the process of identifying system entities within the control system specified by the natural language input.
[0337] In step 213, a consistency verification can be performed. The consistency verification can include verifying that both the determined intent class and the determined system entities (and / or other attributes included in the natural language input) are consistent with one or more of previously identified intents, previously issued commands, and / or the current state of the controlled utility system, industrial system, or communication network. Alternatively or additionally, a (partial) ontology can be used in the process of determining the system entities. An exemplary implementation is described with reference to FIG. 16. The partial ontology can depend on the type of system being controlled (i.e., power system, fluid flow grid, or communication network).
[0338] In step 214, a command may be generated based on the determined intent class, the determined system entities, and other attributes, if present, included in the natural language input. The command may be provided to an actor in the controlled utility system, industrial system, or communications network. The actor may implement the intent specified by the user's natural language input. This may include generating instructions by the actor for execution by multiple system entities, including the system entities identified in step 212 and / or intermediate system entities located along paths between the system entities identified in step 212. Network topology information, such as network topology information included in an SCL file or other SCD, may also be used.
[0339] Figure 16 shows a partial network ontology 220 that can be used for system entity resolution. Figure 16 relates to the case where the control system is a communication network (e.g., a communication network for a utility system or an industrial system), but the (partial) ontology for control systems can also be used for other control systems. For illustration purposes, the create_unicast_flow intent class is considered. It requires two mandatory entities: "source" and "target". Assume that the IBN identifies the following entity name-value pairs:
[0340] - "Source": "10.0.0.1" - "Server": "Database Server" Based on Figure 16, the "database server" is essentially a "server," which in turn is an "endpoint." Furthermore, any endpoint can act as a "goal." This means that the "database server" is equivalent to the "goal" required for the intent. Furthermore, since all endpoints have IP addresses, the "database server," or "goal," also has an IP address that can be used to create the desired unicast flow.
[0341] FIG. 17 is a schematic diagram of a system 230 in which the input device 40 and the command generation system 20 can be used to generate and issue commands to a control system, in this case a power system.
[0342] The system 230 includes a distributed energy resource (DER) or a microgrid. A plurality of generators 231-233 provide power. The DER or microgrid may also include a plurality of loads 245, 246 connected to the generators 231-233 via a transmission and / or distribution system 244. Circuit breakers (CBs), protective relays, and / or other power switches 242, 243, 249 may selectively couple the generators 231-233 and / or the loads 245, 246. An IED 241 is deployed for control of key components. The IEDs may be communicatively coupled via a communication network 250. The communication network 250 may include communication devices such as one or more firewalls 251 and / or one or more communication switches 252.
[0343] Input device 40 may be used by a user to selectively configure or reconfigure the communication network of system 230 and / or to selectively configure or reconfigure the power flow of system 230 using techniques described in detail herein.
[0344] The input device 40 comprises a user interface for receiving natural language input, which may include a graphical I / O unit such as a touch- or proximity-sensitive screen, a keyboard, or an acoustic-to-electrical transducer such as a microphone.
[0345] The input device 40 may have a wireless or wired interface for connecting to the command generation system 20. The input device 40 may have a wireless interface that may be or include a WLAN (e.g., Wi-Fi) or cellular (e.g., 4G or 5G) interface for connecting to other networks or devices. The input device 40 can, for example, use the wireless interface to transmit natural language input to the command generation system. The input device 40 may include a user authentication mechanism for connecting to the cloud.
[0346] In the illustrated embodiment, the command generation system 20 or IBN 120 operates in response to receiving natural language input to determine the type of action to be performed and the nodes affected by the action. Information regarding the network action to be performed is first received by the input device 40 and then processed by the command generation system 20 or IBN 120, allowing execution of the network action to be triggered. The input device 40 can output the identified intent class and / or the identified system entity for verification and confirmation by the user. In response to the confirmation, the command generation system 20 or IBN 120 invokes an appropriate interface (e.g., REST) of the NMS to trigger the action. The command generation system 20 or IBN 120 can communicate with actors in the control system using wired or wireless interfaces.
[0347] The command generation system 20 or IBN 120 can use system context (e.g., information about the system topology and / or information about the process description included in the configuration description) to resolve the user's intent, for example, by determining which actions are permissible. The command generation system 20 or IBN 120 can operate such that the context information includes data retrieved from the system configuration description and / or data retrieved from the process description, which can be stored or buffered by the command generation system 20 or IBN 120. The command generation system 20 or IBN 120 can operate such that processing the natural language input can include determining which actions are permissible based on the context information. The command generation system 20 or IBN 120 can operate such that the determined permissible network actions are used to interpret the user's intent, as specified by the natural language input. The command generation system 20 or IBN 120 can operate such that the determined permissible actions are used to determine which classifier to apply to the natural language input. The command generation system 20 or IBN 120 may operate such that the permissible network action is used to selectively cause an action to be performed only if the action is determined to be an permissible network action.
[0348] Command generation system 20 or IBN 120 may operate to receive freehand user input via a graphical user interface, extract natural language input from the freehand user input, and process the natural language input as described in detail herein.
[0349] 18 is a schematic diagram of an input device 40 having a graphical user interface (GUI). The command generation system 20, the IBN 120, or the input device 40 may operate to cause a graphic 161 representing at least a portion of the topology of the control system to be output via the GUI. The input device 40 may operate to receive freehand user input in the GUI, including natural language input 162. Processing of the freehand user input may be performed by the input device 40, the command generation system 20, or the IBN 120 to identify natural language input within the freehand user input. The identified natural language input may then be processed by the command generation system 20 or the IBN 120 to generate and output commands to actors within the control system (e.g., a management or control system).
[0350] Systems, devices, and methods according to the present invention enable managing actions in a utility system, industrial system, or communications network (particularly a communications network of a utility system or industrial system) using conveniently entered natural language input. The systems, devices, and methods allow a user (e.g., an operator or network engineer) to specify an action and execute the action via a control or management system without having to navigate the menu-based interface of the control or management system, without having to keep track of previously issued commands or previously stated intent, and / or without knowledge of the command structure required by the control or management system. The appropriate action is triggered via the control or management system.
[0351] The systems, devices, and methods not only reduce the cognitive load of network engineers, but also reduce the risk of misconfiguration in managing utility systems, industrial systems, or communications networks.
[0352] The systems, devices, and methods provide various advantages and benefits: The systems, devices, and methods provide a mechanism by which network engineers can specify their intended behavior in an expressive manner without introducing ambiguity.
[0353] The systems, devices, and methods provide a simplified solution to incremental network management tasks.
[0354] The systems, devices, and methods provide ease of use for both expert and novice network engineers alike.
[0355] The systems, devices and methods may be used to configure a utility system, an industrial system, or a communications network to be commissioned.
[0356] The systems, devices, and methods can be used to configure energy, fluid, or communication flows in utility systems, industrial systems, or communication networks.
[0357] Although the embodiments have been described in the context of a communications network and an electric power system, the methods and computer systems are not so limited. The disclosed systems, methods, and devices can be used for network management tasks of an IACS, which can be, but need not be, an electric power system.
[0358] While the present invention has been described in detail in the drawings and the foregoing description, such description is to be considered illustrative or exemplary and not restrictive. Variations of the disclosed embodiments can be understood and effected by those skilled in the art and those practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite articles "a" or "an" do not exclude a plurality. The mere fact that certain elements or steps are recited in separate claims does not indicate that a combination of these elements or steps cannot be advantageously used. Specifically, any more meaningful combination of claims is considered disclosed in addition to the actual claim dependencies.
Claims
1. A command generation system (20; 120) for issuing commands to actors (11; 111) of a utility system, an industrial system or a communication network, said command generation system (20; 120) implementing an Intent-Based Network (IBN), a first interface (21; 121) operative to receive natural language input specifying a task to be performed; one or more processing modules (31-33; 131, 132) operative to perform a stateful intent resolution process to determine a user's intent expressed by the natural language input and to generate at least one command based on the determined intent; a second interface (22) operative to issue the at least one command to the actor (11; 111) to perform the task in the utility system, the industrial system, or the communication network; The command generation system operative to maintain one or more intent transactions, a particular intent transaction recording a list of intents submitted by a user in a particular session, commands executed, and changes affected by the controlled system; If the termination criteria are not met, the command generation system (20; 120) executes said stateful intent resolution process using intent transactions that provide information about previously identified intents within the same session.
2. 2. The command generation system (20; 120) according to claim 1, wherein the actor (11; 111) is a utility system, an industrial system, or a management or control system of a communication network of a utility or industrial system.
3. 3. The command generation system (20; 120) of claim 1 or 2, wherein the command generation system is operative to quantitatively determine how reliable the identification of the user's intent is and to use the confidence information to determine whether a command can be automatically output or whether user confirmation is required.
4. said command generation system (20; 120) is operative to perform said stateful intent resolution process using information about previously identified intents and / or previously issued commands; Optionally, said command generation system (20; 120) comprises or is communicatively coupled to a data storage system (23; 123) for storing said information relating to said previously identified intentions and / or said previously issued commands; Further optionally, the command generation system (20; 120) is operable to store information relating to the determined intention and / or the at least one command in the data storage system (23; 123) in response to confirmation that the task has been executed in the utility system, the industrial system, or the communication network.
5. 5. The command generation system of claim 4, wherein the command generation system is operative to perform a verification that includes verifying that the user's intention expressed by the natural language input matches the previously identified intention and / or the previously issued command before issuing the at least one command.
6. The command generation system (20; 120) retrieving status information regarding the status of the utility system, the industrial system, or the communications network; 6. A command generation system (20; 120) according to claim 4 or claim 5, operative to perform a verification, including verifying that the user's intention as expressed by the natural language input is consistent with the retrieved state information, before issuing the at least one command.
7. 7. The command generation system of claim 1, wherein the command generation system is operable to assign the natural language input to at least one intent class, the intent class being selected from the group consisting of a plurality of simple intents and a plurality of compound intents.
8. The command generation system (20; 120) according to claim 7, wherein each of said plurality of compound intentions is composed of two or more simple intentions selected from said plurality of simple intentions.
9. 9. The command generation system (20; 120) of claim 7 or claim 8, wherein the command generation system (20; 120) operates to automatically generate the plurality of compound intentions by natural language processing, NLP-based combination of simple intentions selected from the plurality of simple intentions.
10. the stateful intent resolution process comprises assigning the natural language input to the at least one intent class, and the command generation system (20; 120) is operative to determine confidence information quantifying the reliability of classification results for different intent classes; Optionally, the command generation system (20; 120) is operative to use the confidence information to assign the natural language input to at least one intent class and / or to output the confidence information.
11. said command generation system (20; 120) is operative to generate a trust tree (190; 200) for determining said trust information; Optionally, each node of said trust tree (190; 200) is associated with one of said plurality of simple intentions or one of said plurality of compound intentions; and / or the trust tree (190; 200) includes at least one node associated with one of the plurality of compound intentions and at least two nodes each associated with a simple intention selected from the plurality of simple intentions; a node of the trust tree (190; 200) associated with one of the plurality of compound intentions has a child node associated with a compound intention or a simple intention from which one of the plurality of compound intentions is formed, Further optionally, determining the confidence information quantifying the reliability of the classification results of the various intent classes comprises identifying paths through the trust tree (190; 200) from among all possible paths through the trust tree (190; 200) based on confidence values assigned to nodes and / or links of the trust tree (190; 200).
12. the command generation system (20; 120) is operative to identify one or more attributes of the at least one intent class from the natural language input, the at least one command depending on the identified one or more attributes; Optionally, the identified one or more attributes comprise one or more of: a source of a flow, a goal of a flow, an action to be performed, a quality of service, an identifier of a virtual network function.
13. The command generation system (20; 120) operative to establish an intent transaction in response to receiving the natural language input if there is no active intent transaction of the user for which the natural language input is received, wherein at least an identifier of the determined intent expressed by the natural language input is included in the intent transaction, and optionally, an execution time of the determined intent is included in the intent transaction; if a termination criterion is not met, performing intent resolution using the intent transaction, adding further user intents expressed by further natural language inputs of the same user to the intent transaction, and adding further identifiers for the further intents of the user expressed by the further natural language inputs to the intent transaction, and optionally adding an execution time of the further intents of the user to the intent transaction; If a termination criterion is met, terminate adding further user intents to the intent transaction; Optionally, the termination criteria include any one of a time threshold criteria, receipt of a command to terminate the intent transaction, receipt of a command to load a previous intent transaction, or any combination thereof; and / or Optionally, the command generation system (20; 120) is operative to simultaneously maintain and update a first intention transaction for a first user and a second intention transaction for a second user different from the first user.
14. the command generation system (20; 120) executes an intent supervisor that operates to continuously monitor the utility system, the industrial system, or the communication network and ensure automatic adaptation of the command generation system (20; 120) to changes in the utility system, the industrial system, or the communication network; Optionally, ensuring the automatic adaptation of the command generation system (20; 120) to the changes in the utility system, the industrial system or the communication network comprises: automatically generating and issuing at least one additional command in response to detecting a change in topology and / or entity state to ensure that the utility system, the industrial system, or the communications network continues to operate in accordance with the user's intent expressed by the natural language input; and verifying that the determined intent expressed by the natural language input is consistent with previously received user intent and / or the state of the utility system, the industrial system, or the communications network; and verifying that execution of the at least one command causes the utility system, the industrial system, or the communication network to reach a target state.
15. said first interface (21; 121) is operative to receive said natural language input as a text input, optionally said first interface (21; 121) being a web-based interface; and / or the first interface (21; 121) is operative to receive the natural language input as a voice input, and optionally the command generation system (20; 120) includes a speech-to-text module for converting the voice input into a text input before performing the stateful intent resolution process; and / or The command generation system (20; 120) of any one of claims 1 to 14, wherein the first interface (21; 121) is operative to receive the natural language input as freehand user input via a graphical user interface.
16. a utility system, an industrial system or a communication network having an actor (11; 111), optionally said actor (11; 111) being a management or control system, and / or optionally said utility system, said industrial system or said communication network comprising at least one of an electric power system and an electric power system communication network, A system comprising a command generation system (20; 120) according to any one of claims 1 to 15, operative to issue said at least one command to said actor (11; 111).
17. A method for a computer to issue commands to a utility system, an industrial system, or a communications network using an intent-based network (IBN), the method, when executed by a processor, causing the computer to: receiving a natural language input specifying a task; performing a stateful intent resolution process to determine a user's intent as expressed by the natural language input; generating at least one command based on the determined intention; issuing said at least one command to an actor (11; 111) of said utility system, said industrial system or said communication network for the execution of said task; The method includes causing the computer to execute: Operate to maintain one or more intent transactions, a particular intent transaction recording a list of intents submitted by a user, commands executed, and changes affected by the controlled system in a particular session; if the termination criteria are not met, performing the stateful intent resolution process using intent transactions that provide information about previously identified intents within the same session; The method includes:
Citation Information
Patent Citations
Network equipment controller
JP2001306199A
Interactive maintenance operation system and method
JP2018026708A
Voice control
JP2020518992A
Communication system
US20160163311A1
Automatic transaction retry after session failure
US8898109B2