Method for storing and reconstructing graphs

The method addresses the inefficiencies of conventional graph storage by recording nodes and edges in a data structure without prior adjacency knowledge, using unique relationship identifiers, resulting in efficient, robust, and flexible graph storage and analysis.

JP2025508260AActive Publication Date: 2025-03-21セロニス ソシエタス ヨーロッパ
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024571263
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-02-23
Filing Date
2023-02-16
Publication Date
2025-03-21
Estimated Expiration
2043-02-16

AI Technical Summary

Technical Problem

Conventional methods for storing graphs representing modern networks, such as supply chain and process networks, are inefficient and prone to errors due to the need for manual connections and complex join operations, leading to inaccurate reconstructions and analysis.

Method used

A computer-implemented method for storing graphs in a storage device, where each node and edge is recorded in a data structure without prior knowledge of node adjacencies, using unique relationship identifiers to represent interactions between entities, allowing flexible manipulation and efficient storage of graphs.

Benefits of technology

This method enables efficient and robust storage of graphs, reducing data redundancy and eliminating the need for complex join operations, allowing for flexible adaptation to changing network data and enabling accurate analysis and visualization of network structures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025508260000001_ABST
    Figure 2025508260000001_ABST
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 memory device. [Background technology]

[0002] Networks, especially directed networks, encode the flow of a system parameter along multiple entities. One example of a network is a supply chain network, where the system parameter can be a material or a planned delivery, or a combination thereof. Another example of a network is a process network, where the system parameter can be an output of a process step, such as a material or a business document, or any combination thereof.

[0003] In a supply chain network, it is important to understand how materials and / or goods flow and / or how materials are planned to be delivered. Material flows and / or planned deliveries in a supply chain network facilitate various use cases, such as estimating which finished products may be affected by raw material shortages, or calculating the carbon footprint of a product based on its parts, each part, etc. These networks can include any number of facilities and material combinations, hereafter referred to as a stock keeping unit (SKU).

[0004] In a typical scenario of a supply chain network, several SKUs are involved in multiple layers representing different stages in the production and distribution of goods. In fact, both production and distribution are often spread across multiple manufacturers. The layers of SKUs can range from raw materials across partially produced products to the finished goods themselves. Due to the various layers between raw materials and finished goods, there are usually many SKUs across the supply chain network.

[0005] Similarly, a single process, such as a business process (e.g. an order process) or a technical manufacturing process (e.g. a process executed on a SKU in a supply chain network), is in fact often part of a (larger) process network. Thereby, the process is executed in or with a computer system and may include several process steps. An execution of a process is called a process instance. Each process step can create data during its execution, which is stored in or with the computer system on which the process is executed.

[0006] It is known to store process instances together with their process steps in a process protocol, from which classical process mining techniques can be used to efficiently analyze a single process instance. However, in a realistic scenario, instances of different processes are unlikely to be isolated from each other. Rather, they are 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 do not only run a set of independent sequential processes, but rather contain many processes that interact with each other and with the processes of other organizations.

[0007] Technically, a network, such as a supply chain network or a process network, can be represented using a graph, which typically consists of nodes and edges, where the nodes can represent the entities of the individual networks and the edges can represent the interactions between the entities within the individual networks.

[0008] In practice, nodes (entities) are usually stored decoupled: for example, in a supply chain network, SKUs are usually organized in different (relational) data tables, while in a process network, single processes are stored independently of each other in the process protocol.

[0009] In reality, the landscape of interconnected SKUs and / or interconnected processes in modern networks is constantly changing. Thus, traditional approaches that either manually connect one SKU to another SKU (e.g., via joining tables in a relational database) or manually connect one process instance to another process instance are highly inefficient and error-prone. As such, conventional approaches to storing graphs representing modern networks, particularly supply chain networks and / or process networks, may directly result in inaccurate reconstruction and subsequent analysis of such networks.

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

[0011] It is therefore an object of the present invention to provide a method for storing a graph representing a network in a storage device in an efficient manner, allowing flexible manipulation of the components of the graph, i.e. its nodes and / or edges.

[0012] According to the invention, this object is solved by the methods defined in the independent claims. Preferred embodiments and further developments of the invention are defined in the dependent claims.

[0013] Thus, there is provided a computer-implemented method for storing a graph in a storage device, the graph including a plurality of nodes and a plurality of directed edges, each directed edge connecting a start node and a terminal node, each directed edge consisting of an incoming edge connected to the terminal node and an outgoing edge connected to the start node.

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

[0015] This method is The method includes recording each start node in a first record of a data structure stored using the storage device, and recording each end node in a second record of the data structure, each record including at least: a combination of some first attributes in which an identifier of the node is stored; - a combination of some second attributes in which the identifiers of the input edges are stored; some third attribute combination according to which an identifier of the output edge is stored;

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

[0017] The method further includes storing, in a second record, an identifier of the terminal node in the combination of the number of first attributes and a unique relationship identifier in the combination of the number of second attributes.

[0018] The combined values ​​of some of the second attributes of the second record that match the combined values ​​of some of the third attributes of the first record define a directed edge between the start node and the terminal node.

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

[0020] The method according to the invention has the technical advantage that a graph representing a network can be stored in a storage device without a priori knowledge of which nodes are adjacent to which nodes, i.e., the neighborhood of the nodes. The data structure can be recorded with the nodes from different individual raw data sources according to a predefined rule for creating unique relationship identifiers that are assigned to the incoming or outgoing edges to which the nodes are connected. At the time of recording the data structure, the directed edges of the graph are not yet defined. The directed edges and the graph with the directed edges themselves emerge only from the recorded data structure, i.e., from finding identical unique relationship identifiers assigned to combinations of some second attributes of the second records and combinations of some third attributes of the first records. A further technical advantage is that the predecessor-successor relationships of the nodes (i.e. between the nodes) do not need to be explicitly stored, thereby significantly reducing the amount of data.

[0021] Conventionally, the graph is first determined, i.e. its structure is known and fixed accordingly, after which the graph can be stored in a storage device. In contrast, according to the present invention, only data describing the entities in the network are recorded in a data structure, without knowledge of the relationships in the network. A graph representing the network is finally obtained from the data structure.

[0022] Thus, the storage of graphs according to the invention is very flexible. The structure and schema of the graph does not need to be pre-determined. Moreover, the storage of graphs according to the invention is very efficient and robust, since the graph data, which typically results in multiple raw data tables, can be recorded in the data structure without the need for any join operations. To record the data structure, it is only necessary to know which nodes are start and / or terminal 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 invention allows efficient storage of graphs that are always adapted to the (rapidly) changing raw data.

[0024] For each unique relationship identifier stored in the data structure, the graph stored in the data structure is obtained by matching the values ​​of a combination of several second attributes of the second record with the values ​​of a combination of several third attributes of the first record. In practice, more than one graph may be obtained from the data structure after processing the matching step for each unique relationship identifier recorded in the data structure.

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

[0026] To display the network, a graph can be read from the data structure, and a directed edge between a start node and an end node is formed by matching a second attribute of the second record and a third attribute of the first record against a unique relationship identifier.

[0027] In one embodiment, the data structure is a table, in particular a relational data table, which 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, specifically stock keeping units (SKUs). The relationship between two entities in the supply chain network is established through the use of a bill of materials and / or a bill of distributions.

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

[0030] The unique relationship identifiers are constructed from the raw data according to predefined rules. In the case of production networks, it has proven useful to use a combination, especially a concatenation, of bill of material identifiers, alternate bill of material identifiers and facility identifiers to connect stock-keeping units with each other. In the case of distribution networks, it has proven particularly useful to construct the unique relationship identifiers from a combination, especially a concatenation, of receiving facility identifiers and material identifiers. Depending on the context of the network represented by the stored graph, the unique relationship identifiers 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 may be a combination of a material identifier and a facility identifier.

[0033] In one embodiment, the at least one node is both a terminal node connected to at least one incoming edge and a start node connected to at least one outgoing edge. The 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, an identifier of each node is assigned to a combination of a number of first attributes, a first unique relationship identifier of one incoming edge is assigned to a combination of a number of second attributes, and a second unique relationship identifier of one outgoing edge is assigned to a combination of a number of third attributes.

[0034] Preferably, in each record of the at least one record, either a first unique relationship identifier of an incoming edge is assigned to a combination of several second attributes, or a second unique relationship identifier of an outgoing edge is assigned to a combination of several third attributes.

[0035] The preferred embodiment has the advantage that there is always exactly one incoming or outgoing edge recorded at a node, regardless of the number of directed edges for which the node is the origin or destination, resulting in a reduction in the number of records required to store a graph in accordance with the invention.

[0036] In one embodiment, the number of first attributes in some combinations of first attributes is one, and / or the number of second attributes in some combinations of second attributes is one, and / or the number of third attributes in some combinations of third attributes is one.

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

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

[0039] As outlined above for networks in general, the characteristics (i.e., structure / schema) of a graph representing a process network may not be known at the time the graph is stored in storage. Instead, the raw data generated by executed process instances are stored in a data structure, and unique relationship identifiers (represented by respective incoming and outgoing edges) to represent interactions between entities of the network are worked out from the raw data. (Process) graphs can be efficiently generated from the data structure and subsequently analyzed. Moreover, (Process) graphs can also be adapted efficiently, i.e., by simply creating, updating, and / or deleting records in the data structure.

[0040] In this embodiment, the combination of several first attributes includes a case attribute, in which a unique identifier of a process instance of an individual process step is stored, and an activity attribute, in which an identifier of the individual process step is stored.

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

[0042] Further provided is a method for controlling flow in a network, the network being represented by a graph, the graph being stored in accordance with the invention. [Brief description of the drawings]

[0043] Further details and features of the invention as well as specific embodiments of the invention can be derived from the following description in conjunction with the drawings.

[0044] [Figure 1] FIG. 1 illustrates a visualization of directed edges of a graph representing a network, where the graph has been stored according to an embodiment of the invention. [Diagram 2] FIG. 2 shows a graph visualization representing a basic production network in which a product is produced from two parts. [Diagram 3] FIG. 3 shows a graph visualization that represents a production network in which one product is used to produce another product. [Figure 4] FIG. 4 shows a graph visualization representing a basic distribution network. [Diagram 5] FIG. 5 shows a graph visualization illustrating an example of a combined production and distribution network. [Figure 6] FIG. 6 is a flowchart of a method for storing a graph representing a network according to an embodiment of the present invention. [Figure 7] FIG. 7 shows a graph visualization of a process network. [Figure 8]FIG. 8 is a sequence diagram of a graph representing a process network, the graph being stored in accordance with an embodiment of the present invention. [Figure 9] FIG. 9 is a flow chart of an embodiment of a method for filtering a graph stored in a first data structure. [Figure 10] FIG. 10 is a flow chart of step B of the embodiment of the method of FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0045] Networks are used throughout industry to efficiently organize and communicate information. To analyze the information contained in a network, a technical representation of the network is needed so that the network can be stored in a memory device and evaluated, for example, by performing calculations on the network, often repeatedly.

[0046] A graph usually serves as a technical representation of a network. Each edge of the graph connects or links a start node and a terminal node. A node is a technical representation of an entity of the network, and an edge is a technical representation of a relationship between two entities in the network.

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

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

[0049] FIG. 1 shows a visualization of directed edges of a graph representing a network, the graph being stored according to an embodiment of the present invention.

[0050] 1 connects the start node 10 to the terminal node 20, and the edges 15;25 are directed to point from the start node 10 to the terminal node 20. In the graph 1 representing a supply chain network, for example, the start node 10 can represent a combination of a raw material / part and a facility, and the terminal node 20 can represent a combination of an intermediate part / product and a facility. In the graph 1 representing a process network, for example, the start node 10 can represent a process step of a first process instance, and the terminal node 20 can represent a process step of a second process instance.

[0051] A directed edge 15;25 is composed of an outgoing edge 15 connected to a start node 10 and an incoming edge 15 connected to a terminal node 20. A unique relation identifier 30 is assigned to both the outgoing edge 15 and the incoming edge 25, respectively. A directed edge 15;25 is formed when the unique relation identifier of the outgoing edge 15 exactly matches the unique relation identifier of the incoming edge 25, as in the case of Fig. 1. In this way, the unique relation identifier serves as a connecting means for forming a pair between the start node 10 and the terminal node 20.

[0052] The unique relationship identifier 30 includes data that characterizes a relationship between two entities, in particular a signal that links two entities of a network. In a supply chain network, for example, the unique relationship identifier 30 may include a bill of material (BOM) identifier and an alternate bill of material (alternate BOM) identifier and a facility identifier. To map a planned delivery of a material onto the supply chain network, the unique relationship identifier 30 may include a receiving facility identifier and a material identifier. In one embodiment where the graph 1 represents a process network, the unique relationship identifier 30 may include an identifier associated with a business document, such as a serial number and / or a reference number for an order, invoice, return, etc.

[0053] The technical function of the unique relationship identifier 30 is to establish both intra-organizational and inter-organizational links / connections between entities in the network. Thus, in one embodiment where graph 1 represents a production network, the facility identifier is a key parameter of the unique relationship identifier 30, as it ensures that SKUs are correctly connected within one facility. In one embodiment where graph 1 represents a planned distribution network, the receiving facility identifier is a key parameter of the unique relationship identifier 30, as it ensures that SKUs in different facilities / plants are correctly connected, i.e., according to the underlying bill of delivery (BOD). In one embodiment where graph 1 represents a manufacturing process network, the serial number is a key 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 manufacturing process. Similarly, in one embodiment where graph 1 represents a business process network, identifiers typically associated with business documents are key 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 together with the corresponding unique relationship identifier 30 in a data structure, which will later also be 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 hereafter referred to as the signal link table. The minimum data set required to store the start node 10 and the end node 20 of Figure 1 in the signal link table is shown in Table 1. TIFF2025508260000002.tif21142

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

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

[0058] The third attribute in Table 1 is labeled "Signal_Out." The third attribute stores the unique relationship identifier of the outgoing edge 15 that is connected to the starting node 10 of the same record. An outgoing edge connected to a node is a directed edge that originates at the connected node. In the example of FIG. 1, the origin of the outgoing edge 15 with the unique relationship identifier "XYZ" is the starting node 10.

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

[0060] The composite unique relationship identifier 30 based on multiple second and / or third attributes allows the generation of different graphs from the same data structure, where the graphs differ in particular in the directed edges between two nodes, i.e., insight into various relationships between two entities in the network can be efficiently gained.

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

[0062] In this example, the number of first attributes is 2. The combination of first attributes is made from a "Case ID" attribute, in which the process instance is stored, and an "Activity" attribute, in which the process step associated with the process instance is stored. Thus, the start node 10 is identified by "1A" and the end node 20 is identified by "2B".

[0063] In the example of 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 in which the sequence of process steps within a process instance is stored, represented by the attribute "timestamp" in Table 1.

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

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

[0066] In the following, the emergence of Graph 1 shown in FIG. 2 from a data structure according to an embodiment of the invention is derived from a raw data table containing information about SKUs, i.e. facility and material combinations of the supply chain network.

[0067] In this example, the data structure in which Graph 1 of FIG. 2 will be stored is populated with records created from two raw data tables (Tables 3 and 4, both presented below). TIFF2025508260000004.tif16142TIFF2025508260000005.tif21169

[0068] Table 3 links the bill of materials (BOM) to the SKUs. To accomplish this, Table 3 lists finished or semi-finished products with their BOM identifiers and their alternate BOM identifiers. The SKUs in Table 3 are thus technically represented by end nodes 20.

[0069] Table 4 contains information about individual BOMs and their parts. That is, Table 4 links the BOM (and associated alternate BOMs) to the SKUs for which the product is manufactured. Thus, the SKUs in Table 4 are technically represented by start node 10. Note that the counter attribute in Table 4 is introduced to create a primary key.

[0070] In an embodiment of the present invention, the unique relationship identifier 30 is created according to a predefined rule, for example a combination, in particular a concatenation, of the facility identifier, the BOM identifier and the alternative BOM identifier for each node 10;20 of Tables 3 and 4. The nodes of Tables 3 and 4 are recorded in a data structure, and the respective node identifiers are recorded in a first attribute of the data structure. For each node, the created unique relationship identifier 30 associated with the respective node is recorded in a third attribute or a second attribute depending on whether the respective node is a start node 10 or a terminal node 20. The resulting signal link table is presented below in Table 5. TIFF2025508260000006.tif28146

[0071] The node identifier is a combination of the material identifier and the 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 edges 25 and output edges 15 connected to the nodes 10; 20 of the graph in FIG. 2 include the facility identifier (underlined in Table 5), the BOM identifier, and the alternative BOM identifier (double underlined in Table 5) from Table 3 and from Table 4, respectively.

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

[0074] The basic example of Fig. 2 illustrates the technical advantage of the method of storing a graph 1 according to the 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 in the network in order to first create and then store a graph representing the network. In particular, connections are conventionally established by joining related tables in a database. In the example of Fig. 2, there are only two raw data tables, but in reality there may be hundreds, if not thousands, of data tables representing the entities of the network. Thus, using the method according to the invention for storing a graph has the technical advantage that complex join operations are not required. The nodes 10;20 of the graph 1 can be stored independently, i.e. without knowledge of their neighbourhood, in a data structure that maps exactly to the underlying graph structure. In particular, every terminal node 20 is recorded together with the incoming edges 25 to which it is connected and every starting node 10 is recorded together with the outgoing edges 15 to which it is connected. As a result, the graph 1 can be easily retrieved from the data structure when needed for visualization and / or analysis, without the need for complex operations such as joining tables in a database.

[0075] The basic example of Fig. 2 also illustrates the efficiency of storage of graph 1 according to the invention. The graph of Fig. 2 contains only two directed edges 15;25. However, both directed edges contain an input edge 25 to node "P_123-100", which is therefore duplicated. However, the method according to the invention automatically removes redundant data, such as duplicated records of combinations of nodes 10;20 and input edges 25 or output edges 15. Thus, the three records in Table 5 correspond exactly to the three combinations of nodes 10;20 and output / input edges 15;25 shown in Fig. 2.

[0076] Figure 3 shows a graph visualization representing a production network in which one product is used to produce another product.

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

[0078] Table 6 contains five records, i.e. exactly one record for every combination of nodes 10;20 with incoming edges 25 or outgoing edges 15. Thus, there is one record for node "P_123-100" as an end node with a first unique relationship identifier stored in a second attribute, and one record for node "P_123-100" as a start node with a second unique relationship identifier stored in a third attribute. In this example, the first and second unique relationship identifiers are simply represented by the identifiers (IDs) of which they are composed.

[0079] Using the method according to the 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 completely map Graph 1 onto a storage device in a computationally efficient and robust manner (e.g., 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 act as inputs or outputs of production.

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

[0081] Graph 1 shown in Figure 4 is very similar to graph 1 shown in Figure 2, except that graph 1 in Figure 4 represents a distribution network and graph 1 in Figure 2 represents a 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 is an example of outsourcing product "P_456" of facility "200", i.e., supplied by facility "100" and facility "200". Thus, node "P_456-200" is connected to node "P_456-100" and node "P_456-400" via two directed edges. The data structure that can reconstruct Graph 1 is listed in Table 7. TIFF2025508260000008.tif25143

[0083] FIG. 5 shows a graph visualization representing an example of a combined production and distribution network.

[0084] Graph 1 in Fig. 5 extends Table 6 with Table 7, and vice versa. This example demonstrates in particular that extending / adapting a graph stored using a storage device according to an embodiment of the invention is computationally very efficient. In traditional approaches to storing graphs, the schema for creating the graph from the raw data needs to be adapted to compute the neighborhood of each node, which involves joining multiple raw data tables.

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

[0086] Graph 1 emerging from Table 8 represents a combined production and inter-organizational distribution network. The context of the (sub)network represented by Graph 1 stored according to an embodiment of the invention can be easily switched by switching predefined rules for constructing / creating unique relationship identifiers 30 assigned to incoming edges 25 and / or outgoing edges 15. Thus, the BOM connection logic can be easily merged with the BOD connection logic.

[0087] Graph 1 as shown in FIG. 5 provides recursive connectivity of SKUs across the supply chain network, which allows an organization to identify the impact in the network caused by an issue occurring in any SKU in the supply chain network. For example, if a purchase order is being executed late at facility "100" for component "C_123", this will impact facility "100"'s ability to produce product "P_123". Thus, this purchase order, which is then executed late, may disrupt the supply of product "P_123" from facility "100" to facility "200".

[0088] Depending on the data sources available within an organization, this exact same approach to storing graph 1 according to the present invention can be used to include many 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] FIG. 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 an embodiment of the invention, a method for storing a graph in a storage device follows steps A to D, with an optional step E, as outlined below.

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

[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, create a unique relationship identifier 30 for the incoming edges 25 and / or outgoing edges 15 to which the node is connected.

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

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

[0096] FIG. 7 shows a visualization of a graph representing a process network.

[0097] As explained with respect to FIG. 1, in one embodiment of the present invention, the graph 1 emerging 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. A signal marks a direct transmission from one process instance or case to another. A signal can represent, for example, a commodity produced by one process and consumed by another, or a telephone call that arises 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 born by one or more activities and consumed by one or more activities. Technically, a signal is represented by a unique relationship identifier 30.

[0098] To account for a linear sequence of activities in a process instance, the data structure according to an embodiment of the invention is extended with a fourth attribute, which stores the sequence of process steps within the process instance.

[0099] An example of the data structure in which Graph 1 visualized in FIG. 7 appears is set out in Table 9 below. TIFF2025508260000010.tif38153

[0100] The data structure in Table 9 is similar to the extended process protocol. The classical process protocol, including the “Case ID”, “Activity”, and “Timestamp” attributes, is extended by “Signal_In” and “Signal_Out” attributes to record the outgoing edges 15 and incoming edges 25 to represent the interactions 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" with ID "1", screws are produced which are further used to produce chairs in "Case 2" and sold directly to customers in "Case 3". Based on the data in Table 9, the process graph 1 visualized in Figure 7 can be generated and calculations can be performed on the directed edges 15;25 of the process graph 1.

[0102] According to an embodiment of the present invention, signals can also connect cases across multiple extended process protocols. Signals are identified by a unique relationship identifier 30, regardless of the extended process protocol.

[0103] The graph 1 shown in FIG. 7 contains two types of links between activities. A first type of activity is related only to the case or process instance of which it forms a part. A second type of activity, connected by a direct edge 15;25 represented by a double-line error, is connected by a signal with 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 identifier 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. The unique relationship identifier 30 is therefore recorded in the third or second attribute of the corresponding record in the signal link table. In this example, the value "10" of the unique relationship identifier 30 is given by the serial number of the screw.

[0104] The records of the signal link table may contain several further attributes in which data characterizing the individual incoming edges (25) and / or outgoing edges (15) are stored. The further attributes can be accessed during subsequent extraction and / or analysis steps so that any (directed) edge KPIs can be defined and evaluated.

[0105] In Fig. 7, the order values ​​(timestamps) stored in the fourth attribute of the data structure shown in Table 9 are visualized on the horizontal axis. Activities of the same process instance or case are therefore aligned on the horizontal axis such that they are executed in a linear sequence. Interactions between process instances of different processes, formed by the matching of unique relationship identifiers 30 assigned to the outgoing edges 15 of the start nodes 10 with the incoming edges 25 of the end nodes 20, are visualized by double-lined arrows.

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

[0107] In order to fully exploit the information contained in the signal link table and the graph 1 presented in FIG. 7 emerging from table 9, the process network, and in particular the interactions between the activities in the process network, are analyzed. Thus, the signals are converted into a format that can be processed by a process mining operator. The format can be, for example, a table of a relational database.

[0108] The conversion of a signal link table, for example Table 9, into a format that allows the analysis of signals, i.e. directed edges between two nodes in a process graph, can be realized using the operators "LINK_SOURCE" and "LINK_TARGET". The first operator "LINK_SOURCE" pulls the values ​​of some combinations of first attributes, some combinations of second attributes and some combinations of fourth attributes of the records containing the source activities, i.e. start nodes 10, into a second data structure. Similarly, the second operator "LINK_TARGET" pulls some combinations of first attributes, some combinations of third attributes and some combinations of fourth attributes of the records containing the target activities, i.e. terminal nodes 20, into the 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, which means that if they belong to the same signal, they are pulled into the same record. If a signal is established between multiple terminal nodes and the start node, 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 in which data characterizing the respective incoming edges 25 and / or outgoing edges 15 are stored. The operators can retrieve any value stored in the further attribute and assign it to the formed directed edge (15;25). The retrieved values ​​are stored in some further attributes of the second data structure, respectively.

[0110] For the example of Table 9, the resulting second data structure (hereafter referred to as the edge table) is set forth in Table 10. TIFF2025508260000011.tif34170

[0111] The edge table can be used by all kinds of process mining operators to gain insight into the interactions between the activities of different processes in a process network (e.g., to calculate their throughput times).

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

[0113] The edge table may be appropriately calculated for a signal link table (Table 8) that stores Graph 1 shown in FIG. 5, where Graph 1 represents a supply chain network. In this example, the "LINK_SOURCE" operator pulls records containing start nodes "P_456-100", "P_456-400", "P_123-100", "C_123-100", and "C_456-100" into a 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 a second attribute of the second data structure. The resulting values ​​are merged on a unique relationship identifier 30 that may be stored in a third attribute of the second data structure.

[0114] FIG. 8 illustrates a sequence diagram of a graph representing a process network, the graph being stored in accordance with an embodiment of the present invention.

[0115] To efficiently identify problems in a process, drill-down capabilities are required, i.e. the ability to examine specific smaller areas of the process network. Drill-down capabilities are made possible by filters that restrict the result set, such as a subgraph from a process graph or a graph representing a supply chain network, according to given conditions. These filters ultimately also limit the number of records in the edge table, which allows for more efficient calculation of specific features (process performance measures) for the resulting signal records.

[0116] To filter the edge table for subsequent process mining, traditional filter techniques are not sufficient because they fail to capture the underlying graph structure of the records in the edge table and the records of the signal link table from which the edge table is generated.

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

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

[0119] The filter operator can generate a subgraph from records stored in a first data structure by traversing a graph emerging from the first data structure. Below, an example is provided to demonstrate the functionality of the filter operator. TIFF2025508260000012.tif42143

[0120] Table 11 provides a signal link table containing data ("Case ID") of four different process instances, each 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, as belonging to a second attribute ("Signal_In") and a third attribute ("Signal_Out"). The activities having values ​​assigned to the second attribute, activities "B", "F", and "G", are represented by terminal nodes 20. The activities having values ​​assigned to the third attribute, activities "A", "D", and "E", are represented by start nodes 10.

[0121] In the sequence diagram of Figure 8, each process instance is represented by a vertical line with related activities ordered according to their timestamps. Activities represented as start nodes 10 and corresponding activities represented as end nodes 20 are connected via interactions defined by matching pairs of outgoing edges 15 and incoming edges 25, respectively.

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

[0123] In this example, the user-defined initial node 40 is node "A" in FIG. 8, enclosed by double lines, and is marked as a current member of the subgraph. As an example, the user-defined direction of the filter operator is the descendant direction, i.e., downstream direction of the network. Node "A" is the start node 10 connected to an output edge 15 having a unique relationship identifier "S1". An input edge 25 matching the unique relationship identifier "S1" is connected to the terminal node "B" of case "2". Node "B" is therefore marked as a 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 an output edge 15 having a unique relationship identifier "S2". Nodes "C" and "D" are therefore marked as members of the subgraph, and node "D" is marked as a current member of the subgraph. An input edge 25 matching the unique relationship identifier "S2" is connected to node "F" of case "3". Therefore, node "F" is also marked as a current member of the subgraph. Also connected to node "F" as part of the same process instance is node "E". Without considering the "Timestamp" attribute, as is done by the "LINK_FILTER" operator, node "E" is inserted into the subgraph and marked as a current member since it is connected to an outgoing edge 15 with unique relationship identifier "S3". An incoming edge 25 matching unique relationship identifier "S3" is connected to node "G" in case "4". Using the "LINK_FILTER" operator, the resulting subgraph of FIG. 8 starting from node "A" in the network downstream direction contains all the nodes shown in the sequence diagram of FIG. 8. Thus, 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] A second operator "LINK_FILTER_ORDERED" applied to the same signal link table with identical initial conditions gives a different result, since it also takes into account a fourth attribute of the signal link table, namely the "timestamp" attribute. Thus, node "E" is rejected by the "LINK_FILTER_ORDERED" operator inserted into the subgraph, since its associated timestamp is less than the timestamp of the corresponding current member of the subgraph, which is node "F". The subgraph resulting from the "LINK_FILTER_ORDERED" operator from the first data structure shown in Table 11 therefore contains all the nodes shown in the sequence diagram of Figure 8, except for node "E" and node "G". As a result, signal "S3", represented by a directed edge between node "E" and node "G", also does not form part of the subgraph. The edge table 12 filtered by the subgraph resulting from the "LINK_FILTER_ORDERED" operator therefore contains only the records of signals "S1" and "S2".

[0125] The search of the subgraph is performed according to a traversal of the graph 1 generated from the first data structure by starting from at least one selected node in a selected direction according to a predefined graph traversal protocol, which may be a breadth-first search of the records, a depth-first search of the records, or a combination thereof, such as iteratively deepening a depth-first search of the records.

[0126] Filter operators can be similarly applied to graphs representing supply chain networks. For example, the graph shown in FIG. 5, generated from the signal link table of 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 direction selected is the upstream direction of the network, and the initial node selected is node "P_456-100". The resulting subgraph discovered by "LINK_FILTER" includes nodes "P_456-100", "P_123-100", "P_123-100", and "C_456-100".

[0127] Furthermore, the nodes 40;10;20 of the extracted sub-graphs can be aggregated based on the sub-hierarchical level, and the formed directed edges 15;25 are aggregated accordingly, resulting in an aggregated sub-graph.

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

[0129] FIG. 9 shows a flow chart of a method for filtering a first data structure in which a graph representing a network appears.

[0130] The embodiment represented by the flowchart of FIG. 9 is applicable to data recorded in a first data structure, which data may represent entities of any type of network, in particular a supply chain network or process steps within 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 to be applied are selected.

[0132] In step B, in the first data structure, a predefined graph traversal protocol is used to find a subgraph that includes all nodes 10;20 connected to at least one initial node 40 in the selected direction.

[0133] In step C, the subgraph resulting 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, the filtered second data structure containing the interactions between different entities in the network is provided to a process mining system to analyze network effects, such as process performance indicators in the case of a process network.

[0135] FIG. 10 illustrates an embodiment of a drill-down function for step B of the embodiment shown in FIG.

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

[0137] However, in the case of the "LINK_FILTER_ORDERED" operator, a test must be passed before marking a record as a member of the subgraph: It is tested whether the order value of the fourth attribute of the found record is greater than the order 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. In case of a negative test result, the record is skipped. If no further records can be 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 of recording a first data structure with data describing an interacting network, such as a supply chain network or a process network, whose interactions are recorded in the data structure without any prior knowledge of the structure of the network being required. From the data structure, a graph representing the network can be generated and subsequently analyzed using, inter alia, drill-down and / or aggregation capabilities to access insights into network effects in detail.

Claims

1. A computer-implemented method for storing a graph (1) in a storage device, comprising the steps of: The graph (1) includes a number of nodes (10; 20) and a number of directed edges (15; 25), Each directed edge (15;25) connects a start node (10) and a terminal node (20), and each directed edge (15;25) is composed of an input edge (25) connected to the terminal node (20) and an output edge (15) connected to the start node (10); The graph (1) represents a network, Each node (10; 20) represents an entity of said network, Each directed edge (15; 25) represents a relationship between two entities, said method comprising: recording each start node (10) in a first record of a data structure stored using said storage device, and recording each end node (20) in a second record of said data structure, Each record must have at least a combination of some first attributes according to which an identifier of the node is stored; some second attribute combination according to which an identifier of the input edge is stored; and and a combination of some third attribute in which an identifier of the output edge is stored. storing in said first record said identifier of said starting node (10) in said combination of said number of first attributes and a unique relationship identifier (30) in said combination of a number of third attributes, said unique relationship identifier (30) representing a step along a path in said network; storing in the second record the identifier of the terminal node (20) in the combination of the number of first attributes and the unique relationship identifier (30) in the combination of the number of second attributes; a value of the combination of the number of second attributes of the second record that matches a value of the combination of the number of third attributes of the first record defines the directed edge (15; 25) between the start node (10) and the end node (20).

2. 2. The method of claim 1, further comprising: determining the directed edges (15; 25) between the start node (10) and the end node (20) by matching values ​​of the combinations of the number of second attributes of the second records with values ​​of the combinations of the number of third attributes of the first records to generate the graph (1).

3. The method of 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 any one of claims 1 to 3, wherein said data structures are tables, in particular relational data tables, said tables being associated with a data model.

5. The method according to any one of claims 1 to 4, wherein the network is a supply chain network and the entities are combinations of materials and facilities, in particular Stock Keeping Units (SKUs), and the relationship between the two entities is established by using a bill of material and / or a delivery bill.

6. 6. The method of claim 5, wherein the unique relationship identifier (30) comprises data characterizing a relationship between the two entities, in particular a bill of material identifier, an alternate bill of material identifier and a facility identifier, and / or a receiving facility identifier and a material identifier.

7. The method of any preceding claim, wherein the node identifier comprises a case key.

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

9. at least one node (15; 25) is both said terminal node (20) connected to at least one input edge (25) and said starting node (10) connected to at least one output edge (15), said method further comprising recording each node (10; 20) of said at least one node in at least one record, 9. The method according to any one of claims 1 to 8, wherein in each record of the at least one record, the identifier of each node (10; 20) is assigned to the combination of the number of first attributes, a first unique relation identifier of one incoming edge (25) is assigned to the combination of the number of second attributes and a second unique relation identifier of one outgoing edge (15) is assigned to the combination of the number of third attributes.

10. 10. The method of claim 9, wherein in each record of the at least one record, either the first unique relationship identifier of one incoming edge (25) is assigned to the combination of several second attributes, or the second unique relationship identifier of one outgoing edge (15) is assigned to the combination of several third attributes.

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

12. 12. The method according to claim 1, wherein the network is a process network, the 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 relationship identifier (30) representing a signal between the start node (10) forming part of a process instance of a first process and the end node (20) forming part of a process instance of a second process, in particular an output of the start node (10) provided to the end node (20), and the data structure further comprises a fourth attribute in which a sequence of the process steps within a process instance is stored such that the data structure forms an extended process protocol.

13. The method of claim 12 , wherein the combination of several first attributes includes a case attribute in which a unique identifier of the process instance of an individual process step is stored, and an activity attribute in which an identifier of the individual process step is stored.

14. The method of any one of claims 1 to 13, wherein said data structure is stored exclusively in volatile memory of said storage device.

15. A method for controlling a flow in a network, said network being represented by a graph (1), said graph (1) being 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