The invention relates to systems and methods for storing, maintaining and providing access to information.
The way in which information is stored and organized has historically been central to the way that individuals, organizations, and whole societies work and think. Written language, the printing press, vertical filing cabinets, personal computers, and the internet have all had an enormous impact on the ability to store and retrieve increasingly large amounts of information efficiently. Nevertheless, most if not all widely used methods and apparatus for electronically storing and organizing information (e.g. computers, processor-based systems and the like) are based on principles and user interfaces derived from earlier and more restrictive techniques, such as hierarchical folders, desktops, etc.
Most systems with accessible memory make use of an inherently hierarchical structure for maintaining, organizing and providing access to information. Examples of hierarchical structures include conventional file systems used by computer operating systems (including Windows™, Mac OS™ and Unix™), by e-mail systems, by electronic address books, and in the bookmark collections maintained by web-browsers.
In many cases, a strictly hierarchical structure is overly restrictive. Consequently, some modern file systems extend the hierarchical structure by supporting cross-links between different parts of an underlying hierarchical structure. For example, “shortcuts” in the Windows™ operating system may be placed on the “desktop” folder to access files in other folders. However, extensively cross-linked file systems can be difficult to maintain and inefficient (in terms of memory usage). As a result, many users utilize cross-linking features only sporadically, if at all.
Users may become frustrated, because they cannot efficiently access information which they know exists within their system in a simple and natural way and because maintaining and/or organizing information is an increasingly complex and time-consuming task. While search engines and tools that scan whole file systems or e-mail archives for a given piece of information offer some remedy, these tools can be difficult to use and do not have the capacity to concentrate the search based on recently accessed or frequently accessed portions of the file system.
Given the increasing data storage capacities of modern computers, computer networks and other systems with access to memory, together with the increasing volume of electronic information, there is a need for efficient systems to provide storage, organization and/or access to information.
In drawings which show non-limiting embodiments of the invention:
Throughout the following description, specific details are set forth in order to provide a more thorough understanding of the invention. However, the invention may be practiced without these particulars. In other instances, well known elements have not been shown or described in detail to avoid unnecessarily obscuring the invention. Accordingly, the specification and drawings are to be regarded in an illustrative, rather than a restrictive, sense.
Aspects of the invention provides methods and systems for storing, maintaining and providing access to information and for carrying out the inventive methods for storing, maintaining and providing access to information. Particular embodiments, of the invention provide systems and methods for organizing a plurality of accessible information items. Such systems and methods establishing a plurality of nodes and a plurality of links. Each node corresponds to one of the information items and each node has an associated node strength. Each link represents a connection between a corresponding pair of nodes. A user may select a first node from among the plurality of nodes to be a currently-selected node. In response to selection of the first node as the currently-selected node, the node strength of the first node is increased.
In some embodiments, the systems and methods of the invention maintain a high-node-strength list of some of the nodes from among the plurality of nodes. The high-node-strength list is ordered by node strength. When the node strength of the first node is increased, it may move toward the top of the high-node-strength list. Indicia representing the information items corresponding to the nodes on the high-node-strength list may be displayed on a user interface such that a user can identify the information items from the display indicia. A user can then access desired information item(s) corresponding to particular node(s) on the high-node-strength list by selecting the displayed indicia corresponding to the desired information item(s) and providing an indication that access is requested.
in response to selection of the first node as the currently-selected node, activation may be propagated from the first node to one or more second nodes over one or more links connecting the first node to the one or more second nodes. In response to receiving the activation at the one or more second nodes, the node strengths of the one or more second nodes may also be increased. In response to increasing the node strength of the one or more second nodes, the one or more second nodes may be moved toward the top of the high-node-strength list. The links may also be provided with corresponding link strengths. The amount of activation propagated from the first node to a particular one of second nodes and the increase in node strength of each of the particular one of second nodes may depend on the link strength of the links connecting the first node to the second node. The link strengths may also be increased in response to propagation of activation over the link.
System 12 may be a stand-alone unit or may itself be a part of an external communication network (not shown), such as a local area communication network (LAN) or the internet, for example. External data storage 18B may be directly accessible by system 12 or may be accessible through such an external communication network. Software 16 may be executed by data processor 14 and may control how data processor 14 (and any other components of system 12) access data storage 18.
Data storage 18 is schematically depicted in
Within the context of data storage 18, information items 17 may be disorganized or organized in an inconvenient manner. By way of non-limiting example, information items 17 may be stored in different directories or “folders”, information items 17 may be stored on different data storage units (e.g. an optical disc drive and a magnetic hard drive), and information items 17 may be stored in local data storage 18A and remote data storage 18B. In accordance with a particular embodiment of the invention shown in
Network 10 may be tangibly embodied as a plurality of related data entities which may be maintained and dynamically updated by system 12. Network 10 may be implemented in software or hardware or a combination of software and hardware. In specific embodiments, the data entities of network 10 may take the form of data structures. As described below, network 10 assists system 12 (and users of system 12) to manage information items 17 contained in data storage 18. Users interact with network 10, and network 10 interacts with users, via user interface 15. For ease of explanation, network 10 may be conceptualized as a plurality of nodes A-H and links wAB, wBC . . . discussed herein.
As explained in more detail below, nodes A-H may be assigned node strengths which may be used by system 12 and/or software 16 to organize and/or display indicia of information items 17 according to the node strengths of their corresponding nodes. For example, system 12 may display a list containing indicia of information items 17 corresponding to nodes A-H (or a subset of nodes A-H). This list may be sorted by node strength to allow a user to directly select node(s) or access information item(s) 17 corresponding to node(s) having relatively high node strength(s). Lists of nodes may be displayed, selected or have their corresponding information items 17 accessed based on their node strengths or based on other criteria as explained in more detail below.
The node strength of nodes A-H may be dynamically updated. If a user selects a node (e.g. node B) and/or accesses an information item (e.g. information item 17B) corresponding to a particular node, then system 12 and/or software 16 may increase the node strength of the particular node selected/accessed by the user and may propagate activation to related nodes (e.g. nodes A, C, G and H) via links (e.g. wAB, wBC, wBH, wBG) which connect the selected/accessed node to related nodes. Such propagated activation may cause system 12 and/or software 16 to increase the node strengths of the nodes which are related to the node selected/accessed by the user (e.g. increasing the node strengths of nodes A, C, G and H). The organization and/or display of various indicia of information items 17 according to the node strength of their corresponding nodes may also be dynamically updated to reflect the changes in node strengths of the selected/accessed node (e.g. node B) and the related nodes (e.g. nodes A, C, G and H) connected to node B via links. The increase in link strength of these nodes may make them more prominent to a user. For example, in the case where system 12 displays a list containing indicia identifying specific information items 17 corresponding to nodes A-H (or a subset of nodes A-H), this list may be resorted to reflect the increase in node strengths of node B and related nodes A, C, G and H.
In the embodiment of
The concept of pointers is well understood by software engineers. Pointers may point to information items 17 that reside in internal data storage 18A, to information items 17 that reside in external data storage 18B and/or to information items 17 that reside in part in internal data storage 18A and in part in external data storage 18B. In the case where pointers point to information that resides in external data storage 18B, such external data storage may be accessed via the internet or some other communication network.
In the
In other embodiments, data structures 300 corresponding to content nodes A-E and data structures 320 corresponding to property nodes F-H may contain additional fields. Such additional fields may relate to other properties of information items 17, for example.
Links wAB, wBC . . . of network 10 represent relevance relationships between the respective nodes connected by the links. By way of non-limiting example, network 10 may comprise a link between two content nodes that are similar to one another and/or link(s) between a property node one or more content nodes which exhibit that property. Links wAB, wBC . . . of network 10 may also be implemented by system 12 and/or software 16 as data structures.
Links wAB, wBC . . . of network 10 may be automatically created by system 12 and/or software 16. Links wAB, wBC . . . of network 10 may also be created by users. The creation of links wAB, wAC, . . . may be based on the similarity of properties of the information items 17 represented by the corresponding content nodes A-E, based on a node exhibiting the property of a property node F-H and/or based on information relating to usage of nodes A-H. For example,
The creation of links wAB, wAC, . . . based on the similarity of properties of the information items 17 represented by the corresponding content nodes A-E may be performed by analyzing and comparing the information items 17 represented by content nodes A-E or by analyzing and comparing properties of the information represented by content nodes A-E (e.g. metadata associated with information items 17). The creation of links wAB, wAC, . . . based on a node exhibiting the property of a property node F-H may be also be performed by analyzing the information items 17 represented by content nodes A-E or by analyzing properties of the information items 17 represented by content nodes A-E.
Links between nodes may also be created on the basis of usage. System 12 and/or software 16 may observe a relationship between the usage of two nodes A and D and may automatically create link wAD (
In accordance with particular embodiments of the invention, a node strength is assigned to each of the nodes A-H in network 10 (see node strength fields 304 and 324 of data structures 300, 320). The node strengths of various nodes A-H of network 10 may conveniently be represented by numerical values and may be dynamically updated (as explained in more detail below). In some embodiments, the node strength of a particular content node depends on an amount that the information item 17 corresponding to the content node has been accessed/selected and/or to a recency of access to/selection of the information item 17 represented by the content node.
Accordingly, a content node with a relatively high node strength may be considered by system 12 and/or software 16 to be more heavily or recently accessed/selected, while a node with a relatively low node strength may be considered by system 12 and/or software 16 to be less heavily accessed/selected or less recently accessed/selected.
A link strength may also optionally be assigned to each link wAB, wAC . . . in network 10 (see the link strength field 346 of data structure 340). Link strengths may be conveniently represented as numerical values and may be dynamically updated (as explained in more detail below). In some embodiments, the strengths of particular links wAB, wAC, . . . in network 10 which connect content nodes depend on the degree of similarity between their corresponding content nodes. Accordingly, a link with a relatively high strength may be considered by system 12 and/or software 16 to connect content nodes that are relatively similar, while a link with a relatively low strength may be considered by system 12 and/or software 16 to connect content nodes that are relatively dissimilar. In other embodiments, the link strength of a particular link connecting a pair of nodes depends on an abstract degree of relationship between the nodes. In some embodiments, the link strength of a particular link connecting content nodes depends additionally or alternatively on an amount that the information items 17 represented by its corresponding content nodes have been accessed/selected and/or to a recency of access to/selection of the information items 17 represented by its corresponding nodes. Accordingly, a link with a relatively high link strength may be considered by system 12 and/or software 16 to link nodes which have been more heavily or recently accessed/selected, while a link with a relatively low link strength may be considered by system 12 and/or software 16 to link nodes which have been less heavily accessed/selected or less recently accessed/selected.
In accordance with method 25, node n may receive direct activation 20 in discrete interval t. Direct activation 20 may come from an external source, such as a user, system 12 or software 16 accessing the information item 17 represented by node n or selecting node n to be a “currently-selected node”. Selection of node n to be the currently-selected node does not necessarily require access to an information item 17 represented by node n. In this manner, a user may provide direct activation 20 to node n by interacting with user interface 15 in such a manner that node n becomes the currently-selected node. In addition, a user can cause a property node to become the currently-selected node. System 12, software 16 and/or a user may additionally or alternative make a decision to provide node n with direct activation via other means.
As shown in
As shown at block 23 of
In some embodiments, the amount of activation propagated by node n to a directly neighboring node n′ over link wnn′ in block 23 may be determined as follows. If node n receives an amount of direct activation p(n), then the amount of indirect activation λprop(n, n′) propagated from node n to a neighboring node n′ may be given by:
where Ω:(0,1) is a propagation decay factor; assoc(n,n′) is the link strength of the link wnn′; and the summation in the denominator is the sum of the link strengths over all of the links connected to node n. If node n receives an amount of indirect activation λrx(n, n*) from a neighboring node n* over link wnn*, then the amount of indirect activation λprop(n, n′) propagated from node n to a neighboring node n′ may be given by:
These equations show how the sum of the activation propagated from node n to all of its neighboring nodes will be less than the total activation received by node n by an amount determined by a propagation decay factor Ω. The equation for propagation of indirect activation received by node n also adds a constraint that indirect activation is not propagated back towards the node that it came from. For example, if node n receives an amount of indirect activation λrx(n, n*) from a neighboring node n* over link wnn*, then the amount of activation propagated back to node n* is zero.
Block 23 may also involve a thresholding process which may be used to cutoff the propagation of activation. In some embodiments, an amount of activation (direct activation or indirect activation) received at node n is compared to a propagation cutoff threshold. Activation is only propagated from node n if the amount of activation received at node n is above the propagation cutoff threshold. In other embodiments, prior to propagating activation along the links connected to node n, the amount of activation proposed to be propagated on each link may be compared to a propagation cutoff threshold. Propagation along a particular link may then occur only if the amount of activation proposed to be propagated on that particular link is greater than the propagation cutoff threshold. In still other embodiments, the thresholding process may involve comparing the link strength of each link to a propagation cutoff threshold whereby propagation may then occur along a particular link only if the link strength of the particular link is above the propagation cutoff threshold. These propagation cutoff thresholding processes may be used in addition or as alternatives to one another.
The propagation of activation in block 23 may be a recursive process because node n may receive activation direct activation 20 and/or indirect activation 21 multiple times in the discrete interval t. The recursive looping of activation propagation may occur at node n and the other nodes of network 10 until the propagation is cutoff by a propagation cutoff thresholding process which may cutoff the propagation of activation at node n or at one of the other nodes of network 10. In the illustrated embodiment, the node strength updates performed in block 26 and discussed below preferably occur at the conclusion of the recursive loops of the block 23 activation propagation.
The node strength of node n is updated at block 26. In the illustrated embodiment, block 26 involves: decreasing the node strength of node n in block 22 in response to the passage of a discrete interval t (which, as discussed above, may involve the passage of time and/or events); and increasing the node strength of node n in block 24 in response to the receipt of activation (i.e. direct activation 20 and/or indirect activation 21) at node n during discrete interval t.
In block 22, the node strength of a node n may be caused to decay by a small amount in each discrete interval t. In some embodiments, the block 22 node strength decay occurs for each node A-H in network 10 every discrete interval t. In other embodiments, the block 22 node strength decay only occurs for nodes which do not receive any direct activation 20 or indirect activation 21 during the discrete interval t. In general, the block 22 node strength decay involves a reduction of the node strength for node n.
Preferably, the block 22 node strength decay does not decrease the node strength of a particular node below a “baseline” node strength. If, it is determined in block 22, that the node strength decay would bring the node strength of node n below its baseline level, then the node strength of node n may be restored to its baseline level. In some embodiments, the block 22 node strength decay is only performed for nodes that are known to have nodes strengths above their baseline levels (i.e. the block 22 node strength decay procedure need not be carried out for nodes which are already at their baseline node strengths). The baseline node strength of a given node may be a constant parameter or a variable parameter. The baseline node strength of a given node may be determined manually (e.g. by user input) or automatically (e.g. by system 12 and/or software 16 which may assign a baseline node strength depending on frequency of access or recency of access to the node, for example).
In some embodiments, the block 22 node strength decay may cause the node strength of node n to decrease in accordance with the function:
w*(n,t):=δ(w(n,t)),
where: δ:[0, 1]→[0, 1]; w(n, t) is the node strength of node n during interval t prior to the block 22 decay; and w*(n, t) is the node strength of node n during interval t after the block 22 decay (but prior to any block 24 increase—discussed below). In one non-limiting example, δ may be given by δ(α):=a·2−1/h
Block 24 involves increasing the node strength in response to the receipt of direct activation 20 and indirect activation 21 at node n during the discrete interval t. In general, block 24 involves increasing the node strength of node n, if node n receives direct activation 20 or indirect activation 21. The output node strength of node n after the block 24 node strength increase may depend on the amount of direct activation 20 and indirect activation 21 received by node n. The output node strength of node n after the block 24 node strength increase may be positively correlated with the amount of received activation. In some embodiments, this correlation is a non-linear correlation.
In some embodiments, if node n receives a certain total amount of activation a (including direct activation 20 and indirect activation 21) within a discrete interval t, the node strength of node n may be increased in block 22 in accordance with the equation:
w(n,t+1):=σ(w*(n,t)+α),
where: σ:→[0, 1]; w*(n, t) is the node strength of node n in interval t after output of the block 22 node strength decay; and w(n, t+1) is the node strength of node n in the next interval t+1. In one particular non-limiting example, σ may be given by σ(α):=1−exp[−a2/(2(ew)2)], where ewε
+ is a parameter that determines the relationship between total received activation α in a discrete interval t and the corresponding change in the node strength between the interval t and the interval t+1.
In some embodiments, the output node strength of node n after the block 24 node strength increase is an independent function of the direct activation 20 received and the indirect activation 21 received. In such embodiments, the responsiveness of the function σ causing the block 24 increase in node strength may be differently weighted for direct activation 20 than for indirect activation 21.
In the
In accordance with method 65 of
The link strength of link wnn′ is updated at block 66. In the illustrated embodiment, block 66 involves: decreasing the link strength of link wnn′ in block 62 in response to the passage of a discrete interval t (which, as discussed above, may involve the passage of time and/or events); and increasing the link strength of link wnn′ in block 64 in response to the receipt of activation (i.e. direct activation 60 and/or propagated activation 61) during discrete interval t.
In block 62, the link strength of a link wnn′ may be caused to decay by a small amount in each discrete interval t. In some embodiments, the block 62 link strength decay occurs for each link wAB, wAC, . . . in network 10 every discrete interval t. In other embodiments, the block 62 link strength decay only occurs for links which do not receive any direct activation 60 or propagated activation 61 during the discrete interval t. In general, the block 62 link strength decay involves a reduction of the link strength for link wnn′.
Preferably, the block 62 link strength decay does not decrease the link strength of a particular link below a “baseline” link strength. If, it is determined in block 62, that the link strength decay would bring the link strength of link wnn′ below its baseline level, then the link strength of link wnn′ may be restored to its baseline level. In some embodiments, the block 62 link strength decay occurs only for links that are known to have link strengths greater than their baseline levels (i.e. the block 62 link strength decay procedure need not be carried out for links which are already at their baseline link strengths). The baseline link strength of a given link may be a constant parameter or a variable parameter. The baseline link strength of a given link may be determined manually (e.g. by user input) or automatically (e.g. by software 16 which may assign a baseline link strength depending on a similarity of the information represented by the corresponding nodes, for example).
In some embodiments, the link strength of a link w, connecting nodes n, n′ may decay according to a function:
assoc*(n,n′,t):=δ(assoc(n,n′,t)),
where: δ: [0, 1]→[0, 1]; assoc(n, n′, t) is a link strength of the link connecting nodes n and n′ in interval t prior to the block 62 decay; and assoc*(n, n′, t) is the link strength of the link connecting nodes n and n′ in interval t after the block 62 decay (but prior to the block 64 link strength increase discussed below). In one particular non-limiting example, δ may be given by δ(s):=s·2−1/h
Block 64 involves increasing the link strength in response to the receipt of direct activation 60 and propagated activation 61 for link wnn′ during the discrete interval t. In general, block 64 involves increasing the link strength of link wnn′ if link wnn′ receives direct activation 60 or propagated activation 61. The output link strength after the block 64 link strength increase may depend on the amount of direct activation 60 and propagated activation 61 received by link wnn′ during the interval t. The output link strength after the block 64 link strength increase may be positively correlated with the amount of received activation. In some embodiments, this correlation is a non-linear correlation.
In some embodiments, if link wnn′ receives an amount α of activation (including direct activation 60 and indirect activation 61) in the discrete interval t, the link strength of link wnn′ may be updated according to the following function:
assoc(n,n,t+1):=ρ(assoc*(n,n′,t),α)
where: ρ: [0, 1]×→[0, 1]; assoc*(n, n′, t) is the link strength of link wnn′ in interval t after output of the block 62 node strength decay; and assoc(n, n′, t+1) is the link strength of link wnn′ in the next interval t+1. In one particular non-limiting example, ρ may be given by ρ(s, α):=1−exp[−(s+α)2/(2(e)2)], where eαε
+ is a parameter that determines the relationship between the total received activation a in the interval t and the corresponding change in link strength between the interval t and the interval t+1.
In some embodiments, if a link wnn′ receives a certain amount of direct activation 60 and a certain amount of propagated activation 61 in the discrete interval t, then the output link strength after the block 64 link strength increase is an independent function of the direct activation 60 received and the propagated activation 61 received. In such embodiments, the function causing link strength increase may be differently weighted for direct activation 60 received and propagated activation 61 received by link wnn′.
In the schematic illustrations of
In
At the conclusion of the interval [t, t+1), the node strengths and the link strengths of network 10 are updated and network 10 enters the state shown in
In the illustrated embodiment, the increase in node strength of node H is greater than the corresponding increases in node strengths of nodes A, B, C, G. This relative difference in node strength increase may occur because the direct activation received by node H is greater than the indirect activation propagated from node H to nodes A, B, C, G. The amount of direct activation received at node H may be greater than the amount of indirect activation that is propagated from node H to node B over link wBH. This difference in activation received by node H and propagated from node H may be related to a propagation decay factor Ω (discussed above). Similarly, the amount of indirect activation received at node B may be less than the amount of indirect activation propagated from node B to nodes A, C, G over links wAB, wCB, wGB.
The relative difference in node strength increase (i.e. between the interval [t, t+1) and the interval [t+1, t+2)) for nodes H and nodes A, B, C, G may have additionally or alternatively occurred because the function for causing an increase in node strength in response to received activation is weighted in favor of direct activation over indirect activation.
In the example of
Similarly,
In the example of
In the embodiment described in
Nodes (and the information represented by nodes) may be added to network 10 or deleted from network 10. The addition or deletion of nodes may occur manually (e.g. because system 12 and/or software 16 is instructed by a user to add a node) or automatically (e.g. because system 12 and/or software 16 recognizes that a node should be added to network 10). Nodes may be added (or deleted) from network 10 individually or in groups containing a plurality of nodes. Such groups of nodes may be selected manually or automatically.
When new nodes are added to network 10, new links connecting the new nodes to one another and/or to the previously existing nodes in network 10 may be created by a user or may be created automatically by system 12 and/or software 16.
For example, software 16 may create links between nodes based on: the similarity of the information items 17 represented by the nodes; the similarity of one or more properties of the information items 17 represented by the nodes; and/or usage of the information items 17 represented by the nodes, as discussed above.
Link strengths may be assigned to the links associated with newly added nodes. The assignment of link strengths to the links associated with newly added nodes may be done manually (by a user) or automatically (by system 12 and/or software 16). For example, software 16 may assign link strengths based on the similarity of one or more properties of the information items 17 represented by the corresponding nodes and/or usage of the information items 17 represented by the nodes. The creation of links between nodes and the assignment of link strengths to nodes may be performed by calculating vector distances between nodes or other similarity-determining processes in a manner similar to the similarity-determining processes described in the PCT patent application entitled, PROBABILISTIC AUDIO NETWORKS, which is filed concurrently with this application and which is hereby incorporated by reference herein.
In addition to creating and/or maintaining a network 10 of nodes and links, system 12 and/or software 16 may create and/or maintain additional data structures which may be used to help organize the nodes and links of network 10. Such data structures may take the form of lists or databases or the like.
Similarly, link list 362 organizes the links of network 10.
System 12 and/or software 16 may also create and maintain one or more lists based on characteristics or properties of the information items 17 represented by the nodes of network 10. In the
In some embodiments, system 12 and/or software 16 create and maintains one or more dynamic lists. In the
Another example of a dynamic list which may be created and/or maintained by system 12 and/or software 16 is a high-link-strength list 368 (
Another example of a dynamic list which may be created and/or maintained by system 12 and/or software 16 is a connected-node list 370 (
Other types of lists (not shown in
System 12 and/or software 16 may use the lists 362, 364, 366, 368, 370 shown in
Through user interface 15, a user may cause one of the nodes on the displayed list to be the currently-selected node and to receive direct activation as discussed above. This may be accomplished, for example, by selecting the indicia that identifies the information item 17 corresponding to the node and providing some indication that increased activation is requested for that indicia. A user may also access an information item 17 corresponding to one of the nodes on the displayed list by selecting the indicia that identifies the information item 17 and providing some indication that access to the information item is required. In general, as used herein, “accessing” an information item 17 should be considered to include any manner of using the data contained in information item 17. By way of non-limiting example, accessing an information item 17 comprising a document includes opening the document and accessing an information item 17 comprising media content includes playing back the media content. Accessing an information item 17 may (but need not necessarily) involve providing direct activation to the node corresponding to the information item 17.
In the
A user may select a node from high-node-strength list 366 to be the currently-selected node 244 by selecting the indicia corresponding to an information item 17 whose node is on high-node-strength list 366 and providing some indication that activation is desired. Selecting a node to be the currently-selected node 244 may (but need not necessarily) involve accessing the information item 17 corresponding the currently-selected node 244. For example, if the information item 17 corresponding to the currently-selected node 244 represents a file, then selecting the currently-selected node 244 may (but need not necessarily) involve opening the file. Similarly, a user may access the information items 17 represented by the nodes on high-node-strength list 366 by selecting the indicia corresponding to an information item 17 whose node is on high-node-strength list 366 and providing some indication that access to the information item 17 is desired. For example, a user may open a file by selecting the indicia corresponding to the file from the high-node-strength list and providing some indication that the file should be opened (e.g. by left clicking a mouse and choosing an option call “open”). Accessing the information item 17 corresponding to a particular node may (but need not necessarily) involve selecting that node to be the currently-selected node (i.e. providing activation to the node). Preferably, as shown in
Other changes in high-node-strength list 366 include: the downward movement of node H; the introduction of node E to list 366; and the removal of node D from list 366. The downward movement of node H within list 366 may have occurred because node H is two links away from node G and therefore does not receive as much indirect activation as nodes A and B and/or because the link strength of link wBG is relatively low. Node E may have been added to list 366 because it received enough indirect activation from node G to get over the threshold required to be included on high-node-strength list 366. Node D may have been removed from high-node-strength list because the decay of its node strength was greater than the increase in node-strength caused by the indirect activation that it received from node G and, consequently, it fell below the node strength threshold required for inclusion on list 366.
Other criteria may be used to refine the high-node-strength list 366 displayed on user interface 15. In some embodiments, a user may provide system 12 and/or software 12 with a query that limits the type of nodes displayed on user interface 15. Such a query may relate to the properties of the information items 17 represented by the nodes in network 10. These properties may be contained in the various fields of the data structures 300, 320 corresponding to the nodes in network 10. By way of non-limiting example, a user may input a keyword query to system 12. The high-node-strength list 366 displayed on user interface 15 may then only list nodes which have the keyword query in their keyword fields 308, 328. It should be noted that such a query need not necessarily alter the contents of high-node-list 366, but may only influence which of the nodes in high-node-strength list 366 are displayed on user interface 15. Another non-limiting example of a query that could be used in this manner is a recently accessed query, where the nodes on high-node-strength list 366 would only be displayed on user interface 15 if they had been accessed within the queried interval.
The properties of the information items 17 corresponding to the nodes in network 10 may additionally or alternatively be used to influence the high-node-strength list 366 by forming the basis for providing direct activation to certain nodes and thereby moving the nodes exhibiting such properties toward the top of high-node-strength list 366. For example, a user may input one or more keyword(s) on user interface 15. System 12 and/or software 16 could use such keyword(s) to provide direct activation to all nodes having the keyword(s) in their corresponding keyword fields 308, 328. Providing this direct activation would tend to move the nodes having the keyword(s) in their corresponding keyword fields 308, 328 toward the top of high-node-strength list 366 that is displayed on user interface 15.
Property nodes may also be used for a similar purpose. In one embodiment, a user may select a property node that is listed on high-node-strength list 366 or otherwise shown on user interface 15 to be the currently-selected node (or through some other means of selection). Selection of a content node may introduce direct activation to the property node, which is then propagated to all of the nodes exhibiting that property. The nodes exhibiting that property may be the nodes from field 326 of the property node data structure (see
In some embodiments, the high-node-strength list 366 displayed on user interface 15 may be configured to display only content nodes or only property nodes. In some embodiments, property nodes may be displayed on a separate list or the like which may be used for selection of property nodes.
The display and use of high-node-strength list 366 on user interface 15 shown in
While the above techniques describe methods of using lists 360, 362, 364, 366, 368, 370 for displaying certain aspects of nodes and allowing users to select a node to be the currently-selected node, such techniques are not exclusive. In some embodiments, a user may navigate from any currently-selected node to any other node in network 10 and may select that other node to be the new currently-selected node regardless of node strength, link strength or the presence of common keywords or links between the currently-selected node and the new currently-selected node.
Preferably, a user provides system 12 and/or software 16 with an indication of whether navigation through nodes (or otherwise selecting nodes or accessing the information items 17 corresponding to nodes) should alter the node strengths of the selected/accessed nodes and cause corresponding propagation of activation through links to neighboring nodes as described above or whether navigation through nodes (or otherwise selecting nodes or accessing the information items 17 corresponding to nodes) should be prevented from causing activation propagation. Such an indication from a user may be in the form of a toggle input, for example.
Selecting a particular node (node A for example) to be the currently-selected node may cause a number of other changes in network 10 and/or to node A. By way of non-limiting example, selecting node A to be the currently-selected node may cause a change to the last update time stamp associated with node A (see fields 310, 330 of
System 600 also comprises an activation propagation manager 607 that receives information from user interface 605 (i.e. a user has accessed an information item 17 and/or a user has caused a node to be the currently-selected node). Activation propagation manager 607 then controls the flow of activation through the network created by node creation engine 606 and link creation engine 604. Link strength tracker 608 and node strength tracker 610 receive information from activation propagation manager 604 and update the strengths of the links and nodes as discussed above. In the
A specific example is now provided to illustrate some of the features of the invention within the context of a particular embodiment. This exemplary application is merely intended to be an example of a possible application of the invention and as an explanatory aid to assist with describing the invention and is specifically not intended to limit the scope of the invention. System 12 may be a media playback system, such as a home stereo, a commercial stereo, a portable music player, or the like, for example.
Where system 12 is a media playback system, information items 17 comprise media content. Accordingly, the content nodes of network 10 represent media content information items 17.
Where system 12 is a media playback system, one example of a property node is an artist node. An artist node may represent a person (or group of people) who may have contributed to one or more of the media content information items 17 accessible to system 12.
Another type of property node that may be used in a media playback system is a playlist node. In general, a playlist is a list of media files that are grouped together (e.g. for playback in a certain order). A playlist may be a user-defined playlist or a pre-determined playlist, such as an album of media files produced by a particular artist, for example.
As discussed above, links wAB, wAC, . . . between nodes A-H of network 10 may represent relevance relationships between the nodes. Preferably, network 10 comprises links wAB, wAC, . . . between nodes which share one or more common or similar properties. In the case where system 12 is a media playback system, non-limiting examples of links include: a link for connecting a pair media content nodes corresponding to two media tracks that are similar to one another (e.g. two audio tracks that have the same or similar artist(s), two audio tracks that have the same or similar musical genre(s), two audio tracks that have the same or similar timbral/spectral properties and/or two audio tracks that have similar tempos); a link for connecting a media content node to an artist node representing the artist who created the media content; and a link for connecting a media content node to a node representing a playlist on which the media content is listed. Those skilled in the art will appreciate that there are many other links which can be envisaged for media playback systems on the basis of the similarity of the properties of the information represented by their corresponding nodes.
As discussed above, links between the nodes of network 10 may be created manually or automatically. Automatic link creation may be based on: the similarities between properties of media content nodes and/or their corresponding media content information items; and/or the similarities between the property represented by a property node and the properties of a media content node. By way of non-limiting example, a media playback system 12 and/or its associated software 16 may create a link between a pair of nodes (such as nodes A and D) because: nodes A and D represent musical tracks that have highly similar timbral/spectral properties; nodes A and D represent musical tracks that have similar tempos; nodes A and D represent media tracks that have similar keywords (e.g. mood-related keywords, such as relaxing, happy or sad; or genre-related keywords, such as action, drama, romantic comedy or rap, classical, rock); node A represents an artist and node D represents a media track created by that artist; and/or node A represents a playlist and node D represents a media track listed in the node A playlist. Properties of a media track, an author or a playlist, such as timbral/spectral properties, mood-related keywords, genre-related keywords, tempo, or other properties, may be obtained by (or otherwise provided to) system 12 via user input, via access to databases containing media information and/or by using audio analysis software, for example.
Links between nodes may also be automatically created in media playback system 12 on the basis of usage. System 12 and/or software 16 may observe a relationship between the usage of two nodes A and D and may automatically create link wAD on the basis of this usage relationship. For example, if nodes A and D represent media content nodes, a user may play back the content represented by node A followed by the content represented by node D or may play back the content represented by both nodes A and D within a certain threshold interval. This threshold interval may be monitored using the last playback time stamp field 132 (
Track history list 406 may comprise a list of recently played back tracks. In the
The suggested tracks list 410 may be implemented by a high-node-strength list of the type discussed above. In the
In the
In a specific example, a user may hear a song that they enjoy. The user may see from play queue 408 that the song is from the album entitled “Dark Side of the Moon”. The user may then enter “Dark Side of the Moon” into the keyword boost field 404. In accordance with the
In addition, the artist of the Dark Side of the Moon album may be Pink Floyd. The Pink Floyd artist node may have Dark Side of the Moon in its keyword field 148 and thereby receive direct activation. Additionally or alternatively, the Pink Floyd artist node could be connected via a link to one or more of the content nodes representing tracks from the Dark Side of the Moon album or to the Dark Side of the Moon playlist/album node. In such a circumstance, indirect activation would be propagated to the Pink Floyd artist node.
Any of the nodes representing tracks from the Dark Side of the Moon album, the Dark Side of the Moon playlist/album node and/or the Pink Floyd artist node may be connected (via links) to other media content nodes representing tracks created by Pink Floyd (i.e. having Pink Floyd in their artist field 130). In this manner, indirect activation would then also be propagated from any of the nodes representing tracks from the Dark Side of the Moon album, the Dark Side of the Moon playlist/album node and/or the Pink Floyd artist node to other media content nodes having Pink Floyd in their artist field 130. This would increase the node strength of the nodes representing the other tracks by Pink Floyd and cause these nodes to move toward the top of the high-node-strength list 366 that forms the basis of the suggested tracks list 410.
Some of the nodes that receive direct activation may also be connected via links to nodes representing other tracks which do not have Pink Floyd as the artist. For example, one of the nodes representing a track from the dark Side of the Moon album may be connected to anode representing another track via a link because the two tracks share similar spectral properties (field 124 of
In this manner, the keyword boost field 404 may cause activation to propagate through network 10 and thereby influence the tracks shown on the suggested track list 410 and the located of such tracks within the suggested track list 410.
In the
In the
The block 32 selection of a next track may involve any technique for manually or automatically selecting a node (representing a track) to be added to playback queue 408. The block 32 selection of a next track may involve automatic or manual selection of a node from among all of the media content nodes in network 10. The block 32 selection of a next track may involve automatic or manual selection of a node from among the nodes in a connected-node list, the nodes in a high-node-strength list, the nodes associated with a high-link-strength list and/or the nodes associated with a keyword list of the type described above. Automatic selection of nodes in block 32 may be sequential or may involve a pseudo-random process. Pseudo-random processes are well known to those skilled in the art.
In some embodiments, the block 32 selection of a next track may be automatically selected from a list, such as a high-node-strength list, for example. Automatic selection may be performed by a pseudo-random process wherein the probability of selection of a particular node from among the nodes in the high-node-strength list is correlated with the node strength of the particular node. Similar node selection processes may be performed with other lists, such as connected-node lists, high-link-strength lists and keyword lists. Criteria other than node strength may be selected to determine the probabilities. Such criteria may include keyword matching levels and link strengths for example.
Automatic selection of a next track from among the nodes in a connected-node list may involve computing a function of the node strengths of the nodes on the connected-node list and the link strengths of the links to such connected nodes and selecting the track represented by the node having the highest function output or assigning a probability of pseudo-random selection that is proportional to the function output. An example of such a function is fi(αi,associ)=a·αi+b·assoc, where αi is the node strength of the ith node on the connected-node list and associ is the link strength of the link connecting the current node to the ith node on the connected-node list and a and b are weighting coefficients for the node strength and the link strength respectively.
The block 32 selection of a next track may additionally or alternatively involve automatic or manual selection of a node from among the nodes contained in a playlist, which may be a user-defined playlist, a predefined playlist (such as an album) or an automatically created playlist.
Where the block 32 selection of a next track is automatic, the selection procedure may involve using a loop-prevention mechanism, such as a tabu list. A tabu list may comprise a list of recently played back tracks that are suppressed or are otherwise inhibited from being automatically selected in block 32. For example, when a track has finished playing, it may be time stamped and put on the tabu list. The tracks on the tabu list may stay on the tabu list for a predetermined or user-selectable period of time or for a predetermined or user-selectable number of discrete intervals t (e.g. a number of played back tracks).
In some embodiments, the block 32 selection of a next track and/or the incorporation of a tabu list may be performed in a manner similar to that described in the PCT patent application entitled, PROBABILSTIC AUDIO NETWORKS, which is filed concurrently with this application and which is hereby incorporated by reference herein.
In the
A user may activate a “next” input (block 33) prior to the completion of playback of the current track. In such a circumstance, music playback system 12 bypasses block 31 (i.e. adding the current track to the history list) and proceeds directly to block 32, where it selects a next track as discussed above. After selecting the next track in block 32, music playback system 12 proceeds to block 36, where the node associated with the next track may receive activation, such activation may be propagated to other nodes through links and the node strengths and link strengths of network 10 may be updated as discussed above. Playback of the next track commences in block 37.
A user may select the track represented by a particular node for playback (block 34). In such a circumstance, media playback system 12 proceeds to block 36, where the node representing the selected track may receive activation, such activation may be propagated to other nodes through links and the node strengths and link strengths of network 10 may be updated as discussed above. Playback of the next track commences in block 37.
As discussed above, a user may also select a node to be the currently-selected node (block 35) without adding the corresponding track to playback queue 408. In such a circumstance, media playback system 12 proceeds to block 38, where the currently-selected node receives activation. As a part of block 38, such activation is propagated to other nodes through links and the node strengths and link strengths of network 10 are updated as discussed above. When a user selects a node to be the currently-selected node without playback (block 35), block 37 is bypassed and no playback occurs.
A user may activate a “stop” input (block 39). In such a circumstance, audio device 12 stops playback of the current track (block 40) and returns to wait for the next event or user interaction.
As discussed above, when a particular node is selected as the currently-selected node in block 35, the currently-selected node may receive activation and such activation may be propagated through links to other nodes as described above. Media playback system 12 may be configured such that the node strengths and the link strengths of the network maintained by system 12 may be updated as a part of block 38 (even although the currently-selected node (block 35) is not yet being played back). Accordingly, the block 35 selection of a node as the currently-selected node together with the activation propagated in block 38 can be used for determining a track or tracks to be played back after the currently-playing track without disrupting playback of the currently-playing track. For example, an artist node may be selected as the currently-selected node in block 35 and the corresponding activation may be propagated through the network, tracks by the selected artist may move towards the top of a high-link-strength list and, as a result, may be displayed for easy selection by user or may be automatically selected with higher probability for subsequent playback in block 32.
The media playback system 12 described above may be used for storing, maintaining and providing access to media collections in various types of media playback systems. Preferably such media playback systems incorporate solid state memory, magnetic memory or optically recorded memory, or provide access to external data storage or networks which comprise media databases or other forms of accessible media. Non-limiting examples of systems which may be configured as media playback systems in accordance with the invention include:
Another specific example is now provided to illustrate other features of the invention within the context of a particular embodiment. This exemplary application is merely intended to be an example of a possible application of the invention and as an explanatory aid to assist with describing the invention and is specifically not intended to limit the scope of the invention. System 12 may be a typical PC system, where it is desired to manage various types of information items 17, such as documents, emails, favorite URLs or the like.
For a PC system 12, one type of property node is a person node. A data structure (not shown) corresponding to a person node may comprise: a node identifier; a person name; a node strength; keywords descriptive of the person and/or characteristics of the person; a last update time stamp; a list of contact information for the person; a time/date stamp of last contact with the person; and an optional vector containing pointers to other nodes to which the person is connected (e.g. documents that the person might have co-authored, emails that the person may have sent and/or received and the like). In some embodiments, a person node may actually be a content node, where the information item 17 represented by the person node is the person's contact information.
One type of content node for a PC system 12 is a document node. A data structure (not shown) corresponding to a document node may comprise: a node identifier; a document name; a node strength; keywords descriptive of the document and/or characteristics of the document; a last update time stamp; a pointer to the document; a time/date of document creation; a date/time of last saved update to the document; and an optional list of pointers to person node(s) representing contributing author(s) for the document (person nodes are explained in more detail below).
Another type of content node in the case where system 12 is a PC system may be an email node. A data structure (not shown) corresponding to an email node may comprise: a node identifier; an email name (e.g. a subject line); a node strength; keywords descriptive of the email or characteristics of the email (e.g. addressee names, keywords contained in the body of the email or the subject of the email or other descriptive keywords); a last update time stamp; a pointer to the email; a time/date that the email was sent; a time/date that the email was received; a pointer to the person node representing the sender; pointer(s) to the person node(s) corresponding to the recipient(s); and a flag indicating whether the email was sent by system 12 or received by system 12.
Another type of content node that may be used for a PC system 12 is a favorite URL node. A data structure (not shown) corresponding to a favorite URL data may comprise: a node identifier; an URL name; a node strength; keywords descriptive of the URL or characteristics of the URL; a last update time stamp; a pointer to the URL; a time/date that the website corresponding to the URL was last accessed; a time/date that the URL was recorded as a favorite; and a pointer to the person node representing the person who recorded the URL as a favorite.
Where system 12 is a PC system, selecting a node to be the currently-selected node may involve accessing the information item 17 corresponding to the node, although this is not strictly necessary. An information item 17 in a PC system 12 may be accessed when its corresponding file is opened. As with the embodiments described above, accessing the information item 17 represented by a node may also cause the node to receive direct activation.
Non-limiting examples of links wAB, wAC, . . . in a PC system 12 include: a link for connecting a pair of e-mail nodes representing email messages sent by the same person; a link for connecting a document node to a person node which represents the author of the document; a link for connecting an email node to a favorite URL node where the email and the URL represented by the nodes share important keywords. Those skilled in the art will appreciate that there are many other links which can be envisaged for PC systems on the basis of the similarity of the properties of the information represented by their corresponding nodes.
Links wAB, wAC, . . . of network 10 may be created manually and/or automatically. Automatic link creation may be based on similarity of the information items 17 represented by nodes and/or the properties of these information items 17. For the case where system 12 is a PC system, non-limiting examples of automatically creating links (such as link wAD of
Links (such as link wAD of
The propagation of activation through a network 10 maintained by a PC system 12 and the display of one or more lists (e.g. a high-node-strength list) on the user interface 15 of a PC system 12 may be used in a manner similar to those of the systems described above to achieve similar advantages. For example, a PC system may display a high-node-strength list on a toolbar or the like, so that when a user is working on a particular document (activation is provided to the node corresponding to that document and propagated through network 10), such that the toolbar displays indicia from nodes that are related to the node corresponding to the particular document. The user may then access the information items corresponding to these related nodes without searching through their directory structures or email folders or the like.
Certain implementations of the invention comprise computer processors which execute software instructions which cause the processors to perform a method of the invention. For example, one or more processors in a dual modulation display system may implement data processing steps in the methods described herein by executing software instructions retrieved from a program memory accessible to the processors. The invention may also be provided in the form of a program product. The program product may comprise any medium which carries a set of computer-readable signals comprising instructions which, when executed by a data processor, cause the data processor to execute a method of the invention. Program products according to the invention may be in any of a wide variety of forms. The program product may comprise, for example, physical media such as magnetic data storage media including floppy diskettes, hard disk drives, optical data storage media including CD ROMs, DVDs, electronic data storage media including ROMs, flash RAM, or the like or transmission-type media such as digital or analog communication links. The instructions may be present on the program product in encrypted and/or compressed formats.
Where a component (e.g. a software module, processor, assembly, device, circuit, etc.) is referred to above, unless otherwise indicated, reference to that component (including a reference to a “means”) should be interpreted as including as equivalents of that component any component which performs the function of the described component (i.e., that is functionally equivalent), including components which are not structurally equivalent to the disclosed structure which performs the function in the illustrated exemplary embodiments of the invention.
As will be apparent to those skilled in the art in the light of the foregoing disclosure, many alterations and modifications are possible in the practice of this invention without departing from the spirit or scope thereof. For example:
α=f(m,d),
where: m=playback time (i.e. time playback stops—time playback starts); d is the length of the media content; and f(m, d): +×
+→
. In one particular example f(m, d) may be given by f(m, d):=ey·exp[−(d−m)2], where the parameter et determines the maximum amount of activation that will be received when the track has been played completely (d=m)
This application claims priority from U.S. patent application No. 60/636,208 filed 15 Dec. 2004 which is hereby incorporated by reference herein. This application is related to the co-pending application entitled PROBABILISTIC AUDIO NETWORKS being filed together herewith.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CA05/01901 | 12/15/2005 | WO | 00 | 6/14/2007 |
Number | Date | Country | |
---|---|---|---|
60636208 | Dec 2004 | US |