Visualization of data organized in a directed graph data structure
By organizing directed graphs into tree structures and adjusting display positions and sizes based on importance levels, the method ensures clear and intuitive navigation of complex data relationships, maintaining context and readability.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- INTER IKEA SYST
- Filing Date
- 2025-12-15
- Publication Date
- 2026-06-25
AI Technical Summary
Existing visual interfaces for navigating directed graph data structures face challenges in maintaining a stable spatial representation and facilitating intuitive understanding of relationships and importance levels, leading to fragmented understanding and loss of context during navigation.
A method that organizes a directed graph into a tree structure by determining primary parent nodes, assigning subregions, and adjusting display positions and sizes based on importance levels to prevent overlap, ensuring nodes with lower importance are moved or resized more to maintain clarity and hierarchy.
Enhances user comprehension of relationships and importance in the data, providing a stable mental map and facilitating intuitive navigation by ensuring all nodes are distinctly visible, maintaining the integrity and readability of the data representation.
Smart Images

Figure EP2025086991_25062026_PF_FP_ABST
Abstract
Description
[0001] VISUALIZATION OF DATA ORGANIZED IN A DIRECTED GRAPH DATA STRUCTURE
[0002] Technical Field
[0003] The present invention relates to a visual interface for navigating in data, and in particular to visualization of data organized in a directed graph data structure.
[0004] Background
[0005] Visual interfaces for navigation in data help users understand and explore large, complex datasets. These interfaces use visual elements such as menus, maps, graphs, charts, tables, or dashboards to represent data in a way that may be more intuitive and natural than text-based representations.
[0006] An advantage of using graphs to represent data may be that they facilitate understanding of relationships between data points in a way that is more intuitive and natural than other data representations. Graphs may provide a flexible way to explore and understand large and complex datasets.
[0007] One way of structuring a visual interface for navigation of a graph of data is using zoom and pan, in which interface users may be allowed to zoom in and out to view different levels of detail and pan around the graph to see different parts of it. However, while zooming and panning, a user may no longer understand the overall context represented. Moreover, such technique may not offer ways for selectively filtering the graph in a way that visualises the most relevant items for a user, during navigation.
[0008] Another way of structuring the visual interface is to use a dynamic layout algorithm, such as a force-directed graph drawing algorithm. This technique uses a physics-based simulation to position nodes in the graph, based on the relationships between the nodes and the strength of the edges connecting them. This may produce a more intuitive and aesthetically pleasing layout. However, each time the data representation may be visually different, meaning that a force-directed graph may not convey a stable spatial representation. A user may not easily form a spatial mental image of the structure of the information, which may be suboptimal for learning / knowledge transfer, as well as for (re)finding information.
[0009] Confidential There is thus a need for improvements in this context.
[0010] Summary
[0011] In view of the above, it is thus an objective of the present invention to overcome or at least mitigate the problems discussed above. In particular, it is an object to provide methods, devices and non-transitory computer-readable storage mediums which provide a flexible user interface for navigating in a directed graph data structure where the user may explore the data in a logical way, still understanding the relationships between data points in the directed graph data structure.
[0012] According to a first aspect of the present invention, there is provided a method for visualization of data organized in a directed graph data structure, the directed graph data structure comprising a plurality of nodes connected by edges.
[0013] The method comprises, in step a), organizing the directed graph data structure into a tree structure by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes.
[0014] The method further comprises: in step b): assigning a subregion of a 2D plane to each node in the tree structure, wherein the assigning comprises assigning to each child node a subregion within the subregion assigned to the parent node of the child node in the tree structure; in step c): receiving an importance level for each of the plurality of nodes; and in step d): mapping the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size.
[0015] The method further comprises, in step e) determining a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree, wherein determining the final display position and final display size comprises, for two nodes which would overlap on the display according to their preliminary display
[0016] Confidential position and preliminary display size, wherein a first node of the two nodes has a lower importance level compared to a second node of the two nodes, at least one of determining final display positions of the two nodes such that a distance between the final display position and the preliminary display position of the first node is equal to or larger than a distance between the final display position and the preliminary display position of the second node; or determining final display sizes of the two nodes such that a difference between the final display size and the preliminary display size of the first node is equal to or larger than a difference between the final display size and the preliminary display size of the second node, wherein the final display size of the first node is equal to, or smaller than, the preliminary display size of the first node, wherein the final display size of the second node is equal to, or smaller than, the preliminary display size of the second node;
[0017] Finally, the method comprises, in step f), rendering the nodes on the display according to their final display positions and final display sizes.
[0018] A directed graph is composed of multiple nodes connected by edges, where each edge has a direction, indicating a parent-child relationship between nodes. For each node that has more than one parent node, the method identifies and selects one primary parent node from its multiple parent nodes. By determining a primary parent node for each node with multiple parents, the method systematically converts the directed graph into a tree, ensuring that the resultant tree structure adheres to the hierarchy and parentchild relationship constraints of a tree. The parent-child relationships of the tree are then reflected on the 2D plane, where a parent node’s subregion is subdivided into smaller areas, with each smaller area being assigned to one of its child nodes. This hierarchical allocation creates a nested structure of subregions, accurately representing the tree's parent-child relationships on the 2D plane. The 2D plane is then mapped to the actual size of the display such that positions of the nodes on the 2D plane correspond correctly to positions on the physical display screen. A preliminary display position is determined for each node based on their assigned positions on the 2D plane, now scaled to fit the display. This involves translating the coordinates of each node from the 2D plane to the display dimensions. The preliminary display size for each node is determined based on
[0019] Confidential its importance level. This means that the more important a node is, the larger it will appear on the display, providing a visual cue to its significance in the graph.
[0020] Depending on the display size, tree structure, the relationships between the nodes, and the importance levels of the various nodes, the preliminary display positions and sizes may result in overlapping nodes when rendered on the display. To mitigate this, for two nodes which would overlap on the display according to their preliminary display position and preliminary display size, at least the node which has the lower importance level of the two is moved and / or reduced in size, to avoid or reduce the overlapping, and ensuring a clearer and more organized visual representation. In some examples, both the nodes are reduced in size and / or moved, but the node with less importance of the two is generally modified more than the other one, meaning that it is moved further and / or reduced in size more than the node with higher importance.
[0021] Using the techniques of this disclosure, users can more easily comprehend the relationships and relative importance of the visualized nodes in the graphical user interface (GUI), leading to an improved understanding and interaction with the data. By anchoring the visual representation to the original directed graph, the method provides a stable reference framework that helps users maintain their mental map of the data, facilitating easier tracking of changes and better insight into how individual nodes and their importance evolve over time. This method facilitates that the visual representation remains consistent and meaningful, facilitating better remembering, navigating, data analysis and decision-making.
[0022] In some examples, the method further comprises receiving a user interaction pertaining to a rendered node among the nodes rendered on the display.
[0023] In some examples, the method further comprises receiving a user interaction pertaining to a rendered node of one of the two nodes which would overlap on the display according to their preliminary display position and preliminary display size.
[0024] In some examples, the method further comprises receiving a user interaction pertaining to a rendered node of the node of the two nodes which would be overlapped by the other node of the two nodes on the display according to their preliminary display position and preliminary display size.
[0025] In some examples, the method further comprises determining a final display position and final display size of each node of the plurality of nodes such that no
[0026] Confidential overlapping nodes are displayed on the display. Advantageously, user comprehension and interaction may be enhanced, as all nodes may be distinctly visible, maintaining the integrity and readability of the data representation.
[0027] In some examples, determining a primary parent node among the one or more parent nodes comprises applying one or more rules indicating a hierarchy of the one or more parent nodes, wherein the parent node having the relatively highest position in the hierarchy is determined as the primary parent node.
[0028] These rules can vary depending on the specific context and requirements. For instance, one rule might prioritize the parent node with the earliest creation date, ensuring that the oldest parent node is chosen as the primary parent. Another rule could be based on organizational hierarchy, where the parent node associated with the highest-ranking individual or department is selected as the primary parent. In a further example, a rule could dictate that the node with the highest financial value is selected as the primary parent. These rules help in systematically determining the most appropriate primary parent node, which in turn may facilitate consistency and relevance in the hierarchical structure. If more than one of the one or more parent nodes are on the highest position in the hierarchy, the first one may prevail as the primary parent node.
[0029] In some example, the importance level of each of the plurality of nodes is determined using at least one of: a default importance level of each of the plurality of nodes; a user profile of a current user of the display; interactions with the data of the directed graph data structure by the current user of the display; user preferences of a current user of the display; or current and / or historic user interactions with the rendered nodes by the current user of the display.
[0030] In these examples, the importance level of each of the plurality of nodes is determined using various factors. These factors can include a default importance level assigned to each node, which provides a baseline for comparison. Such a default importance level may include, but not be limited to, push communication for types of nodes or individual nodes, set by senders. Moreover, the factors may provide personalizing, facilitating personalized visualization that aligns with the user's specific requirements and interests, enhancing the relevance and usability of the display. For example, the user interactions with the rendered nodes by the current user may comprise
[0031] Confidential browsing, searching, filtering and / or pinning a node. By incorporating user interactions and preferences, the method may result in that the most pertinent and frequently accessed nodes are prominently displayed, facilitating quicker access and better decision-making. Additionally, the dynamic adjustment based on user behaviour may help to maintain an up-to-date and contextually appropriate representation of the data, improving the overall user experience and engagement.
[0032] In some examples, the method comprises: in step g) receiving a user interaction pertaining to a rendered node among the nodes rendered on the display; in step h) updating the importance level of each of the plurality of nodes based on a relation between each node and the rendered node; and performing steps d) - f) again.
[0033] Advantageously, such adaptive update may help in maintaining the relevance of the displayed information, highlighting nodes that are more pertinent in the context of the user's interaction. Performing steps d) through f) again ensures that the entire display is recalibrated according to the updated importance levels. Notably, the positions of the nodes will still be based on the original directed graph, even after updating the importance levels. Although the updated importance levels may adjust the positions and / or sizes as described herein, this approach preserves the inherent structural context and relationships of the data. This consistency may ensure that users can still recognize and understand the original connections and dependencies between nodes, facilitating accurate data interpretation.
[0034] In some examples, step h) comprises updating the importance levels of nodes connected to the rendered node in the directed graph data structure, wherein an importance level of a node closer to the rendered node in the directed graph data structure is increased more than an importance level of a node further away from the rendered node in the directed graph data structure.
[0035] Advantageously, updating the importance levels based on closeness in the original data structure (closeness in the graph data) may facilitate that the most relevant nodes, in terms of actual data relationships, are highlighted. This method increases the importance of nodes that are directly connected or closer in the hierarchy to the rendered node, reflecting the true structure and dependencies within the dataset. By focusing on
[0036] Confidential the inherent connections within the data, users can gain a clearer understanding of the underlying relationships and dependencies. This enhanced comprehension may facilitate more effective navigation and search within the data, as users can intuitively follow the natural structure of the dataset.
[0037] In some examples, step h) comprises updating the importance levels of nodes, wherein an importance level of a node rendered closer to the rendered node on the display is increased more than an importance level of a node rendered further away from the rendered node on the display.
[0038] In this example, importance levels of nodes are updated based on their proximity on the display to a rendered node that has received user interaction. An advantage of this approach may be that that it dynamically prioritizes nodes that are from visual context relevant to the user's current focus. By increasing the importance levels of nodes near the interacted node, nodes that are likely to be of greater interest or relevance to the user are emphasized. Such proximity-based adjustment may ensure that related information is highlighted, enhancing the user's ability to understand and navigate the data effectively.
[0039] In some examples, step h) comprises updating the importance levels of nodes rendered within a threshold distance from the rendered node on the display, wherein an importance level of a node rendered closer to the rendered node on the display is increased more than an importance level of a node rendered further away from the rendered node on the display.
[0040] Unlike typical zooming, which can isolate parts of the graph, updating importance levels within a threshold distance according to these examples may maintain the overall context and structure of the graph. Users can see both the highlighted details and their place within the larger structure. The threshold may ensure that only nodes within a relevant proximity to the interacted node are highlighted, reducing visual clutter and focusing user attention where it matters most.
[0041] In some examples, the user interaction comprises a zoom event received from a pointing device, the zoom event indicating the rendered node. This interaction method may align closely with natural user behaviours, making the visualization tool more user- friendly and efficient.
[0042] Confidential In some examples, the user interaction defines a direction of movement of the rendered node on the display, wherein step h) comprises updating the importance level of nodes rendered within an angular range from the rendered node on the display, the angular range including a direction being opposite to the direction of movement.
[0043] For example, if the user moves the node upwards, the angular range may cover the downward direction relative to the node's original position. Nodes within this angular range have their importance levels updated, typically increasing their prominence on the display. By focusing on nodes in the direction opposite to the movement, the system may highlight potentially relevant or connected nodes that the user may not have initially considered. This may help in uncovering hidden relationships or dependencies within the data. Additionally, this method provides a more intuitive navigation experience, as users can interact with the display in a simple and straightforward manner. As users move nodes, the visualization dynamically adjusts to bring related nodes into prominence, facilitating smoother exploration of the data.
[0044] In some examples, the user interaction comprises a drag event received from a pointing device, the drag event indicating the rendered node. This interaction method may align closely with natural user behaviours, making the visualization tool more user- friendly and efficient.
[0045] In some examples, step b) comprises using one of a tree map algorithm, and a sunburst chart algorithm. The tree map algorithm may be one of a squarified tree map algorithm, a Voronoi tree map algorithm and a balloon tree map algorithm. Advantageously, these algorithms may enhance the clarity, usability, and aesthetic appeal of the data visualization, ensuring that hierarchical relationships are effectively communicated to the user.
[0046] In some examples, determining a preliminary display size of each node comprises using the size of the display, such that a combined preliminary display size of the plurality of nodes is equal to or less than the display size plus a predefined margin.
[0047] Advantageously, this method can adapt to different display sizes, making it versatile for use on various devices, from small screens to large monitors. It may ensure that the visualization is consistently effective, regardless of the display size, providing a seamless user experience across different platforms. Moreover, an improved
[0048] Confidential utilization of the available screen size may be facilitated. Since the surface of nodes exceeds the available space in the display with a margin, the nodes will compete for space and position on the display as discussed herein.
[0049] According to a second aspect of the invention, the above object is achieved by a system comprising one or more processors; and one or more non-transitory computer- readable media storing computer executable instructions that, when executed by the one or more processors, cause the system to perform actions comprising: a) organizing a directed graph data structure comprising a plurality of nodes connected by edges into a tree structure by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes; b) assigning a subregion of a 2D plane to each node in the tree structure, wherein the assigning comprises assigning to each child node a subregion within the subregion assigned to the parent node of the child node in the tree structure; c) receiving an importance level for each of the plurality of nodes; d) mapping the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size; e) determining a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree, wherein determining the final display position and final display size comprises, for two nodes which would overlap on the display according to their preliminary display position and preliminary display size, wherein a first node of the two nodes has a lower importance level compared to a second node among the two nodes, at least one of: determining final display positions of the two nodes such that a distance between the final display position and the preliminary display position of the first node is equal to or larger than a distance between the final display position and the preliminary display position of the second node; or
[0050] Confidential determining final display sizes of the two nodes such that a difference between the final display size and the preliminary display size of the first node is equal to or larger than a difference between the final display size and the preliminary display size of the second node, wherein the final display size of the first node is equal to, or smaller than, the preliminary display size of the first node, wherein the final display size of the second node is equal to, or smaller than, the preliminary display size of the second node; and f) rendering the nodes on the display according to their final display positions and final display sizes, thereby visualizing data organized in a directed graph data structure.
[0051] According to a third aspect of the invention, the above object is achieved by a one or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein the instructions, when executed, cause the one or more processors to perform operations comprising: a) organizing a directed graph data structure comprising a plurality of nodes connected by edges into a tree structure by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes; b) assigning a subregion of a 2D plane to each node in the tree structure, wherein the assigning comprises assigning to each child node a subregion within the subregion assigned to the parent node of the child node in the tree structure; c) receiving an importance level for each of the plurality of nodes; d) mapping the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size; e) determining a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree, wherein determining the final display position and final display size comprises, for two nodes which would overlap on the display according to their preliminary display position and preliminary display size,
[0052] Confidential wherein a first node of the two nodes having a lower importance level compared to a second node of the two nodes, at least one of determining final display positions of the two nodes such that a distance between the final display position and the preliminary display position of the first node is equal to or larger than a distance between the final display position and the preliminary display position of the second node; or determining final display sizes of the two nodes such that a difference between the final display size and the preliminary display size of the first node is equal to or larger than a difference between the final display size and the preliminary display size of the second node, wherein the final display size of the first node is equal to, or smaller than, the preliminary display size of the first node, wherein the final display size of the second node is equal to, or smaller than, the preliminary display size of the second node; and f) rendering the nodes on the display according to their final display positions and final display sizes, thereby visualizing data organized in a directed graph data structure.
[0053] The second and third aspects may generally have the same features and advantages as the first aspect. It is further noted that the disclosure relates to all possible combinations of features unless explicitly stated otherwise.
[0054] Brief Description of the Drawings
[0055] The above, as well as additional objects, features, and advantages of the present invention, will be better understood through the following illustrative and non-limiting detailed description of embodiments of the present disclosure, with reference to the appended drawings, where the same reference numerals will be used for similar elements, wherein:
[0056] Figure 1 shows a directed graph data structure according to examples;
[0057] Figure 2 shows the directed graph data structure of figure 1 with indication of the primary parents for the nodes and the hierarchies of the nodes, according to examples;
[0058] Figure 3 shows the directed graph data structure of figure 2 in the form of a tree structure, according to examples;
[0059] Confidential Figure 4 shows assigning a subregion of a 2D plane to each node in the tree structure of figure 3, according to examples;
[0060] Figure 5 shows the process of setting a preliminary display size of the nodes according to the respective importance level and the size of a display, according to embodiments;
[0061] Figure 6a shows the nodes of figure 5 as rendered on the display, with adjustments of two nodes that would otherwise overlap, according to embodiments;
[0062] Figure 6b shows the nodes of figure 5 as finally rendered on the display, according to embodiments;
[0063] Figures 7a-b show by way of example visualization of previously unidentifiable nodes on the display based on direction of movement of a dragging event applied to a rendered node;
[0064] Figure 8 shows by way of example visualization of previously unidentifiable nodes on the display based on a zoom event applied to a rendered node;
[0065] Figure 9 shows a flow chart of method for visualization of data organized in a directed graph data structure according to embodiments.
[0066] Detailed Description
[0067] Visualization and navigation in data graph structures may be challenging due to the inherent complexity of the relationships between nodes and edges. One problem that may occur is scalability; as the number of nodes and edges in a graph grows, the complexity of the visualization increases exponentially. Another potential problem relates to interaction and navigation; providing users with intuitive tools to explore and interact with the graph. A further issue that may arise is the loss of context that may occur when focusing on a particular subset of nodes and edges. When users are zoomed in, they might not be able to grasp the overall structure, patterns, or relationships that exist across the entire graph. This can lead to a fragmented understanding of the data and make it difficult for users to gain insights from the visualization.
[0068] The present disclosure aims to provide techniques for visualization and intuitive navigation of a data graph structure on a screen or other means of visualization that may not fit the entire data graph structure without visual clutter.
[0069] Confidential Figure 1 shows a graph data structure 100. A graph data structure 100 is a way of representing relationships between objects or entities. It consists of a set of vertices or nodes, which represent the objects or entities, and a set of edges or connections, which represent the relationships between them. In a graph data structure, each node may be connected to one or more other nodes. The graph data structure 100 is directed, meaning that each edge has a specific direction, indicating a one-way relationship from one node to another, which defines the hierarchy and flow of data within the structure. This is indicated in figure 1 using the arrows of the edges.
[0070] In some cases, it is not possible or practical to visualize the entire graph data structure 100 at once for exploration, for example due to screen size limitation and the risk of visual clutter. Large graphs with many nodes and edges may quickly become cluttered and difficult to read. To be able to visualize the graph data structure 100 such that users can more easily comprehend the relationships and relative importance of the visualized nodes in the graphical user interface, first, for each node having one or more parent nodes in the directed graph data structure, a primary parent node is determined. The result of this is shown in figure 2, where the numbers of each node indicate a hierarchy in the directed graph data structure.
[0071] In figure 2, the graph data structure 100 from figure 1 is shown in a new representation 200, in which each node (except the root node 202) has a primary parent. In figure 2, the hierarchy is represented by the style of the edges between the nodes (dashed 208 vs solid 210) as well as the numbering of the nodes. For example, node 202 is determined to be the primary parent of node 204, which in turn is the primary parent of node 206. In the directed graph data structure 100 in figure 1, node 206 has two parent nodes 212 and 204, but in figure 2, the node 204 is selected as primary parent as indicated by the solid line 210 while node 212 is not selected as primary parent as indicated by the dashed line 208. However, it is important to note that node 206 is still connected to node 212 in the graph data structure 200.
[0072] In cases where a node has only one parent node in the graph data structure 100, such as node 204 which has a single parent node 202, the primary parent of node 204 will be that single parent node 202. When a node has multiple parent nodes, as with node 206 which has two parent nodes 204, 212, the process of assigning a primary parent may involve applying one or more rules to establish a hierarchy among the parent
[0073] Confidential nodes 204, 212. These rules can include business-specific criteria or even incorporate elements of randomness. Examples of business rules may involve organizational hierarchy, financial value, popularity, or other implementation-specific criteria.
[0074] The processing of graph data structure 100 from figure 1 into the graph data structure 200 in figure 2 results in that the original graph data structure 100 can be organized into a tree structure 400. This is shown in figure 3 where the tree structure 400 is determined based on the graph data structure 200 in figure 2. The node 202 is the root node of the tree structure 400. Node 204 is a child node to the node 202, and node 206 is a child node to node 204, as expected due to the assignment of the primary parents as discussed above in conjunction with figure 2. Node 212, which is connected to node 206 in the graph data structure 100 but not in a child-primary parent relationship according to the processing applied to the graph data structure 200 in figure 2, is in a sub-tree separate from node 206 in the tree structure 400.
[0075] Figure 4 illustrates how each node in the tree structure 400 is mapped to a subregion in a 2D plane 402, ensuring that each child node's subregion is contained within the subregion assigned to its (primary) parent node. In this example, the root node 202 is assigned a subarea 404 that encompasses the entire 2D plane 402, as only one tree structure 400 is being mapped to the 2D plane 402. If the directed graph data structure had two root nodes, it would result in two separate tree structures, each assigned to its own distinct portion of the 2D plane 402. The techniques disclosed herein are thus applicable to any graph data structures, regardless of the number of root nodes. This approach ensures that multiple tree structures can be visualized simultaneously, with each tree structure clearly delineated within the overall 2D space. This flexibility allows for effective visualization of complex data sets with varying hierarchical structures.
[0076] Node 204 is assigned a subarea 406 within the subarea 404 allocated to its parent node 202. Similarly, node 206 is assigned a subarea, indicated by the lines surrounding node 206, within the subarea 406 designated for its parent node 204. While the processed directed graph data structure 200 in Figure 2 includes three levels of hierarchy, the techniques described herein are applicable to any number of hierarchical levels, providing a scalable solution for complex data structures.
[0077] Confidential Node 212, which belongs to a different subtree in the tree structure 400 compared to node 206 as discussed above, is thus not within the same subarea 406 as node 206. Instead, it is assigned a subarea within subarea 408. However, it should be noted that subarea 408 in turn is part of the subarea 404 assigned to the grandparent node 202 of node 206.
[0078] In figure 4, assigning a subregion of a 2D plane 402 to each node in the tree structure 400 comprises using a squarified tree map algorithm. The squarified tree map algorithm recursively divides the parent node's rectangle into smaller rectangles for its child nodes, with the goal of maintaining aspect ratios as close to 1 : 1 as possible. This is done by iteratively placing nodes in rows and adjusting the layout to keep the rectangles near square. However, using a squarified tree map algorithm is just one example, and other suitable algorithms include Voronoi tree map algorithm which may offer an organic and visually interesting partitioning of space, compared to traditional rectangular divisions. Yet another example is the balloon tree map algorithm in which nodes are placed in concentric circles, wherein the parent node's circle encompasses the circles of its child nodes, maintaining hierarchical containment. The balloon tree map algorithm may provide a clear and balanced view of hierarchical data, which can be particularly effective for balanced trees with moderate depth. Another example is using a sunburst chart algorithm in which the tree is represented radially, with each level of the tree forming a ring around the centre and in which child nodes occupy sectors within the parent node's sector, creating a nested circular hierarchy.
[0079] Figure 5 illustrates the nodes of the directed graph data structure ordered according to their respective importance levels. In figure 5, the most important nodes (highest importance level) are displayed at the top, with the importance levels decreasing progressively as you move down the figure.
[0080] The importance level of each of the plurality of nodes may be determined using at least one of the following factors: a default importance level assigned to each node, a user profile of the current user of the display, interactions with the data of the directed graph data structure by the current user, user preferences of the current user, or current and / or historic user interactions with the rendered nodes. For instance, a user profile currently logged into the system that indicates a particular interest, role, or focus can influence the importance level. Similarly, defined user preferences of the current user
[0081] Confidential can also impact the importance level. Historical data, whether from the current session, previous sessions by the same user, or overall usage patterns within the system, can further influence the importance level. The importance level may further be based on organization preferences (i.e., the provider of the data of the directed graph data structure), to emphasizing content recency, high content quality (credibility, accuracy, and authoritativeness), or focusing on region-specific relevance (location). The importance level may further be based on e.g. popularity of node data, such as sales numbers, click through rate, etc. Additionally, the importance level may be at least partly predefined according to a default configuration.
[0082] In some examples, only a certain number of nodes will be visually identifiable when rendered in a GUI. This means that the remaining nodes may be completely hidden in the GUI or rendered in a way that prevents them from being visually identifiable. A node is visually identifiable if at least some of the information it represents can be understood from its rendered appearance. This approach ensures that the most relevant or important nodes are prominently displayed and easily interpretable, while less critical nodes may be minimized or omitted to reduce clutter and enhance overall readability.
[0083] The number of visually identifiable nodes, and their respective initial display sizes (referred herein as preliminary display size) may be determined using the size of the display 502 on which the graphical representation of the graph data structure will be rendered. For example, in figure 5, nine nodes (indicated by dashed borders in figure 5) will be visually identifiable, while the remaining 12 nodes (indicated by solid borders in figure 5) will not be visually identifiable. For example, the node with hierarchy index 1.4.1 (reference 212) and the node with hierarchy index 1.2.3 (reference 206) from figures 2-4 is determined to be visually identifiable while the root node (hierarchy index 1, reference 202) and the node with hierarchy index 1.2 (reference 204) from figures 2- 4 is determined to not be visually identifiable.
[0084] In some examples, a threshold importance level is set based on the display size and / or resolution to determine the number of visually identifiable nodes. In other examples, the number of visually identifiable nodes is directly set based on the display size and / or resolution.
[0085] Confidential The display size / resolution is also used to set the preliminary display sizes of the nodes. In some examples, determining a preliminary display size of each node comprises using the size of the display 502, such that a combined preliminary display size of the plurality of nodes is equal to or less than the display size plus a predefined margin.
[0086] In some examples, the nodes determined to not be visually identifiable may be assigned a single predefined small size or different small sizes based on their respective importance levels. This is shown in the right part of figure 5, where the root node (hierarchy index 1, reference 202) and the node with hierarchy index 1.2 (reference 204) got a slightly bigger size compared to the rest of the nodes determined to not be visually identifiable. In some cases, not shown in figure 5, some or all of these non visually identifiable nodes may be assigned a size of zero, meaning they will be completely hidden in the rendered GUI.
[0087] For the nodes determined to be visually identifiable, a higher importance level results in a larger preliminary display size. For example, the preliminary display size of the node with hierarchy index 1.4.1 (reference 212) is determined to be larger than the preliminary display size of the node with hierarchy index 1.2.3 (reference 206).
[0088] The nodes will also be assigned a preliminary display position on the display 502. This process involves mapping their positions from the 2D plane 402 to the display 502, taking into account the size of the display 502. By doing this, each node's coordinates on the 2D plane 402 are translated to corresponding coordinates on the display 502. However, depending on the sizes of the nodes and optionally depending on which nodes are determined to be visible on the display, the mapped nodes according to their mapped (preliminary display) positions may overlap on the display 502. This potential overlap occurs because, as nodes are scaled and positioned based on their importance levels (influencing their preliminary display sizes as explained above), their assigned areas on the display 502 might intersect. This is especially likely when many nodes need to be displayed in a limited space, or when larger nodes are mapped near each other. Managing this overlap may be needed for maintaining a clear and usable visualization, and further adjustments may thus be needed to ensure that important nodes remain distinct and easily identifiable. Such an adjustment may be accomplished by determining a final display position and final display size of each node of the
[0089] Confidential plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree. The threshold degree may in some cases be zero (no overlap allowed). The threshold degree may in some cases be defined such that some overlap is allowed any may be defined in absolute terms (e.g., 10 pixels) or in relative terms (e.g., X percentages of the size of smaller / larger / combined display area assigned to the overlapping nodes).
[0090] The determination of the final display position and final display size may thus involve adjustments for two nodes that would overlap on the display according to their preliminary display positions and sizes. One node (the first node) typically has a lower importance level compared to the other node (the second node). To manage the overlap, at least one of a position adjustment and a size adjustment may be applied.
[0091] The position adjustment comprises moving one or both of the nodes such that the final display position of at least one node differs from its respective preliminary display position. To maintain a stable visualization where more important nodes remain relatively unchanged between updates of the GUI (e.g., when user input results in updating of importance levels of the nodes), the distance between the final and preliminary positions of the first node (the less important node) will be greater than or sometimes equal to the distance between the final and preliminary positions of the second node (the more important node).
[0092] The size adjustment comprises reducing the size of one or both of the nodes such that the final display size of at least one node differs from its respective preliminary display size. To ensure a stable visualization where more important nodes remain relatively unchanged between updates of the GUI, the reduction in size for the first node (the less important node) will be greater than or equal to the reduction in size for the second node (the more important node).
[0093] Figure 6A shows by way of example such an adjustment of node 212 (1.4.1) in relation to node 602 (1.4.2) on display 502. As explained in conjunction with figure 5, the node 212 gets a larger preliminary display size since it has a higher importance level compared to the node 602. As shown in figure 6 A using dashed lines, the preliminary display position, and the preliminary display size of the two nodes 212, 602 results in an overlap between the two nodes 212, 602. Consequently, to improve clarity of the data represented by the GUI of the display 502, the position and / or sizes of the
[0094] Confidential overlapping nodes 212, 602 needs to be adjusted. In the example shown in Figure 6A, the more important node 212 is moved slightly to the left while its display size remains unchanged. In contrast, the less important node 602 is moved to the right (the distance between the final display position and the preliminary display position of the less important node 602 is larger than a distance between the final display position and the preliminary display position of the more important node 212) and its display size is slightly reduced.
[0095] In some examples, when nodes overlap according to their preliminary display position and size, they both shrink in size. However, the smaller (less important) node of the two overlapping nodes generally shrinks proportionally more. The greater the difference in preliminary display size (and thus difference in importance) between the nodes, generally the more significant the difference in how much each node shrinks. During this process, some visually identifiable nodes (indicated in figure 6A by including the hierarchy from the tree structure 400 from figure 3 within the borders of the node) may shrink to the point of becoming non-identifiable, (depicted as nodes with their hierarchy outside the borders of the node), because the available space of the display 502 does not permit otherwise.
[0096] It should be noted that the visualization of the adjustment of nodes 212, 602 in Figure 6A as well as the position and size of the remaining nodes is schematic and intended to clearly convey the adjustment techniques described herein; it may not precisely represent the adjustment and visualization that would occur in a real implementation.
[0097] Figure 6B shows by way of example a GUI displaying the information of the directed data graph structure of figure 1 by rendering the nodes of the directed data graph structure on the display 502 according to their final display positions and final display sizes as described above. As also mentioned above, some of the nodes (e.g. nodes with reference number 206, 212, 602) are rendered to be visually identifiable due to their relative importance, while some of the nodes (e.g. nodes with reference number 202, 204) are rendered to not be visually identifiable of the same reason. In figure 6B, the lower important nodes are still indicated in the GUI by small dots. By showing the non-identifiable nodes in the GUI, areas of high information density may still be indicated and thus intuitively be further explored by user interactions. However, as
[0098] Confidential described above, in some examples, the lower important nodes are completely hidden in the GUI.
[0099] Figures 1-6 demonstrate how data organized in a directed graph data structure can be visualized on a display based on the current (momentary) importance levels of each node in the structure. Such techniques are further exemplified in figure 9, showing a flow chart of method 900 for visualization of data organized in a directed graph data structure.
[0100] The method 900 comprises organizing S902 the directed graph data structure (as described e.g., in conjunction with figure 1) into a tree structure (as described e.g., in conjunction with figure 3) by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes (as described e.g., in conjunction with figure 2).
[0101] The method 900 further comprises assigning S904 a subregion of a 2D plane to each node in the tree structure, wherein the assigning comprises assigning to each child node a subregion within the subregion assigned to the parent node of the child node in the tree structure. This step is further described e.g., in conjunction with figure 4.
[0102] The method 900 further comprises receiving S906 an importance level for each of the plurality of nodes, and mapping S908 the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size. This step is further described e.g., in conjunction with figure 5.
[0103] The method 900 further comprises determining S910 a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree. This step is further described e.g., in conjunction with figure 6A.
[0104] The method 900 further comprises rendering S912 the nodes on the display according to their final display positions and final display sizes. This step is further described in e.g., conjunction with figure 6B.
[0105] Advantageously, in some embodiments, users can interact with the nodes to make navigational, search, or filtering choices. As such, the method 900 may comprise
[0106] Confidential receiving S914 a user interaction pertaining to a rendered node among the nodes rendered on the display. Based on the user interaction, the importance level of each of the plurality of nodes may be updated S916. The updated importance levels may cause the preliminary size of the nodes to be updated. In other words, steps S908, S910 and S912 may be performed again to provide an updated GUI (rendered nodes on the display) based on the updated importance levels. By doing so, users can indicate more specific, changing, or temporary information needs, allowing the visualization to dynamically adjust and display the most relevant information accordingly. The user interaction may be used to provide progressive disclosure of the data graph structure; reveal information gradually, showing only the most important elements initially and providing additional details on demand through user interactions such as hover, click, or zoom. Moreover, the progressive disclosure may be implemented such that the risk of losing context of newly displayed information is reduced.
[0107] The step of updating S916 the importance levels may comprise updating the importance levels of nodes connected to the rendered node (the interaction node) in the directed graph data structure. Specifically, an importance level of a node closer to the rendered node in the directed graph data structure is increased more than an importance level of a node further away from the rendered node in the directed graph data structure. Consequently, the importance levels are updated based on closeness in the original data structure (closeness in the directed graph data 100) may facilitate that the most relevant nodes, in terms of actual data relationships, are shown in the GUI. For example, if the user interacts with node 212 (hierarchy 1.4.1), the connected nodes with hierarchies 1.4, 1, and 1.2.3 may experience a substantial increase in importance, while the node with hierarchy 1.3 may see a smaller increase, and the node with hierarchy 1.3.1 an even smaller increase, based on the connections shown in Figure 2. It should be noted that user interaction may also lead to a decrease in importance for nodes far away from the interacted node in the directed graph data structure. This dynamic adjustment may ensure that the GUI remains focused on the most contextually relevant information according to the data relationships.
[0108] Additionally, or alternatively, the step of updating S916 the importance levels may comprise updating the importance levels of nodes, wherein an importance level of a node rendered closer to the rendered node on the display is increased more than an
[0109] Confidential importance level of a node rendered further away from the rendered node on the display. For example, if the user interacts with node 212 (hierarchy 1.4.1), the nodes with hierarchies 1.3.1, 1.3.2, 1.4, 1.4.2, and 1.4.3 may experience a substantial increase in importance, while the node with hierarchy 1.4.4 and 1.3 may see a smaller increase, and the node with hierarchy 1.1.3 an even smaller increase, based on the closeness of the rendered nodes as shown in Figure 6B. Similar to the above, it should be noted that user interaction may also lead to a decrease in importance for nodes rendered far away from the interacted node on the display 502. This dynamic adjustment may ensure that the GUI remains focused on the most contextually relevant information according to the users focus on the display 502.
[0110] In some examples, the user interaction defines a direction of movement of the rendered node on the display. In these examples, the step of updating S916 the importance levels comprises updating the importance level of nodes rendered within an angular range from the rendered node on the display, the angular range including a direction being opposite to the direction of movement. The user interaction may for example comprise a drag event received from a pointing device, the drag event indicating the rendered node and the angular range. Such a functionality is shown in figures 7A-B.
[0111] Figure 7A shows by way of example a user interaction 704 from a user. In the example of figure 7A, the user interaction 704 is represented by a touch event by a finger of the user on a display 502.
[0112] In figure 7A, the user interaction 704 indicates the first node 702. Moreover, the user interaction further indicates nodes 706 rendered within an angular range from the rendered node 702 on the display. These nodes 706 are visualized in black in Figures 7 A and 7B. The direction of movement 212 may then be used to identify which nodes that should receive an updated importance level. The importance level may further be updated based on how far from the first node 702 they are rendered on the display 502. Figure 7A shows that the neighbouring nodes 706 within a threshold distance from the first node 702 are getting an increased importance level. However, this is just for ease of explanation. In some examples, nodes further away within the angular range defined by the user interaction 704 may also receive an increase in importance level. The angular range may be determined from a reference point in the first node (e.g., the centre
[0113] Confidential point or the interaction point). This angular range may include a direction opposite to the direction of the user interaction 704.
[0114] For example, the angular range may define a 90-degree sector (or any other sized sector) with its origin at the centre point of the first node 702, oriented in the direction opposite to the user's movement.
[0115] As shown in figure 7B, the user interaction 704 may result in that previously non-identifiable nodes 706 are identifiable according to the updated importance levels. Moreover, a previously identifiable node 708 (“Beds with storage” in figure 7A) is after the user interaction non-identifiable (as shown in figure 7B), again according to the updated importance levels.
[0116] This method allows for a dynamic and context-sensitive adjustment of importance levels. The user interaction 704 results in the neighbouring nodes 706 growing in size due to an increase in their importance level. As a result, the remaining nodes may shrink in size to still fit the display 502, possibly because their importance has decreased relative to the nodes 706 increasing in size, and / or their absolute importance levels have been reduced.
[0117] In some examples, the step of updating S916 the importance levels may be similar to a zoom command. In these examples, the importance levels of nodes rendered within a threshold distance from the rendered node (the node that the user interacts with) on the display is updated, wherein an importance level of a node rendered closer to the rendered node on the display is increased more than an importance level of a node rendered further away from the rendered node on the display. The user interaction may for example comprise a zoom event received from a pointing device, the zoom event indicating the rendered node. Such a functionality is shown in figure 8.
[0118] In figure 8, the user interaction is received by means of interactions 704 with a touch screen. In other examples, the user interaction is received from a pointing device, such as a mouse, trackball, etc. In a VR / AR / XR environment, corresponding ways of providing user interaction may be used, e.g., hand tracking, eye tracking, etc. Also voice or any other input means may be used to provide the user interaction. This applies to all embodiments of user interactions as described or understood herein, such as above in conjunction with figures 7A-B.
[0119] Confidential The left part of Figure 8 shows a snapshot of the GUI while the user interaction is ongoing, and the right part of Figure 8 shows the GUI after the user interaction is completed. The user interaction 704 is represented by a zoom event by means of a multi touch event (e.g., pinching) from a hand of a user. In figure 8, the user interacts 704 with the rendered node 702. The neighbouring nodes 706 on the GUI of the display 502 are shown with a striped pattern in figure 8. The neighbouring nodes 706 may comprise identifiable and / or non-identifiable nodes as discussed above.
[0120] The user interaction 704 results in the neighbouring nodes 706 growing in size due to an increase in their importance level, which is based on their proximity to the rendered node 702 in the GUI. As a result, the remaining nodes shrink in size, possibly because their importance has decreased relative to the neighbouring nodes, and / or their absolute importance levels have been reduced.
[0121] Consequently, progressive disclosure of the data graph structure may be achieved by showing only the most important elements initially and providing additional details on demand through user interactions such as zoom. Moreover, the progressive disclosure may be implemented such that the risk of losing context of newly displayed information is reduced.
[0122] The methods and functionality described herein, for example in conjunction with figures 1-9, may be implemented by a system comprising one or more devices. For example, steps S902-S910 of figure 9 may be implemented on one device (e.g. a server), while the end result may be rendered (step S912) on another device (e.g., a client device such as a laptop, tablet, smart phone, VR headset, AR headset, etc.). In other examples, the methods and functionality may be implemented in a single device (e.g. a client device). The directed graph data structure may be received from a database, or from memory of the device implementing some or all of the functionality described herein. In any event, the system comprises one or more processors; and one or more non- transitory computer-readable media storing computer executable instructions that, when executed by the one or more processors, cause the system to perform actions as discussed herein. Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. The
[0123] Confidential processors can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
[0124] The above embodiments are to be understood as illustrative examples of the invention. It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.
[0125] Confidential
Claims
26CLAIMS1. A computer-implemented method (900) for visualization of data organized in a directed graph data structure (100, 200), the directed graph data structure comprising a plurality of nodes (202, 204, 206, 212, 602, 702, 706) connected by edges (208, 210), the method comprising the steps of: a) organizing (S902) the directed graph data structure into a tree structure (400) by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes; b) assigning (S904) a subregion (404, 406, 408) of a 2D plane (402) to each node in the tree structure, wherein the assigning comprises assigning to each child node a subregion within the subregion assigned to the parent node of the child node in the tree structure; c) receiving (S906) an importance level for each of the plurality of nodes; d) mapping (S908) the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size; e) determining (S910) a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree, wherein determining the final display position and final display size comprises, for two nodes (212, 602) which would overlap on the display according to their preliminary display position and preliminary display size, wherein a first node of the two nodes has a lower importance level compared to a second node of the two nodes, at least one of: determining final display positions of the two nodes such that a distance between the final display position and the preliminary display position of the first node is equal to or larger than a distance between the final display position and the preliminary display position of the second node; or determining final display sizes of the two nodes such that a difference between the final display size and the preliminary display size of the first nodeConfidentialis equal to or larger than a difference between the final display size and the preliminary display size of the second node, wherein the final display size of the first node is equal to, or smaller than, the preliminary display size of the first node, wherein the final display size of the second node is equal to, or smaller than, the preliminary display size of the second node; f) rendering (S912) the nodes on the display according to their final display positions and final display sizes; and g) receiving (S914) a user interaction pertaining to a rendered node (702) among the nodes rendered on the display.
2. The method of claim 1, wherein step e) comprises determining a final display position and final display size of each node of the plurality of nodes such that no overlapping nodes are displayed on the display.
3. The method of any one of claims 1-2, wherein determining a primary parent node among the one or more parent nodes comprises applying one or more rules indicating a hierarchy of the one or more parent nodes, wherein the parent node having the relatively highest position in the hierarchy is determined as the primary parent node.
4. The method of any one of claims 1-3, wherein the importance level of each of the plurality of nodes is determined using at least one of: a default importance level of each of the plurality of nodes; a user profile of a current user of the display; interactions with the data of the directed graph data structure by the current user of the display; user preferences of a current user of the display; or current and / or historic user interactions with the rendered nodes by the current user of the display.
5. The method of any one of claims 1-4, further comprising:Confidentialh) updating (S916) the importance level of each of the plurality of nodes based on a relation between each node and the rendered node; and performing steps d) - f) again.
6. The method of claim 5, wherein step h) comprises: updating the importance levels of nodes connected to the rendered node in the directed graph data structure, wherein an importance level of a node closer to the rendered node in the directed graph data structure is increased more than an importance level of a node further away from the rendered node in the directed graph data structure.
7. The method of any one of claims 5-6, wherein step h) comprises: updating the importance levels of nodes, wherein an importance level of a node rendered closer to the rendered node on the display is increased more than an importance level of a node rendered further away from the rendered node on the display.
8. The method of any one of claims 5-7, wherein step h) comprises: updating the importance levels of nodes rendered within a threshold distance from the rendered node on the display, wherein an importance level of a node rendered closer to the rendered node on the display is increased more than an importance level of a node rendered further away from the rendered node on the display.
9. The computer-implemented method of claim 8, wherein the user interaction comprises a zoom event received from a pointing device, the zoom event indicating the rendered node.
10. The method of any one of claims 5-7, wherein the user interaction defines a direction of movement of the rendered node on the display, wherein step h) comprises: updating the importance level of nodes rendered within an angular range from the rendered node on the display, the angular range including a direction being opposite to the direction of movement.Confidential2911. The computer implemented method of claim 10, wherein the user interaction comprises a drag event received from a pointing device, the drag event indicating the rendered node.
12. The computer implemented method of any one of claims 1-11, wherein step b) comprises using one of: a tree map algorithm, and a sunburst chart algorithm.
13. The computer implemented method of any one of claims 1-12, wherein determining a preliminary display size of each node comprises using the size of the display, such that a combined preliminary display size of the plurality of nodes is equal to or less than the display size plus a predefined margin.
14. A system comprising one or more processors; and one or more non-transitory computer-readable media storing computer executable instructions that, when executed by the one or more processors, cause the system to perform actions comprising: a) organizing (S902) a directed graph data structure (100, 200) comprising a plurality of nodes (202, 204, 206, 212, 602, 702, 706) connected by edges (208, 210), into a tree structure (400) by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes; b) assigning (S904) a subregion (404, 406, 408) of a 2D plane (402) to each node in the tree structure, wherein the assigning comprises assigning to each child node a subregion within the subregion assigned to the parent node of the child node in the tree structure; c) receiving (S906) an importance level for each of the plurality of nodes; d) mapping (S908) the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size; e) determining (S910) a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlappingConfidential30 with another node with more than a threshold degree, wherein determining the final display position and final display size comprises, for two nodes (212, 602) which would overlap on the display according to their preliminary display position and preliminary display size, wherein a first node of the two nodes has a lower importance level compared to a second node of the two nodes, at least one of determining final display positions of the two nodes such that a distance between the final display position and the preliminary display position of the first node is equal to or larger than a distance between the final display position and the preliminary display position of the second node; or determining final display sizes of the two nodes such that a difference between the final display size and the preliminary display size of the first node is equal to or larger than a difference between the final display size and the preliminary display size of the second node, wherein the final display size of the first node is equal to, or smaller than, the preliminary display size of the first node, wherein the final display size of the second node is equal to, or smaller than, the preliminary display size of the second node; f) rendering (S912) the nodes on the display according to their final display positions and final display sizes, thereby visualizing data organized in a directed graph data structure; and g) receiving (S914) a user interaction pertaining to a rendered node (702) among the nodes rendered on the display.
15. One or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein the instructions, when executed, cause the one or more processors to perform operations comprising: a) organizing (S902) a directed graph data structure (100, 200) comprising a plurality of nodes (202, 204, 206, 212, 602, 702, 706) connected by edges (208, 210), into a tree structure (400) by, for each node having one or more parent nodes in the directed graph data structure, determining a primary parent node among the one or more parent nodes; b) assigning (S904) a subregion (404, 406, 408) of a 2D plane (402) to each node in the tree structure, wherein the assigning comprises assigning to each child nodeConfidential31 a subregion within the subregion assigned to the parent node of the child node in the tree structure; c) receiving (S906) an importance level for each of the plurality of nodes; d) mapping (S908) the 2D plane to a size of a display, determining a preliminary display position of each node on the display according to their position on the 2D plane as mapped to the size of the display, and determining a preliminary display size of each node based on the importance level of the node, wherein a higher importance level results in a larger preliminary display size; e) determining (S910) a final display position and final display size of each node of the plurality of nodes such that no nodes displayed on the display are overlapping with another node with more than a threshold degree, wherein determining the final display position and final display size comprises, for two nodes (212, 602) which would overlap on the display according to their preliminary display position and preliminary display size, wherein a first node of the two nodes has a lower importance level compared to a second node of the two nodes, at least one of: determining final display positions of the two nodes such that a distance between the final display position and the preliminary display position of the first node is equal to or larger than a distance between the final display position and the preliminary display position of the second node; or determining final display sizes of the two nodes such that a difference between the final display size and the preliminary display size of the first node is equal to or larger than a difference between the final display size and the preliminary display size of the second node, wherein the final display size of the first node is equal to, or smaller than, the preliminary display size of the first node, wherein the final display size of the second node is equal to, or smaller than, the preliminary display size of the second node; and f) rendering (S912) the nodes on the display according to their final display positions and final display sizes, thereby visualizing data organized in a directed graph data structure; and g) receiving (S914) a user interaction pertaining to a rendered node (702) among the nodes rendered on the display.Confidential