# Patent

## Title
Method and system for providing graphical user interface having filtering capability

## Abstract

Embodiments of the present invention are directed to user interfaces and more particularly to techniques for providing user interface which allows users to select filtering criteria and display filtered information accordingly. In various embodiments, related information is displayed on a hierarchical chart as nodes that are connected to one another. The hierarchical chart is updated after filtering criteria are applied, and the display visibility of the nodes are changed based on the filtering results. The hierarchical relationships among the nodes are maintained before and after the filtering process. In a specific embodiment, the nodes that do not meet filtering criteria are displayed at a low visibility level on the hierarchical chart.

## Background
CROSS-REFERENCES TO RELATED APPLICATIONS
The present applications claims priority to U.S. Provisional Application No. 61/239,040, filed Sep. 1, 2009, which is commonly owned and incorporated by reference herein for all purposes.


BACKGROUND OF THE INVENTION
Embodiments of the present invention are directed to user interfaces and more particularly to techniques for providing user interface which allow users to select filtering criteria and display filtered information accordingly.
In today's information age, an increasing amount of data is being collected and stored every second. Satellites orbiting earth record information and photograph our planet everyday, and they send the information and photographs back to earth. Millions of computers on the Internet collect all types of information, ranging from network usage to marketing data. All types of organizations, large and small, store information such as personnel data, operational costs, etc. New tools are being invented to make collecting data easier, faster, and more convenient than ever before.
Data, no matter how it is collected, is only meaningful and useful to people when logically organized and stored. For example, computers often rely on data structures to store data in predefined fields. For large amounts of data, people usually rely on databases, where structured collections of data and/or records are stored in computer systems in accordance to predefined rules and/or database models.
Relationship models, hierarchy models, and network models, are common models for use in databases representing relationships among entities of information stored in databases. Typically, a database relies on database software to organize and manage data and/or entities of information. For example, database software organizes, stores, and/or records data using various types of database models.
Graphical user interface (“GUI”) is a helpful way for displaying data and showing the relationships thereof. Numerous conventional graphical interfaces are capable of displaying information in a hierarchical view. Unfortunately, merely being able to see information in a hierarchical view is often not enough, as it may be difficult to identify which parts of the information are of interest.
Therefore, new and improved graphical user interfaces for displaying hierarchical information are desired.
BRIEF SUMMARY OF THE INVENTION
Embodiments of the present invention are directed to user interfaces and more particularly to techniques for providing user interface which allow users to select filtering criteria and display filtered information accordingly. In various embodiments, related information is displayed on a hierarchical chart as nodes that are connected to one another. The hierarchical chart is updated after filtering criteria are applied, and the display visibility of the nodes is changed based on the filtering results. The hierarchical relationships among the nodes are maintained before and after the filtering process. In a specific embodiment, the nodes that do not meet filtering criteria are displayed at a low visibility level on the hierarchical chart. There are other embodiments as well.
According to an embodiment, the present invention provides a computer-readable storage medium storing a plurality of codes for controlling a processor to provide a graphical user interface. The plurality of codes includes code for obtaining information containing relationship data associated with entities represented as nodes of a hierarchical chart, each of the nodes associated with a plurality of attributes. The plurality of codes includes code for receiving the first filtering criterion, the first filter criterion being associated with at least a first attribute. The plurality of codes includes code for displaying the hierarchical chart in a display region, the hierarchical chart based on at least the relationship data, each of the nodes being displayed at a first visibility level, the hierarchical chart including one or more links connecting the nodes, the one or more links being based on the relationship data. The plurality of codes includes code for processing a first user input received by a user interface device, the first user selecting at least a first filtering criterion. The plurality of codes includes code for processing the plurality of nodes. The plurality of codes includes code for comparing the plurality of nodes to at least the first attribute. The plurality of codes includes code for determining whether one or more nodes are associated with at least the first attribute. The plurality of codes includes code for displaying the one or more nodes at a second visibility level on the hierarchical chart if the one or more nodes are determined to fail to associate with at least the first attribute, the second visibility level being characterized by a lowered visibility compared to the first visibility level.
According to another embodiment, the present invention provides a computer system for providing an interactive graphical user interface. The system includes a graphical user interface including a display, the display including a menu region and a display region within the graphical user interface, the menu region including a filtering menu, the filtering menu including selections for at least a first filtering criterion, the first filtering criterion being associated with at least a first attribute, the display region being adapted to display a plurality of nodes of a hierarchical chart at a first visibility level based on relationship data, the plurality of nodes being connected by one or more links based on the relationship data, the plurality of nodes being associated with a plurality of attributes. The system also includes a memory. The system includes an input module for receiving user inputs, the input module being configured to receive a user selection for selecting the first filtering criterion from the filtering menu. The system further includes a processor, the processor being configured to obtain nodes and process the user input to determine whether one or more nodes fail to associate with at least the first attribute. The display region is updated to display the one or more nodes at a second visibility level on the hierarchical chart if the one or more nodes are determined to fail to associate with at least the first attribute, the second visibility level being characterized by a lowered visibility compared to the first visibility level.
According to yet another embodiment, the present invention provides a graphical user interface in a computer system having a processor. The graphical user interface includes a display and a user interface device communicatively coupled to the processor. The graphical user interface includes a display region within the graphical user interface, the display region being adapted to display one or more links and a plurality nodes of a hierarchical chart at a first visibility level based on at least relationship data, the relationship data associated with the plurality of nodes, the plurality of nodes being associated with a plurality of attributes. The graphical user interface includes a menu region, the menu region including a filtering menu, the filtering menu including selections for at least a first filtering criterion, the first filter criterion being associated with at least a first attribute. The user interface device is configured to receive a first user input, the first user selecting the first filtering criterion. The processor is configured to process the plurality of nodes and compare the plurality of nodes to at least the first attribute. The display region is updated for displaying one or more nodes at a second visibility level on the hierarchical chart if the one or more nodes are determined to fail to associate with at least the first attribute, the second visibility level being characterized by a lowered visibility compared to the first visibility level.
It is appreciated that the present invention provides many other embodiments as well.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a simplified diagram illustrating data flow for processes according to embodiments of the present invention.
FIG. 2 is a simplified diagram illustrating a graphical user interface according to an embodiment of the present invention.
FIG. 3 is a screen shot of an exemplary graphical user interface according to an embodiment of the present invention.
FIG. 4 is a simplified diagram illustrating a filtered display of a hierarchical chart according to an embodiment of the present invention.
FIG. 5 is an exemplary screen shot of a hierarchical display where filtered results are displayed according to embodiments of the present invention.
FIG. 6 is a simplified diagram illustrating the display of a filtered hierarchy according to an embodiment of the invention.
FIG. 7 is a simplified diagram illustrating a system for implementing various embodiments of the present invention.
FIG. 8 is a simplified block diagram illustrating physical components of a computer system 800 that may be used in accordance with an embodiment of the present invention.
FIG. 9 is a simplified flow diagram illustrating the process of displaying a hierarchical chart with filter nodes according to embodiments of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention are directed to user interfaces and more particularly to techniques for providing user interface which allow users to select filtering criteria and display filtered information accordingly. In various embodiments, related information is displayed on a hierarchical chart as nodes that are connected to one another. The hierarchical chart is updated after filtering criteria are applied, and the display visibility of the nodes is changed based on the filtering results. The hierarchical relationships among the nodes are maintained before and after the filtering process. In a specific embodiment, the nodes that do not meet filtering criteria are displayed at a low visibility level on the hierarchical chart.
As explained above, conventional techniques are available for filtering information, however, the conventional filtering processes are often inadequate because the filtered information often fails to show its relationship to other types of information. For example, when a filtering process is performed, only information items that meet filtering criteria are displayed, the information items that do not meet the filtering criteria are not displayed. From a user's perspective, it is often difficult to understand the relationship between the information items that meet the filtering criteria and those that do not. It is therefore to be appreciated that embodiments of the present invention present information in the form of a hierarchical chart and display filtered information while preserving the hierarchical relationship that is displayed.
FIG. 1 is a simplified diagram illustrating data flow for processes according to embodiments of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
As shown in FIG. 1, a system 100 includes the following components:
1. a database 101;
2. a processor module 111;
3. a user interface module 112;
4. a rendering module 113; and
5. a display 120.
As an example, the processor module 111, the user interface module 112, and the rendering module 113 are parts of a controller module 110.
The database 101 is connected to the controller module 110. Depending on the application, the database 101 may be implemented as structure data stored on a local memory device, such as a hard disk, flash memory, etc. In one embodiment, the database 101 is stored at a network location. In one embodiment, the database 101 is an integral part of the system 100.
Among other features, the database 101 stores data that represents various entities that are related to one another. The database 101 stores relationship data representing the relationship among these entities. Each of these entities is associated with one or more attributes. In one embodiment, the attributes are categorized. For example, an entity in the database 101 represents a manager in a personnel database, and the manager has attributes that include name, address, salary, title, etc. In various embodiments, the attributes of each of the entities can be used as filtering criteria.
The processor module 111 is configured to obtain information from the database 101. For example, the processor module 111 retrieves both entities data and relationship data mentioned above and processes these data. In various embodiments, the processor module 111 determines category and/or view information and attributes for each of the entities in the database. For example, during the filtering process, the processor stores the filtering criteria and the entities that meet the filtering criteria using the status indicator 103.
Once the processor module 111 processes the information from the database 101, the processor module 111 generates a hierarchical chart that is to be displayed on the display 120. As shown in FIG. 1, processor module 111 sends the hierarchical chart to the rendering module 113 for rendering on the display 120. As shown in FIG. 1, the display 120 is used to display the hierarchical chart. For example, the hierarchical chart includes a number of nodes and links. Each of the nodes represents an entity and/or concept that is stored in the database. The links among the nodes represent the relationship among the nodes. For example, if the status indicator 103 indicates that only a few nodes meet filtering criteria, the processor module 111 uses the information from these nodes in a hierarchical chart for display at a one display setting, and the nodes that did not meet the filtering criteria at a different display setting (e.g., dimmer, blurred, reduced size, etc.)
The controller module 110 as shown includes a user interface module 112 for receiving user inputs. When user input 102 is received, the display 120 updates accordingly. For example, when user input 102 indicates what filtering criteria should be used, the user input received by the user interface module 112 and processed by the processor module 111 does what?. The processor module 111 determines which nodes meet the filtering criteria and stores these nodes in the status indicator 103, and retrieves additional information from the database if necessary. The processor module 111 then generates an updated hierarchical chart, with one or more nodes changing the display setting (e.g., increased or decreased visibility levels). The updated hierarchical chart is then rendered by the rendering module 113 and displayed at the display 120.
Depending on the operational mode, the change of view for the nodes may work in different ways. In one exemplary scenario, the view for each node on the hierarchical chart is changed and synchronized to one specific view, if a view selection is made at a global menu and all of the nodes are selected for view change. On the other hand, if a user selects one or more nodes of the hierarchy, only the selected nodes will change the view. The detailed operation of displaying and updating the hierarchical chart is described in more detail below.
FIG. 2 is a simplified diagram illustrating a graphical user interface according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
A graphical user interface 200 is shown in FIG. 2A. The graphical user interface 200 contains a display region 208 and a menu region 206. The display region 208 displays a hierarchical chart 210. The menu region 206 typically comprises various user-selectable controls for performing various operations (not shown in FIG. 2) such as opening a file, copy and paste operations, etc. The operations may change depending on the specific application for which the graphical user interface is displayed.
The display region 208 is used for displaying hierarchical information. For example, as depicted in FIG. 2, display region 208 displays a hierarchical chart 210 comprising a plurality of nodes 211-215 and links 220-224 connecting the nodes. Each node represents a concept or entity involved in the hierarchy depicted by hierarchical chart 210. The links between the nodes represent hierarchical relationships between the concepts or entities represented by the nodes. For example, if hierarchical chart 210 represents an organization personnel hierarchy, the nodes of hierarchical chart 210 may represent persons involved in the hierarchy and the links may represent hierarchical relationships between the personnel. For example, node 212 may represent a director, nodes 211, 213, and 214 may represent managers under the director, and node 215 may represent an employee under the manager represented by node 211. Each node may display information related to the entity or concept represented by the node. For example, the nodes in FIG. 2 may display names (e.g., Name 1, Name 2, etc.) corresponding to the people represented by the nodes. It is to be understood that other information items may be displayed as well.
According to embodiments, nodes 211-215 in FIG. 2 correspond to records stored in a database. The records in the database relate to one another, and the relationship is stored in the database as relationship data. For example, the links 220-224 correspond to visualization on the graphical user interface 200 of the relationship data. To provide a more specific example, node 212 corresponds to a record of a director and nodes 211-214 correspond to records of managers under the director, and the records for both director and managers stored in the data contain the hierarchical relationship information. In addition to relationship data, the database also contains various attributes associated with each record. In one embodiment, each of the records stored in the data contains various fields for storing various attributes. Going back to the example above, the record that stores information for the director may contain attributes such as name, address, contact information, salary, availability, performance, etc. Similarly, the records for managers may contain information such as name, address, contact information, salary, availability, performance, hours worked, vacation time, etc.
In one embodiment, the graphical user interface 200 has a default setting for displaying all of nodes 211-215. For example, nodes 211-215 represent all of the nodes that are in the chart 210. Depending on the filtering criteria selected by the user, one or more of these nodes changes its visibility.
As shown in FIG. 2, the menu region 206 includes a filter menu 202. The filter menu 202 provides a number of filter criteria. For example, as shown in FIG. 2, the filter criteria 1-5 are based on the attributes associated with the nodes. In a specific embodiment, the filter criteria 1-5 are predefined. For example, when displaying a hierarchical chart that contains nodes associated with personnel data, filter criteria would include performance, full-time employees, etc. Similarly, in an exemplary hierarchical chart that contains nodes associated with production line information, filter criteria would include machine type, throughout threshold, etc. In one embodiment, filter criteria shown in the filter menu 202 are automatically determined by a computer program. For example, the computer program processes each of the records to determine their attributes and automatically generates the filter criteria based on the records and/or attributes.
According to various embodiments, filtering criteria may be user defined, as explained below. FIG. 3 is a screen shot of an exemplary graphical user interface according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In FIG. 3, the graphical user interface 300, on which a hierarchical chart 306 is displayed, includes a filter menu 302. Filter menu 302 includes a predefined menu selection 302A that is labeled “High Performance Employees.” The filter menu 302 also includes a user filter selection 302B that allows users to set filtering criteria. As shown, the user filter selection 302B is labeled “Show Filter Criteria.” When a user selects filter selection 302B, a window 304 appears, which allows users to manually input various filter criteria values, such as “Department,” “Job function,” “Length of Service,” etc. Depending on the type of value, a user may select value from a drop down menu (e.g., “Department”) or enter numerical (e.g., “Length of Service”) and/or alphabetical values. As shown in FIG. 3, a user may enter more than one criterion in the window 304 to narrow down the filtering process.
Once the filtering criteria are defined, the program performs the filtering process to determine which nodes on the hierarchical chart meet the filtering criteria and which do not. Depending on the specific implementation, various types of filtering algorithms may be used. In an embodiment, a filtering algorithm according to the present invention retrieves and processes information associated with each of the nodes. For example, the filtering algorithm determines, one by one, whether a node meets the filtering criteria set by the user. After the filtering algorithm is completed, it generates a set of data indicating which nodes satisfy the filtering criteria and which do not.
It is to appreciated that embodiments of the present invention provide a user friendly graphical user interface. In various embodiments, the hierarchical relationships among the nodes are maintained while illustrating filtering results on the graphical user interface. FIG. 4 is a simplified diagram illustrating a filtered display of a hierarchical chart according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
As shown in FIG. 4, a graphical user interface 400 includes a display region 408 and a menu region 406. The display region 408 displays a hierarchical chart 410. The hierarchical chart 410 includes nodes 412-415. As explained above, each node represents a concept or entity involved in the hierarchy depicted by hierarchical chart 410. For example, each node is a representation of a record stored in a database. The links between the nodes represent hierarchical relationships between the concepts or entities represented by the nodes. For example, if hierarchical chart 410 represents an organization personnel hierarchy, the nodes of hierarchical chart 410 may represent persons involved in the hierarchy and the links may represent hierarchical relationships between the personnel.
The menu region 406 includes a filter menu 402. A user is able to use the filter menu 402 to select one or more filtering criteria. For example, the user selects “Criteria 1” (e.g., user selection indicated by the underline) in the filter menu 402. To provide an example, node 413 does not meet “Criteria 1” and is thus filtered out. Under conventional filtering schemes, node 413 would disappear from the GUI. In contrast, node 413, which is filtered out, is still displayed at the GUI and the hierarchical relationship of the hierarchical chart 410 remains unchanged. Depending on the application, there may be other ways to illustrate the filtering of nodes. In FIG. 4, node 413 that does not meet the filtering criteria is displayed as a shaded node, which makes node 413 less visible than the other nodes on the hierarchical chart. But it is to be understood that node 413 may be displayed at a low visibility level (compared to nodes that meet filtering criteria) in other ways, such as reduced size, blurred image, dimmed, etc. The links among the nodes are maintained, even for node 413. It is to be appreciated that by maintaining the links, the hierarchical relationship among the nodes is maintained and visible.
FIG. 5 is an exemplary screen shot of a hierarchical display where filter results are displayed according to embodiments of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In the screen shot 500, the hierarchical chart 510 shows that node 504 that does not fit filtering criteria being dimmed. The nodes that meet the filtering criteria, such as node 502, remain visible.
In a specific embodiment, the node that meets the filtering criteria is displayed at an enlarged size. FIG. 6 is a simplified diagram illustrating the display of a filtered hierarchy according to an embodiment of the invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. As shown in FIG. 6, “Criteria 3” is selected at the filter menu 602. For example, also in the menu region 606 is the filtering mode menu 604. In FIG. 6, node 614 is displayed within display region 608. For example, node 614 is displayed at a larger size compared to node 612, as node 614 meets the filtering criteria while node 612 does not. A photo 616 is displayed on node 614, as the large display size of node 614 affords area for photo display. It is to be appreciated, as shown in FIG. 6, that node 614 is still connected to node 612 through a link, and that hierarchical relationship among nodes is preserved and displayed.
FIG. 7 is a simplified diagram illustrating a system for implementing various embodiments of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
As shown, system environment 700 includes one or more client computing devices 702, 704, 706, 708 communicatively coupled with a server computer 710 via a network 712. In one set of embodiments, client computing devices 702, 704, 706, 708 may request service from the server computer 710.
Client computing devices 702, 704, 706, 708 may be general purpose personal computers (including, for example, personal computers and/or laptop computers running various versions of Microsoft WindowsTM and/or Apple MacintoshTM operating systems), cell phones or PDAs (running software such as Microsoft Windows MobileTM and being Internet, e-mail, SMS, BlackberryTM, and/or other communication protocol enabled), and/or workstation computers running any of a variety of commercially-available UNIXTM or UNIXTM-like operating systems (including without limitation the variety of GNU/LinuxTM operating systems). Alternatively, client computing devices 702, 704, 706, and 708 may be any other electronic devices capable of communicating over a network (e.g., network 712 described below) with server computer 710. Although system environment 700 is shown with four client computing devices and one server computer, any number of client computing devices and server computers may be supported.
Server computer 710 may be a general purpose computer, specialized server computer (including, e.g., a LINUXTM server, UNIXTM server, mid-range server, mainframe computer, rack-mounted server, etc.), server farm, server cluster, or any other appropriate arrangement and/or combination. Server computer 710 may run an operating system including any of those discussed above, as well as any commercially available server operating system. Server computer 710 may also run any variety of server applications and/or mid-tier applications, including web servers, JavaTM virtual machines, application servers, database servers, and the like. In various embodiments, server computer 710 is adapted to run one or more Web services or software applications described in the foregoing disclosure. For example, server computer 710 may provide the abovementioned graphic user interface for displaying hierarchical information and filtering of nodes.
As shown, client computing devices 702, 704, 706, 708 and server computer 710 are communicatively coupled via network 712. Network 712 may be any type of network that can support data communications using any variety of commercially-available protocols, including without limitation TCP/IP, SNA, IPX, AppleTalkTM, and the like. Merely by way of example, network 712 may be a local area network (LAN), such as an Ethernet network, a Token-Ring network and/or the like; a wide-area network; a virtual network, including without limitation a virtual private network (VPN); the Internet; an intranet; an extranet; a public switched telephone network (PSTN); an infrared network; a wireless network (e.g., a network operating under any of the IEEE 802.11 suite of protocols, the BluetoothTM protocol known in the art, and/or any other wireless protocols); and/or any combination of these and/or other networks.
System environment 700 may also include one or more databases 714. Database 714 may correspond to an instance of integration repository as well as any other type of database or data storage component described in this disclosure. Database 714 may reside in a variety of locations. By way of example, database 714 may reside on a storage medium local to (and/or residing in) one or more of the client computing devices 702, 704, 706, 708, 710. Alternatively, database 714 may be remote from any or all of the client computing devices 702, 704, 706, 708, 710 and/or in communication (e.g., via network 712) with one or more of these. In one set of embodiments, database 714 may reside in a storage-area network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the client computing devices 702, 704, 706, 708, 710 may be stored locally on the respective computer and/or remotely on database 714, as appropriate. As an example, data represented by nodes on a hierarchical chart and the relational data thereof are stored at the database 714.
FIG. 8 is a simplified block diagram illustrating physical components of a computer system 800 that may be used in accordance with an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
In various embodiments, computer system 800 may be used to implement any of the client computing devices 702, 704, 706, 708, 710 illustrated in system environment 700 described above. As shown in FIG. 8, computer system 800 comprises hardware elements that may be electrically coupled via a bus 824. The hardware elements may include one or more central processing units (CPUs) 802, one or more input devices 804 (e.g., a mouse, a keyboard, etc.), and one or more output devices 806 (e.g., a display device, a printer, etc.). For example, the input device 804 is used to receive user inputs. Computer system 800 may also include one or more storage devices 808. By way of example, storage devices 808 may include devices such as disk drives, optical storage devices, and solid-state storage devices such as a random access memory (RAM) and/or a read-only memory (ROM), which can be programmable, flash-updateable and/or the like. In an embodiment, various databases are stored in the storage device 808. For example, the central processing unit 802 is configured to process filtering nodes based on user requests.
Computer system 800 may additionally include a computer-readable storage media reader 812, a communications subsystem 814 (e.g., a modem, a network card (wireless or wired), an infrared communication device, etc.), and working memory 818, which may include RAM and ROM devices as described above. In some embodiments, computer system 800 may also include a processing acceleration unit 816, which can include a digital signal processor (DSP), a special-purpose processor, and/or the like.
Computer-readable storage media reader 812 can further be connected to a computer-readable storage medium 810, together (and, optionally, in combination with storage devices 808) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. Communications subsystem 814 may permit data to be exchanged with network 712 of FIG. 7 and/or any other computer described above with respect to system environment 700.
Computer system 800 may also comprise software elements, shown as being currently located within working memory 818, including an operating system 820 and/or other code 822, such as an application program (which may be a client application, Web browser, mid-tier application, RDBMS, etc.). In a particular embodiment, working memory 818 may include executable codes and associated data structures for one or more of the design-time or runtime components/services illustrated in FIGS. 2 and 4. It should be appreciated that alternative embodiments of computer system 800 may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as AppletsTM), or both. Further, connection to other computing devices such as network input/output devices may be employed. In various embodiments, the process for filtering and displaying nodes described throughout the present application is implemented as software elements of the computer system 800.
In one set of embodiments, the techniques described herein may be implemented as program code executable by a computer system (such as a computer system 800) and may be stored on machine-readable media. Machine-readable media may include any appropriate media known or used in the art, including storage media and communication media, such as, but not limited to, volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage and/or transmission of information such as machine-readable instructions, data structures, program modules, or other data, including RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store or transmit the desired information and which can be accessed by a computer.
FIG. 9 is a simplified flow diagram illustrating a process of displaying a hierarchical chart with filter nodes according to embodiments of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. For example, various steps as shown in process 900 may be added, removed, replaced, rearranged, repeated, modified, and/or overlapped.
At step 901, node information is retrieved. For example, the node information includes information regarding entities represented by the nodes and relationship data thereof. At step 902, a hierarchical chart is displayed. On the hierarchical chart, nodes are displayed and the relationship among the nodes is displayed as links connecting the nodes.
At step 903, filtering criteria are received and processed. For example, the filtering criteria is provided by the user. Based on the filtering criteria, it can be determined which nodes meet the filtering criteria and which do not, at step 904. At step 905, the hierarchical chart is updated based on the results from filtering. At step 906, the nodes that do not meet the filtering criteria are displayed at a different visibility level (e.g., blurred, shaded, resized, etc.) compared to nodes that meet the filtering criteria. According to various embodiments, all of the nodes and their links are displayed before and after the filtering. For example, the hierarchical chart that has a filtered node still retains its hierarchy, as the nodes that did not meet the filtering criteria remain displayed on the hierarchical chart, only at a different visibility level.
Although specific embodiments of the present invention have been described, various modifications, alterations, alternative constructions, and equivalents are within the scope of the invention. Further, while embodiments of the present invention have been described using a particular combination of hardware and software, it should be recognized that other combinations of hardware and software are also within the scope of the present invention. The present invention may be implemented only in hardware, or only in software, or using combinations thereof
The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. Many variations of the invention will become apparent to those skilled in the art upon review of the disclosure. The scope of the invention should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the pending claims along with their full scope or equivalents.

## Claims

1. A computer-readable storage medium storing a plurality of codes for controlling a processor to provide a graphical user interface, the plurality of codes comprising:
code for obtaining information containing relationship data associated with entities represented as nodes of a hierarchical chart, each of the nodes associated with a plurality of attributes;
code for receiving a first filtering criterion, the first filtering criterion being associated with at least a first attribute;
code for displaying the hierarchical chart in a display region, the hierarchical chart based on at least the relationship data, each of the nodes being displayed at a first visibility level, the hierarchical chart including one or more links connecting the nodes, the one or more links being based on the relationship data;
code for processing a first user input received by a user interface device, the first user selecting at least a first filtering criterion;
code for processing the plurality of nodes;
code for comparing the plurality of nodes to at least the first attribute;
code for determined whether one or more nodes are associated with at least the first attribute;
code for displaying the one or more nodes at a second visibility level on the hierarchical chart if the one or more nodes are determined to fail to associate with at least the first attribute, the second visibility level being characterized by a lowered visibility compared to the first visibility level;
code for receiving a selection of at least one node in the hierarchical chart;
code for displaying nodes in the hierarchical chart related to the at least one node, wherein the related nodes are configured to provide a selection menu of actions that are uniquely associated with at least one node, wherein the actions include updating the nodes that are being displayed;
code for receiving a user input, wherein the user input includes selecting one or more nodes from the updated nodes being displayed, and wherein the user input further includes designating one or more related nodes to the one or more selected nodes;
code for processing the user input; and
code for displaying the one or more selected nodes and the one or more related nodes as a separate hierarchal chart.

2. The computer-readable storage medium of claim 1 further comprising:
code for determining attributes associated with the plurality of nodes; and
code for generating a plurality of filtering criteria based on the attributes.

3. The computer-readable storage medium of claim 1 further comprising code for defining a menu region and a display region within a graphical user interface, the menu region including a global selection menu, the global selection menu including selections for at least the first filtering criterion, the first filtering criterion being associated with at least a first attribute.

4. The computer-readable storage medium of claim 1 further comprising:
code for determining a set of nodes matches with the first attribute; and
code for displaying the set of nodes at a third visibility level, the third visibility level being characterized by a higher visibility compared to the first visibility level.

5. The computer-readable storage medium of claim 1 wherein nodes are opaque at the second visibility level.

6. The computer-readable storage medium of claim 1 wherein the nodes are characterized by a reduced size at the second visibility level.

7. The computer-readable storage medium of claim 1 wherein first filtering criterion is predefined.

8. The computer-readable storage medium of claim 1 wherein the global selection menu further including selections for a user defined filtering criteria.

9. The computer-readable storage medium of claim 1 wherein the one or more nodes are blurred at the second visibility level.

10. The computer-readable storage medium of claim 1 wherein the nodes are overlaid by a semi-transparent layer at the second visibility level.

11. The computer-readable storage medium of claim 1 further comprising code for receiving a second user input for defining a second attribute.

12. The method of claim 1 wherein the links remain unchanged when one or more nodes are displayed at a second visibility level.

13. A computer system for providing an interactive graphical user interface, the system comprising:
a graphical user interface including a display, the display including a menu region and a display region within the graphical user interface, the menu region including a filtering menu, the filtering menu including selections for at least a first filtering criterion, the first filtering criterion being associated with at least a first attribute, the display region being adapted to display a plurality of nodes of a hierarchical chart at a first visibility level based on relationship data, the plurality of nodes being connected by one or more links based on the relationship data, the plurality of nodes being associated with a plurality of attributes;
a memory;
an input module for receiving user inputs, the input module being configured to receive a user selection for selecting the first filtering criterion from the filtering menu; and
a processor, the processor being configured to obtain nodes and process the user input to determine a whether one or more nodes fail to associate with at least the first attribute;
wherein:
the display region is updated to display the one or more nodes at a second visibility level on the hierarchical chart if the one or more nodes are determined to fail to associate with at least the first attribute, the second visibility level being characterized by a lowered visibility compared to the first visibility level; and

wherein the processor is further configured to:
receive a selection of at least one node in the hierarchical chart;
display nodes in the hierarchical chart related to the at least one node, wherein the related nodes are configured to provide a selection menu of actions that are uniquely associated with at least one node, wherein the actions include updating the nodes that are being displayed;
receive a user input, wherein the user input includes selecting one or more nodes from the updated nodes being displayed, and wherein the user input further includes designating one or more related nodes to the one or more selected nodes;
process the user input; and
display the one or more selected nodes and the one or more related nodes as a separate hierarchal chart.

14. The system of claim 13 wherein the input module comprises a pointing device for selecting the first filtering criterion.

15. The system of claim 13 wherein the input module comprises a keyboard device for receiving user inputs specifying one or more filtering criteria.

16. The system of claim 13 further comprising a storage for storing a database, the plurality of nodes corresponding to information entities stored at the database.

17. The system of claim 13 further comprising a network interface for retrieving the nodes from a network source.

18. In a computer system having a processor, a graphical user interface including a display and a user interface device communicatively coupled to the processor, the graphical user interface comprising:
a display region within the graphical user interface, the display region being adapted to display one or more links and a plurality nodes of a hierarchical chart at a first visibility level based on at least relationship data, the relationship data associated the plurality of nodes, the plurality of nodes being associated with a plurality of attributes; and
a menu region, the menu region including a filtering menu, the filtering menu including selections for at least a first filtering criterion, the first filtering criterion being associated with at least a first attribute;
wherein:
user interface device is configured to receive a first user input, the first user selecting the first filtering criterion;
the processor is configured to process the plurality of nodes and compare plurality of nodes to at least the first attribute;
the display region is updated for displaying one or more nodes at a second visibility level on the hierarchical chart if the one or more nodes are determined to fail to associate with at least the first attribute, the second visibility level being characterized by a lowered visibility compared to the first visibility level;

the processor is further configured to receive a selection of at least one node in the hierarchical chart, and display nodes in the hierarchical chart related to the at least one node, wherein the related nodes are configured to provide a selection menu of actions that are uniquely associated with at least one node, wherein the actions include updating the nodes that are being displayed;
receive a user input, wherein the user input includes selecting one or more nodes from the updated nodes being displayed, and wherein the user input further includes designating one or more related nodes to the one or more selected nodes;
process the user input; and
display the one or more selected nodes and the one or more related nodes as a separate hierarchal chart.

19. The graphical user interface of claim 18 wherein the filtering menu comprises a dropdown menu.

20. The graphical user interface of claim 18 wherein the filtering menu comprises a text input box.

21. The graphical user interface of claim 18 wherein the one or more nodes are opaque at the second visibility level.