The present disclosure relates generally to system modelling and more specifically to systems for generating and extending digital twins representing real world counterparts.
Presently, entities across many different industries are seeking to incorporate the use digital twins to test, streamline, or otherwise evaluate various aspects of their operations. One such industry is the automotive industry, where use of digital twins has been explored as a means to analyze and evaluate performance of a vehicle. To illustrate, a digital twin of a vehicle may be used as a means to safely evaluate performance of autonomous vehicles in mixed driver environments (i.e., environments where autonomous vehicles are operating in the vicinity of human drivers). As can be appreciated from the non-limiting example(s) above, the ability to analyze performance or other factors of a system or process using a digital twin, rather than its real world counterpart (e.g., the vehicle represented by the digital twin), can provide significant advantages. Although the use of digital twins has proved useful across many different industries, much of the current interest is focused on the benefits that may be realized by using digital twins and other challenges that have gone unaddressed.
One particular challenge that remains with respect to the use of digital twins is the creation of the digital twins themselves. For example, tools currently exist to aid in the creation or use of digital twins, but most existing tools are limited in the sense that they may be suitable for specific use case (e.g., creating a digital twin of a physical space, such as a building) but not suitable for other use cases (e.g., creating a digital twin of a process). Additionally, an entity may offer a digital twin platform specific to systems, products, or services of the entity, but such digital twin platforms may not be capable of being utilized for other systems, products, or service (i.e., the digital twin platform is only compatible with the entity's system(s), products, services, etc.). Furthermore, such entity-specific digital twins are not capable of being modified or customized by users, thereby limiting the information that may be obtained from the digital twin to those use cases approved or created by the entity, rather than the ultimate end users of the digital twin platform.
As a result, users of digital twins may seek to utilize multiple tools to develop digital twins covering different portions of a use case of interest. In such instances additional challenges may occur, such as digital twins created using different tools being incompatible with each other, thereby limiting the types of analysis and insights that may be obtained using the digital twins. Additionally, some digital twin creation tools are not well-suited with respect to addressing changes to the real world counterpart and may require re-designing and rebuilding the digital twin each time a changes to the real world counterpart occur. This can be particularly problematic for use cases involving industries where changes frequently occur and new business requirements are constantly changing, such the manufacturing industry. An additional challenge that occurs when creating digital twins is that existing platforms or tools for creating digital twins do not support customization of the types of information that can be used with the digital twin, thereby limiting the ability to create a digital twin that utilizes information that allows meaningful evaluation of a use case of interest. For example, it can be difficult to use statically designed digital twin creation tools (i.e., digital twin tools designed for a specific use case or real world counterpart) with certain types of information, such as time series information or a new use case. This is because static digital twin design tools and platforms are designed to create digital twins for a specific use case or real world counterpart with data defined apriori and such tools do not enable customization of the digital twin to reflect changes to the use case or real world counterpart for which the tools or platforms were designed. Another challenge is scaling of digital twins. For example, a digital twin may describe a set of data that may be used for evaluation purposes, but the dataset may be limited in size or limited in the data structure complexity and may not support the ability to incorporate new more complex types of information, such as time-series data or hierarchical data. Thus, while digital twins have shown promise as a tool for evaluating real world designs, the above-described drawbacks have limited the benefits that can be realized by using digital twins.
Aspects of the present disclosure provide systems, methods, and computer-readable storage media that support ontology-driven modeling processes and tools to generate digital twins with extended capabilities. The disclosed processes for generating digital twins may start by obtaining an ontology representing a real world system, machine, process, workflow, organization, application, and the like. The ontology may be used to construct a digital twin, which may initially be represented as a knowledge graph having nodes connected by edges, where the edges represent semantic relationships between the nodes.
While the semantic relationships obtained by instantiating the ontology as a knowledge graph may enable logical inferences to be derived from the digital twin, embodiments of the present disclosure provide the ability to apply extensions to the digital twin that enable new types of insights and information to be obtained from the digital twin. For example, aspects of the present disclosure provide for extending digital twins through embedding of data and models in the digital twin. Moreover, the extension tools provided by embodiments enable incorporation of data types that are difficult to incorporate into digital twins using existing digital twin platforms and tools, such as time series data, hierarchical data, or other types of data. To facilitate incorporation of time series data, the disclosed systems and methods are provided for designing and customizing data structures that may be utilized to organize time series data into collections of observations, which may be added to the digital twin as data nodes. The extension of the digital twins according to embodiments may also include converting the knowledge graph to a probabilistic graph model, thereby providing a digital twin that can be used to extract new types of information from the digital twin. For example, while existing digital twins may enable certain types of information to be obtained from a digital twin, such as logical inferences, digital twins extended in accordance with the present disclosure may provide probabilistic querying capabilities that enable probability distributions to be obtained and used to obtain information that is more complex than mere logical inferences, such as answering “What if?” questions (e.g., what is the probability of X, given Y and Z).
In addition to providing a way to incorporate new data types and supporting probabilistic querying, aspects of the present disclosure may also enable extension of digital twins to support optimization under uncertainty capabilities. For example, extensions may be applied to a digital twin to convert one or more nodes to decision nodes, target nodes, and utility nodes, which are custom node types that may be used to solve optimization-type problems using the digital twin. For example, a decision node may represent a parameter that may be used to target outcomes for optimization, a target node may correspond to the target outcome for the optimization problem, and utility nodes may represent derived data obtained from the data embedded in the digital twin (e.g., using the above-mentioned data embedding extensions) that may be used during the optimization. Using such an extension enables a digital twin to be queried in a manner that optimization problems associated with the real world counterpart may be evaluated and solved (e.g., how long should a robot charge for to ensure optimum throughput of tasks performed by the robot). Moreover, such optimizations may be performed in a manner that accounts for uncertainty (e.g., account for unknown circumstances associated with the optimization problem) and that returns probability distribution data associated with the optimizations output in response to a query of the digital twin.
The foregoing has outlined rather broadly the features and technical advantages of the present disclosure in order that the detailed description that follows may be better understood. Additional features and advantages will be described hereinafter which form the subject of the claims of the disclosure. It should be appreciated by those skilled in the art that the conception and specific aspects disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the scope of the disclosure as set forth in the appended claims. The novel features which are disclosed herein, both as to organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.
For a more complete understanding of the present disclosure, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
It should be understood that the drawings are not necessarily to scale and that the disclosed aspects are sometimes illustrated diagrammatically and in partial views. In certain instances, details which are not necessary for an understanding of the disclosed methods and apparatuses or which render other details difficult to perceive may have been omitted. It should be understood, of course, that this disclosure is not limited to the particular aspects illustrated herein.
Aspects of the present disclosure provide systems, methods, and computer-readable storage media that support ontology driven processes to generate digital twins having extended capabilities. To generate the digital twin, an ontology may be obtained and modified to define additional types of nodes, such as events and metrics, for incorporation into the digital twin. The ontology, once modified, may be instantiated as a knowledge graph having the additional types of nodes embedded therein. The embedded nodes may be used to convert the knowledge graph to a probabilistic graph model that may be queried to extract information from the digital twin in a probabilistic manner. Additionally, multiple ontologies may be utilized to create a digital twin-of-digital twins, which enables more complex digital twins to be generated (e.g., digital twins of entire ecosystems), and enables new insights and understanding of the various components and interactions between the components of the ecosystem (e.g., building an ecosystem of a product lifecycle from raw materials to manufacturing and delivery of the product to a user and all processes in between).
Referring to
It is noted that functionalities described with reference to the computing device 110 are provided for purposes of illustration, rather than by way of limitation and that the exemplary functionalities described herein may be provided via other types of computing resource deployments. For example, in some implementations, computing resources and functionality described in connection with the computing device 110 may be provided in a distributed system using multiple servers or other computing devices, or in a cloud-based system using computing resources and functionality provided by a cloud-based environment that is accessible over a network, such as the one of the one or more networks 140. To illustrate, one or more operations described herein with reference to the computing device 110 may be performed by one or more servers or a cloud-based system 142 that communicates with one or more client or user devices, such as the computing device 130.
The one or more processors 112 may include one or more microcontrollers, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), central processing units (CPUs) and/or graphics processing units (GPUs) having one or more processing cores, or other circuitry and logic configured to facilitate the operations of the computing device 110 in accordance with aspects of the present disclosure. The memory 114 may include random access memory (RAM) devices, read only memory (ROM) devices, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), one or more hard disk drives (HDDs), one or more solid state drives (SSDs), flash memory devices, network accessible storage (NAS) devices, or other memory devices configured to store data in a persistent or non-persistent state. Software configured to facilitate operations and functionality of the computing device 110 may be stored in the memory 114 as instructions 116 that, when executed by the one or more processors 112, cause the one or more processors 112 to perform the operations described herein with respect to the computing device 110, as described in more detail below. Additionally, the memory 114 may be configured to store data and information in one or more databases 118. Illustrative aspects of the types of information that may be stored in the one or more databases 118 are described in more detail below.
The data ingestion engine 120 provides functionality for collecting data to support the functionality provided by the computing device 110. In particular, the data ingestion engine 120 may provide functionality for capturing data that may be used to extend the capabilities of a digital twin created using the computing device 110. For example, the computing device 110 may be configured to create digital twins in an ontology-driven manner and then extend the capabilities of the digital twin by modifying the ontology based on data captured by the data ingestion engine, as described in more detail below. As a non-limiting example of the types of data that may be used to extend the capability of a digital twin, the data ingestion engine 120 may support the capture and incorporation of time-series data into a digital twin.
The knowledge engine 122 provides functionality for generating a digital twin based on an ontology provided to the computing device and data. For example, the computing device 130 may provide an ontology 102 to the computing device 110 and the ontology may include information descriptive of a real world system, process, device, and the like. The data may correspond to information obtained from the real world system, process, device, etc., such as operational data, configuration data, output data, performance data, and the like. As described in more detail below, the knowledge engine 122 may generate a digital twin based on the ontology 102. For example, the knowledge engine 122 may provide functionality for creating a digital twin corresponding to the real world counterpart associated with the ontology 102. As described in more detail below, the digital twin may be created by instantiating the ontology 102 as a knowledge graph.
The extension engine 124 provides functionality extending the knowledge graph-based digital twin. For example, the extension engine 124 may provide functionality for enabling incorporation of new types of data into a digital twin, such as time series data. As will be described in more detail below, enabling digital twins to be extended to support new types of data may enable the digital twins to be used in new ways and to provide new insights with respect to the real world counterparts of the digital twins. The extension engine 124 may provide functionality enabling modification of a digital twin to provide capabilities for optimization of decision making under uncertainty and to provide probabilistic reasoning capabilities.
Furthermore, the functionality provided by the extension engine 124 may enable digital twins to be created in a system-of-systems-type manner, which may enable rapid development of new types of complex digital twins that are currently not able to be created using existing tools due to the limitations described above. For example, a system-of-systems-type digital twin machinery present in an assembly plant or factory may be modelled. Additionally, the assembly plant or factory may also be represented by a digital twin and processes or work flows used by the machinery and assembly plant or factory to produce products may be represented as yet another digital twin. Additional digital twins may be created to represent logistics operations and equipment used to transport the products produced at the assembly plant or factory to consumer-facing endpoints (e.g., stores, etc.) or intermediate destinations (e.g., fulfillment centers, warehouses, etc.), and then to consumers. In this manner, the functionality provided by the computing device 110 for creating digital twins enables complex digital twins to be created in a manner for entire ecosystems, rather than being limited to use case specific design platforms and tools. Exemplary aspects of the functionality provided by the extension engine 124 and other functionality of the computing device 110 are described in more detail below.
The one or more communication interfaces 124 may be configured to communicatively couple the computing device 110 to the one or more networks 140 via wired or wireless communication links established according to one or more communication protocols or standards (e.g., an Ethernet protocol, a transmission control protocol/internet protocol (TCP/IP), an Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol, an IEEE 802.16 protocol, a 3rd Generation (3G) communication standard, a 4th Generation (4G)/long term evolution (LTE) communication standard, a 5th Generation (5G) communication standard, and the like). In some implementations, the computing device 110 includes one or more input/output (I/O) devices (not shown in
In an aspect, the computing device 110 may provide one or more graphical user interfaces (GUIs) 128. The GUI(s) 128 may be presented to a user (e.g., a user of the computing device(s) 130) and provide functionality for creating digital twins in accordance with the concepts described herein. For example, the GUI(s) 128 may provide interactive elements that enable the user to upload an ontology (e.g., the ontology 102) as part of a digital twin creation process. The GUI(s) 128 may additionally provide interactive elements and functionality for leveraging the capabilities and functionality of the data ingestion engine 120, the knowledge engine 122, and the extension engine 124 during the digital twin creation process to extend the digital twin in accordance with the concepts described herein. In an aspect, the GUI(s) 128 may be provided as part of an application, such as an application stored in the memory 114 and executed by the one or more processors 112 (or similar resources of the computing device 130). In an additional or alternative aspect, the GUI(s) 128 may be provided as part of a browser-based application and the user may access the GUI(s) 128 via a web browser application running on the computing device 130. In yet another additional or alternative aspect, the GUI(s) 128 may be provided by a cloud-based system, such as cloud-based system 142, which may be configured to provide the functionality described herein with reference to the computing device 110 from a cloud-based deployment of computing resources.
As briefly described above, the computing device 110 may be communicatively coupled to one or more computing devices 130 via the one or more networks 140. The computing device 130 may include one or more processors 132, a memory 134, one or more I/O devices (not shown in
To generate and extend a digital twin using the system 100, the computing device 110 may receive an ontology 102 from the computing device 130. The ontology 102 may provide an abstracted semantic representation of a real world counterpart to the digital twin being designed, where the real world counterpart may be an entity, machine, process, system, or other real world design. The ontology 102 may define the real world counterpart using a representation that defines concepts, properties, and relationships for the real world counterpart using an accepted body of knowledge (e.g., industry accepted terminology and semantics) and may specify object types and their semantic relation to other object types via graph format. Exemplary formats in which the ontology 102 may be received by the computing device 110 include “.owl“and”.ttl,” files.
As a non-limiting example, an ontology for a manufacturer may indicate the manufacturer has production facilities in one or more geographic locations and include, for each production facility, information representing: a floor plan for the production facility, manufacturing infrastructure present at the production facility (e.g., assembly robots, computing infrastructure, equipment, tools, and the like), locations of the manufacturing infrastructure within the production facility, other types of information, or combinations thereof. It is noted that while the exemplary characteristics of the above-described ontology have been described with reference to a manufacturer domain, the ontologies obtained by the computing device 110 may include ontologies representative of other types of domains, such as ontologies associated with processes (e.g., manufacturing processes, computing processes, biological processes, chemical processes, etc.), ontologies associated with machinery or equipment (e.g., a vehicle, a computing device or component thereof, circuitry, robots, etc.), ontologies associated with biological systems, and the like. Accordingly, it should be understood that the operations disclosed herein with reference to the computing device 110 may be applied to any industry, process, machine, etc. capable of representation via an ontology.
As described briefly above, the knowledge engine 122 provides functionality for generating digital twins. To illustrate, the ontology 102 may be provided to the knowledge engine 122 and used to create a digital twin based on the ontology 102. The digital twin may initially be created as a knowledge graph based on the object types, semantic relationships, and other information specified in the ontology 102. As an illustrative example and referring to
In addition to nodes representing assets, other types of nodes may be provided in a knowledge graph, such as nodes representing attributes (e.g., an age of a machine or robot represented in the knowledge graph), processes steps (e.g., tasks performed by a machine or robot represented in the knowledge graph), entities (e.g., a manufacturer of a machine or robot represented in the knowledge graph), or other types of nodes. As described above, these nodes may be connected to other nodes via edges. For example, the knowledge graph 200 could be generated to include a task node (not shown in
Referring back to
To incorporate additional data into the knowledge graph-based digital twins, the extension engine 124 may provide functionality for defining new node types into the ontology. As an illustrative and non-limiting example, time series data is one type of data that has been traditionally difficult to incorporate into digital twin applications due to scalability. In particular, time series data may include large amounts of data and such vast quantities of information may significantly increase the size of the knowledge graph, creating scaling difficulties and increasing the complexity of extracting meaningful information from the time series data using a digital twin. To address the scaling and querying challenges, the extension engine 124 may modify the ontology (or the knowledge graph directly) to include nodes supporting new types of data. To extend the ontology or knowledge graph to support new types of data the extension engine 124 may utilize one or more classes to introduce new nodes and edges within the knowledge graph and/or ontology. Additional details regarding the use of classes to extend the types of nodes and edges that may be incorporated into an instantiation of an ontology as a knowledge graph in accordance with the present disclosure are described in more detail below with reference to
By enabling extension of digital twins (e.g., knowledge graphs) to support new types of data, the extension engine 124 enables digital twins to be customized or tailored to support many different use cases and types of analysis, which is a major advantage over existing digital twin platforms and tools that are static (i.e., statically designed to support specific use cases and data). In addition to enabling customization of the data and components (e.g., nodes and edges) of the digital twin, the extension engine 124 may also support additional extensions of digital twins. For example, due to the ability to customize the types of data that may be supported by the digital twin, the extension engine 124 may enable the digital twin to be extended to provide probabilistic reasoning and decision making under uncertainty capabilities. As part of the extension process, the extension engine 124 may also provide functionality for converting components of the digital twin from one type of component to another type of component. For example, a data node may be changed to a variable node and edges specifying semantic relationships derived from the ontology 102 may be converted to edges representing statistical dependencies and/or information edges (e.g., edges that identify information upon which a variable node depends). The functionality provided by the extension engine 124, which has been briefly described above, enables a digital twin to be customized to incorporate new types of data, which enables the digital twin to be used for new types of analysis and evaluation designed in an ad hoc manner and enabling digital twins to be rapidly created in an ontology driven manner and then customized or tuned in a manner that supports new forms of analysis and understanding to be obtained from the digital twin(s). These capabilities represent a significant improvement to systems (e.g., platforms and tools) for generating digital twins, which presently are designed to support specific real world counterparts and are generated in a static manner that does not support other instances of the real world counterpart (e.g., a digital twin designed for an engine manufactured by a first manufacturer using prior platforms or tools cannot be used to evaluate an engine manufactured by a second manufacturer despite both real world counterparts being engines) and do not support tuning of the digital twin to provide new understanding or analysis (e.g., existing digital twin platforms are designed with static capabilities for a particular analysis use case or use cases).
As a non-limiting example of the above-described functionality and with reference to
Referring back to
As can be appreciated from the foregoing, information pertaining to a real world counterpart of a digital twin can include many different data sources 150 and types of data. Rather than attempting to design a digital twin generation platform that is specifically configured for specific data types and data sources, the present disclosure provides a data ingestion engine 120 that provides functionality for obtaining or receiving information from a variety of data sources and storing the data in the one or more database 118. Once stored, the extension engine 124 may be used to extend the knowledge graph (e.g., the knowledge graph 220 of
It is to be understood that the exemplary types of information described above in connection with the information represented by the knowledge graph 220 of
As another example, the computing device 110 may also enable digital twins to be created in a system of systems-type manner whereby multiple digital twins are created and combined into a digital twin of digital twins, such as a digital twin of a process for producing the materials, a materials acquisition process, a manufacturing process, shipping or logistics process and/or system, and other aspects of the life cycle from producing materials, to manufacturing products, to delivering the products to end users or consumers. Such system of systems-type digital twins may be used to represent complex workflows, processes, equipment, and the like, thereby enabling the creation of digital twins for entire ecosystems, which is a capability that is currently not available using existing digital twin platforms and tools. During creation of such complex digital twins as those described above, many different types of data may be obtained for incorporation into knowledge graphs generated by the knowledge engine 122.
In some aspects, the functionality of the data ingestion engine 120 may be provided via a GUI that enables a user to specify the data sources 150 of interest (i.e., which data sources of the data sources 150 from which to obtain data for a digital twin), the types of data to be obtained, and a frequency at which the data should be obtained. For example, the knowledge graph 220 of
To obtain the data, the user may utilize the interactive elements of the GUI associated with the functionality of the data ingestion engine 120 to specify one or more data sources of the data sources 150 from which the data ingestion engine 120 should obtain the data. In some aspects, the data may be initially provided as bulk data (e.g., historic data associated with one or more robots) and may be uploaded to the computing device 110 via the data ingestion engine 120. Additionally, the data ingestion engine 120 may also be configured to periodically retrieve additional data from the data sources 150. For example, the GUI may enable the user to specify a frequency with which the data ingestion engine 120 updates the data associated with the digital twin. Once specified, the data ingestion engine 120 may periodically access the configured data sources to retrieve updated data for incorporation into the knowledge graph 220. Once the data is incorporated into the knowledge graph, the digital twin may be used to analyze and evaluate one or more robots, their behaviors, and the like depending on the data incorporated into the knowledge graph. In this manner, a digital twin created using the computing device 110 can be used to model and analyze multiple different real world counterparts sharing similar characteristics.
While incorporation of some of the data may be straightforward, other types of data may be more complex, such as time-series data. Incorporation of time series data into a digital twin is more complex as such data significantly increases the size of the knowledge graph and can degrade performance of the digital twin. To facilitate integration of time series data, the functionality of the extension engine 124 may be utilized. For example, the extension engine 124 provides functionality for defining extensions of the knowledge graph, such as enabling new types of data (e.g., time series data) to be incorporated into the knowledge graph. For time series data, the functionality of the extension engine 124 may enable a set of classes to be defined, where the classes control a structure (a series of nodes and corresponding edges) for incorporating time series data into the knowledge graph.
To illustrate and referring to
Each of the observations by the sensor 302 may be datapoint and a time series of data may be made up of multiple datapoints. For example, suppose the feature of interest is the battery charge percentage for the robot 310. In the first observation 312 the feature of interest (e.g., the battery charge percentage) may be 25%, in the second observation 312 the feature of interest (e.g., the battery charge percentage) may be 18%, and in other observations the feature of interest may have other values. In the context of the present application, the exemplary time series data described above may be considered a metric-stated another way, one form of time series data that may be used to extend a digital twin is metrics, which are timestamped observations (e.g., an observation with metadata about the time frame in which the observation occurred).
Another form of time series data that may be used to extend digital twins via the functionality provided by the extension engine 124 is events, which may be predefined observation instances. For example, an event that may be used to extend the knowledge graph 220 of
Additionally, the extension engine 124 may provide functionality for creating collections based on the observations (e.g., metric observations and/or events observations), where the collections are groupings of observations. For example, suppose that the sensors 152 include a first sensor and a second sensor. Each of the sensors may capture metrics (or observations) associated with the robot 310 and information associated with the captured metrics (or events) may be obtained by the data ingestion engine 120. The extension of the digital twin to incorporate such time series data may utilize one or more collections to efficiently incorporate the metrics (or events) into the digital twin. The collections may be organized based on a design specification configured by a user. For example, the collections may include a first collection corresponding to the metrics (or events) measured or detected by the first sensor and a second collection corresponding to the metrics (or events) measured or detected by the second sensor. As another example, the collections may be organized based on periods of time such that a first collection incorporates the metrics (or events) measured or detected by the first and second sensors for a period of time (e.g., a day, 2 days, 3 days, 1 week, etc.). Organizing the data obtained by the data ingestion engine 120 from the sensors 152 into collections reduces the number of nodes added to the knowledge graph (e.g., the knowledge graph 220 of
To facilitate the use of collections of time series data with the knowledge graph, the functionality of the extension engine 124 may be used to define a set of classes that serve to provide a data structure for the observations to be recorded to the knowledge graph and a mechanism to incorporate relationships between the time series data and the digital twin. To illustrate and referring to
In the exemplary pseudocode above, the state class 320 associates an instance of the state class 320 (or one of the classes 322, 324 derived from the state class 320) with a portion of the real world counterpart represented by the digital twin. Additionally, the state class includes features to restrict an instance of the state class 320 (or a derived class) to a particular instance of the states collection class 330. Similarly, the metric class 322 specifies a time interval over which a metric is measured or obtained, a number of points of interest to be measured during the time interval, assign a type to the metric(s) being measured, and specify a data type to the data associated with the metric. Similarly, the event class 324 specifies a number of times an instance of an event occurs (e.g., 1 time, 2 times, etc.) and an event type (e.g., criteria for detecting the event). The states collection class 330 specifies whether a collection includes metrics or events (e.g., associates a collection of observations with a series of metrics over time or a series of events over time). Using the hierarchy of classes described above, the extension engine 124 may enable time series data to be incorporated into a digital twin as a series of collections, where the collections may be added as nodes to the knowledge graph representing the digital twin being designed.
By incorporating collections of time series data into the knowledge graph, the extension engine 124 enables new types of information to be derived from the digital twin, such as information quantifying relationships between different pairs of nodes. For example and referring to
It is noted that the exemplary classes and subclasses described above with respect to incorporating time series data have been provided for purposes of illustration, rather than by way of limitation and that classes and subclasses may also be defined to support incorporation or utilization of other types of data with digital twins generated in accordance with the present disclosure. For example, the extension engine 124 may be used to define classes to support incorporation of hierarchical data or other types of data into a digital twin. Thus, it should be understood that the use of classes and subclasses, as well as collections, may enable digital twins to be created and extended to support various types of complex data and/or large sets of data in a manner that does not degrade performance of the digital twin and its supported analytics.
Incorporation of new types of data into the knowledge graph by the data ingestion engine 120 and the extension engine 124 may also enable further extensions to be performed. For example, a knowledge graph generated in accordance with the present disclosure may be extended by the extension engine 124 by converting the knowledge graph into a probabilistic graph model that includes probability distribution information for the real world counterpart represented by a digital twin. To extend the knowledge graph 220′ in this manner, the extension engine 124 may treat each node of the knowledge graph as a random variable (e.g., variables {A, R, M, T, S, D, . . . } in
To facilitate the conversion of the knowledge graph-based digital twin to a probabilistic graph model-based digital twin, the extension engine 124 may provide a GUI that enables a user (e.g., a user of the computing device 130 of
As can be appreciated from the foregoing, conversion of a knowledge graph with embedded data into a probabilistic graph model may utilize many different types of data and different types of distributions. By providing the ability to create classes and subclasses, such as the classes 320, 330 and subclasses 322, 324 derived from the class 320, the extension engine 124 may ensure that data incorporated into a knowledge graph to extend the knowledge graph's capabilities is configured appropriately for use with different types of distribution analysis. Thus, the classes/subclasses used to incorporate data into the knowledge graph may be defined in a manner that streamlines and supports conversion of the knowledge graph to a probabilistic graph model by ensuring the data is incorporated in an appropriate format for the probability distribution type associated with each random variable.
An example of a probabilistic graph model generated in accordance with the present disclosure is shown in
P(A,R,M,T,D,S)=P(A)P(R)P(M|R)P(T|R)P(D|T)P(S|T) (Equation 1)
where P(A) is the probability distribution for the variable A, P(R) is the probability distribution for the variable R, P(M|R) is the probability distribution for the variable M|R representing the statistical dependency between manufacturers (M) and robots (R), P(T|R) representing the statistical dependency between tasks (T) and robots (R), P(D|T) representing the statistical dependency between duration (D) and tasks (T), and P(S|T) representing the statistical dependency between tasks (T) and status (S). Using the Bayesian learning processes mentioned above, approximations of any unknown parameters may be learned through simulation using a generative program.
As a non-limiting example, the generative program may be generated via functionality of the extension engine 124 using a GUI and may include a series of deterministic and probabilistic statements, such as:
Once the unknown parameters are obtained, the probability distributions P(A), P(R), P(M|R), P(T|R), P(D|T), P(S|T) having the approximated parameters may be embedded within the probabilistic graph model to produce the digital twin 220″. As shown in
Once the probability distributions having the guessed or estimated parameters are added, the digital twin 220″ may be queried to obtain information that would otherwise not be available using a knowledge graph, such as the knowledge graph 220 of
The probability distributions obtained by extending knowledge graphs to probabilistic graph models enable creation of digital twins that provide new capabilities and insights that facilitate new types of analysis and understanding to be obtained with respect to the real world counterparts represented by the digital twins, such as probabilistic reasoning or analysis. For example, a query P(M|S=success) may be defined and used to analyze the question: What is the best performing manufacturer? Executing the query against the probabilistic graph model representing the digital twin 220″ using the joint distribution P(A, R, M, T, S, D) returns a distribution that indicates which manufacturer has a higher probability of successfully completing a task as compared to other manufacturers. As another example, a query P(D|R dual alarm, T=softpick) may be used to analyze the question: What is the expected duration of a soft object pick performed by a dual arm robot? Executing the query against the probabilistic graph model represented by the representing the digital twin 220″ using the joint distribution P(A, R, M, T, S, D) returns a distribution that indicates the expected duration (e.g., in units of time) probabilities for performing the task and may enable insights into what the range of probabilities is for the duration (e.g., what duration has the highest probability, what duration has the lowest probability, and the probabilities of intermediate durations). It is noted that this query could be modified to evaluate the expected duration of performing other types of tasks using a dual-arm robot by changing the task variable T and/or may be modified to evaluate the expected duration of performing the soft object pick using another type of robot (i.e., other than a dual-arm robot) by changing the variable D|R. As yet another example, a query P(S|R high-speed, T=round-pick) may be used to analyze the question: What is the likelihood of task failure when using a high-speed robot to pick round objects? Executing the query against the probabilistic graph model representing the digital twin 220″ using the joint distribution P(A, R, M, T, S, D) returns a distribution that indicates whether the likelihood of success is greater than the likelihood of failure. It is noted that the exemplary queries described above have been provided for purposes of illustrating the new types of insights that may be obtained from digital twins generated in accordance with the concepts disclosed herein. However, it should be understood that other types of queries and insights may be obtained by applying similar querying techniques to digital twins representing other types of real world counterparts in accordance with aspects of the present disclosure.
The generation of probabilistic graph model-based digital twins enables further extensions to be achieved to provide additional capabilities and insights. For example and referring to
As described above, digital twins represented by probabilistic graph models may be queried to extract information about the real world counterpart corresponding to the digital twin that may not be readily obtained from a knowledge graph alone or from the data used to extend the knowledge graph. While the examples described above are primarily related to queries designed to extract statistical inferences or other types of information about the domain represented by the probabilistic graph model, an additional capability provided by the probabilistic graph model-based digital twins generated in accordance with the present disclosure is the ability to use the probabilistic graph models to solve optimization problems despite uncertainty, which is a type of analysis that digital twins designed using presently available digital twin platforms and tools cannot provide.
To illustrate within the context of the scenario represented by the digital twin corresponding to probabilistic graph model 400, a user may utilize the functionality of the extension engine 124 to extend the probabilistic graph model 400 to enable solving optimization problems, such as optimization of the question “How much should the robot charge the battery?” This question represents an optimization problem because there is a tradeoff between under-charging the battery and over-charging the battery. In particular, if the battery is under-charged the robot may run out of battery power and need to recharge during peak demand and if the battery is over-charged there is a risk demand will arrive during charging. Moreover, this problem also has uncertainty since the time when the demand may arrive is unknown, although the probabilistic graph model may be used to derive a distribution for the arrival of the demand.
To facilitate extension of the probabilistic graph model 400 to support solving optimization problems, functionality of the extension engine 124 may be utilized to identify variables for which optimization may be desirable and nodes corresponding to variables that may be optimized may be converted to a new node type. For example and referring to
Additionally, the extension engine 124 may also convert one or more edges of the probabilistic knowledge graph model to new node types for use in supporting the decision nodes. For example, the extension engine 124 may provide functionality for converting the edges 422, 432 shown in
In addition to defining one or more decision nodes, the functionality of the extension engine 124 may also be used to convert nodes to other types of nodes and/or add one or more new nodes to the probabilistic graph model 400 to support solving optimization problems. For example and referring to
Once the decision, utility, and target nodes have been created, the optimization problem may be defined. In the example of
Once the optimization problem is defined, the probabilistic graph model 400″ may be used to solve the optimization problem. As an example, and referring to
In
It is noted that the exemplary optimization problem described and illustrated with reference to
Referring back to
Once displayed in the viewing area 620, the user may utilize other interactive elements and controls provided by the GUI 600 to extend the knowledge graph and thereby expand the capabilities of the digital twin being designed. For example, the user may a set of extension tools 630 to extend the digital twin. In the example of
The data extension tools 632 may provide a set of tools that enable the user to incorporate data into the digital twin, such as time series data or other types of data. To illustrate, using the data extension tools the user may incorporate data nodes into the knowledge graph, such as data nodes 624′, 625′. As described above, the ability to add data nodes may enable collections of data points (e.g., metrics, events, etc.) to be incorporated into the knowledge graph, thereby extending the types of information, analysis, and understanding that may be obtained from the digital twin. In an aspect, the data nodes may be associated with a class or subclass, shown in
The class/subclass extension tools 634 may enable a user to define new classes and subclasses, which may enable further customization of the digital twin. For example, the data extension tools 632 may enable a user to add data associated with certain types of class/subclasses, but where a need to incorporate data for which no existing class/subclass is appropriate, the user may utilize the class/subclass extension tools 634 to create new classes accommodate new forms or types of data. Additionally, the ability to define new subclasses may enable new types of data to be added to the knowledge graph while leveraging existing classes and subclasses (e.g., because subclasses derive all features and functionality of their respective base classes).
The node extension tools 636 may enable the user to define new nodes within the digital twin or convert existing nodes to different node types. For example, the user may utilize the node extension tools 636 to add a utility node 628, convert an existing node to a decision node and/or a target node, or other types of node modifications. In an aspect, any node representing an optimizable parameter (e.g., battery charge level/time, duty cycle, etc.) may be configured as a decision node and associated with utility and target nodes using the node extension tools 636.
An additional extension tool is the merge extension tool 638, which may enable the user to merge two or more ontologies selected from the ontology selection area 610. For example, the ontology corresponding to interactive element 612 may be selected and merged with the ontology corresponding to interactive element 614 to create a digital twin of digital twins. The ability to merge digital twins may enable rapid development of complex digital twins that may be used to model real world counterparts in a robust manner. To illustrate, the exemplary digital twins shown in
As can be appreciated from the foregoing, the various functionalities provided by the system 100 enable digital twins to be created in an ontology-driven manner and extended in various ways to increase the knowledge of a real world counterpart (or counterparts) that may be derived or extracted from the digital twin. For example, the system 100 enables a user to create digital twins based on one or more selected ontologies and then configure extensions of the digital twin(s) that provide new forms of knowledge acquisition (e.g., querying, etc.) using digital twins. Moreover, the probabilistic reasoning under uncertainty extension provided by the present disclosure enable various forms of optimization problems to be evaluated using digital twins, which is a capability that was not readily available from existing digital twin platforms and tools. Furthermore, the ability to create digital twins of entire ecosystems (e.g., system-of-systems-based digital twins) enables new forms of learning and understanding how different features or systems within an ecosystem interact and impact each other, thereby providing new ways in which to study ecosystems and their various subsystems or components. Another advantage provided by the system 100 and the various features described above is the ability to dynamically change digital twins. For example, if a process, workflow, or other aspect of a real world counterpart changes, such changes may be updated in an existing digital twin generated in accordance with the present disclosure through modification of the ontology and/or extensions applied to the digital twin, rather than completely redesigning the digital twin, as may be required with existing digital twin platforms or tools.
It is noted that the system 100 (e.g., the data ingestion engine 120, the knowledge engine 122, and the extension engine 124 of the computing device 110 of
It should also be understood that the present disclosure provides a generalized platform that includes a suite of tools that facilitate rapid creation of digital twins for specific use cases and that may be readily reused or modified for additional use cases, thereby providing more flexibility for modelling real-world counterparts using digital twins and decoupling the digital twin platform and tools from the use cases to which the platform and tools could be applied (e.g., unlike traditional digital twin platforms and tools, the disclosed systems and techniques for producing digital twins are not restricted to particular real-world counterparts, use cases, or analysis). The functionality of the system 100 also provides the advantage of generating digital twins that utilize a single data representation (e.g., data and artificial intelligence (AI)) in which the data model (e.g., the knowledge graph) and the statistical (AI/ML) model of the data (e.g., the probabilistic graph model) are tightly coupled. As such, there is no need to move the data out of the platform to run analytics. Also, since the analytics model is tightly integrated with the data, the data may be expressed both deterministically and probabilistically, which speeds up computation while also reducing the computational resources required to run the analytics.
Referring to
At step 710, the method 700 includes receiving, by one or more processors, an ontology representing a real world counterpart. As explained above, the real world counterpart may be a machine (e.g., a robot, a vehicle, a watercraft, an aircraft, and the like), a workflow, a process, an entity or enterprise (e.g., a factory, a warehouse, a logistics company, an agriculture company, a mine, a refinery, an oil and gas production or refinery facility, a business, a software application, a network, Internet of Things (IoT), a communication system, and the like), or a combination thereof. In some aspects, multiple ontologies may be received, each corresponding to a different real world counterpart, thereby enabling complex digital twins to be created that involve ecosystems in which multiple real world counterparts that interact with each other.
At step 720, the method 700 includes retrieving, by the one or more processors, information corresponding to at least a portion of the real world counterpart represented by the ontology from one or more data sources. As described the information corresponding to at least the portion of the real world counterpart may include observations, such as metrics and events, and the one or more data sources may include the data sources 150 of
At step 730, the method 700 includes generating, by the one or more processors, a digital twin of the real world counterpart based on conversion of the ontology to a knowledge graph. As described above, a knowledge engine (e.g., the knowledge engine 122 of
At step 740, the method 700 includes extending, by the one or more processors, the digital twin based on modification of the ontology prior to generating the knowledge graph. In an aspect, extending the digital twin may include embedding collections of data in the digital twin. As described above, the collections of data derived from the retrieved information corresponding to at least the portion of the real world counterpart may include observations, such as events and metrics, and the collections of data may be embedded in the digital twin as data nodes associated with an edge of the knowledge graph or a node of the knowledge graph. In an aspect, one or more classes or subclasses may be selected or defined to control a configuration of the data nodes in which the information is embedded, as described above with reference to
In an aspect, the extension of the digital twin may be performed using a GUI, such as the GUI 600 of
At step 750, the method 700 includes presenting, at a display device, the digital twin via the GUI and at step 760, the method 700 includes extracting information from the digital twin via inputs provided to the graphical user interface. For example, the GUI may include interactive elements and a display area the digital twin may be presented, at step 750, in the display area (e.g., the display area 620 of
It is noted that while the method 700 of
As shown above, the method 700 provides a use-case agnostic platform supporting generation and extension of digital twins in an ontology-driven manner, thereby enabling the method 700 to be applied to any real world counterparts, as well as entire ecosystems. By exploiting knowledge graphs having integrated domain data, the method 700 enables generation of digital twins supporting probabilistic analysis and the ability to design queries to extract meaningful insights and understanding from the digital twin. Additionally, the probabilistic capabilities provided by digital twins generated using the method 700 enable analysis of the real world counterparts using conditional probability queries with uncertainty quantification and automated “optimal” decision making, providing new applications for digital twins and their use in understanding the real world counterparts. Furthermore, due to the tight coupling of the data embedded within the digital twin, analytics may be obtained from the digital twin itself, rather than requiring the data to be moved to another platform, as is required for some digital twins platforms and tools.
It is noted that other types of devices and functionality may be provided according to aspects of the present disclosure and discussion of specific devices and functionality herein have been provided for purposes of illustration, rather than by way of limitation. It is noted that the operations of the method 700 of
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Components, the functional blocks, and the modules described herein with respect to
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. Skilled artisans will also readily recognize that the order or combination of components, methods, or interactions that are described herein are merely examples and that the components, methods, or interactions of the various aspects of the present disclosure may be combined or performed in ways other than those illustrated and described herein.
The various illustrative logics, logical blocks, modules, circuits, and algorithm processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. The interchangeability of hardware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and processes described above. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.
The hardware and data processing apparatus used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose single- or multi-chip processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, or any conventional processor, controller, microcontroller, or state machine. In some implementations, a processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. In some implementations, particular processes and methods may be performed by circuitry that is specific to a given function.
In one or more aspects, the functions described may be implemented in hardware, digital electronic circuitry, computer software, firmware, including the structures disclosed in this specification and their structural equivalents thereof, or any combination thereof. Implementations of the subject matter described in this specification also may be implemented as one or more computer programs, that is one or more modules of computer program instructions, encoded on a computer storage media for execution by, or to control the operation of, data processing apparatus.
If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. The processes of a method or algorithm disclosed herein may be implemented in a processor-executable software module which may reside on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that may be enabled to transfer a computer program from one place to another. A storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media can include random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. Also, any connection may be properly termed a computer-readable medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, hard disk, solid state disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and instructions on a machine readable medium and computer-readable medium, which may be incorporated into a computer program product.
Various modifications to the implementations described in this disclosure may be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to some other implementations without departing from the spirit or scope of this disclosure. Thus, the claims are not intended to be limited to the implementations shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.
Additionally, a person having ordinary skill in the art will readily appreciate, the terms “upper” and “lower” are sometimes used for ease of describing the figures, and indicate relative positions corresponding to the orientation of the figure on a properly oriented page, and may not reflect the proper orientation of any device as implemented.
Certain features that are described in this specification in the context of separate implementations also may be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also may be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the drawings may schematically depict one more example processes in the form of a flow diagram. However, other operations that are not depicted may be incorporated in the example processes that are schematically illustrated. For example, one or more additional operations may be performed before, after, simultaneously, or between any of the illustrated operations. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products. Additionally, some other implementations are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results.
As used herein, including in the claims, various terminology is for the purpose of describing particular implementations only and is not intended to be limiting of implementations. For example, as used herein, an ordinal term (e.g., “first,” “second,” “third,” etc.) used to modify an element, such as a structure, a component, an operation, etc., does not by itself indicate any priority or order of the element with respect to another element, but rather merely distinguishes the element from another element having a same name (but for use of the ordinal term). The term “coupled” is defined as connected, although not necessarily directly, and not necessarily mechanically; two items that are “coupled” may be unitary with each other. the term “or,” when used in a list of two or more items, means that any one of the listed items may be employed by itself, or any combination of two or more of the listed items may be employed. For example, if a composition is described as containing components A, B, or C, the composition may contain A alone; B alone; C alone; A and B in combination; A and C in combination; B and C in combination; or A, B, and C in combination. Also, as used herein, including in the claims, “or” as used in a list of items prefaced by “at least one of” indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C” means A or B or C or AB or AC or BC or ABC (that is A and B and C) or any of these in any combination thereof. The term “substantially” is defined as largely but not necessarily wholly what is specified—and includes what is specified; e.g., substantially 90 degrees includes 90 degrees and substantially parallel includes parallel—as understood by a person of ordinary skill in the art. In any disclosed aspect, the term “substantially” may be substituted with “within [a percentage] of” what is specified, where the percentage includes 0.1, 1, 5, and 10 percent; and the term “approximately” may be substituted with “within 10 percent of” what is specified. The phrase “and/or” means and or.
Although the aspects of the present disclosure and their advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit of the disclosure as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular implementations of the process, machine, manufacture, composition of matter, means, methods and processes described in the specification. As one of ordinary skill in the art will readily appreciate from the present disclosure, processes, machines, manufacture, compositions of matter, means, methods, or operations, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding aspects described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or operations.