US20150293959A1 - Simultaneous visual presentation of hierarchical and non-hierarchical data object information - Google Patents
Simultaneous visual presentation of hierarchical and non-hierarchical data object information Download PDFInfo
- Publication number
- US20150293959A1 US20150293959A1 US14/747,884 US201514747884A US2015293959A1 US 20150293959 A1 US20150293959 A1 US 20150293959A1 US 201514747884 A US201514747884 A US 201514747884A US 2015293959 A1 US2015293959 A1 US 2015293959A1
- Authority
- US
- United States
- Prior art keywords
- node
- tree
- hierarchical
- hierarchy
- data objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G06F17/30327—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G06F17/30554—
-
- G06F17/30864—
Definitions
- the subject matter disclosed herein relates generally to data presentation and, more specifically, to systems and methods for use in presenting stratified trees that include nodes from a hierarchy of data objects in stratified areas.
- At least some known software applications present data objects as nodes in a tree structure that represents a hierarchical relationship between the data objects. Notably, such a presentation technique provides a user with only one perspective that is based on the object hierarchy.
- Known software applications do not group tree nodes by type, such that both hierarchical relationships and type relationships are presented. Rather, hierarchical relationships and type relationships are generally conveyed by separate presentations.
- a method for presenting a hierarchy of data objects includes determining for each data object in the hierarchy, by a computing device, an associated node type to create a plurality of node types.
- the computing device creates a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types, and also creates a plurality of tree nodes representing the data objects.
- Each tree node is associated with the node type that corresponds to the associated data object.
- the computing device further includes in each stratum of the plurality of strata the tree nodes associated with the node type that corresponds to the stratum and provides the graphical representation of the hierarchy for presentation to a user.
- a device including a memory for storing a hierarchy of data objects and a processor coupled to the memory.
- Each data object is associated with a node type of a plurality of node types.
- the processor is programmed to create a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types, and to create a plurality of tree nodes representing the data objects.
- the processor is also programmed to include in each stratum of the plurality of strata the tree nodes associated with the node type that corresponds to the stratum, and to include in the graphical representation hierarchical connectors extending between the tree nodes.
- the hierarchical connectors represent hierarchical relationships between the data objects represented by the tree nodes.
- one or more non-transitory computer-readable media having computer-executable instructions embodied thereon When executed by at least one processor, the computer-executable instructions cause the processor to: determine a node type that is associated with each data object in a hierarchy of data objects to create a plurality of node types; to create a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types; to create a plurality of tree nodes representing the data objects, each tree node associated with the node type that corresponds to the associated data object; to include in each stratum of the plurality of strata, by the computing device, the tree nodes associated with the node type that corresponds to the stratum; and to include in the graphical representation hierarchical connectors extending between the tree nodes.
- the hierarchical connectors represent hierarchical relationships between the data objects represented by the tree nodes.
- FIG. 1 is a block diagram of an exemplary computing device.
- FIG. 2 is block diagram of an exemplary computing system that includes a server, a database management device, and a client device.
- FIG. 3 is a flowchart of an exemplary method for use in presenting a hierarchy of data objects.
- FIG. 4 is an exemplary user interface for presenting a base view of a hierarchy of data objects.
- FIG. 5 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects.
- FIG. 6 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects in which tree nodes are positioned between child tree nodes.
- FIG. 7 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects with evenly spaced tree nodes in each stratum.
- FIG. 8 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects as a grid tree.
- FIG. 9 is an exemplary user interface for presenting a base view of a hierarchy of university holdings.
- FIG. 10 is an exemplary user interface for presenting a hierarchy of university holdings as a tree stratified by media type.
- FIG. 11 is an exemplary user interface for presenting a hierarchy of university holdings as a tree stratified by availability.
- FIG. 12 is an exemplary user interface for presenting a hierarchy of university holdings as a tree stratified by media type with emphasis on a hierarchical structure.
- FIG. 13 is a user interface for presenting a hierarchy of education courses using arced strata.
- FIG. 14 is an exemplary user interface for presenting a hierarchy of education courses using strata conformed to the shape of an image.
- FIG. 15 is an illustration of a first node in a first stratum, a second node in a second stratum, and a sub-tree T.
- FIG. 16 is an illustration of a first sub-tree and a second sub-tree positioned between the first node and second node shown in FIG. 15 .
- FIG. 17 is an illustration of a hierarchical connector being drawn between the first node and second node shown in FIG. 15 .
- FIG. 18 is a user interface including hierarchical connectors drawn by a first exemplary drawing algorithm.
- FIG. 19 is a user interface including hierarchical connectors drawn by a second exemplary drawing algorithm.
- tree nodes representing the data objects are positioned in strata based on node types associated with the tree nodes, and hierarchical connectors extend between tree nodes, indicating hierarchical relationships between the represented data objects.
- Node types may be determined based on a user-selectable classification strategy, such as grouping by a particular aspect and/or attribute of the data objects.
- An exemplary technical effect of the methods, systems, and apparatus described herein includes at least one of (a) determining for each data object in the hierarchy, by a computing device, an associated node type to create a plurality of node types; (b) creating, by the computing device, a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types; (c) creating, by the computing device, a plurality of tree nodes representing the data objects, each tree node associated with the node type that corresponds to the associated data object; (d) including in each stratum of the plurality of strata, by the computing device, the tree nodes associated with the node type that corresponds to the stratum; (e) including in the graphical representation hierarchical connectors extending between the tree nodes, wherein the hierarchical connectors represent hierarchical relationships between the data objects represented by the tree nodes; and (f) providing the graphical representation of the hierarchy for presentation to a user.
- FIG. 1 is a block diagram of an exemplary computing device 105 .
- Computing device 105 includes a memory device 110 and a processor 115 coupled to memory device 110 for executing instructions.
- executable instructions are stored in memory device 110 .
- Computing device 105 is configurable to perform one or more operations described herein by programming processor 115 .
- processor 115 may be programmed by encoding an operation as one or more executable instructions and providing the executable instructions in memory device 110 .
- Processor 115 may include one or more processing units (e.g., in a multi-core configuration).
- Memory device 110 is one or more devices that enable information such as executable instructions and/or other data to be stored and retrieved.
- Memory device 110 may include one or more computer readable media, such as, without limitation, dynamic random access memory (DRAM), static random access memory (SRAM), a solid state disk, and/or a hard disk.
- DRAM dynamic random access memory
- SRAM static random access memory
- Memory device 110 may be configured to store, without limitation, a hierarchy of data objects, node types, available classification strategies, computer-executable instructions, and/or any other type of data.
- computing device 105 includes a presentation interface 120 that is coupled to processor 115 .
- Presentation interface 120 presents information, such as data objects and/or classification strategies, to a user 125 .
- presentation interface 120 may include a display adapter (not shown in FIG. 1 ) that may be coupled to a display device, such as a cathode ray tube (CRT), a liquid crystal display (LCD), an organic LED (OLED) display, and/or an “electronic ink” display.
- presentation interface 120 includes one or more display devices.
- presentation interface 120 may include an audio output device (e.g., an audio adapter and/or a speaker) and/or a printer.
- computing device 105 includes an input interface 130 , such as a user input interface 135 or a communication interface 140 .
- Input interface 130 may be configured to receive any information suitable for use with the methods described herein.
- user input interface 135 is coupled to processor 115 and receives input from user 125 .
- User input interface 135 may include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or a touch screen), a gyroscope, an accelerometer, a position detector, and/or an audio input interface (e.g., including a microphone).
- a single component, such as a touch screen may function as both a display device of presentation interface 120 and user input interface 135 .
- Communication interface 140 is coupled to processor 115 and is configured to be coupled in communication with one or more remote devices, such as another computing device 105 .
- communication interface 140 may include, without limitation, a wired network adapter, a wireless network adapter, and/or a mobile telecommunications adapter.
- Communication interface 140 may also transmit data to one or more remote devices.
- a communication interface 140 of one computing device 105 may transmit an indication of one or more source code portions of interest and/or one or more execution events to the communication interface 140 of another computing device 105 .
- FIG. 2 is block diagram of an exemplary system 200 including a server 205 , a database management device 210 , and a client device 215 coupled in communication via a network 220 .
- Network 220 may include, without limitation, the Internet, a local area network (LAN), a wide area network (WAN), a wireless LAN (WLAN), a mesh network, and/or a virtual private network (VPN). While certain operations are described below with respect to particular computing devices 105 , it is contemplated that any computing device 105 may perform any portion or the entirety of the described operations.
- server 205 , database management device 210 , and client device 215 are computing devices 105 (shown in FIG. 1 ). Each computing device 105 is coupled to network 220 via a communication interface 140 (shown in FIG. 1 ). In an alternative embodiment, server 205 is integrated with database management device 210 and/or with client device 215 .
- Server 205 stores data that is accessible by client device 215 .
- server 205 executes a database 230 that stores data in a structured format, such as tables with a plurality of columns and rows.
- server 205 receives and responds to requests from database management device 210 and client device 215 , as described in more detail below.
- server 205 may provide data to client device 215 from a source other than database 230 .
- server 205 may transmit files stored at server 205 or some other device to client device 215 .
- server 205 may execute a software application, such as a web service, that provides data to client device 215 .
- Database management device 210 interacts with a database administrator 225 (e.g., via user input interface 135 and/or presentation interface 120 ).
- database management device 210 may be configured to receive database schema data, such as definitions of tables and/or columns in a relational database, from database administrator 225 .
- Database management device 210 transmits the schema data to server 205 via network 220 .
- Server 205 receives and applies the schema data to database 230 .
- Client device 215 interacts with a user 235 (e.g., via user input interface 135 and/or presentation interface 120 ).
- client device 215 may acquire and/or receive data objects provided by database 230 (e.g., product data, media data, education data, and/or any other type of data) and present such data to, user 235 .
- database 230 e.g., product data, media data, education data, and/or any other type of data
- client device 215 may present data in stratified trees, as described in more detail below.
- client device 215 may receive data from user 235 and submit the data to server 205 , such that database 230 is updated with the submitted data.
- client device 215 is remote to server 205 .
- client device 215 may be located at a facility that is geographically removed from server 205 and/or database management device 210 .
- client device 215 is described above as receiving data from server 205 and presenting the received data to user 235 , in some embodiments, client device 215 presents data that is stored at client device 215 .
- client device 215 may execute database 230 and/or access data stored in one or more files at client device 215 .
- FIG. 3 is a flowchart of an exemplary method 300 for use in presenting a hierarchy of data objects. Portions of method 300 may be performed, for example, using any one of or any combination of computing devices 105 in system 200 (shown in FIG. 2 ).
- a computing device 105 provides 305 a base view of a hierarchy of data objects for presentation to a user.
- FIG. 4 is an exemplary user interface 400 for presenting a base view of a hierarchy of data objects.
- User interface 400 is provided herein to illustrate the hierarchy shown in FIGS. 5-8 and is optionally provided 305 for presentation to a user. In some embodiments, user interface 400 is not provided 305 by computing device 105 .
- User interface 400 includes a plurality of tree nodes 405 , each of which represents a data object in the hierarchy.
- the hierarchy may include media (e.g., books and/or videos), education courses in a course catalog, personnel in a chain of command, and/or any other hierarchically organized data objects.
- Each tree node 405 is associated with zero or one “parent” nodes representing data objects above the tree node 405 in the hierarchy, and zero or more “child” nodes representing data objects below the tree node 405 in the hierarchy.
- the positions of tree nodes in user interface 400 correspond to the positions of the represented data objects in the hierarchy.
- the root object of the hierarchy which has no parents and is considered to be at the top of the hierarchy, is represented by a root node 410 positioned above all other tree nodes 405 .
- root node 410 may be presented as the left-most tree node 405 or at any extreme of user interface 400 .
- the root object is associated with two child objects, represented by a first child node 415 and a second child node 420 , which are positioned below root node 410 .
- Hierarchical connectors 425 extend from root node 410 to first child node 415 and to second child node 420 .
- data objects below first child node 415 and second child node 420 in the hierarchy are represented by tree nodes 405 positioned below first child node 415 and second child node 420 in user interface 400 .
- Computing device 105 determines 310 for each data object in the hierarchy an associated node type to create a plurality of node types.
- academic media may be classified into types of media format, such as software, video, tapes, and books, as described in more detail below with reference to FIG. 10 .
- Computing device 105 creates 315 a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types.
- FIG. 5 is an exemplary user interface 500 for presenting a graphical representation of a hierarchy of data objects.
- User interface 500 includes a first stratum 505 corresponding to a first node type, a second stratum 510 corresponding to a second node type, a third stratum 515 corresponding to a third node type, and a fourth stratum 520 corresponding to a fourth node type.
- Computing device 105 creates 320 a plurality of tree nodes representing the existing data objects in the hierarchy. Each tree node is associated with the node type that corresponds to the associated data object. Computing device 105 positions 325 in each stratum of the plurality of strata the tree nodes associated with the node type that corresponds to the stratum. As shown in FIG. 5 , for example, a first node 525 and a second node 530 are included 325 in first stratum 505 .
- user interface 500 facilitates presenting the groupings of tree nodes into regions (e.g., strata) by node type, thereby allowing a user to see all of a specific type of node easily.
- tree nodes are positioned within user interface 500 by traversing the hierarchy of data objects depth-first (e.g., by beginning at a deepest level of the hierarchy), placing tree nodes representing the data objects into strata of user interface 500 while progressing in a predetermined direction (e.g., left to right) in the hierarchy presented in user interface 400 (shown in FIG. 4 ).
- any node may be adjusted in a predetermined direction (e.g., to the right) to an extent that allows the node itself and any hierarchical connector(s) to be drawn without overlapping any other nodes or hierarchical connectors already drawn. All nodes of each type may be clearly distinguished by placement in discrete strata and optionally graphically distinguished by node type (as described in more detail below), providing the effect of a set of lists.
- tree nodes in user interface 500 are graphically distinguished by node type. Graphical distinction may be accomplished using a background pattern, a background color, a line weight, a line color, an icon, an animation, and/or any other method of visually differentiating user interface elements from one another. For example, tree nodes associated with a first node type and positioned in first stratum 505 may be presented with a first background pattern, with a first line pattern, and/or in a first color, whereas tree nodes associated with a second node type and positioned in second stratum 510 may be presented with a second background pattern, with a second line pattern, and/or in a second color. As shown in FIGS. 4-8 , tree nodes are graphically distinguished by node type using a background pattern that is unique to each node type.
- computing device 105 In addition to presenting tree nodes by node type, computing device 105 also presents the hierarchical relationships between data objects.
- computing device 105 may include 330 in user interface 500 hierarchical connectors 425 , as described above with reference to FIG. 4 .
- Hierarchical connectors 425 extend between tree nodes and represent hierarchical relationships between the data objects represented by the tree nodes.
- root node 410 corresponds to the fourth node type and is positioned in fourth stratum 520 ;
- first child node 415 corresponds to the second node type and is positioned in second stratum 510 ; and second child node 420 corresponds to the third node type and is positioned in third stratum 515 .
- computing device 105 includes in user interface 500 hierarchical connectors 425 extending between root node 410 and first child node 415 , and between root node 410 and second child node 420 .
- computing device 105 emphasizes the different strata by graphically distinguishing 335 tree nodes based on the node types associated with the tree nodes. For example, visually distinct styles may be applied to the tree nodes of each stratum. As shown in FIG. 5 , tree nodes in first stratum 505 are drawn with a first background pattern, tree nodes in second stratum 510 are drawn with a second background pattern, tree nodes in third stratum 515 are drawn with a third background pattern, and tree nodes in fourth stratum 520 are drawn with a fourth background pattern.
- Computing device 105 provides 340 the graphical representation of the hierarchy for presentation to a user.
- computing device 105 may directly present a graphical representation such as user interface 500 via a presentation interface 120 (shown in FIG. 1 ) and/or may transmit the graphical representation via a communication interface 140 (shown in FIG. 1 ) to another computing device 105 for presentation.
- hierarchical connectors 425 are drawn as straight lines, which may overlap and/or be graphically distinguished from each other. In other embodiments, hierarchical connectors 425 are drawn as curved and/or angled lines, such that overlapping of hierarchical connectors 425 may be avoided, and/or the graphical representation of the data object hierarchy may occupy a smaller area.
- computing device 105 includes in user interface 500 a boundary 535 , which may or may not be visible, perpendicular to the strata.
- Computing device 105 determines a target position associated with each tree node in user interface 500 and positions each tree node at the target position.
- the target position includes a distance from boundary 535 at which hierarchical connectors 425 extending from the tree node will not intersect any tree node that is not directly related to the tree node (e.g., any tree node other than a direct parent and/or direct child of the tree node) and will not intersect another hierarchical connector 425 .
- the distance may be determined as the smallest distance from boundary 535 at which such intersections will not occur.
- the distance may be determined as a distance at which hierarchical connectors 425 extending from the tree node also will not pass within a predetermined distance (e.g., a “padding” distance) of other tree nodes and/or other hierarchical connectors 425 .
- a predetermined distance e.g., a “padding” distance
- all nodes are positioned as far left as possible without allowing tree nodes and/or hierarchical connectors 425 to intersect other tree nodes or hierarchical connectors at the time of positioning, given straight line hierarchical connectors 425 .
- Such an embodiment facilitates presenting tree nodes within a stratum as a list, despite the presence of hierarchical connectors 425 extending from the tree nodes within the stratum.
- each tree node is positioned between (e.g., centered between) the minimum and maximum positions of all of its children. Such embodiments facilitate emphasizing the sub-trees of data objects within the hierarchy and may be valuable in contexts in which conveying such sub-tree relationships is desired.
- FIG. 6 is an exemplary user interface 600 for presenting a graphical representation of a hierarchy of data objects in which tree nodes are positioned between child tree nodes.
- the strata extend along an axis 605 .
- Computing device 105 determines a minimum child position and a maximum child position associated with each tree node.
- the minimum child position represents a minimum position on axis 605 at which a child tree node of the tree node is positioned.
- the maximum child position represents a maximum position on axis 605 at which a child tree node of the tree node is positioned.
- a left-most child node 610 is associated with a minimum child position 615 on axis 605
- a right-most child node 620 is associated with a maximum child position 625 on axis 605 .
- Root node 410 determines a target position associated with each tree node between the minimum child position and the maximum child position associated with the tree node, and positions each tree node at the associated target position.
- root node 410 is positioned at a target position 630 on axis 605 that is between minimum child position 615 and maximum child position 625 . More specifically, target position 630 may be centered between (e.g., equidistant from) minimum child position 615 and maximum child position 625 associated with root node 410 .
- FIG. 7 is an exemplary user interface 700 for presenting a graphical representation of a hierarchy of data objects with evenly spaced tree nodes in each stratum.
- tree nodes within each stratum are spaced from each other at a predetermined distance 705 .
- user interface 700 includes curved hierarchical connectors 710 that are shaped to avoid intersecting tree nodes that are not directly related to each tree node and to avoid intersecting other hierarchical connectors.
- FIG. 8 is an exemplary user interface 800 for presenting a graphical representation of a hierarchy of data objects in an arrangement that may be referred to as a “grid tree.”
- User interface 800 includes a boundary 805 that is perpendicular to the strata.
- Computing device positions the set of tree nodes within each stratum at a predetermined distance 810 from boundary 805 .
- Presenting the hierarchy as a grid tree, as shown in FIG. 8 may be useful in contexts that call for multiple lists, with the expectation that the underlying tree may be provided for occasional reference. For example, a vendor's site may display products by category, company, etc. The location of each product in a product hierarchy may be shown in a tree for the interested viewer, but seldom used.
- computing device 105 determines 307 a classification strategy and determines 310 the node type associated with each data object based on the determined classification strategy and/or one or more attributes of the data object. For example, computing device 105 may determine 307 the classification strategy by identifying a default classification strategy or a classification strategy previously associated with the hierarchy of data objects. In addition, or alternatively, computing device 105 may allow a user to select a classification strategy that is based on one or more attributes of the data objects in the hierarchy. Referring to FIG. 3 , in such embodiments, computing device 105 determines 307 the classification strategy by receiving a selection of a classification strategy (e.g., via input interface 130 ).
- FIGS. 9-12 demonstrate the presentation of a hierarchy of university library holdings based on a user-selectable classification strategy.
- students accessing a university library system may explore a library catalog through an interactive interface using a standard hierarchical tree.
- FIG. 9 is an exemplary user interface 900 for presenting a base view of a hierarchy of university holdings.
- User interface 900 includes a root node 905 representing all university holdings. Root node 905 is positioned at the top left-hand corner of user interface 900 , and each child node is positioned below and to the right of a corresponding parent node (e.g., in an expandable tree arrangement). For example, a first child node 910 corresponding to a node type of “academic” and a second child node 915 corresponding to a node type of “non-academic” are shown below and to the right of root node 905 . First child node 910 is expanded, such that child nodes of first child node 910 are displayed.
- holdings are graphically distinguished from each other based on a media type: books (identified with a “b”), tapes (identified with a “t”), video (identified with a “v”) and software (identified with an “s”).
- User interface 900 also includes hierarchical connectors 920 representing hierarchical relationships between holdings. Accordingly, user interface 900 presents holdings primarily based on hierarchical relationships and represents classification into node types (e.g., media type) using graphical distinction.
- FIG. 10 is an exemplary user interface 1000 for presenting a hierarchy of university holdings as a tree stratified by media type.
- Root node 905 is positioned at a corner (e.g., the lower left-hand corner) of user interface 1000 , and child nodes (e.g., first child node 910 and second child node 915 ) representing objects at each successive level of the hierarchy are positioned progressively farther from the corner (e.g., above and to the right of the parent node).
- the tree nodes shown in FIG. 9 are positioned in strata 1005 that are presented as vertical columns.
- hierarchical connectors 1010 represent the hierarchical relationships between the data objects represented by the tree nodes. Accordingly, the user is presented a simple list of books, tapes, videos and software, in a tabular format, without losing the benefit of the tree. Color or other graphical distinction that emphasizes continuity for the strata 1005 allows the user to perceive the tree nodes in each stratum 1005 as a list.
- FIG. 11 is an exemplary user interface 1100 for presenting a hierarchy of university holdings as a tree stratified by availability. For example, each holding may be classified as available, reserved, borrowed, or restricted, and this availability may be considered an attribute of each holding.
- tree nodes representing the holdings are positioned in strata 1105 associated with the various availabilities. For example, the same tree nodes that are stratified by media type in FIG. 10 may be stratified by availability.
- FIG. 12 is an exemplary user interface 1200 for presenting a hierarchy of university holdings as a tree stratified by media type with emphasis on a hierarchical structure.
- Root node 905 is positioned at the top left-hand corner of user interface 1200 , similar to the positioning of root node 905 in the base hierarchy view of user interface 900 (shown in FIG. 9 ). Also, as in user interface 900 , each child node is positioned below and to the right of a corresponding parent node.
- user interface 1200 includes strata 1205 associated with media types. Each tree node is positioned in a stratum 1205 based on the media type associated with the holding represented by the tree node, as in user interface 1000 (shown in FIG. 10 ). Accordingly, user interface 1200 emphasizes the tree structure of the hierarchy by vertically positioning tree nodes based on hierarchical relationships, while presenting attribute information by horizontally positioning the tree nodes in the various strata 1205 . Such an embodiment may reduce the visual effect of changes applied to the tree nodes. For example, the addition of a tree node may simply shift all nodes positioned below the added node by a constant amount (e.g., the height of one row in user interface 1200 ).
- FIGS. 9-12 the structure of the trees shown in FIGS. 9-12 remains unchanged, despite the various presentations described. Rather, the manner in which the tree is drawn allows distinctions between nodes to be clear to the user. Further, stratification based on attributes of the nodes allows additional information to be conveyed.
- user interface 1100 presents availability status, which is not shown in user interfaces 900 , 1000 , and 1200 (shown in FIGS. 9 , 10 , and 12 , respectively).
- a genealogical tree could be presented showing all people grouped by state, country of origin, work sector, education, and/or religious affiliation.
- a personnel chart could show department management hierarchy as a tree, but show all personnel according to classes of educational degree, and/or by area of discipline. For instance, all chemical engineers might be shown distinct from all mechanical engineers, and so on.
- the interface to a project could allow files to be grouped in various ways without compromising the presentation of the underlying file directory tree. For instance, a set of files could be presented according to software application types, dates modified, and/or file owners.
- Embodiments described above present strata in straight rows or columns. Other shapes of strata are also contemplated and may enhance the visual effect and/or interpretation of presented trees. For example, in some embodiments, strata are depicted in a curved (e.g., elliptical, circular, ovular, arced, and/or curvilinear) shape. Such embodiments facilitate drawing straight hierarchical connectors between nodes in a stratum without requiring exceptional staggering of the nodes.
- curved e.g., elliptical, circular, ovular, arced, and/or curvilinear
- a stratified tree has segments of the tree separated already (e.g., by node type) leads to the potential for projecting the strata onto desired shapes and/or images.
- elliptical e.g., circular
- Elliptical or arced strata may be useful when distinguishing a selected group of nodes from unselected nodes based on an attribute of interest. For example, if the hierarchy represents the management hierarchy of a company, elliptical strata may be used to distinguish a group of managers selected for an annual productivity award from those not selected.
- the top two strata may be represented in an elliptical or arced form as well.
- FIG. 13 is a user interface 1300 for presenting a hierarchy of education courses using arced strata.
- User interface 1300 includes a first elliptical stratum 1305 associated with a “completed” status and a second elliptical stratum 1310 associated with a “not completed” status.
- the tree nodes in first elliptical stratum 1305 represent courses that have been completed by a student, and the tree nodes in second elliptical stratum 1310 represent courses that have not been completed by a student.
- arced strata presents all of the nodes in each stratum as equally significant (e.g., the order of learning is not significant, but all of the courses are equally important).
- user interface 1300 may position the corresponding tree node in first elliptical stratum 1305 , optionally graphically distinguishing completed courses displayed in first elliptical stratum 1305 from uncompleted courses displayed in second elliptical stratum 1310 . Accordingly, when all courses are completed, all the tree nodes representing the courses may be included in first elliptical stratum 1305 .
- the shape of one or more strata is conformed to a desired shape or image.
- strata may be drawn in complex curves, including logos and other pictures, as long as a user (e.g., an interface designer) or an automated process specifies the path and/or the boundaries of each stratum.
- Allowing curved lines between the nodes may allow segments that do not run the full length of the image.
- nodes in one or more portions of a strata could be positioned where they are desired (e.g., according to a desired spatial distribution specified by a default setting and/or by a user), and the hierarchical connectors extending from the nodes may include one or more vertices and/or be extended in curves to connect the endpoint nodes without intersecting other nodes and/or other hierarchical connectors.
- FIG. 14 is an exemplary user interface 1400 for presenting a hierarchy of education courses using strata conformed to the shape of an image.
- User interface 1400 includes a logo 1405 in the form of a magnifying glass.
- a first stratum 1410 and a second stratum 1415 are defined as being coextensive with at least a portion of logo 1405 .
- first stratum 1410 is allocated an area in the top portion 1420 of logo 1405
- second stratum 1415 is allocated an area in the bottom portion 1425 of logo 1405 .
- a parent node area 1430 is defined coextensive with a handle portion 1435 of logo 1405 .
- Tree nodes with child nodes in first stratum 1410 and/or second stratum 1415 are positioned in parent node area 1430 .
- areas allocated to first stratum 1410 , second stratum 1415 , and parent node area 1430 are received from a user.
- Graphical representations as described herein may be drawn using various drawing algorithms, which may be iterative or recursive.
- the exemplary implementation described below assumes that the strata are drawn vertically. However, the implementation may be applied to strata drawn horizontally, diagonally, and/or in any orientation.
- An exemplary positioning algorithm capitalizes on the fact that sub-trees connect to the rest of a tree only through their root. For example such an algorithm may determine the position for each tree node representing a data object in a sub-hierarchy of the hierarchy to create a sub-tree, and after creating the sub-tree, determine the positions of tree nodes representing data objects above the sub-hierarchy in the hierarchy. Further, the positions of the tree nodes representing data objects above the sub-hierarchy may be determined at least in part by determining positions at which hierarchical connectors extending from the tree nodes will not intersect the sub-tree.
- FIG. 15 is an illustration of a first node 1505 in a first (or “red”) stratum 1510 , a second node 1515 in a second (or “blue”) stratum 1520 , and a sub-tree T 1525 .
- Any sub-tree T 1525 whose root node is on a path 1530 between first node 1505 and second node 1515 will not have hierarchical connectors to any node that is not on path 1530 . Therefore, first node 1505 and second node 1515 can always be placed in first stratum 1510 and second stratum 1520 in the drawing.
- first node 1505 and second node 1515 may need to be increased to allow for any sub-tree T 1525 rooted on path 1530 , as shown in FIG. 16 , an illustration of a first sub-tree 1605 and a second sub-tree 1610 positioned between first node 1505 and second node 1515 .
- any sub-tree will contain a hierarchical connector to some node in the rest of the tree, resulting in a need for edges to intersect or cross over one another in the drawing.
- Exemplary positioning algorithms need not pursue such steps explicitly (and in fact moving all of the nodes before all of the nodes have been ordered in the rows may not be the most efficient approach); rather, they may take advantage of this quality of trees.
- Exemplary embodiments capitalize on this fact (that a sub-tree T only connects to the rest of the tree through the root of T) using a depth-first traversal of the tree, calculating positions in the drawing for each node as the node is first visited.
- a depth-first traversal is itself of linear growth, and has the advantage that once a sub-tree T is drawn, no further hierarchical connectors will extend to any of its child nodes. Therefore, hierarchical connectors may be drawn around the portion of the drawing allocated to a certain sub-tree T without concern that future hierarchical connectors will intersect them.
- FIG. 17 is an illustration of a hierarchical connector 1705 being drawn between first node 1505 and second node 1515 .
- a sub-tree 1710 has already been drawn or had an area allocated to it. Now the traversal is visiting second node 1515 , whose parent is first node 1505 .
- Hierarchical connector 1705 extending between first node 1505 and second node 1515 may be drawn around the area allocated to sub-tree 1710 because no subsequently drawn hierarchical connector will extend to any of the nodes in sub-tree 1710 .
- a depth-first traversal does not necessarily refer to a depth-first traversal of the original data object hierarchy. Rather, the traversal begins with any node in the hierarchy, which could be called the drawing root node, as opposed to the actual root node.
- the drawing root node For example, in user interface 400 (shown in FIG. 4 ), root node 410 , labeled “A”, is the root node shown and is the actual root of the presented hierarchy.
- the trees shown in FIGS. 5-8 are drawn using the node labeled “H” as the drawing root node, even though root node 410 remains the root node of the underlying data object hierarchy.
- the traversal from the drawing root node treats all hierarchical connectors the same way, regardless of which node for a hierarchical connector is the parent node in the actual data object hierarchy.
- the node labeled “D” may be a child of the node labeled “H” in such traversals, even though in the actual hierarchy, H is a child of D.
- every tree node is placed in a unique column.
- Hierarchical connectors which are also referred to as “edges” below, are drawn indirectly, looping downward through the tree.
- Each hierarchical connector is represented by two vertical line segments connected by a horizontal line segment.
- the drawing algorithm may be presented with nodes of uniform size.
- arrays may be maintained with column widths and starting points and/or row heights and starting points.
- the drawing algorithm runs in linear time by obviating the need to check for intersecting hierarchical connectors.
- FIG. 18 is a user interface 1800 including hierarchical connectors drawn by a first exemplary drawing algorithm.
- user interface 1800 may be created at least in part by executing the algorithm shown in Listing 1 below.
- Listing 1 CreateDrawingTree ( ) DRAWINGROOTNODE.edgeDistanceFromBottom ⁇ 0 column ⁇ 0 push DRAWINGROOTNODE do while stack is not empty ⁇ current ⁇ pop /* draw current */ column++ current.left ⁇ column * COLUMN_WIDTH current.top ⁇ current.level * ROW_HEIGHT draw( current , current.left , current.top ) if current ⁇ DRAWINGROOTNODE then ⁇ /* draw edge */ current.edgeDistanceFromBottom ⁇ current.parent.edgeDistanceFromBottom ⁇ 1 + current.parent.numberOfChildren ⁇ current.parent.childrenEdgesDrawn drawedge ( current ) current.parent.childrentEdgesDrawn++ ⁇ /* children of current */ current.childrenEdgesDrawn ⁇ 0 for each child in current.children ⁇ child.parent ⁇ current push child ⁇ ⁇
- the x-coordinate of each of the vertical line segments 1805 is calculated by offset from the left edge 1810 of the node in question based upon the total number of hierarchical connectors 1815 for that node.
- the y-coordinate of the horizontal segments 1820 is calculated by offset from the x-axis (node field edgeDistanceFromBottom) based upon edgeDistanceFromBottom for the parent and for the number of children remaining to be drawn for the parent.
- FIG. 19 is a user interface 1900 including hierarchical connectors drawn by a second exemplary drawing algorithm.
- user interface 1900 may be created at least in part by executing the algorithm shown in Listing 2 below.
- the second exemplary drawing algorithm sorts children of the current node by the number of their descendents in the drawn tree and pushes the children onto the stack in decreasing order.
- Such an embodiment facilitates ensuring that children with fewer descendents are drawn closer to parents than their siblings, potentially resulting in the hierarchical connectors being easier to follow visually.
- the algorithm shown in Listing 1 may be expected to execute in O(n) time.
- the algorithm shown in Listing 2 may be expected to execute in O(n*log(n)) time. Accordingly, one or the other algorithm may be selected based on the desired appearance of the tree and/or the desired performance of the positioning algorithm for a given tree size.
- user interface 1900 includes less stacking of horizontal segments 1905 when compared with user interface 1800 (shown in FIG. 18 ).
- Such an algorithm may be useful in contexts such as a stratified tree of only one level, such as a generated menu. For example, if the user hovers over a menu item, the contents of the menu could be horizontally expanded as a menu bar directly beneath the main menu bar.
- such an algorithm may be valuable in an application that is limited to presenting each node in a separate column or row, such as an application that presents folders in a hierarchy and allows the user to see a list of files beneath every opened folder, and/or a visual database, such as a photo collection or personnel directory, that shows an image or other photo on each row with a clear path showing how each item is classified.
- a visual database such as a photo collection or personnel directory, that shows an image or other photo on each row with a clear path showing how each item is classified.
- such an algorithm may be used in a context involving user interaction in which simple representation (e.g., less than ten items) that updates quickly is desired. For instance, a user might select users from a small group of users on a local network to join in a video phone conference.
- a graphical representation of a hierarchy may present a selected portion of the hierarchy, such as a list of favorite files.
- the graphical representation may include only the selected nodes and the set of nodes (e.g., directly related and/or interconnecting nodes) needed to connect them to one another using hierarchical connectors, or alternatively to connect them to the root of the hierarchy.
- a user may be permitted to click on any node to add its adjacent nodes to the tree, so that the user could traverse the tree to select new nodes.
- a computer or computing device includes one or more processors or processing units and at least one memory device, such as a system memory and/or some form of computer-readable media.
- computer-readable media comprise computer storage media and communication media.
- Computer storage media are non-transitory and include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.
- Communication media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Combinations of any of the above are also included within the scope of computer-readable media.
- any portion or the entirety of the operations described herein are encoded as computer-executable instructions, which are embodied on one or more non-transitory computer-readable media. When executed by at least one processor, the computer-executable instructions cause the processor to perform the encoded operations.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Devices, methods, and computer-readable media for use in visually presenting a hierarchy of data objects, while simultaneously visually presenting non-hierarchical type information in an organized and visually distinct manner. Data objects in a hierarchy are each associated by a computer with a node type from a set of node types. A graphical representation of the hierarchy is created, with a plurality of tree nodes representing the data objects. The visual representation includes a plurality of visually distinct strata corresponding to the plurality of node types, with each stratum corresponding to a single node type. The visual representation also includes hierarchical connectors extending between pairs of tree nodes, representing hierarchical relationships between the respective pairs of data objects represented by the tree node pairs.
Description
- This patent application is a divisional of U.S. patent application Ser. No. 13/226,270 filed Sep. 6, 2011, which claims the benefit of U.S. provisional patent application 61/380,060 filed Sep. 3, 2010; both of said previous patent applications are hereby incorporated by reference in their entireties into the present patent application.
- The subject matter disclosed herein relates generally to data presentation and, more specifically, to systems and methods for use in presenting stratified trees that include nodes from a hierarchy of data objects in stratified areas.
- At least some known software applications present data objects as nodes in a tree structure that represents a hierarchical relationship between the data objects. Notably, such a presentation technique provides a user with only one perspective that is based on the object hierarchy. Known software applications do not group tree nodes by type, such that both hierarchical relationships and type relationships are presented. Rather, hierarchical relationships and type relationships are generally conveyed by separate presentations.
- This Brief Description is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Brief Description is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
- In one aspect, a method for presenting a hierarchy of data objects is provided. The method includes determining for each data object in the hierarchy, by a computing device, an associated node type to create a plurality of node types. The computing device creates a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types, and also creates a plurality of tree nodes representing the data objects. Each tree node is associated with the node type that corresponds to the associated data object. The computing device further includes in each stratum of the plurality of strata the tree nodes associated with the node type that corresponds to the stratum and provides the graphical representation of the hierarchy for presentation to a user.
- In another aspect, a device including a memory for storing a hierarchy of data objects and a processor coupled to the memory is provided. Each data object is associated with a node type of a plurality of node types. The processor is programmed to create a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types, and to create a plurality of tree nodes representing the data objects. Each tree node associated with the node type that corresponds to the associated data object. The processor is also programmed to include in each stratum of the plurality of strata the tree nodes associated with the node type that corresponds to the stratum, and to include in the graphical representation hierarchical connectors extending between the tree nodes. The hierarchical connectors represent hierarchical relationships between the data objects represented by the tree nodes.
- In yet another aspect, one or more non-transitory computer-readable media having computer-executable instructions embodied thereon are provided. When executed by at least one processor, the computer-executable instructions cause the processor to: determine a node type that is associated with each data object in a hierarchy of data objects to create a plurality of node types; to create a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types; to create a plurality of tree nodes representing the data objects, each tree node associated with the node type that corresponds to the associated data object; to include in each stratum of the plurality of strata, by the computing device, the tree nodes associated with the node type that corresponds to the stratum; and to include in the graphical representation hierarchical connectors extending between the tree nodes. The hierarchical connectors represent hierarchical relationships between the data objects represented by the tree nodes.
- The embodiments described herein may be better understood by referring to the following description in conjunction with the accompanying drawings.
-
FIG. 1 is a block diagram of an exemplary computing device. -
FIG. 2 is block diagram of an exemplary computing system that includes a server, a database management device, and a client device. -
FIG. 3 is a flowchart of an exemplary method for use in presenting a hierarchy of data objects. -
FIG. 4 is an exemplary user interface for presenting a base view of a hierarchy of data objects. -
FIG. 5 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects. -
FIG. 6 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects in which tree nodes are positioned between child tree nodes. -
FIG. 7 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects with evenly spaced tree nodes in each stratum. -
FIG. 8 is an exemplary user interface for presenting a graphical representation of a hierarchy of data objects as a grid tree. -
FIG. 9 is an exemplary user interface for presenting a base view of a hierarchy of university holdings. -
FIG. 10 is an exemplary user interface for presenting a hierarchy of university holdings as a tree stratified by media type. -
FIG. 11 is an exemplary user interface for presenting a hierarchy of university holdings as a tree stratified by availability. -
FIG. 12 is an exemplary user interface for presenting a hierarchy of university holdings as a tree stratified by media type with emphasis on a hierarchical structure. -
FIG. 13 is a user interface for presenting a hierarchy of education courses using arced strata. -
FIG. 14 is an exemplary user interface for presenting a hierarchy of education courses using strata conformed to the shape of an image. -
FIG. 15 is an illustration of a first node in a first stratum, a second node in a second stratum, and a sub-tree T. -
FIG. 16 is an illustration of a first sub-tree and a second sub-tree positioned between the first node and second node shown inFIG. 15 . -
FIG. 17 is an illustration of a hierarchical connector being drawn between the first node and second node shown inFIG. 15 . -
FIG. 18 is a user interface including hierarchical connectors drawn by a first exemplary drawing algorithm. -
FIG. 19 is a user interface including hierarchical connectors drawn by a second exemplary drawing algorithm. - The embodiments described herein enable the presentation of data objects based on both hierarchical and type (e.g., attribute-related) relationships. In exemplary embodiments, tree nodes representing the data objects are positioned in strata based on node types associated with the tree nodes, and hierarchical connectors extend between tree nodes, indicating hierarchical relationships between the represented data objects. Node types may be determined based on a user-selectable classification strategy, such as grouping by a particular aspect and/or attribute of the data objects.
- An exemplary technical effect of the methods, systems, and apparatus described herein includes at least one of (a) determining for each data object in the hierarchy, by a computing device, an associated node type to create a plurality of node types; (b) creating, by the computing device, a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types; (c) creating, by the computing device, a plurality of tree nodes representing the data objects, each tree node associated with the node type that corresponds to the associated data object; (d) including in each stratum of the plurality of strata, by the computing device, the tree nodes associated with the node type that corresponds to the stratum; (e) including in the graphical representation hierarchical connectors extending between the tree nodes, wherein the hierarchical connectors represent hierarchical relationships between the data objects represented by the tree nodes; and (f) providing the graphical representation of the hierarchy for presentation to a user.
-
FIG. 1 is a block diagram of anexemplary computing device 105.Computing device 105 includes amemory device 110 and aprocessor 115 coupled tomemory device 110 for executing instructions. In some embodiments, executable instructions are stored inmemory device 110.Computing device 105 is configurable to perform one or more operations described herein byprogramming processor 115. For example,processor 115 may be programmed by encoding an operation as one or more executable instructions and providing the executable instructions inmemory device 110.Processor 115 may include one or more processing units (e.g., in a multi-core configuration). -
Memory device 110 is one or more devices that enable information such as executable instructions and/or other data to be stored and retrieved.Memory device 110 may include one or more computer readable media, such as, without limitation, dynamic random access memory (DRAM), static random access memory (SRAM), a solid state disk, and/or a hard disk.Memory device 110 may be configured to store, without limitation, a hierarchy of data objects, node types, available classification strategies, computer-executable instructions, and/or any other type of data. - In some embodiments,
computing device 105 includes apresentation interface 120 that is coupled toprocessor 115.Presentation interface 120 presents information, such as data objects and/or classification strategies, to auser 125. For example,presentation interface 120 may include a display adapter (not shown inFIG. 1 ) that may be coupled to a display device, such as a cathode ray tube (CRT), a liquid crystal display (LCD), an organic LED (OLED) display, and/or an “electronic ink” display. In some embodiments,presentation interface 120 includes one or more display devices. In addition to, or in the alternative,presentation interface 120 may include an audio output device (e.g., an audio adapter and/or a speaker) and/or a printer. - In some embodiments,
computing device 105 includes aninput interface 130, such as auser input interface 135 or acommunication interface 140.Input interface 130 may be configured to receive any information suitable for use with the methods described herein. - In exemplary embodiments,
user input interface 135 is coupled toprocessor 115 and receives input fromuser 125.User input interface 135 may include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or a touch screen), a gyroscope, an accelerometer, a position detector, and/or an audio input interface (e.g., including a microphone). A single component, such as a touch screen, may function as both a display device ofpresentation interface 120 anduser input interface 135. -
Communication interface 140 is coupled toprocessor 115 and is configured to be coupled in communication with one or more remote devices, such as anothercomputing device 105. For example,communication interface 140 may include, without limitation, a wired network adapter, a wireless network adapter, and/or a mobile telecommunications adapter.Communication interface 140 may also transmit data to one or more remote devices. For example, acommunication interface 140 of onecomputing device 105 may transmit an indication of one or more source code portions of interest and/or one or more execution events to thecommunication interface 140 of anothercomputing device 105. -
FIG. 2 is block diagram of anexemplary system 200 including aserver 205, adatabase management device 210, and aclient device 215 coupled in communication via anetwork 220.Network 220 may include, without limitation, the Internet, a local area network (LAN), a wide area network (WAN), a wireless LAN (WLAN), a mesh network, and/or a virtual private network (VPN). While certain operations are described below with respect toparticular computing devices 105, it is contemplated that anycomputing device 105 may perform any portion or the entirety of the described operations. - In exemplary embodiments,
server 205,database management device 210, andclient device 215 are computing devices 105 (shown inFIG. 1 ). Eachcomputing device 105 is coupled tonetwork 220 via a communication interface 140 (shown inFIG. 1 ). In an alternative embodiment,server 205 is integrated withdatabase management device 210 and/or withclient device 215. -
Server 205 stores data that is accessible byclient device 215. In some embodiments,server 205 executes adatabase 230 that stores data in a structured format, such as tables with a plurality of columns and rows. In such embodiments,server 205 receives and responds to requests fromdatabase management device 210 andclient device 215, as described in more detail below. In addition, or alternatively,server 205 may provide data toclient device 215 from a source other thandatabase 230. For example,server 205 may transmit files stored atserver 205 or some other device toclient device 215. As another example,server 205 may execute a software application, such as a web service, that provides data toclient device 215. -
Database management device 210 interacts with a database administrator 225 (e.g., viauser input interface 135 and/or presentation interface 120). For example,database management device 210 may be configured to receive database schema data, such as definitions of tables and/or columns in a relational database, fromdatabase administrator 225.Database management device 210 transmits the schema data toserver 205 vianetwork 220.Server 205 receives and applies the schema data todatabase 230. -
Client device 215 interacts with a user 235 (e.g., viauser input interface 135 and/or presentation interface 120). For example,client device 215 may acquire and/or receive data objects provided by database 230 (e.g., product data, media data, education data, and/or any other type of data) and present such data to,user 235. For example,client device 215 may present data in stratified trees, as described in more detail below. Further,client device 215 may receive data fromuser 235 and submit the data toserver 205, such thatdatabase 230 is updated with the submitted data. - In some embodiments,
client device 215 is remote toserver 205. For example,client device 215 may be located at a facility that is geographically removed fromserver 205 and/ordatabase management device 210. Further, althoughclient device 215 is described above as receiving data fromserver 205 and presenting the received data touser 235, in some embodiments,client device 215 presents data that is stored atclient device 215. For example,client device 215 may executedatabase 230 and/or access data stored in one or more files atclient device 215. -
FIG. 3 is a flowchart of anexemplary method 300 for use in presenting a hierarchy of data objects. Portions ofmethod 300 may be performed, for example, using any one of or any combination ofcomputing devices 105 in system 200 (shown inFIG. 2 ). - In some embodiments, a
computing device 105 provides 305 a base view of a hierarchy of data objects for presentation to a user.FIG. 4 is anexemplary user interface 400 for presenting a base view of a hierarchy of data objects.User interface 400 is provided herein to illustrate the hierarchy shown inFIGS. 5-8 and is optionally provided 305 for presentation to a user. In some embodiments,user interface 400 is not provided 305 by computingdevice 105. -
User interface 400 includes a plurality oftree nodes 405, each of which represents a data object in the hierarchy. For example, the hierarchy may include media (e.g., books and/or videos), education courses in a course catalog, personnel in a chain of command, and/or any other hierarchically organized data objects. - Each
tree node 405 is associated with zero or one “parent” nodes representing data objects above thetree node 405 in the hierarchy, and zero or more “child” nodes representing data objects below thetree node 405 in the hierarchy. In exemplary embodiments, the positions of tree nodes inuser interface 400 correspond to the positions of the represented data objects in the hierarchy. For example, the root object of the hierarchy, which has no parents and is considered to be at the top of the hierarchy, is represented by aroot node 410 positioned above allother tree nodes 405. Alternatively, instead of being presented as thetop-most tree node 405,root node 410 may be presented as theleft-most tree node 405 or at any extreme ofuser interface 400. - The root object is associated with two child objects, represented by a
first child node 415 and asecond child node 420, which are positioned belowroot node 410.Hierarchical connectors 425 extend fromroot node 410 tofirst child node 415 and tosecond child node 420. Similarly, data objects belowfirst child node 415 andsecond child node 420 in the hierarchy are represented bytree nodes 405 positioned belowfirst child node 415 andsecond child node 420 inuser interface 400. -
Computing device 105 determines 310 for each data object in the hierarchy an associated node type to create a plurality of node types. For example, academic media may be classified into types of media format, such as software, video, tapes, and books, as described in more detail below with reference toFIG. 10 . -
Computing device 105 creates 315 a graphical representation of the hierarchy including a plurality of strata corresponding to the plurality of node types.FIG. 5 is anexemplary user interface 500 for presenting a graphical representation of a hierarchy of data objects.User interface 500 includes afirst stratum 505 corresponding to a first node type, asecond stratum 510 corresponding to a second node type, athird stratum 515 corresponding to a third node type, and afourth stratum 520 corresponding to a fourth node type. -
Computing device 105 creates 320 a plurality of tree nodes representing the existing data objects in the hierarchy. Each tree node is associated with the node type that corresponds to the associated data object.Computing device 105positions 325 in each stratum of the plurality of strata the tree nodes associated with the node type that corresponds to the stratum. As shown inFIG. 5 , for example, afirst node 525 and asecond node 530 are included 325 infirst stratum 505. - Accordingly,
user interface 500 facilitates presenting the groupings of tree nodes into regions (e.g., strata) by node type, thereby allowing a user to see all of a specific type of node easily. In one embodiment, tree nodes are positioned withinuser interface 500 by traversing the hierarchy of data objects depth-first (e.g., by beginning at a deepest level of the hierarchy), placing tree nodes representing the data objects into strata ofuser interface 500 while progressing in a predetermined direction (e.g., left to right) in the hierarchy presented in user interface 400 (shown inFIG. 4 ). The horizontal positioning of any node may be adjusted in a predetermined direction (e.g., to the right) to an extent that allows the node itself and any hierarchical connector(s) to be drawn without overlapping any other nodes or hierarchical connectors already drawn. All nodes of each type may be clearly distinguished by placement in discrete strata and optionally graphically distinguished by node type (as described in more detail below), providing the effect of a set of lists. - In some embodiments, tree nodes in
user interface 500 are graphically distinguished by node type. Graphical distinction may be accomplished using a background pattern, a background color, a line weight, a line color, an icon, an animation, and/or any other method of visually differentiating user interface elements from one another. For example, tree nodes associated with a first node type and positioned infirst stratum 505 may be presented with a first background pattern, with a first line pattern, and/or in a first color, whereas tree nodes associated with a second node type and positioned insecond stratum 510 may be presented with a second background pattern, with a second line pattern, and/or in a second color. As shown inFIGS. 4-8 , tree nodes are graphically distinguished by node type using a background pattern that is unique to each node type. - In addition to presenting tree nodes by node type,
computing device 105 also presents the hierarchical relationships between data objects. For example,computing device 105 may include 330 inuser interface 500hierarchical connectors 425, as described above with reference toFIG. 4 .Hierarchical connectors 425 extend between tree nodes and represent hierarchical relationships between the data objects represented by the tree nodes. - As shown in
FIG. 5 ,root node 410 corresponds to the fourth node type and is positioned infourth stratum 520;first child node 415 corresponds to the second node type and is positioned insecond stratum 510; andsecond child node 420 corresponds to the third node type and is positioned inthird stratum 515. Further,computing device 105 includes inuser interface 500hierarchical connectors 425 extending betweenroot node 410 andfirst child node 415, and betweenroot node 410 andsecond child node 420. - In exemplary embodiments,
computing device 105 emphasizes the different strata by graphically distinguishing 335 tree nodes based on the node types associated with the tree nodes. For example, visually distinct styles may be applied to the tree nodes of each stratum. As shown inFIG. 5 , tree nodes infirst stratum 505 are drawn with a first background pattern, tree nodes insecond stratum 510 are drawn with a second background pattern, tree nodes inthird stratum 515 are drawn with a third background pattern, and tree nodes infourth stratum 520 are drawn with a fourth background pattern. -
Computing device 105 provides 340 the graphical representation of the hierarchy for presentation to a user. For example,computing device 105 may directly present a graphical representation such asuser interface 500 via a presentation interface 120 (shown inFIG. 1 ) and/or may transmit the graphical representation via a communication interface 140 (shown inFIG. 1 ) to anothercomputing device 105 for presentation. - Various options are available positioning tree nodes within a graphical representation such as
user interface 500. In some embodiments,hierarchical connectors 425 are drawn as straight lines, which may overlap and/or be graphically distinguished from each other. In other embodiments,hierarchical connectors 425 are drawn as curved and/or angled lines, such that overlapping ofhierarchical connectors 425 may be avoided, and/or the graphical representation of the data object hierarchy may occupy a smaller area. - In the embodiment shown in
FIG. 5 ,computing device 105 includes in user interface 500 aboundary 535, which may or may not be visible, perpendicular to the strata.Computing device 105 determines a target position associated with each tree node inuser interface 500 and positions each tree node at the target position. The target position includes a distance fromboundary 535 at whichhierarchical connectors 425 extending from the tree node will not intersect any tree node that is not directly related to the tree node (e.g., any tree node other than a direct parent and/or direct child of the tree node) and will not intersect anotherhierarchical connector 425. For example, the distance may be determined as the smallest distance fromboundary 535 at which such intersections will not occur. Optionally, the distance may be determined as a distance at whichhierarchical connectors 425 extending from the tree node also will not pass within a predetermined distance (e.g., a “padding” distance) of other tree nodes and/or otherhierarchical connectors 425. - In the embodiment shown in
FIG. 5 , all nodes are positioned as far left as possible without allowing tree nodes and/orhierarchical connectors 425 to intersect other tree nodes or hierarchical connectors at the time of positioning, given straight linehierarchical connectors 425. Such an embodiment facilitates presenting tree nodes within a stratum as a list, despite the presence ofhierarchical connectors 425 extending from the tree nodes within the stratum. - In some embodiments, each tree node is positioned between (e.g., centered between) the minimum and maximum positions of all of its children. Such embodiments facilitate emphasizing the sub-trees of data objects within the hierarchy and may be valuable in contexts in which conveying such sub-tree relationships is desired.
-
FIG. 6 is anexemplary user interface 600 for presenting a graphical representation of a hierarchy of data objects in which tree nodes are positioned between child tree nodes. Inuser interface 600, the strata extend along anaxis 605.Computing device 105 determines a minimum child position and a maximum child position associated with each tree node. The minimum child position represents a minimum position onaxis 605 at which a child tree node of the tree node is positioned. The maximum child position represents a maximum position onaxis 605 at which a child tree node of the tree node is positioned. For example, forroot node 410, aleft-most child node 610 is associated with aminimum child position 615 onaxis 605, and aright-most child node 620 is associated with amaximum child position 625 onaxis 605. -
Computing device 105 determines a target position associated with each tree node between the minimum child position and the maximum child position associated with the tree node, and positions each tree node at the associated target position. In the example shown inFIG. 6 ,root node 410 is positioned at atarget position 630 onaxis 605 that is betweenminimum child position 615 andmaximum child position 625. More specifically,target position 630 may be centered between (e.g., equidistant from)minimum child position 615 andmaximum child position 625 associated withroot node 410. - In some embodiments, tree nodes are evenly spaced within each stratum.
FIG. 7 is anexemplary user interface 700 for presenting a graphical representation of a hierarchy of data objects with evenly spaced tree nodes in each stratum. Inuser interface 700, tree nodes within each stratum are spaced from each other at apredetermined distance 705. To accommodate the positioning of tree nodes based onpredetermined distance 705,user interface 700 includes curvedhierarchical connectors 710 that are shaped to avoid intersecting tree nodes that are not directly related to each tree node and to avoid intersecting other hierarchical connectors. -
FIG. 8 is anexemplary user interface 800 for presenting a graphical representation of a hierarchy of data objects in an arrangement that may be referred to as a “grid tree.”User interface 800 includes aboundary 805 that is perpendicular to the strata. Computing device positions the set of tree nodes within each stratum at apredetermined distance 810 fromboundary 805. Presenting the hierarchy as a grid tree, as shown inFIG. 8 , may be useful in contexts that call for multiple lists, with the expectation that the underlying tree may be provided for occasional reference. For example, a vendor's site may display products by category, company, etc. The location of each product in a product hierarchy may be shown in a tree for the interested viewer, but seldom used. - Some embodiments facilitate presenting a data object hierarchy according to various types or categories. In such embodiments,
computing device 105 determines 307 a classification strategy and determines 310 the node type associated with each data object based on the determined classification strategy and/or one or more attributes of the data object. For example,computing device 105 may determine 307 the classification strategy by identifying a default classification strategy or a classification strategy previously associated with the hierarchy of data objects. In addition, or alternatively,computing device 105 may allow a user to select a classification strategy that is based on one or more attributes of the data objects in the hierarchy. Referring toFIG. 3 , in such embodiments,computing device 105 determines 307 the classification strategy by receiving a selection of a classification strategy (e.g., via input interface 130). - For illustrative purposes,
FIGS. 9-12 demonstrate the presentation of a hierarchy of university library holdings based on a user-selectable classification strategy. In such an example, students accessing a university library system may explore a library catalog through an interactive interface using a standard hierarchical tree. -
FIG. 9 is anexemplary user interface 900 for presenting a base view of a hierarchy of university holdings.User interface 900 includes aroot node 905 representing all university holdings.Root node 905 is positioned at the top left-hand corner ofuser interface 900, and each child node is positioned below and to the right of a corresponding parent node (e.g., in an expandable tree arrangement). For example, afirst child node 910 corresponding to a node type of “academic” and asecond child node 915 corresponding to a node type of “non-academic” are shown below and to the right ofroot node 905.First child node 910 is expanded, such that child nodes offirst child node 910 are displayed. - In
user interface 900, holdings are graphically distinguished from each other based on a media type: books (identified with a “b”), tapes (identified with a “t”), video (identified with a “v”) and software (identified with an “s”).User interface 900 also includeshierarchical connectors 920 representing hierarchical relationships between holdings. Accordingly,user interface 900 presents holdings primarily based on hierarchical relationships and represents classification into node types (e.g., media type) using graphical distinction. -
FIG. 10 is anexemplary user interface 1000 for presenting a hierarchy of university holdings as a tree stratified by media type.Root node 905 is positioned at a corner (e.g., the lower left-hand corner) ofuser interface 1000, and child nodes (e.g.,first child node 910 and second child node 915) representing objects at each successive level of the hierarchy are positioned progressively farther from the corner (e.g., above and to the right of the parent node). - In
user interface 1000, the tree nodes shown inFIG. 9 are positioned instrata 1005 that are presented as vertical columns. In addition,hierarchical connectors 1010 represent the hierarchical relationships between the data objects represented by the tree nodes. Accordingly, the user is presented a simple list of books, tapes, videos and software, in a tabular format, without losing the benefit of the tree. Color or other graphical distinction that emphasizes continuity for thestrata 1005 allows the user to perceive the tree nodes in eachstratum 1005 as a list. -
FIG. 11 is anexemplary user interface 1100 for presenting a hierarchy of university holdings as a tree stratified by availability. For example, each holding may be classified as available, reserved, borrowed, or restricted, and this availability may be considered an attribute of each holding. When the user selects a classification strategy that distinguishes holdings by the availability attribute, tree nodes representing the holdings are positioned instrata 1105 associated with the various availabilities. For example, the same tree nodes that are stratified by media type inFIG. 10 may be stratified by availability. -
FIG. 12 is anexemplary user interface 1200 for presenting a hierarchy of university holdings as a tree stratified by media type with emphasis on a hierarchical structure.Root node 905 is positioned at the top left-hand corner ofuser interface 1200, similar to the positioning ofroot node 905 in the base hierarchy view of user interface 900 (shown inFIG. 9 ). Also, as inuser interface 900, each child node is positioned below and to the right of a corresponding parent node. - Unlike
user interface 900,user interface 1200 includesstrata 1205 associated with media types. Each tree node is positioned in astratum 1205 based on the media type associated with the holding represented by the tree node, as in user interface 1000 (shown inFIG. 10 ). Accordingly,user interface 1200 emphasizes the tree structure of the hierarchy by vertically positioning tree nodes based on hierarchical relationships, while presenting attribute information by horizontally positioning the tree nodes in thevarious strata 1205. Such an embodiment may reduce the visual effect of changes applied to the tree nodes. For example, the addition of a tree node may simply shift all nodes positioned below the added node by a constant amount (e.g., the height of one row in user interface 1200). - Notably, the structure of the trees shown in
FIGS. 9-12 remains unchanged, despite the various presentations described. Rather, the manner in which the tree is drawn allows distinctions between nodes to be clear to the user. Further, stratification based on attributes of the nodes allows additional information to be conveyed. For example,user interface 1100 presents availability status, which is not shown inuser interfaces FIGS. 9 , 10, and 12, respectively). - The use of varied stratifications allows the user to view the same data in different ways, as the library catalog example shows. This may be useful for any application that could present complex data in tree form. For example, a genealogical tree could be presented showing all people grouped by state, country of origin, work sector, education, and/or religious affiliation. A personnel chart could show department management hierarchy as a tree, but show all personnel according to classes of educational degree, and/or by area of discipline. For instance, all chemical engineers might be shown distinct from all mechanical engineers, and so on. The interface to a project could allow files to be grouped in various ways without compromising the presentation of the underlying file directory tree. For instance, a set of files could be presented according to software application types, dates modified, and/or file owners.
- Embodiments described above present strata in straight rows or columns. Other shapes of strata are also contemplated and may enhance the visual effect and/or interpretation of presented trees. For example, in some embodiments, strata are depicted in a curved (e.g., elliptical, circular, ovular, arced, and/or curvilinear) shape. Such embodiments facilitate drawing straight hierarchical connectors between nodes in a stratum without requiring exceptional staggering of the nodes.
- The fact that a stratified tree has segments of the tree separated already (e.g., by node type) leads to the potential for projecting the strata onto desired shapes and/or images. When only one or two strata are presented, elliptical (e.g., circular) or arced strata may be presented. Elliptical or arced strata may be useful when distinguishing a selected group of nodes from unselected nodes based on an attribute of interest. For example, if the hierarchy represents the management hierarchy of a company, elliptical strata may be used to distinguish a group of managers selected for an annual productivity award from those not selected. When more than two strata are presented, the top two strata may be represented in an elliptical or arced form as well.
-
FIG. 13 is auser interface 1300 for presenting a hierarchy of education courses using arced strata.User interface 1300 includes a firstelliptical stratum 1305 associated with a “completed” status and a secondelliptical stratum 1310 associated with a “not completed” status. The tree nodes in firstelliptical stratum 1305 represent courses that have been completed by a student, and the tree nodes in secondelliptical stratum 1310 represent courses that have not been completed by a student. - In addition to aesthetic appeal, the use of arced strata presents all of the nodes in each stratum as equally significant (e.g., the order of learning is not significant, but all of the courses are equally important). When the student completes a course,
user interface 1300 may position the corresponding tree node in firstelliptical stratum 1305, optionally graphically distinguishing completed courses displayed in firstelliptical stratum 1305 from uncompleted courses displayed in secondelliptical stratum 1310. Accordingly, when all courses are completed, all the tree nodes representing the courses may be included in firstelliptical stratum 1305. - In some embodiments, the shape of one or more strata is conformed to a desired shape or image. For example, strata may be drawn in complex curves, including logos and other pictures, as long as a user (e.g., an interface designer) or an automated process specifies the path and/or the boundaries of each stratum.
- Allowing curved lines between the nodes may allow segments that do not run the full length of the image. In effect, nodes in one or more portions of a strata could be positioned where they are desired (e.g., according to a desired spatial distribution specified by a default setting and/or by a user), and the hierarchical connectors extending from the nodes may include one or more vertices and/or be extended in curves to connect the endpoint nodes without intersecting other nodes and/or other hierarchical connectors.
-
FIG. 14 is anexemplary user interface 1400 for presenting a hierarchy of education courses using strata conformed to the shape of an image.User interface 1400 includes alogo 1405 in the form of a magnifying glass. Afirst stratum 1410 and asecond stratum 1415 are defined as being coextensive with at least a portion oflogo 1405. For example,first stratum 1410 is allocated an area in thetop portion 1420 oflogo 1405, andsecond stratum 1415 is allocated an area in thebottom portion 1425 oflogo 1405. - Further, a
parent node area 1430 is defined coextensive with ahandle portion 1435 oflogo 1405. Tree nodes with child nodes infirst stratum 1410 and/orsecond stratum 1415 are positioned inparent node area 1430. In exemplary embodiments, areas allocated tofirst stratum 1410,second stratum 1415, andparent node area 1430 are received from a user. - Graphical representations as described herein may be drawn using various drawing algorithms, which may be iterative or recursive. For simplicity of terminology, the exemplary implementation described below assumes that the strata are drawn vertically. However, the implementation may be applied to strata drawn horizontally, diagonally, and/or in any orientation.
- An exemplary positioning algorithm capitalizes on the fact that sub-trees connect to the rest of a tree only through their root. For example such an algorithm may determine the position for each tree node representing a data object in a sub-hierarchy of the hierarchy to create a sub-tree, and after creating the sub-tree, determine the positions of tree nodes representing data objects above the sub-hierarchy in the hierarchy. Further, the positions of the tree nodes representing data objects above the sub-hierarchy may be determined at least in part by determining positions at which hierarchical connectors extending from the tree nodes will not intersect the sub-tree.
-
FIG. 15 is an illustration of afirst node 1505 in a first (or “red”)stratum 1510, asecond node 1515 in a second (or “blue”)stratum 1520, and asub-tree T 1525. Anysub-tree T 1525 whose root node is on apath 1530 betweenfirst node 1505 andsecond node 1515 will not have hierarchical connectors to any node that is not onpath 1530. Therefore,first node 1505 andsecond node 1515 can always be placed infirst stratum 1510 andsecond stratum 1520 in the drawing. - This placement is possible even though the horizontal distance between
first node 1505 andsecond node 1515 may need to be increased to allow for anysub-tree T 1525 rooted onpath 1530, as shown inFIG. 16 , an illustration of a first sub-tree 1605 and a second sub-tree 1610 positioned betweenfirst node 1505 andsecond node 1515. There is no concern that any sub-tree will contain a hierarchical connector to some node in the rest of the tree, resulting in a need for edges to intersect or cross over one another in the drawing. Exemplary positioning algorithms need not pursue such steps explicitly (and in fact moving all of the nodes before all of the nodes have been ordered in the rows may not be the most efficient approach); rather, they may take advantage of this quality of trees. - Exemplary embodiments capitalize on this fact (that a sub-tree T only connects to the rest of the tree through the root of T) using a depth-first traversal of the tree, calculating positions in the drawing for each node as the node is first visited. A depth-first traversal is itself of linear growth, and has the advantage that once a sub-tree T is drawn, no further hierarchical connectors will extend to any of its child nodes. Therefore, hierarchical connectors may be drawn around the portion of the drawing allocated to a certain sub-tree T without concern that future hierarchical connectors will intersect them.
-
FIG. 17 is an illustration of ahierarchical connector 1705 being drawn betweenfirst node 1505 andsecond node 1515. As shown inFIG. 17 , in a depth-first traversal of a data object hierarchy, a sub-tree 1710 has already been drawn or had an area allocated to it. Now the traversal is visitingsecond node 1515, whose parent isfirst node 1505.Hierarchical connector 1705 extending betweenfirst node 1505 andsecond node 1515 may be drawn around the area allocated to sub-tree 1710 because no subsequently drawn hierarchical connector will extend to any of the nodes in sub-tree 1710. - As described herein, a depth-first traversal does not necessarily refer to a depth-first traversal of the original data object hierarchy. Rather, the traversal begins with any node in the hierarchy, which could be called the drawing root node, as opposed to the actual root node. For example, in user interface 400 (shown in
FIG. 4 ),root node 410, labeled “A”, is the root node shown and is the actual root of the presented hierarchy. The trees shown inFIGS. 5-8 are drawn using the node labeled “H” as the drawing root node, even thoughroot node 410 remains the root node of the underlying data object hierarchy. - In exemplary embodiments, the traversal from the drawing root node treats all hierarchical connectors the same way, regardless of which node for a hierarchical connector is the parent node in the actual data object hierarchy. For example, the node labeled “D” may be a child of the node labeled “H” in such traversals, even though in the actual hierarchy, H is a child of D.
- In some embodiments, every tree node is placed in a unique column. Hierarchical connectors, which are also referred to as “edges” below, are drawn indirectly, looping downward through the tree. Each hierarchical connector is represented by two vertical line segments connected by a horizontal line segment.
- The drawing algorithm may be presented with nodes of uniform size. Alternatively, arrays may be maintained with column widths and starting points and/or row heights and starting points. In exemplary embodiments, the drawing algorithm runs in linear time by obviating the need to check for intersecting hierarchical connectors.
-
FIG. 18 is auser interface 1800 including hierarchical connectors drawn by a first exemplary drawing algorithm. For example,user interface 1800 may be created at least in part by executing the algorithm shown inListing 1 below. -
Listing 1CreateDrawingTree ( ) DRAWINGROOTNODE.edgeDistanceFromBottom ← 0 column ← 0 push DRAWINGROOTNODE do while stack is not empty { current ← pop /* draw current */ column++ current.left ← column * COLUMN_WIDTH current.top ← current.level * ROW_HEIGHT draw( current , current.left , current.top ) if current ≠ DRAWINGROOTNODE then { /* draw edge */ current.edgeDistanceFromBottom ← current.parent.edgeDistanceFromBottom − 1 + current.parent.numberOfChildren − current.parent.childrenEdgesDrawn drawedge ( current ) current.parent.childrentEdgesDrawn++ } /* children of current */ current.childrenEdgesDrawn ← 0 for each child in current.children { child.parent ← current push child } } - In
user interface 1800, the x-coordinate of each of thevertical line segments 1805 is calculated by offset from theleft edge 1810 of the node in question based upon the total number ofhierarchical connectors 1815 for that node. The y-coordinate of thehorizontal segments 1820 is calculated by offset from the x-axis (node field edgeDistanceFromBottom) based upon edgeDistanceFromBottom for the parent and for the number of children remaining to be drawn for the parent. -
FIG. 19 is auser interface 1900 including hierarchical connectors drawn by a second exemplary drawing algorithm. For example,user interface 1900 may be created at least in part by executing the algorithm shown inListing 2 below. -
Listing 2CreateDrawingTree ( ) SetNumberofDescendants( ) // unique to second alg. DRAWINGROOTNODE.edgeDistanceFromBottom ← 0 column ← 0 push DRAWINGROOTNODE do while stack is not empty { current ← pop /* draw current */ column++ current.left ← column * COLUMN_WIDTH current.top ← current.level * ROW_HEIGHT draw( current , current.left , current.top ) if current ≠ DRAWINGROOTNODE then { /* draw edge */ current.edgeDistanceFromBottom ← current.parent.edgeDistanceFromBottom − 1 + current.parent.numberOfChildren − current.parent.childrenEdgesDrawn drawedge ( current ) current.parent.childrentEdgesDrawn++ } /* children of current */ current.childrenEdgesDrawn ← 0 currentChildren = sortAscending(current,children on numberOfDescendents) // unique to second alg. for each child in current.children { child.parent ← current push child } } - The algorithm shown in
Listing 2 is similar to that shown inListing 1. Modified or added lines are emphasized with comments indicating that the line is unique to the second algorithm. - Notably, the second exemplary drawing algorithm, sorts children of the current node by the number of their descendents in the drawn tree and pushes the children onto the stack in decreasing order. Such an embodiment facilitates ensuring that children with fewer descendents are drawn closer to parents than their siblings, potentially resulting in the hierarchical connectors being easier to follow visually. The algorithm shown in
Listing 1 may be expected to execute in O(n) time. The algorithm shown inListing 2 may be expected to execute in O(n*log(n)) time. Accordingly, one or the other algorithm may be selected based on the desired appearance of the tree and/or the desired performance of the positioning algorithm for a given tree size. - As shown in
FIG. 19 ,user interface 1900 includes less stacking ofhorizontal segments 1905 when compared with user interface 1800 (shown inFIG. 18 ). Such an algorithm may be useful in contexts such as a stratified tree of only one level, such as a generated menu. For example, if the user hovers over a menu item, the contents of the menu could be horizontally expanded as a menu bar directly beneath the main menu bar. Further, such an algorithm may be valuable in an application that is limited to presenting each node in a separate column or row, such as an application that presents folders in a hierarchy and allows the user to see a list of files beneath every opened folder, and/or a visual database, such as a photo collection or personnel directory, that shows an image or other photo on each row with a clear path showing how each item is classified. In addition, such an algorithm may be used in a context involving user interaction in which simple representation (e.g., less than ten items) that updates quickly is desired. For instance, a user might select users from a small group of users on a local network to join in a video phone conference. - Some embodiments enable truncation of one or more branches of a tree. For example, a graphical representation of a hierarchy may present a selected portion of the hierarchy, such as a list of favorite files. In such a scenario, the graphical representation may include only the selected nodes and the set of nodes (e.g., directly related and/or interconnecting nodes) needed to connect them to one another using hierarchical connectors, or alternatively to connect them to the root of the hierarchy. In the case of such truncation, a user may be permitted to click on any node to add its adjacent nodes to the tree, so that the user could traverse the tree to select new nodes.
- Operations described herein may be performed by a computer or computing device. A computer or computing device includes one or more processors or processing units and at least one memory device, such as a system memory and/or some form of computer-readable media. By way of example and not limitation, computer-readable media comprise computer storage media and communication media. Computer storage media are non-transitory and include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Communication media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Combinations of any of the above are also included within the scope of computer-readable media.
- In exemplary embodiments, any portion or the entirety of the operations described herein are encoded as computer-executable instructions, which are embodied on one or more non-transitory computer-readable media. When executed by at least one processor, the computer-executable instructions cause the processor to perform the encoded operations.
- Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of any aspect of the invention.
- The methods and systems described herein are not limited to the specific embodiments described herein. For example, components of each system and/or steps of each method may be used and/or practiced independently and separately from other components and/or steps described herein. In addition, each component and/or step may also be used and/or practiced with other apparatus and methods.
- When introducing elements of aspects of the invention or embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
- This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.
Claims (18)
1. A computer-implemented method for automatically visually presenting, simultaneously in the same visual representation, both hierarchical relationships among, and non-hierarchical type information for, a plurality of data objects, the method comprising:
determining for each data object an associated non-hierarchical node type, thereby populating a plurality of non-hierarchical node types;
creating a tree node for each data object, each tree node identifying the non-hierarchical node type of the associated data object; and
visually presenting in the visual representation non-hierarchical information associated with the tree nodes, said tree nodes organized into a set of visually recognizable and distinguishable strata, each stratum encompassing a distinct region in the visual representation corresponding to a single non-hierarchical node type irrespective of a node's hierarchical position, said visual representation simultaneously presenting the hierarchical relationships among the tree nodes.
2. A method in accordance with claim 1 , further comprising in the visual representation a plurality of hierarchical connectors extending between tree node pairs, wherein the hierarchical connectors represent hierarchical relationships between the data objects represented by the tree node pairs.
3. A method in accordance with claim 1 , wherein at least some of the strata are arranged along an axis, said method further comprising:
determining a minimum child position associated with each depicted tree node, the minimum child position representing a minimum position on the axis at which a child tree node of the depicted tree node is positioned;
determining a maximum child position associated with each depicted tree node, the maximum child position representing a maximum position on the axis at which a child tree node of the depicted tree node is positioned;
determining a target position associated with each depicted tree node, wherein the target position falls between the minimum child position and the maximum child position associated with the depicted tree node; and
positioning each depicted tree node at its associated target position.
4. A method in accordance with claim 3 , wherein the step of determining a target position associated with each depicted tree node comprises determining a position that is centered between the minimum child position and the maximum child position associated with the depicted tree node.
5. A method in accordance with claim 1 , further comprising evenly spacing the tree nodes within each stratum.
6. A computer-implemented method for visually presenting, simultaneously in the same visual representation, both hierarchical relationships among, and non-hierarchical type information for, a plurality of data objects, the method comprising:
determining for each data object an associated node type, thereby populating a plurality of node types, each node type corresponding to a single non-hierarchical type;
creating a tree node for each data object, each tree node identifying the node type of the associated data object; and
visually presenting in the visual representation non-hierarchical information associated with the tree nodes, said tree nodes organized into a set of visually recognizable and distinguishable strata, each stratum encompassing a distinct region in the visual representation corresponding to a single node type irrespective of a node's hierarchical position, said visual representation simultaneously presenting the hierarchical relationships among the tree nodes;
wherein the visual representation includes a boundary perpendicular to an axis along which at least some of the strata are arranged, said method further comprising positioning each tree node from each stratum at a predetermined distance from the boundary.
7. A method in accordance with claim 1 , further comprising visually distinguishing the strata from each other based upon the node types associated with the strata, respectively.
8. A computing device comprising:
a memory for storing a hierarchy of data objects, wherein each data object has a non-hierarchical node type from among a set of non-hierarchical node types; and
a processor coupled to said memory and programmed to visually display automatically a plurality of visually identifiable and distinguishable strata corresponding to the non-hierarchical node types, each stratum encompassing a distinct region in the visual display corresponding to a single non-hierarchical node type irrespective of a node's position in the hierarchy, while simultaneously preserving and visually displaying on the same visual display hierarchical relationships between pairs of data objects, said visual display comprising:
a plurality of tree nodes representing the data objects, each tree node corresponding to one data object and visually portraying the non-hierarchical node type associated with the corresponding data object;
a plurality of strata visually displaying the tree nodes organized by non-hierarchical node type; and
a plurality of hierarchical connectors extending between pairs of tree nodes, wherein the hierarchical connectors represent hierarchical relationships between the respective pairs of data objects represented by the tree node pairs.
9. A device in accordance with claim 8 , further comprising an input interface coupled to said processor and configured to receive a selection of a classification strategy, wherein said processor is programmed to determine the node type associated with each data object based upon the selected classification strategy and upon one or more attributes of each data object.
10. A device in accordance with claim 8 , wherein said processor is programmed to depict at least one stratum as curved.
11. A device in accordance with claim 8 , wherein said processor is further programmed to acquire the data objects from one or more pre-existing databases.
12. A device in accordance with claim 8 , wherein said processor is programmed to:
determine a position for a group of tree nodes in a sub-hierarchy of the hierarchy, thereby forming a sub-tree; and
after creating the sub-tree, determine positions of tree nodes representing data objects superior to the sub-hierarchy in the hierarchy.
13. A device in accordance with claim 12 , wherein said processor is programmed to determine positions of the tree nodes representing data objects superior to the sub-hierarchy at least in part by determining positions at which hierarchical connectors extending from the tree nodes do not intersect the sub-tree.
14. One or more non-transitory computer-readable media having computer-executable instructions embodied thereon, wherein when executed by at least one processor, the computer-executable instructions cause the processor to:
determine a non-hierarchical node type associated with each data object in a hierarchy of data objects, thereby populating a plurality of non-hierarchical node types;
display automatically a visual representation comprising a plurality of visually identifiable and distinguishable strata corresponding to the plurality of non-hierarchical node types, while simultaneously preserving and visually displaying on the same visual representation hierarchical relationships between pairs of data objects, said visual representation comprising:
a plurality of tree nodes representing the data objects, each tree node representing one data object and visually identifying the non-hierarchical node type corresponding to the associated data object;
a plurality of strata visually displaying the tree nodes organized by non-hierarchical node type, each stratum encompassing a distinct region on the visual representation corresponding to a single non-hierarchical node type irrespective of a node's position in the hierarchy; and
a plurality of hierarchical connectors extending between pairs of tree nodes, wherein the hierarchical connectors represent hierarchical relationships between the respective pairs of data objects represented by the tree node pairs.
15. One or more computer-readable media in accordance with claim 14 , wherein at least some strata are arranged along an axis, and the computer-executable instructions further cause the processor to:
determine a minimum child position associated with each tree node displayed in the visual representation, the minimum child position representing a minimum position on the axis at which a child tree node of the displayed tree node is positioned;
determine a maximum child position associated with each tree node displayed in the visual representation, the maximum child position representing a maximum position on the axis at which a child tree node of the displayed tree node is positioned;
determine a target position associated with each tree node displayed in the visual representation, wherein the target position falls between the minimum child position and the maximum child position associated with the displayed tree node; and
position each displayed tree node at its associated target position.
16. One or more computer-readable media in accordance with claim 14 , wherein the computer-executable instructions further cause the processor to visually distinguish the strata based upon the node types associated with the strata, respectively.
17. One or more computer-readable media in accordance with claim 14 , wherein the computer-executable instructions further cause the processor to:
receive a selection of a classification strategy; and
determine the node type associated with each data object based upon the selected classification strategy and upon one or more attributes of the data object.
18. One or more computer-readable media in accordance with claim 14 , wherein the computer-executable instructions further cause the processor to:
determine a position for a group of tree nodes arranged in a sub-hierarchy of the hierarchy, thereby creating a sub-tree; and
after creating the sub-tree, determine the positions of tree nodes representing data objects superior to the sub-hierarchy in the hierarchy.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/747,884 US20150293959A1 (en) | 2010-09-03 | 2015-06-23 | Simultaneous visual presentation of hierarchical and non-hierarchical data object information |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38006010P | 2010-09-03 | 2010-09-03 | |
US13/226,270 US9128998B2 (en) | 2010-09-03 | 2011-09-06 | Presentation of data object hierarchies |
US14/747,884 US20150293959A1 (en) | 2010-09-03 | 2015-06-23 | Simultaneous visual presentation of hierarchical and non-hierarchical data object information |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/226,270 Division US9128998B2 (en) | 2010-09-03 | 2011-09-06 | Presentation of data object hierarchies |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150293959A1 true US20150293959A1 (en) | 2015-10-15 |
Family
ID=45771445
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/226,282 Active US9280574B2 (en) | 2010-09-03 | 2011-09-06 | Relative classification of data objects |
US13/226,270 Expired - Fee Related US9128998B2 (en) | 2010-09-03 | 2011-09-06 | Presentation of data object hierarchies |
US13/226,293 Active 2032-09-04 US8819592B2 (en) | 2010-09-03 | 2011-09-06 | Sparse dynamic selection trees |
US13/226,299 Expired - Fee Related US10394778B2 (en) | 2010-09-03 | 2011-09-06 | Minimal representation of connecting walks |
US14/747,884 Abandoned US20150293959A1 (en) | 2010-09-03 | 2015-06-23 | Simultaneous visual presentation of hierarchical and non-hierarchical data object information |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/226,282 Active US9280574B2 (en) | 2010-09-03 | 2011-09-06 | Relative classification of data objects |
US13/226,270 Expired - Fee Related US9128998B2 (en) | 2010-09-03 | 2011-09-06 | Presentation of data object hierarchies |
US13/226,293 Active 2032-09-04 US8819592B2 (en) | 2010-09-03 | 2011-09-06 | Sparse dynamic selection trees |
US13/226,299 Expired - Fee Related US10394778B2 (en) | 2010-09-03 | 2011-09-06 | Minimal representation of connecting walks |
Country Status (3)
Country | Link |
---|---|
US (5) | US9280574B2 (en) |
IL (1) | IL224919A (en) |
WO (1) | WO2012031301A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200042640A1 (en) * | 2018-08-03 | 2020-02-06 | Kilpatrick Townsend & Stockton Llp | Identifying missing nodes within a graphically represented family |
US11222050B2 (en) | 2018-08-03 | 2022-01-11 | Kilpatrick Townsend & Stockton Llp | Graphically representing related patent families using a phantom parent node |
US11226996B2 (en) | 2018-08-03 | 2022-01-18 | Kilpatrick Townsend & Stockton Llp | Identifying and graphically representing multiple parent nodes of a child node |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2009322441B2 (en) | 2008-12-02 | 2016-07-28 | Ab Initio Technology Llc | Visualizing relationships between data elements |
CN102855260B (en) * | 2011-07-01 | 2017-06-06 | 腾讯科技(深圳)有限公司 | Process the method and system of picture |
US10140372B2 (en) | 2012-09-12 | 2018-11-27 | Gracenote, Inc. | User profile based on clustering tiered descriptors |
US9852153B2 (en) * | 2012-09-28 | 2017-12-26 | Ab Initio Technology Llc | Graphically representing programming attributes |
US10389834B2 (en) * | 2013-10-15 | 2019-08-20 | Syntel, Inc. | Automated collaborative environment site viewer system |
US9116975B2 (en) * | 2013-10-18 | 2015-08-25 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores |
JP5792256B2 (en) * | 2013-10-22 | 2015-10-07 | 日本電信電話株式会社 | Sparse graph creation device and sparse graph creation method |
WO2015117267A1 (en) * | 2014-02-07 | 2015-08-13 | Google Inc. | Systems and methods for automatically creating content modification scheme |
US10885057B2 (en) | 2016-11-07 | 2021-01-05 | Tableau Software, Inc. | Correlated incremental loading of multiple data sets for an interactive data prep application |
US11853529B2 (en) | 2016-11-07 | 2023-12-26 | Tableau Software, Inc. | User interface to prepare and curate data for subsequent analysis |
CA3045810A1 (en) | 2016-12-01 | 2018-06-07 | Ab Initio Technology Llc | Generating, accessing, and displaying lineage metadata |
CN108509448A (en) * | 2017-02-27 | 2018-09-07 | 北京京东尚科信息技术有限公司 | Data processing method and device |
US11188445B2 (en) | 2017-08-18 | 2021-11-30 | Vmware, Inc. | Generating a temporal topology graph of a computing environment based on captured component relationship data |
EP3462296A1 (en) * | 2017-09-27 | 2019-04-03 | Fomtech Limited | User interface elements for compact menu |
US11308109B2 (en) | 2018-10-12 | 2022-04-19 | International Business Machines Corporation | Transfer between different combinations of source and destination nodes |
US11250032B1 (en) | 2018-10-22 | 2022-02-15 | Tableau Software, Inc. | Data preparation user interface with conditional remapping of data values |
US10691304B1 (en) * | 2018-10-22 | 2020-06-23 | Tableau Software, Inc. | Data preparation user interface with conglomerate heterogeneous process flow elements |
US20220198471A1 (en) * | 2020-12-18 | 2022-06-23 | Feedzai - Consultadoria E Inovação Tecnológica, S.A. | Graph traversal for measurement of fraudulent nodes |
CN112597253B (en) * | 2021-03-08 | 2021-06-08 | 江苏红网技术股份有限公司 | User bill information processing method and system based on edge calculation |
US12032994B1 (en) | 2021-10-18 | 2024-07-09 | Tableau Software, LLC | Linking outputs for automatic execution of tasks |
US12038985B2 (en) * | 2022-11-29 | 2024-07-16 | Sap Se | Batch user interface calls and response processing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215649A1 (en) * | 2003-04-09 | 2004-10-28 | Microsoft Corporation | Method and system for representing group policy object topology and relationships |
US20070180408A1 (en) * | 2006-01-28 | 2007-08-02 | Rowan University | Information visualization system |
Family Cites Families (180)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421008A (en) | 1991-11-08 | 1995-05-30 | International Business Machines Corporation | System for interactive graphical construction of a data base query and storing of the query object links as an object |
US5749079A (en) | 1992-03-04 | 1998-05-05 | Singapore Computer Systems Limited | End user query facility including a query connectivity driver |
US5721900A (en) | 1992-07-20 | 1998-02-24 | International Business Machines Corp | Method and apparatus for graphically displaying query relationships |
US5615367A (en) | 1993-05-25 | 1997-03-25 | Borland International, Inc. | System and methods including automatic linking of tables for improved relational database modeling with interface |
CA2097232C (en) | 1993-05-28 | 1999-01-19 | Phillip J. Beaudet | Displaying partial graphs by expanding and collapsing nodes |
US6339767B1 (en) | 1997-06-02 | 2002-01-15 | Aurigin Systems, Inc. | Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing |
US5560005A (en) | 1994-02-25 | 1996-09-24 | Actamed Corp. | Methods and systems for object-based relational distributed databases |
US5513311A (en) | 1994-05-31 | 1996-04-30 | International Business Machines Corporation | Method and system for creating logical connections in a data processing system |
US5546529A (en) | 1994-07-28 | 1996-08-13 | Xerox Corporation | Method and apparatus for visualization of database search results |
US5778377A (en) | 1994-11-04 | 1998-07-07 | International Business Machines Corporation | Table driven graphical user interface |
US5894311A (en) | 1995-08-08 | 1999-04-13 | Jerry Jackson Associates Ltd. | Computer-based visual data evaluation |
US5870559A (en) | 1996-10-15 | 1999-02-09 | Mercury Interactive | Software system and associated methods for facilitating the analysis and management of web sites |
US5924094A (en) | 1996-11-01 | 1999-07-13 | Current Network Technologies Corporation | Independent distributed database system |
GB2330221B (en) | 1997-10-09 | 2002-07-03 | Ibm | Optimisation of relational database queries |
US5933831A (en) | 1998-01-09 | 1999-08-03 | Lsi Logic Corporation | Viewing entity relationship diagrams using hyperlinks |
US6105018A (en) | 1998-03-26 | 2000-08-15 | Oracle Corporation | Minimum leaf spanning tree |
US6509898B2 (en) | 1998-04-17 | 2003-01-21 | Xerox Corporation | Usage based methods of traversing and displaying generalized graph structures |
US6742003B2 (en) | 2001-04-30 | 2004-05-25 | Microsoft Corporation | Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications |
US6067548A (en) | 1998-07-16 | 2000-05-23 | E Guanxi, Inc. | Dynamic organization model and management computing system and method therefor |
US6496208B1 (en) | 1998-09-10 | 2002-12-17 | Microsoft Corporation | Method and apparatus for visualizing and exploring large hierarchical structures |
US6594673B1 (en) | 1998-09-15 | 2003-07-15 | Microsoft Corporation | Visualizations for collaborative information |
GB9824829D0 (en) | 1998-11-12 | 1999-01-06 | Marconi Comm Ltd | An intelligent network service creation method and system |
US6370537B1 (en) | 1999-01-14 | 2002-04-09 | Altoweb, Inc. | System and method for the manipulation and display of structured data |
US7320001B1 (en) | 1999-01-15 | 2008-01-15 | Hon Hai Precision Industry, Ltd. | Method for visualizing information in a data warehousing environment |
US6373484B1 (en) | 1999-01-21 | 2002-04-16 | International Business Machines Corporation | Method and system for presenting data structures graphically |
US6772180B1 (en) | 1999-01-22 | 2004-08-03 | International Business Machines Corporation | Data representation schema translation through shared examples |
US7055098B2 (en) | 1999-02-19 | 2006-05-30 | Lucent Technologies Inc. | Dynamic display of data item evaluation |
US6377287B1 (en) | 1999-04-19 | 2002-04-23 | Hewlett-Packard Company | Technique for visualizing large web-based hierarchical hyperbolic space with multi-paths |
US6714936B1 (en) | 1999-05-25 | 2004-03-30 | Nevin, Iii Rocky Harry W. | Method and apparatus for displaying data stored in linked nodes |
US6941317B1 (en) | 1999-09-14 | 2005-09-06 | Eragen Biosciences, Inc. | Graphical user interface for display and analysis of biological sequence data |
US6816857B1 (en) | 1999-11-01 | 2004-11-09 | Applied Semantics, Inc. | Meaning-based advertising and document relevance determination |
US7409679B2 (en) | 1999-12-20 | 2008-08-05 | Headway Research Limited | System and method for computer-aided graph-based dependency analysis |
US6556983B1 (en) | 2000-01-12 | 2003-04-29 | Microsoft Corporation | Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space |
US7050904B2 (en) | 2000-02-22 | 2006-05-23 | Pointserve, Inc. | Data formats and usage for massive point-to-point route calculation |
US6519599B1 (en) | 2000-03-02 | 2003-02-11 | Microsoft Corporation | Visualization of high-dimensional data |
AU2001243597A1 (en) | 2000-03-03 | 2001-09-17 | Radiant Logic, Inc. | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US20060173873A1 (en) | 2000-03-03 | 2006-08-03 | Michel Prompt | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
EP1316011A4 (en) | 2000-06-30 | 2008-01-23 | Information Bionics Inc | System for linking data cells through permutation |
US6854091B1 (en) | 2000-07-28 | 2005-02-08 | Nortel Networks Limited | Method of displaying nodes and links |
US6567802B1 (en) | 2000-09-06 | 2003-05-20 | The Trustees Of The University Of Pennsylvania | Systematic approach to query optimization |
US6795825B2 (en) | 2000-09-12 | 2004-09-21 | Naphtali David Rishe | Database querying system and method |
US6912538B2 (en) | 2000-10-20 | 2005-06-28 | Kevin Stapel | System and method for dynamic generation of structured documents |
US6763361B1 (en) | 2000-10-31 | 2004-07-13 | Opsware, Inc. | Object-oriented database abstraction and statement generation |
US7603632B1 (en) | 2000-11-01 | 2009-10-13 | Microsoft Corporation | System and method for creating customizable nodes in a network diagram |
US6792400B2 (en) | 2000-12-18 | 2004-09-14 | General Motors Corporation | Visualization of complex system interactions |
US6944830B2 (en) | 2000-12-21 | 2005-09-13 | Xerox Corporation | System and method for browsing hierarchically based node-link structures based on an estimated degree of interest |
US7379926B1 (en) | 2001-02-09 | 2008-05-27 | Remington Partners | Data manipulation and decision processing |
US6836893B2 (en) | 2001-04-03 | 2004-12-28 | Pika Technologies Inc. | Data driven communication system |
US6801229B1 (en) | 2001-04-06 | 2004-10-05 | Plumbdesign | System for creation of visual representation of data |
US20040093559A1 (en) | 2001-05-25 | 2004-05-13 | Ruth Amaru | Web client for viewing and interrogating enterprise data semantically |
US7251642B1 (en) | 2001-08-06 | 2007-07-31 | Gene Logic Inc. | Analysis engine and work space manager for use with gene expression data |
US8606916B2 (en) | 2001-09-17 | 2013-12-10 | Open Text S.A. | Graphical user interface for performing administration on web components of web sites in a portal framework |
US8407353B2 (en) | 2001-09-17 | 2013-03-26 | Open Text S.A. | Method and system for sharing different web components between different web sites in a portal framework |
US6553371B2 (en) | 2001-09-20 | 2003-04-22 | International Business Machines Corporation | Method and system for specifying and displaying table joins in relational database queries |
US20030065527A1 (en) | 2001-09-28 | 2003-04-03 | Zerotime Labs, L.L.C. | Financial transfer modeling editor system and method |
CN1589445B (en) | 2001-11-19 | 2010-04-28 | 富士通株式会社 | Information navigation system |
US6801905B2 (en) | 2002-03-06 | 2004-10-05 | Sybase, Inc. | Database system providing methodology for property enforcement |
US20040147265A1 (en) | 2002-07-23 | 2004-07-29 | Mark Kelley | System and method for an adaptive user communications device |
US7143615B2 (en) | 2002-07-31 | 2006-12-05 | Sun Microsystems, Inc. | Method, system, and program for discovering components within a network |
US8041719B2 (en) | 2003-05-06 | 2011-10-18 | Symantec Corporation | Personal computing device-based mechanism to detect preselected data |
US7472114B1 (en) | 2002-09-18 | 2008-12-30 | Symantec Corporation | Method and apparatus to define the scope of a search for information from a tabular data source |
CA2501847A1 (en) | 2002-10-07 | 2004-04-22 | Metatomix, Inc | Methods and apparatus for identifying related nodes in a directed graph having named arcs |
US7373612B2 (en) | 2002-10-21 | 2008-05-13 | Battelle Memorial Institute | Multidimensional structured data visualization method and apparatus, text visualization method and apparatus, method and apparatus for visualizing and graphically navigating the world wide web, method and apparatus for visualizing hierarchies |
US8302019B2 (en) | 2002-11-05 | 2012-10-30 | International Business Machines Corporation | System and method for visualizing process flows |
US7538761B2 (en) | 2002-12-12 | 2009-05-26 | Olympus Corporation | Information processor |
US7467125B2 (en) | 2002-12-12 | 2008-12-16 | International Business Machines Corporation | Methods to manage the display of data entities and relational database structures |
US8635221B2 (en) | 2002-12-20 | 2014-01-21 | International Business Machines Corporation | Method, system, and program product for managing access to data items in a database |
AU2002953555A0 (en) | 2002-12-23 | 2003-01-16 | Canon Kabushiki Kaisha | Method for presenting hierarchical data |
US20080294641A1 (en) * | 2003-01-17 | 2008-11-27 | The Board Of Trustees Of The Leland Stanford Junior University | Methods and apparatus for storing, organizing, and sharing multimedia objects and documents |
WO2004068300A2 (en) | 2003-01-25 | 2004-08-12 | Purdue Research Foundation | Methods, systems, and data structures for performing searches on three dimensional objects |
US9307884B1 (en) | 2003-01-27 | 2016-04-12 | The Pnc Financial Services Group, Inc. | Visual asset structuring tool |
US7224362B2 (en) | 2003-01-30 | 2007-05-29 | Agilent Technologies, Inc. | Systems and methods for providing visualization and network diagrams |
US7103600B2 (en) | 2003-03-06 | 2006-09-05 | Thought Inc. | Displayable presentation page and SQL searchable relational data source implementation of a system, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships |
US7401321B2 (en) | 2003-04-14 | 2008-07-15 | International Business Machines Corporation | Method and apparatus for processing information on software defects during computer software development |
US20040230914A1 (en) | 2003-05-16 | 2004-11-18 | Udo Arend | Displaying view sets of an object for data input |
US7380217B2 (en) | 2003-06-06 | 2008-05-27 | Intellecspace Coropration | Method of graphical presentation of relationships between individuals, business entities, and organizations |
US20050015383A1 (en) | 2003-07-15 | 2005-01-20 | Microsoft Corporation | Method and system for accessing database objects in polyarchical relationships using data path expressions |
US20050021538A1 (en) | 2003-07-25 | 2005-01-27 | Activeviews, Inc. | Method and system for displaying a relational abstraction of a data store |
US8200775B2 (en) | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Enhanced syndication |
EP1510939A1 (en) | 2003-08-29 | 2005-03-02 | Sap Ag | A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph |
EP1510938B1 (en) | 2003-08-29 | 2014-06-18 | Sap Ag | A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph |
EP1510940A1 (en) | 2003-08-29 | 2005-03-02 | Sap Ag | A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph |
EP1510941A1 (en) | 2003-08-29 | 2005-03-02 | Sap Ag | A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph |
US7383269B2 (en) | 2003-09-12 | 2008-06-03 | Accenture Global Services Gmbh | Navigating a software project repository |
US7239985B1 (en) | 2003-09-23 | 2007-07-03 | Ncr Corporation | Methods, systems, and data structures for modeling information quality and maturity |
US7454428B2 (en) | 2003-10-29 | 2008-11-18 | Oracle International Corp. | Network data model for relational database management system |
US7640496B1 (en) | 2003-10-31 | 2009-12-29 | Emc Corporation | Method and apparatus for generating report views |
US9288000B2 (en) | 2003-12-17 | 2016-03-15 | International Business Machines Corporation | Monitoring a communication and retrieving information relevant to the communication |
US7219102B2 (en) | 2003-12-22 | 2007-05-15 | International Business Machines Corporation | Method, computer program product, and system converting relational data into hierarchical data structure based upon tagging trees |
US7292964B1 (en) | 2003-12-22 | 2007-11-06 | The Mathworks, Inc. | Translating of geometric models into block diagram models |
EP1569135A1 (en) | 2004-01-19 | 2005-08-31 | Sap Ag | A database management system and a method of managing a database |
US7836402B2 (en) | 2004-04-16 | 2010-11-16 | Alcatel Lucent | Multiple link connector list |
EP2487600A1 (en) | 2004-05-04 | 2012-08-15 | Boston Consulting Group, Inc. | Method and apparatus for selecting, analyzing and visualizing related database records as a network |
US7424530B2 (en) | 2004-05-06 | 2008-09-09 | International Business Machines Corporation | Method for visualizing results of root cause analysis on transaction performance data |
US8055672B2 (en) | 2004-06-10 | 2011-11-08 | International Business Machines Corporation | Dynamic graphical database query and data mining interface |
EP1612698A1 (en) | 2004-06-28 | 2006-01-04 | Dassault Systèmes | Method and system for graphically navigating among stored objects |
EP1612697A1 (en) | 2004-06-28 | 2006-01-04 | Dassault Systèmes | A graphical method for navigating in a database of modelled objects |
US7668957B2 (en) | 2004-06-30 | 2010-02-23 | Microsoft Corporation | Partitioning social networks |
US7302447B2 (en) | 2005-01-14 | 2007-11-27 | International Business Machines Corporation | Virtual columns |
US7840607B2 (en) | 2004-08-06 | 2010-11-23 | Siemens Aktiengesellschaft | Data mart generation and use in association with an operations intelligence platform |
US20090204938A1 (en) | 2004-09-15 | 2009-08-13 | Visual I/O | System and method for systematically arranging a set of display elements in assemblages to meaningfully represent data |
US7366723B2 (en) | 2004-10-05 | 2008-04-29 | Sap Ag | Visual query modeling for configurable patterns |
US20060080288A1 (en) | 2004-10-11 | 2006-04-13 | Microsoft Corporation | Interaction of static and dynamic data sets |
US20080288659A1 (en) | 2006-11-09 | 2008-11-20 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US7899833B2 (en) | 2004-11-02 | 2011-03-01 | Ab Initio Technology Llc | Managing related data objects |
US8126890B2 (en) | 2004-12-21 | 2012-02-28 | Make Sence, Inc. | Techniques for knowledge discovery by constructing knowledge correlations using concepts or terms |
US7778984B2 (en) | 2004-11-19 | 2010-08-17 | Microsoft Corporation | System and method for a distributed object store |
US7627547B2 (en) | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
CA2500573A1 (en) | 2005-03-14 | 2006-09-14 | Oculus Info Inc. | Advances in nspace - system and method for information analysis |
US20060265489A1 (en) | 2005-02-01 | 2006-11-23 | Moore James F | Disaster management using an enhanced syndication platform |
US8200700B2 (en) | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Systems and methods for use of structured and unstructured distributed data |
US20060173865A1 (en) | 2005-02-03 | 2006-08-03 | Fong Joseph S | System and method of translating a relational database into an XML document and vice versa |
US20060179069A1 (en) | 2005-02-04 | 2006-08-10 | Bechtel Michael E | Knowledge discovery tool navigation |
US20060197762A1 (en) | 2005-03-02 | 2006-09-07 | Microsoft Corporation | Scalable visualizer for heterogeneous data |
US20060274070A1 (en) * | 2005-04-19 | 2006-12-07 | Herman Daniel L | Techniques and workflows for computer graphics animation system |
US20060253476A1 (en) | 2005-05-09 | 2006-11-09 | Roth Mary A | Technique for relationship discovery in schemas using semantic name indexing |
US8555166B2 (en) | 2005-05-20 | 2013-10-08 | Hillcrest Laboratories, Inc. | Dynamic hyperlinking approach |
EP1890268A1 (en) | 2005-06-07 | 2008-02-20 | Sony Corporation | Image processing device and image processing method and computer program |
US7580913B2 (en) | 2005-07-25 | 2009-08-25 | International Business Machines Corporation | Analysis of impact of change in an organizational entity |
US20070027905A1 (en) | 2005-07-29 | 2007-02-01 | Microsoft Corporation | Intelligent SQL generation for persistent object retrieval |
US7512594B2 (en) | 2005-08-17 | 2009-03-31 | Lixin Zhang | Computer controlled user display interface with a tree to represent data relationships in a database |
US7581189B2 (en) | 2005-09-09 | 2009-08-25 | Microsoft Corporation | Dynamically generating a database report during a report building process |
US7492716B1 (en) | 2005-10-26 | 2009-02-17 | Sanmina-Sci | Method for efficiently retrieving topology-specific data for point-to-point networks |
US8117562B2 (en) | 2005-10-26 | 2012-02-14 | Microsoft Corporation | Runtime modification of data presented in a graphical element |
US9229967B2 (en) | 2006-02-22 | 2016-01-05 | Oracle International Corporation | Efficient processing of path related operations on data organized hierarchically in an RDBMS |
CN101484889B (en) | 2006-05-03 | 2011-12-28 | 克劳德系统有限公司 | System and method for managing, routing, and controlling devices and inter-device connections |
US20070260582A1 (en) | 2006-05-05 | 2007-11-08 | Inetsoft Technology | Method and System for Visual Query Construction and Representation |
GB2440171A (en) | 2006-07-17 | 2008-01-23 | Univ Warwick | Improvements in data visualisation systems |
US7536401B2 (en) | 2006-08-07 | 2009-05-19 | International Business Machines Corporation | Methods, systems, and computer program products for using graphs to solve circular dependency in object persistence |
JP2008059081A (en) | 2006-08-29 | 2008-03-13 | Sony Corp | Image processing apparatus, image processing method and computer program |
US7899822B2 (en) | 2006-09-08 | 2011-03-01 | International Business Machines Corporation | Automatically linking documents with relevant structured information |
US8645973B2 (en) | 2006-09-22 | 2014-02-04 | Oracle International Corporation | Mobile applications |
US20080120593A1 (en) | 2006-11-21 | 2008-05-22 | Ido Keren | GUI modeling of deep hierarchical data |
US7730056B2 (en) | 2006-12-28 | 2010-06-01 | Sap Ag | Software and method for utilizing a common database layout |
US7765496B2 (en) | 2006-12-29 | 2010-07-27 | International Business Machines Corporation | System and method for improving the navigation of complex visualizations for the visually impaired |
US8396827B2 (en) | 2006-12-29 | 2013-03-12 | Sap Ag | Relation-based hierarchy evaluation of recursive nodes |
US8051105B1 (en) * | 2007-01-10 | 2011-11-01 | The Mathworks, Inc. | Directing searches on tree data structures |
US7630370B2 (en) | 2007-02-28 | 2009-12-08 | Sharp Laboratories Of America, Inc. | Overlay join latency reduction using preferred peer list |
US20100153862A1 (en) | 2007-03-09 | 2010-06-17 | Ghost, Inc. | General Object Graph for Web Users |
US9430552B2 (en) | 2007-03-16 | 2016-08-30 | Microsoft Technology Licensing, Llc | View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform |
WO2008120267A1 (en) * | 2007-03-28 | 2008-10-09 | Fujitsu Limited | Edge node redundant system |
CN101286151A (en) | 2007-04-13 | 2008-10-15 | 国际商业机器公司 | Method for establishing multidimensional model and data store mode mappings and relevant system |
US8069188B2 (en) | 2007-05-07 | 2011-11-29 | Applied Technical Systems, Inc. | Database system storing a data structure that includes data nodes connected by context nodes and related method |
US8060540B2 (en) | 2007-06-18 | 2011-11-15 | Microsoft Corporation | Data relationship visualizer |
US9530105B2 (en) | 2007-06-27 | 2016-12-27 | Microsoft Technology Licensing, Llc | Managing entity organizational chart |
US8171428B2 (en) | 2007-08-22 | 2012-05-01 | International Business Machines Corporation | System and method for implementing data navigation interface |
US8312389B2 (en) | 2007-08-31 | 2012-11-13 | Fair Isaac Corporation | Visualization of decision logic |
US7885969B2 (en) | 2007-09-17 | 2011-02-08 | International Business Machines Corporation | System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer |
US8200063B2 (en) | 2007-09-24 | 2012-06-12 | Fuji Xerox Co., Ltd. | System and method for video summarization |
US8190620B2 (en) | 2007-10-12 | 2012-05-29 | Business Objects Software Ltd | Apparatus and method for visualizing data within a decomposition graph |
US8326823B2 (en) | 2007-11-01 | 2012-12-04 | Ebay Inc. | Navigation for large scale graphs |
US8823709B2 (en) | 2007-11-01 | 2014-09-02 | Ebay Inc. | User interface framework for viewing large scale graphs on the web |
US20090125846A1 (en) | 2007-11-08 | 2009-05-14 | Anderson Mark A | Facility to Show Secondary Relationships in a Topological Graph Using an Associated View |
US8791948B2 (en) | 2007-11-09 | 2014-07-29 | Ebay Inc. | Methods and systems to generate graphical representations of relationships between persons based on transactions |
US7734714B2 (en) * | 2008-01-11 | 2010-06-08 | Spacecurve, Inc. | Spatial Sieve Tree |
US9087296B2 (en) | 2008-02-22 | 2015-07-21 | Adobe Systems Incorporated | Navigable semantic network that processes a specification to and uses a set of declaritive statements to produce a semantic network model |
US7818322B2 (en) | 2008-02-25 | 2010-10-19 | Microsoft Corporation | Efficient method for clustering nodes |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8326847B2 (en) | 2008-03-22 | 2012-12-04 | International Business Machines Corporation | Graph search system and method for querying loosely integrated data |
US9524525B2 (en) | 2008-04-30 | 2016-12-20 | Oracle International Corporation | Method, system, and graphical user interface for presenting an interactive hierarchy and indicating entry of information therein |
US20100042953A1 (en) | 2008-08-18 | 2010-02-18 | Douglas Albert Stewart | Method, computer, and computer program for displaying a hierarchical navigation scheme |
US8290923B2 (en) | 2008-09-05 | 2012-10-16 | Yahoo! Inc. | Performing large scale structured search allowing partial schema changes without system downtime |
US8984390B2 (en) | 2008-09-15 | 2015-03-17 | Palantir Technologies, Inc. | One-click sharing for screenshots and related documents |
US8669982B2 (en) | 2008-10-01 | 2014-03-11 | International Business Machines Corporation | Method and system for generating and displaying an interactive dynamic culling graph view of multiply connected objects |
US8711148B2 (en) | 2008-10-01 | 2014-04-29 | International Business Machines Corporation | Method and system for generating and displaying an interactive dynamic selective view of multiply connected objects |
US8151062B2 (en) | 2008-10-26 | 2012-04-03 | Microsoft Corporation | Consistency models in a distributed store |
AU2009322441B2 (en) | 2008-12-02 | 2016-07-28 | Ab Initio Technology Llc | Visualizing relationships between data elements |
EP2207106A3 (en) | 2008-12-19 | 2011-03-02 | Aprimo, Incorporated | Complex relational database extraction system and method with respective based dynamic data modeling |
US8126926B2 (en) | 2008-12-22 | 2012-02-28 | Oracle International Corporation | Data visualization with summary graphs |
US8631046B2 (en) | 2009-01-07 | 2014-01-14 | Oracle International Corporation | Generic ontology based semantic business policy engine |
US8631354B2 (en) | 2009-03-06 | 2014-01-14 | Microsoft Corporation | Focal-control user interface |
US8775433B2 (en) | 2009-10-16 | 2014-07-08 | Oracle International Corporation | Self-indexing data structure |
US8538916B1 (en) | 2010-04-09 | 2013-09-17 | Google Inc. | Extracting instance attributes from text |
US8463756B2 (en) | 2010-04-21 | 2013-06-11 | Haileo, Inc. | Systems and methods for building a universal multimedia learner |
US8725771B2 (en) * | 2010-04-30 | 2014-05-13 | Orbis Technologies, Inc. | Systems and methods for semantic search, content correlation and visualization |
US8832111B2 (en) | 2010-12-30 | 2014-09-09 | Facebook, Inc. | Distributed cache for graph data |
US8743122B2 (en) | 2011-03-07 | 2014-06-03 | Microsoft Corporation | Interactive visualization for exploring multi-modal, multi-relational, and multivariate graph data |
US8401292B2 (en) | 2011-04-26 | 2013-03-19 | Eastman Kodak Company | Identifying high saliency regions in digital images |
US8713541B2 (en) | 2011-12-29 | 2014-04-29 | Sap Ag | Model matching for trace link generation |
US8978010B1 (en) | 2013-12-18 | 2015-03-10 | Sap Ag | Pruning compilation dependency graphs |
-
2011
- 2011-09-06 US US13/226,282 patent/US9280574B2/en active Active
- 2011-09-06 US US13/226,270 patent/US9128998B2/en not_active Expired - Fee Related
- 2011-09-06 US US13/226,293 patent/US8819592B2/en active Active
- 2011-09-06 US US13/226,299 patent/US10394778B2/en not_active Expired - Fee Related
- 2011-09-06 WO PCT/US2011/050567 patent/WO2012031301A1/en active Application Filing
-
2013
- 2013-02-26 IL IL224919A patent/IL224919A/en active IP Right Grant
-
2015
- 2015-06-23 US US14/747,884 patent/US20150293959A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215649A1 (en) * | 2003-04-09 | 2004-10-28 | Microsoft Corporation | Method and system for representing group policy object topology and relationships |
US20070180408A1 (en) * | 2006-01-28 | 2007-08-02 | Rowan University | Information visualization system |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200042640A1 (en) * | 2018-08-03 | 2020-02-06 | Kilpatrick Townsend & Stockton Llp | Identifying missing nodes within a graphically represented family |
US11222050B2 (en) | 2018-08-03 | 2022-01-11 | Kilpatrick Townsend & Stockton Llp | Graphically representing related patent families using a phantom parent node |
US11226996B2 (en) | 2018-08-03 | 2022-01-18 | Kilpatrick Townsend & Stockton Llp | Identifying and graphically representing multiple parent nodes of a child node |
US20220092094A1 (en) * | 2018-08-03 | 2022-03-24 | Kilpatrick Townsend & Stockton Llp | Identifying and graphically representing multiple parent nodes of a child node |
US11392627B2 (en) * | 2018-08-03 | 2022-07-19 | Kilpatrick Townsend & Stockton Llp | Identifying missing nodes within a graphically represented family |
US11822585B2 (en) | 2018-08-03 | 2023-11-21 | Kilpatrick Townsend & Stockton Llp | Identifying missing nodes within a graphically represented family |
US11829393B2 (en) | 2018-08-03 | 2023-11-28 | Kilpatrick Townsend & Stockton Llp | Graphically representing related record families using a phantom parent node |
US11960512B2 (en) * | 2018-08-03 | 2024-04-16 | Kilpatrick Townsend & Stockton Llp | Identifying and graphically representing multiple parent nodes of a child node |
Also Published As
Publication number | Publication date |
---|---|
US10394778B2 (en) | 2019-08-27 |
US8819592B2 (en) | 2014-08-26 |
US20120060125A1 (en) | 2012-03-08 |
US20120059857A1 (en) | 2012-03-08 |
IL224919A (en) | 2017-03-30 |
US9280574B2 (en) | 2016-03-08 |
US9128998B2 (en) | 2015-09-08 |
WO2012031301A1 (en) | 2012-03-08 |
US20120060126A1 (en) | 2012-03-08 |
US20120059858A1 (en) | 2012-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128998B2 (en) | Presentation of data object hierarchies | |
US9177041B2 (en) | Automated stratification of graph display | |
CA3078997C (en) | Using an object model of heterogeneous data to facilitate building data visualizations | |
US9766787B2 (en) | Using visual landmarks to organize diagrams | |
US9465513B2 (en) | Visual representation of map navigation history | |
US6529900B1 (en) | Method and apparatus for data visualization | |
Bladh et al. | Extending tree-maps to three dimensions: A comparative study | |
US6774899B1 (en) | Drawing graphs using user selectable visual oragnization features and/or other user controlled constraints | |
US20120120086A1 (en) | Interactive and Scalable Treemap as a Visualization Service | |
US9436672B2 (en) | Representing and manipulating hierarchical data | |
Keim et al. | Hierarchical pixel bar charts | |
US8972853B2 (en) | Rendering digital report elements using a layout optimization tool | |
CN105339931A (en) | Method and device for handling data containers | |
WO2009154480A9 (en) | A method of graphically representing a tree structure | |
US20110210986A1 (en) | Systems and methods for determining positioning and sizing of graphical elements | |
US20160132215A1 (en) | Alternative People Charting for Organizational Charts | |
US10210150B2 (en) | Grid-based user interface system | |
Ramón et al. | A layout inference algorithm for Graphical User Interfaces | |
US20120117121A1 (en) | Browser-Based Database Manipulation | |
US8626773B2 (en) | Aligning records for visual comparison | |
US20160054894A1 (en) | Dynamic layout for organizational charts | |
US20090006461A1 (en) | Computer program product and system for mapping source and target objects | |
US10949219B2 (en) | Containerized runtime environments | |
US11275485B2 (en) | Data processing pipeline engine | |
CA2751978C (en) | Extrapolating tabular structure in a freeform document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |