A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This specification has an Appendix A containing computer code provided on duplicate CD-R disks that have been “finalized” in accordance with 37 C.F.R. §1.52(e)(3)(i). Appendix A contains a HTML and Java language representation of an electronic document with links to scripts. Appendix A consists of a MS-Windows ASCII file “Appendix_A.txt” that is 43,000 bytes (43 kb) in size and was created on 29 Apr. 2010. This Appendix A is part of the disclosure of this invention.
1. Technical Field
The present invention relates to visualization technology supporting interactive navigation of complex data sets such as data sets organizing communications among peers in a network.
2. Description of Related Art
There are many discussion models on the web including social networks, email applications, instant messaging IM applications, and comment/reply type forums. However, group collaboration based on these technologies is cumbersome. As the volume of comments and replies grows in a given subject area, individuals have difficulty following the various threads that can be created.
Social networks are a place for users and groups to come together, share information, interact and make connections. However all social networks still employ out-of-date discussion technology that limits user interactions to one-on-one conversations, and often not even in real-time.
Within organizations, individuals waste countless hours because of the ineffective static means of communication with colleagues. Money is lost, along with diminished productivity. Relevant information is buried in data.
In the education field, more and more classes are conducted over the internet. However online classes are hosted with extremely static, email/forum technology. Active class discussion is almost impossible, and so student participation is low.
There are millions of articles and blogs on the web which can be enlivened by commenting systems. However current commenting systems are set up in such a way that individuals make one comment and never come back.
Many of the difficulties encountered in discussion models arise because of the complexity of the data in addition to the content that must be tracked to stay engaged with a broad conversation. For example, it is necessary to track the timing or freshness of comments, the source of comments, the context in which the comments are made, and links between comments.
Of course, complex data sets are not unique to discussion models. For complex data systems, tools that enable individuals to visualize relationships among the data have been developed. However, these visualization tools have not been effectively applied to the data sets generated within discussion models, or other data sets having similar character.
It is desirable therefore to provide data structures and visualization tools that can facilitate group oriented conversation, can be operated to maintain real-time interaction, and overall can improve communications among groups of users in a network environment.
A technology is described for visualization and navigation of complex data sets in support of interactive engagement by users which can result in changes of data in the data sets, and which is suitable for applications providing discussion platforms. Representations of the data are provided that map relationships among the data elements in order to establish usable links between the data elements, and provide easy to follow constructs for interacting with and navigating within the data sets.
The technology includes the method executed by a data processor. The method includes obtaining node-link data defining a node-link structure, for example by retrieving it from a server or another data source. The node-link structure includes at least an upper-level node, an intermediate-level node and a lower-level node, and links relating at least two of the nodes. At least the intermediate and lower-level nodes have a source parameter indicating a source of data in the node. On a discussion platform, an upper-level node may comprise a “topic” of a conversation, a publication or other item which may be of interest to a group of participants in the discussion platform. An intermediate-level node may comprise a “comment” related to the topic or the publication made by a specific participant or user of the discussion platform. A lower-level node may comprise a “reply” to a comment by a specific participant or user of the discussion platform.
The method includes using the node-link data to present a sequence of representations of the node-link structure on a display. The sequence of representations can be related such that sequence begins with a first representation and ends with a last representation, and the last representation is perceptible as a changed continuation of the first representation. Each representation in the sequence includes an upper-level node feature such as a wheel-like construct, which is perceptible on the display representing an upper-level node, one or more intermediate-level node features perceptible on the display representing respective intermediate nodes, and one or more lower-level node features perceptible on the display representing respective lower-level nodes. The upper-level node feature includes a rim. The one or more intermediate-level node features linked to the upper-level node have centers of area positioned on the display along the rim. Likewise, one or more lower-level node features are linked to corresponding intermediate-level node features and have centers of area positioned on the display along the rim. The lower-level node features and intermediate-level node features are positioned along the rim according to a source parameter, so that intermediate-level node features and lower-level node features representing nodes in the node-link structure having a particular source parameter are perceptible as a group positioned along the rim on the display.
At least one representation sequence can include at least one link feature perceptible on the display representing a link between a particular lower-level node and a particular intermediate-level node. The link feature has a proximal end positioned at one of: near the lower-level node feature representing a particular lower-level node, or near the group, if any, of which the lower-level node feature is a member. The link feature has a distal end positioned at one of: near the intermediate-level node feature representing the particular intermediate-level node, or near the group, if any, of which the intermediate-level node is a member.
The representations of the data set can be presented alone, or in combination with navigation tools. Users of the navigation tools can rely on the mapping presented by features on the representations of the data set to inform decisions about threads to follow as the user traverses the data set.
The method can include a navigation tool by providing with at least one representation in the sequence that includes the link feature, a pointer activated function associated with one or more of said intermediate-level node features and lower-level node features, which upon activation over a particular intermediate or lower-level node feature associated with the link feature, causes presentation of another representation sequence in which the link feature is changed highlighting the link represented by the link feature.
At least one representation in the sequence can include a group feature representing a group including a number N of intermediate-level node features and lower-level node features positioned on the rim, where the group feature is perceptible on the display as covering an arc along the rim indicative of the number N. The number N can be indicated by for example, representing the relative magnitude of N relative to the numbers of members in other groups represented on the rim. The method can include providing a pointer-activated function associated with the group feature, which upon activation over the group feature, causes presentation of another representation in the sequence in which the group feature is replaced by the number N of intermediate-level node features and lower-level node features grouped along the rim.
In embodiments described here, the node-link structure can include at least one additional level node having a source parameter, and being linked to a particular lower-level node. In such embodiments, at least one representation in the sequence includes an additional level node feature representing the additional level node, and having a center of area positioned on the display along the rim according to the source parameter, and perceptible as being a member of a group including one or more lower-level node feature and intermediate-level node feature, and positioned along the rim on the display.
The method can include providing, with at least one representation in the sequence, an interface for creating post requests by which updates to the node-link structure may be requested. In addition, method may include causing an update to the node-link structure in response to a post request created using the interface, and to cause presentation of another representation in the sequence including a feature corresponding to the update.
Also in embodiments described here, at least one representation in the sequence includes a graphical construct comprising a pane corresponding with the upper-level node, and fields within the pane corresponding with one or more of the intermediate-level nodes and lower-level nodes. The fields within the pane include representations of the contents, such as text, of the corresponding nodes, and facilitate interaction with a discussion platform for example or with other platforms used for interacting with a node-link structure in a manner that changes the contents of the node-link structure.
The method can include providing along with representations that include the graphical construct comprising a pane, a pointer activated function associated with one or more of said intermediate-level node features and lower-level node features on the representation. Such pointer activated function upon activation over a particular intermediate or lower-level node feature, causes presentation of another representation in said sequence, in which a feature of one of the fields within the pane is changed, such as to highlighting the field, where the changed one of the fields corresponds with the particular intermediate or lower-level node feature.
The method can include providing, with at least one representation in the sequence, a pointer activated function associated with the upper-level node feature, which upon activation causes presentation of another representation in the sequence including a graphical construct comprising a pane corresponding with the upper-level node represented by the upper-level node feature. The pane may include fields corresponding with one or more of the intermediate-level nodes and lower-level nodes linked to the corresponding upper-level node, with representations of the contents of the corresponding nodes.
A computer system is described that includes a data processor with memory and a communication interface, where the memory stores instructions are executable by the data processors that include logic in support of the method described above including electronic documents. The computer system can support a client-server system, where the server maintains the node-link structure and delivers electronic documents to the client in support of implementing the methods described here.
In embodiments of the technology, the electronic documents can include markup language instructions and embedded scripts of instructions executable by a computer, such as a computer executing an Internet browser. Embedded scripts in the electronic documents can be included by inserting links to the scripts, and by including some of all of the scripts themselves. The executable instructions in the electronic documents are adapted to implement the methods described here.
The technology described herein is particularly adaptable to provide an intuitive discussion model built to facilitate group oriented conversations within a user base.
The technology described herein, as applied to a discussion platform, can fill the niche in organizations where instant message and email fail, by improving communication with internal community and keeping instant real-time contact among multiple coworkers working on the same project, enabling seamless discussion of issues or topics within an organization in privacy.
The technology described herein, as applied to a discussion platform, can provide large organizations a capable discussion model to bring all their members together, and improve communication with external community.
The technology can be used to form outside focus groups with customers/website visitors to consider subjects of interest to an organization, such as the feasibility of a new product or service. The technology can provide a real-time classroom dynamic discussion model to conduct online classes, offering a place to continue class started discussions to promote discussions within the student body. The technology can provide a real-time discussion model to facilitate continued conversations sparked by these blogs and articles.
Other aspects and advantages of the present invention can be seen on review of the drawings, the detailed description and the claims, which follow.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
A detailed description of embodiments of the technology is provided with reference to the Figures.
User interface output devices 20 may include a display subsystem, a printer, a fax machine, and non-visual displays such as audio output devices. The display subsystem may include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, touch screen displays or some other mechanism for creating a visible image and supporting a graphical user interface.
Storage subsystem 24 stores the basic programs of instructions and data constructs that provide the functionality of some or all of the data structure visualization and interaction tools described herein, including the software modules including server applications (including web server applications), serialization and validation systems, accounting, authorization and authentication systems, caching frameworks, support for middleware applications, testing interfaces, communication drivers, database functions for storing and organizing node-link structures, website maintenance functions, software platforms (development tools, compilers, utilities, etc.) and programs based on such platforms. One system can be based on a Django/Python framework and Java-based technologies, including JSON and MySQL based data structures, Java scripts, Raphael objects, jQuery libraries, AJAX protocol drivers, a variety of supporting class libraries and so on. The storage subsystem 4 also stores electronic documents such as web pages expressed in markup languages like HTML, xHTML, XML and others for delivery to client browsers or other interface applications. The electronic documents can include embedded scripts, being embedded by providing links in the electronic document which are executed by a browser or other application that parses the electronic document, or by including the script within the electronic document. Additional functions can be provided, including for example, support for the OpenSocial API for an Internet based discussion platforms, email systems, instant messaging systems, and other user and machine interaction protocols.
Computer system 40 typically hosts client applications, and includes a processor (or processors) 46 which communicates with a number of peripheral devices via bus subsystem 47. The peripheral devices may include a memory 43, user interface input devices 45, user interface output devices including a display 48, and a network interface subsystem 44. The input and output devices allow user interaction with computer system 40, and include a graphical user interface displaying wheel-like constructs 49 acting as representations of the node-link structures stored in the server side system 10. Network interface subsystem 44 provides an interface to outside networks, including an interface to a wide area communication network WAN 18 in communication with the Internet, and is coupled via communication network 18 to corresponding network interface devices in additional client side computer systems. User interface input devices 245 may include a keyboard, a mouse, trackball, touchpad, or graphics tablet, a scanner, a touch screen incorporated into the display, audio input devices such as voice recognition systems, and other types of input devices which can be used as a pointer to select a position on an image shown in the display, and be used in activation of pointer activated functions. In general, use of the term “input device” is intended to include all possible types of devices and ways to input information into computer system 10 or onto communication network 18.
User interface output devices in addition to display 48, may include a printer, a fax machine, or non-visual displays such as audio output devices. The display 48 may include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, touch screen displays or some other mechanism for creating a visible image and supporting a graphical user interface usable by a designer.
Memory 43 stores user programs including conversation agents like Internet browsers, email clients, instant messaging clients, electronic documents such as web pages, and other programs complementing the server side programs. In systems based on Java scripts and other Java based technologies, the memory 43 stores programs establishing a Java virtual machine.
The embodiment illustrated here suggests that the server side system 10 includes data processing resources typical in large scale Internet servers and web site hosting systems. In alternative systems, the server side applications may be executed on a personal computing device or other processing platform. Also, server side processing resources may also include client side communication agents, allowing participation in the system by users or applications running in the server system 10. Also, the client computer systems can include smart phones and other similar platforms capable of executing a graphical user interface as described here.
The technology described herein can be applied for implementation of an Internet-based discussion platform, according to which a webpage is generated and delivered to clients enabling visualization at client devices of an ongoing discussion. The processing supporting the discussion platform can be distributed between the server side resources and the client side resources, where scripts provided to the client browser or native programs loaded in the client computer enable use of client side resources as needed.
The discussion platform comprises a database maintained in memory accessible by the server that includes posts by clients which can be related by node-link structures in the database including at least three levels as described in more detail below.
The discussion platform includes records in the database identifying users and “conversations.” The database maintains parameters associated with the users by which the system grants access to one or more conversations based on authentication and authority parameters. The database maintains information identifying conversations in which the users have signaled a desire or have been authorized to participate. Data supporting conversations can be maintained in the discussion platform according to a node-link structure such as is illustrated in a simplified form in
A discussion platform of the type represented in
A forum pane 101 is presented as a feature in the representation along with the wheel-like construct 100. The forum pane 101 need not be displayed in all representations including the wheel-like construct, and vice versa. The representation can be delivered in combination with hyperlinks, hover and click interaction scripts, and web form constructs (buttons, text entry fields, radio buttons, checkboxes, etc.) to facilitate interaction between a client and a server, and to support creation and submission of post requests by the users.
In the example shown, the forum pane 101 shows two conversations including open conversation 105 entitled “The Balloon Boy!”, with the topic level post (e.g. 102) in the conversation presented as a topic field including nested comments (e.g. 103, 104), nested comments presented in comment fields including nested replies (106). Nested replies can be presented in reply fields including nested sub-replies. Alternatively, sub-replies may be presented using representations similar to those used to represent a reply field, nested within a comment field.
The icons comprising colored dots on the wheel-like construct are examples of features representing corresponding posts. Other shapes may be used, including stars, squares, polygons, and so on. Individual users may be assigned individualized icons for use in representing posts made by them. As shown in
Arrows between the features representing posts in the region 58 can be used to show links between nodes or groups of nodes.
In the example in
Color is used visualize the connection between posts on the wheel-like construct and posts in the forum. The wheel/forum relationship is also shown through highlighting actions. When the user moves the mouse over a post on the wheel-like construct, the corresponding post is highlighted on the forum and vice versa. When clicking on a post on the wheel-like construct, the forum is scrolled to that post. Simple styling throughout can be applied to emphasize the pieces of information the user needs to see. On the forum, posts wrap around the child posts to represent the nesting. This helps the user to know how the posts are nested. Arrows on the wheel show the relationship between posts. This relationship can be non-linear and these arrows may show the connections between many items at the same time.
The wheel-like construct, with or without the forum pane, described herein can be used for a variety of types of node-link data other than the conversation type data described in this example. For another example, node-link data representing communications among applications like servers in a communication network performing a coordinated function suitable for representation in a node-link structure, could be represented in this way. Other types of data can be represented as described herein, where analytic relationships among nodes are highlighted in a manner that allows monitoring of activity represented by or relating to the data in the nodes, or allows for correlating data stored in nodes. For example, a node link structure can represent a catalog of products on an e-commerce system, results of searching, outputs of physical sensors, etc. The visualization and navigation tools clearly map out relationships of data and enable uses in visualizing trends in the data.
The following conceptual framework is helpful in understanding the broad scope of the invention, and the terms defined below have the indicated meanings throughout this application, including the claims.
An “image” is a pattern of physical light. An “image output device” is a device that can provide output defining an image. A “display” is an image output device that provides information in a visible form. A display may, for example, include a cathode ray tube; an array of light emitting, reflecting, or absorbing elements; a structure that presents marks on paper or another medium; or any other structure capable of defining an image in a visible form.
To “present an image” on a display is to operate the display so that a viewer can perceive the image.
When an image is a pattern of physical light in the visible portion of the electromagnetic spectrum, the image can produce human perceptions. The term “graphical feature,” or “feature,” refers to any human perception produced by, or that could be produced by, an image.
A “pointer” is a graphical feature that indicates a position within an image. A pointer is “at a position” when the pointer is indicating the position.
An image “shows” or “includes” a feature when the image produces, or could produce, a perception of the feature.
A “node-link structure” is a structure that includes items called nodes and links. Each link relates two or more of the nodes. Two nodes are “related through one link” or “related through a link” if the node-link structure includes a link that relates the two nodes. A link “relates a pair” of nodes if the link relates only two nodes.
A “graph” is a node-link structure in which each link relates two nodes. An “acyclic graph” is a graph in which there are no loops of edges. A “directed graph” is a graph in which each link indicates direction between the nodes it relates, with one node being a source of the link and the other being a destination. A “tree” is an acyclic directed graph with exactly one root node such that every other node in the tree can be reached by only one path that begins at the root node and follows each link in the path in its indicated direction.
A “branch” of a node-link structure is a set of nodes that forms a tree within the node-link structure if the links are treated as relating pairs of nodes and as indicating direction. A branch therefore includes two or more levels, with the “top level node” being the node that is the root node of the tree formed by the branch, and “lower-level nodes” being nodes at one or more levels of the tree below the top level node. Each lower-level node has a “parent node” at the next higher level to which the lower-level node is related through one link. A parent node has a set of “child nodes” at the next lower-level to each of which the parent node is related through one link. The child nodes of a parent “share” the parent node.
An item of data “defines” a node-link structure if the item of data includes information indicating how the links relate the nodes. For example, the item of data could include, for each link, an identifier of each of the nodes that it relates.
An item of data defining a node-link structure includes “content” if the item of data includes information about nodes or links other than information indicating how the links relate the nodes. For example, the item of data could include a name or other descriptive information for a node or for a link.
A graphical feature “represents” a node-link structure when the graphical feature itself includes features that map or correspond with a set of nodes and links in the node-link structure.
A feature that maps or corresponds to a node “represents” the node and a feature that maps or corresponds to a link “represents” the link. A “node feature” is a feature that represents a node, and a “link feature” is a feature that represents a link.
A “graphical representation” or “representation” is a graphical feature that includes elements that are spatially related in a configuration that represents information.
A “sequence of representations” is a sequence that includes at least two representations. A sequence of representations begins with a “first representation” and the first representation is followed by a “sequence of at least one following representation” that ends with a “last representation.” Each following representation follows a “preceding representation.”
A sequence of representations may also include one or more “intermediate representations” between the first and last representations. A sequence of representations may include a “subsequence of representations” that is also a sequence of representations as defined above.
A second display feature is perceptible as a “continuation” of a first display feature when presentation of the second display feature follows presentation of the first display feature in such a way that the user perceives the first display feature as being continued when the second display feature is presented. This can occur when the successive display of two display features is so close in time and space that they appear to be the same display feature. An example of this is the phenomenon called “object constancy.”
The last representation of a sequence of representations is perceptible as a “changed continuation” of the first representation when the last representation is perceptible as a continuation of the first representation but with at least one change. An intermediate representation is similarly perceptible as an “intermediate changed continuation” of the first representation when the intermediate representation is perceptible as a continuation of the first representation but with at least one change.
An “animation loop” is a repeated operation in which each repetition presents an image and in which features in each image appear to be continuations of features in the next preceding image. If a user is providing signals through user input circuitry, the signals can be queued as events and each loop can handle some events from the queue. An “animation cycle” is a single iteration of an animation loop.
The “detail” with which an image is presented is the quantity of information in the presented image. Information in an image can be increased by providing additional lines or objects, by providing arcs rather than straight lines, and so forth. A “level of detail” is a value indicating one of a set of quantities of information in an image.
Speed of presentation of images is “maintained” when a sequence of images is presented without a reduction in speed of presentation.
A sequence of images is presented at a sufficient speed that features in the images are perceptible as a “continuously moving feature” if the images can provide the perception of a single feature that moves, and may also evolve, rather than the perception of a sequence of distinct features presented in succession. Such a speed is sometimes referred to as an “animation speed.”
An operation includes a “sequence of iterations” when the operation includes a sequence of substantially similar sub-operations, each referred to as an “iteration,” where each iteration after the first uses starting data produced by the preceding iteration to obtain ending data. Each iteration's ending data can in turn be used by the following iteration.
An item of data “defines” a representation when the item defines an image that includes the representation. A representation “is presented” when an image that includes the representation is presented. Providing data to a display “causes” presentation of a representation or sequence of representations when the display responds to the data by presenting the representation or sequence of representations.
A “region” of a representation is a bounded area of the representation; for example, a single point is the smallest possible region of any representation. A representation “includes” a feature or a region if presentation of the representation can produce perception of the feature or region.
A “representation of a node-link structure” is a graphical representation that represents the node-link structure. In a representation of a node-link structure, for example, link features can be lines, such as arcs or straight lines, that extend between node features. A representation of a node-link structure may also include graphical features that “indicate” content, such as words or other strings of characters from which a viewer can obtain information about a represented part of the structure.
A representation of a node-link structure is “perceptible as a figure on a background” if the representation includes a feature, referred to as the “figure,” and the feature appears to be on or above a region that is not part of the figure, referred to as the “background.”
A “bounded-node feature” is a node feature that has a perceptible boundary. The “center of area” of a bounded-node feature is the center of area of the region within the node feature's boundary. The position of a bounded-node feature's center of area can therefore be computed from the node feature's boundary or estimated by viewing the representation.
The “nearest other node feature” of a first bounded-node feature in a representation is a second bounded-node feature whose center of area is spaced from the first node feature's center of area by a distance no greater than the spacing from the first node feature's center of area to any other bounded-node feature's center of area. A bounded-node feature may have more than one nearest other node feature, all with centers of area at the nearest node spacing. A bounded-node feature has a position and a node region around the position centered at the node feature's center of area. The node region around the position has an area assigned for display of a representation of the node on the display.
The “area of,” or the “area enclosed by,” a part of the representation is a measure of the part's two-dimensional extent.
Centers of area of node features in a representation are “positioned approximately along a line or along an arc” if a line or arc can be drawn within the representation such that each node feature's center of area is closer to the line than to an adjacent node feature's center of area.
Features whose centers of area are positioned approximately along a line or arc are perceptible as a group of related features, if the node features together appear to a viewer to be a group.
A Java-based implementation of a discussion platform having programs of instructions that can be applied to implement visualization tools and supporting tools is described here. As mentioned above, the technology can be implemented in a wide variety of platforms other than Java. In the implementation described here, the server maintains a discussion platform which includes in this example, a JSON database and an Open Social application program interface API to support the posting of topics, comments and replies as discussed above. Java scripts are included in markup language such as HTML, xHTML, XML and so on, for webpages served by the system. When a user accesses a webpage, an electronic document is retrieved from a computer readable medium such as memory in the storage subsystem in the computer system 10 of
This document includes a link to a library used by the scripts, and a link to a login javascript “tw_login.js” The document includes links by references within the referenced scripts, to a sequence of scripts used to produce a sequence of representations of the node-link data.
Upon login the user's browser executes the markup language and scripts to present a representation or a sequence of representations, of the node-link structure. Scripts support a login function and set up of variables, load libraries and so on. Also, scripts are provided to specify functions for opening and drawing the wheel-like construct, opening and drawing the forum construct, and managing user interactions and post interactions with the web page. During the process, an excerpt from the database is retrieved, using an AJAX protocol for example, from the server in a JSON format. Objects are created which correspond to nodes and links in the database, including a “circle object” used for characterizing the wheel-like construct representing a topic level node and user interface interaction with such features, a “post-object” used for characterizing features representing the posts for comment, reply and sub-reply level nodes, and user interface interactions with such features, and a “user object” for characterizing features representing the user and user interface interactions with such features. A Raphael JavaScript library can be used for rendering features of the wheel-like construct and of the forum construct.
After a login and set up operation, a set of functions is used to open and draw a wheel-like construct. An open wheel function sets default parameters for a representation of a wheel-like construct for a particular topic, creates a Raphael object to hold data characterizing the features to be displayed, and retrieves the JSON node data for the topic. The function is executed to draw the wheel, either as a standalone graphic construct, or in combination with the forum. In support of drawing the wheel, a “circle object” is created for the wheel along with an object set which encompasses all of the users participating in the discussion as represented by contents of the nodes and all the posts currently active in the discussion. The functions used to draw the wheel also operate to decide based on the number of posts how to arrange them around the rim of the wheel-like construct. In addition, scripts are provided to facilitate assigning coordinates on the wheel-like construct for features representing posts, features representing users and arrows linking posts, including translating between radial designations of location on the wheel-like construct, and Cartesian designations of location on a display.
Additional functions are provided to set a timer which invokes a reload operation, such as executing an AJAX protocol request to retrieve updated JSON data corresponding to the currently displayed topic. With updated data, functions used to draw the wheel can be re-executed, updating the positioning of features representing posts, users and links. This constitutes an animation loop that results in presentation of a sequence of representations of the node-link structure, where a last representation in the sequence is recognizable as a changed continuation of the first representation in the sequence.
A set of functions is also provided to open and draw the forum pane construct. A forum pane is created for each set of topics of which the user for the webpage is authorized to participate in. The forum pane can include a number of topics which constitute a “conversation.” The draw forum function draws a conversation pane, implements interface actions, and implements re-load actions. The function for drawing a conversation provides markup for creating a representation of a conversation header, and based on permissions associated with the user, and adds web form buttons or other web form constructs to the conversation header. Then, within the conversation, a function is executed to draw topics to be nested within the conversation. The topic is drawn by adding markup for creating a representation of the topic within the conversation pane. Also, a function is provided for drawing comments within a linked topic, which includes adding markup for creating a representation of a comment within the linked topic. An additional function is provided for drawing replies within a linked comment, by adding markup for creating a representation of the replies. Associated with the markup for creating representations of the forum elements, the scripts for hover/unhover events and click events, associated with the representations of the conversation, topics, comments and replies are added. Functions associated with click-type events can include collapse and expand for topic, comment and reply fields, draw the wheel-like construct associated with an expanded selection for a topic, providing input and requesting posts based on the input for topics, comments, replies and sub-replies, along with other interactions suitable for the particular conversation engine being implemented, including invitation posts, join posts, and so on.
Additional functions can be added to support user submissions of requests for posts or other information to the server. In association with a reply/submit button displayed on the screen, a function can be run to send a request to the server to post a reply submission, along with a function associated with redrawing the page based on the new post. Likewise, reply/cancel buttons can be associated with functions that close input fields. Comment/submit buttons can be associated with functions which send a post request to the server to post a comment submission and rerun the functions that draw the wheel. Topic/submit buttons can be associated with functions that send a post request for creation of a new topic at the server.
A representative circle object can be characterized as follows:
A representative post-object can be characterized as follows:
A representative user object can be characterized as follows:
A representative JSON object can be characterized as follows:
A example of scripts accessed by links from the electronic document described above, and used for rendering the wheel-like construct used to represent an upper level node in the illustrated embodiment, including a “Talkwheel.secondary.js” is set forth in the COMPUTER PROGRAM LISTING APPENDIX, which shows one technology for implementing the electronic document with links to scripts as referred to above.
In alternative implementations, functions supporting the creation of representations of the wheel-like construct and the forum construct can reside at the server, and results of execution of such functions delivered to the clients in graphic format supported by web form and hyperlink structures to invoke data entry and submission, hover-type and click-type interactions. Other distributions between the server and clients of the processing logic can be implemented in a network environment as suits the particular implementation. Also, functions can be executed using native operating system programs executed at the client, rather than virtual machine type programs like these Java-based implementations.
The process checks for new posts or interface actions created by user input (156). If the process detects an interface action (157), then data structure on the local machine is updated and the algorithm returns to the function for drawing the wheel (154). If a new post is detected (158), then the function returns to step 153, and makes a call to the server to update the data structure, and draws an updated representation of the data structure. As a result of this animation loop, a sequence of representations including the wheel-like construct is created. The animation loop can be executed in manner that obtains changes to the node link data on short intervals of time, such as on the order of one or a few seconds, and creates new representations in the sequence which reflect in changes in the node-link data at a speed that can be characterized as “real time” from the point of view of a person viewing the sequence of representations. As a result, after presenting at least one representation in the sequence, a change in the node-link data is obtained, and a representation is produced in the sequence made by the animation loop that includes at least one of: an additional lower-level node feature positioned along the rim, and an additional intermediate-level node feature positioned along the rim and representing the change in the node-link data. The animation loop produces a sequence of representations on the display, which begins with a first representation and ends with a last representation, the last representation being perceptible as a changed continuation of the first representation.
Technology is provided presenting a non-linear interface for interacting with complex data structures. As applied to a discussion platform, the technology captures group dynamics online. Representations of the node-link structure divided display multiple variables in one diagram including time. Updates of the representations of the node-link structure can be executed in real-time. Features on the representations can be supplemented with pointer activated functions that relate elements to one another. Color relationships can be used as well to illustrate relationships among features of the display. The arrangements provided enable a user to filter cluster data in a way that highlights the most relevant information.
The upper-level node feature described herein as a wheel-like construct, can be implemented so that it expands and grows to show tangential information. Arrows can be used to show relationships between items on the display. Arrow shading, density, and line weight can vary to show relevance. For example, darker color is utilized to indicate a higher degree of relevance, or a color can be changed to categorize relationships on the screen. The representations of the node-link structure can be used to show the history of a updates to the structure, such as the history of a discussion on discussion platform.
Visualization and interaction tools described here can be used for group discussions, analytics, monitoring, correlating data, clearly mapping relationships among data, visualizing trends, facilitating online classes, electronic learning, online dating, electronic commerce, organizing search results, organizing the outputs of physical sensors, and other processes for navigating information.
While the present invention is disclosed by reference to the preferred embodiments and examples detailed above, it is to be understood that these examples are intended in an illustrative rather than in a limiting sense. It is contemplated that modifications and combinations will readily occur to those skilled in the art, which modifications and combinations will be within the spirit of the invention and the scope of the following claims.