US20140324646A1 - Transaction data representations using an adjacency matrix - Google Patents

Transaction data representations using an adjacency matrix Download PDF

Info

Publication number
US20140324646A1
US20140324646A1 US14/323,858 US201414323858A US2014324646A1 US 20140324646 A1 US20140324646 A1 US 20140324646A1 US 201414323858 A US201414323858 A US 201414323858A US 2014324646 A1 US2014324646 A1 US 2014324646A1
Authority
US
United States
Prior art keywords
matrix
data
purchasers
transaction
account
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/323,858
Inventor
Dhanurjay A.S. Patil
Grahame Andrew Jastrebski
Allison E. Miller
Chris Riccomini
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PayPal Inc
Original Assignee
eBay Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by eBay Inc filed Critical eBay Inc
Assigned to EBAY INC. reassignment EBAY INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: JASTREBSKI, GRAHAME A., MILLER, ALLISON E., PATIL, DHANURJAY A.
Publication of US20140324646A1 publication Critical patent/US20140324646A1/en
Assigned to PAYPAL, INC. reassignment PAYPAL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EBAY INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Definitions

  • the 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.
  • the 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.
  • FIG. 1 is a diagram of a system, according to an example embodiment, used to generate an adjacency matrix representation of transaction data.
  • FIG. 2 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).
  • GUI Graphical User Interface
  • FIG. 3 is a diagram of a GUI, according to an example embodiment, displaying a visual representation of an adjacency matrix.
  • FIG. 4 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.
  • FIG. 5 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.
  • FIG. 6 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.
  • FIG. 7 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.
  • FIG. 8 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.
  • FIG. 9 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.
  • FIG. 10 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.
  • FIG. 11 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.
  • FIG. 12 is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that retrieves a sorting instruction set.
  • FIG. 13 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.
  • FIG. 14 is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that sets the termination condition for a sort.
  • FIG. 15 is a diagram of a data structure, according to an example embodiment, displaying a plurality of adjacency matrices shown as a data structure.
  • FIG. 16 is a diagram of a hash table, according to an example embodiment, illustrating the relationship between various accounts.
  • FIG. 17 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.
  • RDS Relational Data Schema
  • FIG. 18 shows a diagrammatic representation of a machine in the example form of a computer system, according to an example embodiment.
  • 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.
  • a transaction may be any type of relationship between two or more persons, where this relationship may be represented in a digital format.
  • 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.
  • Some 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.
  • 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.
  • 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.
  • a plurality of adjacency matrices are generated such that a multidimensional array of adjacency matrices are generated.
  • 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.
  • 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.
  • sorting may be performed using any one of a number of comparison based or hybrid sorting algorithms.
  • a merge sort algorithm or a quick sort algorithm may be implemented.
  • a hybrid of some type of comparison based sorting algorithm e.g., the aforementioned merge sort or quick sort
  • Sorting algorithms with ⁇ (n 2 ) performance include, for example, bubble sort and selection sort.
  • 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 2 ).
  • 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.
  • 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.
  • 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 setter or purchaser of goods or services.
  • 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.
  • 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.
  • 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.
  • A.I. Artificial intelligence
  • Some 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.
  • a system and method for “Network Rating Visualization” may be used to identify the various nodes and edges appearing in the adjacency matrix.
  • additional patterns may be identified, classified, and added to the taxonomy of graphs (e.g., a taxonomy database) for future reference.
  • 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.
  • 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.
  • FIG. 1 is a diagram of an example system 100 used to generate an adjacency matrix representation of transaction data. Shown is a buyer 101 utilizing a computer system 102 which generates transaction data 104 . In some example embodiments, this transaction data 104 is transmitted across a network 103 wherein this network 103 may be, for example, an intranet or an Internet. This transaction data 104 may be received by a seller 106 utilizing a computer system 105 . Further, in some example embodiments, this transaction data 104 is recorded by a database server 107 . Operatively coupled to this database server 107 is any one of a number of databases including, for example, a relational database 108 and/or an Online Analytic Processing (OLAP) database 109 .
  • OLAP Online Analytic Processing
  • a user 113 utilizing a GUI 114 may generate a transaction data request 112 that is sent to the database server 107 .
  • This transaction data request 112 may be transmitted across the network 103 (not shown), or across some other suitable network (e.g., a Wide Area Network (WAN), or a Local Area Network (LAN)).
  • requested transaction data 111 may be sent to a parallel computing cluster 110 for processing.
  • This transaction data 111 may contain an account identifier and transaction data.
  • This parallel computing cluster 110 may take the requested transaction data 111 and process it so as to render this data into some type of format that may be viewed in the GUI 114 .
  • this format may be, for example, one or more adjacency matrices.
  • a High-Performance Computing (HPC) cluster may be used instead of, or in addition to, the parallel computing cluster.
  • HPC High-Performance Computing
  • a vector based computer may be used instead of, or in addition to, the parallel computing cluster.
  • Beowulf cluster may be used instead of, or in addition to, the parallel computing cluster.
  • 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 110 and a computer system (not pictured) monitoring the network 103 .
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • UDP/IP User Datagram Protocol/IP
  • Processing may include sorting the transaction data 104 so as to render it in a GUI 114 .
  • Various principles of socket programming may be used in conjunction with TCP/IP and UDP/IP to facilitate this real-time solution.
  • FIG. 2 is a diagram of an example system 200 illustrating the use of a pattern recognition computer in associated sorting algorithms residing thereon to sort the requested transaction data 111 as it may appear in the GUI 114 .
  • Illustrated is a pattern recognition computer 201 that is operatively connected to a data store 202 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 2 ) time, or some other suitable time.
  • FIG. 3 is a diagram of an example GUI 114 displaying a visual representation of an adjacency matrix.
  • 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.
  • a line 301 that results after the application of one or more sorting algorithms to the requested transaction data 111 .
  • This line 301 may reflect, for example, accounts that engaged in one transaction.
  • a line 302 is shown reflecting accounts that sent more than one transaction.
  • a line 303 is shown reflecting accounts that are involved in less than one transaction.
  • FIG. 4 is a diagram of a more granular view of an example visual representation of an adjacency matrix as it may appear within the GUI 114 . Shown is a portion of the adjacency matrix displayed in FIG. 3 , but this portion is more granular.
  • a row account number 401 is shown denoting the account number of a particular row.
  • a column account number 402 is also shown denoting the account number corresponding to a particular column.
  • a convergence value 403 is also shown denoting the value where the account number for the row 401 and the account for the column 402 converge.
  • This value reflected at 403 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.
  • the various account numbers e.g., 401 and 402
  • the convergence value 403 may reflect the properties of the various accounts such as the accounts denoted by 401 and 402 .
  • FIG. 5 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 114 .
  • a particular section or quadrant of an adjacency matrix may be viewed such that a plurality of convergence points such as convergence points 501 and 502 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.
  • a user such as user 113 may be able to view the adjacency matrix appearing in GUI 114 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 FIG. 5 .
  • This zoom-in function may be facilitated via the user 113 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 114 , a more granular view is presented.
  • FIG. 6 is a diagram of an example visual representation of an adjacency matrix as it may appear within the GUI 114 wherein this example adjacency matrix shows sending and receiving accounts and transactions between these two accounts that are sorted. Illustrated is a line 601 resulting from the sorting of data contained in this adjacency matrix. This line 601 may reflect some value relating to transactions engaged in between a sending and a receiving account. Further, a line 602 is shown that may also further reflect additional values relating to transaction data pertaining to the sending and receiving accounts. Similarly, line 603 may also reflect transactions engaged in by the sending and receiving accounts. As discussed elsewhere, the level of granularity as reflected in FIG. 6 may be increased or decreased based upon a zoom-in function selected by the user 113 .
  • FIG. 7 is a diagram of an example visual representation of a portion of an adjacency matrix as may be displayed in, for example, at GUI 114 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 701 reflecting a particular point wherein a transaction is engaged in between a sending and a receiving account. Similarly, a convergence point 702 reflects additional information regarding a transaction between a sending and a receiving account. As discussed elsewhere, the level of granularity reflected in FIG. 7 may be dictated in part by a user 113 utilizing the GUI 114 so as to zoom-in focus on a particular portion of an adjacency matrix.
  • FIG. 8 is a diagram of an example visual representation of an adjacency matrix that may appear in, for example, a GUI 114 reflecting a plurality of sending accounts related to a particular receiving account. Shown is a grouping 801 of a plurality of transaction data sent from a plurality of sending accounts to one receiver account. As reflected in grouping 801 , 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 801 may result as the product of a sorting algorithm applied to the various requested transaction data 111 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 801 are more granular compared to, for example, the convergence points as reflected in for example FIGS. 3 and 4 .
  • FIG. 9 is a diagram of an example visual representation of an adjacency matrix as it may appear in, for example, a GUI 114 wherein this adjacency reflects a sorted micro-segment.
  • a sorted micro-segment may be displayed within the GUI 114 as a part of the adjacency matrix.
  • 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.
  • some other suitable type of information may be used to sort this quadrant or portion of the adjacency matrix.
  • a quadrant 901 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.
  • the example adjacency matrices of FIGS. 3 through 9 may be represented as in three dimensions including an X, Y, and Z axis.
  • the X and Y axes of this three-dimensional adjacency matrix may relate to accounts in the form of sending accounts and receiving accounts.
  • 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).
  • 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.
  • Some 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.
  • 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 1000 outlined below for rendering of the data in a GUI.
  • MDX Multidimensional Expression
  • Some 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., FIGS. 3 through 9 ) over a change in time.
  • 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.
  • 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.
  • FIG. 10 is a block diagram of an example computer system 1000 .
  • this computer system 1000 may be a parallel computing cluster 110 , a data base server 107 , or a pattern recognition computer 201 .
  • the various blocks shown herein may be implemented in hardware, firmware, or software. Shown is a retriever 1001 to retrieve account data including at least one of an account identifier and transaction data.
  • a generator 1002 is also shown to generate a data structure including the account data.
  • a sorting engine 1003 is shown to sort the data structure including the account data to create a sorted account data structure.
  • a display 1004 may also be implemented to display the sorted account structure.
  • 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 1005 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 1003 . 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.
  • FIG. 11 is a flowchart illustrating an example method 1100 used to sort an adjacency matrix and/or to micro-sort a portion of an adjacency matrix. Shown is an operation 1101 that receives account data to form nodes.
  • the requested transaction data 111 is retrieved from the database server 107 and provided to the parallel computing cluster 110 .
  • the operation 1001 retrieves the requested transaction data 111 in real time, as opposed to from a data store or database.
  • this account data may be displayed and sorted.
  • an operation 1102 is executed that retrieves transaction data to form edges (e.g., convergence points).
  • requested transaction data 111 retrieved from the database server 107 is processed by a parallel computing cluster 110 so as to form edges.
  • 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.
  • an operation 1103 is executed that retrieves a sorting instruction set.
  • the sorting instruction set may be retrieved from, for example, a pattern recognition computer 201 .
  • This pattern recognition computer 201 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 1104 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.
  • an operation 1105 is executed that displays a resulting sorted adjacency matrix within the GUI 114 .
  • An operation 1106 may be executed that stores resulting adjacency matrix into, for example, a taxonomy database 1114 or a taxonomy database 1115 .
  • This taxonomy database 1114 corresponds to the relational database 108 whereas the taxonomy database 1115 corresponds to the OLAP database 109 .
  • a decisional operation 1107 may be executed that determines whether or not a micro-segment sort has been requested. In cases where decisional operation 1107 evaluates to “false,” the termination condition is met. In cases where decisional operation 1107 evaluates to “true,” a further operation 1108 is executed.
  • this operation when executed, this operation allows a user 113 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.
  • I/O Input/Output
  • a micro-segment sort may be initiated. As described elsewhere, this area may be, for example, the area 901 previously referenced in FIG. 9 .
  • 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 202 .
  • This sorting algorithm may be sorting algorithms manifesting a worse case computation complexity time of ⁇ (nlogn), and/or ⁇ (n 2 ).
  • An operation 1109 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 201 . 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 1110 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 901 previously referenced.
  • the operation 1101 when executed, may retrieve account data including at least one of an account identifier and transaction data.
  • the operation 1104 when executed, may generate a data structure including the account data. Further, the operation 1104 may also sort the data structure including the account data to create a sorted account data structure.
  • An operation 1105 when executed may display the sorted account data structure.
  • 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.
  • the sorted account data structure may include a plurality of sorted transaction data.
  • the operation 1104 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 1108 when executed, may select an area of the sorted account data structure to form a micro segment.
  • An operation 1110 when executed may sort the micro segment to generate a sorted micro segment. This operation 1110 , when executed, may also sort the micro segment based upon at east one of a second type of account identifier, or a second type of transaction data.
  • FIG. 12 is a flowchart illustrating an example method used to execute operation 1203 . Illustrated is an operation 1201 that receives sorting instructions when executed. An operation 1202 is executed that retrieves the sorting algorithm from, for example, a sorting algorithm data store 202 . An operation 1203 may be executed that generates a sorting instruction set in the form of sorting instruction set 1204 .
  • FIG. 13 is a flowchart illustrating an example method used to execute operation 1104 . Illustrated is an operation 1301 that retrieves node and/or edge data from, for example, the relational database 108 or the OLAP database 109 . Once retrieved, an operation 1302 is executed that receives the sorting instruction set, such as sorting instruction set 1104 . An operation 1303 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 1303 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 1304 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.
  • FIG. 14 is a flowchart illustrating an example method used to execute operation 1110 shown as an operation 1401 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 113 .
  • An operation 1402 is executed that retrieves the sorting instruction set 1204 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.
  • a decisional operation 1403 is executed that determines whether or not a termination condition has been met for the sort.
  • this operation 1404 acts to transmit sorted data to be displayed within the GUI. 114 . In some example embodiments, this operation 1010 may be used in lieu of operation 1203 to sort node and/or edge data.
  • the various operations 1101 through 1110 may reside as a part of, for example, the parallel computing cluster 110 , or other suitable computer system referenced above. In other example embodiments, these various operations 1101 through 1110 may reside as a part of the pattern recognition computer 201 . Further, in some example embodiments, these various operations 1101 through 1110 may be divided amongst the parallel computing cluster 110 and the pattern recognition computer 201 .
  • FIG. 15 is a diagram of an example data structure displaying a plurality of adjacency matrices shown as a data structure 1500 .
  • 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.
  • a first sub-array 1501 references the amount of transactions (e.g., convergence points relating to amount of transactions) between a sending and receiving account.
  • a second sub-array 1502 describes the convergence of geographical locations (e.g., convergence points relating to geographical locations) between a sending and receiving account.
  • a third sub-array 1503 describes a convergence of various IP addresses (e.g., convergence points relating to IP addresses) common between various sending and receiving accounts.
  • the data structure 1500 may be implemented to compare multiple points of convergence at once for a set of accounts (e.g., receiving accounts). This data structure 1500 may allow a user 113 to see the observe the similarities and differences between accounts across multiple sets of data in the form of convergence points.
  • FIG. 16 is a diagram of an example hash table 1600 illustrating the relationship between various accounts. Illustrated is a hash table 1600 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 1600 is described wherein at each index value for the hash table an account number is shown. For example, an index 1603 contains an account number 12333. The index 1604 contains an account number 344353. An index 1605 contains an account number 6666633. An index 1606 contains an account value 321431. An index 1607 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 1608 associated with the account at index 1606 is linked to a node 1612 associated with index 1607 . Further, a node 1609 is associated to a node 1613 which in turn is associated with an account at index 1604 .
  • a node 1610 associated with the account at index 1606 is associated with a node 1611 associated with an account at index 1605 .
  • 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.
  • Some embodiments may include the various databases (e.g., 108 and 109 ) being relational databases, or in some cases OLAP based databases.
  • 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.
  • 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.
  • a database application such as, for example, MYSQLTM, SQLSERVERTM, Oracle 81TM, 10GTM, or some other suitable database application may be used to manage the data
  • 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
  • MOLAP Multidimensional On Line Analytic Processing
  • ROLAP Relational On line Analytic Processing
  • HOLAP Hybrid Online Analytic Processing
  • 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.
  • RDS Object Relational Data Schema
  • 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
  • FIG. 17 is an RDS 1700 illustrating various data tables associated with one embodiment of the present system method shown as a table 1701 containing sorting algorithms.
  • sorting algorithms may be sorting algorithms including algorithms capable of a worst case computation complexity of ⁇ (nlogn).
  • these sorting algorithms may be stored as, for example, a Binary Large Object (BLOB), index and all formatted file or some other suitable format.
  • BLOB Binary Large Object
  • a table 1702 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.
  • Table 1703 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 1704 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 1705 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 1706 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 1701 through 1705 .
  • 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.
  • 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.
  • 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.
  • 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.
  • Some 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.
  • APIs Application Programming interfaces
  • Some 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.
  • an interface component e.g., an interface tier
  • 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.
  • 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.
  • CORBA Common Object Request Broker Architecture
  • SOAP Simple Object Access 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.
  • Some embodiments may utilize the OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data.
  • OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data.
  • 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.
  • the various tiers e.g., the interface, logic, and storage tiers
  • 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.
  • 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.
  • 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.
  • FIG. 18 shows a diagrammatic representation of a machine in the example form of a computer system 1800 that executes a set of instructions to perform any one or more of the methodologies discussed herein.
  • One of the devices 102 may configured as a computer system 1800 .
  • 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.
  • HPC High-performance computing
  • the machine may be a personal computer (PC).
  • PC personal computer
  • 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 (i.e., 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.
  • the example computer system 1800 includes a processor 1802 (e.g., a Central Processing Unit (CPU), a Graphics Processing Unit (GPU) or both), a main memory 1801 , and a static memory 1806 , which communicate with each other via a bus 1808 .
  • the computer system 1800 may further include a video display unit 1810 (e.g., a Liquid Crystal Display (LCD) or a Cathode Ray Tube (CRT)).
  • the computer system 1800 may also includes an alphanumeric input device 1817 (e.g., a keyboard), a GUI cursor controller 1811 (e.g., a mouse), a disk drive unit 1816 , a signal generation device 1815 (e.g., a speaker) and a network interface device (e.g., a transmitter) 1820 .
  • an alphanumeric input device 1817 e.g., a keyboard
  • a GUI cursor controller 1811 e.g., a mouse
  • a disk drive unit 1816 e.g., a disk drive unit 1816
  • a signal generation device 1815 e.g., a speaker
  • a network interface device e.g., a transmitter
  • the disk drive unit 1816 includes a machine-readable medium 1822 on which is stored one or more sets of instructions 1821 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 1801 and/or within the processor 1802 during execution thereof by the computer system 1800 , the main memory 1801 and the processor 1802 also constituting machine-readable media.
  • the instructions 1821 may further be transmitted or received over a network 1826 via the network interface device 1820 using any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP), Session Initiation Protocol (SIP)).
  • HTTP Hyper Text Transfer Protocol
  • SIP Session Initiation Protocol
  • 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.
  • a system and method 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.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

In some example embodiments, a system and method is illustrated as including receiving an indication of a period of time and a recursive operation to segment the period of time. Account data including at least one account identifier and transaction data for the at least one account identifier for the period of time is retrieved. Further, in some example embodiments, a matrix is generated based on the retrieved account data. The recursive operation is executed, whereby the execution results in a graphical effect showing the changes of the transaction data over the period of time.

Description

    RELATED APPLICATIONS
  • This application is a continuation of and claims the benefit of priority under to U.S. patent application Ser. No. 12/005,005, filed on Dec. 20, 2007, which claims the benefit of priority under to U.S. Provisional Patent Application Ser. No. 60/991,569, filed on Nov. 30, 2007, the benefit of priority of each of which is claimed hereby, and each of which are incorporated by reference herein in their entirety.
  • TECHNICAL FIELD
  • The 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
  • The 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
  • Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
  • FIG. 1 is a diagram of a system, according to an example embodiment, used to generate an adjacency matrix representation of transaction data.
  • FIG. 2 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).
  • FIG. 3 is a diagram of a GUI, according to an example embodiment, displaying a visual representation of an adjacency matrix.
  • FIG. 4 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.
  • FIG. 5 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.
  • FIG. 6 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.
  • FIG. 7 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.
  • FIG. 8 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.
  • FIG. 9 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.
  • FIG. 10 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.
  • FIG. 11 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.
  • FIG. 12 is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that retrieves a sorting instruction set.
  • FIG. 13 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.
  • FIG. 14 is a flowchart illustrating a method, according to an example embodiment, used to execute an operation that sets the termination condition for a sort.
  • FIG. 15 is a diagram of a data structure, according to an example embodiment, displaying a plurality of adjacency matrices shown as a data structure.
  • FIG. 16 is a diagram of a hash table, according to an example embodiment, illustrating the relationship between various accounts.
  • FIG. 17 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.
  • FIG. 18 shows a diagrammatic representation of a machine in the example form of a computer system, according to an example embodiment.
  • DETAILED DESCRIPTION
  • A 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.
  • In 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.
  • Some 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.
  • In 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.
  • In 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 Θ(nlogn) performance may be implemented in conjunction with another sorting algorithm with Θ(n2) performance. Sorting algorithms with Θ(n2) 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 Θ(n2).
  • In 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.
  • In 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.
  • In 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 setter 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.
  • Some 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.
  • In 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.
  • EXAMPLE SYSTEM
  • FIG. 1 is a diagram of an example system 100 used to generate an adjacency matrix representation of transaction data. Shown is a buyer 101 utilizing a computer system 102 which generates transaction data 104. In some example embodiments, this transaction data 104 is transmitted across a network 103 wherein this network 103 may be, for example, an intranet or an Internet. This transaction data 104 may be received by a seller 106 utilizing a computer system 105. Further, in some example embodiments, this transaction data 104 is recorded by a database server 107. Operatively coupled to this database server 107 is any one of a number of databases including, for example, a relational database 108 and/or an Online Analytic Processing (OLAP) database 109. In some example cases, a user 113 utilizing a GUI 114 may generate a transaction data request 112 that is sent to the database server 107. This transaction data request 112 may be transmitted across the network 103 (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 112, requested transaction data 111 may be sent to a parallel computing cluster 110 for processing. This transaction data 111 may contain an account identifier and transaction data. This parallel computing cluster 110 may take the requested transaction data 111 and process it so as to render this data into some type of format that may be viewed in the GUI 114. 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.
  • In some example embodiments, in lieu of retrieving the requested transaction data 111 from the database server 107, 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 110 and a computer system (not pictured) monitoring the network 103. In one example embodiment, when the computer system monitoring the network 103 discovers transaction data 104, the computer system monitoring the network 103 sends a copy of this transaction data 104 to the computing cluster 110 for processing. Processing may include sorting the transaction data 104 so as to render it in a GUI 114. Various principles of socket programming may be used in conjunction with TCP/IP and UDP/IP to facilitate this real-time solution.
  • FIG. 2 is a diagram of an example system 200 illustrating the use of a pattern recognition computer in associated sorting algorithms residing thereon to sort the requested transaction data 111 as it may appear in the GUI 114. Illustrated is a pattern recognition computer 201 that is operatively connected to a data store 202 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, Θ(n2) time, or some other suitable time. Once the requested transaction data 111 is sorted using a sorting algorithm retrieved from the sorting algorithm data store 202, this transaction data may be displayed on the GUI 114.
  • EXAMPLE MATRICES
  • FIG. 3 is a diagram of an example GUI 114 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 301 that results after the application of one or more sorting algorithms to the requested transaction data 111. This line 301 may reflect, for example, accounts that engaged in one transaction. Further, a line 302 is shown reflecting accounts that sent more than one transaction. Additionally, a line 303 is shown reflecting accounts that are involved in less than one transaction.
  • FIG. 4 is a diagram of a more granular view of an example visual representation of an adjacency matrix as it may appear within the GUI 114. Shown is a portion of the adjacency matrix displayed in FIG. 3, but this portion is more granular. In some example embodiments, a row account number 401 is shown denoting the account number of a particular row. Further, a column account number 402 is also shown denoting the account number corresponding to a particular column. Further, a convergence value 403 is also shown denoting the value where the account number for the row 401 and the account for the column 402 converge. This value reflected at 403 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., 401 and 402) may be represented as an index value for the matrix as reflected in, for example, index value 404. Further, in some example cases, the convergence value 403 may reflect the properties of the various accounts such as the accounts denoted by 401 and 402.
  • FIG. 5 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 114. 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 501 and 502 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 113 may be able to view the adjacency matrix appearing in GUI 114 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 FIG. 5. This zoom-in function may be facilitated via the user 113 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 114, a more granular view is presented.
  • FIG. 6 is a diagram of an example visual representation of an adjacency matrix as it may appear within the GUI 114 wherein this example adjacency matrix shows sending and receiving accounts and transactions between these two accounts that are sorted. Illustrated is a line 601 resulting from the sorting of data contained in this adjacency matrix. This line 601 may reflect some value relating to transactions engaged in between a sending and a receiving account. Further, a line 602 is shown that may also further reflect additional values relating to transaction data pertaining to the sending and receiving accounts. Similarly, line 603 may also reflect transactions engaged in by the sending and receiving accounts. As discussed elsewhere, the level of granularity as reflected in FIG. 6 may be increased or decreased based upon a zoom-in function selected by the user 113.
  • FIG. 7 is a diagram of an example visual representation of a portion of an adjacency matrix as may be displayed in, for example, at GUI 114 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 701 reflecting a particular point wherein a transaction is engaged in between a sending and a receiving account. Similarly, a convergence point 702 reflects additional information regarding a transaction between a sending and a receiving account. As discussed elsewhere, the level of granularity reflected in FIG. 7 may be dictated in part by a user 113 utilizing the GUI 114 so as to zoom-in focus on a particular portion of an adjacency matrix.
  • FIG. 8 is a diagram of an example visual representation of an adjacency matrix that may appear in, for example, a GUI 114 reflecting a plurality of sending accounts related to a particular receiving account. Shown is a grouping 801 of a plurality of transaction data sent from a plurality of sending accounts to one receiver account. As reflected in grouping 801, 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 801 may result as the product of a sorting algorithm applied to the various requested transaction data 111 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 801 are more granular compared to, for example, the convergence points as reflected in for example FIGS. 3 and 4.
  • FIG. 9 is a diagram of an example visual representation of an adjacency matrix as it may appear in, for example, a GUI 114 wherein this adjacency reflects a sorted micro-segment. In some example embodiments, a sorted micro-segment may be displayed within the GUI 114 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 FIG. 9, a quadrant 901 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.
  • In some example embodiments, the example adjacency matrices of FIGS. 3 through 9 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.
  • Some 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 1000 outlined below for rendering of the data in a GUI.
  • Some 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., FIGS. 3 through 9) 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.
  • EXAMPLE LOGIC
  • FIG. 10 is a block diagram of an example computer system 1000. In some example embodiments, this computer system 1000 may be a parallel computing cluster 110, a data base server 107, or a pattern recognition computer 201. The various blocks shown herein may be implemented in hardware, firmware, or software. Shown is a retriever 1001 to retrieve account data including at least one of an account identifier and transaction data. A generator 1002 is also shown to generate a data structure including the account data. Further, a sorting engine 1003 is shown to sort the data structure including the account data to create a sorted account data structure. A display 1004 may also be implemented to display the sorted account 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 1005 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 1003. 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.
  • FIG. 11 is a flowchart illustrating an example method 1100 used to sort an adjacency matrix and/or to micro-sort a portion of an adjacency matrix. Shown is an operation 1101 that receives account data to form nodes. In particular, when operation 1101 is executed, the requested transaction data 111 is retrieved from the database server 107 and provided to the parallel computing cluster 110. In some example embodiments, the operation 1001 retrieves the requested transaction data 111 in real time, as opposed to from a data store or database. As a result of computations performed by the parallel computing cluster 110, this account data may be displayed and sorted. Further, in some example embodiments, an operation 1102 is executed that retrieves transaction data to form edges (e.g., convergence points). In some example embodiments, requested transaction data 111 retrieved from the database server 107 is processed by a parallel computing cluster 110 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.
  • In some example embodiments, an operation 1103 is executed that retrieves a sorting instruction set. The sorting instruction set may be retrieved from, for example, a pattern recognition computer 201. This pattern recognition computer 201 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 1104 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 1105 is executed that displays a resulting sorted adjacency matrix within the GUI 114. An operation 1106 may be executed that stores resulting adjacency matrix into, for example, a taxonomy database 1114 or a taxonomy database 1115. This taxonomy database 1114 corresponds to the relational database 108 whereas the taxonomy database 1115 corresponds to the OLAP database 109. A decisional operation 1107 may be executed that determines whether or not a micro-segment sort has been requested. In cases where decisional operation 1107 evaluates to “false,” the termination condition is met. In cases where decisional operation 1107 evaluates to “true,” a further operation 1108 is executed.
  • With regard to operation 1108, when executed, this operation allows a user 113 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 901 previously referenced in FIG. 9. 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 202. This sorting algorithm, as previously described, may be sorting algorithms manifesting a worse case computation complexity time of Θ(nlogn), and/or Θ(n2). An operation 1109 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 201. 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 1110 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 901 previously referenced.
  • In some example embodiments, the operation 1101, when executed, may retrieve account data including at least one of an account identifier and transaction data. The operation 1104, when executed, may generate a data structure including the account data. Further, the operation 1104 may also sort the data structure including the account data to create a sorted account data structure. An operation 1105 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 1104, 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 1108, when executed, may select an area of the sorted account data structure to form a micro segment. An operation 1110 when executed may sort the micro segment to generate a sorted micro segment. This operation 1110, when executed, may also sort the micro segment based upon at east one of a second type of account identifier, or a second type of transaction data.
  • FIG. 12 is a flowchart illustrating an example method used to execute operation 1203. Illustrated is an operation 1201 that receives sorting instructions when executed. An operation 1202 is executed that retrieves the sorting algorithm from, for example, a sorting algorithm data store 202. An operation 1203 may be executed that generates a sorting instruction set in the form of sorting instruction set 1204.
  • FIG. 13 is a flowchart illustrating an example method used to execute operation 1104. Illustrated is an operation 1301 that retrieves node and/or edge data from, for example, the relational database 108 or the OLAP database 109. Once retrieved, an operation 1302 is executed that receives the sorting instruction set, such as sorting instruction set 1104. An operation 1303 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 1303 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 1304 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.
  • FIG. 14 is a flowchart illustrating an example method used to execute operation 1110 shown as an operation 1401 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 113. An operation 1402 is executed that retrieves the sorting instruction set 1204 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 1403 is executed that determines whether or not a termination condition has been met for the sort. In cases where decisional operation 1403 evaluates to “false,” the operation 1402 is re-executed. In cases where decisional operation 1403 evaluates to “true,” an operation 1404 is executed. This operation 1404 acts to transmit sorted data to be displayed within the GUI. 114. In some example embodiments, this operation 1010 may be used in lieu of operation 1203 to sort node and/or edge data.
  • In some example embodiments, the various operations 1101 through 1110 may reside as a part of, for example, the parallel computing cluster 110, or other suitable computer system referenced above. In other example embodiments, these various operations 1101 through 1110 may reside as a part of the pattern recognition computer 201. Further, in some example embodiments, these various operations 1101 through 1110 may be divided amongst the parallel computing cluster 110 and the pattern recognition computer 201.
  • FIG. 15 is a diagram of an example data structure displaying a plurality of adjacency matrices shown as a data structure 1500. 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 1501 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 1502 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 1503 describes a convergence of various IP addresses (e.g., convergence points relating to IP addresses) common between various sending and receiving accounts.
  • In some example embodiments, the data structure 1500 may be implemented to compare multiple points of convergence at once for a set of accounts (e.g., receiving accounts). This data structure 1500 may allow a user 113 to see the observe the similarities and differences between accounts across multiple sets of data in the form of convergence points.
  • FIG. 16 is a diagram of an example hash table 1600 illustrating the relationship between various accounts. Illustrated is a hash table 1600 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 1600 is described wherein at each index value for the hash table an account number is shown. For example, an index 1603 contains an account number 12333. The index 1604 contains an account number 344353. An index 1605 contains an account number 6666633. An index 1606 contains an account value 321431. An index 1607 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 1608 associated with the account at index 1606 is linked to a node 1612 associated with index 1607. Further, a node 1609 is associated to a node 1613 which in turn is associated with an account at index 1604. Moreover, a node 1610 associated with the account at index 1606 is associated with a node 1611 associated with an account at index 1605. 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.
  • EXAMPLE STORAGE
  • Some embodiments may include the various databases (e.g., 108 and 109) 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.
  • FIG. 17 is an RDS 1700 illustrating various data tables associated with one embodiment of the present system method shown as a table 1701 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 1702 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 1703 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 1704 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 1705 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 1706 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 1701 through 1705.
  • A THREE-TIER ARCHITECTURE
  • In 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 logica/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.
  • COMPONENT DESIGN
  • Some 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.
  • DISTRIBUTED COMPUTING COMPONENTS AND PROTOCOLS
  • Some 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.
  • A SYSTEM OF TRANSMISSION BETWEEN A SERVER AND CLIENT
  • Some 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.
  • A COMPUTER SYSTEM
  • FIG. 18 shows a diagrammatic representation of a machine in the example form of a computer system 1800 that executes a set of instructions to perform any one or more of the methodologies discussed herein. One of the devices 102 may configured as a computer system 1800. 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 (i.e., 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.
  • The example computer system 1800 includes a processor 1802 (e.g., a Central Processing Unit (CPU), a Graphics Processing Unit (GPU) or both), a main memory 1801, and a static memory 1806, which communicate with each other via a bus 1808. The computer system 1800 may further include a video display unit 1810 (e.g., a Liquid Crystal Display (LCD) or a Cathode Ray Tube (CRT)). The computer system 1800 may also includes an alphanumeric input device 1817 (e.g., a keyboard), a GUI cursor controller 1811 (e.g., a mouse), a disk drive unit 1816, a signal generation device 1815 (e.g., a speaker) and a network interface device (e.g., a transmitter) 1820.
  • The disk drive unit 1816 includes a machine-readable medium 1822 on which is stored one or more sets of instructions 1821 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 1801 and/or within the processor 1802 during execution thereof by the computer system 1800, the main memory 1801 and the processor 1802 also constituting machine-readable media.
  • The instructions 1821 may further be transmitted or received over a network 1826 via the network interface device 1820 using any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP), Session Initiation Protocol (SIP)).
  • The 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.
  • MARKETPLACE APPLICATIONS
  • In 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.
  • The 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.

Claims (20)

1. A method comprising:
receiving an indication of a period of time and an indication of a recursive operation;
retrieving account data including at least one of an account identifier and transaction data for the at least one account identifier for the period of time;
generating, using one or more hardware processors, a matrix based on the retrieved account data; and
executing the recursive operation, the executing resulting in a graphical effect showing the changes of the transaction data over the period of time.
2. The method of claim 1, wherein the graphical effect is an animation effect.
3. The method of claim 1, wherein the indication of the period of time comprises a selection of a beginning and ending point of time.
4. The method of claim 1, further comprising:
receiving sorting instructions to sort the generated matrix according to a characteristic of transactions; and
sorting the generated matrix including the account data to create a sorted matrix based on the received sorting instructions.
5. The method of claim 4, further comprising:
receiving a selection of an area of the sorted matrix defining a micro segment, the micro segment being a subdivision of the sorted matrix; and
sorting the micro segment to generate a sorted micro segment.
6. The method of claim 4, further comprising analyzing the sorted matrix to determine a pattern that indicates a transaction trend.
7. The method of claim 6, wherein the transaction trend indicated by the pattern comprises an existence of on-going fraud within a networked marketplace.
8. The method of claim 6, wherein the transaction trend indicated by the pattern comprises buying habits of at least some of purchasers within a networked marketplace.
9. The method of claim 1, wherein the matrix is 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; and
a third axis that provides a topology for a plurality of convergence points that each represent a transactional relationship between the accounts corresponding to each of convergence points.
10. The method of claim 1, wherein the matrix is a two-dimensional matrix having:
a first axis representing accounts held by sellers in transactions in a networked marketplace of sellers and purchasers; and
a second axis representing accounts held by purchasers in the transactions in the networked marketplace of sellers and purchasers.
11. The method of claim 1, further comprising:
generating a plurality of matrices using the retrieved account data; and
combining the plurality of matrices to create a multi-dimensional array, wherein each sub-array of the multi-dimensional array corresponds to a particular type of convergence point between accounts.
12. A system comprising:
one or more hardware processors configured to include:
a retriever to retrieve, for a period of time, account data including at least one account identifier and transaction data for the at least one account identifier, and
a generator to generate a matrix based on the retrieved account data; and
a display to display changes of the transaction data over the period of time based on execution of a recursive operation, the execution resulting in the display of changes as a graphical effect showing the changes of the transaction over the period of time.
13. The system of claim 12, wherein the one or more hardware processors are further configured to include a sorting engine to sort the generated matrix including the account data to create a sorted matrix based on sorting instructions, the sorted matrix indicating a transaction trend within a networked marketplace of sellers and purchasers.
14. The system of claim 13, wherein the one or more hardware processors are further configured to include an automated inspection component to determine a pattern that indicates the transaction trend within a networked marketplace of sellers and purchasers by analyzing the sorted matrix.
15. The system of claim 12, wherein the generator generates a plurality of matrices and creates a multi-dimensional array from the plurality of matrices, wherein each sub-array of the multi-dimensional array corresponds to a particular type of convergence point between the accounts.
16. The system of claim 15, wherein the one or more hardware processors are further configured to include:
a selection engine to receive a selection of an area of the sorted matrix to form a micro segment, the micro segment being a subdivision of the sorted matrix; and
the sorting engine to sort the micro segment to generate a sorted micro segment.
17. The system of claim 12, wherein the matrix is 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; and
a third axis that provides a topology for a plurality of convergence points that each represent a transactional relationship between the accounts corresponding to each of convergence points.
18. The system of claim 12, wherein the matrix is a two-dimensional matrix having:
a first axis representing accounts held by sellers in transactions in a networked marketplace of sellers and purchasers; and
a second axis representing accounts held by purchasers in the transactions in the networked marketplace of sellers and purchasers.
19. A machine-readable storage medium having no transitory signals and comprising instructions, which when implemented by one or more hardware processors of a machine, cause the machine to perform operations comprising:
receiving an indication of a period of time;
retrieving account data including at least one account identifier and transaction data for the at least one account identifier for the period of time;
generating a matrix based on the retrieved account data; and
executing a recursive operation, the executing resulting in a graphical effect showing the changes of the transaction data over the period of time.
20. The machine-readable storage medium of claim 19, wherein the operations further comprise analyzing the matrix to determine a pattern that indicates a transaction trend, the transaction trend indicated by the pattern comprises an existence of on-going fraud within a networked marketplace or buying habits of at least some purchasers within the networked marketplace.
US14/323,858 2007-11-09 2014-07-03 Transaction data representations using an adjacency matrix Abandoned US20140324646A1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US98687907P 2007-11-09 2007-11-09
US98896707P 2007-11-19 2007-11-19
US99153907P 2007-11-30 2007-11-30
US99156907P 2007-11-30 2007-11-30
US12/005,005 US8775475B2 (en) 2007-11-09 2007-12-20 Transaction data representations using an adjacency matrix

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/005,005 Continuation US8775475B2 (en) 2007-11-09 2007-12-20 Transaction data representations using an adjacency matrix

Publications (1)

Publication Number Publication Date
US20140324646A1 true US20140324646A1 (en) 2014-10-30

Family

ID=40637833

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/005,005 Expired - Fee Related US8775475B2 (en) 2007-11-09 2007-12-20 Transaction data representations using an adjacency matrix
US14/323,858 Abandoned US20140324646A1 (en) 2007-11-09 2014-07-03 Transaction data representations using an adjacency matrix

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/005,005 Expired - Fee Related US8775475B2 (en) 2007-11-09 2007-12-20 Transaction data representations using an adjacency matrix

Country Status (1)

Country Link
US (2) US8775475B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275340B2 (en) 2007-11-30 2016-03-01 Paypal, Inc. System and method for graph pattern analysis
US20210334805A1 (en) * 2020-04-27 2021-10-28 Capital One Services, Llc System and method for detecting events
US20220108328A1 (en) * 2020-10-06 2022-04-07 Mastercard International Incorporated Systems and methods for linking indices associated with environmental impact determinations for transactions

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162259A1 (en) * 2006-12-29 2008-07-03 Ebay Inc. Associated community platform
US8791948B2 (en) 2007-11-09 2014-07-29 Ebay Inc. Methods and systems to generate graphical representations of relationships between persons based on transactions
CN101478608A (en) * 2009-01-09 2009-07-08 南京联创科技股份有限公司 Fast operating method for mass data based on two-dimensional hash
CN102339430B (en) 2010-07-26 2016-03-16 阿里巴巴集团控股有限公司 The method and apparatus of social network services relation is set up in a kind of initiation
US8768804B2 (en) * 2011-05-06 2014-07-01 SynerScope B.V. Data analysis system
US9043238B2 (en) 2011-05-06 2015-05-26 SynerScope B.V. Data visualization system
US20140132623A1 (en) 2011-05-06 2014-05-15 SynerScope B.V. Data analysis system
AU2012282259A1 (en) * 2011-07-13 2014-03-06 Xchanging Emea Limited Computer system and method for conducting auctions over a computer network
US20150294328A1 (en) * 2014-04-11 2015-10-15 Bank Of America Corporation Customer Relationship Prediction and Valuation
CN105825371A (en) * 2015-01-07 2016-08-03 阿里巴巴集团控股有限公司 Method and device for processing service
WO2020033559A1 (en) * 2018-08-07 2020-02-13 Walmart Apollo, Llc System and method for structure and attribute based graph partitioning
US11468447B2 (en) * 2019-09-06 2022-10-11 U.S. Bancorp, National Association System for identifying points of compromise
US11941633B2 (en) 2019-09-06 2024-03-26 U.S. Bancorp, National Association System for identifying points of compromise

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977582A (en) * 1988-03-31 1990-12-11 At&T Bell Laboratories Synchronization of non-continuous digital bit streams
US5504900A (en) * 1991-05-21 1996-04-02 Digital Equipment Corporation Commitment ordering for guaranteeing serializability across distributed transactions
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
US6018359A (en) * 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6425016B1 (en) * 1997-05-27 2002-07-23 International Business Machines Corporation System and method for providing collaborative replicated objects for synchronous distributed groupware applications
US6442518B1 (en) * 1999-07-14 2002-08-27 Compaq Information Technologies Group, L.P. Method for refining time alignments of closed captions
US20040075677A1 (en) * 2000-11-03 2004-04-22 Loyall A. Bryan Interactive character system
US20050004815A1 (en) * 2003-07-01 2005-01-06 Quadrat Appointment scheduling using time segmented solution propositions
US20060025931A1 (en) * 2004-07-30 2006-02-02 Richard Rosen Method and apparatus for real time predictive modeling for chronically ill patients
US20070061336A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Presentation of sponsored content based on mobile transaction event
US20070156555A1 (en) * 2005-12-17 2007-07-05 Orr Peter C Systems, methods and programs for determining optimal financial structures and risk exposures
US20070179746A1 (en) * 2006-01-30 2007-08-02 Nec Laboratories America, Inc. Automated Modeling and Tracking of Transaction Flow Dynamics For Fault Detection in Complex Systems
US20080162272A1 (en) * 2006-12-29 2008-07-03 Eric Jian Huang Methods and apparatus to collect runtime trace data associated with application performance
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US9183559B2 (en) * 2006-01-10 2015-11-10 Yellowpages.Com Llc Systems and methods to convert a call generated from an advertisement

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55110367A (en) 1979-02-16 1980-08-25 Omron Tateisi Electronics Co Operation guidance display method of automatic transaction processor
US5185696A (en) * 1988-01-06 1993-02-09 Casio Computer Co., Ltd. Financial calculator capable of displaying graphic representation
CA2017974C (en) * 1989-08-07 1998-06-16 Richard Alan Becker Dynamic graphical analysis of network data
US5390113A (en) * 1990-04-05 1995-02-14 Sampson; Wesley C. Method and electronic apparatus for performing bookkeeping
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5819226A (en) * 1992-09-08 1998-10-06 Hnc Software Inc. Fraud detection using predictive modeling
US5596703A (en) * 1993-10-22 1997-01-21 Lucent Technologies Inc. Graphical display of relationships
US5822436A (en) * 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
JP2832146B2 (en) * 1994-03-11 1998-12-02 シャープ株式会社 Communication device using telephone line
US6212556B1 (en) * 1995-11-13 2001-04-03 Webxchange, Inc. Configurable value-added network (VAN) switching
US5778178A (en) * 1995-11-13 1998-07-07 Arunachalam; Lakshmi Method and apparatus for enabling real-time bi-directional transactions on a network
US5963922A (en) * 1996-02-29 1999-10-05 Helmering; Paul F. System for graphically mapping related elements of a plurality of transactions
US6094643A (en) * 1996-06-14 2000-07-25 Card Alert Services, Inc. System for detecting counterfeit financial card fraud
US5870559A (en) * 1996-10-15 1999-02-09 Mercury Interactive Software system and associated methods for facilitating the analysis and management of web sites
US6918096B2 (en) * 1996-11-07 2005-07-12 Thebrain Technologies, Corp. Method and apparatus for displaying a network of thoughts from a thought's perspective
AU5200198A (en) * 1996-11-07 1998-05-29 Natrificial Llc Method and apparatus for organizing and processing information using a digital computer
US5950179A (en) * 1996-12-03 1999-09-07 Providian Financial Corporation Method and system for issuing a secured credit card
US6032188A (en) * 1997-03-12 2000-02-29 Microsoft Corporation Method and system for controlling data flow
US6119103A (en) * 1997-05-27 2000-09-12 Visa International Service Association Financial risk prediction systems and methods therefor
US6430545B1 (en) * 1998-03-05 2002-08-06 American Management Systems, Inc. Use of online analytical processing (OLAP) in a rules based decision management system
US6321206B1 (en) * 1998-03-05 2001-11-20 American Management Systems, Inc. Decision management system for creating strategies to control movement of clients across categories
US6609120B1 (en) * 1998-03-05 2003-08-19 American Management Systems, Inc. Decision management system which automatically searches for strategy components in a strategy
US6405173B1 (en) * 1998-03-05 2002-06-11 American Management Systems, Inc. Decision management system providing qualitative account/customer assessment via point in time simulation
US6208720B1 (en) * 1998-04-23 2001-03-27 Mci Communications Corporation System, method and computer program product for a dynamic rules-based threshold engine
US7248855B2 (en) * 1998-09-15 2007-07-24 Upaid Systems, Ltd. Convergent communications system and method with a rule set for authorizing, debiting, settling and recharging a mobile commerce account
US20030018558A1 (en) * 1998-12-31 2003-01-23 Heffner Reid R. System, method and computer program product for online financial products trading
CA2363733C (en) * 1999-03-02 2011-10-18 Quixtar Investments, Inc. Electronic commerce transactions within a marketing system
US6490566B1 (en) * 1999-05-05 2002-12-03 I2 Technologies Us, Inc. Graph-based schedule builder for tightly constrained scheduling problems
US20030204426A1 (en) * 1999-06-18 2003-10-30 American Management Systems, Inc. Decision management system which searches for strategy components
US6708155B1 (en) * 1999-07-07 2004-03-16 American Management Systems, Inc. Decision management system with automated strategy optimization
US7191150B1 (en) * 2000-02-01 2007-03-13 Fair Isaac Corporation Enhancing delinquent debt collection using statistical models of debt historical information and account events
US6917940B1 (en) * 2000-03-10 2005-07-12 Hewlett-Packard Development Company, L.P. Olap-based customer behavior profiling method and system
US7412422B2 (en) * 2000-03-23 2008-08-12 Dekel Shiloh Method and system for securing user identities and creating virtual users to enhance privacy on a communication network
US7827102B2 (en) * 2000-04-21 2010-11-02 Microsoft Corporation System and method for secure distribution of information via email
US7376618B1 (en) * 2000-06-30 2008-05-20 Fair Isaac Corporation Detecting and measuring risk with predictive models using content mining
US20020046113A1 (en) * 2000-08-04 2002-04-18 Pisano Daniel J. Method and system of using an electronic network to provide options to purchase goods or services through a retailer
AU8741101A (en) * 2000-08-22 2002-03-04 Ernex Marketing Technologies I Marketing systems and methods
US7580890B2 (en) * 2000-10-12 2009-08-25 Jpmorgan Chase Bank, N.A. System and method for supervising account management operations
US6754640B2 (en) * 2000-10-30 2004-06-22 William O. Bozeman Universal positive pay match, authentication, authorization, settlement and clearing system
US6904410B1 (en) * 2000-11-02 2005-06-07 Haveneed.Com, Inc. Online method and system for management of collectibles
AU2002216725A1 (en) * 2000-11-03 2002-05-21 Outlet Group, Llc Method and system of an integrated business topography and virtual 3d network portal
IL146597A0 (en) * 2001-11-20 2002-08-14 Gordon Goren Method and system for creating meaningful summaries from interrelated sets of information
US20020103660A1 (en) * 2000-11-30 2002-08-01 Kurt Cramon Generic transaction server
US20020123957A1 (en) * 2000-12-29 2002-09-05 Burt Notarius Method and apparatus for marketing and communicating in the wine/spirits industry
US7089592B2 (en) * 2001-03-15 2006-08-08 Brighterion, Inc. Systems and methods for dynamic detection and prevention of electronic fraud
US20050188294A1 (en) * 2004-02-23 2005-08-25 Kuchinsky Allan J. Systems, tools and methods for constructing interactive biological diagrams
US20030036989A1 (en) * 2001-05-15 2003-02-20 Sanjiv Bhatia Systems and method for online investing
CA2403300A1 (en) * 2002-09-12 2004-03-12 Pranil Ram A method of buying or selling items and a user interface to facilitate the same
US20030009411A1 (en) * 2001-07-03 2003-01-09 Pranil Ram Interactive grid-based graphical trading system for real time security trading
US20030061132A1 (en) * 2001-09-26 2003-03-27 Yu, Mason K. System and method for categorizing, aggregating and analyzing payment transactions data
IL162413A0 (en) * 2002-01-22 2005-11-20 Yeda Res & Dev Method for analyzing data to identify network motifs
US7822654B2 (en) * 2002-03-06 2010-10-26 3D Business Tools Business analysis tool
US7046248B1 (en) * 2002-03-18 2006-05-16 Perttunen Cary D Graphical representation of financial information
US8868544B2 (en) * 2002-04-26 2014-10-21 Oracle International Corporation Using relational structures to create and support a cube within a relational database system
US20030216984A1 (en) * 2002-05-17 2003-11-20 Jiandong Wang System and method for querying accounts receivable and supporting decision-making
AU2003239553A1 (en) * 2002-05-22 2003-12-12 Be Home Wise, Inc. Method and system for managing home shopper data
US20040059634A1 (en) * 2002-09-24 2004-03-25 Tami Michael A. Computerized system for a retail environment
US20040122803A1 (en) * 2002-12-19 2004-06-24 Dom Byron E. Detect and qualify relationships between people and find the best path through the resulting social network
US7212208B2 (en) * 2003-02-25 2007-05-01 Bahram Khozai System and method to present and display multiple data using enhanced box charts
US7750908B2 (en) * 2003-04-04 2010-07-06 Agilent Technologies, Inc. Focus plus context viewing and manipulation of large collections of graphs
US20060235658A1 (en) * 2003-05-28 2006-10-19 Celestar Lexico-Sciencies, Inc. Pathway information display device
US7835931B2 (en) * 2003-10-03 2010-11-16 Meta Command Systems, Inc. Method and system for network-based, distributed, real-time command and control of an enterprise
US7299200B2 (en) * 2003-12-30 2007-11-20 Ralf Manstein Currency-time line transaction system and method
US7769682B2 (en) * 2004-02-13 2010-08-03 International Business Machines Corporation Financial transaction analysis using directed graphs
US20050187881A1 (en) * 2004-02-20 2005-08-25 Mcgiffin Gail E. System and data structure for account management
US20050222929A1 (en) * 2004-04-06 2005-10-06 Pricewaterhousecoopers Llp Systems and methods for investigation of financial reporting information
US7424530B2 (en) * 2004-05-06 2008-09-09 International Business Machines Corporation Method for visualizing results of root cause analysis on transaction performance data
US7461012B2 (en) * 2004-06-08 2008-12-02 Elbex Video Ltd. Method and apparatus for simplified e-commerce shopping via home shopping terminals
US20050283494A1 (en) * 2004-06-22 2005-12-22 International Business Machines Corporation Visualizing and manipulating multidimensional OLAP models graphically
US7464056B1 (en) * 2004-06-30 2008-12-09 Dst Innovis, Inc. Method for managing customer financial accounts
US20070055662A1 (en) * 2004-08-01 2007-03-08 Shimon Edelman Method and apparatus for learning, recognizing and generalizing sequences
US20060149674A1 (en) * 2004-12-30 2006-07-06 Mike Cook System and method for identity-based fraud detection for transactions using a plurality of historical identity records
US20060173772A1 (en) * 2005-02-02 2006-08-03 Hayes John B Systems and methods for automated processing, handling, and facilitating a trade credit transaction
US20060229921A1 (en) * 2005-04-08 2006-10-12 Mr. Patrick Colbeck Business Control System
US20060287910A1 (en) * 2005-06-21 2006-12-21 Kuchar Olga A Scenario analysis methods, scenario analysis devices, articles of manufacture, and data signals
US7558768B2 (en) * 2005-07-05 2009-07-07 International Business Machines Corporation Topological motifs discovery using a compact notation
US9558498B2 (en) * 2005-07-29 2017-01-31 Excalibur Ip, Llc System and method for advertisement management
US20070100875A1 (en) * 2005-11-03 2007-05-03 Nec Laboratories America, Inc. Systems and methods for trend extraction and analysis of dynamic data
US7587453B2 (en) * 2006-01-05 2009-09-08 International Business Machines Corporation Method and system for determining application availability
WO2007100834A2 (en) * 2006-02-27 2007-09-07 The Regents Of The University Of California Graph querying, graph motif mining and the discovery of clusters
JP2009535706A (en) * 2006-04-28 2009-10-01 バークレイズ・キャピタル・インコーポレーテッド Method and system for realizing a portal
MX2009000355A (en) * 2006-07-11 2009-04-08 Welcome Real Time Pte Ltd A promotions system and method.
WO2008044242A2 (en) * 2006-07-28 2008-04-17 Persistent Systems Private Limited Gene expression analysis using genotype-pheontype based programming
US7566003B2 (en) * 2006-12-07 2009-07-28 Specialty Acquirer Llc Learning fare collection system for mass transit
US9146948B2 (en) * 2006-12-12 2015-09-29 International Business Machines Corporation Hilbert ordering of multidimensional tuples within computing systems
US20080162259A1 (en) * 2006-12-29 2008-07-03 Ebay Inc. Associated community platform
US8165973B2 (en) * 2007-06-18 2012-04-24 International Business Machines Corporation Method of identifying robust clustering
US8103566B1 (en) * 2007-06-25 2012-01-24 San Luis Obispo County Pension Trust Board of Trustees Retirement administration and distribution system
US8791948B2 (en) * 2007-11-09 2014-07-29 Ebay Inc. Methods and systems to generate graphical representations of relationships between persons based on transactions
US8046324B2 (en) * 2007-11-30 2011-10-25 Ebay Inc. Graph pattern recognition interface
US20100169137A1 (en) * 2008-12-31 2010-07-01 Ebay Inc. Methods and systems to analyze data using a graph

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977582A (en) * 1988-03-31 1990-12-11 At&T Bell Laboratories Synchronization of non-continuous digital bit streams
US5504900A (en) * 1991-05-21 1996-04-02 Digital Equipment Corporation Commitment ordering for guaranteeing serializability across distributed transactions
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
US6425016B1 (en) * 1997-05-27 2002-07-23 International Business Machines Corporation System and method for providing collaborative replicated objects for synchronous distributed groupware applications
US6018359A (en) * 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6442518B1 (en) * 1999-07-14 2002-08-27 Compaq Information Technologies Group, L.P. Method for refining time alignments of closed captions
US20040075677A1 (en) * 2000-11-03 2004-04-22 Loyall A. Bryan Interactive character system
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US20050004815A1 (en) * 2003-07-01 2005-01-06 Quadrat Appointment scheduling using time segmented solution propositions
US20060025931A1 (en) * 2004-07-30 2006-02-02 Richard Rosen Method and apparatus for real time predictive modeling for chronically ill patients
US20070061336A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Presentation of sponsored content based on mobile transaction event
US20070156555A1 (en) * 2005-12-17 2007-07-05 Orr Peter C Systems, methods and programs for determining optimal financial structures and risk exposures
US9183559B2 (en) * 2006-01-10 2015-11-10 Yellowpages.Com Llc Systems and methods to convert a call generated from an advertisement
US20070179746A1 (en) * 2006-01-30 2007-08-02 Nec Laboratories America, Inc. Automated Modeling and Tracking of Transaction Flow Dynamics For Fault Detection in Complex Systems
US20080162272A1 (en) * 2006-12-29 2008-07-03 Eric Jian Huang Methods and apparatus to collect runtime trace data associated with application performance

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275340B2 (en) 2007-11-30 2016-03-01 Paypal, Inc. System and method for graph pattern analysis
US11074511B2 (en) 2007-11-30 2021-07-27 Paypal, Inc. System and method for graph pattern analysis
US20210334805A1 (en) * 2020-04-27 2021-10-28 Capital One Services, Llc System and method for detecting events
US20220108328A1 (en) * 2020-10-06 2022-04-07 Mastercard International Incorporated Systems and methods for linking indices associated with environmental impact determinations for transactions

Also Published As

Publication number Publication date
US20090125543A1 (en) 2009-05-14
US8775475B2 (en) 2014-07-08

Similar Documents

Publication Publication Date Title
US8775475B2 (en) Transaction data representations using an adjacency matrix
US11170003B2 (en) Sharing item images based on a similarity score
US11074511B2 (en) System and method for graph pattern analysis
US10388044B2 (en) Dimension reducing visual representation method
US20230084389A1 (en) System and method for providing bottom-up aggregation in a multidimensional database environment
US8791948B2 (en) Methods and systems to generate graphical representations of relationships between persons based on transactions
US10127583B2 (en) Visualization of reputation ratings
US20090070130A1 (en) Reputation scoring
US8965866B2 (en) Optimizing data transfer time on graphics processor units
US8838610B2 (en) Listing tune-up system
US11157930B1 (en) Systems and methods for defining candidate and target locations based on items and user attributes
US9323832B2 (en) Determining desirability value using sale format of item listing
US20150161224A1 (en) Optimized Network Analysis Rendering and User Interfaces
CN118429020A (en) Merchant recommendation method, merchant recommendation device, merchant recommendation computer device, merchant recommendation storage medium and merchant recommendation program product
US20110119117A1 (en) Generation of products in catalogs from divergent listings
US20110078047A1 (en) Catalog generation based on divergent listings
Seo et al. Artificial Intelligence in Finance: Coffee Commodity Trading Big Data for Informed Decision Making
Boukraâ et al. A layered multidimensional model of complex objects
Mittal Big Data Analysis for Data VisualizationA Review
US20050052474A1 (en) Data visualisation system and method
Damus Ros A Business Intelligence Solution, based on a Big Data Architecture, for processing and analyzing the World Bank data
Nyumbeka Using Data Analysis and Information Visualization Techniques to Support the Effective Analysis of Large Financial Data Sets
CN118606890A (en) Object classification method, device, computer equipment and storage medium
Choudhary et al. Collaborating Data Mining Modeling with Big Data Analytics for Disaster Prediction
WO2009120328A2 (en) Tax data validity documentation

Legal Events

Date Code Title Description
AS Assignment

Owner name: EBAY INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PATIL, DHANURJAY A.;JASTREBSKI, GRAHAME A.;MILLER, ALLISON E.;REEL/FRAME:033242/0550

Effective date: 20080320

AS Assignment

Owner name: PAYPAL, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EBAY INC.;REEL/FRAME:036171/0221

Effective date: 20150717

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION