Methods for storing and reconstructing graphs

The method efficiently stores and reconstructs graphs of complex networks by recording node and relationship identifiers in a data structure, addressing inefficiencies and inaccuracies of conventional approaches, enabling flexible and adaptive graph analysis.

JP7843374B2Active Publication Date: 2026-04-09セロニス ソシエタス ヨーロッパ
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-02-16
Publication Date
2026-04-09

AI Technical Summary

Technical Problem

Conventional methods for storing and analyzing graphs representing complex networks like supply chain and process networks are inefficient, error-prone, and computationally demanding, leading to inaccurate reconstructions and timeouts due to the need for manual connection of nodes and lack of flexibility in handling changing network landscapes.

Method used

A method for storing a graph in memory that records node identifiers and relationship identifiers without prior knowledge of node neighborhoods, using a data structure that generates directed edges based on unique relationship identifiers derived from raw data, allowing flexible and efficient manipulation of graph components.

Benefits of technology

Enables efficient and robust storage of graphs that adapt to changing data, eliminating the need for complex join operations and reducing data redundancy, facilitating flexible graph reconstruction and analysis without predetermined graph structure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007843374000013
    Figure 0007843374000013
  • Figure 0007843374000014
    Figure 0007843374000014
  • Figure 0007843374000015
    Figure 0007843374000015
Patent Text Reader

Abstract

A method is provided for storing a graph representing a network in a storage device without prior knowledge of the structure of the graph. Each directed edge of the graph consists of an outgoing edge connected to a start node and an incoming edge connected to a terminal node. The method includes storing the start node in a first record of a data structure, where a unique relationship identifier is stored in a third attribute of the first record, and storing the terminal node in a second record of the data structure, where the unique relationship identifier is stored in a second attribute of the second record. A value of the third attribute of the first record that matches a value of the second attribute of the second record defines a directed edge.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for storing a graph in a storage device.

Background Art

[0002] Networks, particularly directed networks, encode the flow of system parameters along a plurality of entities. An example of a network is a supply chain network, where the system parameters can be materials or planned deliveries, or a combination thereof. Another example of a network is a process network, where the system parameters can be outputs of process steps such as materials or business documents or any combination thereof.

[0003] In a supply chain network, it is important to understand how materials and / or goods are flowing and / or how materials are planned to be delivered. The flow of materials and / or planned deliveries in a supply chain network facilitates the calculation of the carbon footprint of a product based on various use cases, such as estimating which finished products may be affected by a shortage of raw materials, or based on the parts of the product, each part, etc. These networks can include any number of facilities and combinations of materials, which are hereinafter referred to as stock keeping units (SKUs).

[0004] In a typical scenario of a supply chain network, several SKUs are involved in multiple layers representing different stages in the production process and in the delivery of goods. In fact, both production and distribution are often scattered among multiple manufacturers. The layers of SKUs can range from raw materials for a partially produced product to the finished product itself. Due to the various layers between raw materials and finished products, a supply chain network typically includes many SKUs spanning across it.

[0005] Similarly, a single process, such as a business process (e.g., an order process) or a technical manufacturing process (e.g., a process performed on an SKU in a supply chain network), is in fact often part of a (larger) process network. This means that a process may run on or using a computer system and may consist of several process steps. The execution of a process is called a process instance. Each process step can create data during execution, which is stored on or using the computer system on which the process runs.

[0006] It is known that process instances are stored in process protocols along with their process steps, from which single process instances can be efficiently analyzed using classical process mining techniques. However, in realistic scenarios, it is unlikely that instances of different processes are isolated from one another. Instances of different processes are rather connected in a process network. However, in a process network, classical process mining cannot analyze the interactions between process instances of two or more different processes. In reality, process networks are widely distributed, and most organizations not only run independent, sequential sets of processes, but rather contain many processes that interact with each other and with processes of other organizations.

[0007] Technically, networks such as supply chain networks or process networks can be represented using graphs. Graphs typically consist of nodes and edges, where nodes can represent entities within individual networks, and edges can represent interactions between entities within those networks.

[0008] In practice, nodes (entities) are typically stored separately. For example, in a supply chain network, SKUs are usually organized into different (relational) data tables. In a process network, individual processes are stored independently of each other within process protocols.

[0009] In reality, the landscape of interconnected SKUs and / or interconnected processes in modern networks is constantly changing. Therefore, traditional approaches, which involve manually connecting one SKU to another (e.g., through joining tables in a relational database) or manually connecting one process instance to another, are highly inefficient and error-prone. Thus, conventional approaches to remembering graphs representing modern networks, particularly supply chain networks and / or process networks, can directly lead to inaccurate reconstructions and subsequent analysis of such networks.

[0010] Due to the large amount of data contained in such networks, manually connecting nodes in a graph that represent entities within the network is computationally very demanding, and traditional approaches to storing graphs representing networks often result in timeouts.

[0011] Therefore, an object of the present invention is to provide a method for storing a graph representing a network in a memory device in an efficient manner, enabling flexible manipulation of the components of the graph, namely its nodes and / or edges.

[0012] According to the present invention, this objective is solved by the method described in the independent claim. Preferred embodiments and further developments of the present invention are defined in the dependent claims.

[0013] Therefore, a computer-operated method for storing a graph in memory is provided. The graph includes multiple nodes and multiple directed edges. Each directed edge connects a start node and a end node, and each directed edge consists of an input edge connected to the end node and an output edge connected to the start node.

[0014] The graph represents a network, and each node represents an entity in the network. Each directed edge represents a relationship between two entities.

[0015] This delicious, This includes recording each start node in a first record of a data structure stored using a memory device, and recording each end node in a second record of the data structure. Each record contains at least: - A combination of several first attributes in which the node identifier is stored, - A combination of several second attributes in which the identifier of the input edge is stored, -Includes a combination of several third attributes in which the identifier of the output edge is stored.

[0016] The method further includes storing in the first record an identifier for the starting node in a combination of several first attributes, and a unique relationship identifier in a combination of several third attributes. The unique relationship identifier represents a step along the path in the network. In other words, the unique relationship identifier represents an interaction between two entities in the network.

[0017] The method further includes storing in a second record identifiers of terminal nodes in several combinations of first attributes and unique relation identifiers in several combinations of second attributes.

[0018] The values ​​of several combinations of second attributes in the second record that match the values ​​of several combinations of third attributes in the first record define a directed edge between the start node and the end node.

[0019] Preferably, the method further includes determining directed edges between a start node and an end node by matching the values ​​of some combinations of second attributes of a second record with the values ​​of some combinations of third attributes of a first record in order to generate a graph.

[0020] The method according to the present invention has the technical advantage that a graph representing a network can be stored in a memory device without prior knowledge of which nodes are adjacent to which nodes, i.e., about node neighborhoods. The data structure can be recorded along with the nodes from different individual raw data sources according to predetermined rules for creating unique relation identifiers that are assigned to the input or output edges to which the nodes are connected. At the time the data structure is recorded, the directed edges of the graph are not yet defined. The directed edges and the graph itself with directed edges appear only from the recorded data structure, i.e., only from finding the same unique relation identifiers assigned to some combination of second attributes of a second record and some combination of third attributes of a first record. A further technical advantage is that the preceding-successor relationships of nodes (i.e., between nodes) do not need to be explicitly stored, thereby significantly reducing the amount of data.

[0021] Conventionally, a graph is first determined, meaning its structure is known and fixed accordingly, and then the graph can be stored in a memory device. In contrast, according to the present invention, only data describing entities within a network is recorded in the data structure without knowledge of the relationships within the network. The graph representing the network is ultimately obtained from the data structure.

[0022] Therefore, the graph memory according to the present invention is very flexible. There is no need to predetermine the graph structure and schema. Furthermore, since graph data that typically results in multiple raw data tables can be recorded in the data structure without any join operations, the graph memory according to the present invention is very efficient and robust. To record the data structure, it is only necessary to know which nodes are start nodes and / or end nodes. This is typically derived from the metadata of the associated raw data.

[0023] The flexibility of storing graphs using the method according to the present invention enables efficient storage of graphs that are always adapted to (rapidly) changing raw data.

[0024] For each unique relationship identifier stored in the data structure, a graph stored in the data structure is obtained by matching the values of some combinations of second attributes of a second record with the values of some combinations of third attributes of a first record. In practice, after processing the matching step for each unique relationship identifier recorded in the data structure, it is possible to obtain two or more graphs from the data structure.

[0025] In one embodiment, the data structure is provided to a graph visualization device for displaying a network.

[0026] To display the network, a graph can be read from the data structure, and the directed edges between the start node and the end node are formed by matching the second attribute of the second record and the third attribute of the first record with respect to the unique relationship identifier.

[0027] In one embodiment, the data structure is a table, particularly a relational data table. The table is associated with a (relational) data model.

[0028] In one embodiment, the network is a supply chain network, and the entities are combinations of materials and facilities, particularly stock - keeping units (SKUs). The relationship between two entities within the supply chain network is established by using a bill of materials and / or a bill of distributions.

[0029] Typically, the bill of materials defines a production network, and the bill of distributions defines a distribution network. According to an embodiment of the present invention, the method also enables the storage of a graph representing a combined production and distribution network. In this embodiment, the unique relationship identifier includes data characterizing the relationship between two entities, particularly a bill of materials identifier, an alternative bill of materials identifier, and a facility identifier, and / or a receiving facility identifier and a material identifier.

[0030] The unique relationship identifier is constructed from raw data according to a predetermined rule. In the case of a production network, it has been proven useful to use a combination, particularly concatenation, of a bill of materials identifier, an alternative bill of materials identifier, and a facility identifier to connect stock - keeping units to each other. In the case of a distribution network, it has been proven particularly useful to construct the unique relationship identifier from a combination of a receiving facility identifier and a material identifier, particularly concatenation. Depending on the context of the network represented by the stored graph, the unique relationship identifier may also be constructed from different identifiers found in the raw data.

[0031] In one embodiment, the node identifier includes a case key.

[0032] In the case of a supply chain network, the case key can be a combination of a material identifier and a facility identifier.

[0033] In one embodiment, at least one node is both a terminal node connected to at least one input edge and a start node connected to at least one output edge. This method further includes recording each node of the at least one node in at least one record. In each record of the at least one record, the identifier of each node is assigned to some first combination of attributes, the first unique relation identifier of one input edge is assigned to some second combination of attributes, and the second unique relation identifier of one output edge is assigned to some third combination of attributes.

[0034] Preferably, in each record of at least one record, either a first unique relation identifier of one input edge is assigned to a combination of several second attributes, or a second unique relation identifier of one output edge is assigned to a combination of several third attributes.

[0035] A preferred embodiment has the advantage that, regardless of the number of directed edges for which a node is the origin or destination, there is always exactly one input or output edge recorded at a single node. As a result, the number of records required to store the graph according to the present invention is reduced.

[0036] In one embodiment, the number of first attributes in a combination of several first attributes is 1, and / or the number of second attributes in a combination of several second attributes is 1, and / or the number of third attributes in a combination of several third attributes is 1.

[0037] In one embodiment, the network is a process network comprising two or more process instances of different processes and interactions between process steps of process instances of at least two different processes. Each node represents a process step of a process instance. A unique relation identifier represents a signal between a start node that forms part of a process instance of a first process and a end node that forms part of a process instance of a second process, in particular the output of the start node provided to the end node. The data structure further includes a fourth attribute that stores a sequence of process steps within a process instance, such that the data structure forms an extended process protocol.

[0038] In reality, process networks are ubiquitous, but traditional storage of process data lacks interaction between instances of different processes. Therefore, extending process protocols with attributes that store input and output edges has the advantage of being able to connect linear sequences of process instances non-linearly to form a (process) graph.

[0039] As outlined above for general networks, the properties (i.e., structure / schema) of the graph representing a process network may be unknown at the time the graph is stored in memory. Instead, the raw data generated by the executed process instances is stored in a data structure, and unique relation identifiers (represented by their respective input and output edges) are constructed from this raw data to represent the interactions between the entities in the network. The (process) graph can be efficiently generated from the data structure and subsequently analyzed. Furthermore, the (process) graph can also be efficiently fitted, that is, simply by creating, updating, and / or deleting records within the data structure.

[0040] In this embodiment, several combinations of first attributes include a case attribute that stores a unique identifier for the process instance of an individual process step, and an activity attribute that stores an identifier for the individual process step.

[0041] Preferably, the data structure is stored exclusively in the volatile memory of the storage device.

[0042] Furthermore, a method for controlling the flow within the network is provided, the network is represented by a graph, and the graph is stored according to the present invention. [Brief explanation of the drawing]

[0043] Details and features of the present invention, as well as specific embodiments of the present invention, can be derived from the following description relating to the drawings.

[0044] [Figure 1] Figure 1 is a visualization of directed edges in a graph representing a network, where the graph is stored according to an embodiment of the present invention. [Figure 2] Figure 2 shows a graph visualization representing a basic production network in which a product is produced from two parts. [Figure 3] Figure 3 shows a graph visualization representing the production network used to produce one product for another. [Figure 4] Figure 4 shows a visualization of a graph representing a basic delivery network. [Figure 5] Figure 5 shows a graph visualization representing an example of a combined production and distribution network. [Figure 6] Figure 6 is a flowchart of a method for storing a graph representing a network according to an embodiment of the present invention. [Figure 7] Figure 7 shows a visualization of a graph representing a process network. [Figure 8]Figure 8 is a sequence diagram of a graph representing a process network, wherein the graph is stored according to an embodiment of the present invention. [Figure 9] Figure 9 is a flowchart of an embodiment of a method for filtering a graph stored in a first data structure. [Figure 10] Figure 10 is a flowchart of step B of the embodiment of the method shown in Figure 9. [Modes for carrying out the invention]

[0045] Networks are used across industries to efficiently organize and communicate information. Analyzing the information contained within a network requires a technical representation of the network, allowing it to be stored in memory and evaluated, for example, by repeatedly performing calculations on it.

[0046] Typically, a graph serves as a technical representation of a network. Each edge in a graph connects or links the start and end nodes. Nodes are technical representations of entities in a network, while edges are technical representations of relationships between two entities in the network.

[0047] At a technical level, a directed network can be represented by a directed graph. A directed graph contains multiple nodes and multiple directed edges, where a directed edge refers to one of two nodes to which the directed edge is connected.

[0048] A directed edge between a start node and an end node can represent a relationship between the start and end nodes, a relationship characterized by direction, such as a signal emitted from the start node and received by the end node. Thus, multiple linked directed edges in a (directed) graph can represent a signal path across the network, where the signal links one entity in the network to another.

[0049] Figure 1 shows a visualization of directed edges in a graph representing a network, and the graph is stored according to an embodiment of the present invention.

[0050] The directed edges 15;25 shown in Figure 1 connect the starting node 10 to the ending node 20, and the edges 15;25 are directed from the starting node 10 to the ending node 20. In Graph 1, which represents a supply chain network, for example, the starting node 10 can represent a combination of raw materials / parts and facilities, and the ending node 20 can represent a combination of intermediate parts / products and facilities. In Graph 1, which represents a process network, for example, the starting node 10 can represent a process step of a first process instance, and the ending node 20 can represent a process step of a second process instance.

[0051] A directed edge 15;25 consists of an output edge 15 connected to the start node 10 and an input edge 15 connected to the end node 20. A unique relationship identifier 30 is assigned to both the output edge 15 and the input edge 25. As in Figure 1, a directed edge 15;25 is formed when the unique relationship identifier of the output edge 15 exactly matches the unique relationship identifier of the input edge 25. In this way, the unique relationship identifier functions as a means of connection to form a pair between the start node 10 and the end node 20.

[0052] The unique relationship identifier 30 includes data that characterizes the relationship between two entities, particularly signals that link two entities in a network. In a supply chain network, for example, the unique relationship identifier 30 may include a bill of materials (BOM) identifier, an alternative bill of materials (alternative BOM) identifier, and a facility identifier. To map the planned delivery of materials onto the supply chain network, the unique relationship identifier 30 may include a receiving facility identifier and a material identifier. In one embodiment where Graph 1 represents a process network, the unique relationship identifier 30 may include identifiers associated with business documents such as serial numbers and / or reference numbers such as orders, invoices, and returns.

[0053] The technical function of the unique relationship identifier 30 is to establish both intra-organizational and inter-organizational links / connections between entities within the network. Therefore, in one embodiment where Graph 1 represents a production network, the facility identifier is an important parameter of the unique relationship identifier 30, as it ensures that SKUs are correctly connected within a single facility. In one embodiment where Graph 1 represents a planned distribution network, the receiving facility identifier is an important parameter of the unique relationship identifier 30, as it ensures that SKUs from different facilities / factories are correctly connected, i.e., according to the underlying distribution schedule (BOD). In one embodiment where Graph 1 represents a manufacturing process network, the serial number is an important parameter of the unique relationship identifier 30, as it ensures that the flow of materials and / or parts in the manufacturing process is correctly established, for example, between process steps of different process instances throughout the entire manufacturing process. Similarly, in one embodiment where Graph 1 represents a business process network, identifiers typically associated with business documents are important parameters for the unique relationship identifier 30. In one embodiment, Graph 1 can represent any combination of supply chain networks, distribution networks, and process networks.

[0054] According to the present invention, the directed edges 15;25 shown in Figure 1 emerge from recording the start node 10 and the end node 20 in a data structure along with the corresponding unique relation identifier 30. This data structure is later referred to as the first data structure.

[0055] In one embodiment, the data structure is a (relational) data table, where the start node 10 and the end node 20 are recorded in two rows of the data table. The data table is later referred to as the signal link table. Table 1 shows the minimum data set required to store the start node 10 and the end node 20 of Figure 1 in the signal link table. TIFF0007843374000001.tif21142

[0056] Each record in the data structure of Table 1 contains at least a combination of several first attributes that store node identifiers, a combination of several second attributes that store input edge identifiers, and a combination of several third attributes that store output edge identifiers. In Table 1, the number of first attributes is 1, i.e., there is one first attribute labeled "Node". Similarly, the number of second attributes and third attributes is 1. In this minimal example, nodes are identified by "A" and "B". In other examples, several first attributes that qualify to identify nodes in the graph may need to be combined to uniquely refer to nodes in the graph.

[0057] The second attribute in Table 1 is labeled "Signal_In". The second attribute records the unique relation identifier of the input edge 25 connected to the terminal node 20 of the same record. An input edge connected to a node is a directed edge whose destination is that node. In the example in Figure 1, the terminal node 20 is the destination of the input edge 25 having the unique relation identifier "XYZ".

[0058] The third attribute in Table 1 is labeled "Signal_Out". The third attribute stores the unique relation identifier of the output edge 15 connected to the starting node 10 of the same record. An output edge connected to a node is a directed edge whose origin is the connected node. In the example in Figure 1, the origin of the output edge 15 with the unique relation identifier "XYZ" is the starting node 10.

[0059] Therefore, since the value of the "Signal_In" attribute in the second row of the signal link table matches the value of the "Signal_Out" attribute in the first row of the signal link table, the directed edge 15;25 is formed by the output edge 15 connected to the start node 10 and the input edge 25 connected to the end node 20. In this way, the graph stored in the data structure can be established and prepared / provided for analysis.

[0060] A composite unique relationship identifier 30 based on multiple second and / or third attributes enables the generation of different graphs from the same data structure, and these graphs differ, particularly in the directed edges between two nodes. That is, insights into various relationships between two entities in the network can be efficiently obtained.

[0061] In one embodiment, the directed edges 15;25 shown in Figure 1 can represent relationships in a process network. Table 2 shows an example of a data structure required to store the start node 10 and end node 20 such that the directed edges 15;25 appear, and these directed edges 15;25 represent relationships in a process network. TIFF0007843374000002.tif21152

[0062] In this example, the number of first attributes is 2. The combination of first attributes is created from the "Case ID" attribute, which stores the process instance, and the "Activity" attribute, which stores the process steps associated with the process instance. Thus, the starting node 10 is identified by "1A" and the ending node 20 is identified by "2B".

[0063] In the example in Table 2, each node 15;25 represents a process step of two different interconnected process instances. The second and third attributes of the data structure shown in Table 2 correspond to the second and third attributes of the data structure presented in Table 1. Table 2 further includes a fourth attribute, represented by the attribute "timestamp" in Table 1, which stores the sequence of process steps within the process instance.

[0064] A process protocol is known that includes the attributes "Case ID", "Activity", and "Timestamp". According to embodiments of the present invention, the process protocol is extended by a second attribute "Signal_In" and a third attribute "Signal_Out", which provide information about which process step is connected to another process step so that the process graph emerges from the process protocol.

[0065] Figure 2 shows a graphical visualization of a basic production network in which a product is produced from two parts.

[0066] In the following, the appearance of Graph 1 shown in Figure 2 from the data structure according to embodiments of the present invention is derived from a raw data table containing information about SKUs, i.e., combinations of facilities and materials in the supply chain network.

[0067] In this example, the data structure in which Graph 1 in Figure 2 will be stored will contain records created from two raw data tables (Tables 3 and 4, shown below). TIFF0007843374000003.tif16142TIFF0007843374000004.tif21169

[0068] Table 3 links the Bill of Materials (BOM) to the Stock Unit (SKU). To achieve this, Table 3 lists products or semi-finished products along with their BOM identifiers and their alternative BOM identifiers. Thus, the SKUs in Table 3 are technically represented by terminal node 20.

[0069] Table 4 contains information about individual BOMs and their components. That is, Table 4 links the BOMs (and associated alternative BOMs) to the SKUs on which the products are manufactured. Therefore, the SKUs in Table 4 are technically represented by the starting node 10. Note that the counter attributes in Table 4 are introduced to create the primary key.

[0070] In embodiments of the present invention, the unique relationship identifier 30 is created according to a predetermined rule, for example, a combination of facility identifiers, BOM identifiers, and alternative BOM identifiers for each node 10;20 in Tables 3 and 4, particularly concatenation. The nodes in Tables 3 and 4 are recorded in a data structure, and the individual node identifiers are recorded in the first attribute of the data structure. For each node, the created unique relationship identifier 30 associated with the individual node is recorded in the third or second attribute, depending on whether the individual node is the starting node 10 or the ending node 20. The resulting signal link table is shown in Table 5 below. TIFF0007843374000005.tif28146

[0071] A node identifier is a combination of a material identifier and a facility identifier. The resulting attribute is labeled "case key." In the "case key" attribute, the material identifier, e.g., "P_123," is combined with the facility identifier, e.g., "100."

[0072] The unique relationship identifiers 30 of the input edge 25 and output edge 15 connected to nodes 10 and 20 in the graph of Figure 2 include the facility identifier (underlined in Table 5), the BOM identifier, and the alternate BOM identifier (double underlined in Table 5), respectively, as shown in Table 3 and Table 4.

[0073] Graph 1, visualized in Figure 2, may be the output of a graph visualization device, where the data structure according to Table 5 is provided to display a graph representing the production network.

[0074] The basic example in Figure 2 illustrates the technical advantages of the method for storing graph 1 according to the present invention over conventional approaches. While the raw data tables, i.e., Tables 3 and 4, essentially contain data about the entities of the network, conventional approaches require further information (e.g., structural and / or schema information) about how the entities are connected within the network in order to first create a graph representing the network and then store it. In particular, connections are conventionally established by joining related tables in a database. In the example in Figure 2, there are only two raw data tables, but in reality, there could be hundreds, if not thousands, of data tables representing the entities of the network. Therefore, using the method according to the present invention for storing graphs has the technical advantage of eliminating the need for complex join operations. Nodes 10;20 of graph 1 can be stored independently, i.e., without knowledge of their neighbors, in data structures that precisely map to the underlying graph structure. In particular, all terminal nodes 20 are recorded along with the input edges 25 to which they are connected, and all starting nodes 10 are recorded along with the output edges 15 to which they are connected. As a result, Graph 1 can be easily retrieved from the data structure without requiring complex operations such as joining tables in the database when visualization and / or analysis are needed.

[0075] The basic example in Figure 2 also demonstrates the memory efficiency of graph 1 according to the present invention. The graph in Figure 2 contains only two directed edges 15;25. However, each directed edge includes an input edge 25 to node "P_123-100", and therefore it is redundant. However, the method according to the present invention automatically removes redundant data such as duplicate records of combinations of nodes 10;20 and input edge 25 or output edge 15. Thus, the three records in Table 5 precisely correspond to the three combinations of nodes 10;20 and output / input edges 15;25 shown in Figure 2.

[0076] Figure 3 shows a graphical visualization of the production network used to produce one product for another.

[0077] Graph 1 shown in Figure 3 can be considered an extension of the example in Figure 2. Product "P_123," produced from two components "C_123" and "C_456," is further used to produce product "P_456." Thus, product "P_123" is connected to both one input edge 25 and one output edge 15. An example of a data structure in which Graph 1 shown in Figure 3 appears is given in Table 6. TIFF0007843374000006.tif54145

[0078] Table 6 contains five records, namely, exactly one record for every combination of nodes 10;20 having either an input edge 25 or an output edge 15. Thus, there is one record of node "P_123-100" as a terminal node with a first unique relation identifier stored in the second attribute, and one record of node "P_123-100" as a starting node with a second unique relation identifier stored in the third attribute. In this example, the first and second unique relation identifiers are simply represented by the identifiers (IDs) that constitute them.

[0079] Using the method according to the present invention, a BOM defining a production network that can be represented by Graph 1 can be stored in a dedicated data structure. The data structure can fully map Graph 1 onto a storage device in a computationally efficient and robust manner (for example, by avoiding complex join operations), and can connect nodes to other nodes, thereby connecting SKUs of the production network to other SKUs, both of which can function as inputs or outputs of production.

[0080] Figure 4 shows a graph visualization representing a basic delivery network.

[0081] Graph 1 shown in Figure 4 is very similar to Graph 1 shown in Figure 2, but Graph 1 in Figure 4 represents the distribution network, while Graph 1 in Figure 2 represents the production network. To establish connections in the distribution network, a unique relationship identifier 30 is created from a combination, particularly a concatenation, of the receiving facility identifier and the material identifier.

[0082] Graph 1, shown in Figure 4, illustrates an example where product "P_456" from facility "200" is procured externally, i.e., supplied from facilities "100" and "200". Therefore, node "P_456-200" is connected to nodes "P_456-100" and "P_456-400" via two directed edges. The data structure that allows for the reconstruction of Graph 1 is shown in Table 7. TIFF0007843374000007.tif25143

[0083] Figure 5 shows a graphical visualization of an example of a combined production and distribution network.

[0084] Graph 1 in Figure 5 is an extension of Table 6 using Table 7, and vice versa. This example demonstrates, in particular, that the extension / adaptation of graphs stored using the storage device according to embodiments of the present invention is computationally very efficient. In conventional approaches to storing graphs, the schema for creating the graph from raw data must be adapted to compute the neighborhood of each node, and the neighborhood compute involves joining multiple raw data tables.

[0085] According to an embodiment of the present invention, the graph in Figure 5 can be stored in Table 8, which is presented below. TIFF0007843374000008.tif79156

[0086] Graph 1, which appears in Table 8, represents a combined production and inter-organizational distribution network. The context of the (sub)network represented by Graph 1, stored according to embodiments of the present invention, can be easily switched by toggling predetermined rules to construct / create unique relation identifiers 30 assigned to input edges 25 and / or output edges 15. Thus, BOM connection logic can be easily merged with BOD connection logic.

[0087] Graph 1, as shown in Figure 5, provides an iterative connection of SKUs across the supply chain network, enabling an organization to identify the impact within the network caused by a problem occurring at any given SKU in the supply chain network. For example, if a purchase order for component "C_123" is executed late at facility "100", this affects facility "100's" capacity to produce product "P_123". Consequently, this delayed purchase order may then disrupt the supply of product "P_123" from facility "100" to facility "200".

[0088] Depending on the data sources available within the organization, this exact same approach to storing Graph 1 according to the present invention can be used to include even more nodes in the graph, such as nodes representing supply data from a supplier ERP system or customer demand from a customer ERP system.

[0089] Figure 6 shows a flowchart of a method for storing a graph representing a network according to an embodiment of the present invention.

[0090] According to embodiments of the present invention, a method for storing a graph in a memory device follows steps A to D, as outlined below, and includes an optional step E.

[0091] In step A, a data structure containing the first attribute, the second attribute, and the third attribute is initialized.

[0092] In step B, a node identifier is created for each node in the graph.

[0093] In step C, for each node in the graph, a unique relationship identifier 30 is created for the input edge 25 and / or output edge 15 to which the node is connected.

[0094] In step D, the node identifier is recorded in the first attribute of the data structure, and the individual unique relationship identifier 30 is recorded in the second or third attribute.

[0095] Optionally, in step E, the data structure is provided to the graph visualization device in order to display the network represented by the graph.

[0096] Figure 7 shows a visualization of the process network in a graph.

[0097] As explained with respect to Figure 1, in one embodiment of the present invention, Graph 1, which emerges from the data structure, can represent a process network. A single process instance consists of a linear sequence of activities or process steps, but process steps of different process instances can be connected by signals to form a process network. Signals mark direct transmissions from one process instance or case to another process instance or case. Signals can represent, for example, goods created by one process and consumed by another process, or telephone calls arising as a new process. In general, a signal is an output from an instance of a first process that becomes an input to an instance of a second process. In a process network, a signal can be generated by one or more activities and consumed by one or more activities. Technically, a signal is represented by a unique relation identifier 30.

[0098] To describe a linear sequence of activities in a process instance, the data structure according to an embodiment of the present invention is extended by a fourth attribute. The fourth attribute stores a sequence of process steps within the process instance.

[0099] Examples of data structures in which Graph 1, visualized in Figure 7, appears are shown in Table 9 below. TIFF0007843374000009.tif38153

[0100] The data structure in Table 9 is similar to the extended process protocol. The classic process protocol, which includes the "Case ID," "Activity," and "Timestamp" attributes, is extended with "Signal_In" and "Signal_Out" attributes to record the output edge 15 and input edge 25 to represent the interaction between process instances of different processes in the process network.

[0101] In this example, three process instances or cases are shown, each resulting from the execution of a different process. In case "Case 1," which has ID "1," screws are produced, which are then used to produce chairs in "Case 2," and sold directly to customers in "Case 3." Based on the data in Table 9, a process graph 1 visualized in Figure 7 can be generated, and calculations can be performed on the directed edges 15;25 of process graph 1.

[0102] According to embodiments of the present invention, a signal can also connect cases across multiple extended process protocols. The signal is identified by a unique relation identifier 30, independently of the extended process protocol.

[0103] Graph 1, shown in Figure 7, includes two types of links between activities. The first type of activity relates only to the case or process instance in which it forms part. The second type of activity, connected by direct edges 15;25 represented by double-line errors, is connected by a signal having a unique relationship identifier "10" between two different cases. These records belonging to the first type of activity are stored in the signal link table shown in Table 9 without assigning any unique relationship identifiers to the second and third attributes. Records belonging to the second type of activity store either the start node 10 or the end node 20. Therefore, the unique relationship identifier 30 is recorded in the third or second attribute of the corresponding record in the signal link table. In this example, the value "10" for the unique relationship identifier 30 is given by the serial number of the screw.

[0104] The signal link table records may include several additional attributes that store data characterizing individual input edges (25) and / or output edges (15). These additional attributes can be accessed during subsequent extraction and / or analysis steps so that arbitrary (directed) edge KPIs can be defined and evaluated.

[0105] In Figure 7, the sequential values ​​(timestamps) stored in the fourth attribute of the data structure shown in Table 9 are visualized on the horizontal axis. Thus, activities of the same process instance or case are aligned on the horizontal axis so that they are executed in a linear sequence. Interactions between process instances of different processes, formed by the matching of the unique relation identifier 30 assigned to the output edge 15 of the start node 10 and the unique relation identifier 30 assigned to the input edge 25 of the end node 20, are visualized by double-line arrows.

[0106] Similar to the case in Figure 5, Graph 1 in Figure 7 allows an organization to identify the impact within the process network caused by a problem occurring in any activity within the process network. For example, if a screw is registered late in the warehouse in activity "B" of "Case 1," this will affect whether the chair can be produced in "Case 2" and the screw can be delivered to the customer in a timely manner in "Case 3."

[0107] To fully utilize the information contained in Graph 1 presented in Figure 7, derived from the signal link table and Table 9, the process network, particularly the interactions between activities within the process network, is analyzed. Therefore, the signals are converted into a format that can be processed by a process mining operator. This format could be, for example, a table in a relational database.

[0108] For example, the conversion of a signal link table like the one in Table 9 into a format that allows for the analysis of signals, i.e., directed edges between two nodes in a process graph, can be achieved using the operators "LINK_SOURCE" and "LINK_TARGET". The first operator "LINK_SOURCE" pulls the values ​​of several combinations of first attributes, several combinations of second attributes, and a fourth attribute from the source activity, i.e., the record containing the start node 10, into a second data structure. Similarly, the second operator "LINK_TARGET" pulls several combinations of first attributes, several combinations of third attributes, and a fourth attribute from the target activity, i.e., the record containing the end node 20, into a second data structure. In the second data structure, the values ​​obtained from the first and second operators are merged on a unique relationship identifier 30, meaning that if they belong to the same signal, they are pulled into the same record. If a signal is established between multiple end nodes and start nodes, a cross product of the records is created in the second data structure.

[0109] Furthermore, the "LINK_SOURCE" and "LINK_TARGET" operators can access any attribute of the record containing the start node 10 and / or the end node 20. In particular, they can access further attributes of the record that store data characterizing the individual input edges 25 and / or output edges 15. The operators can retrieve any value stored in the further attributes and assign it to the formed directed edge (15;25). The retrieved values ​​are stored in several further attributes of the second data structure, respectively.

[0110] In the example in Table 9, the resulting second data structure (hereinafter referred to as the edge table) is shown in Table 10. TIFF0007843374000010.tif34170

[0111] Edge tables can be used by all types of process mining operators to gain insights into the interactions between the activities of different processes within a process network (for example, to calculate their throughput times).

[0112] In the edge table, the first attribute stores the node identifier of the starting node 10. The second attribute stores the node identifier of the corresponding ending node 20. The third attribute (not shown in Table 10) stores the unique relationship identifier 30 of the formed directed edges 15;25. Further attributes in Table 10 store the timestamps of the starting node 10 and the ending node 20, respectively. Further attributes may store process performance metrics, such as the time difference between the timestamp attributable to the ending node 20 and the timestamp attributable to the starting node 10.

[0113] The edge table can be calculated as appropriate for the signal link table (Table 8) that stores Graph 1 shown in Figure 5, where Graph 1 represents the supply chain network. In this example, the "LINK_SOURCE" operator pulls records containing the starting nodes "P_456-100", "P_456-400", "P_123-100", "C_123-100", and "C_456-100" into the first attribute of the second data structure. The "LINK_TARGET" operator pulls records containing "P_456-200", "P_456-100", and "P_123-100" into the second attribute of the second data structure. The resulting values ​​are merged on a unique relationship identifier 30 which can be stored in the third attribute of the second data structure.

[0114] Figure 8 shows a sequence diagram of a graph representing a process network, where the graph is stored according to an embodiment of the present invention.

[0115] To efficiently identify problems in a process, a drill-down function, i.e., the ability to examine specific smaller areas of the process network, is required. This drill-down function is enabled by filters that limit the resulting set, such as subgraphs from a process graph or a graph representing the supply chain network, according to predetermined conditions. These filters ultimately also limit the number of records in the edge table, thereby enabling more efficient calculation of specific features (process performance metrics) for the resulting signal records.

[0116] Conventional filtering techniques are insufficient for filtering edge tables for subsequent process mining because they cannot capture the underlying graph structure of the records within the edge table, nor the records in the signal link table from which the edge table is generated.

[0117] Accordingly, in one embodiment, specific filter operators, in particular the "LINK_FILTER" operator and the "LINK_FILTER_ORDERED" operator, are provided. The filter operators restrict the records of a first data structure (signal link table) and / or a second data structure (edge ​​table) that contain signals that are ancestors or descendants of a user-defined set of nodes.

[0118] A set of nodes can be a set of SKUs (supply chain network), a set of activities (process network), or any set of entities (general purpose network). The direction in which the filter operator is applied can be determined via user-defined input parameters.

[0119] The filter operator can generate subgraphs from records stored in a first data structure by traversing the graph originating from the first data structure. An example demonstrating the functionality of the filter operator is provided below. TIFF0007843374000011.tif42143

[0120] Table 11 provides a signal link table containing data ("Case IDs") for four different process instances, each process instance having a set of process steps ("Activities") executed in a given sequence ("Timestamp"). Some of the process steps / activities are interconnected by signals S1, S2, or S3, to which they belong a second attribute ("Signal_In") and a third attribute ("Signal_Out"). Activities "B", "F", and "G", which have values ​​assigned to the second attribute, are represented by the terminal node 20. Activities "A", "D", and "E", which have values ​​assigned to the third attribute, are represented by the start node 10.

[0121] In the sequence diagram of Figure 8, each process instance is represented by a vertical line in which the associated activities are ordered according to their timestamps. The activity represented as the start node 10 and the corresponding activity represented as the end node 20 are connected, respectively, by interactions defined by matching pairs of output edges 15 and input edges 25.

[0122] From the signal link table in Table 11, the edge table shown in Table 12 can be calculated as outlined above. In this example, the start / end node identifiers are given by a combination of "case ID" and "activity," for example, "1A" / "2B" or "2D" / "3F," which are recorded accordingly in the first or second attribute of the corresponding record in the second data structure. The unique relation identifiers 30 of the formed directed edges 15;25 are recorded in the third attribute of the second data structure, which is the "signal" attribute in the example in Table 12. TIFF0007843374000012.tif32170

[0123] In this example, the user-defined initial node 40 is node "A" enclosed by the double line in Figure 8, and is marked as the current member of the subgraph. For example, the user-defined direction of the filter operator is the direction of descendants, i.e., the downstream direction of the network. Node "A" is the starting node 10 connected to the output edge 15 having the unique relation identifier "S1". The input edge 25 matching the unique relation identifier "S1" is connected to the terminal node "B" in case "2". Therefore, node "B" is marked as the current member of the subgraph. Connected to node "B" as part of the same process instance, case "2", are nodes "C" and "D", of which node "D" is connected to the output edge 15 having the unique relation identifier "S2". Therefore, nodes "C" and "D" are marked as members of the subgraph, and node "D" is marked as the current member of the subgraph. The input edge 25 matching the unique relation identifier "S2" is connected to node "F" in case "3". Therefore, node "F" is also marked as a current member of the subgraph. Node "E" is also connected to node "F" as part of the same process instance. Without considering the "Timestamp" attribute, as done by the "LINK_FILTER" operator, node "E" is connected to output edge 15 which has the unique relation identifier "S3", and is therefore inserted into the subgraph and marked as a current member. Input edge 25 which matches the unique relation identifier "S3" is connected to node "G" in case "4". Using the "LINK_FILTER" operator, the resulting subgraph in Figure 8, starting from node "A" in the downstream direction of the network, contains all the nodes shown in the sequence diagram of Figure 8. Therefore, applying the "LINK_FILTER" operator to the first data structure shown in Table 11 selects all three signals "S1", "S2", and "S3" from the edge table shown in Table 12.

[0124] The second operator, "LINK_FILTER_ORDERED," applied to the same signal link table under the same initial conditions, yields a different result because it also takes into account the fourth attribute of the signal link table, namely the "timestamp" attribute. Therefore, node "E" is rejected by the "LINK_FILTER_ORDERED" operator inserted into the subgraph because its associated timestamp is smaller than the timestamp of the corresponding current member of the subgraph, node "F." Thus, the subgraph resulting from the "LINK_FILTER_ORDERED" operator from the first data structure shown in Table 11 contains all the nodes shown in the sequence diagram in Figure 8, except for nodes "E" and "G." As a result, signal "S3," represented by the directed edge between nodes "E" and "G," also does not form part of the subgraph. Therefore, the edge table 12 filtered by the subgraph obtained from the "LINK_FILTER_ORDERED" operator contains only the records for signals "S1" and "S2."

[0125] The subgraph search is performed according to a traversal of graph 1 generated from a first data structure, by initiating the search in a selected direction from at least one selected node according to a predetermined graph traversal protocol. The predetermined graph traversal protocol can be a combination of these, such as a breadth-first search of records, a depth-first search of records, or an iteratively deep depth-first search of records.

[0126] The filter operator can similarly be applied to graphs representing supply chain networks. For example, the graph shown in Figure 5, generated from the signal link table in Table 8, can be filtered using the "LINK_FILTER" operator to find all suppliers of product "P_456" at facility "100" represented by node "P_456-100". In this example, the selected direction is the upstream direction of the network, and the selected initial node is node "P_456-100". The resulting subgraph obtained by "LINK_FILTER" includes nodes "P_456-100", "P_123-100", "P_123-100", and "C_456-100".

[0127] Furthermore, the extracted subgraph nodes 40;10;20 can be aggregated based on their lower hierarchical levels, and the resulting directed edges 15;25 are aggregated accordingly, resulting in an aggregated subgraph.

[0128] For example, in the example discussed above, the lower hierarchical level could be a combination of machine / facility and the material on which the process step was performed. To analyze the transfer time between process steps of different process instances, the extracted subgraphs can be mapped to graphs where nodes represent lower hierarchical levels, such as combinations of facility and material. As a result, further process performance indicators, such as the average time between process instances, become accessible.

[0129] Figure 9 shows a flowchart illustrating a method for filtering the first data structure in which a graph representing the network appears.

[0130] The embodiment represented by the flowchart in Figure 9 is applicable to data recorded in a first data structure, which may represent any type of network, in particular entities in a supply chain network or process steps in a process network.

[0131] In step A, at least one initial node 40 of the first data structure and the direction in which the filter is applied are selected.

[0132] In step B, in the first data structure, a subgraph containing all nodes 10;20 connected to at least one initial node 40 in the selected direction is discovered using a predetermined graph traversal protocol.

[0133] In step C, the subgraph obtained from step B is extracted, and the second data structure is filtered based on the directed edges of the extracted subgraph.

[0134] In an optional step D, a filtered second data structure containing interactions between different entities within the network is provided to the process mining system to analyze network effects, such as process performance indicators in the case of a process network.

[0135] Figure 10 shows an embodiment of the drill-down function for step B of the embodiment shown in Figure 9.

[0136] According to a predetermined graph traversal protocol, a link between two nodes is established by matching the value of the second attribute of the second record in the first data structure with the value of the third attribute of the first record in the first data structure. For each of the at least one record containing nodes that form a directed edge along the selected direction with the current members of the subgraph, if a match is found, the record can be directly marked as a member of the subgraph in the case of the "LINK_FILTER" operator. This option is shown by a dashed line in Figure 10.

[0137] However, in the case of the "LINK_FILTER_ORDERED" operator, the record must pass a test before being marked as a member of the subgraph. The test checks whether the ordinal value of the fourth attribute of the discovered record is greater than the ordinal value of the fourth attribute of the current member of the subgraph. For a positive test result, the record is marked as a member of the subgraph. For a negative test result, the record is skipped. If no further records are found, the subgraph is complete and can be extracted in the subsequent step C.

[0138] In summary, the main advantages of the present invention are provided by a predetermined procedure for recording a first data structure with data describing an interacting network, such as a data structure, a supply chain network, or a process network, where the interaction is recorded in the data structure without prior knowledge of the required network structure. From the data structure, a graph representing the network can be generated and then analyzed, in particular, using drill-down and / or aggregation functions to access insights into the network effects in detail.

Claims

1. A method that a computer can perform to store graph (1) in a memory device, The graph (1) includes multiple nodes (10; 20) and multiple directed edges (15; 25), Each directed edge (15;25) connects a start node (10) and a end node (20), and each directed edge (15;25) consists of an input edge (25) connected to the end node (20) and an output edge (15) connected to the start node (10). The graph (1) above represents a network, Each node (10; 20) represents an entity in the aforementioned network, Each directed edge (15;25) represents a relationship between two entities, and the method is as follows: The method involves recording each start node (10) in a first record of the data structure stored using the storage device, and recording each end node (20) in a second record of the data structure, Each record is at least One or more first attributes in which the node identifier is stored, One or more second attributes in which the identifier of the input edge is stored, Recording includes one or more third attributes in which the identifier of the output edge is stored, The first record stores the identifier of the start node (10) in one or more of the first attributes and the unique relationship identifier (30) in one or more of the third attributes, wherein the unique relationship identifier (30) represents a step along the path in the network. The second record includes storing the identifier of the terminal node (20) in one or more of the first attributes and the unique relationship identifier (30) in one or more of the second attributes, The values ​​of one or more second attributes of the second record that match the values ​​of one or more third attributes of the first record define the directed edge (15; 25) between the start node (10) and the end node (20). The method wherein the network is a supply chain network, the entities are combinations of materials and facilities, and the relationship between the two entities is established by using a bill of materials and / or a delivery schedule.

2. The method according to claim 1, further comprising determining the directed edges (15; 25) between the start node (10) and the end node (20) by matching the values ​​of one or more of the second attributes of the second record with the values ​​of one or more of the third attributes of the first record in order to generate the graph (1).

3. The method according to claim 1 or claim 2, further comprising providing the data structure to a graph visualization device for displaying the network.

4. The method according to claim 1, wherein the data structure is a table, and the table is associated with a data model.

5. The method according to claim 1, wherein the unique relationship identifier (30) includes data that characterizes the relationship between the two entities.

6. The method according to claim 1, wherein the identifier of the node includes a case key.

7. The method according to claim 6, wherein the case key is a combination of a material identifier and a facility identifier.

8. At least one node (15; 25) is both the terminal node (20) connected to at least one input edge (25) and the start node (10) connected to at least one output edge (15), and the method further includes recording each node (10; 20) of the at least one node in at least one record. The method according to claim 1, wherein in each record of the at least one record, the identifier of each node (10; 20) is assigned to one or more of the first attributes, the first unique relation identifier of one input edge (25) is assigned to one or more of the second attributes, and the second unique relation identifier of one output edge (15) is assigned to one or more of the third attributes.

9. The method according to claim 8, wherein in each record of the at least one record, the first unique relation identifier of one input edge (25) is assigned to one or more of the second attributes, or the second unique relation identifier of one output edge (15) is assigned to one or more of the third attributes.

10. The method according to claim 1, wherein the number of first attributes in one or more of the first attributes is 1, and / or the number of second attributes in one or more of the second attributes is 1, and / or the number of third attributes in one or more of the third attributes is 1.

11. The method according to claim 1, wherein the network is a process network comprising two or more process instances of different processes and interactions between process steps of process instances of at least two different processes, each node (10; 20) representing a process step of a process instance, the unique relation identifier (30) representing a signal between the start node (10) which forms part of a process instance of a first process and the end node (20) which forms part of a process instance of a second process, and the data structure further comprises a fourth attribute which stores a sequence of process steps within a process instance such that the data structure forms an extended process protocol.

12. The method according to claim 11, wherein one or more of the first attributes include a case attribute that stores a unique identifier of the process instance of an individual process step and an activity attribute that stores an identifier of the individual process step.

13. The method according to claim 1, wherein the data structure is exclusively stored in the volatile memory of the storage device.

14. A method for controlling a flow within a network, wherein the network is represented by a graph (1), and the graph (1) is stored according to the method of claim 1.

Citation Information

Patent Citations

  • Remote communication route setting

    JP2003505928A

  • Software asset utilization device, software asset utilization method, and program

    JP2014149683A

  • Method, computer program, and system for detecting inconsistency originating in mismatch between incoming flow and outgoing flow of resource

    JP2018018512A

  • Program and method for determining process execution order

    JP2021163489A

  • Storing graph data in a relational database

    US20160342709A1