US20150112994A9 - Automated stratification of graph display - Google Patents

Automated stratification of graph display Download PDF

Info

Publication number
US20150112994A9
US20150112994A9 US13/413,477 US201213413477A US2015112994A9 US 20150112994 A9 US20150112994 A9 US 20150112994A9 US 201213413477 A US201213413477 A US 201213413477A US 2015112994 A9 US2015112994 A9 US 2015112994A9
Authority
US
United States
Prior art keywords
node
objects
classification
nodes
graph
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.)
Granted
Application number
US13/413,477
Other versions
US9177041B2 (en
US20130235040A1 (en
Inventor
Robert Lewis Jackson, JR.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/226,270 external-priority patent/US9128998B2/en
Application filed by Individual filed Critical Individual
Priority to US13/413,477 priority Critical patent/US9177041B2/en
Publication of US20130235040A1 publication Critical patent/US20130235040A1/en
Publication of US20150112994A9 publication Critical patent/US20150112994A9/en
Application granted granted Critical
Publication of US9177041B2 publication Critical patent/US9177041B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • G06F17/30598
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • G06F17/30958
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Definitions

  • the subject matter disclosed herein relates generally to graph representation and, more specifically, to node positioning within stratified graph representations based upon attributes of represented objects.
  • At least some known graph drawing tools are designed to implement graph drawing algorithms that can either import or receive from a user interactively sets of properties for nodes that are relevant to their display in a visual representation of the graph. For example, a label or text for a node may be imported or specified by a user interactively, and the size of a name might influence the size of one or more of the nodes. As another example, dimensions, color, and perhaps positioning requirements might be specified by a user or imported. These node properties influence the drawing of the graph.
  • nodes represent employees within a company.
  • the data representing employees might specify a number of properties about each employee, such as name, department, education level, seniority, position, and so on.
  • At least some texts that present graph drawing algorithms do not present algorithms that directly access such information stored about node objects.
  • a user might specify positioning requirements, or labels or text based upon any number of such properties, and might further specify them programmatically; however, the algorithm for placing the nodes within a drawing does not directly consider information stored about the objects themselves.
  • 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: identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, wherein the primary application includes other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application.
  • the computer-executable instructions further cause the processor to receive a selection formula wherein the selection formula is based on the one or more application-specific attributes of the objects, and wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and depict a visual representation of the graph, in which a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation, and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in a second one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • a method of generating a graphical depiction of related data using attributes of the data to position representations of the data on a graph includes identifying a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application wherein the primary application includes other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application.
  • the method further includes receiving a selection formula, said selection formula based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and depict a visual representation of the graph, in which a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation; and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • a display device includes a memory device and a processor coupled to the memory device, the processor programmed to identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, said primary application comprising other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application.
  • the processor is further programmed to receive a selection formula that is based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes.
  • the processor is further programmed to depict a visual representation of the graph in which a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation, and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in a second one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • 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 automation of stratified graph representations.
  • FIG. 4 illustrates a known swim lane flow chart.
  • FIG. 5 is a table illustrating application-specific object data in accordance with an exemplary embodiment of the present invention, the specific example being a list of files and folders with various attribute values stored within respective columns.
  • FIG. 6 is an exemplary standard hierarchical display of a graph, the graph being the file directory containing the files shown in FIG. 5 .
  • FIG. 7 is an exemplary user interface for a stratified graph, displaying a file directory graph stratified by owner.
  • FIG. 8 is an exemplary user interface for a stratified graph with an identified sort order, displaying a file directory graph stratified by owner with the stratum of a desired owner shown at the top.
  • FIG. 9 is an exemplary user interface for a stratified graph showing a more complex classification formula, wherein the top stratum is subdivided into two strata.
  • FIG. 10 is an exemplary user interface for a stratified graph with primary and secondary edges distinguished visually.
  • FIG. 11 is an exemplary user interface for a stratified graph, displaying a file directory graph stratified by project.
  • FIG. 12 is an exemplary user interface for a stratified graph with multiple classifications shown in a grid format, displaying a file directory graph stratified by both project and owner.
  • FIG. 13 is an exemplary user interface for a stratified graph wherein a portion of the graph is not displayed.
  • FIG. 14 is an exemplary user interface for a stratified graph wherein ranges of data values are used for classification.
  • 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 of generating a graphical depiction of related data using attributes of the data to position representations of the data on a graph. 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 ).
  • method 300 includes receiving 302 a selection formula wherein the selection formula is based on the one or more application-specific attributes of the objects. The selection formula classifies the objects based on at least one of predetermined and selectable values of the attributes.
  • Method 300 also includes identifying 304 a graph having a plurality of nodes representing stored objects having one or more application-specific attributes associated with a primary application.
  • the primary application does not include a presentation of nodes in a graph drawing.
  • Edges are identified 306 and represent stored relationships between the objects and include a relevancy to the primary application.
  • Method 300 also includes receiving 308 a classification formula and may include identifying 310 an order of strata being displayed in the generated graph. In some embodiments, a second or more classification formula is identified 312 if the displayed strata are to be segmented to provide additional details of the relationships between nodes.
  • method 300 further includes classifying 312 the nodes, which may be an iterative process if more than a single classification is identified.
  • the available area of the graph is portioned 316 in accordance with the attributes of the nodes and the classification formula(s).
  • the nodes and edges are positioned 318 in their determined node areas such that primary edges do not cross.
  • Method 300 further includes depicting 320 a visual representation of the graph wherein a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation, and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • Method 300 also includes receiving 322 data from the user and submitting the data to update 324 a source database with the submitted data.
  • FIG. 4 is a graph of a known swim lane flow chart 400 .
  • At least some known graphs are formed by positioning nodes within stratified regions of the graph based upon at least one classification.
  • Swim lane flowcharts 400 are a standard representation of processes, wherein partitioned vertical or horizontal regions or lanes 402 represent process stages or steps that are relevant to a given department, group, or agent in general.
  • At least some standard drawing and charting software tools allow user to specify a plurality of swim lanes 402 , also referred to as functional bands, which are then represented visually as partitions. The user can then add nodes 404 and 405 interactively to separate lanes 402 .
  • At least some process design software tools allow a user to specify the objects in this manner, and then save data relevant to nodes 404 and 405 , which can then used for various applications.
  • the specification of lanes 402 precedes a creation of nodes 404 and 405 , which are classified into lanes 402 manually by a user, rather than the nodes being classified by a processor based upon node object attributes.
  • FIG. 5 shows a table 500 of exemplary files and folders 502 (hereafter files and folders will be referred to collectively as files for simplicity unless the distinction between the two is relevant) wherein various file attributes 504 are stored in respective columns 506 .
  • Each row 508 contains attribute data relating to an associated file 502 .
  • a first column 502 contains a name for each file 502
  • second column 510 indicates a file type.
  • file 502 with the name Disclaimer is a Java code file, so its type is JAVA.
  • the remaining columns 504 indicate other attributes for each associated file, such as, an owner column 512 indicating an owner associated with each file, a project column 514 indicating a project to which the file may be associated.
  • Table 500 also includes a Modified column 516 that indicates the last date of modification of the respective file, a Folder column 518 that indicates the name of the folder where the file resides, and an Alias column 520 indicates if a file is actually an alias, meaning a virtual version of an actual file stored elsewhere, with a Yes value if the file is an alias and a No value if the file is not a virtual version.
  • the Disclaimer file is owned by the user FG, associated with a project called Sales, was last modified on Sep. 24, 2009, is stored in the directory “Code”, and is not an alias.
  • each file receives a node, and the location of each file in a folder is indicated by an edge from the file to the folder.
  • FIG. 6 shows the graph presented in a standard hierarchical format, wherein every file is shown positioned above its directory with a connecting edge from the file node to the directory node.
  • the Disclaimer file node appears above the Code folder node.
  • folder nodes are presented with a different background. Notably, some nodes are shown with edges to two folders, such as the ICON file mode, thereby indicating an actual location as well as an alias location. All files are stored directly or with in subdirectories of the directory Documents, which is itself contained within the root directory C:
  • graph 600 that illustrates relationships between files and folders accurately, but has the disadvantage of being visually complex, even with a small number of nodes.
  • a user or viewer might feel “lost” by the level of detail shown.
  • most file directory interfaces show the files for only one current directory at a time, often as a list with file type shown by icon, and at least some show the path to the current directory from its root directory.
  • this approach considerably limits the power of the user, because files from only one directory can be seen at a time in a window, and because other related directories within the hierarchy are often not visible. Showing a single directory path and its contents is an underutilization of a graphical interface, not fundamentally different than a directory listing in a textual interface.
  • Embodiments of the present invention facilitate presenting a graph to a user with the advantages of showing relationships represented by the graph and still presenting desired nodes with the simplicity of a list.
  • Nodes can be stratified into partitions based upon classifications that make sense within the context of some current goal of a user or application.
  • Such an approach is useful for presenting and managing any type of graph, for example, but not limited to a file directory interface, a network monitoring program, webpage history representation, and catalog product listings.
  • a classification formula is programmed or preselected.
  • a program, interface, or website is preprogrammed to classify nodes based upon factors that may be determined dynamically, such as, for example, a user location. For example, a profile of a user may influence which types of books in a library catalog appear in a top stratum by default.
  • a user may dynamically specify desired classifications and sorting of strata, and may also modify selected classifications in order as desired.
  • FIG. 4 An exemplary swim lane diagram demonstrates a process whereby an employee of a company petitions for receiving a task reassignment. There are three lanes in this flowchart, an Employee lane, a Manager lane 108 , and a human resources (HR) lane 110 .
  • HR human resources
  • Rectangular blocks 104 indicate process steps, and diamonds 105 indicate conditional branches.
  • the process begins with an employee submitting a reassignment request 112 . Because submitting a reassignment request 112 is performed by an employee, the node 104 representing submitting a reassignment request 112 is placed in Employee swim lane 106 .
  • the next step in flowchart 100 , Evaluate Request 114 is performed by the manager for the employee, and therefore is placed within manager swim lane 108 .
  • Nodes 104 and 105 are presented as nodes of the graph at the time of their creation, and placed by the user into strata or lanes 102 as such, and only afterwards are associated with data objects for the sake of other applications.
  • stratification uses an identified formula that takes as input stored attributes about data objects and generates nodes for those objects wherein the nodes are placed into strata based upon the classification provided by the formula.
  • a processor receives an identification of the objects and their classifying attributes from a data collection using at least one of querying, programmatic selection of stored data objects and attributes and interactive selection of stored data objects and attributes.
  • the processor is configured to:
  • a node represents a stored object having one or more application-specific attributes associated with a primary application wherein the primary application does not include a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between the objects, which include a relevancy to the primary application;
  • the node objects are presented as nodes contained within node areas for the classification groupings at a time at least subsequent to their creation;
  • a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • the file objects shown in FIG. 5 contain several different attributes as shown in table 500 .
  • the processor may use any of the attributes shown to classify the shown files. That classification may then be the basis for a stratified rendering of the directory tree as shown in FIG. 6 .
  • the processor may generate a stratified graph 700 partitioned by the owner attribute such as the one shown in FIG. 7 .
  • Each stratum 702 in graph 700 depicts files owned by one owner, thereby allowing a user to see easily all of the files owned by a single individual or group.
  • a first stratum 704 shows files owned by MM.
  • the user sees the entire graph 600 including all of the edges in FIG. 6 , but is nevertheless presented with a simple set of files belonging to MM in FIG. 7 regardless of their directory.
  • This capability can be extended to include identifying an order among classifications; and depicting the graph with the classification node areas ordered according to the identified order.
  • the drawing of graph 700 shown in FIG. 7 places stratum 704 for MM in the top position of graph 700 , which may be optimal for MM, but which may not be optimal for a different user.
  • the processor may be presented with an ordering of strata 702 along with the classification formula that is optimized for current needs. For example, the processor might always show the stratum relevant to the current user on the top.
  • FIG. 8 shows a rendering of graph 700 using the same strata 702 , but wherein a different ordering is shown, having a stratum 802 for owner FG at the top.
  • the nodes in every stratum are the same as in FIG. 7 , but the order is changed.
  • the processor may be programmed to position close together strata 702 that are considered relevant with respect to each other, such as owners in the same group or department within a company.
  • the formula for determining strata need not be limited to the values of single attributes. Furthermore, the formula may include conditional branching.
  • FIG. 9 shows a depiction of a graph 900 similar to that shown in FIG. 8 except that a top stratum 902 is divided into two strata 904 and 906 , wherein first stratum 904 of top stratum 902 shows files owned by FG having a type not equivalent to Folder, and second stratum 904 shows files owned by FG having the type Folder.
  • first stratum 904 of top stratum 902 shows files owned by FG having a type not equivalent to Folder
  • second stratum 904 shows files owned by FG having the type Folder.
  • Such a formula might be indicated as follows assuming that userNumber( ) is a function that maps users to integers:
  • One embodiment of the invention identifies a set of primary edges wherein no cycles exist within the primary edges. Any non-primary edges are herein referred to secondary edges.
  • secondary edges are displayed in a visually distinctive way, such as with different colors, line styles, or other stylistic distinctions.
  • the secondary edges are omitted from the depiction of graph 900 unless certain conditions occur, such as a user hovering a pointing device over a node which is a vertex to a secondary edge.
  • primary edges contain no cycles, they can be depicted without crossing edge lines. For example, if the aliasing of files is treated as secondary edges, then the remaining edges in FIG. 6 form a tree of primary edges.
  • a graph 1000 depiction in FIG. 10 shows secondary edges 1002 drawn in a visually distinguished way as dashed lines rather than solid lines. The depiction is further altered from FIG. 9 to show all of the primary edges without any crossing of edge lines.
  • nodes 1004 are positioned by traversing primary links 1006 forming a 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 1008 while progressing in a predetermined direction (e.g., left to right) in the hierarchy presented.
  • 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.
  • Another embodiment allows identification of multiple classification formulas which the processor uses in concert for placement of nodes into strata 1008 .
  • the following steps are performed:
  • (c) depict a node within the intersecting node areas of the first classification and second classifications for the object represented by the node.
  • FIG. 11 shows graph 600 in FIG. 6 stratified by an associated project with folders placed in a separate stratum 1102 .
  • the formula for project stratification determines within which stratum 1104 of graph 1100 each node is depicted. Such a formula might be specified in pseudocode as:
  • nodes 1202 are further grouped into vertical strata 1204 based upon a different formula that shows owner.
  • vertical strata 1204 do not include a folder stratum 1206 , which is presented as separate from the grid 1207 of strata 1208 .
  • each square 1210 of grid 1207 may be further subdivided into strata or grids to represent further detail.
  • one embodiment may provide a stratum and place the nodes within the stratum according to a system of coordinates to indicate values of particular node object attributes. For example, a timeline may be shown at the top of a stratum or graph, and nodes within a stratum may be placed within the stratum at the coordinate that identifies the time or date that is relevant to the application for the object of the node.
  • portions of a graph might not be shown for simplicity.
  • FIG. 13 displays only grid 1207 portion of FIG. 12 , whereas folders are not shown.
  • a user is prompted to select or focus on an abbreviated portion of a graph and see at least part of the missing graph.
  • the user might be permitted to click on an edge line 1302 descending from a Disclaimer node 1304 to see either a missing folder node Code (shown in FIG. 12 ) or some subset of the non-displayed folders.
  • a stratified graph can serve as a user interface allowing the user to access and modify the objects represented in the graph.
  • the processor may display an interactive interface to a user associated with the objects of the graph, including at least one of:
  • a user might be presented with the graph drawing shown in FIG. 9 and might be able to move or copy the Disclaimer files from Code to Current by selecting the Disclaimer node and dragging it to Current.
  • a user might be able to drag a node from a first stratum to a second and in so doing, change an attribute for the node to reflect the value of the attribute for nodes in the second stratum.
  • a user might be presented with the graph drawing shown in FIG. 9 and might be able to move or copy the Disclaimer file its current stratum to the FP stratum and thereby change the owner of Disclaimer to FP.
  • a user may perform standard operations with node objects. For example, a user may be permitted to select a node, by, for example, right clicking on the node, and be given a pull-down menu or other lists of predefined operations relevant to the application. For example, attributes of objects may be set or modified. In the example of files, a user might be able to change attributes, such as access constraints. A user might also be able to perform predefined operations, such as opening or printing the selected file.
  • classification formulas need not be restricted to single values of stored attributes, and can even use ranges and any type of operations necessary for proper classification.
  • FIG. 14 shows a graph 1400 illustrating a classification by modification date, wherein the formula uses ranges of dates to show strata 1402 containing all files modified within a given time period.
  • a second stratum 1404 shows files modified within a range of two to seven days ago from the time of display.
  • One implementation would allow additional nodes to be displayed in addition to object nodes. For example, values of attributes associated with object nodes might be displayed as separate nodes with an edge to the associated object node. Similarly, comments and other application-specific values may be displayed as nodes.
  • One embodiment permits strata to be hidden and shown. For example, a user might be permitted to toggle between allowing a given stratum to be hidden or visible. This option might also be handled programmatically based on attributes or other criteria.
  • Various other embodiments permit a user to select a node and modify display characteristics of the node in the graph depiction. For example, a user might be able to request any of the following:
  • nodes and edges of different types may be presented differently.
  • nodes representing files might contain or be shaped as icons indicating the file type, application or application class for the file. A user might then see clearly that a file is a PDF file, a textual file, or other type of file based on the icon used to display the file in the graph depiction.
  • a stratified graph is stored and displayed again from memory.
  • An identifier of the graph and a sort order, as well as any other information relevant to the depiction of the graph may be stored for subsequent processing and/or display.
  • a tool may be provided for generating stratified graphs from a plurality of data sources, wherein the tool may permit a user to specify a location for data and formulas for classification, as well as other information relevant to presenting stratified graphs.
  • a database or other source of object information can be identified, along with a formula or other designation of which properties of an identified object determine its strata, and a processor can place nodes representing the objects into appropriate strata in a graph depiction, rendering the edges joining them as lines.
  • Algorithms might be optimized for primary trees or other subgraphs to appear attractively (for example, without any edge crossings). This approach would have value for swim lane diagrams, as well as for presenting any graph hierarchically for clarity based upon application-specific needs, such as showing resources by region.
  • 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 graphs. 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 graph has segments of the graph 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.
  • 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.
  • Graphical representations as described herein may be drawn using various drawing algorithms, which may be iterative or recursive. For simplicity, in the examples contained herein the strata are drawn vertically. However, the implementation may be applied to strata drawn horizontally, diagonally, and/or in any orientation.
  • Some embodiments enable truncation of one or more portions of a graph, and especially branches of a tree that constitutes at least a portion of the graph.
  • 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.

Abstract

A method and apparatus for generating a graphical depiction of related data are provided. 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 identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, wherein the primary application includes other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application. The computer-executable instructions further cause the processor to receive a selection formula wherein the selection formula is based on the one or more application-specific attributes of the objects, and wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and depict a visual representation of the graph.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Application No. 61/380,060, filed Sep. 3, 2010, and U.S. Non-Provisional patent application Ser. No. 13/226,270 filed Sep. 6, 2011, the contents of which are hereby incorporated by reference in their entirety.
  • BACKGROUND OF THE INVENTION
  • The subject matter disclosed herein relates generally to graph representation and, more specifically, to node positioning within stratified graph representations based upon attributes of represented objects.
  • At least some known graph drawing tools are designed to implement graph drawing algorithms that can either import or receive from a user interactively sets of properties for nodes that are relevant to their display in a visual representation of the graph. For example, a label or text for a node may be imported or specified by a user interactively, and the size of a name might influence the size of one or more of the nodes. As another example, dimensions, color, and perhaps positioning requirements might be specified by a user or imported. These node properties influence the drawing of the graph.
  • However, these properties do not necessarily reflect the nature of the objects represented by nodes directly. For example, a graph might be generated wherein nodes represent employees within a company. The data representing employees might specify a number of properties about each employee, such as name, department, education level, seniority, position, and so on. At least some texts that present graph drawing algorithms do not present algorithms that directly access such information stored about node objects. A user might specify positioning requirements, or labels or text based upon any number of such properties, and might further specify them programmatically; however, the algorithm for placing the nodes within a drawing does not directly consider information stored about the objects themselves.
  • BRIEF DESCRIPTION OF THE INVENTION
  • 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, 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: identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, wherein the primary application includes other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application. The computer-executable instructions further cause the processor to receive a selection formula wherein the selection formula is based on the one or more application-specific attributes of the objects, and wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and depict a visual representation of the graph, in which a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation, and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in a second one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • In another aspect, a method of generating a graphical depiction of related data using attributes of the data to position representations of the data on a graph includes identifying a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application wherein the primary application includes other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application. The method further includes receiving a selection formula, said selection formula based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and depict a visual representation of the graph, in which a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation; and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • In yet another aspect, a display device includes a memory device and a processor coupled to the memory device, the processor programmed to identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, said primary application comprising other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application. The processor is further programmed to receive a selection formula that is based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes. The processor is further programmed to depict a visual representation of the graph in which a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation, and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in a second one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 automation of stratified graph representations.
  • FIG. 4 illustrates a known swim lane flow chart.
  • FIG. 5 is a table illustrating application-specific object data in accordance with an exemplary embodiment of the present invention, the specific example being a list of files and folders with various attribute values stored within respective columns.
  • FIG. 6 is an exemplary standard hierarchical display of a graph, the graph being the file directory containing the files shown in FIG. 5.
  • FIG. 7 is an exemplary user interface for a stratified graph, displaying a file directory graph stratified by owner.
  • FIG. 8 is an exemplary user interface for a stratified graph with an identified sort order, displaying a file directory graph stratified by owner with the stratum of a desired owner shown at the top.
  • FIG. 9 is an exemplary user interface for a stratified graph showing a more complex classification formula, wherein the top stratum is subdivided into two strata.
  • FIG. 10 is an exemplary user interface for a stratified graph with primary and secondary edges distinguished visually.
  • FIG. 11 is an exemplary user interface for a stratified graph, displaying a file directory graph stratified by project.
  • FIG. 12 is an exemplary user interface for a stratified graph with multiple classifications shown in a grid format, displaying a file directory graph stratified by both project and owner.
  • FIG. 13 is an exemplary user interface for a stratified graph wherein a portion of the graph is not displayed.
  • FIG. 14 is an exemplary user interface for a stratified graph wherein ranges of data values are used for classification.
  • DETAILED DESCRIPTION OF THE INVENTION
  • The past few decades have seen a movement towards graphical user interfaces and visualized presentation of data. One challenge of a graphical user interface is the balancing act of on the one hand taking advantage of the ability to present a lot of graphical information while on the other hand not overwhelming the user. In particular, these two mutual goals are relevant for presenting a graph, meaning a set of nodes with a set of edges between them. Graph nodes are able to present any type of objects, and graph edges can represent relationships between the objects. Graphs are therefore relevant to a vast number of applications, and user interfaces benefit tremendously from effective presentation of graphs. For example, a file directory system can be presented as a graph wherein nodes represent files and/or directories, and wherein directed edges represent a logical file location within a directory.
  • 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. In some embodiments, 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. For example, 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. 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 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. For example, 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. 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 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.
  • In exemplary embodiments, 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. 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, 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.
  • In exemplary embodiments, 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. In some embodiments, server 205 executes a database 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 from database management device 210 and client device 215, as described in more detail below. In addition, or alternatively, server 205 may provide data to client device 215 from a source other than database 230. For example, server 205 may transmit files stored at server 205 or some other device to client device 215. As another example, 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). 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, 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). 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 from user 235 and submit the data to server 205, such that database 230 is updated with the submitted data.
  • In some embodiments, client device 215 is remote to server 205. For example, client device 215 may be located at a facility that is geographically removed from server 205 and/or database management device 210. Further, although 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. For example, 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 of generating a graphical depiction of related data using attributes of the data to position representations of the data on a graph. 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). In the exemplary embodiment, method 300 includes receiving 302 a selection formula wherein the selection formula is based on the one or more application-specific attributes of the objects. The selection formula classifies the objects based on at least one of predetermined and selectable values of the attributes. Method 300 also includes identifying 304 a graph having a plurality of nodes representing stored objects having one or more application-specific attributes associated with a primary application. In the exemplary embodiment, the primary application does not include a presentation of nodes in a graph drawing. Edges are identified 306 and represent stored relationships between the objects and include a relevancy to the primary application. Method 300 also includes receiving 308 a classification formula and may include identifying 310 an order of strata being displayed in the generated graph. In some embodiments, a second or more classification formula is identified 312 if the displayed strata are to be segmented to provide additional details of the relationships between nodes.
  • Further, method 300 further includes classifying 312 the nodes, which may be an iterative process if more than a single classification is identified. The available area of the graph is portioned 316 in accordance with the attributes of the nodes and the classification formula(s). The nodes and edges are positioned 318 in their determined node areas such that primary edges do not cross. Method 300 further includes depicting 320 a visual representation of the graph wherein a plurality of nodes areas are reserved for individual object classifications, a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area, the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation, and a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area. Method 300 also includes receiving 322 data from the user and submitting the data to update 324 a source database with the submitted data.
  • FIG. 4 is a graph of a known swim lane flow chart 400. At least some known graphs are formed by positioning nodes within stratified regions of the graph based upon at least one classification. Swim lane flowcharts 400 are a standard representation of processes, wherein partitioned vertical or horizontal regions or lanes 402 represent process stages or steps that are relevant to a given department, group, or agent in general. At least some standard drawing and charting software tools allow user to specify a plurality of swim lanes 402, also referred to as functional bands, which are then represented visually as partitions. The user can then add nodes 404 and 405 interactively to separate lanes 402. At least some process design software tools allow a user to specify the objects in this manner, and then save data relevant to nodes 404 and 405, which can then used for various applications. However, the specification of lanes 402 precedes a creation of nodes 404 and 405, which are classified into lanes 402 manually by a user, rather than the nodes being classified by a processor based upon node object attributes.
  • FIG. 5 shows a table 500 of exemplary files and folders 502 (hereafter files and folders will be referred to collectively as files for simplicity unless the distinction between the two is relevant) wherein various file attributes 504 are stored in respective columns 506. Each row 508 contains attribute data relating to an associated file 502. A first column 502 contains a name for each file 502, and second column 510 indicates a file type. For example, file 502 with the name Disclaimer is a Java code file, so its type is JAVA. The remaining columns 504 indicate other attributes for each associated file, such as, an owner column 512 indicating an owner associated with each file, a project column 514 indicating a project to which the file may be associated. In the event that a file is not associated with the project, the project name by default is shown as General). Table 500 also includes a Modified column 516 that indicates the last date of modification of the respective file, a Folder column 518 that indicates the name of the folder where the file resides, and an Alias column 520 indicates if a file is actually an alias, meaning a virtual version of an actual file stored elsewhere, with a Yes value if the file is an alias and a No value if the file is not a virtual version. In the exemplary embodiment, the Disclaimer file is owned by the user FG, associated with a project called Sales, was last modified on Sep. 24, 2009, is stored in the directory “Code”, and is not an alias.
  • As shown in FIG. 6, the files shown in table 500 in FIG. 5 can be presented as a graph 600. In the exemplary embodiment, each file receives a node, and the location of each file in a folder is indicated by an edge from the file to the folder. FIG. 6 shows the graph presented in a standard hierarchical format, wherein every file is shown positioned above its directory with a connecting edge from the file node to the directory node. For example, the Disclaimer file node appears above the Code folder node. For clarity, folder nodes are presented with a different background. Notably, some nodes are shown with edges to two folders, such as the ICON file mode, thereby indicating an actual location as well as an alias location. All files are stored directly or with in subdirectories of the directory Documents, which is itself contained within the root directory C:
  • As FIG. 6 shows, graph 600 that illustrates relationships between files and folders accurately, but has the disadvantage of being visually complex, even with a small number of nodes. A user or viewer might feel “lost” by the level of detail shown. In fact, most file directory interfaces show the files for only one current directory at a time, often as a list with file type shown by icon, and at least some show the path to the current directory from its root directory. However, this approach considerably limits the power of the user, because files from only one directory can be seen at a time in a window, and because other related directories within the hierarchy are often not visible. Showing a single directory path and its contents is an underutilization of a graphical interface, not fundamentally different than a directory listing in a textual interface.
  • Embodiments of the present invention facilitate presenting a graph to a user with the advantages of showing relationships represented by the graph and still presenting desired nodes with the simplicity of a list. Nodes can be stratified into partitions based upon classifications that make sense within the context of some current goal of a user or application. Such an approach is useful for presenting and managing any type of graph, for example, but not limited to a file directory interface, a network monitoring program, webpage history representation, and catalog product listings.
  • In one embodiment, a classification formula is programmed or preselected. In one embodiment, a program, interface, or website is preprogrammed to classify nodes based upon factors that may be determined dynamically, such as, for example, a user location. For example, a profile of a user may influence which types of books in a library catalog appear in a top stratum by default. In another embodiment, a user may dynamically specify desired classifications and sorting of strata, and may also modify selected classifications in order as desired.
  • One example of partitioning a graph is illustrated using a flowchart commonly referred to as a “swim lane diagram”. The nodes in a swim lane diagram are placed into vertical or horizontal bands, commonly referred to as “swim lanes”, wherein each band is dedicated to showing nodes that are relevant to some attribute, for example, an individual, a group, a department, or an actor. As described above with reference to FIG. 4, an exemplary swim lane diagram demonstrates a process whereby an employee of a company petitions for receiving a task reassignment. There are three lanes in this flowchart, an Employee lane, a Manager lane 108, and a human resources (HR) lane 110. Rectangular blocks 104 indicate process steps, and diamonds 105 indicate conditional branches. For example, the process begins with an employee submitting a reassignment request 112. Because submitting a reassignment request 112 is performed by an employee, the node 104 representing submitting a reassignment request 112 is placed in Employee swim lane 106. The next step in flowchart 100, Evaluate Request 114, is performed by the manager for the employee, and therefore is placed within manager swim lane 108.
  • Swim lane diagrams are commonly acknowledged to be an effective way to present flowcharts, because the steps of the flowchart are less confusing when broken down between participants in the process. Many business process mapping tools build a user interface around a swim lane flowchart wherein the user initially determines swim lanes and then adds the nodes of the flowchart graph to the appropriate lanes. At least some such tools then store the separate steps as data objects and use them in various follow-up applications such as resource allocation tools.
  • However, the use of stratification based upon classification of nodes other than their proximity in a graph is largely limited to swim lane diagrams, and the decision of which in stratum to associate with a node is generally made by a user. Nodes 104 and 105 are presented as nodes of the graph at the time of their creation, and placed by the user into strata or lanes 102 as such, and only afterwards are associated with data objects for the sake of other applications.
  • Another usage of stratification uses an identified formula that takes as input stored attributes about data objects and generates nodes for those objects wherein the nodes are placed into strata based upon the classification provided by the formula. In one embodiment, a processor receives an identification of the objects and their classifying attributes from a data collection using at least one of querying, programmatic selection of stored data objects and attributes and interactive selection of stored data objects and attributes.
  • Specifically, the processor is configured to:
  • (a) identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application wherein the primary application does not include a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between the objects, which include a relevancy to the primary application;
  • (b) receive a selection formula wherein the selection formula is based on the one or more application-specific attributes of the objects, and wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and
  • (c) depict a visual representation of the graph wherein:
  • (i) a plurality of node areas are reserved for individual object classifications;
  • (ii) a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area;
  • (iii) the node objects are presented as nodes contained within node areas for the classification groupings at a time at least subsequent to their creation; and
  • (iv) a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
  • For example, the file objects shown in FIG. 5 contain several different attributes as shown in table 500. If the data in table 500 were stored in some form accessible by the processor, such as within a relational database or a single spreadsheet or table, then the processor may use any of the attributes shown to classify the shown files. That classification may then be the basis for a stratified rendering of the directory tree as shown in FIG. 6. For example, if the processor received as a classification the owner of a given file, then the processor may generate a stratified graph 700 partitioned by the owner attribute such as the one shown in FIG. 7. Each stratum 702 in graph 700 depicts files owned by one owner, thereby allowing a user to see easily all of the files owned by a single individual or group. For example, a first stratum 704 shows files owned by MM. Notably, the user sees the entire graph 600 including all of the edges in FIG. 6, but is nevertheless presented with a simple set of files belonging to MM in FIG. 7 regardless of their directory.
  • This capability can be extended to include identifying an order among classifications; and depicting the graph with the classification node areas ordered according to the identified order. For example, the drawing of graph 700 shown in FIG. 7 places stratum 704 for MM in the top position of graph 700, which may be optimal for MM, but which may not be optimal for a different user. The processor may be presented with an ordering of strata 702 along with the classification formula that is optimized for current needs. For example, the processor might always show the stratum relevant to the current user on the top.
  • FIG. 8 shows a rendering of graph 700 using the same strata 702, but wherein a different ordering is shown, having a stratum 802 for owner FG at the top. Notably, the nodes in every stratum are the same as in FIG. 7, but the order is changed. In one embodiment, the processor may be programmed to position close together strata 702 that are considered relevant with respect to each other, such as owners in the same group or department within a company.
  • The formula for determining strata need not be limited to the values of single attributes. Furthermore, the formula may include conditional branching.
  • FIG. 9 shows a depiction of a graph 900 similar to that shown in FIG. 8 except that a top stratum 902 is divided into two strata 904 and 906, wherein first stratum 904 of top stratum 902 shows files owned by FG having a type not equivalent to Folder, and second stratum 904 shows files owned by FG having the type Folder. Such a formula might be indicated as follows assuming that userNumber( ) is a function that maps users to integers:
  • if owner= <current user>, then {if type=’Folder’ then stratum=1 else
    stratum = 0} else {stratum=userNumber(<current user>)}.
  • One embodiment of the invention identifies a set of primary edges wherein no cycles exist within the primary edges. Any non-primary edges are herein referred to secondary edges. In one embodiment, secondary edges are displayed in a visually distinctive way, such as with different colors, line styles, or other stylistic distinctions. In another embodiment, the secondary edges are omitted from the depiction of graph 900 unless certain conditions occur, such as a user hovering a pointing device over a node which is a vertex to a secondary edge.
  • Because primary edges contain no cycles, they can be depicted without crossing edge lines. For example, if the aliasing of files is treated as secondary edges, then the remaining edges in FIG. 6 form a tree of primary edges. A graph 1000 depiction in FIG. 10 shows secondary edges 1002 drawn in a visually distinguished way as dashed lines rather than solid lines. The depiction is further altered from FIG. 9 to show all of the primary edges without any crossing of edge lines.
  • In one embodiment, nodes 1004 are positioned by traversing primary links 1006 forming a 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 1008 while progressing in a predetermined direction (e.g., left to right) in the hierarchy presented. 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.
  • Another embodiment allows identification of multiple classification formulas which the processor uses in concert for placement of nodes into strata 1008. In one embodiment, the following steps are performed:
  • (a) identify a second formula for classification of the node objects;
  • (b) reserve node areas for the second formula classification wherein node areas for the first formula classification are further partitioned to include node areas for the second formula classification; and
  • (c) depict a node within the intersecting node areas of the first classification and second classifications for the object represented by the node.
  • FIG. 11 shows graph 600 in FIG. 6 stratified by an associated project with folders placed in a separate stratum 1102. The formula for project stratification determines within which stratum 1104 of graph 1100 each node is depicted. Such a formula might be specified in pseudocode as:
  • if <type>=’Folder’ then {stratum=maxStratum} else
    stratum=stratumOf(project)}.
  • In FIG. 12, the same stratification formula is used, but nodes 1202 are further grouped into vertical strata 1204 based upon a different formula that shows owner. Notably, vertical strata 1204 do not include a folder stratum 1206, which is presented as separate from the grid 1207 of strata 1208.
  • Multiple classifications may be extended to as many classifications as desired using any standard approach to representing multiple dimensions of data. For example, each square 1210 of grid 1207 may be further subdivided into strata or grids to represent further detail.
  • In addition to subdividing a stratum into strata, one embodiment may provide a stratum and place the nodes within the stratum according to a system of coordinates to indicate values of particular node object attributes. For example, a timeline may be shown at the top of a stratum or graph, and nodes within a stratum may be placed within the stratum at the coordinate that identifies the time or date that is relevant to the application for the object of the node.
  • In one embodiment, portions of a graph might not be shown for simplicity. For example, FIG. 13 displays only grid 1207 portion of FIG. 12, whereas folders are not shown. In one embodiment, a user is prompted to select or focus on an abbreviated portion of a graph and see at least part of the missing graph. For example, the user might be permitted to click on an edge line 1302 descending from a Disclaimer node 1304 to see either a missing folder node Code (shown in FIG. 12) or some subset of the non-displayed folders.
  • A stratified graph can serve as a user interface allowing the user to access and modify the objects represented in the graph. The processor may display an interactive interface to a user associated with the objects of the graph, including at least one of:
  • (a) viewing the objects based upon a selected classification; and
  • (b) allowing predefined updating operations including at least one of creating new node objects, modifying node objects, and deleting node objects.
  • For example, a user might be presented with the graph drawing shown in FIG. 9 and might be able to move or copy the Disclaimer files from Code to Current by selecting the Disclaimer node and dragging it to Current. As another example, a user might be able to drag a node from a first stratum to a second and in so doing, change an attribute for the node to reflect the value of the attribute for nodes in the second stratum. For example, a user might be presented with the graph drawing shown in FIG. 9 and might be able to move or copy the Disclaimer file its current stratum to the FP stratum and thereby change the owner of Disclaimer to FP.
  • Similarly, a user may perform standard operations with node objects. For example, a user may be permitted to select a node, by, for example, right clicking on the node, and be given a pull-down menu or other lists of predefined operations relevant to the application. For example, attributes of objects may be set or modified. In the example of files, a user might be able to change attributes, such as access constraints. A user might also be able to perform predefined operations, such as opening or printing the selected file.
  • Notably, classification formulas need not be restricted to single values of stored attributes, and can even use ranges and any type of operations necessary for proper classification.
  • FIG. 14 shows a graph 1400 illustrating a classification by modification date, wherein the formula uses ranges of dates to show strata 1402 containing all files modified within a given time period. For example, a second stratum 1404 shows files modified within a range of two to seven days ago from the time of display.
  • One implementation would allow additional nodes to be displayed in addition to object nodes. For example, values of attributes associated with object nodes might be displayed as separate nodes with an edge to the associated object node. Similarly, comments and other application-specific values may be displayed as nodes.
  • One embodiment permits strata to be hidden and shown. For example, a user might be permitted to toggle between allowing a given stratum to be hidden or visible. This option might also be handled programmatically based on attributes or other criteria.
  • Various other embodiments permit a user to select a node and modify display characteristics of the node in the graph depiction. For example, a user might be able to request any of the following:
  • (a) to hide the node or node type;
  • (b) to place all the nodes of the node type into a separate stratum;
  • (c) to visually deemphasize or emphasize the node or node type; and
  • (d) to reclassify the node or node type nodes into a different stratum.
  • In addition, nodes and edges of different types may be presented differently. For example, nodes representing files might contain or be shaped as icons indicating the file type, application or application class for the file. A user might then see clearly that a file is a PDF file, a textual file, or other type of file based on the icon used to display the file in the graph depiction.
  • In one embodiment, a stratified graph is stored and displayed again from memory. An identifier of the graph and a sort order, as well as any other information relevant to the depiction of the graph may be stored for subsequent processing and/or display. In addition, a tool may be provided for generating stratified graphs from a plurality of data sources, wherein the tool may permit a user to specify a location for data and formulas for classification, as well as other information relevant to presenting stratified graphs.
  • Draw a graph such that the nodes of the graph are stratified into designated node areas based upon a set of properties of the objects represented by the nodes. A database or other source of object information can be identified, along with a formula or other designation of which properties of an identified object determine its strata, and a processor can place nodes representing the objects into appropriate strata in a graph depiction, rendering the edges joining them as lines. Algorithms might be optimized for primary trees or other subgraphs to appear attractively (for example, without any edge crossings). This approach would have value for swim lane diagrams, as well as for presenting any graph hierarchically for clarity based upon application-specific needs, such as showing resources by region.
  • 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 graphs. 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 graph has segments of the graph 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. 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.
  • Graphical representations as described herein may be drawn using various drawing algorithms, which may be iterative or recursive. For simplicity, in the examples contained herein the strata are drawn vertically. However, the implementation may be applied to strata drawn horizontally, diagonally, and/or in any orientation.
  • Some embodiments enable truncation of one or more portions of a graph, and especially branches of a tree that constitutes at least a portion of the graph. 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 (20)

What is claimed is:
1. 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:
identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, said primary application comprising other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application;
receive a selection formula, said selection formula based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and depict a visual representation of the graph wherein:
(a) a plurality of nodes areas are reserved for individual object classifications;
(b) a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area;
(c) the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation; and
(d) a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
2. One or more non-transitory computer-readable media in accordance with claim 1, wherein the computer-executable instructions further cause the processor to:
identify an order among classifications; and
depict the graph with the classification node areas ordered according to the identified order.
3. One or more non-transitory computer-readable media in accordance with claim 1, wherein the computer-executable instructions further cause the processor to:
identify a second formula for classification of the node objects;
reserve node areas for the second formula classification wherein node areas for the first formula classification are further partitioned to include node areas for the second formula classification; and
depict a node within the intersecting node areas of the first classification and second classifications for the object represented by the node.
4. One or more non-transitory computer-readable media in accordance with claim 1, wherein the computer-executable instructions further cause the processor to receive an identification of the objects and their classifying attributes from a data collection using at least one of querying, programmatic selection of stored data objects and attributes and interactive selection of stored data objects and attributes.
5. One or more non-transitory computer-readable media in accordance with claim 1, wherein the computer-executable instructions further cause the processor to display an interactive interface to a user associated with the objects of the graph, including at least one of:
(a) viewing the objects based upon a selected classification; and
(b) allowing predefined updating operations including at least one of creating new node objects, modifying node objects, and deleting node objects.
6. One or more non-transitory computer-readable media in accordance with claim 1, wherein the computer-executable instructions further cause the processor to display an acyclical hierarchy of primary edges without crossing of primary edge lines.
7. One or more non-transitory computer-readable media in accordance with claim 6, wherein the computer-executable instructions further cause the processor to display edges not contained in the hierarchy of primary edges in a visually distinguished way.
8. A method of generating a graphical depiction of related data using attributes of the data to position representations of the data on a graph, the method comprising:
identifying a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, said primary application comprising other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application;
receiving a selection formula, said selection formula based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and
depicting a visual representation of the graph wherein:
(a) a plurality of nodes areas are reserved for individual object classifications;
(b) a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area;
(c) the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation; and
(d) a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
9. A method in accordance with claim 8, further comprising:
identifying an order among classifications; and
depicting the graph with the classification node areas ordered according to the identified order.
10. A method in accordance with claim 8, further comprising:
identifying a second formula for classification of the node objects;
reserving node areas for the second formula classification wherein node areas for the first formula classification are further partitioned to include node areas for the second formula classification; and
depicting a node within the intersecting node areas of the first classification and second classifications for the object represented by the node.
11. A method in accordance with claim 8, further comprising receiving an identification of the objects and their classifying attributes from a data collection using at least one of querying, programmatic selection of stored data objects and attributes, and interactive selection of stored data objects and attributes.
12. A method in accordance with claim 8, further comprising displaying an interactive interface to a user associated with the objects of the graph, including at least one of:
(a) viewing the objects based upon a selected classification; and
(b) allowing predefined updating operations including at least one of creating new node objects, modifying node objects, and deleting node objects.
13. A method in accordance with claim 8, further comprising displaying an acyclical hierarchy of primary edges without crossing of primary edge lines.
14. A method in accordance with claim 13, further comprising displaying edges not contained in the hierarchy of primary edges in a visually distinguished way.
15. A display device comprising:
a memory device; and
a processor coupled to the memory device and programmed to:
identify a graph wherein a node represents a stored object having one or more application-specific attributes associated with a primary application, said primary application comprising other than a presentation of nodes in a graph drawing, and wherein edges represent stored relationships between said objects, which include a relevancy to the primary application;
receive a selection formula, said selection formula based on the one or more application-specific attributes of the objects, wherein the formula classifies the objects based on at least one of predetermined and selectable values of the attributes; and
depict a visual representation of the graph wherein;
(a) a plurality of nodes areas are reserved for individual object classifications;
(b) a plurality of nodes for objects of a classification as determined by the formula appear in a respective classification node area;
(c) the node objects are presented as nodes contained within nodes areas for the classification groupings at a time at least subsequent to their creation; and
(d) a plurality of the stored edges are shown joining nodes contained in one classification node area to nodes contained in a second one or more classification node areas, and a plurality of the stored edges are shown joining nodes contained within the same classification node area.
16. A display device in accordance with claim 15, wherein the processor is further programmed to:
identify an order among classifications; and
depict the graph with the classification node areas ordered according to the identified order.
17. A display device in accordance with claim 15, wherein the processor is further programmed to:
identify a second formula for classification of the node objects;
reserve node areas for the second formula classification wherein node areas for the first formula classification are further partitioned to include node areas for the second formula classification; and
depict a node within the intersecting node areas of the first classification and second classifications for the object represented by the node.
18. A display device in accordance with claim 15, wherein the computer-executable instructions further cause the processor to receive an identification of the objects and their classifying attributes from a data collection using at least one of querying, programmatic selection of stored data objects and attributes and interactive selection of stored data objects and attributes.
19. A display device in accordance with claim 15, wherein the computer-executable instructions further cause the processor to display an interactive interface to a user associated with the objects of the graph, including at least one of:
(a) viewing the objects based upon a selected classification; and
(b) allowing predefined updating operations including at least one of creating new node objects, modifying node objects, and deleting node objects.
20. A display device in accordance with claim 15, wherein the computer-executable instructions further cause the processor to display an acyclical hierarchy of primary edges without crossing of primary edge lines.
US13/413,477 2010-09-03 2012-03-06 Automated stratification of graph display Expired - Fee Related US9177041B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/413,477 US9177041B2 (en) 2010-09-03 2012-03-06 Automated stratification of graph display

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
US13/413,477 US9177041B2 (en) 2010-09-03 2012-03-06 Automated stratification of graph display

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US12/196,269 Continuation US20090304719A1 (en) 2007-08-22 2008-08-21 Activatable binding polypeptides and methods of identification and use thereof
US13/226,270 Continuation-In-Part US9128998B2 (en) 2010-09-03 2011-09-06 Presentation of data object hierarchies

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/950,174 Continuation US9169321B2 (en) 2007-08-22 2013-07-24 Activatable binding polypeptides and methods of identification and use thereof

Publications (3)

Publication Number Publication Date
US20130235040A1 US20130235040A1 (en) 2013-09-12
US20150112994A9 true US20150112994A9 (en) 2015-04-23
US9177041B2 US9177041B2 (en) 2015-11-03

Family

ID=49113700

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/413,477 Expired - Fee Related US9177041B2 (en) 2010-09-03 2012-03-06 Automated stratification of graph display

Country Status (1)

Country Link
US (1) US9177041B2 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140372B2 (en) 2012-09-12 2018-11-27 Gracenote, Inc. User profile based on clustering tiered descriptors
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9256969B2 (en) * 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
WO2014170762A2 (en) * 2013-03-15 2014-10-23 James Webber Graph database devices and methods for partitioning graphs
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US20140351678A1 (en) * 2013-05-22 2014-11-27 European Molecular Biology Organisation Method and System for Associating Data with Figures
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
CN105765560B (en) 2013-11-13 2019-11-05 微软技术许可有限责任公司 The component software executed based on multiple tracking is recommended
EP3069241B1 (en) 2013-11-13 2018-08-15 Microsoft Technology Licensing, LLC Application execution path tracing with configurable origin definition
US11010032B2 (en) * 2014-02-24 2021-05-18 Citrix Systems, Inc. Navigating a hierarchical data set
US10402430B2 (en) * 2014-06-09 2019-09-03 Alcatel Lucent Method and system for representing paths on a graph based on a classification
US20180137667A1 (en) * 2016-11-14 2018-05-17 Oracle International Corporation Graph Visualization Tools With Summary Visualization For Very Large Labeled Graphs
US10902366B2 (en) * 2017-03-01 2021-01-26 Rolls-Royce Corporation Visualization features for teams
EP3404535A1 (en) * 2017-05-15 2018-11-21 Ecole Nationale de l'Aviation Civile Method and apparatus for processing code
US11100199B2 (en) * 2018-08-30 2021-08-24 Servicenow, Inc. Automatically detecting misuse of licensed software
US10824749B2 (en) * 2018-09-28 2020-11-03 Code 42 Software, Inc. Automatic graph-based detection of unlikely file possession

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567802B1 (en) * 2000-09-06 2003-05-20 The Trustees Of The University Of Pennsylvania Systematic approach to query optimization
US20030115545A1 (en) * 1999-02-19 2003-06-19 Lucent Technologies Inc. Dynamic display of data item evaluation
US20040181554A1 (en) * 1998-06-25 2004-09-16 Heckerman David E. Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
US6801905B2 (en) * 2002-03-06 2004-10-05 Sybase, Inc. Database system providing methodology for property enforcement
US20060015588A1 (en) * 2004-06-30 2006-01-19 Microsoft Corporation Partitioning social networks
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
US20060253476A1 (en) * 2005-05-09 2006-11-09 Roth Mary A Technique for relationship discovery in schemas using semantic name indexing
US20070180408A1 (en) * 2006-01-28 2007-08-02 Rowan University Information visualization system
US20080056572A1 (en) * 2006-08-29 2008-03-06 Frank Nielsen Image processing apparatus, image processing method and computer program
US20090175543A1 (en) * 2005-06-07 2009-07-09 Frank Nielsen Information Processing Device and Information Processing Method, Image Processing Device and Image Processing Method, and Computer Program
US20090182837A1 (en) * 2008-01-11 2009-07-16 Rogers J Andrew Spatial Sieve Tree
US20090296568A1 (en) * 2007-03-28 2009-12-03 Fujitsu Limited Edge Node Redundant System
US20120229466A1 (en) * 2011-03-07 2012-09-13 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
US20130174129A1 (en) * 2011-12-29 2013-07-04 Sap Ag Model Matching for Trace Link Generation
US8832111B2 (en) * 2010-12-30 2014-09-09 Facebook, Inc. Distributed cache for graph data
US20140304214A1 (en) * 2008-02-22 2014-10-09 Nathan Sakunkoo Navigable semantic network definition, modeling, and use
US8978010B1 (en) * 2013-12-18 2015-03-10 Sap Ag Pruning compilation dependency graphs
US8983898B1 (en) * 2010-04-09 2015-03-17 Google Inc.. Extracting instance attributes from text

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749079A (en) * 1992-03-04 1998-05-05 Singapore Computer Systems Limited End user query facility including a query connectivity driver
GB2330221B (en) * 1997-10-09 2002-07-03 Ibm Optimisation of relational database queries
US6105018A (en) 1998-03-26 2000-08-15 Oracle Corporation Minimum leaf spanning tree
US6772180B1 (en) * 1999-01-22 2004-08-03 International Business Machines Corporation Data representation schema translation through shared examples
US6377287B1 (en) * 1999-04-19 2002-04-23 Hewlett-Packard Company Technique for visualizing large web-based hierarchical hyperbolic space with multi-paths
US6763361B1 (en) * 2000-10-31 2004-07-13 Opsware, Inc. Object-oriented database abstraction and statement generation
US20030065527A1 (en) 2001-09-28 2003-04-03 Zerotime Labs, L.L.C. Financial transfer modeling editor system and method
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
US7614015B2 (en) 2003-04-09 2009-11-03 Microsoft Corporation Method and system for representing group policy object topology and relationships
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
US7366723B2 (en) 2004-10-05 2008-04-29 Sap Ag Visual query modeling for configurable patterns
US20060274070A1 (en) * 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US8051105B1 (en) 2007-01-10 2011-11-01 The Mathworks, Inc. Directing searches on tree data structures
US8200063B2 (en) * 2007-09-24 2012-06-12 Fuji Xerox Co., Ltd. System and method for video summarization
US8463756B2 (en) * 2010-04-21 2013-06-11 Haileo, Inc. Systems and methods for building a universal multimedia learner
WO2011137386A1 (en) 2010-04-30 2011-11-03 Orbis Technologies, Inc. Systems and methods for semantic search, content correlation and visualization

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181554A1 (en) * 1998-06-25 2004-09-16 Heckerman David E. Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
US20030115545A1 (en) * 1999-02-19 2003-06-19 Lucent Technologies Inc. Dynamic display of data item evaluation
US6567802B1 (en) * 2000-09-06 2003-05-20 The Trustees Of The University Of Pennsylvania Systematic approach to query optimization
US6801905B2 (en) * 2002-03-06 2004-10-05 Sybase, Inc. Database system providing methodology for property enforcement
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
US20060015588A1 (en) * 2004-06-30 2006-01-19 Microsoft Corporation Partitioning social networks
US20060253476A1 (en) * 2005-05-09 2006-11-09 Roth Mary A Technique for relationship discovery in schemas using semantic name indexing
US20090175543A1 (en) * 2005-06-07 2009-07-09 Frank Nielsen Information Processing Device and Information Processing Method, Image Processing Device and Image Processing Method, and Computer Program
US20070180408A1 (en) * 2006-01-28 2007-08-02 Rowan University Information visualization system
US20080056572A1 (en) * 2006-08-29 2008-03-06 Frank Nielsen Image processing apparatus, image processing method and computer program
US20090296568A1 (en) * 2007-03-28 2009-12-03 Fujitsu Limited Edge Node Redundant System
US20090182837A1 (en) * 2008-01-11 2009-07-16 Rogers J Andrew Spatial Sieve Tree
US20140304214A1 (en) * 2008-02-22 2014-10-09 Nathan Sakunkoo Navigable semantic network definition, modeling, and use
US8983898B1 (en) * 2010-04-09 2015-03-17 Google Inc.. Extracting instance attributes from text
US8832111B2 (en) * 2010-12-30 2014-09-09 Facebook, Inc. Distributed cache for graph data
US20120229466A1 (en) * 2011-03-07 2012-09-13 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
US20130174129A1 (en) * 2011-12-29 2013-07-04 Sap Ag Model Matching for Trace Link Generation
US8978010B1 (en) * 2013-12-18 2015-03-10 Sap Ag Pruning compilation dependency graphs

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Graph rewrite systems for program optimization Uwe Assmann July 2000 Transactions on Programming Languages and Systems (TOPLAS) , Volume 22 Issue 4, Publisher: ACM *
Graph-based KNN text classification Zonghu Wang ; Zhijing Liu Fuzzy Systems and Knowledge Discovery (FSKD), 2010 Seventh International Conference on Volume: 5 DOI: 10.1109/FSKD.2010.5569866 Publication Year: 2010 , Page(s): 2363 - 2366 *

Also Published As

Publication number Publication date
US9177041B2 (en) 2015-11-03
US20130235040A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
US9177041B2 (en) Automated stratification of graph display
US9128998B2 (en) Presentation of data object hierarchies
US11604555B2 (en) Highlighting data marks in popup secondary data visualizations according to selected data values from primary data visualizations
US10593078B2 (en) Reformating pixels that represent objects
US8281238B2 (en) System, method and computer program for creating and manipulating data structures using an interactive graphical interface
Sadana et al. Onset: A visualization technique for large-scale binary set data
CN105339931B (en) Method and apparatus for processing data containers
US20120120086A1 (en) Interactive and Scalable Treemap as a Visualization Service
US20140380219A1 (en) Configuring and displaying multidimensional data using two or more correlated interactive screen interfaces
JP2017010580A (en) Methods for electronic document searching and graphically representing electronic document searches
US10210150B2 (en) Grid-based user interface system
US20130194294A1 (en) Relational rendering of multi-faceted data
US20170010787A1 (en) Graphical model explorer
US10565560B2 (en) Alternative people charting for organizational charts
US20040049739A1 (en) Project structure
US10884574B1 (en) Highlighting data marks in popup secondary data visualizations according to selected data values from primary data visualizations
AU2023200293B2 (en) Method of computerized presentation of a legend of object symbols on a document
US20190347280A1 (en) Condensed hierarchical data viewer
US20150032685A1 (en) Visualization and comparison of business intelligence reports
US10866831B2 (en) Distributed execution of data processing pipelines
JP5298616B2 (en) Information presenting apparatus, information presenting method, and information presenting program
US20190384615A1 (en) Containerized runtime environments
US20140096085A1 (en) Representing critical data fields of data table
JP2024516499A (en) Data visualization analytical canvas with functionally independent visual containers

Legal Events

Date Code Title Description
ZAAA Notice of allowance and fees due

Free format text: ORIGINAL CODE: NOA

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20231103