Patent Publication Number: US-7712042-B2

Title: Techniques for viewing mappings and nodes

Description:
BACKGROUND 
   1. Field 
   Embodiments of the invention relate to techniques for viewing mappings and nodes. 
   2. Description of the Related Art 
   Some conventional systems enable a user to map columns of one table to columns of another table (i.e., to form mappings between columns). A mapping may be described as a relationship between two objects. The mappings between columns that the user creates may be partitioned into one or more mapping groups based on some grouping criteria. It is possible for there to be a large number of mappings (e.g., in the hundreds) of columns. The mappings may be shown on a display screen of a computer monitor, for example, by illustrating the tables and their columns and drawing lines between mapped columns. Displaying the mappings on a typical display screen may be difficult. In particular, as the number of mappings increases, it may be difficult to illustrate all of the mappings on the workspace of the screen. This is a scalability of workspace issue. Workspace may be described as a portion of the screen that is used to perform a task or to display information related to one or more tasks. Some conventional systems enable a user to scroll (e.g., using a scroll bar) to different portions of the mappings because all of the mappings can not be displayed on the display screen at one time. When a large amount of data is involved the user must repeatedly scroll the data to find the desired information, which may be time consuming and which may not provide a clear indication of the mappings. 
   When the user is dealing with a large number of objects (e.g., tables, views, etc.) and a large number of columns per table, it may be difficult for the user to get a good sense of the progress that has been made in creating the mappings and it may be difficult to view the individual mappings (e.g., lines representing mappings (also referred to as mapping lines) may cross each other or go off the display screen). Additionally, display of many of the lines may not be needed at a given time, and the extra processing time required to draw these unneeded lines may adversely impact system performance in conventional systems. 
   Some conventional systems may use a flow chart approach to illustrate the mappings, but it is often difficult to see a large number of columns at once. Some conventional systems use a single view approach to illustrate the mappings. The single view approach may work well for a small number of mappings, but when a large number of mappings are involved, the information will not fit in the workspace, and the user has to scroll the workspace to find mappings of interest. 
   Some conventional systems provide a hierarchical structure (e.g., a tree type structure). It is very difficult to focus on, or even view, information of interest when a large amount of hierarchical or tree data is being displayed. Tree structures generally provide controls for collapsing and expanding nodes and their children, but even in their collapsed state, the nodes each occupy a row of space. Thus, some conventional systems provide hide/show functions by enabling a user to manually select each branch of the tree type structure that is to be further shown or hidden, but these functions may be tedious to use. 
   Some conventional systems allow the user to hide or collapse objects that they are not interested in. This may be very tedious if there are many objects (e.g., hundreds of tables) and the user only wants to view one or two of the objects. Also, some conventional systems allow the user to launch a separate dialog window and type in a filter to show desired objects. However, this requires the user to find common criteria within the limits of the filter for the objects to be shown, which may be difficult. 
   Thus, there is a need in the art for improved techniques for viewing mappings and nodes. 
   SUMMARY 
   Provided are a method, article of manufacture, and system for viewing mappings between objects. A main view is displayed, wherein the main view shows one or more source objects, one or more target objects, and one or more mappings between the one or more source objects and the one or more target objects. Input is received that selects a type of view to be displayed in the main view, wherein each type of view provides a different amount of detail regarding the mappings. In response to receiving the input, the selected type of view is created, and the created view is displayed. 
   Also provided are a method, article of manufacture, and system for viewing objects. One or more objects along with mappings between the one or more objects are displayed. View filters are provided that may be applied to the one or more objects, wherein the view filters enable hiding at least one of mapped or unmapped objects. 
   Moreover, provided are a method, article of manufacture, and system for viewing nodes. A structure is displayed that includes one or more nodes. A hide option is provided that may be applied to the one or more displayed nodes, wherein selection of the hide option hides one or more selected nodes of the displayed nodes and descendants of the selected nodes. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Referring now to the drawings in which like reference numbers represent corresponding parts throughout: 
       FIG. 1  illustrates details of a computer architecture in which certain embodiments may be implemented. 
       FIG. 2  illustrates a main view that displays an overview in accordance with certain embodiments. 
       FIG. 3  illustrates a pulldown menu for switching between the overview, detail, and single mapping group views in accordance with certain embodiments. 
       FIG. 4  illustrates a main view that displays a detail view in accordance with certain embodiments. 
       FIG. 5  illustrates a main view that displays a single mapping group view in accordance with certain embodiments. 
       FIG. 6  illustrates logic performed by a user interface system for providing multiple views in accordance with certain embodiments. 
       FIG. 7  illustrates a main view in which a hide mapped view filter has been selected in accordance with certain embodiments. 
       FIG. 8  illustrates a main view in which results of selecting a hide mapped view filter are displayed in accordance with certain embodiments. 
       FIG. 9  illustrates a main view in which a hide unmapped view filter has been selected in accordance with certain embodiments in accordance with certain embodiments. 
       FIG. 10  illustrates a main view in which results of selecting a hide unmapped view filter are displayed in accordance with certain embodiments. 
       FIG. 11  illustrates logic performed by a user interface system for processing view filters in accordance with certain embodiments. 
       FIG. 12  illustrates a main view and a popup menu with various options in accordance with certain embodiments. 
       FIG. 13  illustrates a main menu after a first hide option has been selected in accordance with certain embodiments. 
       FIG. 14  illustrates a main menu after a second hide option has been selected in accordance with certain embodiments. 
       FIG. 15  illustrates a main menu after a first restore option has been selected in accordance with certain embodiments. 
       FIG. 16  illustrates a main menu after a second restore option has been selected in accordance with certain embodiments. 
       FIG. 17  illustrates a main menu after a show only option has been selected in accordance with certain embodiments. 
       FIG. 18  illustrates a main menu after a restore all option has been selected in accordance with certain embodiments. 
       FIG. 19  illustrates logic performed by a user interface system for viewing nodes of a structure in accordance with certain embodiments. 
       FIG. 20  illustrates an architecture of a computer system that may be used in accordance with certain embodiments. 
   

   DETAILED DESCRIPTION 
   In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several embodiments. It is understood that other embodiments may be utilized and structural and operational changes may be made without departing from the scope of embodiments of the invention. 
     FIG. 1  illustrates details of a computer architecture in accordance with certain embodiments. A computing device  100  includes system memory  110 , which may be implemented in volatile and/or non-volatile devices. A user interface system  120 , a mapping model  122 , and structure models  124  are stored in the system memory  104  for execution by a processor (e.g., a Central Processing Unit (CPU)) (not shown). System memory  110  may also store other components  130 . The user interface system  120  provides a Graphical User Interface (GUI) to enable a user to view and modify mappings between objects, to view mapped or unmapped objects, and to view nodes of structures. 
   The mapping model  122  may be described as including information on source objects and target objects and mappings between the source objects and target objects (e.g., information that indicates that a first column of a first table is mapped to a second column of a second table). Further, the mapping model  122  includes information that associates the mappings with mapping groups. Also, the mapping model  122  includes references to information in the structure models  124 . The mappings that are stored in the mapping model  122  may be created in various manners. In certain embodiments, the user interface system  120  may be used to create mapping groups and column mappings (e.g., by a user). In certain embodiments, the user interface system  120  may generate the mapping groups and column mappings. The structure models  124  store structure information. There may be one structure model  124  for source objects and another structure model  124  for target objects. 
   The computing device  100  is coupled to an input device  140 , an output device  150 , and a data store  170 . One or more mapping models may also be stored in the data store  170 . 
   The user interface system  120  uses the mapping models  122  to generate various views (i.e., overview, detail view, and single mapping group view) that are displayed, such as those shown in  FIGS. 2-5 . 
   In alternative embodiments, the user interface system  120  is a computer program that may be implemented as hardware, software, or a combination of hardware and software. 
   The computing device  100  may comprise any computing device known in the art, such as a server, mainframe, workstation, personal computer, hand held computer, laptop telephony device, network appliance, etc. 
   The data store  170  may comprise an array of storage devices, such as Direct Access Storage Devices (DASDs), Just a Bunch of Disks (JBOD), Redundant Array of Independent Disks (RAID), virtualization device, etc. 
   Examples herein may refer to tables and columns, but embodiments of the invention are applicable to various objects that may be mapped, such as nodes of structures. 
   The user interface system  120  enables a main view to be viewed in the format of the following types of views: overview, detail, and single group mapping. Each type of view provides a different amount of detail regarding the mappings. The overview shows mappings between objects that comprise mapping groups (i.e., a group of related mappings). A mapping group may be described as including source objects and target objects, as well as mappings between those objects. In certain embodiments, the objects are tables, and in such embodiments a mapping group may be described as including source tables and target tables, as well as column mappings between columns of those tables. Column mappings of a mapping group may be described as mappings between source columns of source tables and target columns of target tables contained in that mapping group. In certain embodiments, the detail view shows detailed mappings (e.g., column mappings) contained in all of the mapping groups. In certain alternative embodiments, there may be multiple detail views, where each detail view shows detailed mappings contained in some specified set of mapping groups. The single mapping group view shows mappings (e.g., column mappings) contained within a single mapping group. In embodiments in which the objects are tables with columns, the single mapping group view enables a user to select and work on individual column to column mappings within the tables contained within a selected mapping group. This is especially useful if the individual tables are large and/or the individual tables are highly separated alphabetically so that it would be hard to view them on a single screen in the overview and detail views. In various embodiments, different techniques may be used in the different views to identify which view is being displayed (e.g., colored lines, different types of lines or text or graphics associated with the lines) in addition to or instead of identifying the title of the type of view in the main view. 
   In certain embodiments, the main view includes three areas: a source area, a middle area, and a target area. In certain embodiments, each of the three areas is independently scrollable (e.g., a user may use a separate scroll bar to scroll through portions of each area). The user interface system  120  uses the mapping model  122  to generate mappings shown in the main view and uses structure models  124  to generate structures shown in the source area  210  and target area  230 . 
   A hierarchical structure is composed of nodes that are related to each other. The top-most node is called a root node, and the root node is the only node that has no parent. A node may have one or more child nodes, also referred to as children, and the node is said to be a parent of the child nodes. Nodes without child nodes are called leaf nodes. Ancestor nodes may be described as the nodes between a particular node and the root node. Descendant nodes of a particular node may be described as the nodes which have that particular node as an ancestor node. 
     FIG. 2  illustrates a main view  200  that displays an overview in accordance with certain embodiments. The main view  200  includes three areas: a source area  210 , a middle area  220 , and a target area  230 . The user interface system  120  uses the mapping model  122  to generate the mappings shown in the main view  200  and uses structure models  124  to generate structures shown in the source area  210  and target area  230 . The main view may be switched between an overview, a detail view, and a single mapping group view, and the type of view being displayed is shown in the middle area  220 . In the example of  FIG. 2 , the main view  200  provides an overview, and merely as an example, the term “Mapping Groups” in the middle area  220  is used to indicate that this is an overview. 
   The overview illustrates higher-level mappings. The higher-level mappings may be from one or more source tables to one or more target tables (e.g., multiple source table to multiple target table mappings or single source table to single target table mappings). For example, in the overview  200 , Department table  212  from the source area  210  is related to Department table  232  from the target area  230 . Also, the Employee table  214  from the source area  210  is related to the Employee table  234  from the target area. 
   In certain embodiments, the main view may be displayed along with a navigator view  260 , an outline view  270 , and/or a properties view  280 . In particular, the user interface system  120  may display a navigator view  260  that lists files available at the computing device  100 , an outline view  270  that provides textual information about mappings (e.g., Source:/Database/SOURCE/EMPLOYEE is mapped to Target:/Database/SAMP/EMPLOYEE), and a properties view  280  that provides information about a currently selected object (e.g., the Employee table  214  is selected in this example). 
   From the overview, a user may switch to the detail view (of  FIG. 4 ) or the single mapping group view (of  FIG. 5 ). In certain embodiments, the user switches between views by using a pull-down menu. In certain alternative embodiments, the user switches between views by selecting a tab associated with a desired view (where each of the views appears as a tab on the display screen). In yet other alternative embodiments, the user switches between views by pressing a button associated with a desired view. In other alternative embodiments, a popup menu may be used to switch between the three views.  FIG. 3  illustrates a pulldown menu  250  for switching between the overview, detail, and single mapping group views in accordance with certain embodiments. The pulldown menu  250  has the options of Mappings (i.e., detail view), Mapping Groups (i.e., overview) or Mapping Group Details (i.e., single mapping group view). 
   With reference to  FIG. 2 , in the middle area  220 , squares are displayed to represent mappings. When the main view  200  displays the overview, a user may select a mapping (e.g., by selecting a square representing a mapping between tables) and then select the single mapping group view from the pulldown menu  520  to switch to the single mapping group view. Each hub (e.g., hub  290 ) represents a single mapping group. For example, if hub  290  is selected, the single mapping group view shows the mapping between the Employee table  214  and the Employee table  234 . 
     FIG. 4  illustrates a main view  400  that displays a detail view in accordance with certain embodiments. The main view  400  includes three areas: a source area  410 , a middle area  420 , and a target area  430 . In the example of  FIG. 4 , the main view  400  provides a detail view, and merely as an example, the term “Mappings” in the middle area  420  is used to indicate that this is a detail view. 
   In certain embodiments, the detail view is a default view. In other embodiments, the overview or single group mapping may be the default view. In certain embodiments, a user may be able to use the detail view to create and view simple mappings (e.g., a few tables), without using the overview or single mapping group views. 
   From the detail view, a user may switch to the overview or the single mapping group view (of  FIG. 5 ). In certain embodiments, the user switches between views by using a pull-down menu (e.g., pull-down menu  250 ). In certain alternative embodiments, the user switches between views by selecting a tab associated with a desired view (where each of the views appears as a tab on the display screen). In yet other alternative embodiments, the user switches between views by pressing a button associated with a desired view. In other alternative embodiments, a popup menu may be used to switch between the three views. 
   When the main view  400  displays the detail view, a user may select a column mapping (e.g., by selecting a square representing a column mapping) and then select the single mapping group view from the pulldown menu  520  to switch to the single mapping group view containing the selected column mapping. For example, if mapping  490  is selected, the single mapping group view shows the mapping between the Employee table  214  and the Employee table  234 . 
     FIG. 5  illustrates a main view  500  that displays a single mapping group view in accordance with certain embodiments. The main view  500  includes three areas: a source area  510 , a middle area  520 , and a target area  530 . In the example of  FIG. 5 , the main view  500  provides a single mapping group view, and merely as an example, the term “Mapping Group Details” in the middle area  520  is used to indicate that this is a single mapping group view. A user may select a single mapping group and work on the selected mapping in the single mapping group view. The selected mapping group is shown, while the user interface system  120  clears the workspace of other objects and mappings. However, as the user may want to focus in on another mapping group after finishing this one, the user interface system  120  enables the user to do so by going to the overview and selecting a different mapping group or going to the detail view and selecting a column mapping and then returning to the single mapping group view. Thus, by simply switching to the overview or detail view, selecting a mapping, and returning to the single mapping group view, just the mapping of interest is shown, while other mappings are hidden. The hidden mappings remain in the mapping model  122 , but are not displayed on the output device  150 . With the single mapping group view, the user is able to see which columns from source tables map to target tables in that mapping group and is able to adjust those mappings and add new ones. 
   From the single mapping group view, a user may switch to the overview or the detail view. In certain embodiments, the user switches between views by using a pull-down menu (e.g., pull-down menu  250 ). In certain alternative embodiments, the user switches between views by selecting a tab associated with a desired view (where each of the views appears as a tab on the display screen). In yet other alternative embodiments, the user switches between views by pressing a button associated with a desired view. In other alternative embodiments, a popup menu may be used to switch between the three views. 
     FIG. 6  illustrates logic performed by the user interface system  120  for providing multiple views in accordance with certain embodiments. Control begins at block  600  with the user interface system  120  displaying a main view that shows one or more source objects, one or more target objects, and one or more mappings between the one or more source objects and the one or more target objects. In certain embodiments, the main view includes a source area, a middle area, and a target area. The source area includes the one or more source objects, the target area includes the one or more target objects, and the middle area includes an indication of whether there are any mappings between the one or more source objects and the one or more target objects. In block  602 , the user interface system  120  receives input. For example, the input may select a type of view (e.g., overview, detail view or single mapping group view) to be displayed in the main view, wherein each type of view provides a different amount of detail regarding the mappings. Then, in response to receiving the input, the type of view selected is displayed by the user interface system  120  (blocks  604 - 614 ). 
   In block  604 , the user interface system  120  determines whether the input indicates that the overview has been selected. If so, processing continues to block  606 , otherwise, processing continues to block  608 . In block  606 , the user interface system  120  creates and displays the overview and processing loops back to block  602 . In particular, the user interface system  120  obtains information about mapping groups from the mapping model  122  and uses this information to create and display the overview. In certain embodiments, the mapping model  122  references information in the structure models  124 , and the user interface system  120  also uses this information to create and display the overview. 
   In block  608 , the user interface system  120  determines whether the input indicates that the detail view has been selected. If so, processing continues to block  610 , otherwise, processing continues to block  612 . In block  610 , the user interface system  120  creates and displays the detail view and processing loops back to block  602 . In particular, the user interface system  120  obtains information about more detailed mappings (e.g., column mappings) and uses this information to create and display the details view. In certain embodiments, the mapping model  122  references information in the structure models  124 , and the user interface system  120  also uses this information to create and display the detail view. 
   In block  612 , the user interface system  120  determines whether the input indicates that a mapping group (e.g., a table mapping or a column mapping) and the single mapping group view have been selected. If so, processing continues to block  614 , otherwise, processing continues to block  616 . In block  614 , the user interface system  120  creates and displays the single mapping group view that contains the selected mapping group and processing loops back to block  602 . In particular, the user interface system  120  obtains information about the selected single mapping group from the mapping model and uses this information to create and display the single mapping group view. In certain embodiments, the mapping model  122  references information in the structure models  124 , and the user interface system  120  also uses this information to create and display the single mapping group view. 
   In block  618 , the user interface system  120  processes the input and processing loops back to block  602 . 
   Embodiments provide filtering of mapped and unmapped objects. In particular, during the process of mapping information from a source object (e.g., a database, schema, tree or table) to a target object (e.g., a database, schema, tree or table), it is often useful to be able to focus on objects that have not yet been mapped, or alternatively, to focus on objects that have already been mapped. Also, after desired objects have been mapped, it may be useful to be able to hide the unmapped objects that were not needed, in order to focus on the objects of interest. The hidden objects and mapping information (e.g., lines) remain in the mapping model  122  and in the structure models  124 , but are not displayed on the output device  150 . The objects, such as tables, may be considered to be nodes of a structure. 
   Thus, the user interface system  120  provides selectable view filters (e.g., as menu options) that enable a user to choose to show mapped and unmapped objects, to hide mapped objects or to hide unmapped objects. This allows the user to focus on data of interest and reduces or eliminates the need to scroll the data. 
   The user interface system  120  provides the following view filters: hide none, hide mapped, and hide unmapped. In certain embodiments, the view filters provided by the user interface system  120  may apply to columns (i.e., which are schema leaf level nodes) or tables (i.e., which are parents of schema leaf level nodes). A schema may be described as a collection of objects that have a hierarchical structure. In certain embodiments, the view filters may be applied at the table level. In such embodiments, a mapped table may be described as a table in which all columns are mapped, while an unmapped table may be described as a table in which no columns are mapped. In alternative embodiments, the view filters may be applied at the column level. In such alternative embodiments, a mapped column may be described as a column that is mapped to one or more columns, while an unmapped column may be described as a column that is not mapped to another column. In yet other embodiments, the view filters may be applied to mappings of other objects. 
   In the examples of  FIGS. 7-10 , the source and target objects are database tables and columns represented by source and target schemas.  FIG. 7  illustrates a main view  700  in which a hide mapped view filter has been selected in accordance with certain embodiments. The main view  700  includes three areas: a source area  710 , a middle area  720 , and a target area  730 . Although the main view  700  illustrates a detail view, in alternative embodiments, the main view  700  may illustrate an overview or a single mapping group view. The view filters are available in each of the three views  710 ,  720 ,  730  of the main view  700 . When a view filter is selected from the middle area  720 , the user interface system  120  applies the view filter to both the source and the target areas. When selected from the source area  710  or target area  730 , the selected view filter is applied by the user interface system  120  to the respective source or target area. A view filter pulldown menu  750  includes the view filters of: hide none, hide unmapped, and hide mapped. Initially, the “Hide None” view filter is shown as being selected, so both mapped and unmapped tables are shown in the main view  700 . 
   In one example scenario, a user wants to see what is left to map in the target schema. The user opens the view filter pulldown menu  750  in the target area  750  and selects a “Hide Mapped” view filter.  FIG. 8  illustrates a main view  800  in which results of selecting a hide mapped view filter are displayed in accordance with certain embodiments. In particular, in the main view  800 , unmapped tables are shown in the target schema. Note that because the columns of the department table are partially mapped (i.e., not fully mapped), the department table is treated as an “unmapped” table for filtering by the user interface system  120  and is displayed in the main view  800 . 
     FIG. 9  illustrates a main view  900  in which a hide unmapped view filter has been selected in accordance with certain embodiments. The main view  900  includes three areas: a source area  910 , a middle area  920 , and a target area  930 . Although the main view  700  illustrates a detail view, in alternative embodiments, the main view  900  may illustrate an overview or a single mapping group view. The view filters are available in each of the three views  910 ,  920 ,  930  of the main view  900 . In another example scenario, a user wants to focus on the objects that will participate in the mapping from source to target schema and ignore the unmapped objects. The user opens a view filter pulldown menu  950  in the middle area  920  and selects the “Hide Unmapped” view filter. 
     FIG. 10  illustrates a main view  1000  in which results of selecting a hide unmapped view filter are displayed in accordance with certain embodiments. In particular, in the main view  1000 , unmapped tables are hidden and mapped tables are shown in the source and target areas. 
     FIG. 11  illustrates logic performed by the user interface system  120  for processing view filters in accordance with certain embodiments. Control begins at block  1100  with the user interface system  120  displaying one or more objects along with mappings between the displayed one or more objects. In certain embodiments the one or more objects are displayed within a source area and a target area of a main view, while the mappings are displayed using a middle area of the main view. In block  1102 , the user interface system  120  receives input. In block  1104 , the user interface system  120  determines whether the input indicates that the hide none view filter has been selected. If so, processing continues to block  1106 , otherwise, processing continues to block  1108 . In block  1106 , the user interface system  120  displays mapped and unmapped objects and processing loops back to block  1102 . 
   In block  1108 , the user interface system  120  determines whether the input indicates that the hide mapped view filter has been selected. If so, processing continues to block  1110 , otherwise, processing continues to block  1112 . In block  1110 , the user interface system  120  hides mapped objects. From block  1110 , processing loops back to block  1102 . 
   In block  1112 , the user interface system  120  determines whether the input indicates that the hide unmapped view filter has been selected. If so, processing continues to block  1114 , otherwise, processing continues to block  1116 . In block  1114 , the user interface system  120  hides unmapped objects. From block  1114 , processing loops back to block  1102 . 
   In block  1118 , the user interface system  120  processes the input and processing loops back to block  1102 . 
   Embodiments provide a hide option, a show only option, a restore option, and a restore all option. In particular, embodiments provide a hide option that allows a user to select one or more nodes in a structure (e.g., a hierarchical structure) and request that these nodes and the descendants of the selected nodes be hidden. Also, embodiments provide a show only option that enables quickly scoping or manipulating a structure (e.g., a hierarchical structure or tree type structure) of nodes to show selected nodes and ancestors of the selected nodes. In particular, the show only option allows the user to select one or more nodes of interest and to select the show only option to display the selected nodes of interest and the ancestors and descendants of the selected nodes. 
   Also, a user may successively apply hide or show only options to one or more nodes, and then use a restore option to restore the nodes hidden a step at a time based on each previous hide or show only option or use a restore all option to restore all hidden nodes at once. The restore option restores the hidden nodes in the reverse order in which they were hidden by selection of the hide or show only options. Thus, with embodiments, a user is able to hide nodes that are not of interest, enabling the user to focus only on nodes of interest. 
   In various embodiments, the hide option, a show only option, a restore option, and a restore all option may be provided via various techniques, such as a popup menu, a pulldown menu or buttons. 
   The hidden nodes remain in the structure models  124 , but are not displayed on the output device  150 . 
     FIGS. 12-18  provide illustrations to show how the hide, show only, restore, and restore all options operate in accordance with certain embodiments. In the examples of  FIGS. 12-18 , tables and columns are illustrated in hierarchical structures in source and target areas. 
     FIG. 12  illustrates a main view  1200  and a popup menu  1250  with various options in accordance with certain embodiments. The main view  1200  includes three areas: a source area  1210 , a middle area  1220 , and a target area  1230 . Although the main view  1200  illustrates a detail view, in alternative embodiments, the main view  1200  may illustrate an overview or a single mapping group view. The popup menu  1250  includes a hide option, a show only option, a restore option, and a restore all option. These options are available for any node in the source area  1210  and the target area  1230  of the main view  1200 . 
   To hide nodes, a user selects one or more nodes and selects the hide option. For example, in  FIG. 12 , a user-has selected the Department and Dept_Locations tables in the source area  1210 . Then, the user selects the hide option from the popup menu  1250 . 
     FIG. 13  illustrates a main menu  1200  after a first hide option has been selected in accordance with certain embodiments. In this case, the Department and Dept_Locations tables are no longer displayed in the source area  1210  (i.e., these tables are hidden). Also, the Dependent table has been selected from the source area  1210 , and the hide option has been selected from the popup-menu  1250 . 
     FIG. 14  illustrates a main menu  1200  after a second hide option has been selected in accordance with certain embodiments. In  FIG. 14 , the Dependent table is no longer displayed in the source area  1210 . Also, the Department and Dept_Locations tables remain hidden. The user selects the restore option from the popup menu  1250 . 
     FIG. 15  illustrates a main menu  1200  after a first restore option has been selected in accordance with certain embodiments. In  FIG. 14 , the Dependent table is now displayed again in the source area  1210 . The Department and Dept_Locations tables remain hidden. Also, the restore option is again selected from the popup menu  1250 . 
     FIG. 16  illustrates a main menu  1200  after a second restore option has been selected in accordance with certain embodiments. In  FIG. 16 , the Department and Dept_Locations tables are displayed again in the source area  1210 . Also, the user now selects the Employee table from the source area  1210  and selects the show only option from the popup menu  1250 . 
     FIG. 17  illustrates a main menu  1200  after a show only option has been selected in accordance with certain embodiments. In  FIG. 17 , the only table displayed in the source area  1210  is the Employee table, and all other tables are hidden. In particular, as a result of the show only option, only the selected nodes, ancestors of the selected nodes, and descendants of the selected nodes remain displayed in the main view  1200 . Also, in  FIG. 17 , the restore all option has been selected from the popup menu  1250 . 
   In particular, to bring back the other nodes, the user selects a restore all option from the popup menu  1450 . In alternative embodiments, a graphical placeholder is displayed where nodes have been hidden, and the user is allowed to select that placeholder to bring back hidden nodes. In other alternative embodiments, the user may select a node before selecting the restore all and the hidden descendant children of that node are shown. 
     FIG. 18  illustrates a main menu  1200  after a restore all option has been selected in accordance with certain embodiments. In  FIG. 18 , the main menu  1200  displays all nodes that had been hidden by the show only option selected in  FIGS. 16 and 17 . 
   The hide, show only, restore, and restore all options work for any type of structure. These options are especially useful for tasks that are graphically complex (e.g., mappings between source and target schemas), as these types of workspaces may get very cluttered. 
     FIG. 19  illustrates logic performed by the user interface system  120  for viewing nodes of a structure in accordance with certain embodiments. Control begins at block  1900  with the user interface system  120  displaying a structure including nodes (e.g., a hierarchical structure). In certain embodiments, the structure is displayed within a source area or a target area of a main view that includes the source area, a middle area, and the target area. In block  1902 , the user interface system  120  receives input. In block  1904 , the user interface system  120  determines whether the input indicates that one or more nodes and the show only option have been selected. If so, processing continues to block  1906 , otherwise, processing continues to block  1908 . In block  1906 , the user interface system  120  hides one or more unselected nodes along with ancestors and descendants of the unselected nodes and processing loops back to block  1902 . 
   In block  1908 , the user interface system  120  determines whether the input indicates that one or more nodes and the hide option have been selected. If so, processing continues to block  1910 , otherwise, processing continues to block  1912 . In block  1910 , the user interface system  120  hides the one or more selected nodes and ancestors and descendants of the selected nodes and processing loops back to block  1902 . 
   In block  1912 , the user interface system  120  determines whether the input indicates that the restore option has been selected. If so, processing continues to block  1914 , otherwise, processing continues to block  1916 . In block  1914 , the user interface system  120  displays nodes that had previously been hidden by the previous selection of a show only or hide option (i.e., restores any nodes hidden in response to selection of a previous show only or hide option) and processing loops back to block  1902 . 
   In block  1916 , the user interface system  120  determines whether the input indicates that the restore all option has been selected. If so, processing continues to block  1918 , otherwise, processing continues to block  1929 . In block  1918 , the user interface system  120  displays all nodes (i.e., restores any nodes hidden in response to selection of a show only or hide option) and processing loops back to block  1902 . 
   In block  1920 , the user interface system  120  processes the input and processing loops back to block  1902 . 
   Thus embodiments provide multiple views (i.e., a overview, a detail view, and a single mapping group view) to enable users to view mapping data between objects. Embodiments also provide view filters to enable hiding mapped or unmapped objects. Moreover, embodiments, provide hide, show only, restore, and restore all options to enable easier navigation of structures. 
   ADDITIONAL EMBODIMENT DETAILS 
   The described operations may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in a medium, where such medium may comprise hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium, such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computer readable medium is accessed and executed by a processor. The medium in which the code or logic is encoded may also comprise transmission signals propagating through space or a transmission media, such as an optical fiber, copper wire, etc. The transmission signal in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The transmission signal in which the code or logic is encoded is capable of being transmitted by a transmitting station and received by a receiving station, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a computer readable medium at the receiving and transmitting stations or devices. Additionally, the “article of manufacture” may comprise a combination of hardware and software components in which the code is embodied, processed, and executed. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise any information bearing medium known in the art. 
   The term logic may include, by way of example, software or hardware and/or combinations of software and hardware. 
   The logic of  FIGS. 6 ,  11 , and  19  describes specific operations occurring in a particular order. In alternative embodiments, certain of the logic operations may be performed in a different order, modified or removed. Moreover, operations may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel, or operations described as performed by a single process may be performed by distributed processes. 
   The illustrated logic of  FIGS. 6 ,  11 , and  19  may be implemented in software, hardware, programmable and non-programmable gate array logic or in some combination of hardware, software, or gate array logic. 
     FIG. 20  illustrates an architecture  2000  of a computer system that may be used in accordance with certain embodiments. Computing device  100  may implement architecture  2000 . The computer architecture  2000  may implement a processor  2002  (e.g., a microprocessor), a memory  2004  (e.g., a volatile memory device), and storage  2010  (e.g., a non-volatile storage area, such as magnetic disk drives, optical disk drives, a tape drive, etc.). An operating system  2005  may execute in memory  2004 . The storage  2010  may comprise an internal storage device or an attached or network accessible storage. Computer programs  2006  in storage  2010  may be loaded into the memory  2004  and executed by the processor  2002  in a manner known in the art. The architecture further includes a network card  2008  to enable communication with a network. An input device  2012  is used to provide user input to the processor  2002 , and may include a keyboard, mouse, pen-stylus, microphone, touch sensitive display screen, or any other activation or input mechanism known in the art. An output device  2014  is capable of rendering information from the processor  2002 , or other component, such as a display monitor, printer, storage, etc. The computer architecture  2000  of the computer systems may include fewer components than illustrated, additional components not illustrated herein, or some combination of the components illustrated and additional components. 
   The computer architecture  2000  may comprise any computing device known in the art, such as a mainframe, server, personal computer, workstation, laptop, handheld computer, telephony device, network appliance, virtualization device, storage controller, etc. Any processor  2002  and operating system  2005  known in the art may be used. 
   The foregoing description of embodiments has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the embodiments be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Since many embodiments can be made without departing from the spirit and scope of the invention, the embodiments reside in the claims hereinafter appended or any subsequently-filed claims, and their equivalents.