Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ADDITIONAL CAPABILITY IDENTIFICATION IN DESIGNED SYSTEM
Document Type and Number:
WIPO Patent Application WO/2019/099085
Kind Code:
A1
Abstract:
Systems, methods, and computer-readable media are disclosed for automated identification of an additional capability of a designed product, which is not included in an original requirement list. The method includes a step of identifying information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement, a step of extracting a plurality of capabilities from product-in-use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design and a step of identifying an additional capability among the plurality of capabilities, which does not satisfy the requirement. Each of the plurality of capabilities may have a causal relationship with at least one of the elements or an interchangeable element thereof.

Inventors:
MUSUVATHY SURAJ RAVI (US)
WILLIAMS REED (US)
GRUENEWALD THOMAS (US)
DALLORO LIVIO (US)
Application Number:
PCT/US2018/047646
Publication Date:
May 23, 2019
Filing Date:
August 23, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
SIEMENS CORP (US)
International Classes:
G06F17/50
Other References:
N. BECATTINI ET AL: "Mapping Causal Relationships and Conflicts among Design Parameters and System Requirements", COMPUTER-AIDED DESIGN AND APPLICATIONS, vol. 10, no. 4, 2013, pages 643 - 662, XP055519547, DOI: 10.3722/cadaps.2013.643-662
Attorney, Agent or Firm:
BRINK JR., John D. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A computer-implemented method, comprising:

receiving, using a computer device, a requirement for a target system to be designed;

identifying, using the computer device, information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement;

extracting, using the computer device, a plurality of capabilities from product-in use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design, each of the plurality of capabilities having a causal relationship with at least one of the elements or interchangeable elements with the elements;

identifying, using the computer device, an additional capability among the plurality of capabilities, which does not satisfy the requirement; and

displaying, using the computer device, information regarding the additional capability.

2. The computer-implemented method of claim 1, further comprising:

evaluating, using the computer device, a second design that includes the additional capability based at least in part on a digital simulation of the second design; and

determining, based at least in part on the evaluating, that the second design satisfies predetermined criteria.

3. The computer-implemented method of claim 1, further comprising:

determining that an additional element other than the elements included in the first design or a parameter change of the element included in the first design is required to implement the additional capability; and

displaying, using the computer device, information regarding the additional element or the parameter change.

4. The computer-implemented method of claim 1, wherein the extracting step, and the identifying steps are performed using ontology-based information extraction.

5. The computer-implemented method of claim 1, wherein the causal relationship between the capability and the at least one of the elements or the interchangeable element with the elements is defined using a probabilistic graph model where conditional dependencies between variables are specified.

6. The computer-implemented method of claim 1, wherein the engineering data or the previous or present design data include simulation results regarding at least one of the elements and parameters of the elements included in the first design.

7. The computer-implemented method of claim 1, wherein the engineering data, or the present or previous design data include information indicative of a capability change of a product resulting from a parameter change of an element in the product.

8. A system, comprising:

a display device;

an input device which receives a requirement for a target system to be designed; at least one memory storing computer-executable instructions; and

at least one processor configured to access the at least one memory and execute the computer-executable instructions to: identify information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement;

extract a plurality of capabilities from product-in-use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design, each of the plurality of capabilities having a causal relationship with at least one of the elements or interchangeable elements with the elements;

identify an additional capability among the plurality of capabilities, which does not satisfy the requirement; and

display information regarding the additional capability on the display device.

9. The system of claim 8, wherein the at least one processor is further configured to execute the computer-executable instructions to:

evaluate a second design that includes the additional capability based at least in part on a digital simulation of the second design; and

determine, based at least in part on the evaluating, that the second design satisfies predetermined criteria.

10. The system of claim 8, wherein the at least one processor is further configured to execute the computer-executable instructions to:

determing an additional element other than the elements included in the first design or a parameter change of the element included in the first design is required to implement the additional capability; and

display information regarding the additional element or the parameter change on the display device.

11. The system of claim 8, wherein the causal relationship between the capability and the at least one of the elements or the interchangeable element with the elements is defined using a probabilistic graph model where conditional dependencies between variables are specified.

12. The system of claim 8, wherein the engineering data or the previous or present design data include simulation results regarding at least one of the elements and parameters of the elements included in the first design.

13. The system of claim 8, wherein the engineering data, or the present or previous design data include information indicative of a capability change of a product resulting from a parameter change of an element in the product.

14. The system of claim 8, further including:

a network interface,

wherein the at least one processor is further configured to execute the computer- executable instructions to:

access an external network to gather the product-in-use data or the engineering data through the network interface.

15. A computer program product comprising a storage medium readable by a processing circuit, the storage medium storing instructions executable by the processing circuit to cause a method to be performed, the method comprising:

receiving, using a computer device, a requirement for a target system to be designed;

identifying, using the computer device, information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement;

extracting, using the computer device, a plurality of capabilities from product-in use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design, each of the plurality of capabilities having a causal relationship with at least one of the elements or interchangeable elements with the elements;

identifying, using the computer device, an additional capability among the plurality of capabilities, which does not satisfy the requirement; and

displaying, using the computer device, information regarding the additional capability.

16. The computer program product of claim 15, further comprising:

evaluating, using the computer device, a second design that includes the additional capability based at least in part on a digital simulation of the second design; and

determining, based at least in part on the evaluating, that the second design satisfies predetermined criteria.

17. The computer program product of claim 15, further comprising:

determining an additional element other than the elements included in the first design or a parameter change of the element included in the first design is required to implement the additional capability; and

displaying, using the computer device, information regarding the additional element or the parameter change.

18. The computer program product of claim 15, wherein the extracting step, and the identifying steps are performed using ontology-based information extraction.

19. The computer program product of claim 15, wherein the causal relationship between the capability and the at least one of the elements or the interchangeable element with the elements is defined using a probabilistic graph model where conditional dependencies between variables are specified.

20. The computer program product of claim 15, wherein rank or preference information regarding the additional capability is considered in evaluating the second design.

Description:
ADDITIONAL CAPABILITY IDENTIFICATION IN DESIGNED SYSTEM

CROSS-REFERENCE TO RELATED APPLICATION(S)

[01] This application claims the benefit of U.S. Provisional Application No. 62/587,772 filed on November 17, 2017, the content of which is incorporated herein in its entirety.

BACKGROUND

[02] Designing a system which meets hundreds of requirements, especially an electronic system, can be a complicated engineering design task. In general, before starting the design work, the engineer sets all the requirements for the system. Example requirements may relate to functional capabilities, dimensions, arrangement, weight, shapes, response time, processing speed, level of noise, power consumption, efficiency, ruggedness, cost of parts, lifetime, and kinds of materials. Because a designed system that meets all of the requirements may have hundreds of elements (e.g., physical parts, software modules), the designed system may have potential useful capabilities - not recognized by the engineer at the requirement setting stage - that are provided by combinations of certain elements. Also, sometimes, only minor modifications to the designed system may add a valuable additional capability to the system.

BRIEF DESCRIPTION OF THE DRAWINGS

[03] The detailed description is set forth with reference to the accompanying drawings. The drawings are provided for purposes of illustration only and merely depict example embodiments of the disclosure. The drawings are provided to facilitate understanding of the disclosure and shall not be deemed to limit the breadth, scope, or applicability of the disclosure. In the drawings, the left-most digit(s) of a reference numeral identifies the drawing in which the reference numeral first appears. The use of the same reference numerals indicates similar, but not necessarily the same or identical components. However, different reference numerals may be used to identify similar components as well. Various embodiments may utilize elements or components other than those illustrated in the drawings, and some elements and/or components may not be present in various embodiments. The use of singular terminology to describe a component or element may, depending on the context, encompass a plural number of such components or elements and vice versa.

[04] FIG. 1 is a schematic diagram illustrating additional capability identification using product- in-use data, engineering data, or present or previous design projects in accordance with one or more example embodiments.

[05] FIG. 2 is a process flow diagram of an illustrative method for additional capability identification using product-in-use data, engineering data, or present or previous design projects in accordance with one or more example embodiments.

[06] FIG. 3 is a schematic diagram illustrating example ways to receive a requirement for a design in accordance with one or more example embodiments.

[07] FIG. 4 is a schematic diagram illustrating a causal relationship between a capability and elements and parameters thereof using a probabilistic graphical model in accordance with one or more example embodiments.

[08] FIG. 5 is a schematic diagram illustrating a digital twin module in accordance with one or more example embodiments.

[09] FIG. 6 is a schematic diagram illustrating a first exemplary design scenario in accordance with one or more example embodiments.

[010] FIG. 7 is a schematic diagram illustrating exemplary causal relationships based on a probabilistic graphical model in the first exemplary design scenario. [01 1 ] FIG. 8 is a schematic diagram illustrating a second exemplary design scenario in accordance with one or more example embodiments.

[012] FIG. 9 is a schematic diagram of an illustrative networked computing system configured to implement one or more example embodiments.

DETAILED DESCRIPTION

Overview

[013] Identifying potential capabilities or minor modifications that may bring additional value manually is cumbersome, time-consuming work, and the engineer has no way to guarantee whether the all the potential capabilities have been detected. For example, as the number of total elements increases, the number of hidden capabilities may increase dramatically.

[014] This disclosure relates to, among other things, devices, servers, systems, methods, computer-readable media, techniques, and methodologies for automated identification of an additional (hidden or acquired by minor modification) capability of a designed product, which is not included in an original requirement list. Not only electronic capabilities like web-surfing with voice input, handwriting recognition using a touch screen, and GPS navigation function, but also non-electronic capabilities like heat resistant, chemical resistance, and water proof may be examples of the capabilities. The method includes receiving a requirement for a target system to be designed, identifying information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement, and extracting a plurality of capabilities from product-in-use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design. The method also include identifying an additional capability among the plurality of capabilities, which does not satisfy the requirement, and displaying, using the computer device, information regarding the additional capability. Each of the plurality of capabilities has a causal relationship with at least one of the elements or interchangeable elements with the elements.

[015] In certain example embodiments, the causal relationship between the capability and the at least one of the elements or the interchangeable element thereof may be defined using a probabilistic graph model (PGM) where conditional dependencies between variables are specified.

[016] In certain example embodiments, the method may further include determining an additional element other than the elements included in the first design or a parameter change of an element included in the first design is required to implement the additional capability, and displaying information regarding the additional element or the parameter change. In certain example embodiments, the method may further include evaluating a second design that includes the additional capability based at least in part on a digital simulation of the second design, and determining, based at least in part on the evaluating, that the second design satisfies predetermined criteria.

[017] In certain example embodiments, the engineering data or the previous or present design data include simulation results regarding at least one of the elements and parameters thereof included in the first design. The engineering data, or the present or previous design data may include information indicative of a capability change of a product resulting from a parameter change of an element in the product.

[018] In certain example embodiments, rank or preference information regarding the additional capability is considered in evaluating the second design. The extracting step, and the identifying steps may be performed using ontology-based information extraction.

[019] The system in this disclosure includes a display device, an input device which receives a requirement for a target system to be designed, at least one memory storing computer-executable instructions, and at least one processor configured to access the at least one memory and execute the computer-executable instructions to identify information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement, and extract a plurality of capabilities from product-in-use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design. The at least one processor is also configured to execute the computer-executable instructions to identify an additional capability among the plurality of capabilities, which does not satisfy the requirement and display information regarding the additional capability on the display device. Each of the plurality of capabilities has a causal relationship with at least one of the elements or interchangeable elements with the elements.

[020] In certain example embodiments, the system may further include a network interface. The at least one processor may further be configured to execute the computer- executable instructions to access an external network to gather the product-in-use data or the engineering data through the network interface. In certain example embodiments, the at least one processor may further be configured to execute the computer-executable instructions to evaluate a second design that includes the additional capability based at least in part on a digital simulation of the second design, and determine, based at least in part on the evaluating, that the second design satisfies predetermined criteria.

[021 ] The computer program product in this disclosure comprises a storage medium readable by a processing circuit, the storage medium storing instructions executable by the processing circuit to cause a method to be performed, the method including receiving a requirement for a target system to be designed, identifying information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement, and extracting a plurality of capabilities from product-in-use data, engineering data, or present or previous design data, based at least in part on the information indicating the elements and the parameters of the elements included in the first design. The method also include identifying an additional capability among the plurality of capabilities, which does not satisfy the requirement, and displaying, using the computer device, information regarding the additional capability. Each of the plurality of capabilities has a causal relationship with at least one of the elements or interchangeable elements with the elements.

[022] Identifying the available additional capabilities using the technical ways in the invention, especially, using a digital simulation of several designs and the probabilistic graphical model (PGM), may make it possible to find the additional capabilities which are difficult to find by the manual search. There may exist a plurality of designs which meets the same requirements, each of the plurality of designs may have different sets of additional capabilities, and the different sets of additional capabilities may add different values to the designs. Therefore, these technical advantages of the invention may help the engineer to find a final design with a maximized value.

Illustrative Embodiments

[023] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms “a,”“an,” and“the” are intended to include the plural forms, including“at least one,” unless the content clearly indicates otherwise. “At least one” is not to be construed as limiting“a” or“an.”“Or” means“and/or.” As used herein, the term“and/or” includes any and all combinations of one or more of the associated listed items. It will be further understood that the terms“comprises” and/or“comprising,” or“includes” and/or “including” when used in this specification, specify the presence of stated features, regions, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, regions, integers, steps, operations, elements, components, and/or groups thereof.

[024] FIG. 1 is a schematic diagram illustrating additional capability identification using product- in-use data 112, engineering data 114, or present or previous design data 116 in a system 100. FIG. 2 is a process flow diagram of an illustrative method 200 for additional capability identification using product-in-use data, engineering data, or present or previous design projects. FIG. 3 is a schematic diagram illustrating example ways to receive a requirement for a design. FIG. 4 is a schematic diagram illustrating example causal relationships 400 between capabilities and elements and parameters thereof using a probabilistic graphical model. FIG. 5 is a schematic diagram illustrating a digital twin module 130. Each of FIGS. 1, 3-5 will be described in conjunction with FIG. 2 hereinafter.

[025] Each operation of the method 200 may be performed by one or more components that may be implemented in any combination of hardware, software, and/or firmware. In certain example embodiments, one or more of these component(s) may be implemented, at least in part, as software and/or firmware that contains or is a collection of one or more program modules that include computer-executable instructions that when executed by a processing circuit cause one or more operations to be performed. A system or device described herein as being configured to implement example embodiments of the invention may include one or more processing circuits, each of which may include one or more processing units or nodes. Computer-executable instructions may include computer-executable program code that when executed by a processing unit may cause input data contained in or referenced by the computer-executable program code to be accessed and processed to yield output data.

[026] Referring first to FIG. 1 in conjunction with FIG. 2, at block 202 of the method 200, a system 100 (e.g., a computer system for assisting a user in designing a target system or a target product) may receive requirement s) 110 for a target system or a target product to be designed. The requirement(s) 110 for a design refers to essential qualitative and quantitative characteristics that set criteria to be satisfied in designing a target component, device, product, or system. Functional capabilities, performance requirements, dimensions, arrangement, weight, shapes, reliability in harsh conditions (e.g., high pressure, extreme temperatures, under water, etc.), response time, processing speed, level of noise, power consumption, efficiency, ruggedness, cost of parts, life time, materials, constraints and rule compliance (e.g., environmental law, FCC rule for radio regulation, etc.) may be examples of the requirement(s) 110.

[027] Referring to FIG. 3, the requirement(s) 110 may be input to the system 100 by filling blanks in a corresponding dialog box 310 of a user interface 160 by a user or by reading a requirement document 320 which is machine-readable (e.g., written in XML language) and extracting corresponding requirement(s) by the system 100. In this case, natural language processing technologies may be used for the system 100 to recognize the requirement(s). An observer module 170 may observe data input through the user interface 160 and recognize the requirement(s) 110.

[028] At block 204 of the method 200, the system 100 may identify information indicating elements and parameters of the elements included in a first design of the target system that satisfies the requirement. The first design may be made by a human with a computer-aided design (CAD) tool or generated by an advanced design tool

automatically. In the case that the first design is generated by a separate tool from the system 100, the system 100 may recognize the information associated with the first design if the information is input to the system 100. In the example embodiment in which the first design is generated by the system 100, the system 100 may recognize the information associated with the first design automatically. The number of the first designs of the target system that satisfy the requirement(s) may be plural. In such example embodiments, the system 100 may recognize all the information associated with a plurality of first designs.

[029] In example embodiments, for example, if the target system to be designed is a smartphone, then a screen glass, a touch sensor, a display panel, a processor, a memory, a battery, a Wi-Fi module, a GPS module, a graphics card, a mic, a speaker, an earphone jack, an antenna, various circuits, specific software module, etc. may be examples of the elements of the smartphone. In example embodiments, an element may be divided into sub-elements corresponding to functions of the element. The parameters of an element are the qualitative and quantitative aspects of physical and functional characteristics of the element. For example, if the element is a screen glass, then thickness, width, length, transparency, material, weight, durability, relative location in the smartphone, etc. may be examples of the parameters of the screen glass. The information associated with the first design may include simulation results of the first design, project version, or the type of the target product.

[030] At block 206 of the method 200, the system 100 may extract a plurality of capabilities from product- in- use data 112, engineering data 114, or present or previous design data 116, based at least in part on the information indicating the elements and the parameters of the elements included in the first design. A requirement and“elements and parameters thereof’ may have a causal relationship. For example, to provide a navigation function which may be one of the requirements in a smartphone design, elements such as a GPS module, map data, an antenna, a screen, a graphics processor, and an input interface are required. That is, each of the above elements may be referred to as a“cause,” and the navigation function (i.e., capability) may be referred to as a“result.” In this case, no one element is a sole cause of the navigation function. Rather, each of the above elements is a partial cause of the navigation function. The above elements jointly cause the navigation function. The combination of all the elements above may cause the navigation function. It should be appreciated, however, that in example embodiments, a single element may be the sole cause of a certain capability.

[031 ] In addition to jointly representing the cause of the navigation function, the contributions of respective elements to the navigation function are different in example embodiments. For example, the GPS module and map data may be core elements (i.e., “dominant” causes) to the navigation function. The usages of the GPS module and map data are limited to special functions, and thus, may be considered specially used elements in example embodiments. In contrast, the screen, the graphics processor, and the input interface, for example, may be considered widely used elements because these elements may be common causes of most functions of the smartphones. The contribution of a widely used element to a certain function (in other words,“capability”) may be less than that of a specially used element. As such, just as a specially used element may be a “dominant” cause, a widely used element may be a“marginal” cause. The degree of the contribution may be described as a“probability,” which will be described in more detail later in this disclosure. Not only the element itself but the parameter of the element may also be a factor in deciding whether the element can be a cause of the capability. In an example embodiment, for example, depending on a relative location of an element in a product, the element can be a cause or not. This topic will also be described later.

[032] The same or a new causal relationship between a capability (or requirement) and elements and effects of the elements’ parameters in the causal relationship may be found from product- in-use data 112, engineering data 114, present or previous design data 116, or any combination thereof. The product- in-use data 112 are usage data of a product by users. In general, a design engineer of the product sets all the requirements first. The design engineer then finds a design solution which may be represented as an arrangement of all elements and parameters thereof to meet the requirements. However, a certain, existing combination of some elements and parameters thereof among all the elements of the product may provide a new function which is not included in the original requirement list. Users may discover this new capability of the product, which may not be a capability that was intended to be provided by the design engineer. The product-in-use data 112 may be gathered by direct input of a user of the system 100 or by searching through an external network.

[033] The engineering data 114 may be indicative of knowledge acquired by design engineers over via experience. The engineering data 114 may include engineer’s tacit knowledge or design preferences regarding similar designs such as workflows, production data, interchangeability between two elements or between two combinations of elements, causal relationships that are theoretically possible but practically impossible, and so forth. The system 100 may gather the engineering data 114 by analyzing a history of the system usages, by reading data sheets or documents related to the product or by searching through an external network. [034] The previous design data 116 are data regarding previous design projects. The previous design projects are not limited to the design projects of the same kinds of products. Previous design projects of different kinds of products (e.g., a navigation system, a digital camera device, and a video game console) having a common element (e.g., a GPS module, a camera module, and a GPU) with the current product (e.g., smartphone) may also be included in the target of the search. The present design data 116 are data regarding current design projects (e.g., first design). The present design project may also be included in the target of the search. Through the simulation of the designed product, hidden capabilities of the product which are not included in the original requirement list may be found. The engineering data 114 or the present or previous design data 116 may include information associated with a capability change of a product according to a parameter change of an element in the product. The engineering data 114 or the previous or present design data 116 may include simulation results regarding at least one of the elements and parameters thereof included in the first design. Simulation result illustrating a change of a performance or a capability resulting from a change of an element or a parameter thereof may be helpful data to find a causal relationship between the capability and the element and the parameter thereof. The version change history of a certain model can provide information regarding such a causal relationship. As the versions change, some requirements may be added, eliminated or changed. If the requirement changes are analyzed with the element or parameter changes according to the version change, such a causal relationship may be found.

[035] A distiller 120 may extract information from the requirements 110, the product- in-use data 112, the engineering data 114, and/or the present or previous design data 116 and represent them in a digital twin module 130.

[036] Referring to FIG. 4, an application of a probabilistic graphical model (PGM) to the causal relationship between a capability and elements and parameters thereof will be explained. The probabilistic graphical model is a probabilistic model in the form of a graph that expresses the conditional dependence structure between random variables. Hereinafter, probabilistic graphical model will be explained using example causal relationships 400. The system 100 may apply the probabilistic graphical model (PGM) without actual drawings of the graph in its screen. The probabilistic graphical model (PGM) may be used to find a causal relationship between certain elements and a capability. Here, elements El, E2 and E3 are joint causes of capability Cl. One element may be the cause of several capabilities. For example, the element E2 may be the cause of the capability Cl and also be the cause of a capability C2. There may exist an intermediate capability IC as well. The intermediate capability IC is a result of the joint causes of the elements El and E2. The intermediate capability IC also is one of the joint causes with an element E3 of the capability Cl . In addition, an element E5 may be a sole cause of the intermediate capability IC. As such, in example embodiments, the element E5 may be interchangeable with the elements El and E2 as the cause of the intermediate capability IC.

[037] These causal relationships may have characteristics of conditional probability distribution (CPD) depending on the parameter of the element. That is, a parameter (in other words, status of the parameter) of an element may be a decisive factor to determine whether an element can be a cause of a capability. In example embodiments, for example, if the required capability is a gaming function with high-resolution graphics, one of the elements, GPU) may need a certain range of a processing speed (i.e., status of the parameter) to be the“cause” of the required capability. Depending on the range of the processing speed, the GPU may be the“cause” or not. Because not only the element itself but also the parameter thereof may be a decisive factor to determine whether the element can be a cause of the capability, the probabilistic graphical model (PGM), which describes a contribution of a variable as a cause using conditional probabilities depending on a parameter of the variable, may be used to describe the above relation. In addition, as described above, among joint causes, some elements may be dominant causes, and other elements may be marginal causes. The probabilistic graphical model (PGM) may describe this difference in contributions between elements by probability. [038] At block 206 of the method 200, a plurality of capabilities may be extracted from the product- in- use data 112, the engineering data 114, and/or the present or previous design data 116 based at least in part on the information indicating the elements and the parameters of the elements included in the first design. Each extracted capability may have a causal relationship with at least one of the elements or an interchangeable element thereof of the first design. Introducing an additional capability for which all causal elements are new elements or which has a causal relationship with a widely used element may result in an excessive number of recommendations being generated, many of which may constitute unacceptable recommendations. Accordingly, in example embodiments, the scope of recommendation may be limited by limiting the search scope depending on the situation. Limiting the target element to specially used elements (e.g., GPS module), to elements that are dominant causes among all elements constituting at least partial causes of a certain capability, or to widely used elements that are joint causes of a certain capability with other elements that meet a certain condition (e.g., specially used elements) may be example ways in which the scope of recommendation may be limited.

[039] In other embodiments, other probabilistic analytical techniques can be used such as a neural network, context tree weighting, a hidden Markov model, a dynamic system, principal component analysis, k-means clustering, a fishbone diagram (cause- and-effect diagrams), a mixture model, a regression model, a Markov random field, a conditional random field, template matching, a K-nearest neighbors model, a patent recognition model, a statistical learning model, a machine learning model, or

combinations thereof.

[040] Referring to FIG. 5, a digital twin module 130 may include an ontology processing part 510, an instance part 520, and a probabilistic graphical model (PGM) part 530. Each of the three parts may be a function block including various algorithms. The ontology processing part 510 may perform ontology-based information extraction to extract information regarding capabilities, elements, and parameters of the elements from electronic documents written in a human language such as a design project report written by a design engineer and a product review in a webpage written by a customer. The ontology processing part 510 may provide the instance part 520 and the probabilistic graphical model (PGM) part 530 with the extracted elements as variables and the parameters of the elements as sources for calculating the conditional probability distribution (CPD) of the variables. The instance part 520 may generate a digital replica of a product to be designed and simulate the digital replica to check whether operations of the product meet the requirement(s) and to check changes of simulation results depending on changes of the extracted elements and the parameters thereof. The instance part 520 may provide the probabilistic graphical model (PGM) part 530 with the changes of simulation results as evidence for calculating probabilistic distribution of capabilities. The probabilistic graphical model (PGM) part 530 may perform the mapping between capabilities and“elements and parameters thereof’ to find the causal relationships between them. The probabilistic graphical model (PGM) part 530 may cooperate with the ontology processing part 510 and the instance part 520 to perform the mapping (so called “link”). The digital twin module 130 may communicate with external parts through the Application programming interface (API). At block 208 of the method 200, the system 100 may identify an additional capability among the plurality of capabilities, which does not satisfy the requirements 110.

[041 ] At block 210 of the method 200, the system 100 may evaluate a second design that includes the additional capability based at least in part on a digital simulation of the second design. At block 211 of the method 200, the system 100 may determine, based at least in part on the evaluating, that the second design satisfies predetermined criteria. If the additional capability may be implemented without adding a new element or changing any parameter of an existing element, the second design may be the same as the first design, and the predetermined criteria for the second design may be the same as that for the first design (e.g., original requirements of the first design). In example embodiments, the system 100 may evaluate whether a combination of some elements existing in the first design may perform the additional capability through a digital simulation in the block 210. If the additional capability requires a new element or changing any parameter of an existing element, the criteria for the second design may be different from that for the first design. In example embodiments, the scope of the modification of the first design is limited to only minor modification(s) in order to limit the effect of the modification(s) on factors influencing the first design such as total material cost, total power consumption, total weight, or other constraints. The minor modification may be defined in various ways. For example, a minor modification may be defined as a modification that results in the second design meeting new requirements which constitute amended requirements for the first design with a predetermined amount of increase (e.g., 5%) in certain requirements (e.g., total weight, material cost, power consumption, or the size of the product).

[042] An alternative generator 140 may synthesize design variants based on a combination of artificial intelligence and advanced optimization algorithms. The alternative generator 410 may synthesize the second design by adding a new element or a parameter change of an existing element (i.e., the status change of the parameter) to the first design and checking whether an additional capability results from the addition of the new element or the parameter change of the existing element. The alternative generator 410 may use the digital twin module 130 to the synthesis.

[043] A capability evaluator 150 may validate the second design applying the additional capability against certain criteria through background simulation of the design. The capability evaluator 150 may evaluate the second design compared to the first design. The capability evaluator 150 may consider rank or preference information regarding a capability, an element, or a parameter thereof in the evaluation. The capability evaluator 150 may use the digital twin module 130 in the simulation. In those example

embodiments in which the additional capability is implemented without a design change, the evaluation may include analysis of the simulation of the additional capability and consideration of the rank or preference information regarding the additional capability.

[044] At block 212 of the method 200, the system 100 may display information regarding the additional capability if the second design passes the evaluation. At block 214 of the method 200, the system 100 may check if an additional element other than the elements included in the first design or a parameter change of the element included in the first design is required to implement the additional capability. In response to a positive determination at block 214, the system 100 may additionally display information regarding the additional element or the parameter change. A screen in the user interface 160 may be used to display the results at block 216 of the method 200.

[045] FIG. 6 is a schematic diagram illustrating a first exemplary design scenario 600 in accordance with one or more example embodiments. FIG. 7 is schematic diagrams illustrating exemplary causal relationships based on a probabilistic graphical model in the first exemplary design scenario 600.

[046] In the first design scenario 600, the target product is a smartphone (smart phone project 710). A design tool for system 610 receives the requirement in step 1 (Sl). The requirement is to provide a vibrate mode. In step 2 (S2), a design engineer’s first design includes a vibrator (element 1) at a bottom right corner (parameter at A status). If the first design includes a flat bottom surface (element 2) so that the smartphone may stand alone, the combination of elements 1 and 2 and the parameter at A status may cause the smartphone to rotate while vibrating (intermediate capability 1). The intermediate capability may be found by simulation of the first design in a digital twin graph 620. If the first design includes a camera (element 3), the combination of elements 1, 2 and 3 and the parameter at A status may cause a 360-degree panoramic photo function (additional capability 1 , hidden capability) which is not originally included in a requirement list. The system 100 may find the additional capability 1 through various ways using the digital twin graph 620, the past design explorer 630, and the capability evaluator 640. The past design explorer 630 searches product-in-use data, engineering data, and previous or present design data and compares them with a design where additional capability is added.

[047] The following are examples of the ways:

(1) If there was a previous design project of a smartphone or similar device, one of the requirements of the project was the 360-degree panoramic photo function, and a final design of the project includes a vibrator at a bottom right corner, a flat bottom surface, and a camera, then the system 100 may detect the additional capability 1 easily when reading the design report of the previous project.

(2) If the system 100 recognizes product- in-use data which indicates that several customers used the previous smartphone including a vibrator at a bottom right corner for the 360-degree panoramic photo function, then the system 100 may find the additional capability 1 from the combination of elements of the previous smartphone and the product-in-use data.

(3) If there was a design project for security camera 720 which required the 360-degree panoramic photo function, and the final design of the security camera includes a motor (element 4) which may cause the security camera to rotate (intermediate capability 1) and a camera, then the system 100 may infer that the current smartphone has the additional capability 1 from the information extracted from the security camera project 720 and current smartphone project 710. Specifically, the system 100 may infer that the combination of the intermediate capability 1 and the camera may cause the additional capability 1 from the information extracted from the security camera project 720 and that the combination of elements 1 and 2 and the parameter at A status may cause the intermediate capability 1 from the current smartphone project 710.

(4) If the system 100 may include an artificial intelligence module (730) so that the system 100 may infer that the combination of the intermediate capability 1 and the camera may cause the additional capability 1 , the system 100 may recognize the additional capability 1.

[048] FIG. 8 is a schematic diagram illustrating a second exemplary design scenario 800 in accordance with one or more example embodiments. The different situation of the second scenario 800 from the first scenario 600 is that the first design by the design engineer includes the vibrator (element 1) at the center-right of the smartphone

(parameter at B status) rather than at the bottom right (parameter at A status) of the smartphone in step 2’ (S2’). In this second scenario 800, the system 100 may find the additional capability 1 through various ways. [049] The followings are examples of the ways:

(1) If the system 100 broaden the search scope to any capability which has a causal relationship with the vibrator regardless the location of the vibrator and found the example ways described in the first scenario 600, then the system 100 may recognize the additional capability 1.

(2) Even in the case that there is no previous instances that the vibrator is located at bottom right corner, if the system 100 finds by itself the intermediate capability 1 through a simulation of the first design with parameter change of the vibrator from A status to B status, then the system 100 may recognize the additional capability 1 from the

combination of the simulation result and other instances described in the first scenario 600.

Illustrative Networked Architecture

[050] FIG. 9 is a schematic diagram of an illustrative networked computing system 900 in accordance with one or more example embodiments of the disclosure. The networked computing system 900 include one or more user devices 901, each of which may be utilized by a corresponding user 903. The networked computing system 900 may further include one or more datastores 950. The networked computing system 900 may be an illustrative configuration of the system 100.

[051 ] The network(s) 940 may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs). In addition, the network(s) 940 may include communication links and associated networking devices (e.g., link-layer switches, routers, etc.) for transmitting network traffic over any suitable type of medium including, but not limited to, coaxial cable, twisted-pair wire (e.g., twisted-pair copper wire), optical fiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radio frequency communication medium, a satellite communication medium, or any combination thereof. [052] In an illustrative configuration, the user device 901 may include one or more processors (processor(s)) 902, one or more memory devices 904 (generically referred to herein as memory 904), one or more input interface(s) 906, one or more screen(s) 908, one or more network interfaces 910, and data storage 920. The user device 901 may further include one or more buses 930 that functionally couple various components of the user device 901. These various components will be described in more detail hereinafter.

[053] The bus(es) 930 may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may permit the exchange of information (e.g., data (including computer-executable code), signaling, etc.) between various components of the user device 901. The bus(es) 930 may include, without limitation, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, and so forth. The bus(es) 930 may be associated with any suitable bus architecture including, without limitation, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnects (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, and so forth.

[054] The memory 904 of the user device 901 may include volatile memory (memory that maintains its state when supplied with power) such as random access memory (RAM) and/or non-volatile memory (memory that maintains its state even when not supplied with power) such as read-only memory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth. Persistent data storage, as that term is used herein, may include non-volatile memory. In certain example embodiments, volatile memory may enable faster read/write access than non-volatile memory. However, in certain other example embodiments, certain types of non-volatile memory (e.g., FRAM) may enable faster read/write access than certain types of volatile memory. [055] In various implementations, the memory 904 may include multiple different types of memory such as various types of static random access memory (SRAM), various types of dynamic random access memory (DRAM), various types of unalterable ROM, and/or writeable variants of ROM such as electrically erasable programmable read-only memory (EEPROM), flash memory, and so forth. The memory 904 may include main memory as well as various forms of cache memory such as instruction cache(s), data cache(s), translation lookaside buffer(s) (TLBs), and so forth. Further, cache memory such as a data cache may be a multi-level cache organized as a hierarchy of one or more cache levels (Ll, L2, etc.).

[056] The data storage 920 may include removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disk storage, and/or tape storage. The data storage 920 may provide non-volatile storage of computer-executable instructions and other data. The memory 904 and the data storage 920, removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein.

[057] The data storage 920 may store computer-executable code, instructions, or the like that may be loadable into the memory 904 and executable by the processor(s) 902 to cause the processor(s) 902 to perform or initiate various operations. The data storage 920 may additionally store data that may be copied to memory 904 for use by the processor(s) 902 during the execution of the computer-executable instructions. Moreover, output data generated as a result of execution of the computer-executable instructions by the processor(s) 902 may be stored initially in memory 904, and may ultimately be copied to data storage 920 for non-volatile storage.

[058] More specifically, the data storage 920 may store one or more operating systems (O/S) 921 ; one or more database management systems (DBMS) 922; and one or more program modules, applications, engines, computer-executable code, scripts, or the like such as, for example, a digital twin module 524, an alternative generator module 526, and a capability evaluation module 528. Any of the components depicted as being stored in data storage 920 may include any combination of software, firmware, and/or hardware. The software and/or firmware may include computer-executable code, instructions, or the like that may be loaded into the memory 904 for execution by one or more of the processor(s) 902 to perform any of the operations described earlier in connection with correspondingly named modules.

[059] The data storage 920 may further store various types of data utilized by components of the user device 901 such as product- in-use data, engineering data, or present or previous design data depicted as being stored in the datastore(s) 950. The user device 901 may get some of the data through the network(s) 940. Any data stored in the data storage 920 may be loaded into the memory 904 for use by the processor(s) 902 in executing computer-executable code. In addition, any data stored in the datastore(s) 950 may be accessed via the DBMS 922 and loaded in the memory 904 for use by the processor(s) 902 in executing computer-executable code.

[060] The processor(s) 902 may be configured to access the memory 904 and execute computer-executable instructions loaded therein. For example, the processor(s) 902 may be configured to execute computer-executable instructions of the various program modules, applications, engines, or the like of the user device 901 to cause or facilitate various operations to be performed in accordance with one or more embodiments of the disclosure. The processor(s) 902 may include any suitable processing unit capable of accepting data as input, processing the input data in accordance with stored computer-executable instructions, and generating output data. The processor(s) 902 may include any type of suitable processing unit including, but not limited to, a central processing unit, a microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Complex Instruction Set Computer (CISC) microprocessor, a microcontroller, an Application Specific Integrated Circuit (ASIC), a Field- Programmable Gate Array (FPGA), a System-on-a-Chip (SoC), a digital signal processor (DSP), and so forth. Further, the processor(s) 902 may have any suitable microarchitecture design that includes any number of constituent components such as, for example, registers, multiplexers, arithmetic logic units, cache controllers for controlling read/write operations to cache memory, branch predictors, or the like. The microarchitecture design of the processor(s) 902 may be capable of supporting any of a variety of instruction sets.

[061 ] Referring now to other illustrative components depicted as being stored in the data storage 920, the O/S 921 may be loaded from the data storage 920 into the memory 904 and may provide an interface between other application software executing on the user device 901 and hardware resources of the user device 901. More specifically, the O/S 921 may include a set of computer-executable instructions for managing hardware resources of the user device 901 and for providing common services to other application programs (e.g., managing memory allocation among various application programs). In certain example embodiments, the O/S 921 may control execution of one or more of the program modules depicted as being stored in the data storage 920. The O/S 921 may include any operating system now known or which may be developed in the future including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.

[062] The DBMS 922 may be loaded into the memory 904 and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory 904 and/or data stored in the data storage 920. The DBMS 922 may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages. The DBMS 922 may access data represented in one or more data schemas and stored in any suitable data repository.

[063] The datastore(s) 950 may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like. The datastore(s) 950 may store various types of data such as, for example, product-in-use data 952, engineering data 954, or present or previous design data 956.

[064] Referring now to other illustrative components of the user device 901, the input interface(s) 906 may facilitate the receipt of input information by the user device 901 from one or more I/O devices. The input interface(s) 906 may also include an interface for an external peripheral device connection such as universal serial bus (USB), FireWire, Thunderbolt, Ethernet port or other connection protocol that may connect to one or more networks. The screen 908 may display various dialog boxes, simulation results, documents and recommend additional capabilities regarding the design.

[065] The user device 901 may further include one or more network interfaces 910 via which the user device 901 may communicate with any of a variety of other systems, platforms, networks, devices, and so forth. The network interface(s) 910 may enable communication, for example, with the user device 901 and/or the datastore(s) 950 via the network(s) 910.

[066] It should be appreciated that the program modules, applications, computer- executable instructions, code, or the like depicted in FIG. 9 as being stored in the data storage 920 are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple modules or performed by a different module. In addition, various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer-executable code hosted locally on the user device 901, and/or hosted on other computing device(s) accessible via one or more of the network(s) 940, may be provided to support functionality provided by the program modules, applications, or computer- executable code depicted in FIG. 9 and/or additional or alternate functionality. Further, functionality may be modularized differently such that processing described as being supported collectively by the collection of program modules depicted in FIG. 9 may be performed by a fewer or greater number of modules, or functionality described as being supported by any particular module may be supported, at least in part, by another module. In addition, program modules that support the functionality described herein may form part of one or more applications executable across any number of systems or devices in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth. In addition, any of the functionality described as being supported by any of the program modules depicted in FIG. 9 may be implemented, at least partially, in hardware and/or firmware across any number of devices.

[067] It should further be appreciated that the user device 901 may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the user device 901 are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative program modules have been depicted and described as software modules stored in data storage 920, it should be appreciated that functionality described as being supported by the program modules may be enabled by any combination of hardware, software, and/or firmware. It should further be appreciated that each of the above-mentioned modules may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and/or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular module may, in various embodiments, be provided at least in part by one or more other modules. Further, one or more depicted modules may not be present in certain embodiments, while in other embodiments, additional modules not depicted may be present and may support at least a portion of the described functionality and/or additional functionality. Moreover, while certain modules may be depicted and described as sub-modules of another module, in certain embodiments, such modules may be provided as independent modules or as sub- modules of other modules. [068] One or more operations of any of the method 200 may be performed by a user device 901, or in a distributed fashion by a user device 901 having the illustrative configuration depicted in FIG. 9, or more specifically, by one or more engines, program modules, applications, or the like executable on such device(s). It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations.

[069] The operations described and depicted in the illustrative methods of FIGS. 2-8 may be carried out or performed in any suitable order as desired in various example embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those depicted in FIGS. 2-8 may be performed.

[070] Although specific embodiments of the disclosure have been described, one of ordinary skill in the art will recognize that numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality and/or processing capabilities described with respect to a particular device or component may be performed by any other device or component. Further, while various illustrative implementations and architectures have been described in accordance with embodiments of the disclosure, one of ordinary skill in the art will appreciate that numerous other modifications to the illustrative implementations and architectures described herein are also within the scope of this disclosure. In addition, it should be appreciated that any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like can be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase“based on,” or variants thereof, should be interpreted as“based at least in part on.” [071 ] Although embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the disclosure is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the embodiments. Conditional language, such as, among others,“can,”“could,”“might,” or“may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments could include, while other embodiments do not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements, and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements, and/or steps are included or are to be performed in any particular embodiment.

[072] The present disclosure may be a system, a method, and/or a computer program product. The computer program product may include a computer-readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.

[073] The computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer- readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[074] Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

[075] Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field- programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

[076] Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

[077] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a

programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

[078] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

[079] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.