Method for representing objects of a network in a GUI with a graph clustering

TWI937385BActive Publication Date: 2026-09-01NOZOMI NETWORKS SAGL
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
TW112103686
Authority / Receiving Office
TW · TW
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-02-02
Filing Date
2023-02-02
Publication Date
2026-09-01
Estimated Expiration
2043-02-01

AI Technical Summary

Technical Problem

Existing methods for visualizing large network graphs in graphical user interfaces face challenges in scalability and resource efficiency, particularly in maintaining clear visibility and interactive performance as users zoom in and out, leading to suboptimal user experiences.

Method used

A method that represents network objects as graphical clusters, using cluster nodes and links, where clusters are compressed or expanded based on distance ratios, minimizing computational resources while ensuring smooth transitions and maintaining a clear mental map for users.

Benefits of technology

The method allows for efficient visualization of large networks with minimal computing resources, providing a smooth user experience by maintaining the mental map of node locations during expansions and contractions, ensuring scalability and interactive performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure TWG2TB001908362_001
    Figure TWG2TB001908362_001
  • Figure TWG2TB001908362_002
    Figure TWG2TB001908362_002
  • Figure TWG2TB001908362_003
    Figure TWG2TB001908362_003
Patent Text Reader

Abstract

A method for representing objects in a network using graphical clusters in a graphical user interface includes retrieving a base graph, grouping two or more nodes into one or more clusters via a computerized data processing unit, initializing clusters by calculating the cluster quality and cluster radius of each cluster via the computerized data processing unit, evaluating the clusters, defining a visualization graph that represents the base graph as seen from predefined distance values, and locating the visualization graph. The evaluation includes creating an empty visualization graph, calculating distance ratios, evaluating distance ratios, compressing clusters, expanding clusters, adding multiple nodes, and adding links between clusters and nodes outside the clusters, wherein each time a link needs to be added between nodes outside the clusters and between two clusters, the link strength count is incremented by an integer unit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of graphical user interfaces (GUIs). In particular, this invention relates to a method for representing multiple objects in a network using a graphical cluster in a graphical user interface. Prior Technology

[0002] A graphical user interface (GUI) is a form of user interface that allows users to interact with electronic devices through graphical icons and indicators rather than text-based interfaces. Designing the visual composition and temporal behavior of a GUI is an important part of software application design in the field of human-computer interaction. Its goal is to improve the efficiency and usability of the underlying logic design of stored procedures, while operations in a GUI are typically accomplished through direct manipulation of graphical elements.

[0003] Specifically, the term Graphical User Interface (GUI) generally refers to the visual graphical interface features of an application. Users can interact with information by manipulating visual widgets, which allow for interactions appropriate to the type of data they contain. A well-designed interface of widgets is chosen to support the actions required to achieve the user's goals.

[0004] In the field of computer network infrastructure management, it is crucial to use graphical user interfaces (GUIs) to simplify the representation of numerous connections and data exchanges at the user level. In particular, for monitoring and protecting large-scale modern OT / IoT / IT computer networks, a fundamental prerequisite is ensuring good network visibility; in other words, a clear view of all computers / devices present on the network and all communications occurring between them.

[0005] A graphical user interface used to ensure proper network visibility is a network graph, in which each computer or device in the network is represented as a node, and communication between them is represented as links connecting the nodes. In a network graph, for clear visualization of all components, nodes need to be arranged in such a way that they are well-spaced, with nodes directly connected by a link placed in enclosed positions relative to each other, and the positions of other nodes should not substantially change if new nodes or links appear in new iterations.

[0006] Visualizing complex network graphs with thousands or millions of nodes presents several demanding challenges. One is the performance of the visualization system; it must be fast enough to enable a feasible interactive user experience. Another is the usability of the network graph, as the visualization must be simple and clear enough for users to effectively utilize it.

[0007] If we consider a very large graph with millions of nodes, a simple visualization that displays all the nodes in the same window is almost useless because the user has no way to determine their direction in the network graph.

[0008] To address this issue, a common approach is graphical clustering, which involves grouping several nodes into a macroscopic node called a cluster and visualizing each cluster as a single element. Then, when explicitly requested by the user, or when zoomed in, the cluster can be expanded to display the nodes that make it up.

[0009] Achieving visualization of network graphs like this requires addressing two main issues. The first issue is cluster computation, often simply referred to as clustering, which involves starting with a given network graph and associating each node with a cluster. Several different methods are available for clustering. To ensure the scalability of large network graphs, clusters are often nested within each other, arranged in a parent / child tree structure. Within a high-level cluster, there can be several sub-clusters, which themselves can contain other sub-clusters, and so on. The cluster that contains some other clusters is called the parent cluster, and the contained clusters are called child clusters. Once clusters are available, another issue is the method for visualizing clustered network graphs and performing expansion (displaying multiple nodes in a cluster from a visible cluster) and contraction (displaying only the clusters that include them from a visible node).

[0010] Several methods are known for drawing cluster graphs.

[0011] Some methods are referred to as "layout tweaking" methods. They require an initial configuration of all nodes, and once this configuration is in place, a tweaking process is used to extract the location of the clusters and visualize them. However, for large graphs, these methods do not guarantee the required scalability. For example, consider a cluster graph with a few high-level clusters and a large number of sub-clusters and nodes. These methods would require rendering all nodes just to display the few high-level clusters, which would consume significant resources and time.

[0012] A different approach is based on using spring force to draw nodes within its cluster, but in this case, even if only a few high-level clusters are displayed, all nodes must be calculated.

[0013] In further different approaches, cluster graphs are combined with multi-level techniques and force methods to draw large graphs, but in this case, the focus is on the final rendering of the complete graph rather than dynamic visualization.

[0014] Therefore, it is best to represent network objects and connections in a way that is understandable to the user. In particular, it is best to provide a graphical user interface representation of the network diagram that involves minimal computational resources and allows for a smooth transition during the expansion and contraction of the cluster diagram. Summary of the Invention

[0015] The object of this invention is to provide a method for representing objects and their network connections, which minimizes the aforementioned drawbacks. In particular, it is preferable to have a method that can represent the entire network using a cluster graph in each iteration with minimal computational resources.

[0016] Therefore, according to the present invention, a method for representing multiple objects in a network in a graphical user interface with a graphical cluster is described, as described in the appended claims. Simple Explanation of the Diagram

[0017] These and further features and advantages of the invention will become apparent from the disclosure of preferred embodiments, illustrated in the drawings by way of non-limiting example, wherein:

[0018] Figure 1 shows a graphical user interface with a first graph representing multiple nodes. Figure 2 shows the graphical user interface of Figure 1 with a graphical cluster according to the present invention. Figure 3 shows the graphical user interface of Figure 2, where the distance value is reduced. Figure 4 shows the graphical user interface of Figure 3, where the distance value is reduced. Figure 5 shows a graphical user interface with a second graph representing multiple nodes. Figure 6 shows the graphical user interface of Figure 5 with a graphical cluster according to the present invention. Figure 7 shows the graphical user interface of Figure 6, where the distance value is reduced. Figure 8 shows the graphical user interface of Figure 7, where the distance value is reduced. Figure 9 shows the graphical user interface of Figure 8, where the visualization window is moved. Implementation

[0019] The present invention relates to a method for representing objects in a network using a graphical user interface with a graphical cluster.

[0020] The method according to the invention finds useful applications in any type of physical infrastructure or automated system, particularly in industrial automation systems, such as industrial processes for manufacturing, industrial processes for power generation, infrastructure for distributing fluids (water, oil, and natural gas), infrastructure for power generation and / or transmission, and infrastructure for transportation management. Furthermore, it finds useful applications in all technological environments, including information technology (IT), operational technology (OT), and the Internet of Things (IoT).

[0021] The term "cluster" in this invention refers to an element comprising one or more nodes and / or sub-clusters.

[0022] The term "compressed cluster" in this invention refers to a cluster whose multiple internal nodes and multiple sub-clusters are not visible.

[0023] The term "extended cluster" in this invention refers to a cluster whose multiple internal nodes and multiple sub-clusters are visible.

[0024] The term "cluster node" in this invention refers to a node used to represent a compressed cluster in the graphical user interface.

[0025] The term "cluster element" in this invention refers to a plurality of nodes or a plurality of cluster nodes contained in a cluster.

[0026] The term "subcluster" or "sub-cluster" in this invention refers to a cluster contained within a cluster at a lower cluster level.

[0027] The term "parent cluster" in this invention refers to a cluster that includes one or more higher cluster levels.

[0028] The term "cluster level" in this invention refers to a position of a cluster relative to any child cluster or parent cluster. For example, a cluster level is identified by an integer: 1 if the cluster has no parent cluster; 2 if the cluster has a parent cluster that has no parent cluster; 3 if the cluster has a parent cluster that has a further parent cluster, and so on.

[0029] The term "visualization window" in this invention refers to a portion of a two-dimensional space in which a visualization is displayed in a graphical user interface.

[0030] Therefore, according to the present invention, a method is described for representing multiple objects in a network in a graphical user interface using a graphical cluster.

[0031] The method will now be described with reference to two simple examples illustrated in Figures 1 and 5, respectively; however, it can, of course, be extended to any kind of complexity.

[0032] Furthermore, the method according to the invention can be referenced and can be associated with U.S. Patent Application No. 17,187,821, filed February 28, 2021, which relates to a method for representing multiple objects in a network in a graphical user interface to reduce the complexity of gravity assessment, which is incorporated herein by reference. In this regard, the examples of Figures 1 and 5 above correspond to the same simple examples of the aforementioned U.S. Patent Application No. 17,187,821.

[0033] Figure 1 illustrates a first example of processing according to the method of the present invention, which includes five nodes, numbered from 1 to 5. These nodes represent multiple corresponding objects in a network.

[0034] The method includes first retrieving a base graph, comprising all objects as a network of multiple nodes and multiple links between said nodes. Figure 1 illustrates an example of such a base graph, which will be described in more detail below, providing the aforementioned multiple nodes and multiple links between them. Each node is initialized to a predefined node quality; in this example, the predefined node quality of all nodes is equal to 1.

[0035] The five nodes in Figure 1 are numbered from 1 to 5 using integer values, and the following links are shown: a link from node 1 to node 2, a link from node 2 to node 5, a link from node 1 to node 3, a link from node 1 to node 4, and finally a link from node 3 to node 4. Such a graph can be represented by the following notation:

[0036] Node = [{name="1", mass=1},{name="2", mass=1},{name="3", mass=1},{name="4", mass=1},{name="5", mass=1}];

[0037] Link = [{node="1-2", strength=1}, {node="2-5", strength=1}, {node="1-3", strength=1}, {node="1-4", strength=1}, {node="3-4", strength=1}].

[0038] The method further includes grouping two or more nodes into one or more clusters via a computerized data processing unit, wherein each cluster includes at least two of the nodes.

[0039] In particular, the plurality of nodes corresponding to the first example in Figure 1 are clustered into a first cluster named cluster 1 (101 in the diagram), which includes nodes 1, 2, and 5 and has no parent cluster, and a second cluster named cluster 2 (201 in the diagram), which includes nodes 3 and 4 and has no parent cluster, summarized as follows:

[0040] - Cluster 1: Includes nodes 1, 2, and 5 -- No parent cluster;

[0041] - Cluster 2: Includes nodes 3 and 4 -- No parent cluster.

[0042] Subsequently, the method further includes initializing the clusters by calculating the cluster mass and cluster radius of each cluster using the computerized data processing unit. The cluster mass of each cluster is calculated as the sum of the node masses of all nodes arranged within the cluster and the sub-cluster masses of all sub-clusters arranged within the cluster. Furthermore, the cluster radius of each cluster is calculated as the product of the cluster mass and a predefined radius constant. Therefore, considering a predefined radius constant of KR equal to 10, cluster 1 has a mass of 3 and a corresponding radius of 30, while cluster 2 has a mass of 2 and a corresponding radius of 20. Of course, it is still possible to use predefined radius constants with different values. The calculation of the multiple masses and the multiple radii is performed as a preliminary initialization operation. In summary:

[0043] - Cluster 1: Mass=3, Radius=30;

[0044] - Cluster 2: mass=2, radius=20.

[0045] Subsequently, as described in more detail below, the evaluation and positioning iterations are performed as the predefined distance value changes.

[0046] The method further includes evaluating the plurality of clusters via the computerized data processing unit and defining a visualization representing the base graph as seen from a predefined distance value. In this regard, it is assumed that this distance value is initially equal to 100 as an initial step. Furthermore, it is also assumed that the predefined distance ratio threshold is equal to 2. Different distance values ​​can be used. In particular, the predefined distance value can be selected according to user preferences and can be modified, as better described below.

[0047] The evaluation will be described in more detail below. The evaluation first involves creating an empty visualization, which, once completed, will be positioned as described above.

[0048] Considering the aforementioned distance values, the evaluation further includes, for each cluster, calculating a distance ratio using the computerized data processing unit as the ratio between the cluster radius and the predefined distance value. Therefore, cluster 1 has a distance ratio equal to 3.22 (defined by a ratio of 100 / 30), and cluster 2 has a distance ratio equal to 5 (defined by a ratio of 100 / 20). In summary:

[0049] - Cluster 1: Distance ratio = 3.22 (defined by the ratio 100 / 30);

[0050] - Cluster 2: Distance ratio = 5 (defined by ratio 100 / 20).

[0051] Furthermore, the evaluation includes assessing the distance ratio using the same computerized data processing unit on the predefined distance ratio threshold. In the first example according to the invention, both cluster 1 and cluster 2 have a distance ratio greater than the predefined distance ratio, wherein the predefined distance ratio is equal to 2.

[0052] Furthermore, the evaluation includes compressing the cluster using the computerized data processing unit when the distance ratio is higher than the predefined distance ratio threshold, adding a single compressed cluster node to all child nodes and all sub-clusters arranged within the cluster to be compressed in the visualization; and expanding the cluster using the same computerized data processing unit when the distance ratio is lower than the predefined distance ratio threshold, adding multiple nodes to all child nodes and all sub-clusters arranged within the cluster to be expanded in the visualization. Additionally, multiple clusters located outside the visible area will always be compressed, regardless of the radius distance ratio. Furthermore, multiple compressed clusters with compressed parents are omitted.

[0053] When the distance ratio is greater than the predefined distance ratio, the cluster will be compressed. Therefore, each cluster is added as a cluster node to the visualization graph, as shown in Figure 2:

[0054] - Cluster 1: Compression -- Cluster node "Cluster 1" (numbered 101) has been added;

[0055] - Cluster 2: Compression -- Cluster node "Cluster 2" (numbered 201) has been added;

[0056] Therefore, the multiple elements added to the visualization can be represented by the following notation:

[0057] Node = [{name="cluster1", quality=3}, {name="cluster2", quality=2}].

[0058] Furthermore, all links in the base graph (Figure 1) are evaluated to determine the plurality of links to be added to the visualization. If a link exists between two nodes belonging to the same compression cluster in the base graph, that link is not added to the visualization. If a link exists between a visible node and a node within a compression cluster in the base graph, then a link is added to the visualization between that node and the cluster node corresponding to that compression cluster. If a link exists between two nodes within two different compression clusters in the base graph, then a link is added to the cluster nodes corresponding to that compression cluster in the visualization. Additionally, each time a link needs to be added between the same two elements (nodes or cluster nodes), a link strength count is incremented by an integer unit.

[0059] Therefore, the link from node 1 to node 2 is not added because both nodes are within the same compressed cluster 1. The link from node 2 to node 5 is not added because both nodes are within the same compressed cluster 1. The link from node 1 to node 3 is added because these two nodes are in two different compressed clusters, and the link strength is set to 1. The link from node 1 to node 4 should be added because these two nodes are in two different compressed clusters, but since a link already exists between the clusters, the link strength is increased from 1 to 2. The link from node 3 to node 4 is not added because both nodes are in the same compressed cluster 2. The operations can be summarized as follows:

[0060] - Link "1-2": Do not add (both nodes are within cluster 1);

[0061] - Link "2-5": Do not add (both nodes are within cluster 1);

[0062] - Link "1-3": Add a link between cluster 1 and cluster 2 (node ​​1 is in cluster 1, node 3 is in cluster 2). Set the link strength to 1;

[0063] - Link "1-4": The link between cluster 1 and cluster 2 already exists (node ​​1 is in cluster 1, node 4 is in cluster 2). The link strength is increased to 2;

[0064] - Link "3-4": Do not add (both nodes are in cluster 1).

[0065] Therefore, the visualization corresponding to a distance equal to 100 is as follows:

[0066] Node = [{name="cluster1", quality = 3}, {name="cluster2", quality = 2}];

[0067] Link = [{node="cluster1-cluster2", strength=2].

[0068] The method further includes locating the visualization graph, for example, finding the coordinates of the plurality of nodes and the plurality of cluster nodes, and includes:

[0069] - Assign initial positions to all the nodes and all the cluster nodes;

[0070] - Operations apply to multiple forces on each of the nodes and each of the cluster nodes;

[0071] - Define new positions for the multiple nodes and the multiple cluster nodes using a speed Verlet algorithm;

[0072] - Store the multiple new locations;

[0073] - Iterate the operations, the definitions, and the storage until the positions of the plurality of nodes and the plurality of cluster nodes become stable.

[0074] In particular, in this invention, stability means that the position changes very little between two consecutive iterations.

[0075] In a further embodiment, the plurality of forces acting on each of the nodes and each of the cluster nodes include calculating a plurality of link forces for the two nodes or cluster nodes "a" and "b" that form the link, respectively:

[0076] Flx b -a= K * S * (xc b– xc a); Fly b -a= K * S * (yc b– yc a)

[0077] and

[0078] Flx a -b= K * S * (xc a– xc b); Fly a -b= K * S * (yc a– yc b)

[0079] in:

[0080] - K is a predefined elastic constant;

[0081] - S is the count of the link strength for each of the aforementioned links;

[0082] - xa and ya are the coordinates of the node "a";

[0083] - xb and yb are the coordinates of the node "b";

[0084] - Flx b -a is the x-component of the force exerted by node "b" on node "a";

[0085] - Fly b -a is the y-component of the force exerted by node "b" on node "a";

[0086] - Flx a -b is the X component of the force exerted by node "a" on node "b"; and

[0087] - Fly a -b is the y-component of the force exerted by node "a" on node "b".

[0088] In a further embodiment, the plurality of forces acting on each of the nodes and each of the cluster nodes include the plurality of attractive forces between each pair of the plurality of nodes and / or the plurality of cluster nodes that identify the source and receiver:

[0089] Fx = G * Ms * Mr * (xs -xr) / d 3; Fy = G * Ms * Mr * (ys -yr) / d 3

[0090] in:

[0091] - Ms is the quality of the source mentioned;

[0092] - Mr is the quality of the receiver;

[0093] - xs and ys are the coordinates of the source;

[0094] - xr and yr are the coordinates of the receiver;

[0095] - d is the distance between the locations of the source and the receiver;

[0096] - G is a predefined gravitational constant;

[0097] - Fx is the x-component of the force exerted by the source on the receiver; and

[0098] - Fy is the y-component of the force exerted by the source on the receiver.

[0099] To reduce computational costs, the evaluation of the multiple gravitational forces can also be performed as described in U.S. Patent Application No. 17,187,821, filed February 28, 2021, which is mentioned and incorporated herein by reference.

[0100] In a further embodiment, the plurality of forces acting on each of the nodes and each of the cluster nodes include a computational damping force for each of the nodes and / or each of the cluster nodes:

[0101] Fdx = D * Vx; Fdy = D * Vy

[0102] in:

[0103] - Vx is the velocity of the node along the x-axis;

[0104] - Vy is the velocity of the node along the y-axis;

[0105] - D is a predefined damping constant;

[0106] - Fdx is the x-component of the damping force acting on the node or cluster node; and

[0107] - Fdy is the y-component of the damping force acting on a node or cluster node.

[0108] In a further embodiment, the plurality of forces acting on each of the nodes and each of the cluster nodes include the computational center force of each of the nodes and / or each of the cluster nodes as follows:

[0109]

[0110]

[0111] in:

[0112] - It is a predefined constant;

[0113] - This refers to the number of clusters to which the node or cluster node recursively belongs;

[0114] - It refers to the level of the i-th cluster to which the node or cluster node belongs;

[0115] - It is the center coordinate of the i-th cluster to which the node or cluster node belongs, along the x-axis;

[0116] - It is the center coordinate of the i-th cluster to which the node or cluster node belongs, along the y-axis;

[0117] - These are the coordinates of the node or cluster node along the x-axis;

[0118] - These are the coordinates of the node or cluster node along the y-axis;

[0119] - It is the x-component of the central force acting on the node or cluster node; and

[0120] - It is the y-component of the central force acting on a node or cluster node.

[0121] It should be noted that the sum from i=0 to N must be extended to all clusters containing the node and all their parent clusters. Therefore, for example, if a node belongs to a cluster that also belongs to another parent cluster that does not have a parent cluster, then the sum must include both the cluster containing the node and its parent cluster.

[0122] To continue with the detailed description, let's assume the result of the positioning is:

[0123] - Cluster 1: x=2, y=7.5;

[0124] - Cluster 2: x=6, y=1.5.

[0125] Therefore, the visualization of the location in Figure 2 can be represented by the following notation:

[0126] Node = [{name="cluster1", quality=3, x=2, y=7.5}, {name="cluster2", quality=2, x=6, y=1.5}];

[0127] Link = [{node="cluster1-cluster2", strength=2].

[0128] Considering the transition of the distance value from 100 to 50, corresponding to a zoom-in of the graphical user interface, the observer distance is reduced.

[0129] As already described, the method includes locating the visualization in the graphical user interface based on a selected distance value. In this regard, assuming a distance value equals 50, the evaluation includes creating a new empty visualization and calculating the distance ratio for each of the clusters using the computerized data processing unit, as the ratio between the cluster radius and the predefined distance value. Therefore, cluster 1 has a distance ratio equal to 1.67 (defined by a ratio of 50 / 30), and cluster 2 has a distance ratio equal to 2.5 (defined by a ratio of 50 / 20). In summary:

[0130] - Cluster 1: Distance ratio = 1.67 (defined by the ratio 50 / 30);

[0131] - Cluster 2: Distance ratio = 2.5 (defined by the ratio 50 / 20).

[0132] Again, the evaluation includes assessing the distance ratio with respect to the predefined distance ratio threshold using the same computerized data processing unit. In this iteration according to the first example of the invention, cluster 2 maintains a distance ratio greater than the predefined distance ratio threshold, which is equal to 2, while cluster 1 has a distance ratio less than the same predefined distance ratio threshold.

[0133] Therefore, the evaluation includes expanding cluster 1 using the same computerized data processing unit, adding nodes 1, 2, and 5 to the visualization graph because the distance ratio is below the predefined distance ratio threshold. Conversely, cluster 2 remains unchanged and is compressed. In summary:

[0134] - Cluster 1: Expansion -- Nodes 1, 2, and 5 have been added;

[0135] - Cluster 2: Compression - Add cluster node "Cluster 4".

[0136] The initial visualization corresponding to the new distance of 50 therefore includes the following multiple nodes and multiple cluster nodes:

[0137] Node = [{name="1", quality=1, x=2, y=7.5}, {name="2", quality=1, x=2, y=7.5}, {name="5", quality=1, x=2, y=7.5}, {name="cluster2", quality=2, x=6, y=1.5].

[0138] Since nodes 1, 2, and 5 have never been located, their positions are set to the same positions as cluster 1 calculated above.

[0139] Considering the multiple links in the base graph (Figure 1), the evaluation is performed as follows:

[0140] - Link "1-2": Link "1-2" has been added (both nodes are visible);

[0141] - Link "2-5": Link "2-5" has been added (both nodes are visible);

[0142] - Link "1-3": A link "1-cluster 2" has been added (node ​​1 is visible, node 3 is within cluster 2). The link strength is set to 1;

[0143] - Link "1-4": Link "1-Cluster 2" already exists (node ​​1 is visible, node 4 is within cluster 2). The link strength is increased to 2; and

[0144] - Link "3-4": Not added (both nodes are in cluster 2).

[0145] Then, the resulting initial visualization can be represented as:

[0146] Node = [{name="1", quality=1, x=2, y=7.5}, {name="2", quality=1, x=2, y=7.5}, {name="5", quality=1, x=2, y=7.5}, {name="cluster2", quality=2, x=6, y=1.5}].

[0147] Link = [{node="1-2", strength=1}, {node="2-5", strength=1}, {node="1-cluster2", strength=2}].

[0148] Then, the location can be performed using the method described above. The resulting visualization (Figure 3) can be represented by the following symbols:

[0149] Node = [{name="1", quality=1, x=1, y=7}, {name="2", quality=1, x=2, y=8.0}, {name="5", quality=1, x=3, y=8.0}, {name="cluster2", quality=2, x=6, y=1.5}].

[0150] It should be noted that since the central force of cluster 1 (numbered 111) acts on nodes 1, 2 and 5 and attracts them to move towards the cluster center, nodes 1, 2 and 5 are still close to their original positions in cluster 1.

[0151] During the positioning process, the storage was also performed, in which the center position of cluster 1 was calculated as the average of the positions of nodes 1, 2, and 5.

[0152] - xc1=(1+2+3) / 3=2; and

[0153] - yc1=(7.0+8.0+8.0) / 3=7.75.

[0154] During the positioning process, the relative positions of multiple nodes within cluster 1 with respect to the center of cluster 1 are also stored, i.e., the difference between the node coordinates (x, y) and the coordinates (xc1, yc1) of the center of cluster 1.

[0155] - xr = x - xc 1; and

[0156] - yr=y-yc 1.

[0157] Using the previously calculated cluster coordinates (xc1=2, yc1=7.75), the following relative positions of the cluster elements can be obtained:

[0158] - Node 1: xr 1 = -1, yr 1 = -0.75;

[0159] - Node 2: xr² = 0, yr² = 0.25; and

[0160] - Node 5: xr 5=1, yr 5=0.25.

[0161] Now consider a new transition of the distance value from 50 to 100, corresponding to a magnification of the graphical user interface, increasing the observer distance, where the observer distance is then restored to its original state.

[0162] The evaluation was performed as described above, and the visualization corresponding to a distance of 100 is therefore the same as before:

[0163] Node = [{name="cluster1", quality=3}, {name="cluster2", quality=2}];

[0164] Link = [{node="cluster1-cluster2", strength=2].

[0165] However, since cluster 1 was expanded in the previous step, the initial location of cluster 1 is different. In this respect, the initial coordinates of the cluster nodes corresponding to cluster 1 are set to the coordinates of the center of cluster 1 in the previously executed storage operation.

[0166] Conversely, cluster 2 remains unchanged, therefore:

[0167] Node = [{name="cluster1", quality=3, x=2, y=7.75}, {name="cluster2", quality=2, x=6, y=1.5}].

[0168] After iteration, based on the positioning performed using the above method, it is assumed that the node has moved slightly:

[0169] Node = [{name="cluster1", quality=3, x=2, y=7.0}, {name="cluster2", quality=2, x=6, y=1.0}];

[0170] Link = [{node="cluster1-cluster2", strength=2].

[0171] Considering a new transition of the distance value from 100 to 25, corresponding to a magnification of the graphical user interface, reducing the observer distance, Figure 4 illustrates the corresponding new visualization.

[0172] In this iteration, cluster 1 is expanded, as described in the iterations above. Nodes 1, 2, and 5 are thus added to the visualization, but since they were expanded in the previous step, their relative positions with respect to the cluster center are already stored; therefore, their initial positions will be given by the following formula:

[0173]

[0174] in:

[0175] - xr i is the coordinate of the i-th cluster element along the x-axis relative to the center of the cluster node, and

[0176] - yr i is the coordinate of the i-th cluster element along the y-axis relative to the center of the cluster node.

[0177] Using the previously calculated relative positions, the result is:

[0178] - Node 1: x₁ = 2 - 1, y₁ = 7 - 0.75;

[0179] - Node 2: x² = 2 + 0, y² = 7 + 0.25; and

[0180] - Node 5: x 5 = 2 + 1, y 5 = 7 + 0.25.

[0181] Cluster 2 was also expanded, but never in the above iterations. Therefore, its child nodes take the position of the cluster nodes themselves, as shown below:

[0182] Node 3: x3=6, y3=1; and

[0183] Node 4: x4=6, y4=1.

[0184] The evaluation is performed by evaluating the multiple links in the base graph as follows:

[0185] - Link "1-2": Added link "1-2" (visible to both nodes), strength set to 1;

[0186] - Link "2-5": Added link "2-5" (visible to both nodes), strength set to 1;

[0187] - Link "1-3": Added link "1-3" (visible to both nodes), strength set to 1;

[0188] - Link "1-4": Added link "1-4" (visible to both nodes), strength set to 1; and

[0189] - Link "3-4": Added link "3-4" (visible to both nodes), with strength set to 1.

[0190] The visualization therefore becomes:

[0191] Node = [{name="1", mass=1,x=1,y=6.25},{name="2", mass=1,x=2,y=7.25},{name="5", mass=1,x=3,y=7.25},{name="3", mass=1,x=6,y=1},{name="4", mass=1,x=6,y=1}];

[0192] Link = [{node="1-2", strength=1}, {node="2-5", strength=1}, {node="1-3", strength=1}, {node="1-4", strength=1}, {node="3-4", strength=1}].

[0193] Then the location can define the final node position (see Figure 4, where 211 represents the central force of cluster 2).

[0194] Figure 5 illustrates a second example of a process according to the method of the present invention, which includes 12 nodes numbered 1 to 12. These nodes represent corresponding objects in the network.

[0195] As already described, the method includes first retrieving a base graph comprising all objects of the network as multiple nodes and multiple links connecting the multiple nodes. A predefined node quality is assigned to each node, in this example, the quality is also equal to 1 for all nodes, and a cell strength is assigned to each link. A graph with links can be represented using the following notation:

[0196] Node = [{name="1", quality=1}, {name="2", quality=1}, {name="3", quality=1}, {name="4", quality=1}, {name="5", quality=1}, {name="6", quality=1}, {name="7", quality=1}, {name="8", quality=1}, {name="9", quality=1}, {name="10", quality=1}, {name="11", quality=1}, {name="12" quality=1]; Link = [{nodes="1-11"] {Node="11-12", Strength=1}, {Node="11-3", Strength=1}, {Node="2-3", Strength=1}, {Node="3-4", Strength=1}, {Node="1-10", Strength=1}, {Node="1-8", Strength=1}, {Node="10-6", Strength=1}, {Node="8-9", Strength=1}, {Node="8-7", Strength=1}, {Node="8-6", Strength=1}, {Node="5-6", Strength=1}}

[0197] The method further includes grouping two or more nodes into one or more clusters by the computerized data processing unit, wherein each cluster includes at least two nodes. Specifically, the nodes corresponding to the example in Figure 5 are clustered, defining the following clusters:

[0198] - Cluster 1: includes nodes 1 and 10 -- Cluster 3 is a parent cluster;

[0199] - Cluster 2: includes nodes 11 and 12 -- Cluster 3 is the parent cluster;

[0200] - Cluster 3: Includes Cluster 1 and Cluster 2 -- It has no parent cluster;

[0201] Cluster 4: consists of nodes 2, 3, and 4 -- it has no parent cluster; and

[0202] - Cluster 5: includes nodes 5, 6, 7, 8 and 9 -- it has no parent cluster.

[0203] In this example, we assume that we are interested in visualizing only a portion of the graphic within a given visualization window in the graphical user interface. Initially, we will assume that the visualization window will be defined by regions where x and y are between 0 and 5 (Figure 5).

[0204] Subsequently, the method further includes initializing the cluster by the computerized data processing unit by calculating the cluster quality and cluster radius of each cluster. Therefore, considering again a predefined radius constant named KR equal to 10, the following summary is provided:

[0205] - Cluster 1: Mass=2, Radius=20;

[0206] - Cluster 2: mass=2, radius=20;

[0207] - Cluster 3: Mass=4, Radius=40;

[0208] - Cluster 4: mass=3, radius=30; and

[0209] - Cluster 5: mass=5, radius=50.

[0210] Subsequently, as the selected distance value changes, a new visualization is generated, as described in more detail below. Specifically, the evaluation and positioning are iterated as the predefined distance value changes.

[0211] The method further includes evaluating the plurality of clusters via a computerized data processing unit and defining a visualization representing the base graph as seen from a predefined distance value. In this regard, it is assumed that such a distance value, as an initial step, is equal to 110. Furthermore, it is also assumed that the predefined distance ratio threshold is equal to 2. Different distance values ​​can be used. In particular, the predefined distance value can be selected according to user preferences and can be modified, as described in more detail below.

[0212] Therefore, the method includes locating a visualization in the graphical user interface. The location can be performed as described above, or it can use the method described in U.S. Patent Application No. 17,187,821, filed February 28, 2021, which is incorporated herein by reference.

[0213] The evaluation will be described in more detail below. The evaluation first involves creating an empty visualization, which will then be positioned as described above.

[0214] Considering the aforementioned distance values, the evaluation further includes, through the computerized data processing unit, calculating a distance ratio for each cluster as the ratio between the cluster radius and the predefined distance value. A cluster with a distance ratio greater than the predefined distance ratio (equal to 2 in this example) will be compressed. Therefore:

[0215] - Cluster 1: Distance ratio = 5.5 (defined by ratio 110 / 20) -- Compressed;

[0216] - Cluster 2: Distance ratio = 5.5 (defined by ratio 110 / 20) -- Compressed;

[0217] - Cluster 3: Distance ratio = 2.75 (defined by ratio 110 / 40) -- Compressed;

[0218] - Cluster 4: Distance ratio = 3.67 (defined by ratio 110 / 30) -- Compressed; and

[0219] - Cluster 5: Distance ratio = 2.2 (defined by ratio 110 / 50). -- Compressed.

[0220] In addition, the evaluation includes creating an empty visualization graph and sequentially adding multiple nodes, multiple cluster nodes, and multiple links to the visualization graph.

[0221] Cluster 1: Compressed along with a compressed parent cluster -- nothing added;

[0222] Cluster 2: Compressed along with a compressed parent cluster -- nothing added;

[0223] - Cluster 3: Compressed and without a parent cluster -- Add cluster node "Cluster 3";

[0224] - Cluster 4: Compressed and without a parent cluster -- Add cluster node "Cluster 4"; and

[0225] - Cluster 5: Compressed and without a parent cluster -- Add cluster node "Cluster 5".

[0226] Multiple clusters 3, 4, and 5 were added to the graph at random or zero positions because it was the first time it was initialized.

[0227] All links in the base graph are also evaluated to determine the plurality of links to be included in the visualization graph and their strength. The procedure evaluates the visibility of the plurality of nodes in the visualization graph for each link, thereby determining the final links to be added. The operation process is as follows:

[0228] - Link "1-11": Both nodes are within cluster 3. No link added. Note that node 1 is actually within cluster 1, and node 11 is actually within cluster 2, but since clusters 1 and 2 are not visible in the visualization, their first visible parent is considered to be cluster 3.

[0229] - Link "11-12": Both nodes are within cluster 3. No link added.

[0230] - Link "11-3": Node 11 is in cluster 3 and node 3 is in cluster 4, so a link "cluster 3-cluster 4" with unit strength was added. Note that node 11 is actually in cluster 2, but since cluster 2 is not visible in the visualization, the first visible parent is considered to be cluster 3;

[0231] - Link "2-3": Both nodes are within cluster 4. No link added.

[0232] - Link "3-4": Both nodes are within cluster 4. No link added.

[0233] - Link "1-10": Both nodes are within cluster 3. No link added.

[0234] - Link "1-8": Node 1 is in cluster 3 and node 8 is in cluster 5, so a link "cluster 3-cluster 5" with unit strength was added. Note that node 1 is actually in cluster 1, but since cluster 1 is not visible in the visualization, the first visible parent is considered to be cluster 3;

[0235] - Link "10-6": Node 10 is in cluster 3 and node 6 is in cluster 5. Note that node 10 is actually in cluster 1, but since cluster 1 is not visible in the visualization, the first visible parent is considered to be cluster 3;

[0236] - Link "8-9": Both nodes are within cluster 5. No link added.

[0237] - Link "8-7": Both nodes are within cluster 5. No link added.

[0238] - Link "8-6": Both nodes are within cluster 5. No link added; and

[0239] - Link "5-6": Both nodes are within cluster 5. The link has not been added.

[0240] The resulting visualization is therefore as follows:

[0241] Node = [{name="cluster3", quality=4, x=0, y=0}, {name="cluster4", quality=3, x=0, y=0}, {name="cluster5", quality=5, x=0, y=0}];

[0242] Link = [{node="cluster3-cluster4", strength=1}, {node="cluster3-cluster5", strength=2}].

[0243] As explained in the first example, the node coordinates are zero or undefined because localization has not yet been performed. Such localization can then be performed using the methods described above. To expedite the gravity assessment, the method described in U.S. Patent Application No. 17,187,821, filed February 28, 2021, is also applicable and is incorporated herein by reference. Therefore, the localized visualization can be represented by the following notation (Figure 6, where clusters 3, 4, and 5 are numbered 301, 401, and 501, respectively):

[0244] Node = [{name="cluster3", quality=4, x=2, y=1}, {name="cluster4", quality=3, x=7, y=2}, {name="cluster5", quality=5, x=3, y=7}];

[0245] Link = [{node="cluster3-cluster4", strength=1}, {node="cluster3-cluster5", strength=2}].

[0246] Considering the shift in distance values ​​from 110 to 70, corresponding to a magnification of the graphical user interface, which reduces the observer distance, Figure 7 illustrates the new visualization.

[0247] Assuming a distance value equals 70, the evaluation includes, for each cluster, the computerized data processing unit calculating a distance ratio as the ratio between the cluster radius and a predefined distance value. Therefore:

[0248] - Cluster 1: Distance ratio = 3.5(110 / 20) > 2 -- Compressed;

[0249] - Cluster 2: Distance ratio = 3.5(110 / 20) > 2 -- Compressed;

[0250] - Cluster 3: Distance ratio = 1.75(110 / 40) < 2 -- Expanded;

[0251] - Cluster 4: Distance ratio = 2.33(110 / 30) > 2 -- Compressed; and

[0252] - Cluster 5: Distance ratio = 1.4(110 / 50) < 2. It should be expanded, but since its position is x=3, y=7, the result is outside the visualization window, so it is still compressed.

[0253] Therefore, the plurality of nodes and the plurality of cluster nodes in the visualization graph can be represented as:

[0254] Node = [{name="cluster1", quality=2,x=2,y=1},{name="cluster2", quality=2,x=2,y=1},name="cluster4", quality=3,x=7,y=2},{name="cluster5", quality=5,x=3,y=7].

[0255] Since clusters 1 and 2 have never been located, their positions are set to the positions of the parent cluster 3 (x=2, y=1) as calculated above.

[0256] Then, all links in the base graph are evaluated to determine which links should be added to the new visualization. Therefore:

[0257] - Link "1-11": Node 1 is in cluster 1 and node 11 is in cluster 2. Add a link with cell strength "cluster 1-cluster 2";

[0258] - Link "11-12": Both nodes are within cluster 2. No link added.

[0259] - Link "11-3": Node 11 is in cluster 2 and node 3 is in cluster 4, so add a link "cluster 2-cluster 4" with unit strength;

[0260] - Link "2-3": Both nodes are within cluster 4. No link added.

[0261] - Link "3-4": Both nodes are within cluster 4. No link added.

[0262] - Link "1-10": Both nodes are within cluster 3. No link added.

[0263] - Link "1-8": Node 1 is in cluster 1 and node 8 is in cluster 5, so a link "cluster 1-cluster 5" with unit strength was added;

[0264] - Link "10-6": Node 10 is in cluster 1 and node 6 is in cluster 5. The link "cluster 1-cluster 5" already exists, so its strength increases from 1 to 2;

[0265] - Link "8-9": Both nodes are within cluster 5. No link added.

[0266] - Link "8-7": Both nodes are within cluster 5. No link added.

[0267] - Link "8-6": Both nodes are within cluster 5. No link added; and

[0268] - Link "5-6": Both nodes are within cluster 5. The link has not been added.

[0269] The resulting visualization is therefore as follows:

[0270] Node = [{name="cluster1", quality=2, x=2, y=1}, {name="cluster2", quality=2, x=2, y=1}, {name="cluster4", quality=3, x=7, y=2}, {name="cluster5", quality=5, x=3, y=7}];

[0271] Link = [{node="cluster1-cluster2", strength=1}, {node="cluster2-cluster4", strength=1}, {node="cluster1-cluster5", strength=2}].

[0272] The positioning can then be performed using the method described above. To expedite the gravity assessment, the method described in U.S. Patent Application No. 17,187,821, filed February 28, 2021, is also applicable and is incorporated herein by reference. The resulting visualization can be represented using the following notation:

[0273] Node = [{name="cluster1", quality=2, x=1.5, y=2}, {name="cluster2", quality=2, x=3, y=0.5}, {name="cluster4", quality=3, x=7, y=2}, {name="cluster5", quality=5, x=3, y=7}]

[0274] The visualization after localization is shown in Figure 7, which also shows the center location of the expanded cluster 3. This center location is referred to as the cluster 3 central force (numbered 311) because it is the location used to calculate the aforementioned central force.

[0275] Now consider a new shift in distance values ​​from 70 to 30, again corresponding to the magnification of the graphical user interface, reducing the observer distance. In the case of a distance value equal to 30, the evaluation includes, for each cluster, a distance ratio calculated by a computerized data processing unit as the ratio between the cluster radius and a predefined distance value. Therefore:

[0276] - Cluster 1: Distance ratio = 1.5(30 / 20) < 2 -- Expanded;

[0277] - Cluster 2: Distance ratio = 1.5(30 / 20) < 2 -- Expanded;

[0278] - Cluster 3: Distance ratio = 0.75(30 / 40) < 2 -- Expanded;

[0279] - Cluster 4: Distance ratio = 1.0(30 / 30) < 2 -- Compressed because it's outside the visualization window; and

[0280] - Cluster 5: Distance ratio = 0.6 (30 / 50) < 2 -- Compressed because it is outside the visualization window.

[0281] Therefore, the nodes added to the visualization are:

[0282] Node = [{name="Node1", quality=1,x=1.5,y=2},{name="Node10", quality=1,x=1.5,y=2},{name="Node11", quality=1,x=,y=0.5},{name="Node12", quality=1,x=3,y=0.5},{name="Cluster4", quality=3,x=7,y=2},{name="Cluster5", quality=5,x=3,y=7}].

[0283] Nodes 1 and 10 are both set to the position of cluster node 1 because they have never been expanded. Similarly, nodes 11 and 12 are both set to the position of cluster node 2 because they have never been expanded.

[0284] All links in the base graph were also evaluated to determine which links to add to the visualization. Therefore:

[0285] - Link "1-11": Both nodes are visible. The link "node1-node11" has been added;

[0286] - Link "11-12": Both nodes are visible. The link "node 11-node 12" has been added;

[0287] - Link "11-3": Node 11 is visible, node 3 is within cluster 4, and a link "node 11-cluster 4" with unit strength is added;

[0288] - Link "2-3": Both nodes are within cluster 4. No link added.

[0289] - Link "3-4": Both nodes are within cluster 4. No link added.

[0290] - Link "1-10": Both nodes are visible. The link "node 1-node 10" has been added;

[0291] - Link "1-8": Node 1 is visible, and node 8 is within cluster 5, so a link "node 1-cluster 5" with cell strength was added;

[0292] - Link "10-6": Node 10 is visible, and node 6 is within cluster 5. A link "node 10-cluster 5" with cell strength is added;

[0293] - Link "8-9": Both nodes are within cluster 5. No link added.

[0294] - Link "8-7": Both nodes are within cluster 5. No link added.

[0295] - Link "8-6": Both nodes are within cluster 5. No link added; and

[0296] - Link "5-6": Both nodes are within cluster 5. The link has not been added.

[0297] Therefore, the visualization will have the following markings:

[0298] Node = [{name="Node1", quality=1, x=1.5, y=2}, {name="Node10", quality=1, x=1.5, y=2}, {name="Node11", quality=1, x=3, y=0.5}, {name="Node12", quality=1, x=3, y=0.5}, {name="Cluster4", quality=3, x=7, y=2}, {name="Cluster5", quality=5, x=3, y=7}].

[0299] Link = [{node="node1-node11", strength=1}, {node="node11-node12", strength=1}, {node="node11-cluster4", strength=1}, {node="node1-node10", strength=1}, {node="node1-cluster5", strength=1}, {node="node10-cluster5", strength=1}] .

[0300] Then, the above-mentioned method can be used for the said positioning. To accelerate the calculation of gravity, the method described in U.S. Patent Application No. 17187821 filed on February 28, 2021 can also be used, and the said patent application is incorporated herein by reference. The positioning visualization diagram shown in FIG. 8 can be represented by the following markings:

[0301] Node = [{name = "Node 1", mass = 1, x = 2, y = 2}, {name = "Node 10", mass = 1, x = 1, y = 2.75}, {name = "Node 11", mass = 1, x = 3, y = 1}, {name = "Node 12", mass = 1, x = 2, y = 0.25}, {name = "Cluster 4", mass = 3, x = 7, y = 2}, {name = "Cluster 5", mass = 5, x = 3, y = 7}];

[0302] Link = [{node = "Node 1 - Node 11", strength = 1}, {node = "Node 11 - Node 12", strength = 1}, {node = "Node 11 - Cluster 4", strength = 1}, {node = "Node 1 - Node 10", strength = 1}, {node = "Node 1 - Cluster 5", strength = 1}, {node = "Node 10 - Cluster 5", strength = 1}].

[0303] FIG. 8 also reports the central positions of extended clusters 1, 2, and 3 for calculating the central force, as described below.

[0304] Finally, consider moving the said visualization window in the same second example. In particular, the observer distance remains equal to a value of 30, but the visualization window moves along the x-axis to cover the area of 5 < x < 9 and 0 < y < 5.

[0305] In the case where such a distance value is equal to 30, the said evaluation includes, for each cluster, the computerized data processing unit calculates the distance ratio as the ratio between the cluster radius and the predefined distance value. Therefore:

[0306] - Cluster 1: Distance ratio = 1.5 (30 / 20) < 2 - Compressed because it is outside the visualization window;

[0307] - Cluster 2: Distance ratio = 1.5 (30 / 20) < 2 - Compressed because it is outside the visualization window;

[0308] - Cluster 3: Distance ratio = 0.75 (30 / 40) < 2 -- Compressed because it's outside the visualization window;

[0309] - Cluster 4: Distance ratio = 1.0(30 / 30) < 2 -- Expanded; and

[0310] - Cluster 5: Distance ratio = 0.6 (30 / 50) < 2 -- Compressed because it is outside the visualization window.

[0311] The nodes in the new visualization are therefore:

[0312] Node = [{name="Cluster 3", quality=4, x=2, y=1.5}, {name="Node 2", quality=1, x=7, y=2}, {name="Node 3", quality=1, x=7, y=2}, {name="Node 4", quality=1, x=7, y=2}, {name="Cluster 5", quality=5, x=3, y=7}]

[0313] Regarding cluster 1, since a single cluster node has already been extended along the center (xc, yc) of the x and y axes, the relative position (xr, yr) of the node with respect to the center of the single cluster node must be calculated and stored as follows:

[0314] - Center: xc=(2+1) / 2=1.5, yc=(2+2.75) / 2=2.375.

[0315] - Node 1: xr = 2 - 1.5 = 0.5, yr = 2 - 2.375 = -0.375; and

[0316] - Node 10: xr=1-1.5=-0.5, yr=2.75-2.375=0.375.

[0317] Regarding cluster 2, since a single cluster node has already been extended along the center (xc, yc) of the x and y axes, the relative position (xr, yr) of the node with respect to the center of the single cluster node must be calculated and stored as follows:

[0318] - Center: x = (3 + 2) / 2 = 2.5, y = (1 + 0.25) / 2 = 0.625;

[0319] - Node 11: xr=3-2.5=0.5, yr=1-0.625=0.375; and

[0320] - Node 12: xr=2-2.5=-0.5, yr=0.25-0.625=-0.375.

[0321] Regarding cluster 3, since a single cluster node has already been extended along the center (xc, yc) of the x and y axes, the relative positions (xr, yr) of its children with respect to the center of that single cluster node must be calculated and stored. The center position is calculated as the average position of its children, weighted by quality as follows:

[0322] - Center: x = (2.5 * 2 + 1.5 * 2) / 4 = 2, y = (0.635 * 2 + 2.37 * 2) / 4 = 1.5;

[0323] - Cluster 1: xr=1.5-2=-0.5, yr=2.375-1.5=0.875; and

[0324] - Cluster 2: xr=2.5-2=0.5, yr=0.625-1.5=-0.875.

[0325] Regarding nodes 2, 3, and 4, their initial positions are maintained at the position of cluster 4 itself, as it has never been expanded.

[0326] All links in the base graph are also evaluated to determine which links should be added to the visualization. Therefore:

[0327] - Link "1-11": Both nodes are within cluster 3. No link added.

[0328] - Link "11-12": Both nodes are within cluster 2. No link added.

[0329] - Link "11-3": Node 11 is within cluster 3, and node 3 is visible; a link "cluster 3-node 3" with cell strength is added.

[0330] - Link "2-3": Both nodes are visible. The link "node2-node3" has been added;

[0331] - Link "3-4": Both nodes are visible. The link "node 3-node 4" has been added;

[0332] - Link "1-10": Both nodes are within cluster 3. No link added.

[0333] - Link "1-8": Node 1 is in cluster 3, node 8 is in cluster 5, and a link "cluster 3-cluster 5" with unit strength is added;

[0334] - Link "10-6": Node 10 is in cluster 3, and node 6 is in cluster 5. The link "cluster 3-cluster 5" already exists, so its strength increases from 1 to 2;

[0335] - Link "8-9": Both nodes are within cluster 5. No link added.

[0336] - Link "8-7": Both nodes are within cluster 5. No link added.

[0337] - Link "8-6": Both nodes are within cluster 5. No link added; and

[0338] - Link "5-6": Both nodes are within cluster 5. The link has not been added.

[0339] Therefore, the visualization will have the following markings:

[0340] Node = [{name="Cluster 3", quality=4, x=2, y=1.5}, {name="Node 2", quality=1, x=7, y=2}, {name="Node 3", quality=1, x=7, y=2}, {name="Node 4", quality=1, x=7, y=2}, {name="Cluster 5", quality=5, x=3, y=7}];

[0341] Link = [{node="cluster3-node3", strength=1}, {node="node2-node3", strength=1}, {node="node3-node4", strength=1}, {node="cluster3-cluster5", strength=2}].

[0342] Since nodes 2, 3, and 4 had never been expanded before, they were initially placed at the location of cluster 4 (the center force number of cluster 4 is 411). Cluster 3 was located at the coordinates calculated above.

[0343] The positioning can then be performed using the method described above. To expedite the calculation of gravity, the method described in U.S. Patent Application No. 17,187,821, filed February 28, 2021, is also applicable and is incorporated herein by reference. The positioning diagram in Figure 9 can be represented by the following notation:

[0344] Node = [{name="Cluster 3", quality=4, x=2, y=1.5}, {name="Node 2", quality=1, x=7.25, y=3}, {name="Node 3", quality=1, x=6.5, y=2}, {name="Node 4", quality=1, x=7.25, y=1}, {name="Cluster 5", quality=5, x=3, y=7}];

[0345] Link = [{node="cluster3-node3", strength=1}, {node="node2-node3", strength=1}, {node="node3-node4", strength=1}, {node="cluster3-cluster5", strength=2}].

[0346] Therefore, this invention describes a method for representing large networks with minimal computational resources using cluster graphs.

[0347] In particular, the method according to the invention ensures that each iteration is as fast as possible for a selected distance value or for a selected visualization window, because the visualized graph (visualization) displayed in the graphical user interface only includes visible elements.

[0348] In particular, three main aspects need to be considered for the method according to the invention. The method is fast enough to allow for a smooth user experience in an interactive environment. The expansion and contraction operations ensure that the rest of the graph (the parts that are not expanded or contracted) are substantially unaffected; in this way, it is easier for users to construct a mental map representing the graph, and the user experience is smooth. Finally, when a cluster is contracted and then expanded, the nodes more or less return to their positions before the cluster was contracted, which ensures a smooth user experience because users can retain a mental map of the node positions.

[0349] The method according to the invention allows for an interactive approach, enabling increased detail to be seen in the chart as the user zooms in. Essentially, it can be considered as the user viewing the chart from a given distance, with the amount of visible detail increasing as the distance decreases. Therefore, the level of detail in the visualization is determined by the desired level of detail.

[0350] To ensure smooth positioning, expansion, and contraction, the method according to the invention ensures that the global forces acting on the graph and driving its positioning are almost constant for expansion and contraction operations. In other words, if a cluster is expanded or contracted, only the local forces near the cluster should change, while the forces on other parts of the graph remain almost unchanged. To achieve this, the compressed cluster is treated as a standard node (cluster node), noting that its mass is not just the mass of a single node, but the sum of the masses of all nodes within the cluster. Thus, when a high-level view of the graph is available and few clusters are visible, only a few nodes need to be computed, making the method highly scalable.

[0351] Furthermore, when the cluster is expanded or compressed, only the parts of the graph closest to the cluster are affected, because the overall mass of the cluster does not change. This results in the pseudo-gravity changing only locally, while remaining almost unchanged overall.

[0352] A similar approach is reserved for links, ensuring that the force they exert does not substantially change as the cluster is compressed or expanded, due to the strength of the links.

[0353] 1: Node 2: Node 3: Node 4: Node 5: Node 6: Node 7: Node 8: Node 9: Node 10: Node 11: Node 12: Node 101: Cluster 1 111: Central Force 201: Cluster 2 211: Central Force 301: Cluster 3 311: Central Force 401: Cluster 4 411: Central Force 501: Cluster 5

Claims

1. A method for representing multiple objects in a network using a graphical user interface with a graphical cluster, comprising: - Retrieve a base graph comprising all objects in the network, which are each a plurality of nodes and a plurality of links between the plurality of nodes, wherein a predefined node quality is assigned to each node; - Group two or more nodes into one or more clusters by a computerized data processing unit, wherein each cluster comprises at least two nodes; - Initialize a cluster by calculating the cluster quality and cluster radius of each cluster by the computerized data processing unit; - Evaluate the plurality of clusters by the computerized data processing unit and define a visualization representing the base graph as seen from a predefined distance value; and - Position the visualization in the graphical user interface; wherein the cluster quality of each cluster is calculated as the sum of the node quality of all nodes arranged in the cluster and the sub-cluster quality of all sub-clusters arranged in the cluster; wherein the cluster radius of each cluster is calculated as the product of the cluster quality and a predefined radius constant; wherein the evaluation includes: - Creating an empty visualization; - Calculating a distance ratio for each cluster by the computerized data processing unit as the ratio between the cluster radius and the predefined distance value; - The computerized data processing unit compares the distance ratio with a predefined distance ratio threshold; - The computerized data processing unit compresses the cluster, adding a compressed cluster node to the visualization for all child nodes and all sub-clusters within the cluster to be compressed when the distance ratio is higher than the predefined distance ratio threshold; - The computerized data processing unit expands the cluster, adding multiple nodes to the visualization for all child nodes and all sub-clusters within the cluster to be expanded when the distance ratio is lower than the predefined distance ratio threshold; - If the same link exists between two identical nodes in the base graph, the computerized data processing unit adds a link between the two nodes in the visualization; - If a link exists between a node within the cluster and a node outside the cluster in the base graph, the computerized data processing unit adds a link between the cluster and the node outside the cluster in the visualization, wherein each time a link needs to be added between the same node within the cluster and the node outside the cluster, a count of the link strength is incremented by an integer unit; and - If there is a link between a node in one cluster and another node in the same cluster in the base graph, the computerized data processing unit adds a link between the two clusters in the visualization graph, wherein each time a link needs to be added between the same two clusters, the count of the link strength is increased by an integer unit.

2. The method for representing multiple objects in a network in a graphical user interface with a graphical cluster as described in claim 1, wherein the evaluation and the positioning are iterated as the predefined distance value changes.

3. The method of representing multiple objects in a network with a graphical cluster in a graphical user interface as described in claim 1, wherein in the evaluation, if the multiple clusters are outside a predefined visualization window, the multiple clusters are compressed as part of the two-dimensional space visualized by the visualization in the graphical user interface.

4. The method for representing multiple objects in a network in a graphical user interface using a graphical cluster as described in claim 1, wherein the positioning of the visualization includes: - Assign the initial position to all nodes in the cluster; - Operations apply to multiple forces on each node and each node in the cluster; - Define new locations for the multiple nodes and the multiple cluster nodes using a speed Verlet algorithm; - Store the multiple new locations; - Iterate the operation, the definition, and the storage until the locations of the multiple nodes and the multiple cluster nodes become stable.

5. The method of representing multiple objects in a network in a graphical user interface with a graphical cluster as described in claim 4, wherein the assignment of initial positions consists of: assigning coordinates of cluster node positions to all nodes in an expanded cluster and all cluster nodes if the cluster has never been expanded before.

6. The method of representing multiple objects in a network in a graphical user interface with a graphical cluster as described in claim 4, wherein the assignment of initial positions consists of: if the cluster has been expanded, assigning coordinates of multiple relative positions relative to the center position of the cluster to all the nodes in one of the expanded clusters and all the cluster nodes.

7. The method for representing multiple objects in a network in a graphical user interface using a graphical cluster as described in claim 6, wherein the storage includes remembering the center position of the cluster, the center position of the cluster being calculated as: where: - These are the coordinates of the cluster center along the x-axis; - These are the coordinates of the cluster center along the y-axis; - is the quality of the i-th cluster element in the cluster; - is the x-coordinate of the i-th cluster element; and - is the y-coordinate of the i-th cluster element; - is the number of elements in the cluster.

8. The method for representing multiple objects in a network in a graphical user interface using a graphical cluster as described in claim 7, wherein the storage includes memorizing the multiple relative positions, the multiple relative positions being calculated as: where: - is the coordinate of the i-th cluster element relative to the center of the cluster along the x-axis; - is the coordinate of the i-th cluster element along the y-axis relative to the center of the cluster; - is the coordinate of the cluster center along the x-axis; - is the coordinate of the cluster center along the y-axis; - is the coordinate of the i-th cluster element along the x-axis; and - is the coordinate of the i-th cluster element along the y-axis.

9. The method of representing multiple objects in a network in a graphical user interface with a graphical cluster as described in claim 4, wherein the multiple forces acting on each node and each cluster node include calculating multiple link forces for the two nodes or cluster nodes "a" and "b" that form the link, respectively: Flx ba = K * S * (xb – xa); Fly ba = K * S * (yb – ya) and Flx ab = K * S * (xa – xb); Fly ab = K * S * (ya – yb) where: - K is a predefined elasticity constant; - S is the link strength of each link; - xa and ya are the coordinates of node "a"; - xb and yb are the coordinates of node "b"; - Flx ba is the x-component of the force exerted by node "b" on node "a"; - Fly ba is the y-component of the force exerted by node "b" on node "a"; - Flx ab is the x-component of the force exerted by node "a" on node "b"; - Fly ab is the y-component of the force exerted by node "a" on node "b".

10. The method for representing multiple objects in a network in a graphical user interface using a graphical cluster as described in claim 4, wherein the multiple forces acting on each node and each cluster node include multiple attractive forces between each pair of nodes and / or nodes that identify sources and receivers, as follows: Fx = G * Ms * Mr * (xs - xr) / d 3; Fy = G * Ms * Mr * (ys - yr) / d 3 where: - Ms is the mass of the source; - Mr is the mass of the receiver; - xs and ys are the coordinates of the source; - xr and yr are the coordinates of the receiver; - d is the distance between the positions of the source and the receiver; - G is a predefined gravitational constant; - Fx is the x-component of the force exerted by the source on the receiver; - Fy is the y-component of the force exerted by the source on the receiver.

11. The method of representing multiple objects in a network in a graphical user interface with a graphical cluster as described in claim 4, wherein the multiple forces acting on each node and each cluster node include computational damping forces for each node and / or each cluster node as: Fdx = D * Vx; Fdy = D * Vy where: - Vx is the velocity of the node or cluster node along the x-axis; - Vy is the velocity of the node or cluster node along the y-axis; - D is a predefined damping constant; - Fdx is the x-component of the damping force acting on the node or cluster node; - Fdy is the y-component of the damping force acting on the node or cluster node.

12. The method for representing multiple objects in a network in a graphical user interface using a graphical cluster as described in claim 4, wherein the multiple forces acting on each node and each cluster node include the computational center force of each node and / or each cluster node as: Wherein: - It is a predefined constant; - This is the number of nodes in the cluster to which the node or cluster node recursively belongs; - This indicates the level of the i-th cluster to which the node or cluster node belongs; - is the center coordinate of the i-th cluster to which the node or cluster node belongs, along the x-axis; - is the center coordinate of the i-th cluster to which the node or cluster node belongs, along the y-axis; - These are the coordinates of the node or cluster node along the x-axis; - is the coordinate of the node or cluster node along the y-axis; - is the x-component of the central force acting on the node or cluster node; and - is the y-component of the central force acting on the node or cluster node.

Citation Information

Patent Citations

  • Systems and methods for communications node upgrade and selection

    EP3928473A1

  • Method and system for network data transmitting

    TWI350674B

  • Methods and systems for displaying network information

    US7873920B2

  • Network management system

    US9282010B2