Transaction data representations using an adjacency matrix
Summary by NHIP
Adjacency Matrix Transaction Analysis
The method generates a three-dimensional matrix representing seller and purchaser accounts, transactional relationships, and temporal topology. It sorts this matrix using retrieved instructions to identify trends and executes a recursive operation that displays transaction data changes as an animation.
Claim Score by NHIP
Abstract
In some example embodiments, a system and method is illustrated as including retrieving account data including at least one of an account identifier and transaction data. Further, in some example embodiments, a data structure is generated that includes the account data. Additionally, in some example embodiments, the data structure is sorted where the data structure includes the account data to create a sorted account data structure. In some example embodiments, a sorted account data structure is displayed.

Term
Projected expiry 18 September 2028.
- Priority
- Filed
- Granted
- Today
- Projected expiry
26 claims: 4 independent, 22 dependent
- 1Broadest claimClaim Score 24, narrow(NHIP)A computer implemented method comprising:receiving a selection of a beginning and ending point of time, transaction data associated with a period of time between the beginning and ending point of time, and a recursive operation to segment the period of time;retrieving account data including at least one account identifier and the transaction data for the at least one account identifier for the period of time;generating, using one or more hardware processors, a three-dimensional matrix having a first axis representing accounts held by sellers in transactions in a networked marketplace of sellers and purchasers, a second axis representing accounts held by purchasers in the transactions in the networked marketplace of sellers and purchasers, a plurality of convergence points each representing a transactional relationship between the accounts corresponding to each of convergence points, and a third axis that provides a topology for the plurality of convergence points by reflecting changes over time relating to the accounts held by the sellers and the purchasers and the plurality of convergence points based on the account data;retrieving sorting instructions from a database of a plurality of sorting instructions to sort the generated matrix according to a characteristic of the transactions;sorting the generated matrix including the account data to create a sorted matrix based on the retrieved sorting instructions, the sorted matrix indicating a transaction trend within the networked marketplace of sellers and purchasers;determining a pattern that indicates the transaction trend within the networked marketplace of sellers and purchasers by analyzing the sorted matrix;and executing the recursive operation, the executing causing a display of changes of the transaction data over the period of time resulting in an animation effect showing the changes of the transaction data over the period of time.
- 16A computer system comprising:a hardware processor of a machine;a retriever to retrieve account data including at least one account identifier and transaction data for the at least one account identifier based on a selection of a beginning and ending point of time, the transaction data associated with a period of time between the beginning and ending point of time, and a recursive operation to segment the period of time;a generator to generate, using the hardware processor of the machine, a three-dimensional matrix having a first axis representing accounts held by sellers in transactions in a networked marketplace of sellers and purchasers, a second axis representing accounts held by purchasers in the transactions in the networked marketplace of sellers and purchasers, a plurality of convergence points each representing a transactional relationship between the accounts corresponding to each of convergence points, and a third axis that provides a topology for the plurality of convergence points by reflecting changes over time relating to the accounts held by the sellers and the purchasers and the plurality of convergence points based on the account data;a sorting engine to sort the generated matrix including the account data to create a sorted matrix based on retrieved sorting instructions from a database of a plurality of sorting instructions, the sorted matrix indicating a transaction trend within the networked marketplace of sellers and purchasers;an automated inspection component to determine a pattern that indicates the transaction trend within the networked marketplace of sellers and purchasers by analyzing the sorted matrix;and a display to display changes of the transaction data over the period of time based on execution of the recursive operation, the execution resulting in the display of changes as an animation effect showing the changes of the transaction over the period of time.
- 25An apparatus comprising:means for receiving a selection of a beginning and ending point of time, transaction data associated with a period of time between the beginning and ending point of time, and a recursive operation to segment the period of time;means for retrieving account data including at least one account identifier and the transaction data for the at least one account identifier for the period of time;means for generating, a three-dimensional matrix having a first axis representing accounts held by sellers in transactions in a networked marketplace of sellers and purchasers, a second axis representing accounts held by purchasers in the transactions in the networked marketplace of sellers and purchasers, a plurality of convergence points each representing a transactional relationship between the accounts corresponding to each of convergence points, and a third axis that provides a topology for the plurality of convergence points by reflecting changes over time relating to the accounts held by the sellers and the purchasers and the plurality of convergence points based on the account data;means for retrieving sorting instructions from a database of a plurality of sorting instructions to sort the generated matrix according to a characteristic of the transactions;means for sorting the generated matrix including the account data to create a sorted matrix based on the retrieved sorting instructions, the sorted matrix indicating a transaction trend within the networked marketplace of sellers and purchasers;means for determining a pattern that indicates the transaction trend within the networked marketplace of sellers and purchasers by analyzing the sorted matrix;and means for executing the recursive operation, the executing causing a display of changes of the transaction data over the period of time resulting in an animation effect showing the changes of the transaction data over the period of time.
- 26A tangible machine-readable storage device comprising instructions, which when implemented by one or more hardware processors of a machine, cause the machine to perform operations comprising:receiving a selection of a beginning and ending point of time, transaction data associated with a period of time between the beginning and ending point of time, and a recursive operation to segment the period of time;retrieving account data including at least one account identifier and the transaction data for the at least one account identifier for the period of time;generating a three-dimensional matrix having a first axis representing accounts held by sellers in transactions in a networked marketplace of sellers and purchasers, a second axis representing accounts held by purchasers in the transactions in the networked marketplace of sellers and purchasers, a plurality of convergence points each representing a transactional relationship between the accounts corresponding to each of the convergence points, and a third axis that provides a topology for the plurality of convergence points by reflecting changes over time relating to the accounts held by the sellers and the purchasers and the plurality of convergence points based on the account data;retrieving sorting instructions from a database of a plurality of sorting instructions to sort the generated matrix according to a characteristic of the transactions;sorting the generated matrix including the account data to create a sorted matrix, the sorted matrix indicating a transaction trend within the networked marketplace of sellers and purchasers;determining a pattern that indicates the transaction trend within the networked marketplace of sellers and purchasers by analyzing the sorted matrix;and executing the recursive operation, the executing causing a display of changes of the transaction data over the period of time resulting in an animation effect showing the changes of the transaction data over the period of time.
Independent claims4
80 paragraphs in 5 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
p-0002This is a U.S. Patent Application that claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application titled “TRANSACTION DATA REPRESENTATIONS USING AN ADJACENCY MATRIX,” (Ser. No. 60/991,569) filed on Nov. 30, 2007 which is incorporated by reference in its entirety herein. Moreover, the present application is related to U.S. Provisional Patent Application titled: “GRAPH PATTERN RECOGNITION INTERFACE” as shown in the U.S. Provisional Patent Application (Ser. No. 60/991,539) filed on Nov. 30, 2007, and incorporated by reference in it entirety herein. A copy of this provisional patent application is attached herein as an Appendix A. Additionally, the present application is related to the U.S. Provisional Patent Application titled: “GLOBAL CONDUCT SCORE AND ATTRIBUTE DATA UTILIZATION” (Ser. No. 60/988,967) filed on Nov. 19, 2007. A copy of this provisional patent application is attached herein as an Appendix B. The present application is also related to the U.S. Provisional Patent Application titled: “NETWORK RATING VISUALIZATION” (Ser. No. 60/986,879) filed on Nov. 9, 2007. A copy of this provisional patent application is attached herein as an Appendix C. Further, the present application is related to U.S. Patent Application titled: “ASSOCIATED COMMUNITY PLATFORM” (Ser. No. 11/618,465) filed on Dec. 29, 2006. A copy of this patent application is attached herein as an Appendix D.
TECHNICAL FIELD
p-0003The present application relates generally to the technical field of algorithms and programming and, in one specific example, the retrieving of transaction data for graphical display.
BACKGROUND
p-0004The large volume of transactions occurring over networks such as the Internet create a large amount of data. This data is typically stored and accessed on a piecemeal basis to determine the characteristics of specific transactions. These characteristics may include the item sold, the price of the item, the parties to the transaction, or other useful information.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0005Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
p-0006<figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram of a system, according to an example embodiment, used to generate an adjacency matrix representation of transaction data.
p-0007<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram of a system, according to an example embodiment, illustrating the use of a pattern recognition computer, and associated sorting algorithms residing thereon, to sort requested transaction data as it may appear in a Graphical User Interface (GUI).
p-0008<figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram of a GUI, according to an example embodiment, displaying a visual representation of an adjacency matrix.
p-0009<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram of a more granular view of a visual representation of an adjacency matrix, according to an example embodiment, as it may appear within a GUI.
p-0010<figref idrefs="DRAWINGS">FIG. 5</figref> is a diagram of a more granular view of one visual representation of an adjacency matrix, according to an example embodiment, that may appear within a GUI.
p-0011<figref idrefs="DRAWINGS">FIG. 6</figref> is a diagram of an adjacency matrix as it may appear within a GUI, according to an example embodiment, wherein the adjacency matrix shows sending and receiving accounts and transactions between these two accounts that are sorted.
p-0012<figref idrefs="DRAWINGS">FIG. 7</figref> is a diagram of a portion of an adjacency matrix, according to an example embodiment, as may be displayed in the GUI, where this portion is a particular section or quadrant of the adjacency matrix.
p-0013<figref idrefs="DRAWINGS">FIG. 8</figref> is a diagram of an example adjacency matrix that may appear in a GUI, according to an example embodiment, reflecting a plurality of sending accounts related to a particular receiving account.
p-0014<figref idrefs="DRAWINGS">FIG. 9</figref> is a diagram of an adjacency matrix as it may appear in a GUI, according to an example embodiment, wherein this adjacency reflects a sorted micro-segment.
p-0015<figref idrefs="DRAWINGS">FIG. 10</figref> is a block diagram of a computer system, according to an example embodiment, used to generate a sorted adjacency matrix and/or to micro-sort a portion of the adjacency matrix.
p-0016<figref idrefs="DRAWINGS">FIG. 11</figref> is a flowchart illustrating a method, according to an example embodiment, used to sort an adjacency matrix and/or to micro-sort a portion of the adjacency matrix.
p-0017<figref idrefs="DRAWINGS">FIG. 12</figref> is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that retrieves a sorting instruction set.
p-0018<figref idrefs="DRAWINGS">FIG. 13</figref> is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that applies the sorting instruction set to the nodes and edges such that the nodes and edges are used to generate the convergence points within an adjacency matrix.
p-0019<figref idrefs="DRAWINGS">FIG. 14</figref> is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that sets the termination condition for a sort.
p-0020<figref idrefs="DRAWINGS">FIG. 15</figref> is a diagram of a data structure, according to an example embodiment, displaying a plurality of adjacency matrices shown as a data structure.
p-0021<figref idrefs="DRAWINGS">FIG. 16</figref> is a diagram of a hash table, according to an example embodiment, illustrating the relationship between various accounts.
p-0022<figref idrefs="DRAWINGS">FIG. 17</figref> is a Relational Data Schema (RDS), according to an example embodiment, illustrating various data tables associated with one embodiment of the present system and method.
p-0023<figref idrefs="DRAWINGS">FIG. 18</figref> shows a diagrammatic representation of a machine in the example form of a computer system, according to an example embodiment.
DETAILED DESCRIPTION
p-0024A system and method for displaying transaction data using an adjacency matrix representation is illustrated. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of some embodiments. It may be evident, however, to one skilled in the art that some embodiments may be practiced without these specific details.
p-0025In some example embodiments, a system and method for displaying transaction data using an adjacency matrix representation is illustrated. Large amounts of data are generated and retained by companies that run e-commerce web sites and other sites that transact in good and services. This data can easily range into the petabyte size for large merchants. The relationships captured within this data may include transactions, accounts held by persons (e.g., legal person such as corporations, and natural persons), amounts spent, the persons between whom a transaction takes place, the time of transactions, the date of transactions, and other suitable data describing a transaction. In one example embodiment, a transaction may be any type of relationship between two or more persons, where this relationship may be represented in a digital format. In some example cases, this data may be analyzed to reveal certain trends. These trends may include the existence of on-going fraud, the buying habits of customers and potential customers, and a host of other information.
p-0026Some example embodiments may include transaction data retrieved based upon accounts and the transaction data associated with these accounts. This transaction data may include sales made by one seller, associated with an account, as identified by an account identifier, to a purchaser associated with a different account identified by an account identifier. In addition to sales, other types of transactions between sellers, or more generally person identified by accounts, made be considered transaction data. These transaction types may include email exchanges as tracked by IP address, common transaction amounts between or by persons identified by accounts, or transactions engaged in by persons having similar geographic locations.
p-0027In one example embodiment, an adjacency matrix is generated where the indices of the matrix represent accounts and the positions within the matrix are associated with the existence of attributes between those accounts. This adjacency matrix may be converted into a graph where the nodes are accounts and the edges are transactions between accounts and information describing these transactions. In some example embodiments, a plurality of adjacency matrices are generated such that a multidimensional array of adjacency matrices are generated. In some example embodiments, another data structure in lieu of a multi-dimensional array of adjacency matrices may be implemented such as a hash table, binary search tree, re-black tree, or some other suitable data structure. In some example embodiments, the computational complexity of the sorting problem posed by a particular set of transaction data may dictate the use of one data structure as opposed to another.
p-0028In some example embodiments, sorting may be performed using any one of a number of comparison based or hybrid sorting algorithms. For example, in some embodiments, a merge sort algorithm or a quick sort algorithm may be implemented. In some example embodiments, a hybrid of some type of comparison based sorting algorithm (e.g., the aforementioned merge sort or quick sort) with Θ(n log n) performance may be implemented in conjunction with another sorting algorithm with Θ(n<sup>2</sup>) performance. Sorting algorithms with Θ(n<sup>2</sup>) performance include, for example, bubble sort and selection sort. In some example embodiments, a parallel sort-merge algorithm may be implemented. Some example embodiments may include using any sorting algorithm that may be classified as having a worst case computational time of better than Θ(n<sup>2</sup>).
p-0029In one example embodiment, transaction data for a plurality of accounts is represented by an adjacency matrix, where the accounts are associated with the indices of the X and Y axis of this adjacency matrix. Elements within the matrix defined by the X and Y axis represent relationships between accounts. Using this matrix, all accounts, and transactions engaged in using these accounts over some period of time, may be represented. This period of time may be a day, a week, or some other suitable period of time. Once the matrix is constructed, it may be sorted/transformed according to one or more characteristics of a transaction. For example, the matrix may be sorted along the X and Y indices by monetary value of the transactions taking place, the time of day the transactions take place, or some other attribute of an account. Further, specific relationships between accounts may be represented at a more granular level through the use of a graph, where the accounts form the nodes of the graph, and the transactions form the edges connecting the nodes.
p-0030In some example embodiments, portions of the adjacency matrix may be further organized (e.g., sorted and/or transformed) such that specific portions of the graph are organized in a more detailed manner. For example, if an adjacency matrix of accounts related based upon transaction amounts is shown, and one would also like to see which of these transactions occurred during a certain time of day, then the matrix would have to be further sub-divided and organized. This further sub-division may, in some example embodiments, be performed recursively or iteratively.
p-0031In some example embodiments, account data in the form of an account identifier is retrieved. The account identifier may be a types of numeric value such as an account number that may be used to uniquely identify an account held by a seller or purchaser of goods or services. Alternatively, an account identifier may be a type of formal name (e.g., a network handle) associated with a seller or purchaser of good or services. The account identified by the account identifier may form the nodes of a graph, and the axes of the adjacency matrix. Further, in some example embodiments, attributes of these accounts in the form of transaction data may be retrieved. This transaction data may form edges connecting these nodes, and may form coordinates within the adjacency matrix. In some example embodiments, a plurality of adjacency matrices may be generated and combined into a multidimensional array. Some example embodiments may include, sorting and transforming the matrix or matrices using one or more of the above referenced sorting algorithms, or some other suitable sorting algorithm. Once sorted, then patterns may be discerned within the matrix or matrices via visual inspection or using some type of automated inspection regime. This automated inspection regime may utilize some sort of Artificial Intelligence (A.I.), or statistical algorithm.
p-0032Some example cases may involve the utilization of a system and method for “Network Rating Visualization” as shown in U.S. Provisional Patent Application 60/986,879 incorporated by reference in it entirety herein. Through using this system and method, a more granular depiction of the various nodes and edges appearing in the adjacency matrix may be presented. Further, through using the system and method for “Network Rating Visualization,” additional patterns may be identified, classified, and added to the taxonomy of graphs (e.g., a taxonomy database) for future reference. In some example embodiments, this taxonomy, or portions thereof, may be displayed as part of a GUI to assist persons such as fraud prevention specialists, marketing professionals or other suitable persons. This GUI and the logic associated therewith may be shown as part of a system and method titled “Graph Pattern Recognition Interface” as shown in U.S. Provisional Patent Application 60/991,539 incorporated by reference in it entirety herein.
p-0033In some example embodiments, the data used to generate the nodes and edges, and ultimately the data structures (e.g., adjacency matrices) illustrated herein, may be derived from systems and method for “Global Conduct Score and Data Attribute Utilization.” This system and method is shown in U.S. Provisional Patent Application 60/988,967 which is incorporated in its entirety herein. Additionally, the system and method for an “Associated Community Platform,” as shown in U.S. patent application Ser. No. 11/618,465, may also be used as a basis to derive the data used to generate the nodes and edges referenced herein. This application Ser. No. 11/618,465 is also incorporated by reference in its entirety herein.
h-0006Example System
p-0034<figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram of an example system <b>100</b> used to generate an adjacency matrix representation of transaction data. Shown is a buyer <b>101</b> utilizing a computer system <b>102</b> which generates transaction data <b>104</b>. In some example embodiments, this transaction data <b>104</b> is transmitted across a network <b>103</b> wherein this network <b>103</b> may be, for example, an intranet or an Internet. This transaction data <b>104</b> may be received by a seller <b>106</b> utilizing a computer system <b>105</b>. Further, in some example embodiments, this transaction data <b>104</b> is recorded by a database server <b>107</b>. Operatively coupled to this database server <b>107</b> is any one of a number of databases including, for example, a relational database <b>108</b> and/or an Online Analytic Processing (OLAP) database <b>109</b>. In some example cases, a user <b>113</b> utilizing a GUI <b>114</b> may generate a transaction data request <b>112</b> that is sent to the database server <b>107</b>. This transaction data request <b>112</b> may be transmitted across the network <b>103</b> (not shown), or across some other suitable network (e.g., a Wide Area Network (WAN), or a Local Area Network (LAN)). In response to the transaction data request <b>112</b>, requested transaction data <b>111</b> may be sent to a parallel computing cluster <b>110</b> for processing. This transaction data <b>111</b> may contain an account identifier and transaction data. This parallel computing cluster <b>110</b> may take the requested transaction data <b>111</b> and process it so as to render this data into some type of format that may be viewed in the GUI <b>114</b>. In some example embodiments, this format may be, for example, one or more adjacency matrices. In lieu of, or in addition to, the parallel computing cluster, a High-Performance Computing (HPC) cluster, a vector based computer, a Beowulf cluster, or some type of suitable parallel or distributed computing cluster may be used.
p-0035In some example embodiments, in lieu of retrieving the requested transaction data <b>111</b> from the database server <b>107</b>, a real-time solution may be implemented to retrieve transaction data and display it in real time. This real-time solution may include establishing a Transmission Control Protocol/Internet Protocol (TCP/IP) or User Datagram Protocol/IP connection between the parallel computing cluster <b>110</b> and a computer system (not pictured) monitoring the network <b>103</b>. In one example embodiment, when the computer system monitoring the network <b>103</b> discovers transaction data <b>104</b>, the computer system monitoring the network <b>103</b> sends a copy of this transaction data <b>104</b> to the computing cluster <b>110</b> for processing. Processing may include sorting the transaction data <b>104</b> so as to render it in a GUI <b>114</b>. Various principles of socket programming may be used in conjunction with TCP/IP and UDP/IP to facilitate this real-time solution.
p-0036<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram of an example system <b>200</b> illustrating the use of a pattern recognition computer in associated sorting algorithms residing thereon to sort the requested transaction data <b>111</b> as it may appear in the GUI <b>114</b>. Illustrated is a pattern recognition computer <b>201</b> that is operatively connected to a data store <b>202</b> containing one or more sorting algorithms. These sorting algorithms are more fully shown below and may include some type of sorting algorithm that can sort in Θ(nlogn) time, Θ(n<sup>2</sup>) time, or some other suitable time. Once the requested transaction data <b>111</b> is sorted using a sorting algorithm retrieved from the sorting algorithm data store <b>202</b>, this transaction data may be displayed on the GUI <b>114</b>.
h-0007Example Matrices
p-0037<figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram of an example GUI <b>114</b> displaying a visual representation of an adjacency matrix. In some example embodiments, this adjacency matrix may be composed of various points that denote transactions between accounts such that along the X-axis of the adjacency matrix, receiving accounts are shown, whereas along the Y-axis of the adjacency matrix sending accounts are shown. Points (e.g., convergence points) where a receiving account and sending account intersect may reflect transactions between the sending account and the receiving account. For example, illustrated is a line <b>301</b> that results after the application of one or more sorting algorithms to the requested transaction data <b>111</b>. This line <b>301</b> may reflect, for example, accounts that engaged in one transaction. Further, a line <b>302</b> is shown reflecting accounts that sent more than one transaction. Additionally, a line <b>303</b> is shown reflecting accounts that are involved in less than one transaction.
p-0038<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram of a more granular view of an example visual representation of an adjacency matrix as it may appear within the GUI <b>114</b>. Shown is a portion of the adjacency matrix displayed in <figref idrefs="DRAWINGS">FIG. 3</figref>, but this portion is more granular. In some example embodiments, a row account number <b>401</b> is shown denoting the account number of a particular row. Further, a column account number <b>402</b> is also shown denoting the account number corresponding to a particular column. Further, a convergence value <b>403</b> is also shown denoting the value where the account number for the row <b>401</b> and the account for the column <b>402</b> converge. This value reflected at <b>403</b> may reflect values such as, for example, the total value of transactions between two accounts, the per month value of transactions between two accounts, the number of transactions between two accounts, a boolean value denoting whether or not the two accounts are within the same geographical location or political boundary (e.g., a country), or some other suitable value. In some example embodiments, the various account numbers (e.g., <b>401</b> and <b>402</b>) may be represented as an index value for the matrix as reflected in, for example, index value <b>404</b>. Further, in some example cases, the convergence value <b>403</b> may reflect the properties of the various accounts such as the accounts denoted by <b>401</b> and <b>402</b>.
p-0039<figref idrefs="DRAWINGS">FIG. 5</figref> is a diagram of a more granular view of an example visual representation of an adjacency matrix that may appear within, for example, the GUI <b>114</b>. In some example embodiments, a particular section or quadrant of an adjacency matrix may be viewed such that a plurality of convergence points such as convergence points <b>501</b> and <b>502</b> may be shown. These convergence points may reflect points where a sending accounting and a receiving account may exchange data in the form of moneys, transactions, or other types of relationships. In one example embodiment, a user such as user <b>113</b> may be able to view the adjacency matrix appearing in GUI <b>114</b> at a more granular level through, in some example cases, zooming in on a portion of the adjacency matrix they would like to view. This zooming in feature function is reflected in <figref idrefs="DRAWINGS">FIG. 5</figref>. This zoom-in function may be facilitated via the user <b>113</b> using an input device such as a mouse, keyboard or light pen such that when the focus is placed on a portion of the GUI <b>114</b>, a more granular view is presented.
p-0040<figref idrefs="DRAWINGS">FIG. 6</figref> is a diagram of an example visual representation of an adjacency matrix as it may appear within the GUI <b>114</b> wherein this example adjacency matrix shows sending and receiving accounts and transactions between these two accounts that are sorted. Illustrated is a line <b>601</b> resulting from the sorting of data contained in this adjacency matrix. This line <b>601</b> may reflect some value relating to transactions engaged in between a sending and a receiving account. Further, a line <b>602</b> is shown that may also further reflect additional values relating to transaction data pertaining to the sending and receiving accounts. Similarly, line <b>603</b> may also reflect transactions engaged in by the sending and receiving accounts. As discussed elsewhere, the level of granularity as reflected in <figref idrefs="DRAWINGS">FIG. 6</figref> may be increased or decreased based upon a zoom-in function selected by the user <b>113</b>.
p-0041<figref idrefs="DRAWINGS">FIG. 7</figref> is a diagram of an example visual representation of a portion of an adjacency matrix as may be displayed in, for example, at GUI <b>114</b> where this portion is, for example, a particular section or quadrant of the adjacency matrix. Shown is a quadrant portion of an adjacency matrix reflecting transactions between various sending and receiving accounts. Shown for example is a convergence point <b>701</b> reflecting a particular point wherein a transaction is engaged in between a sending and a receiving account. Similarly, a convergence point <b>702</b> reflects additional information regarding a transaction between a sending and a receiving account. As discussed elsewhere, the level of granularity reflected in <figref idrefs="DRAWINGS">FIG. 7</figref> may be dictated in part by a user <b>113</b> utilizing the GUI <b>114</b> so as to zoom-in or focus on a particular portion of an adjacency matrix.
p-0042<figref idrefs="DRAWINGS">FIG. 8</figref> is a diagram of an example visual representation of an adjacency matrix that may appear in, for example, a GUI <b>114</b> reflecting a plurality of sending accounts related to a particular receiving account. Shown is a grouping <b>801</b> of a plurality of transaction data sent from a plurality of sending accounts to one receiver account. As reflected in grouping <b>801</b>, these various convergence points contained within this grouping are oriented in a vertical manner such that they are related to a particular receiving account residing on the X-axis of the adjacency matrix. This type of grouping <b>801</b> may result as the product of a sorting algorithm applied to the various requested transaction data <b>111</b> used to generate this adjacency matrix or may be the result of a random distribution of data. Further, as discussed elsewhere, the convergence points reflected in the grouping <b>801</b> are more granular compared to, for example, the convergence points as reflected in for example <figref idrefs="DRAWINGS">FIGS. 3 and 4</figref>.
p-0043<figref idrefs="DRAWINGS">FIG. 9</figref> is a diagram of an example visual representation of an adjacency matrix as it may appear in, for example, a GUI <b>114</b> wherein this adjacency reflects a sorted micro-segment. In some example embodiments, a sorted micro-segment may be displayed within the GUI <b>114</b> as a part of the adjacency matrix. In one example embodiment, this sorted micro-segment may be various convergence points existing within the adjacency matrix that are sorted such that a quadrant or a portion of the adjacency matrix is sorted based upon information relating to an account type, the geography of a particular account, the country of n particular account, and/or a particular physical location of the account holder. In some example embodiments, some other suitable type of information may be used to sort this quadrant or portion of the adjacency matrix. For example, as shown in <figref idrefs="DRAWINGS">FIG. 9</figref>, a quadrant <b>901</b> reflects various micro-segments of a larger segment quadrant or portion of the adjacency matrix that has been sorted. This sorting may be done using one of the sorting algorithms mentioned elsewhere and may be performed iteratively or recursively such that the convergence points may be sorted using the sorting algorithm.
p-0044In some example embodiments, the example adjacency matrices of <figref idrefs="DRAWINGS">FIGS. 3 through 9</figref> may be represented as in three dimensions including an X, Y, and Z axis. As shown above, the X and Y axes of this three-dimensional adjacency matrix may relate to accounts in the form of sending accounts and receiving accounts. In addition to these X and Y axes, a Z axis may be added to reflect changes over time relating to the sending and receiving accounts and the X and Y axes and their plurality of convergence points (e.g., representing transaction data). In some example embodiments, the addition of the Z axis would have the effect of providing a topology for the plurality of convergence points. This topology may, for example, allow for the plurality of convergence points to be compared to one another over time so as to provide a context for understand the X and Y axes.
p-0045Some example embodiments may include the use of a database technology including OLAP to provide a basis for analyzing data over time and for generating a three-dimensional adjacency matrix. In such an embodiment, sending accounts and receiving accounts, and the transaction data associated with these accounts, may be stored in a multidimensional cube and retrieved using a Multidimensional Expression (MDX) language. Once retrieved, this data could be passed to method <b>1000</b> outlined below for rendering of the data in a GUI.
p-0046Some example embodiments may include, the use of a recursive or iterative operation to show data displayed in the X, Y, or Z axes of an adjacency matrix (see e.g., <figref idrefs="DRAWINGS">FIGS. 3 through 9</figref>) over a change in time. For example, in one embodiment, a beginning and ending point of time is selected as is the transaction data associated with the period between the beginning and ending point. The beginning and ending point of time may define a block of time. Next, various iterative or recursive steps are selected so as to segment the block of time. A recursive or iterative operation is then executed so as to display the changes in the selected transaction data over each recursive or iterative step. The result of the execution of this recursive or iterative step is an animation effect showing a change of the transaction data over time.
h-0008Example Logic
p-0047<figref idrefs="DRAWINGS">FIG. 10</figref> is a block diagram of an example computer system <b>1000</b>. In some example embodiments, this computer system <b>1000</b> may be a parallel computing cluster <b>110</b>, a data base server <b>107</b>, or a pattern recognition computer <b>201</b>. The various blocks shown herein may be implemented in hardware, firmware, or software. Shown is a retriever <b>1001</b> to retrieve account data including at least one of an account identifier and transaction data. A generator <b>1002</b> is also shown to generate a data structure including the account data. Further, a sorting engine <b>1003</b> is shown to sort the data structure including the account data to create a sorted account data structure. A display <b>1004</b> may also be implemented to display the sorted account data structure. In some example embodiments, the account identifier includes at least one of a numeric value, or a network handle. Some example embodiments may include transaction data that includes at least one of sale data, purchase data, IP address data, or geographic location data. Additionally, in some example embodiments, the data structure includes a multi-dimensional array represented as a matrix. Moreover, the sorted account data structure may include a plurality of sorted account identifiers. Further, the sorted account data structure may include a plurality of sorted transaction data. The sorting may also include includes sorting the data structure based upon at least one of a first type of account identifier, or a first type of transaction data. A selection engine <b>1005</b> may also be implemented to select an area of the sorted account data structure to form a micro segment. Another engine (not pictured) may also be implemented to sort the micro segment to generate a sorted micro segment. This sorting engine may reside as part of the sorting engine <b>1003</b>. Further, this sorting engine may sort the micro segment based upon at least one of a second type of account identifier, or a second type of transaction data.
p-0048<figref idrefs="DRAWINGS">FIG. 11</figref> is a flowchart illustrating an example method <b>1100</b> used to sort an adjacency matrix and/or to micro-sort a portion of an adjacency matrix. Shown is an operation <b>1101</b> that receives account data to form nodes. In particular, when operation <b>1101</b> is executed, the requested transaction data <b>111</b> is retrieved from the database server <b>107</b> and provided to the parallel computing cluster <b>110</b>. In some example embodiments, the operation <b>1001</b> retrieves the requested transaction data <b>111</b> in real time, as opposed to from a data store or database. As a result of computations performed by the parallel computing cluster <b>110</b>, this account data may be displayed and sorted. Further, in some example embodiments, an operation <b>1102</b> is executed that retrieves transaction data to form edges (e.g., convergence points). In some example embodiments, requested transaction data <b>111</b> retrieved from the database server <b>107</b> is processed by a parallel computing cluster <b>110</b> so as to form edges. In one example embodiment, the edges are used to form convergence points within the adjacency matrix where the account data is used to form the accounts creating the X and Y axes of the adjacency matrix.
p-0049In some example embodiments, an operation <b>1103</b> is executed that retrieves a sorting instruction set. The sorting instruction set may be retrieved from, for example, a pattern recognition computer <b>201</b>. This pattern recognition computer <b>201</b> may receive these sorting instructions from, for example, the system administrator or the suitable person. The sorting instructions may be encoded using, for example, an eXtensible Markup Language (XML), a file utilizing some type of character delimited instructions, or some other suitable type of format. An operation <b>1104</b> may be executed that applies the sorting instruction set to the nodes and edges such that the nodes and edges used to generate the convergence points in the X and Y axes of the adjacency matrix are sorted. Further, in some example embodiments, an operation <b>1105</b> is executed that displays a resulting sorted adjacency matrix within the GUI <b>114</b>. An operation <b>1106</b> may be executed that stores resulting adjacency matrix into, for example, a taxonomy database <b>1114</b> or a taxonomy database <b>1115</b>. This taxonomy database <b>1114</b> corresponds to the relational database <b>108</b> whereas the taxonomy database <b>1115</b> corresponds to the OLAP database <b>109</b>. A decisional operation <b>1107</b> may be executed that determines whether or not a micro-segment sort has been requested. In cases where decisional operation <b>1107</b> evaluates to “false,” the termination condition is met. In cases where decisional operation <b>1107</b> evaluates to “true,” a further operation <b>1108</b> is executed.
p-0050With regard to operation <b>1108</b>, when executed, this operation allows a user <b>113</b> to select an area of the sorted adjacency matrix for a micro-segment sort. This selection process may be facilitated through the use of some type of Input/Output (I/O) device such as a mouse, keyboard, light pen, or other suitable device. Once this area is selected, a micro-segment sort may be initiated. As described elsewhere, this area may be, for example, the area <b>901</b> previously referenced in <figref idrefs="DRAWINGS">FIG. 9</figref>. In some example embodiments, the sorting utilized for the micro-segment sort may be based upon one or more sorting algorithms retrieved from, for example, a sorting algorithm data store <b>202</b>. This sorting algorithm, as previously described, may be sorting algorithms manifesting a worse case computation complexity time of Θ(nlogn), and/or Θ(n<sup>2</sup>). An operation <b>1109</b> may be executed that may retrieve sorting instructions for the micro-segment sort. These sorting instructions may be retrieved from, for example, the pattern recognition computer <b>201</b>. These micro-segment sorting instructions may be provided by, for example, a system administrator utilizing, for example, an XML formatted file or a character delimited file. An operation <b>1110</b> may then be executed that acts to apply the sorting algorithm to a particular area so as to generate a micro-segment sort of the selected area. The selected area may be, for example, the area <b>901</b> previously referenced.
p-0051In some example embodiments, the operation <b>1101</b>, when executed, may retrieve account data including at least one of an account identifier and transaction data. The operation <b>1104</b>, when executed, may generate a data structure including the account data. Further, the operation <b>1104</b> may also sort the data structure including the account data to create a sorted account data structure. An operation <b>1105</b> when executed may display the sorted account data structure. In some example embodiments, the account identifier includes at least one of a numeric value, or a network handle. The transaction data may include at least one of sale data, purchase data, IP address data, or geographic location data. Further, the data structure may include a multi-dimensional array represented as a matrix. The sorted account data structure may include a plurality of sorted account identifiers. Further, the sorted account data structure may include a plurality of sorted transaction data. The operation <b>1104</b>, when executed, may also sort the data structure based upon at least one of a first type of account identifier, or a first type of transaction data. An operation <b>1108</b>, when executed, may select an area of the sorted account data structure to form a micro segment. An operation <b>1110</b> when executed may sort the micro segment to generate a sorted micro segment. This operation <b>1110</b>, when executed, may also sort the micro segment based upon at least one of a second type of account identifier, or a second type of transaction data.
p-0052<figref idrefs="DRAWINGS">FIG. 12</figref> is a flowchart illustrating an example method used to execute operation <b>1203</b>. Illustrated is an operation <b>1201</b> that receives sorting instructions when executed. An operation <b>1202</b> is executed that retrieves the sorting algorithm from, for example, a sorting algorithm data store <b>202</b>. An operation <b>1203</b> may be executed that generates a sorting instruction set in the form of sorting instruction set <b>1204</b>.
p-0053<figref idrefs="DRAWINGS">FIG. 13</figref> is a flowchart illustrating an example method used to execute operation <b>1104</b>. Illustrated is an operation <b>1301</b> that retrieves node and/or edge data from, for example, the relational database <b>108</b> or the OLAP database <b>109</b>. Once retrieved, an operation <b>1302</b> is executed that receives the sorting instruction set, such as sorting instruction set <b>1104</b>. An operation <b>1303</b> is executed that parses the sorting instruction set and applies the instructions taken from the parsed sorting instruction set to be used to sort a node and/or edge data. In some example embodiments, the operation <b>1303</b> acts as a sorting engine retrieving node and/or edge data and sorting this data using the sorting algorithm as reflected in the parsed sorting instruction set. An operation <b>1304</b> may be executed that generates a data structure containing the sorted nodes and/or edge data when this data structure may be, for example, a single or multi-dimensional adjacency matrix, hash table, a tree, a binary search tree, or some other suitable data structure.
p-0054<figref idrefs="DRAWINGS">FIG. 14</figref> is a flowchart illustrating an example method used to execute operation <b>1110</b> shown as an operation <b>1401</b> that sets the termination condition for a sort. This setting of a termination condition may be dictated by, for example, a system administrator or other suitable person such as, for example, the user <b>113</b>. An operation <b>1402</b> is executed that retrieves the sorting instruction set <b>1204</b> to be used to sort edge and/or node data, wherein the nodes correspond to sending and receiving accounts and the edges correspond to convergence points such as, for example, transactions between the sending and receiving accounts. In some example embodiments, a decisional operation <b>1403</b> is executed that determines whether or not a termination condition has been met for the sort. In cases where decisional operation <b>1403</b> evaluates to “false,” the operation <b>1402</b> is re-executed. In cases where decisional operation <b>1403</b> evaluates to “true,” an operation <b>1404</b> is executed. This operation <b>1404</b> acts to transmit sorted data to be displayed within the GUI <b>114</b>. In some example embodiments, this operation <b>1010</b> may be used in lieu of operation <b>1203</b> to sort node and/or edge data.
p-0055In some example embodiments, the various operations <b>1101</b> through <b>1110</b> may reside as a part of, for example, the parallel computing cluster <b>110</b>, or other suitable computer system referenced above. In other example embodiments, these various operations <b>1101</b> through <b>1110</b> may reside as a part of the pattern recognition computer <b>201</b>. Further, in some example embodiments, these various operations <b>1101</b> through <b>1110</b> may be divided amongst the parallel computing cluster <b>110</b> and the pattern recognition computer <b>201</b>.
p-0056<figref idrefs="DRAWINGS">FIG. 15</figref> is a diagram of an example data structure displaying a plurality of adjacency matrices shown as a data structure <b>1500</b>. In some example embodiments, this plurality of adjacency matrices may be a multi-dimensional array, wherein each sub-array of the multi-dimensional array corresponds to a particular type of convergence point between a sending and receiving account. For example, a first sub-array <b>1501</b> references the amount of transactions (e.g., convergence points relating to amount of transactions) between a sending and receiving account. Further, a second sub-array <b>1502</b> describes the convergence of geographical locations (e.g., convergence points relating to geographical locations) between a sending and receiving account. Moreover, a third sub-array <b>1503</b> describes a convergence of various IP addresses (e.g., convergence points relating to IP addresses) common between various sending and receiving accounts.
p-0057In some example embodiments, the data structure <b>1500</b> may be implemented to compare multiple points of convergence at once for a set of accounts (e.g., receiving accounts). This data structure <b>1500</b> may allow a user <b>113</b> to see the observe the similarities and differences between accounts across multiple sets of data in the form of convergence points.
p-0058<figref idrefs="DRAWINGS">FIG. 16</figref> is a diagram of an example hash table <b>1600</b> illustrating the relationship between various accounts. Illustrated is a hash table <b>1600</b> utilizing bucket hashing. In some example embodiments, bucket hashing may be utilized to store and relate sending and receiving account data, whereas, in other example embodiments, cluster hashing may be utilized. As illustrated here, a hash table <b>1600</b> is described wherein at each index value for the hash table an account number is shown. For example, an index <b>1603</b> contains an account number 12333. The index <b>1604</b> contains an account number 344353. An index <b>1605</b> contains an account number 6666633. An index <b>1606</b> contains an account value 321431. An index <b>1607</b> contains an account value 36356. Linked to each one of these indexes is a plurality of nodes wherein each one of these nodes represents attributes of a particular account. These attributes may include, for example, a daily transaction amount, an IP address value, a geographical location description, an amount of transaction value, or some other suitable value describing data relating to a particular account. These attributes maybe used to form edges between accounts. Accompanying each one of these values, in some example embodiments, is a link to another value and more particularly to an account associated with that value. For example, a node <b>1608</b> associated with the account at index <b>1606</b> is linked to a node <b>1612</b> associated with index <b>1607</b>. Further, a node <b>1609</b> is associated to a node <b>1613</b> which in turn is associated with an account at index <b>1604</b>. Moreover, a node <b>1610</b> associated with the account at index <b>1606</b> is associated with a node <b>1611</b> associated with an account at index <b>1605</b>. In some example embodiments, some other suitable data structure such as, for example, a tree, may be utilized to allow for the accessing of data associated with a particular sending and a receiving account.
h-0009Example Storage
p-0059Some embodiments may include the various databases (e.g., <b>108</b> and <b>109</b>) being relational databases, or in some cases OLAP based databases. In the case of relational databases, various tables of data are created and data is inserted into, and/or selected from, these tables using SQL, or some other database-query language known in the art. In the case of OLAP databases, one or more multi-dimensional cubes or hypercubes containing multidimensional data from which data is selected from or inserted into using MDX may be implemented. In the case of a database using tables and SQL, a database application such as, for example, MYSQL™, SQLSERVER™, Oracle 81™, 10G™, or some other suitable database application may be used to manage the data. In this, the case of a database using cubes and MDX, a database using Multidimensional On Line Analytic Processing (MOLAP), Relational On Line Analytic Processing (ROLAP), Hybrid Online Analytic Processing (HOLAP), or some other suitable database application may be used to manage the data. These tables or cubes made up of tables, in the case of, for example, ROLAP, are organized into an RDS or Object Relational Data Schema (ORDS), as is known in the art. These schemas may be normalized using certain normalization algorithms so as to avoid abnormalities such as non-additive joins and other problems. Additionally, these normalization algorithms may include Boyce-Codd Normal Form or some other normalization, optimization algorithm known in the art.
p-0060<figref idrefs="DRAWINGS">FIG. 17</figref> is an RDS <b>1700</b> illustrating various data tables associated with one embodiment of the present system method shown as a table <b>1701</b> containing sorting algorithms. These sorting algorithms may be sorting algorithms including algorithms capable of a worst case computation complexity of Θ(nlogn). In some example embodiments, these sorting algorithms may be stored as, for example, a Binary Large Object (BLOB), index and all formatted file or some other suitable format. A table <b>1702</b> is also shown containing transaction amount data. This transaction amount data may be, for example, formatted using, for example, an integer, float, double, currency, or some other suitable data type. Also shown is a Table <b>1703</b> containing time of day and date information pertaining to a particular transaction. This time of day and date information may be formatted using, for example, a date data type, string data type, or some other suitable data type. A table <b>1704</b> is also shown containing geographical location data where this geographical location data may be, for example, a longitude and/or latitude descriptor, Global Positioning System (GPS) descriptor, or some other suitable descriptor format using, for example, a string, XML, or other suitable data type. A table <b>1705</b> is also shown containing transaction volume information where this transaction volume information may be, for example, an integer, float, double, or some other suitable numeric data type used to describe the volume relating to particular transaction between a sending and receiving account. Table <b>1706</b> is also shown that contains unique node identifier information used to uniquely identify various nodes associated with or a particular node associated with data contained in any one of the tables <b>1701</b> through <b>1705</b>.
h-0010A Three-Tier Architecture
p-0061In some embodiments, a method is illustrated as implemented in a distributed or non-distributed software application designed under a three-tier architecture paradigm, whereby the various components of computer code that implement this method may be categorized as belonging to one or more of these three tiers. Some embodiments may include a first tier as an interface (e.g., an interface tier) that is relatively free of application processing. Further, a second tier may be a logic tier that performs application processing in the form of logical/mathematical manipulations of data inputted through the interface level, and communicates the results of these logical/mathematical manipulations to the interface tier, and/or to a backend, or storage, tier. These logical/mathematical manipulations may relate to certain business rules, or processes that govern the software application as a whole. A third, storage tier, may be a persistent storage medium or, non-persistent storage medium. In some cases, one or more of these tiers may be collapsed into another, resulting in a two-tier architecture, or even a one-tier architecture. For example, the interface and logic tiers may be consolidated, or the logic and storage tiers may be consolidated, as in the case of a software application with an embedded database. This three-tier architecture may be implemented using one technology, or, as will be discussed below, a variety of technologies. This three-tier architecture, and the technologies through which it is implemented, may be executed on two or more computer systems organized in a server-client, peer to peer, or some other suitable configuration. Further, these three tiers may be distributed between more than one computer system as various software components.
h-0011Component Design
p-0062Some example embodiments may include the above illustrated tiers, and processes or operations that make them up, as being written as one or more software components. Common to many of these components is the ability to generate, use, and manipulate data. These components, and the functionality associated with each, may be used by client, server, or peer computer systems. These various components may be implemented by a computer system on an as-needed basis. These components may be written in an object-oriented computer language such that a component oriented or object-oriented programming technique can be implemented using a Visual Component Library (VCL), Component Library for Cross Platform (CLX), Java Beans (JB), Java Enterprise Beans (EJB), Component Object Model (COM), Distributed Component Object Model (DCOM), or other suitable technique. These components may be linked to other components via various Application Programming interfaces (APIs), and then compiled into one complete server, client, and/or peer software application. Further, these APIs may be able to communicate through various distributed programming protocols as distributed computing components.
h-0012Distributed Computing Components and Protocols
p-0063Some example embodiments may include remote procedure calls being used to implement one or more of the above illustrated components across a distributed programming environment as distributed computing components. For example, an interface component (e.g., an interface tier) may reside on a first computer system that is remotely located from a second computer system containing a logic component (e.g., a logic tier). These first and second computer systems may be configured in a server-client, peer-to-peer, or some other suitable configuration. These various components may be written using the above illustrated object-oriented programming techniques, and can be written in the same programming language, or a different programming language. Various protocols may be implemented to enable these various components to communicate regardless of the programming language used to write these components. For example, a component written in C++ may be able to communicate with another component written in the Java programming language through utilizing a distributed computing protocol such as a Common Object Request Broker Architecture (CORBA), a Simple Object Access Protocol (SOAP), or some other suitable protocol. Some embodiments may include the use of one or more of these protocols with the various protocols outlined in the OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data.
h-0013A System of Transmission Between a Server and Client
p-0064Some embodiments may utilize the OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data. In applying these models, a system of data transmission between a server and client, or between peer computer systems, is illustrated as a series of roughly five layers comprising: an application layer, a transport layer, a network layer, a data link layer, and a physical layer. In the case of software having a three-tier architecture, the various tiers (e.g., the interface, logic, and storage tiers) reside on the application layer of the TCP/IP protocol stack. In an example implementation using the TCP/IP protocol stack model, data from an application residing at the application layer is loaded into the data load field of a TCP segment residing at the transport layer. This TCP segment also contains port information for a recipient software application residing remotely. This TCP segment is loaded into the data load field of an IP datagram residing at the network layer. Next, this IP datagram is loaded into a frame residing at the data link layer. This frame is then encoded at the physical layer and the data transmitted over a network such as an Internet, LAN, WAN, or some other suitable network. In some cases, Internet refers to a network of networks. These networks may use a variety of protocols for the exchange of data, including the aforementioned TCP/IP, and additionally ATM, SNA, SDI, or some other suitable protocol. These networks may be organized within a variety of topologies (e.g., a star topology), or structures.
h-0014A Computer System
p-0065<figref idrefs="DRAWINGS">FIG. 18</figref> shows a diagrammatic representation of a machine in the example form of a computer system <b>1800</b> that executes a set of instructions to perform any one or more of the methodologies discussed herein. One of the devices <b>102</b> may configured as a computer system <b>1800</b>. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a server-client network environment or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a High-performance computing (HPC) cluster, a vector based computer, a Beowulf cluster, or some type of suitable parallel computing cluster. In some example embodiments, the machine may be a personal computer (PC). Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Example embodiments can also be practiced in distributed system environments where local and remote computer systems, which are linked (e.g., either by hardwired, wireless, or a combination of hardwired and wireless connections) through a network, both perform tasks such as those illustrated in the above description.
p-0066The example computer system <b>1800</b> includes a processor <b>1802</b> (e.g., a Central Processing Unit (CPU), a Graphics Processing Unit (GPU) or both), a main memory <b>1801</b>, and a static memory <b>1806</b>, which communicate with each other via a bus <b>1808</b>. The computer system <b>1800</b> may further include a video display unit <b>1810</b> (e.g., a Liquid Crystal Display (LCD) or a Cathode Ray Tube (CRT)). The computer system <b>1800</b> may also includes an alphanumeric input device <b>1817</b> (e.g., a keyboard), a GUI cursor controller <b>1811</b> (e.g., a mouse), a disk drive unit <b>1816</b>, a signal generation device <b>1815</b> (e.g., a speaker) and a network interface device (e.g., a transmitter) <b>1820</b>.
p-0067The disk drive unit <b>1816</b> includes a machine-readable medium <b>1822</b> on which is stored one or more sets of instructions <b>1821</b> and data structures (e.g., software) embodying or used by any one or more of the methodologies or functions illustrated herein. The software may also reside, completely or at least partially, within the main memory <b>1801</b> and/or within the processor <b>1802</b> during execution thereof by the computer system <b>1800</b>, the main memory <b>1801</b> and the processor <b>1802</b> also constituting machine-readable media.
p-0068The instructions <b>1821</b> may further be transmitted or received over a network <b>1826</b> via the network interface device <b>1820</b> using any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP), Session Initiation Protocol (SIP)).
p-0069The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any of the one or more of the methodologies illustrated herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic medium, and carrier wave signals.
h-0015Marketplace Applications
p-0070In some example embodiments, a system and method is shown that facilitates the visual representation of large amounts of transaction data. This transaction data, in some example embodiments, relates to on line transactions involving goods and services between persons in a network. In some example embodiments, the amount of data may include data in the terabyte range. Some example embodiments may include the generation of an adjacency matrix wherein the axes are composed of accounts and the coordinates within the matrix are composed of transaction information relating to accounts. This adjacency matrix may be converted into a graph in some cases, where the accounts are nodes and the transactions are edges.
p-0071The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that may allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it may not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
Contents5
18 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18
Every citation, both waysCites: the store holds 96 of 97
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9275340B2 | Cited by | United States of America | Applicant |
| US2008162259A1 | Cited by | United States of America | Pre-grant |
| US11074511B2 | Cited by | United States of America | Applicant |
| US9870630B2 | Cited by | United States of America | Applicant |
| US2001010730A1 | Cites | United States of America | Applicant |
| US2001037315A1 | Cites | United States of America | Search report |
| US2001037316A1 | Cites | United States of America | Applicant |
| US2002026348A1 | Cites | United States of America | Search report |
| US2002046049A1 | Cites | United States of America | Search report |
| US2002046113A1 | Cites | United States of America | Applicant |
| US2002072993A1 | Cites | United States of America | Applicant |
| US2002103660A1 | Cites | United States of America | Search report |
| US2002123957A1 | Cites | United States of America | Search report |
| US2002133721A1 | Cites | United States of America | Applicant |
| US2003009411A1 | Cites | United States of America | Search report |
| US2003018558A1 | Cites | United States of America | Search report |
| US2003026404A1 | Cites | United States of America | Search report |
| US2003036989A1 | Cites | United States of America | Search report |
| US2003061132A1 | Cites | United States of America | Search report |
| US2003097320A1 | Cites | United States of America | Applicant |
| US2003172013A1 | Cites | United States of America | Search report |
| US2003204426A1 | Cites | United States of America | Applicant |
| US2003216984A1 | Cites | United States of America | Search report |
| US2004034573A1 | Cites | United States of America | Search report |
| US2004034616A1 | Cites | United States of America | Search report |
| US2004122803A1 | Cites | United States of America | Applicant |
| US2004148211A1 | Cites | United States of America | Applicant |
| US2004164983A1 | Cites | United States of America | Applicant |
| US2004204925A1 | Cites | United States of America | Applicant |
| US2004236688A1 | Cites | United States of America | Search report |
| US2004249866A1 | Cites | United States of America | Applicant |
| US2005144111A1 | Cites | United States of America | Search report |
| US2005182708A1 | Cites | United States of America | Applicant |
| US2005187827A1 | Cites | United States of America | Search report |
| US2005187881A1 | Cites | United States of America | Search report |
| US2005188294A1 | Cites | United States of America | Applicant |
| US2005222929A1 | Cites | United States of America | Search report |
| US2005251371A1 | Cites | United States of America | Applicant |
| US2005256735A1 | Cites | United States of America | Search report |
| US2005273820A1 | Cites | United States of America | Applicant |
| US2005283494A1 | Cites | United States of America | Search report |
| US2006028471A1 | Cites | United States of America | Search report |
| US2006069635A1 | Cites | United States of America | Search report |
| US2006149674A1 | Cites | United States of America | Search report |
| US2006173772A1 | Cites | United States of America | Search report |
| US2006229921A1 | Cites | United States of America | Search report |
| US2006235658A1 | Cites | United States of America | Applicant |
| US2006235764A1 | Cites | United States of America | Applicant |
| US2006287910A1 | Cites | United States of America | Applicant |
| US2007027662A1 | Cites | United States of America | Search report |
| US2007033105A1 | Cites | United States of America | Search report |
| US2007055662A1 | Cites | United States of America | Applicant |
| US2007100875A1 | Cites | United States of America | Search report |
| US2007239694A1 | Cites | United States of America | Applicant |
| US2007282673A1 | Cites | United States of America | Search report |
| US2008011844A1 | Cites | United States of America | Search report |
| US2008015938A1 | Cites | United States of America | Search report |
| US2008135612A1 | Cites | United States of America | Search report |
| US2008140682A1 | Cites | United States of America | Search report |
| US2008162259A1 | Cites | United States of America | Applicant |
| US2009122065A1 | Cites | United States of America | Applicant |
| US2009144213A1 | Cites | United States of America | Applicant |
| US2009234683A1 | Cites | United States of America | Applicant |
| US2010005051A1 | Cites | United States of America | Applicant |
| US2010169137A1 | Cites | United States of America | Applicant |
| US2013138587A1 | Cites | United States of America | Search report |
| US5136690A | Cites | United States of America | Applicant |
| US5185696A | Cites | United States of America | Search report |
| US5390113A | Cites | United States of America | Search report |
| US5577106A | Cites | United States of America | Applicant |
| US5596703A | Cites | United States of America | Applicant |
| US5778178A | Cites | United States of America | Applicant |
| US5819226A | Cites | United States of America | Applicant |
| US5870559A | Cites | United States of America | Search report |
| US5950179A | Cites | United States of America | Applicant |
| US5963922A | Cites | United States of America | Applicant |
| US5987500A | Cites | United States of America | Applicant |
| US6032188A | Cites | United States of America | Applicant |
| US6094643A | Cites | United States of America | Applicant |
| US6208720B1 | Cites | United States of America | Applicant |
| US6212556B1 | Cites | United States of America | Applicant |
| US6256032B1 | Cites | United States of America | Search report |
| US6321206B1 | Cites | United States of America | Applicant |
| US6405173B1 | Cites | United States of America | Applicant |
| US6430545B1 | Cites | United States of America | Applicant |
| US6490566B1 | Cites | United States of America | Applicant |
| US6609120B1 | Cites | United States of America | Applicant |
| US6658393B1 | Cites | United States of America | Applicant |
| US6708155B1 | Cites | United States of America | Applicant |
| US6918096B2 | Cites | United States of America | Applicant |
| US7464056B1 | Cites | United States of America | Search report |
| US7536348B2 | Cites | United States of America | Applicant |
| US7558768B2 | Cites | United States of America | Applicant |
| US7587453B2 | Cites | United States of America | Search report |
| US7626586B1 | Cites | United States of America | Applicant |
| US7813822B1 | Cites | United States of America | Search report |
| US8103566B1 | Cites | United States of America | Search report |
| US8165973B2 | Cites | United States of America | Applicant |
| US8341111B2 | Cites | United States of America | Applicant |
| JPS55110367A | Cites | Japan | Applicant |
18 members in 1 office
Priority claims18
| Document | Office | Kind | Date |
|---|---|---|---|
| 98687907 | United States of America | P | |
| 98687907 | United States of America | P | |
| 98896707 | United States of America | P | |
| 98896707 | United States of America | P | |
| 99153907 | United States of America | P | |
| 99153907 | United States of America | P | |
| 99156907 | United States of America | P | |
| 99156907 | United States of America | P | |
| 500507 | United States of America | A | |
| 60986879 | – | – | – |
| 60988967 | – | – | – |
| 60991539 | – | – | – |
| 60991569 | – | – | – |
| US20070005005 | – | – | – |
| US20070986879P | – | – | – |
| US20070988967P | – | – | – |
| US20070991539P | – | – | – |
| US20070991569P | – | – | – |
Members18
| Document | Office | Kind | |
|---|---|---|---|
| US2009122065A1 | United States of America | A1 | |
| US2009125349A1 | United States of America | A1 | |
| US2009125543A1 | United States of America | A1 | |
| US2009144213A1 | United States of America | A1 | |
| US8046324B2 | United States of America | B2 | |
| US2011313960A1 | United States of America | A1 | |
| US8204840B2 | United States of America | B2 | |
| US2012254424A1 | United States of America | A1 | |
| US8341111B2 | United States of America | B2 | |
| US2013138587A1 | United States of America | A1 | |
| US8775475B2This record | United States of America | B2 | |
| US8791948B2 | United States of America | B2 | |
| US2014324646A1 | United States of America | A1 | |
| US2014327678A1 | United States of America | A1 | |
| US9275340B2 | United States of America | B2 | |
| US2016125300A1 | United States of America | A1 | |
| US9870630B2 | United States of America | B2 | |
| US11074511B2 | United States of America | B2 |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Certificate of correctionCC | CC | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 08775475
- Publication, DOCDB
- 8775475
- Publication, EPODOC
- US8775475
- Application
- 12005005
- Application, DOCDB
- 500507
- Application, EPODOC
- US20070005005
Titles
- English
- Transaction data representations using an adjacency matrix
Classification
- CPC, 4
- G06Q40/12
- G06Q30/06
- G06F16/284
- G06T11/206
- IPC, 2
- G06F7 00
- G06F17 30
- USPC, 1
- 707793000