Network visualization tool utilizing iterative rearrangement of nodes on a grid lattice using gradient method7024419Abstract A visualization system and method for visualization of network data, which is data that represents elements and links between elements. The network data is converted into a data structure, which represents a grid arrangement of the elements, where each element is placed on an individual grid position of a lattice. The data structure is suitable for use by a graphics display. The visualization tool comprises a processing unit that generates an initial data structure which represents an initial grid arrangement of the elements. It then assigns a global value to this initial grid arrangement and employs a gradient method for converting the initial grid arrangement into another grid arrangement which has a decreased or an increased global value. Claims What is claimed is: Description PRIORITY
When visualizing a hierarchical network the hierarchical structure must be clearly visible, which is achieved by arranging the elements in vertically stacked layers which correspond to the levels of hierarchy. Here again, the visualization of the hierarchical network must be easily comprehensible, which means that the elements must be arranged in such a way that there is a near minimal entanglement and a near minimal length of links within each layer and of links between layers. In the present invention, the above described arrangement of elements of a hierarchical network is referred to as the optimal arrangement. It is also a requirement for a hierarchical network and a fractal hierarchical network to arrange its elements such that they are kept apart a minimal distance so that they can be clearly distinguished. This requirement can be fulfilled if one provides a grid (lattice with individual grid points) and requires that the elements be arranged on the grid points only. As an example, one might specify a cubic or a cylindrical lattice as a grid. Gradient Method: A "gradient method", as employed in connection with the present invention, starts with an arrangement of a plurality of elements on a predefined grid (herein referred to as the "current grid arrangement"). These elements together with some links form a network. This current grid arrangement has a corresponding global value (initial global value). This global value corresponds to the ease of perception of the visualization of the network, i.e. of the current grid arrangement. Depending on the implementation, either a decrease or an increase of the global value makes the visualization more easily comprehensible. The gradient method produces from the current grid arrangement another grid arrangement of the plurality of elements that has a global value which is either smaller or larger than the initial global value, thus making the visualization of the other (new) grid arrangement more easily comprehensible. Ideally, one employs a gradient method which, depending on the implementation, reaches the minimal or maximal global value, or a near-minimal or a near-maximal global value, i.e. the optimal or a near-optimal grid arrangement, very quickly. For the purposes of the present description, the global value is considered to approach:
Note that the threshold depends on the definition of the global value, i.e. its relation to the degree of comprehensibility of the visualization of the network. A near minimal entanglement of the links is deemed to have been reached if the number of crossings of links (which is a measure of the degree of entanglement) is less than 50% greater than the minimal number of crossings of links. The minimal entanglement of the links is reached if the number of crossings of a particular arrangement is equal to the minimum number of crossings of links. A near minimal length of the links is deemed to have been reached if the sum of the length of all links is less than 50% greater than the minimal length the of links. The minimal length of the links is reached if sum of the length of all links of a particular arrangement is equal to the minimal length of the links. This means that the corresponding algorithm terminates in polynomial time, which renders the problem of finding the optimal or near-optimal arrangement computable. In order to reach this optimal or near-optimal arrangement in only a few iterative steps (cycles), the elements' position on the grid should be re-arranged by looking for changes in the arrangement that lead to big changes in the global value. For this purpose, a gradient level or threshold should be defined that has to be reached or exceeded by any given step to make sure that only those changes of the grid arrangement are actually carried out that lead to a drastic reduction or increase of the global value. This gradient level or threshold may depend on the current iteration number and/or on the current global value. Doing so ensures that only very few cycles are required until the global value converges to the minimal or maximal, or near-minimal or near-maximal, global value. Please note that in the following embodiments algorithms (herein referred to as minimizing algorithms) are employed which decrease and eventually minimize the global value. Likewise, algorithms can be employed that increase and eventually maximize the global value (herein referred to as maximizing algorithms). 2. Overview of the Present Invention According to the present invention there is a basic process that is carried out in order to transform network data, which represent a plurality of elements and links between elements, into a data structure which has a global value that is the same or approximately the same as the network's minimal or maximal global value. In a first step, as shown by reference number 801 in FIG. 8, network data is converted into an initial data structure which is represented by an initial grid arrangement of the plurality of elements. This initial grid arrangement has an initial global value and can be generated by placing each element on an individual grid position of a lattice. This lattice (e.g., a square lattice, circle lattice, cubic lattice, or cylindrical lattice) may depend on various parameters, such as the resolution of the graphics display, the number of elements, the computational power of the system generating the data structure, and so forth. The initial grid arrangement can be generated in many different ways, such as a random arrangement of the elements. In step 810, a global value (global energy) is assigned to this initial grid arrangement. The global value depends on the initial grid arrangement of one or more elements (all of the elements in the example) more with respect to the initial grid positions of said element(s)' neighbors and is herein referred to as initial global value. At step 820, the initial grid arrangement is modified so as to generate another grid arrangement of the plurality of elements. For this purpose a gradient method is employed using the global value of the grid arrangement of the plurality of elements. A suitable gradient method finds, after a number of iterations of steps 830 and 820, a suitable arrangement (preferably the optimal arrangement) of a given network or a part thereof on a given grid, as shown in step 840. 3. Gradient Method It is important that the algorithm which defines the gradient method describes a solution which is of polynomial complexity, and, thus, is solvable by computer systems. It is also desirable to employ an algorithm which is efficient and of low complexity so that an efficient and fast tool for visualizing networks can be realized. According to one embodiment of the present invention, an optimal arrangement of the elements and links of a network is found by minimizing the total energy function of this network. The total energy function of the network is a function which depends on the arrangement of the elements on the grid and which measures a suitable combination of the total length of all links and the number of crossings of links. It is defined such that the smaller the result (i.e. the smaller the total energy (also called global value)), the more comprehensible the network visualization appears. In addition, this total energy function may be equipped with a parameter that allows the user to continuously shift the emphasis between minimizing the total length of links and minimizing the entanglement of links. Other parameters or factors, such as a weight or potential as described below in connection with a knowledge database, can also be factored in when computing a data structure for visualization. The minimizing algorithm which finds the optimal arrangement by minimizing the total energy is a gradient method. However, because the problem is discrete (which means that there is a finite number of grid positions where the elements can be placed), ordinary gradient methods do not work since they require a complete underlying space such as Rn (rather than the given grid space). In one embodiment of the present invention, a gradient method work regardless of the discreteness problem, by defining a local energy function (individual value) for each element. This local energy function depends on the arrangement of the neighboring elements of a given element (or several elements) on the grid and measures a suitable combination of the total length of all links to the given elements, the total number of crossings of these links with (all) other links, and the total number of links to the given element(s). This combination further obeys the property that the weighted sum of all local energies yields the total energy (global value), where the weights are the number of links for each individual element or again a suitable function thereof. The gradient method then consists of selecting two elements (preferably with the help of the above local energy function) whose transposition reduces the total energy as much as possible, and repeating this procedure until no further reduction of the total energy can be achieved, or at least until no large reduction of the total energy is expected anymore. In detail, the minimizing algorithm according to this embodiment of the present invention starts with an initial arrangement of the elements on the grid that is obtained either by randomly placing the nodes on the grid or by using an arrangement algorithm that finds a reasonable first arrangement of the elements on the grid. This initial arrangement is then defined to be the current grid arrangement. The local energy function finds the element with the highest local energy for any possible arrangement of the elements on the grid. It is this element with the highest local energy that is selected for a transposition with some other element. The other element is obtained by transposing the highest local energy element with every other element in the network, and selecting the transposition that yields the least total energy for the new arrangement, provided this new total energy is lower than the current total energy. Since there are only (n-1) elements to check and checking can be done in polynomial time, this is a polynomial problem. Selecting the element to be transposed with the highest local energy element can be optimized by a reduction scheme, such as reducing the search to only neighboring elements of the highest local energy element. In this sense the algorithm is a gradient method because, for any arrangement of the elements, a transposition that reduces the total energy is found. In fact, even the transposition that is likely to maximally reduce the total energy is found. This new arrangement is then called the current arrangement and the minimizing algorithm repeats the above procedure until no transposition can be found that reduces the total energy which means that the optimal arrangement is reached. It is obvious that the repetitive use of the algorithm can be stopped at any time before the optimal arrangement is reached. If none of the (n-1) transpositions yields a reduction in the total energy, the element with the second highest local energy becomes the focus, and all (n-2) possible transpositions (the transposition with the element with the highest total energy has already been checked in the previous step and does not need to be checked again, hence one has only (n-2) transpositions to check) are tried. The transposition that yields the least total energy for the new arrangement is chosen, provided this new total energy is lower than the current total energy. If there is such an arrangement with lower total energy, then this new arrangement is called the current arrangement and the minimizing algorithm repeats the procedure of the previous paragraph. If no transposition can be found that reduces the total energy, the element with the third highest local energy is selected and all (n-3) possible transpositions are tried. Again, if a new arrangement with less total energy can be found, the algorithm makes it the current arrangement and continues from there by repeating the procedure of the previous paragraph, otherwise it continues with the element with the fourth highest local energy, and so on. In the worst case this algorithm yields (n-1)+(n-2)+(n-3)+ . . . +2+1=½*n*(n-1) checks which is quadratic in n. The minimizing algorithm stops when none of the transpositions results in a reduction of the total energy. It is possible that the minimizing algorithm terminates with a final arrangement that corresponds to a local minimum of the total energy, which means that there may be a different arrangement with yet a lower total energy. It has been observed that algorithms that rely on gradient methods sometimes terminate in such local minima (e.g. back propagation learning in neural networks). In this case a simulated annealing method may be in order, which means that after each step a random shuffling of the elements is allowed, where the amount of shuffling depends on the value of a variable called "temperature". This allows the algorithm to jump out of local minima traps and find the global minimum of the total energy. The success of the minimizing algorithm depends crucially on how well the definition of the total and local energies captures the fact that their values relate directly to the degree of comprehensibility of the visualization of the network. One possible definition is the following:
Suppose that there are n elements and m links of total length L and with total number of crossings C, and that each element i has ki connections with a total length of li and a total number of crossings ci(1<i<n). Then, a possible definition for the total energy E and the local energy ei of each element i is: E=4·a·C+2·(1-a)·L ##EQU1## This definition satisfies ##EQU2##
Finally, if one has a collection of grids (e.g. in hierarchical networks where one has several square lattices or circles stacked on top of each other, as shown in FIG. 2) and the elements are not only connected on these grids but also between the grids then one can run the minimizing algorithm for each grid separately (to optimize only this grid) and also for all combinations of two grids separately (to optimize the connections between these two grids). The algorithm to find the optimal arrangement for the whole collection of grids can either optimize one grid after the other and then one combination of two grids after the other using the minimizing algorithm, or it can do one gradient step from the minimizing algorithm per grid and/or combination of two grids at a time, or a combination thereof, to find the optimal arrangement of elements. Finally, the collection of grids could be seen as one new grid, and a global value (global energy) could be assigned to this new grid, and the ordinary gradient method could be carried out on this new grid. 4. Example of Network Visualization Further details of the present invention are now addressed and described in connection with the embodiments shown in FIGS. 2-5. As mentioned earlier, the elements of a network (or a part thereof) are placed on a grid for visualization. In the present example, the grid is cylindrical, resulting in a grid layout as illustrated in FIG. 2. However, other grid layouts, e.g. cubical, may be chosen. The cylindrical grid layout consists of:
Each circle has a variable number of grid positions 53. In FIG. 2, the grid positions on the circle of first horizontal neighbors 4 are shown. In this example the circle of first horizontal neighbors 4 has 16 grid positions. Elements are placed either on the central position 19, or on a grid position on a circle. To improve the quality of the visualization, the little lines representing the grid positions are sometimes suppressed. When visualizing a hierarchical network the hierarchical structure must be clearly visible. This is achieved by arranging the elements in vertically stacked layers—as shown in FIG. 2 for example—which correspond to the levels of hierarchy. Elements in the example are grouped as follows:
Links in the example are grouped as follows:
In the example, the spheres and arrows representing the elements and links, respectively, are selectively suppressed in order to improve the quality of the visualization. FIG. 3 shows elements placed on various positions. In particular,
FIG. 4 shows a visualization of a network. Each element has been placed on the circle it belongs to, but on random grid position within the circle. Although only the 1-2 links are shown (all others are suppressed), this results in an almost incomprehensible visualization of the network. Each element carries a unique identifier nxy. FIG. 5 shows a visualization of the same network, after having been processed and a data structure generated in accordance with the present invention. Again, each element has been placed on the circle it belongs to, but now in addition it has ended up being carefully positioned on a grid position within the circle such that the resulting visualization exhibits a near minimal entanglement of links (again, only the 1-2 links are shown). These placement decisions are done by the gradient approach described below. The assignment of the unique identifiers nxy has not changed. 5. Gradient Method: Exemplary Minimizing Algorithm In the following, an algorithmic description of a minimizing algorithm in accordance with the present invention is given. The algorithm below might for example be used to generate the data structure visualized in FIG. 5 from the network data visualized in FIG. 4. The following algorithm is one possible example to find a network visualization which exhibits a near minimal entanglement of the links.
This algorithm terminates in polynomial time with a near optimal arrangement of the elements on the grid positions so that the resulting visualization exhibits near minimal entanglement of the links. Note again that this algorithmic description is for illustrational purposes only. It can be modified in many places and still accomplish the same result. For instance, one modification is to compute in step 7 the local energy by dividing by the square root of ni (instead of ni), and in turn in step 8 the total energy by multiplying by the square root of ni (instead of ni). The principles of the present algorithms may be applied in a wide range of systems. An algorithm in accordance with the present invention may be used singly or in combination with other algorithms. 6. Exemplary Uses of the Visualization Tool A visualization tool that is based on the inventive scheme can be used to generate a data structure for displaying the respective network—or a portion thereof—on a display. Additional tools or routines can be employed to allow viewing of the network from different angles and view points. A user may also navigate through the network to get a better understanding of certain elements, links, and their association or relationship. This can be considered the first exemplary use of the visualization tool. Furthermore, the inventive scheme can also be used for:
These three processes are examples that indicate how flexible, powerful, and effective the present scheme is. The processes will now be outlined in connection with a database (network) that has a fractal hierarchical structure. a) Creating a Network and Corresponding Data Structure from Scratch There are many ways to create a network. In the following, an approach where network data representing a network is generated manually will be concentrated on. Using an appropriate editor or graphical user interface, a user may generate the network data by first defining some initial parameters of the network. This step is optional. Then, element after element is added and its relationships (links) are defined. General purpose tools or special tools can be used to do this. As mentioned above, there are other ways to generate network data. One may for example use a system that extracts the elements and links from an input string in order to build network data. Then, an algorithm in accordance with the present invention (for example, the minimizing algorithm described above) is employed to convert the network data into a data structure for display on a graphics display. The network data are converted into some arrangement of elements which is defined to be the current arrangement with a corresponding current global value. A gradient method is then employed to transform the current arrangement to an optimal arrangement with a minimal or maximal, or near-minimal or near-maximal, global value. Instead of using general purpose tools to add elements and links, the user may place new elements somewhere on the screen, preferably on an initially blank grid. In a next step, the user then may establish links between the elements to account for the new elements' relationships among themselves. A graphical user interface, e.g. a drag and drop technique and a snap to grid feature, may be used to do all this. b) Updating a Network and the Corresponding Data Structure In the following, a situation where an element is added to a database is concentrated on. There are many other situations where the network and the corresponding data structure undergoes an update, e.g., if an element is removed, if a link is changed, if a relationship between elements is changed, and so forth. In all cases where the network data are updated the corresponding data structure may be re-calculated using an algorithm in accordance with the present invention (e.g., the minimizing algorithm described above). If an element is to be added (for the sake of simplicity, herein referred to as "new element") to a database the following steps may be carried out. An input network is generated from an input string which describes the new element. This input network is deemed to be related to the new element. It may comprise information concerning the new element's relations to existing elements in the database. The database may be consulted in obtaining the input network. The input string can be created by a user or an application, or it can be automatically generated from the new element. This can be done by a mechanism that crawls through the new element to extract information which characterizes it and/or its content. An automatic object recognition scheme might be used for that purpose. Instead of generating the input network from an input string, the content of the new element can be automatically analyzed and the result can be used to generate the input network. In this case an input string is not necessarily needed. It is also conceivable that a combination of the above methods is employed to generate the input network. In this case, both an input string and the contents of the new element would be taken into consideration when generating the input network. In the next step, the database is updated with information describing or defining the new element. This can be done by associating the input network with the database, or by adding the new element or the input network to the database. If the database is of hierarchical nature and all elements are alike, then the input network which is to be added to the database preferably also has a fractal hierarchical structure. Instead of generating and adding an input network, the user may manually add the new element directly to a network that is displayed on a screen. In order to do so, the user may place the new element somewhere on the screen, preferably adjacent to an element that the user deems to be related to the new element. In the next step, the user may establish links to other elements to account for the new element's relationships with these other elements. A graphical user interface (GUI), e.g. a drag and drop technique and a snap to grid feature, may be used to do all this. In order to allow a system or user at a later point in time to act upon the new element, an access pointer may be needed. This access pointer provides a physical or logical link (e.g. a memory address) between the new element and some other instance or element. The access pointer can be used for accessing the new element in the database, or for retrieving the new element from the database, or for opening the new element using an appropriate application program (e.g., a text processor), or for displaying the new element, or for performing an operation on the access pointer as such. One might, for example, take the access pointer and send it to another user. The access pointer may describe the physical or logical location where said new element is stored in the database. An algorithm in accordance with the present invention (e.g., the minimizing algorithm described above) is now employed to generate a data structure which represents the minimum or maximum of the global value. There are at least two different approaches (A) and (B) to do this. In any case, the new arrangement of elements, i.e. the arrangement of elements after the new element was added, is defined to be the current arrangement.
Note that there are two ways for adding an element to a database: either 1) it can be added physically to the database which means that the new element's content is moved into the database; or 2) it can be added logically. In this case the physical element remains outside the database, i.e., it is not moved into the database, but just a semantical unit or name representing this new element is added to the database. c) Acting Upon an Element or Link Kept in a Network and the Corresponding Data Structure If an element in a database is to be acted upon, the following steps may be carried out. For sake of simplicity this element is herein referred to as target element. Before a user or system can act upon the target element in the database, the respective element must be located. In order for the system to be able to locate the target element, an input string may be needed which contains information that helps to identify the element. This input string is received by the system. It may comprise keywords, or textual information. The keywords or textual information can either be human readable or machine readable. To improve the interaction between a user and the system, a speech recognition module can be employed such that the user can 'talk' to the system. The speech recognition module then transforms the speech into textual information which is then processed the same way as other input strings. Another way to improve the interaction between a user and the system is to install a camera that is used to record the user's behavior. An image recognition module then transforms the behavior into textual information which is then processed the same way as other input strings. In all cases the textual information may be evaluated by consulting the database. Then, the input string is evaluated. This is done in order to obtain an input network which in turn defines a local network within the database. The local network is defined to be a portion, or segment, or set of segments of the database to which the input string is deemed to be related. The local network is defined such that it comprises at least one representation (e.g., a semantical unit or name) of the target element to which the input string seems to be related or associated. If no representation is found, the process is stopped, or the user or system might be prompted for additional information which helps to clarify the information conveyed in the input string. The database may be consulted in obtaining the input network. The local network within the database can be defined such that it comprises representations of those elements which are in a (semantical) neighborhood (as computed from the distance function) to the element(s) of the input network. In other words, the local network within the database can be defined such that it comprises representations associated to the input string. Assuming that at least one related or associated element was found, this element is displayed. The element can be displayed on a screen, for example, or it can be highlighted inside the network representing the database. The elements can be arranged or displayed to give the user clues about their contents. The system may create a human-understandable output, such as a map or other kind of visual or audible representation of the elements that the system deems are related to the target element the user is looking for. The present minimizing algorithm may be used to find the optimal arrangment of elements and links on a screen. If there is just one element that is deemed to be related or associated to the input string, the user or the system can act upon the corresponding database element (target element) by using the access pointer that is associated with this particular element. The access pointer can be used for accessing the target element in the database, or for retrieving it from the database, or for opening it using an appropriate application program (e.g., a text processor), or for displaying it, or for performing an operation on the access pointer as such. For example, one might take the access pointer and send it to another user. The access pointer may describe the physical or logical location where said target element is stored in the database. If there is more than one element that is deemed to be related or associated to the input string, the user or system can act upon one or more of the respective database elements by using the access pointers that are associated with these elements. Alternatively, the user may be prompted for additional information to clarify the input string and reduce the number of elements that are deemed to be related or associated to the input string. Instead of using the above approaches, the user herself may try to locate the target element on the display screen. This can be done by navigating through the displayed network and by looking for elements that the user considers to be related to the target element. After she is able to locate the respective element inside the network, the user can act upon it directly. An element can be acted upon using a computer mouse, a key on a computer keyboard, or a combination of keys on a computer keyboard, for example. An algorithm in accordance with the present invention (e.g., the minimizing algorithm described above) can be employed to find an optimal arrangement after the user acted upon one or more elements. This is only necessary, if the user has changed aspects of the database (network), e.g. after having changed or modified an element's relationship (links) with other elements, a re-calculation of the data structure may be desirable. For this purpose an algorithm in accordance with the present invention may be employed. 7. First Embodiment in Hardware The schematic hardware structure of a visualization system 10, according to a first embodiment of the present invention, is shown in FIG. 6A. The system 10 comprises a memory 11 for storing network data 12, a memory 13 for storing the corresponding data structure 14, a processor 15 (CPU), an interface 16, a bus structure 17, and input/output means 18. The interface 16 and input/output means 18 allow the visualization system 10 to be connected to a display screen, network, or the like. Furthermore, the system 10 is capable of receiving input through the input/output means 18 and interface 16. Note that in the present embodiment there is one memory 11 for storing the network data 12 and one memory 13 for storing the data structure 14. The network data 12 and the data structure 14 can likewise be stored in one and the same memory. A tape drive, a hard disk drive, a semiconductor memory, or any other storage system may serve as memory. In the first embodiment of the present invention, the network data 12 and the data structure 14 coexist. It is also conceivable that the network data 12 is step-by-step transformed into the corresponding data structure 14 such that at the end of this process there is just the data structure 14 but no network data anymore. The corresponding logical block diagram is given in FIG. 6B. According to the first embodiment of the present invention, data is received via an input 20. This data is either network data, i.e., data which represent the elements and the relationships (links) between elements, or raw data which can be used to derive network data. In FIG. 6B, it is assumed that the received data is network data 21. If the received data is raw data, then an additional logical unit (e.g. a semantic processor or meaning extractor) is required that transforms raw data into network data 21. The logical block diagram of the first embodiment comprises a processing unit 22 that embodies the present minimizing algorithm. The processing unit 22 may be realized in hardware and/or software. The unit 22 receives the network data 21 and applies an algorithm in accordance with the present invention in order to generate the data structure 23. This data structure 23 has a plurality of elements and links between elements. In a first step, network data 21 is converted into some initial data structure representing an initial grid arrangement of the plurality of elements such that each element of the plurality of elements is placed on an individual grid position of a lattice. Then, a global value (global energy) is assigned to this initial grid arrangement of the plurality of elements whereby the global value depends on the initial grid arrangement of an element with respect to the current grid positions of said element's neighbors. In a subsequent step, the initial grid arrangement is modified to generate another grid arrangement of the plurality of elements with a gradient method on the global value of the grid arrangement of the plurality of elements. At this point, the processing may be stopped and the current grid arrangement of the plurality of elements is considered to be the final one. Likewise, the above steps may be repeated until the global value of the current grid arrangement of the plurality of elements reaches a minimum or a maximum, depending upon the implementation of the algorithm. When this minimum or maximum is reached or almost reached, the processing may finally be stopped and the current grid arrangement of the plurality of elements is considered to be the final one. This final grid arrangement is represented by a corresponding final data structure 23 which can be fed via output 24 to some graphics display system, or via a network or communications link to another system. Note that the final data structure 23 may either have a format that can be displayed on a display without further mapping or transformation, or it may have a format that has to be mapped or transformed into image data. In the first embodiment of the present invention, the data structure is formatted such that it can be displayed on a display screen without further transformation. 8. Second Embodiment in Hardware The schematic hardware structure of a visualization system 30, according to a second embodiment of the present invention, is shown in FIG. 7A. This system 30 comprises an input 32. This input 32 may receive data from a keyboard, a mouse, or some other peripheral device, or from a communications link, for example. The system 30 furthermore comprises a memory 31 which stores the data, network data, and data structure. Memory 31 may be a random access memory (RAM) for example. There is also a processor 35 and an output interface 33 with a graphics processor 34 and a graphics display generator 36. The processor 35 accesses and/or fetches, as necessary, files (e.g. the network data and data structure) and programs (e.g. a program that embodies the present invention) from memory 31. The graphics processor 34 can be implemented as either a hardware circuit or as a software program recalled from memory 31 and executed by the processor 35. In operation, the graphics processor 34 produces image data (e.g., a pixel map) from the data structure. This image data is used by the graphics display generator 36 to produce, on graphics display 37, a graphical representation of the network data, as generated by the present minimizing algorithm. The image data may be stored in the memory 31, for example. There may also be a separate memory for storing the image data. The image data can also be stored on a storage medium (e.g. a diskette) such that they can be carried to another system. Image data can also be transmitted via a communications link, or network to another system. The output interface 33 is connected to a graphics display 37. The system 30 comprises a computer program (not shown) that, when being executed by the processor 35, controls the system 30 such that it carries out the method which—according to the present invention—transforms the network data into a data structure that can then be processed by the interface 33 so that it can be displayed on the graphics display 37. This is very similar to what has been described in connection with the first embodiment. Accordingly, a detailed description of each of the steps is omitted for brevity. The corresponding logical block diagram is given in FIG. 7B. According to the second embodiment of the present invention, raw data is received by an input 40. This raw data can be used to derive network data. A logical unit 39 (e.g. a semantic processor or meaning extractor) is employed that transforms the raw data into network data 41. The second embodiment further comprises a processing unit 42 that embodies the present minimizing algorithm. The processing unit 42 may be realized in hardware and/or software. The unit 42 receives the network data 41 and applies the minimizing algorithm in order to generate the data structure 43. Details of this process are described above and are not repeated for sake of brevity. In the present example, the data structure 43 has a format that cannot be used for generating an image on the graphics display 37. An additional logical unit 44 is employed that produces appropriate image data 45 from the data structure 43. This image data 45 can be sent via an output 46 to the graphics display 37, for example. 9. Conclusion: Various Uses of the Present Invention The present invention can be used in different kinds of situations, environments, and systems. An algorithm in accordance with the present invention can also be employed to visualize details of a knowledge database, as described in the already mentioned PCT patent application with application number PCT/IB99/00231. This knowledge database is a fractal network that represents knowledge. It has a unique structure, as described in the co-pending PCT patent application. It is a kind of library describing the knowledge of the world, or a particular area of interest thereof, by using a well-defined structure that consists of components such as possible relevant types of semantical units (elements) and their possible mutual connections (links). The structured representation of aspects of the world with the knowledge database is achieved by a multiscale approach. Self-similar representations are used on different scales to describe the behavior of the elements and links in a dynamical hierarchical fashion. Furthermore, self-similar algorithms are used when making use of the knowledge contained in this database (network). The knowledge database is a complex fractal hierarchical network of semantical units (elements). Each connection object (link) may carry a fixed or variable weight (also called semantical distance), where a suitable function of the weight of a connection object (link) represents some kind of semantical distance between the two semantical units (elements) it connects, i.e., it represents the degree of (semantical) association between the two semantical units (elements) across this particular link. Weights may be used to compute the semantical distance of any two linked elements. Thus, this concept of semantical distance establishes a metric on the knowledge database. One can use these weights when visualizing a network, or a variable or fixed threshold below which connections are ignored when visualizing the network. So if two elements are connected through (for instance) three links (thus involving two more elements), and the product or other suitable combination of the three weights is below the threshold (or, equivalently, the sum or other suitable combination of the three distances is above a different threshold), then one can assume that there is no association between the two elements. This method allows to make the network local, i.e., each element has only a limited number of associations and the local network structure around each element is not too difficult. Instead of displaying the whole network with all its elements and links one may concentrate on the local network only. Elements in the knowledge database may carry a "potential". If an element carries a potential, it corresponds to the element's importance in relation to some other element or its importance within the network or a subnet. The potential can also be used when computing a data structure for visualization. Programs built using the present scheme will enable users to visualize and graphically edit networks. Another possible application is a three-dimensional (3D) visualization of site maps on the World Wide Web (WWW). The present invention can be used in connection with printed circuit board design systems as well. There are many more possible applications as almost all intelligent systems rely heavily on networks and their visualization. The present invention allows users to:
The present invention can be realized in hardware, software, or a combination of hardware and software. A visualization tool according to the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following a) conversion to another language, code or notation; b) reproduction in a different material form. In the drawings and specification there have been set forth several embodiments of the invention and, although specific terms are used, the description thus given uses terminology in a generic and descriptive sense only and not for purposes of limitation. While the invention has been shown and described with reference to a certain preferred embodiments, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
|
Same subclass Same class Consider this |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
