METHOD OF DETERMINING INFLUENCE OF A MEMBER WITHIN A DATASET
A method of determining influence of a member within an overall dataset may include functions which capture, aggregate, analyze and visually present the relationships and influence that members of a dataset or collection, such as individual persons, websites, applications and/or machines, exercise over one another based on interaction, behavioral and demographic factors, etc. The calculated results of influence may be employed for the tracking of content and/or marketing, for example.
The present application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 61/142,881 to the inventors, filed Jan. 6, 2009, the entire contents of which is hereby incorporated by reference herein.
BACKGROUND1. Field
Example embodiments in general relate to methods of determining influence of a member within an overall dataset in which a plurality of nodes exist, in which the member is represented by one of the nodes in the dataset.
2. Related Art
The following terms, briefly described hereafter, characterize features of the prior art that are relevant to the example embodiments. In computer science, a data structure is an organized collection of data, which may include information about the relationships existing between various members of the collection. In computer science, an Abstract Data Type (ADT) is a set of data together with the operations upon that data. The three fundamental types of ADT are List, Tree and Graph.
A list consists of nodes (containing data) and links between these nodes. A list is thus a “linear” representation of information. Each node in a list has at most one predecessor and at most one successor and may contain two components of information, a “data-component” and a “next-pointer”. A node may be an ordered list of information (data, next-pointer). A list may start with a pointer to the first node on the list. Each subsequent node then may have a pointer to the successor node of that node. The last node of the list should contain a next-pointer value of “NULL” to represent that it is the last node on the list.
Specific types of lists include: Single Linked Lists, Double Linked Lists, Queues, Circular Queues, and Stacks. Operations upon lists include: insert, delete, find and update; special operations for stacks include top, push, pop and flush.
A tree also consists of nodes. Similar to a list, the nodes of a tree can be represented as having two types of components, data and pointers. However, for a tree there may be more than one pointer field. A “binary tree” has two pointer fields called “left child” and “right child”. In general a tree may have any number of children, but trees with two children (binary trees) are widely used.
A tree node can be said to have at most one predecessor (the root node has no predecessor) but may have any number of successor nodes. Also, in the case of trees, predecessor nodes may be referred to as “parent” nodes, and successor nodes as “children”.
A graph consists of nodes which have a data component and pointer components. A graph is the most general of the three fundamental data structure types. A graph node may have any number of successor nodes as well as any number of predecessor nodes (a tree node may have at most one predecessor).
A tree may be considered to be a graph which contains no cycles. Hence a tree is a special type of graph. A cycle is a relationship between two or more nodes in which it is possible to return to the starting point without retracing steps. So if one proceeds from node A to node B and then from node B to node C, and further if one proceeds from node C to node A, the member has completed a “cycle”. A cycle is valid in a graph but not valid in a tree.
SUMMARYAn example embodiment of the present invention is directed to a method of determining influence of a member within an overall dataset in which a plurality of nodes exist. The member is represented by one of the nodes in the dataset. In the method, a root originator node is provided to a location directly or indirectly accessible to a central server. The root originator node is embodied by an apparatus. The apparatus is comprised of an original content holder holding content and one or more tracking tags and is configured to invoke a movement action resulting in the publishing of a new successor node to a new location directly or indirectly accessible to the central server. The new node receives a new instance of the apparatus inclusive of the original content holder, a tracking tag and an ability to invoke the movement action to generate additional successor nodes. The additional successor nodes are generated by invoking the movement action to pass on a new instance of the apparatus. Each additional successor node may be configured to serve as a distinct originator node for subsequently generated nodes. Raw data is captured from one or more events that are invoked at each node after a node has been generated. The nodes are assembled based on the originator node of each node, and the data set is assembled based on an association among all the originator nodes. The method includes aggregating the raw data captured from an event at each originator node and rollup event occurrences transpiring at linked nodes. An influence factor is then calculated from the aggregated data that reflects the member's influence on the dataset.
Another example embodiment is directed to a method of determining influence of a member within an overall dataset in which a plurality of nodes exists. In the method, a root originator node is published to a location directly or indirectly accessible to a central server. The root node has an original content holder holding content and a plurality of tracking tags comprising primary and alternate keys. One or more successor nodes are created at locations accessible to the central server by the root node performing one of a sharing, forwarding, posting, installing or passing along action of the original content holder and tracking tags, in order to publish a successor node to a new location. Each of the successor nodes may be configured to serve as a distinct originator node in generating additional successor nodes that are linked thereto. Raw data is captured from one or more events invoked at each node after a node has been created. The nodes are assembled into a tree data structure based on the primary keys and captured raw data of the originator nodes. The method includes aggregating, for each node of a tree structure, the raw data captured from one or more events at each originator node and rollup event occurrences transpiring at linked nodes to form tree structures with aggregated data, and then transforming the aggregated tree structures into a graph structure with aggregated data based on the alternate keys of the originator nodes to provide a dataset with established connections between the nodes. An influence factor is calculated from the aggregated data that reflects the member's influence on the dataset.
Another example embodiment is directed to a method of displaying an influence of a member within an overall dataset on a display medium. The dataset includes a plurality of nodes, with the member visually represented by one of the nodes on the webpage and/or other display medium. In the method, a root originator node is provided to a location directly or indirectly accessible to a central server. The root originator node is embodied by an apparatus. The apparatus is comprised of an original content holder holding content and one or more tracking tags and is configured to invoke a movement action resulting in the publishing of a new successor node to a new location directly or indirectly accessible to the central server. The new node receives a new instance of the apparatus inclusive of the original content holder, a tracking tag and an ability to invoke the movement action to generate additional successor nodes. The additional successor nodes are generated by invoking the movement action to pass on a new instance of the apparatus. Each additional successor node may be configured to serve as a distinct originator node for subsequently generated nodes. Raw data is captured from one or more events that are invoked at each node after a node has been generated. The nodes are assembled based on the originator node of each node, and the data set is assembled based on an association among all the originator nodes. The method includes aggregating the raw data captured from an event at each originator node and rollup event occurrences transpiring at linked nodes. An influence factor is then calculated from the aggregated data that reflects the member's influence on the dataset. The method includes displaying a plurality of nodes in the data set on the display medium for review of the influence thereof. The visual size of the node indicates the member's influence on the dataset.
Example embodiments will become more fully understood from the detailed description given herein below and the accompanying drawing, wherein like elements are represented by like reference numerals, which are given by way of illustration only and thus are not limitative of the example embodiments herein.
As to be set forth more fully below, the example embodiments in general are directed to a method of determining influence of a member within an overall dataset. The example method may include functions which capture, aggregate, analyze and visually present the relationships and the influence that members of a dataset or collection, such as individual persons, websites, applications and/or machines, exercise over one another based on interaction, behavioral and demographic factors, for example. The calculated results of influence may be employed for the tracking of content and/or marketing campaigns, for example.
In the example method to be described in further detail hereafter, an apparatus is created that includes a content holder holding content (such as a web page, web widget, application or an email), a tracking mechanism (such as a tracking tag), and a sharing/forwarding/posting/pass-along mechanism that is invoked as a “movement action” and which is associated with the apparatus. The apparatus may be published or shared with other potential viewers of the content, who in turn may publish or share the apparatus with further viewers. Data is captured along with the use and/or spread of the apparatus. The captured data is assembled and re-formulated into a given data structure. The data structure is subject to a multivariate influence analysis to calculate an influence factor. The influence factor may be reported via a desired visual interface.
As used herein, the phrase “originator node” will generally refer to a node from which has published or been generated one or more successor nodes. Where used, the phrase “root originator node” may be understood as an originator node which has no predecessor and is synonymous with “root node”. A successor node in itself can be an originator node as it can generate one or more additional successor nodes. A successor node is synonymous with a sibling or child node in that each has an originator or parent node.
For example, a “holder” apparatus may be first created based on a pre-defined template and the first instance of the apparatus is called the root node. The apparatus in the first instance, hereafter “apparatus” includes a content holder, a tracking mechanism such as one or more tracking tags, and is configured to invoke a movement action to create new nodes having additional instances of the apparatus (i.e., the content holder, tracking tags, movement action to create additional successor nodes, etc.). The first instance of the apparatus and the root originator node are considered to be synonymous; subsequently generated successor nodes are created by originator nodes which in doing so pass on the apparatus in a second instance, third instance, Nth instance, etc.
The content holder of the apparatus may be embodied as any of a web widget, electronic mail message, mobile application, rich internet application (“RIA”), SMS message, MMS message, web application, web page, block of web content, block of mobile content, web advertisement, mobile advertisement and desktop application, for example. A widget can be understood as a portable chunk of code that can be installed and executed within any separate HTML-based web page by an end user without requiring additional compilation. Widgets are derived from the idea of code reuse. Other terms used to describe web widgets include: gadget, badge, module, webjit, capsule, snippet, mini and flake. Web widgets usually but not always use DHTML, JavaScript, or Adobe Flash.
Unique keys (also referred to as ‘primary keys’) are generated from the central server to uniquely reference the root node, and the tracking tags are used to follow the apparatus and capture interaction with the root node. Alternate keys are also generated to capture supporting data associated with the root node, such as the person who created the root node.
The root node is configured to invoke the aforementioned movement action resulting in the publishing or generation of one or more new node(s) (S20), called “successor nodes” to a new location that is directly and/or indirectly accessible to the central server. The new successor nodes may also be directly and/or indirectly accessible to the internet or on the web themselves. Each successor node is published or generated due to the movement action, which may be embodied by any of a sharing, forwarding, posting, installing or passing along of a new instance of the apparatus in order to publish the successor node to the new location. As to be illustrated in further detail below, each successor node in turn is configured to serve as a distinct originator node with the capability of generating additional successor nodes by invoking the movement action.
Once the root node has been published, raw data from events invoked at the root node and each successor node is captured (S30). In an example, the central server captures and stores raw data as events are invoked by a given node. Each active node (i.e., a published node with its tracking mechanism in communication with a central server) reports unique tracking data to central servers such as raw web traffic data and event data, for example.
The various successor nodes are assembled (S40) based on the originator of each given node. As to be described in more detail hereafter, the nodes are assembled into a tree data structure based on primary keys in the tracking tags. An association is made amongst all the originator nodes in order to assemble the complete dataset (S50). As to be described in more detail hereafter, the association between originator nodes involves transforming the tree structure into a graph based on common alternate keys in the tracking tags.
The raw data captured from an event at each originator node and rollup event occurrences transpiring at linked successor nodes is aggregated to achieve an aggregated data set (S60). It is noted that aggregation of event data can be performed in various orders prior to or after transforming the tree structure into the graph. For example, event data for each give node can be aggregated; the hierarchical tree structure assembled at step S40 and then sibling event data at each node in the tree rolled up before assembling the complete dataset at step S60). In other words, the sequence of aggregation functions can be separated at different points before or after transformation of the assembled hierarchical tree structure into the graph.
From the aggregated data, an influence factor may be calculated (S70). In an example the influence factor may reflect a member's influence on the dataset. In one example the member may be an individual person, machine, website or application. Moreover, the influence factor may reflect the relationships and/or influence members of a dataset exercise over other members of the same dataset based on interaction, behavioral and demographic factors, for example.
The calculated results of influence may be displayed and/or reported (S80) as desired. In one example as to be illustrated hereafter, a plurality of nodes (each representing a member in the dataset) may be displayed on a display medium for review of the influence thereof by a viewer, where the visual size of the node indicates the member's influence on the dataset. The display medium may additionally incorporate the use of different colors to represent a demographic or other characteristic of the dataset, i.e., assigning nodes different colors. The display medium may further include drawn boundaries between nodes to reflect a domain or website responsible for the influence. In an example, the display medium may be embodied as any of a webpage, pdf, jpeg, tiff, display screen, paper report, etc. In another example as to be illustrated hereafter, influence factor data may be displayed in the form of a graph or table.
In general,
A node's tracking tags, specifically its unique identifier keys, are used to identify the node, follow and capture node placement and interaction. Tracking tags exist in the form of parameter variables serving the source of apparatus 100 or in a tracking image accompanying the apparatus 100. For the apparatus 100, the tracking tag 105 includes two unique identifier keys, or “primary” keys: a Content Holder ID 122 of the root node 100 and a Tracking Tag Instance ID 125. In publishing successor node or apparatus 101, the root node 100 passes on the same content holder 110 with the same content stored therein, and forwards on its Content Holder ID 122. However, the tracking tag 106 of successor node 101 (or apparatus 101 in the 2nd instance) is slightly modified; a different Tracking Tag Instance ID 126 is assigned, as this is a second instance of the tracking tag ID. Somewhat similar in
The sample captured web traffic data (“raw data”) includes unique identifier keys, date and time of the request, the file requested, IP address of visitor, browser type, etc. Raw event data is sent to a central server to log specific events associated with direct and/or indirect human and/or machine interaction with a node. The raw data sent to the central server includes the node's unique keys (primary keys), event codes, data used to describe the event and visitor information, for example.
Referring to
Referring to
The following
To assemble the nodes based on occurrence, a hierarchical tree data structure is formed. In an example, raw data may be input, such as application event logs, as a primary source to assemble the tree data structure. These primary data source inputs may be joined together using node keys from each data source.
Each node (originator and/or successor) has primary key fields and non-key data fields. The primary key fields are used to assemble the nodes of the tree structure. The non-key data fields are classified as alternate key fields or alternate data fields. One method used to assemble the relationship between nodes may be accomplished through programmatic code, for example
With the hierarchical tree data structure assembled, the complete dataset is assembled in order to calculate the influence factor. In assembling the dataset, aggregation of the raw data is performed for the events at each node, as well as aggregation or rollup of sibling event data for each node of the tree.
As previously discussed in step S50, an association is made amongst all the creator nodes to assemble the complete dataset. This includes transforming the hierarchical tree structure with the aggregated event data into a graph structure, based on the alternate keys of the nodes which are included as part of the tracking tags at each node.
Accordingly, alternate data keys, other than the primary keys used to construct the tree data structure, may be utilized for the purposes of transforming the tree to alternate data structures such as graphs. For example, this process may be used to transform the original tree data structure (node placement based) to a new data structure based on the alternate keys present in the original tree data structure. The new data structure includes a set of nodes and established relationships (links or connections) between the nodes.
A node's influence can be derived by dividing the total occurrences of an event at a specific node by the total occurrences of the event in the complete dataset. A node's influence, which may be referred to herein as a “node influence factor” is the node occurrence of the event divided by the total occurrences of the event.
As previously noted, a plurality of nodes in the dataset (each representing a member in the dataset) can be displayed, such as on a webpage or other display medium, for example, for review of the influence thereof. In this example, the visual size of the node on the webpage indicates the member's influence on the dataset. The view may additionally incorporate the use of different colors to represent a demographic or other characteristic of the dataset, i.e., assigning nodes different colors. The view may further include drawn boundaries between nodes to reflect a domain or website responsible for the influence.
The example embodiments being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as departure from the example embodiments, and all such modifications as would be obvious to one skilled in the art are intended to be included herein.
Claims
1. A method of determining influence of a member within an overall dataset in which a plurality of nodes exist, the member represented by one of the nodes in the dataset, comprising:
- providing a root originator node to a location directly or indirectly accessible to a central server, the root originator node embodied by an apparatus, the apparatus comprised of an original content holder holding content and one or more tracking tags and configured to invoke a movement action resulting in the publishing of a new successor node to a new location directly or indirectly accessible to the central server, the new node receiving a new instance of the apparatus inclusive of the original content holder, a tracking tag and an ability to invoke the movement action to generate additional successor nodes,
- generating the additional successor nodes by invoking the movement action to pass on a new instance of the apparatus, each additional successor node configured to serve as a distinct originator node for subsequently generated nodes,
- capturing raw data from one or more events invoked at each node after a node has been generated,
- assembling nodes based on the originator of each node,
- assembling the dataset based on an association among all the originator nodes,
- aggregating the raw data captured from an event at each originator node and rollup event occurrences transpiring at linked nodes, and
- calculating an influence factor from the aggregated data that reflects the member's influence on the dataset.
2. The method of claim 1, wherein each node represents a member in the dataset the member being one of an individual person, a machine, a website and an application.
3. The method of claim 1, further comprising:
- displaying a plurality of nodes in the data set on a display medium for review of the influence thereof by a viewer.
4. The method of claim 3, wherein the visual size of the node indicates a member's influence on the dataset.
5. The method of claim 3, wherein the display medium includes boundaries between nodes to reflect a grouping or other common characteristic responsible for the influence.
6. The method of claim 3, wherein color of the node represents a demographic or other characteristic of the dataset.
7. The method of claim 1, wherein the movement action to generate a successor node includes one of a sharing, forwarding, posting, installing or passing along of a new instance of the apparatus in order to publish the successor node to the new location.
8. The method of claim 1, wherein the content holder is embodied as any of a web widget, electronic mail message, mobile application, rich internet application (“RIA”), SMS message, MMS message, web application, web page, block of web content, block of mobile content, web advertisement, mobile advertisement and desktop application.
9. The method of claim 1, wherein the tracking tags further include:
- primary keys to identify the node, the primary keys including a content holder ID that is generated by a central server at the root originator node and passed on to linked successor nodes at node generation, and
- alternate keys with additional data associated with the node including one of a person ID of the person who created the node and a machine ID of the originating machine identification.
10. The method of claim 9, wherein assembling nodes further includes assembling a hierarchical data tree structure based on a one or more common content holder IDs contained in the primary keys of linked nodes which form the tree.
11. The method of claim 10, wherein assembling the dataset further includes associating originator nodes of the hierarchical data tree structure based on at least one of a common person ID and machine ID of the alternate keys contained therein so as to transform the tree structure to a graph data structure.
12. The method of claim 1, wherein capturing raw data further includes storing raw data as a given event is invoked at a given node and reporting to the central server there from, the event representative of direct or indirect human or automated interaction with the node.
13. The method of claim 1, wherein an event includes a load/open action, an user or machine interaction, a post/send/publish/share of apparatus, a listen/stream, a view, a download, and advertisement impression, advertisement click, a poll question answered, and direct or indirect resulted e-commerce.
14. The method of claim 1, wherein calculating the influence factor comprises dividing the total occurrences of an event at a specific node by the total occurrences of the event in the complete dataset.
15. A method of determining influence of a member within an overall dataset in which a plurality of nodes exist, comprising:
- publishing a root originator node to a location directly or indirectly accessible to a central server, the root node having an original content holder holding content and a plurality of tracking tags comprising primary and alternate keys,
- creating one or more successor nodes at locations accessible to the central server by the root node performing one of a sharing, forwarding, posting, installing or passing along action of the original content holder and tracking tags in order to publish a successor node to a new location, each of the successor nodes configured to serve as a distinct originator node in generating additional successor nodes that are linked thereto,
- capturing raw data from one or more events invoked at each node after a node has been created,
- assembling the nodes into a tree data structure based on the primary keys and captured raw data of the originator nodes,
- aggregating, for each node of a tree structure, the raw data captured from an event at each originator node and rollup event occurrences transpiring at linked nodes to form tree structures with aggregated data,
- transforming the aggregated tree structures into a graph with aggregated data based on the alternate keys of the originator nodes to provide a dataset with established connections between the nodes, and
- calculating an influence factor from the aggregated data reflecting the member's influence on the dataset.
16. The method of claim 15, wherein each node represents a member in the dataset, the member being one of an individual person, a machine, a website and an application.
17. The method of claim 15, further comprising:
- displaying a plurality of nodes in the dataset on a display medium for review of the influence thereof by a viewer.
18. A method of displaying an influence of a member within an overall dataset on a display medium, the dataset including a plurality of nodes, the member visually represented by one of the nodes on the webpage, comprising:
- providing a root originator node to a location directly or indirectly accessible to a central server, the root originator node embodied by an apparatus, the apparatus comprised of an original content holder holding content and one or more tracking tags and configured to invoke a movement action resulting in the publishing of a new successor node to a new location directly or indirectly accessible to the central server, the new node receiving a new instance of the apparatus inclusive of the original content holder, a tracking tag and an ability to invoke the movement action to generate additional successor nodes,
- generating the additional successor nodes by invoking the movement action to pass on a new instance of the apparatus, each additional successor node configured to serve as a distinct originator node for subsequently generated nodes linked thereto,
- capturing raw data from one or more events invoked at each node after a node has been generated,
- assembling the dataset from the captured raw data and based on an association among all the originator nodes,
- aggregating the raw data captured from an event at each originator node and rollup event occurrences transpiring at linked nodes,
- calculating an influence factor from the aggregated data which reflects the member's influence on the dataset.
- displaying a plurality of nodes in the data set on a webpage for review of the influence thereof, the visual size of the node on the webpage indicating the member's influence on the dataset.
19. The method of claim 18, wherein each node represents a member in the dataset, the member being one of an individual person, a machine, a website and an application.
20. The method of claim 18, wherein
- the display medium includes boundaries between nodes to reflect a grouping or other common characteristic responsible for the influence, and
- color of the node represents a demographic or other characteristic of the dataset.
Type: Application
Filed: Jan 6, 2010
Publication Date: Aug 12, 2010
Patent Grant number: 8407179
Inventors: Christopher Hart (San Francisco, CA), Joseph Chandra Wilkerson (Gilroy, CA)
Application Number: 12/652,962
International Classification: G06F 7/00 (20060101); G06F 15/177 (20060101); G06F 15/173 (20060101);