US12073335B2 - Technologies for evaluating relationships between social networking profiles - Google Patents
Technologies for evaluating relationships between social networking profiles Download PDFInfo
- Publication number
- US12073335B2 US12073335B2 US17/903,812 US202217903812A US12073335B2 US 12073335 B2 US12073335 B2 US 12073335B2 US 202217903812 A US202217903812 A US 202217903812A US 12073335 B2 US12073335 B2 US 12073335B2
- Authority
- US
- United States
- Prior art keywords
- server
- social networking
- networking service
- value
- data structure
- 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.)
- Active
Links
- 230000006855 networking Effects 0.000 title claims abstract description 184
- 238000005516 engineering process Methods 0.000 title abstract description 7
- 230000009471 action Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 87
- 238000004891 communication Methods 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 23
- 238000012546 transfer Methods 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000007418 data mining Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000008520 organization Effects 0.000 description 8
- 241000282414 Homo sapiens Species 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- JTJMJGYZQZDUJJ-UHFFFAOYSA-N phencyclidine Chemical compound C1CCCCN1C1(C=2C=CC=CC=2)CCCCC1 JTJMJGYZQZDUJJ-UHFFFAOYSA-N 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 230000000877 morphologic effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000123 paper Substances 0.000 description 2
- 239000004033 plastic Substances 0.000 description 2
- 239000005060 rubber Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001672694 Citrus reticulata Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101150044878 US18 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Definitions
- this disclosure relates to social networking services. More particularly, this disclosure relates to evaluation of relationships between social networking profiles.
- Social networking services provide an opportunity to contact individuals or businesses in a quick and easy manner with minimum investment other than a computing device and a network connection.
- the social networking services have changed from a fad used by a small number of technology-savvy individuals to some of most heavily used websites/apps, with hundreds of millions of subscribers.
- Facebook which is one of most popular social networking services, has become one of most frequented websites/apps globally.
- a method comprising: serving, via a server, over a wide area network, to a browser running on an operating system of a client, a page depicting a plurality of alphanumeric input fields and a numeric input field; receiving, via the server, over the wide area network, from the client, a plurality of social networking service profile identifiers input into the alphanumeric input fields on the browser and a time unit value input into the numeric input field on the browser; writing, via the server, the social networking service profile identifiers and the time unit value into a data structure in accordance with a schema of the data structure; querying, via the server, over the wide area network, a social networking service periodically based on the social networking service profile identifiers sourced from the data structure and according to the time unit value sourced from the data structure such that a plurality of status updates of a plurality of social networking profiles corresponding to the social networking service profile identifiers can be read via the server, wherein the social networking profiles are not
- FIG. 1 shows a schema of an embodiment of a network topology according to this disclosure.
- FIG. 2 shows a flowchart of an embodiment of a method of score formation according to this disclosure.
- FIG. 3 shows a flowchart of an embodiment of a method of score formation via an engine based on a formula according to this disclosure.
- FIG. 4 shows a diagram of an embodiment of a data organization according to this disclosure.
- FIG. 5 shows a schema of an embodiment of a network-based system for generating a score according to this disclosure.
- FIG. 6 shows a diagram of an embodiment of a network-based sequence of score formation according to this disclosure.
- this disclosure discloses a network-based computing technology to evaluate relationships between social networking profiles and then to take an action based on such evaluation.
- This network-based computing technology may include a running logic, whether hardware or software, such as an engine, which may be modularized, that is programmed to score the relationships based on shared content, not necessarily based on connections, although this is possible, whether alternatively or additionally. For example, for a plurality of social networking service profiles, commonly shared content may be weighed higher than uncommonly shared content, which may indicate a high probability of a particular information path or that the commonly shared content was obtained from a common data source, such as a website.
- This network-based computing technology can be implemented via a plurality of computers (servers/clients) utilizing a plurality of data structures/messages.
- Such implementation includes data structure/message generation, storage, retrieval, population, copying, moving, editing, modifying, sorting, searching, sending, receiving, updating, deleting, encrypting, decrypting, de-duplicating, converting, or any other local or network-based data structure/message operation associated with a structure/message (data shell) or the data itself (content).
- the structure/message (shell) can comprise a file, a table, an array, a matrix, a linked list, a tree, a string, a quad tree, a hash, or any other structures of data.
- the data (content) can contain any alphanumeric, image, acoustic, binary, or any other content.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- Words such as “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods.
- process flow diagrams may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently.
- the order of the operations may be re-arranged.
- a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc.
- its termination may correspond to a return of the function to the calling function or the main function.
- first, second, etc. can be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not necessarily be limited by such terms. These terms are used to distinguish one element, component, region, layer or section from another element, component, region, layer or section. Thus, a first element, component, region, layer, or section discussed below could be termed a second element, component, region, layer, or section without departing from the teachings of the present disclosure.
- the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances.
- the term “about” and/or “substantially” refers to a +/ ⁇ 10% variation from the nominal value/term. Such variation is always included in any given.
- FIG. 1 shows a schema of an embodiment of a network topology according to this disclosure.
- a network topology 100 contains a network 102 , a first end user client 104 , a second end user client 106 , a third end user client 108 , a social networking service front-end server 110 , a network server 112 , an application server 114 , a database server 116 , an administrator client 118 , a printer 120 , and a printer 122 .
- the topology 100 is based on a distributed network operation model, which allocates tasks/workloads between servers, which provide a resource/service, and clients, which request the resource/service.
- the servers and the clients illustrate different computers/applications, in some embodiments, the servers and the clients reside in or share or are one system/application.
- the topology 100 entails allocating a large number of resources to a small number of servers, where complexity of the clients, depends on how much computation is offloaded to the small number of servers, i.e., more computation offloaded from the clients onto the servers leads to lighter clients, such as being more reliant on network sources and less reliant on local computing resources.
- other computing models are possible as well.
- such models can comprise decentralized computing, such as peer-to-peer (P2P), for instance Bit-Torrent, or distributed computing, such as via a computer cluster where a set of networked computers works together such that the computer can be viewed as a single system.
- P2P peer-to-peer
- Bit-Torrent Bit-Torrent
- distributed computing such as via a computer cluster where a set of networked computers works together such that the computer can be viewed as a single system.
- Each component of the topology 100 can be implemented in a logic, whether hardware-based or software-based.
- logic when the logic is hardware-based, then such logic can comprise circuitry, such as processors, memory, input devices, output devices, or other hardware, that is configured, such as via programming or design, to implement a functionality of a respective component.
- logic when the logic is software-based, then such logic can comprise one or more instructions, such as assembly code, machine code, object code, source code, or any other type of instructions, which when executed, such as via running or compilation, implement a functionality of a respective component.
- the network 102 includes a plurality of nodes that allow for sharing of resources or information.
- the network 102 can be wired, waveguide, wireless, or others.
- the network 102 can be a local area network (LAN), a wide area network (WAN), a cellular network, a satellite network, a personal area network (PAN), a fiber optic network, or others.
- the network 102 can be embodied via a plurality of radio signals, a plurality of light signals, a plurality of sound signals, a plurality of infrared signals, or others.
- the network 102 can be based on Wi-Fi or Li-Fi technology.
- the client 104 includes a desktop, a laptop, a tablet, a smartphone, a workstation, a terminal, or any other end user device.
- the client 104 includes a multicore processor, a memory in communication with the processor, and a transceiver in communication with the processor.
- the memory stores an operating system (OS), such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- OS operating system
- the transceiver such as a transmitter and a receiver, communicates with the network 102 , whether in a wired, waveguide, or wireless manner, whether direct or indirect, as managed via the OS.
- the client 106 includes a desktop, a laptop, a tablet, a smartphone, a workstation, a terminal, or any other end user device.
- the client 106 includes a multicore processor, a memory in communication with the processor, and a transceiver in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the transceiver such as a transmitter and a receiver, communicates with the network 102 , whether in a wired, waveguide, or wireless manner, whether direct or indirect, as managed via the OS.
- the client 106 may be operated via a same or different operator as the client 104 and may be located in a same or different location as the client 104 .
- the client 106 may be same or different as the client 104 in type, structure, or function.
- the client 108 includes a desktop, a laptop, a tablet, a smartphone, a workstation, a terminal, or any other end user device.
- the client 108 includes a multicore processor, a memory in communication with the processor, and a transceiver in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the transceiver such as a transmitter and a receiver, communicates with the network 102 , whether in a wired, waveguide, or wireless manner, whether direct or indirect, as managed via the OS.
- the client 108 may be operated via a same or different operator as the client 104 or the client 106 and may be located in a same or different location as the client 104 or the client 106 .
- the client 108 may be same or different as the client 104 or the client 106 in type, structure, or function.
- the server 110 includes a multicore processor, a memory in communication with the processor, and a network card in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the network card communicates with the network 102 , whether direct or indirect, as managed via the OS.
- the server 110 hosts a front-end application running on the OS.
- the front-end application enables the client 104 to access a social networking service via a first login over the network 102 based on a first end user social networking profile and the client 106 to access the social networking service via a second login over the network 102 based on a second end user social networking profile.
- the front-end application presents a first social networking wall, such as on a webpage, associated with the first end user social networking profile to the client 104 and a second social networking wall, such as on a webpage, associated with the second end user social networking profile to the client 106 .
- the front-end application interfaces with a computing infrastructure of the social networking service, such a middle-tier application and a back-end application, to present the first end user social networking profile and the second end user social networking profile.
- the server 110 may be included in a cluster of servers, such as a front-end cluster, which may include a plurality of servers, such as hundreds, thousands, or more.
- the front-end cluster may include a plurality of web servers that may represent a majority the front-end cluster and that may run a plurality of virtual machines for just-in-time compilation and that may execute programs written in various languages, such ashack, PHP, or others.
- the server 110 may perform or receive a large volume of data requests.
- the multicore processor which comprises a plurality of independent cores.
- the multicore processor is a computing component with two or more independent processing units, which are the units that read and execute program instructions, such as the front-end application, such as via multiprocessing or multithreading.
- the instructions are processing instructions, such as add, move data, or branch, but the cores can run multiple instructions concurrently, thereby increasing an overall operational speed for the front-end application, which is amenable to parallel computing.
- the cores can process in parallel when concurrently accessing a file or any other data structure, as disclosed herein, while being compliant with atomicity, consistency, isolation, and durability (ACID) principles, which ensure that such data structure operations/transactions, such as read, write, erase, or others, are processed reliably.
- a data structure can be accessed, such as read or written, via at least two cores concurrently without locking the data structure between such cores.
- the cores may or may not share caches, and the cores may or may not implement message passing or shared-memory inter-core communication methods.
- VLIW very long instruction word
- vector vector
- multithreading multithreading
- the server 112 includes a multicore processor, a memory in communication with the processor, and a network card in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the network card communicates with the network 102 , whether direct or indirect, as managed via the OS.
- the server 112 is programmed to act as instructed via the server 114 based on the server 112 interfacing with the server 114 , whether directly or indirectly.
- the server 112 can serve a graphical user interface (GUI) page, such as via a webpage through a Hypertext Transfer Protocol (HTTP) whether the page is static or dynamically generated, to the client 108 , receive a request from the client 108 , pass the request to the server 114 , read the first end user social networking profile and the second end user social networking profile on the server 110 , and others.
- GUI graphical user interface
- HTTP Hypertext Transfer Protocol
- the servers 112 is a web server, such as Apache, Microsoft's Internet Information Server (IIS), Novell's NetWare server, Google Web Server (GWS), IBM Domino server, or others.
- the server 112 may perform or receive a large volume of data requests.
- the multicore processor which comprises a plurality of independent cores.
- the multicore processor is a computing component with two or more independent processing units, which are the units that read and execute program instructions, such as the front-end application, such as via multiprocessing or multithreading.
- the instructions are processing instructions, such as add, move data, or branch, but the cores can run multiple instructions concurrently, thereby increasing an overall operational speed for the front-end application, which is amenable to parallel computing.
- the cores can process in parallel when concurrently accessing a file or any other data structure, as disclosed herein, while being compliant with ACID principles, which ensure that such data structure operations/transactions, such as read, write, erase, or others, are processed reliably.
- a data structure can be accessed, such as read or written, via at least two cores concurrently without locking the data structure between such cores.
- there can be at least two cores such as two cores, three cores, four cores, six cores, eight cores, ten cores, twelve cores, or more.
- the cores may or may not share caches, and the cores may or may not implement message passing or shared-memory inter-core communication methods.
- Interconnect cores include bus, ring, two-dimensional mesh, and crossbar.
- Homogeneous multi-core systems include only identical cores, heterogeneous multi-core systems can have cores that are not identical.
- the cores in multi-core systems may implement architectures, such as VLIW, superscalar, vector, or multithreading.
- the server 114 includes a multicore processor, a memory in communication with the processor, and a network card in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the network card communicates with the network 102 , whether direct or indirect, as managed via the OS.
- the server 114 hosts a software application and a set of logic for the software application, such as a set of rules, a formula, or others. Therefore, as instructed by the software application, the server 114 interfaces with the server 112 and the server 116 .
- the server 114 can act as a middle-tier server, with the servers 112 acting as a front-tier server, and the servers 116 acting as a back-end server.
- the servers 114 be an IBM WebSphere application server, a SAP Web application server, or others.
- the server 114 may perform or receive a large volume of data requests.
- the multicore processor which comprises a plurality of independent cores.
- the multicore processor is a computing component with two or more independent processing units, which are the units that read and execute program instructions, such as the front-end application, such as via multiprocessing or multithreading.
- the instructions are processing instructions, such as add, move data, or branch, but the cores can run multiple instructions concurrently, thereby increasing an overall operational speed for the front-end application, which is amenable to parallel computing.
- the cores can process in parallel when concurrently accessing a file or any other data structure, as disclosed herein, while being compliant with ACID principles, which ensure that such data structure operations/transactions, such as read, write, erase, or others, are processed reliably.
- a data structure can be accessed, such as read or written, via at least two cores concurrently without locking the data structure between such cores.
- there can be at least two cores such as two cores, three cores, four cores, six cores, eight cores, ten cores, twelve cores, or more.
- the cores may or may not share caches, and the cores may or may not implement message passing or shared-memory inter-core communication methods.
- Interconnect cores include bus, ring, two-dimensional mesh, and crossbar.
- Homogeneous multi-core systems include only identical cores, heterogeneous multi-core systems can have cores that are not identical.
- the cores in multi-core systems may implement architectures, such as VLIW, superscalar, vector, or multithreading.
- the server 116 includes a multicore processor, a memory in communication with the processor, and a network card in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the network card communicates with the network 102 , whether direct or indirect, as managed via the OS.
- the server 116 hosts a database, such as a relational database, a NoSQL, an in-memory database, or others.
- the database stores data, whether in a raw state, a formatted state, an organized stated, or any other accessible state, and allows access to such data, whether directly and/or indirectly.
- the server 116 is configured for various database input and output operations, including reading, writing, copying, editing, deleting, updating, searching, selecting, merging, sorting, erasing, formatting, or others.
- the server 116 can implement record locking on the database.
- the server 116 may perform or receive a large volume of data requests.
- the multicore processor which comprises a plurality of independent cores.
- the multicore processor is a computing component with two or more independent processing units, which are the units that read and execute program instructions, such as the front-end application, such as via multiprocessing or multithreading.
- the instructions are processing instructions, such as add, move data, or branch, but the cores can run multiple instructions concurrently, thereby increasing an overall operational speed for the front-end application, which is amenable to parallel computing.
- the cores can process in parallel when concurrently accessing a file or any other data structure, as disclosed herein, while being compliant with ACID principles, which ensure that such data structure operations/transactions, such as read, write, erase, or others, are processed reliably.
- a data structure can be accessed, such as read or written, via at least two cores concurrently without locking the data structure between such cores.
- there can be at least two cores such as two cores, three cores, four cores, six cores, eight cores, ten cores, twelve cores, or more.
- the cores may or may not share caches, and the cores may or may not implement message passing or shared-memory inter-core communication methods.
- Interconnect cores include bus, ring, two-dimensional mesh, and crossbar.
- Homogeneous multi-core systems include only identical cores, heterogeneous multi-core systems can have cores that are not identical.
- the cores in multi-core systems may implement architectures, such as VLIW, superscalar, vector, or multithreading.
- the server 112 , the server 114 , and the server 116 may define a system that is programmed to evaluate relationships between social networking profiles and then to take an action based on such evaluation. As such, such system is managed via the client 118 based on the client 118 communicating with the server 112 , the server 114 , and the server 116 , whether directly or indirectly.
- the client 118 includes a desktop, a laptop, a tablet, a smartphone, a workstation, a terminal, or any other end user device.
- the client 118 includes a multicore processor, a memory in communication with the processor, and a transceiver in communication with the processor.
- the memory stores an OS, such as MacOS, Windows, UNIX, Linux, or others, that runs on the multicore processor.
- the transceiver such as a transmitter and a receiver, communicates with the network 102 , whether in a wired, waveguide, or wireless manner, whether direct or indirect, as managed via the OS.
- the client 118 administers the system including the server 112 , the server 114 , and the server 116 , such as via having access to tweak settings of any component of the system, having access to update any component of the system, having access to troubleshoot any component of the system, having access to debug any component of the system, or others.
- the client 118 may be operated via a same or different operator as the client 104 or the client 106 or the client 108 and may be located in a same or different location as the client 104 or the client 106 or the client 108 .
- the client 118 may be same or different as the client 104 or the client 106 or the client 106 in type, structure, or function.
- the printer 120 includes a processor, a memory in communication with the processor, a transceiver in communication with the processor, and a print head in communication with the processor.
- the printer 120 is in communication with the client 118 via the transceiver.
- the print head can print in black/white, grayscale, or monochrome.
- the print head can print a report on a tangible medium, such as paper, rubber, metal, plastic, or others, with the report being sourced from the system managed via the client 118 .
- the printer 120 can be stationary or mobile.
- the printer 120 can be a component of a multi-function device.
- the printer 122 includes a processor, a memory in communication with the processor, a transceiver in communication with the processor, and a print head in communication with the processor.
- the printer 122 is in communication with the client 108 via the transceiver.
- the print head can print in black/white, grayscale, or monochrome.
- the print head can print a report on a tangible medium, such as paper, rubber, metal, plastic, or others, with the report being sourced from the client 108 communicating with the server 112 over the network 102 .
- the printer 122 can be stationary or mobile.
- the printer 122 can be a component of a multi-function device. Note that the printer 120 and the printer 122 can be similar to or different from each other in any aspect, such as structure.
- the server 112 in response to a request submitted on a browser running on the OS of the client 108 , the server 112 serves, over the network 102 , to the browser, a webpage depicting a plurality of alphanumeric input fields and a numeric input field. Subsequently, the server 112 receives, over the network 102 , from the client 108 , a plurality of social networking service profile identifiers input into the alphanumeric input fields on the browser and a time unit value input into the numeric input field on the browser.
- the social networking service profile identifiers are associated with a social networking service availed via the server 110 .
- the server 112 writes, via the server 114 , the social networking service profile identifiers and the time unit value into a data structure, such as the database hosted on the server 116 , in accordance with a schema of the data structure.
- the database can include an in-memory database, a NoSQL database, or others.
- the server 112 queries, over the network 102 , the social networking service, such as the server 110 , periodically based on the social networking service profile identifiers sourced from the data structure and according to the time unit value sourced from the data structure such that a plurality of status updates of a plurality of social networking profiles corresponding to the social networking service profile identifiers can be read via the server 112 , with the social networking profiles not being connected directly to each other.
- the server 112 copies, over the network 102 , the status updates and writes, via the server 114 , the status updates into the data structure in accordance with the schema such that the status updates correspond, such as logically, to the social networking service profile identifiers stored in the data structure.
- the server 112 or the server 114 or the server 116 can disambiguate the status updates before writing the status updates into the data structure.
- the server 114 retrieves the status updates and the social networking service profile identifiers from the data structure and inputs the status updates and the social networking service profile identifiers into a running logic, such as an engine, a module, an application, or others, whether local to or remote from the server 114 .
- the server 114 generates a value based on the running logic evaluating the status updates and the social networking service profile identifiers, evaluates the value against a threshold, whether local to or remote from the server 114 , and takes a first action based on the value satisfying the threshold and a second action based on the value not satisfying the threshold.
- the server 112 or the server 114 may host a bot performing at least one of the querying, the copying, the writing, the inputting, the generating, the evaluating, or the taking, as noted above.
- the first action can include the server 112 serving, over the network 102 , a second page to the browser, where the second page depicts the value.
- the first action can include the server 112 updating, over the network 102 , the page such that the page depicts the value.
- the server 112 can query the server 110 in parallel with respect to the social networking profiles, where the status updates are read in parallel or where the server 112 runs a plurality of threads corresponding to the social networking service profile identifiers, with the querying is via the threads, or the server 112 includes a plurality of processing cores, where the querying is via the cores.
- the server 112 can query the server 110 serially with respect to the social networking profiles, where the status updates are read serially or where the server 112 runs a plurality of threads corresponding to the social networking service profile identifiers, where the querying is via the threads or where the server 112 includes a plurality of processing cores, where the querying is via the cores.
- the first action can include the server 112 or the server 114 inputting the value into an analytic process local to or remote from the server 112 or the server 114 .
- the running logic can include a formula, where the value can be generated based on the formula
- the running logic can include an engine running on the OS of the server 114 , where the engine hosts the formula, which may employ a Random Surfer model, where the formula can include
- ⁇ may correspond to a value, such as a decimal value between 0 and 1, although other ranges are possible, whether higher or lower.
- the value may be a value from about 0 to about 1, inclusively, such as 0.85.
- the coefficient for inconsistencies, ⁇ is included to prevent profiles with no relatability from “absorbing” the value of other profiles that are connected thereto. For example, one profile that “follows” nobody on a social networking service could still be “followed” by others. Therefore, information could get “trapped” in a profile that follows no one and theoretically could not escape. If one were to set ⁇ to high (e.g.
- ⁇ can be determined as a weighted average between those two bounds or extremes.
- a leftmost parenthesis is informative of a probability of no relatedness even if hyperlinks are not identical
- a rightmost brackets are informative of a probability of relatedness based on inputs for each profile, such as social networking posts. For example, if one were to look at all the words (e.g. natural language) used by two social media participants, then one can use those words and where they overlap as one input into this process.
- the first action can include the server 112 , via the server 114 , writing the value into the data structure such that the value corresponds to the social networking service profile identifiers in the data structure.
- the server 114 can access the data structure stored on the server 116 such that the server 114 can write to the server 116 based on such accessing, where the server 114 is in communication with the server 116 based on a representation state transfer (REST) application programming interface (API).
- REST representation state transfer
- API application programming interface
- the server 112 can access the running logic stored on the server 114 , where the inputting of the value is based on such accessing, where the server 112 is in communication with the server 114 based on a REST API.
- the server 114 can be situated within a server cluster logically, where the server 112 is external to the cluster, and where the cluster is run asynchronously.
- the second action can include repeating the generating of the value iteratively until the value satisfies the threshold such that the first action can be performed.
- the first action can include the server 114 caching the value based on a set of criteria such that the server 112 outputs the value, as cached, when requested via the client 108 over the network 102 and when the value satisfies the set of criteria at a time when the request is received via the server 112 over the network 102 from the client 108 .
- at least two of the server 112 , the server 114 , or the server 116 can be situated with a virtual private cloud (VPC) logically.
- VPC virtual private cloud
- FIG. 2 shows a flowchart of an embodiment of a method of score formation according to this disclosure.
- a method 200 includes a plurality of blocks 202 - 218 .
- the method 200 can be performed via the topology 100 or others, as disclosed herein.
- a server monitors a plurality of social networking profiles of a social networking service periodically as selected in advance.
- the server serves a GUI, such as a web page depicting a tabular form with a submit button, to a client for an input of a plurality of social networking service profile identifiers, which are alphanumeric, and a time unit value, which is numeric.
- the social networking service profile identifiers can be “John Smith” or “JSmith7580” or “joNny1_2” or “SUPERMAN!” or any other alphanumeric string in any language, such as English, Russian, Arabic, Hebrew, Mandarin, Hindi, Dutch, Spanish, Portuguese, or others.
- the alphanumeric fields can be programmed to transliterate between languages on input or upon activation or upon request, such as an input “Ivan” into a text field can be transliterated into “ ” in that text field, as language-selection prompted on the tabular form.
- transliteration can be based on a language selection menu presented on the tabular form or overlaid over the tabular form via the server or the client and then the server or the client querying a local or a remote data source, such as Google Translate or a transliteration engine, such as www.Translit.ru.
- the time unit value may be any number of seconds, minutes, hours, days, weeks, or specific times/dates/time zones, or others, inclusively, whether less or more, such as 10 seconds or 3.3 hours, or every 4 hours or 6 hours or at 10:23 pm EST on Nov. 18, 2023 or 31/1/2025 @ 16:03 CST or others.
- the GUI can request an input of a social networking service identifier, such as Facebook, Twitter, LinkedIn, or others.
- the GUI is programmed to validate a social networking service profile identifier, such as via the server or the client querying a social networking service based on a social networking service identifier and reading a social networking service profile based on the social networking service identifier, otherwise if such reading is not possible, then the GUI can output a prompt that the social networking service profile identifier is not valid or that the social networking service is not responsive to the querying.
- the GUI can parse a social networking service profile identifier based on a set of rules programmed into the GUI, such as via a script, such as JavaScript or others, and determine what social networking service the social networking service profile identifier is valid in, such as when the social networking services enforce different handles or profile names.
- a script such as JavaScript or others
- such parsing can employ a natural language processing (NLP) technique or scan for flags or keywords within the social networking service profile identifier and then respond, such as via pulling a reply, with a matching keyword or a similar wording pattern from a database, which may be stored locally or remotely.
- NLP natural language processing
- the NLP technique can include lemmatization, morphological segmentation, stemming, lexical semantics, machine translation, sentiment analysis, relationship extraction, topic segmentation, word sense disambiguation, summarization, conference resolution, discourse analysis, or others.
- the GUI can be programmed to output a list of such social networking service identifiers, which may include best matches of social networking services to the social networking service profile identifier, such as Facebook and Twitter, and then receive an input via the GUI, where the input selects a social networking service identifier from the list of social networking service identifiers.
- such input can select at least two of the social networking service identifiers, such as both Facebook and Twitter.
- the social networking service profile identifiers can include a plurality of hyperlinks to a plurality of social networking service webpages depicting the social networking service profiles, whether the social networking service profile identifiers are or are not included in the hyperlinks.
- the server may validate and, if validation passes, store, such as based on writing, the social networking profile identifiers in a data structure, such as an array, a table, or others.
- a data structure such as an array, a table, or others.
- the data structure can include a database, which may be a distributed or a graphical database.
- the social networking service profile identifiers may be stored in accordance with a data schema of the data structure.
- the server may write the time value unit into the data structure in accordance with the data schema or the time value unit may be stored external to the data structure, yet logically associated therewith.
- the server begins to monitor the social networking service profiles in a social networking service based on the time unit value. For example, the monitoring can include reading the social networking service webpages depicting the social networking profiles, when the social networking service webpages are publicly readable, in whole or in part. However, when such social networking service webpages are not publicly readable, then the server can prompt an error message informative of such or request login information for those social networking service webpages.
- the server deploys a bot to monitor the social networking service webpages or a social networking service data feed.
- the server monitors the social networking service profiles based on the social networking service profile identifiers, whether the social networking service has been identified previously via the operator of the client, such as via the tabular form, or the server determining a social networking service that is applicable to the social networking service profile identifiers, such as based on parsing the social networking service profile identifiers linguistically based on a set of rules, comparing the social networking service profile identifiers as parsed against a set of social networking service allowable identifiers, and identifying the social networking service that best or strictly matches the social networking service profile identifiers based on such comparing.
- such parsing can employ an NLP technique or scan for flags or keywords within the social networking service profile identifier and then respond, such as via pulling a reply, with a matching keyword or a similar wording pattern from a database, which may be stored locally or remotely.
- the NLP technique can include lemmatization, morphological segmentation, stemming, lexical semantics, machine translation, sentiment analysis, relationship extraction, topic segmentation, word sense disambiguation, summarization, conference resolution, discourse analysis, or others.
- the server monitors the social networking service profiles based on the social networking service profile identifiers via querying the social networking service based on the social networking service profile identifiers and reading the social networking service profiles.
- the reading can be a specific area on the profile, such as a specific profile field or a profile keyword, or the profile in full.
- the reading can include reading a status field of a social networking service profile.
- the reading can include alphanumeric reading, barcode reading, image reading, sound reading, document reading, or any other type of reading.
- the server may employ image processing algorithms, such as pre-processing, character recognition, object recognition, post-processing, and others.
- the social networking profiles can be within a single social networking service or in different social networking services.
- the social networking profile can be within Facebook or some within Facebook and some within Twitter.
- the server detects a plurality of updates to the social networking service profiles, such as over the social networking service webpages depicting the social networking service profiles.
- the server detects the updates based on querying the social networking service periodically based on the time value unit, such as every 15 minutes.
- the detecting can include initially querying the social networking service based on the social networking service profile identifiers to obtain a plurality of first updates from the social networking profiles depicted on the social networking service webpages, waiting for a time period corresponding to the time value unit, again querying the social networking service based on the social networking service profile identifiers to obtain a plurality of second updates from the social networking profiles depicted on the social networking service webpages, comparing the first updates to the second updates, and identifying a plurality of updates, such as changes, between the first updates and the second updates.
- the server copies the updates as detected.
- the server writes the updates into the data structure in accordance with the data schema thereof.
- the data structure stores the updates such that the updates correspond to the social networking service profile identifiers, such as in a one-to-one manner.
- the server generates a score based on the updates.
- the server runs an engine that accesses the data structure, such as to reading the data structure, although other access rights are possible, such as write or delete.
- the engine may be a dedicated computer program or a part of a computer program, that may serve as a core foundation for a larger piece of software.
- the engine may exclude a GUI generation functionality.
- the engine may be a component of an OS.
- the engine may be a type of software that generates source code or markup and produces outputs that begin another process, allowing real-time maintenance of software requirements.
- the engine may be a self-actualizing element of a complete process and is, therefore, a driving motive behind an original process.
- the engine may be software that facilitates automated processes, in which different software elements work interactively to minimize human intervention.
- the engine may produce code that is concurrently executed by its originally invoked process. The process is entirely automatic and may be unmanaged by daemons or dynamic database triggers.
- the engine may be a component of an artificial intelligence application, whether local to or remote from the engine.
- the engine may be distributed among a plurality of servers.
- the engine stores or accesses a formula and applies the formula to the updates.
- the formula may employ a Random Surfer model and can include
- Score n ( 1 - ⁇ D 1 T + D 2 T + ... + D n T ) + ⁇ ⁇ ⁇ ( D 1 C D 1 T + D 2 C D 2 T + ... + D n C D n T ) + ( Score n - 1 D 1 T + D 2 T + ... + D n T ) ⁇ , 0 ⁇ n ⁇ ⁇ , where
- ⁇ may correspond to a value, such as a decimal value between 0 and 1, although other ranges are possible, whether higher or lower.
- the value may be a value from about 0 to about 1, inclusively, such as 0.85.
- the coefficient for inconsistencies, ⁇ is included to prevent profiles with no relatability from “absorbing” the value of other profiles that are connected thereto. For example, one profile that “follows” nobody on a social networking service could still be “followed” by others. Therefore, information could get “trapped” in a profile that follows no one and theoretically could not escape. If one were to set ⁇ to high (e.g.
- ⁇ can be determined as a weighted average between those two bounds or extremes.
- a leftmost parenthesis is informative of a probability of no relatedness even if hyperlinks are not identical
- a rightmost brackets are informative of a probability of relatedness based on inputs for each profile, such as social networking posts. For example, if one were to look at all the words (e.g. natural language) used by two social media participants, then one can use those words and where they overlap as one input into this process.
- the formula can be populated as
- the engine forms a numeric score, such as between 0 and 1, inclusively.
- the score may be 0.94, although other scoring systems are possible.
- the score may be alphabetical, such as A, B, C, or others.
- the score may be informative of a relationship strength between at least two profiles, as well as a probability that information will flow from one profile to the other profile. For example, if the score is closer to a lower bound, then the score may be informative of a weaker relationship and a lower probability that information will flow from one to the other. Conversely, if the score is closer to an upper bound, then the score may be informative of a stronger relationship and a higher probability of information flowing from one to the other.
- the score may be generated in under 5 minutes as started from when the engine has immediate and direct access to all variables/data necessary for the formula to be calculated.
- the score may be generated under 4 minutes, 3 minutes, 2, minutes, 1 minute, under 45 seconds, under 30 seconds, under 15 seconds, under 10 seconds, under 5 seconds, under 3 seconds, or others, inclusively.
- the engine may output the score.
- the server evaluates the score against a threshold, such as a previous score, such as an alphanumeric value.
- a threshold such as a previous score, such as an alphanumeric value.
- the server locally evaluates the score to determine whether the score is roughly equivalent to the previous score, if any. If the previous score does not exist, then the server repeats the block 210 in order to attempt to determine whether the score is roughly equivalent to the previous score. This is done in order to determine whether the algorithm has converged, and the scores have reached a steady state in the Markov chain representing the profiles and their content. Note that this may involve the server re-querying the social networking service in accordance with the time value unit based on the social networking service profile identifiers and re-detecting the updates to the social networking service profiles, as disclosed herein.
- the server determines whether the score satisfies the threshold. If not, then the block 210 is performed. If yes, then the block 214 is performed.
- the server takes an action.
- the action can be of any type, such as writing the score to a data structure or the data structure storing the social networking profile identifiers, modifying a data structure or the data structure storing the social networking profile identifiers with a datum other than the score, requesting that a logic local to or remote from the server does something, inputting the score into a logic local to or remote from the server, outputting the score to the client that initially selected the social networking service profiles to be monitored in accordance with the time value unit, requesting an input or output device, whether local to or remote from the server, such as the printer 120 or the printer 122 , to do something, such as generate a report, initiates a service, whether local to or remote from the server.
- the server outputs the score to the client that initially selected the social networking service profiles to be monitored in accordance with the time value unit. Such output may be via GUI, which may include generating a new page or updating a page already presented on the client.
- the server acts with the score, such as writing the score to a data structure or the data structure storing the social networking profile identifiers, modifying a data structure or the data structure storing the social networking profile identifiers with a datum other than the score, requesting that a logic local to or remote from the server does something, inputting the score into a logic local to or remote from the server, requesting an input or output device, such as the printer 120 or the printer 122 , whether local to or remote from the server, to do something, such as generate a report, initiates a service, whether local to or remote from the server, or others.
- the score such as writing the score to a data structure or the data structure storing the social networking profile identifiers, modifying a data structure or the data structure storing the social networking profile identifiers with a datum other than the score, requesting that a logic local to or remote from the server does something, inputting the score into a logic local to or remote from the server, requesting an input or output device, such as the
- FIG. 3 shows a flowchart of an embodiment of a method of score formation via an engine based on a formula according to this disclosure.
- a method 300 includes a plurality of blocks 302 - 310 .
- the method 300 can be performed via the topology 100 or others, as disclosed herein.
- a server receives a set of data at a profile cluster, as disclosed herein.
- the set of data may include the updates as read via the server from the social networking service via the social networking profile webpages accessed based on the social networking service profile identifiers.
- the server pushes the set of data from the profile cluster to a scoring cluster. This may be done within a VPC, such as over a storage area network (SAN) fabric, such as a storage fabric, such as a Fibre Channel network or others.
- SAN storage area network
- the scoring cluster hosts an engine that receives the set of data, processes the set of data, and outputs a score, which may be alphanumeric.
- the engine stores or accesses a formula and applies the formula to the set of data.
- the formula may employ a Random Surfer model and can include
- Score n ( 1 - ⁇ D 1 T + D 2 T + ... + D n T ) + ⁇ ⁇ ⁇ ( D 1 C D 1 T + D 2 C D 2 T + ... + D n C D n T ) + ( Score n - 1 D 1 T + D 2 T + ... + D n T ) ⁇ , 0 ⁇ n ⁇ ⁇ , where
- ⁇ may correspond to a value, such as a decimal value between 0 and 1, although other ranges are possible, whether higher or lower.
- the value may be a value from about 0 to about 1, inclusively, such as 0.85.
- the coefficient for inconsistencies, ⁇ is included to prevent profiles with no relatability from “absorbing” the value of other profiles that are connected thereto. For example, one profile that “follows” nobody on a social networking service could still be “followed” by others. Therefore, information could get “trapped” in a profile that follows no one and theoretically could not escape. If one were to set ⁇ to high (e.g.
- ⁇ can be determined as a weighted average between those two bounds or extremes.
- a leftmost parenthesis is informative of a probability of no relatedness even if hyperlinks are not identical
- a rightmost brackets are informative of a probability of relatedness based on inputs for each profile, such as social networking posts. For example, if one were to look at all the words (e.g. natural language) used by two social media participants, then one can use those words and where they overlap as one input into this process.
- the scoring cluster or the engine determines whether the score is roughly equivalent to a previous score, if any, such as based on comparing the score to a threshold, which may be the old score, based on a set of criteria, such as value or others. For example, if the difference in score values is less than or equal 0.001, then that may be considered roughly equal. If the score is not roughly equivalent to the previous score, then the block 306 is performed. If the score is roughly equivalent to the previous score, then a block 310 is performed
- the scoring cluster or the engine take an action, such as writing the score to a data structure, whether local to or remote from the scoring cluster, sending the score outside of the scoring cluster, such as to another cluster, or others.
- FIG. 4 shows a diagram of an embodiment of a data organization according to this disclosure.
- a data organization 400 depicts a schema of a data structure for implementing a profile storage at least for use, as disclosed herein.
- the data organization 400 is shown as a standard class diagram, which can directly relate to a relational storage system, in other embodiments, several separate or distinct storage systems including scalable key value stores and a graph store may be used to store a similar or same data structure. Such systems can include relational, key value, document base, or other storage types.
- a beneficial aspect of the data organization 400 is that the data structure and its storage of links between profiles and attributes. However, note that there are many ways to store this type of data.
- the data organization 400 includes a profile object 402 , a profile link object 404 , an attribute object 406 , an attribute metadata object 408 , an attribute proximity measure object 410 , and an enumeration link type object 412 .
- the object 402 is logically related to the object 404 and the object 406 , whether directly or indirectly.
- the object 406 is logically related to the object 408 , whether directly or indirectly.
- the object 408 is logically related to the object 410 , whether directly or indirectly. In some embodiments, any combinatory permutation of any logical relationship between objects of the data organization 400 is possible.
- the object 402 can be a table in a database with a unique system numeric identifier, a set of attributes tagging a social networking profile, and a set of profile links representing connections to other social networking profiles, within a same or different social networking service.
- the object 402 contains multiple profile link references referring to the objects 404 , when more than one are used, and multiple attribute references referring to the objects 406 , when more than one are used.
- the object 402 can be manifested as per below:
- Profile.systemId is a number that is globally unique in a system for a profile, in this particular storage format it is a Primary Key for the Profile ( 402 ) table.
- Profile.attributes is an array of foreign keys identifying one or more Attribute objects ( 406 )
- Profile.profileLinks is an array of foreign keys identifying one or more ProfileLink objects ( 404 ) Blima Data Example 404 (ProfileLink)-> Data
- ProfileLink.profileLinkId is a number that is globally unique in a system for a ProfileLink ( 404 ), in this particular storage format it is a Primary Key for the ProfileLink ( 404 ) table.
- ProfileLink.sourceProfileId is a foreign key identifying a Profile ( 406 ). This is also a source profile of a unidirectional link.
- ProfileLink.targetProfileId is a foreign key identifying a Profile ( 406 ). This is a target profile of a unidirectional link.
- ProfileLink.linkType is a String foreign key into LinkType ( 412 ).
- ProfileLink.isBiDirectional is a Boolean for denoting whether or not this particular link is bidirectional, i.e., this link may be processed as if it were two logical links of the same data with the source and target reversed.
- the object 404 can be a table in a database.
- Each object 402 has a unique numeric identifier, a reference to a source profile and a target profile as well as a enumeration describing a link type and a Boolean value to denote if that relationship is bidirectional.
- the object 404 can be manifested as per below:
- ProfileLink.profileLinkId is a number that is globally unique in a system for a ProfileLink ( 404 ), in this particular storage format it is a Primary Key for the ProfileLink ( 404 ) table.
- ProfileLink.sourceProfileId is a foreign key identifying a Profile ( 406 ). This is also a source profile of a unidirectional link.
- ProfileLink.targetProfileId is a foreign key identifying a Profile ( 406 ). This is a target profile of a unidirectional link.
- ProfileLink.linkType is a String foreign key into LinkType ( 412 ).
- ProfileLink.isBiDirectional is a Boolean for denoting weather or not this particular link is bidirectional.
- IE This link may be processed as if it were two logical links of the same data with a source and target reversed.
- the object 406 can be a table in a database.
- the object 406 can contain a unique numeric attribute identifier, a string key, a string value, and a set of numeric attribute metadata identifiers representing links to the object 408 describing this attribute.
- the object 406 can be manifested as per below:
- Attribute.attributeId is a number that is globally unique in a system for an Attribute ( 406 ), in this particular storage format it is a Primary Key for an Attribute ( 406 ) table.
- Attribute.key is a String key denoting what the attribute is. name, address, photo, etc.
- Attribute.value is a value of this attribute in a string format.
- Attribute.metaData is an array of Foreign keys into an AttributeMetaData table ( 408 )
- the object 408 can be a table in a database storing data describing an attribute object.
- the object 408 contains a unique numeric identifier, a set of attribute proximity measure identifiers describing other attributes in a system that have a ‘Proximity Score’ to this attribute, and a set of attribute identifiers describing related attributes.
- the object 408 can be manifested as per below:
- AttributeMetaData.attributeMetaId is a number that is globally unique in a system for a AttributeMetaData ( 408 ), in this particular storage format it is a Primary Key for the AttributeMetaData ( 408 ) table.
- AttributeMetaData.attributeProximityMeasures is an array of Foreign keys into an AttributeProximityMeasure table ( 410 )
- AttributeMetaData.relatedAttributes is an array of Foreign Keys into an Attribute ( 406 ) table. This provides a way to link attributes.
- the object 410 can be a table in a database storing numeric data relations between attributes either in or between attributes. These measures can be between attributes in a single social networking profile or across several social networking profiles. For example, the object 410 can be manifested as per below:
- AttributeProximityMeasure.sourceAttributeId is a Foreign Key into an Attribute table ( 406 ) this is a source of a proximity relationship stored here.
- AttributeProximityMeasure.targetAttributeId is a Foreign Key into an Attribute table ( 406 ) this is a target of a proximity relationship stored.
- AttributeProximityMeasure.proximityScore is a double numeric value. This is a score stored.
- AttributeProximityMeasure.proximityType is a string denoting a type of score stored.
- the object 412 is a set of controlled strings denoting a type of link between the objects 402 .
- the object 412 can be manifested as per below:
- LinkType.value is a string unique to a LinkType table denoting a type of link. This is a value used for a purpose of conditional processing, grouping, and filtration.
- FIG. 5 shows a schema of an embodiment of a network-based system for generating a score according to this disclosure.
- a network-based system 500 employs the data organization 400 to performs various techniques, as disclosed herein, such as generating a score based on a plurality of social networking profiles.
- the system 500 includes a plurality of machine users 502 , a plurality of human users 504 , a server 506 , a server 508 , a logical entity 510 , a VPC 512 , a security service cluster 514 , a caching service cluster 516 , a set of server clusters 518 , a control cluster 520 , a profile store cluster 522 , a scoring cluster 524 , and a data mining cluster 526 .
- system 500 is a standard three tier distributed web application, where many, most, or all services are independently clustered for scalability, where security depends on a Lightweight Directory Access Protocol (LDAP) configuration, a VPC configuration, a Linux configuration, a set of appropriately configured firewalls and both active and passive intrusion detection systems.
- LDAP Lightweight Directory Access Protocol
- VPC Configuration Control Protocol
- Linux Linux
- this architecture is illustrative and other architectures are possible.
- the machine users 502 include programs and other software that use the system 500 via an API.
- the human users 504 include human beings operating computing devices to use the system 500 via local or network-based browsers interpreting a Hypertext Markup Language (HTML) code and a JavaScript code of the system 500 .
- the server 506 hosts a servlet web container, such as a Tomcat container, that serves a web application with REST services available via Hypertext Transfer Protocol (HTTPS) to allow other software systems to interface with the system 500 .
- the server 506 is managed via a computing orchestration service, such as Amazon Web Services (AWS) Elastic Beanstalk.
- AWS Amazon Web Services
- the computing orchestration service manages load balancing, deployment, and configuration of a web services cluster.
- the server 506 is in communication, whether direct or indirect, with a firewall appliance or a software firewall only allowing HTTP/HTTPS traffic from a wide area network.
- the server 508 hosts a servlet web container, such as a Tomcat container, that serves a web application with a HTML content available via HTTPS to allow the human users to use the system 500 .
- the server 508 is managed via a computing orchestration service, whether same or different from the server 506 , such as AWS Elastic Beanstalk.
- the computing orchestration service manages load balancing, deployment, and configuration of a web services cluster.
- the server 508 is in communication, whether direct or indirect, with a firewall appliance or software firewall only allowing HTTP/HTTPS traffic from the wide area network.
- the entity 510 hosts the VPC 512 where the security service cluster 514 , the caching service cluster 516 , the set of server clusters 518 , the control cluster 520 , the profile store cluster 522 , the scoring cluster 524 , and the data mining cluster 526 are logically situated.
- the VPC 512 is a private network in a cloud environment. For example, some, most, or all network traffic is controlled for security purposes for any server or service in the VPC 512 .
- the security service cluster 514 includes a cluster of servers dedicated to user, role, and object permissions. This allows the applications and services within the overall application to enforce security requirements. Although an AWS Directory service is used, note that a LDAP-based process and or any other security provider process could be used.
- the server 506 and the server 508 communicate with the security service cluster 514 to enforce security requirements. This allows the system 500 to check for resource permissions, such as access to specific data, services, and authentication.
- the caching service cluster 516 provide a fast access storage lookup for resources that do not need to be recomputed on every request. This increases application speed and reduces costs by lowering the average number of computing cycles and or expensive resources user per request.
- the caching service cluster 516 is implemented as a fully managed in-memory data store and cache service that improves the performance of web applications by retrieving information from managed in-memory caches, instead of relying entirely on slower disk-based databases.
- the caching service cluster 516 can use AWS ElastiCache, which is a managed version of Redis, which may include an in-memory key value store.
- the server 506 and the server 508 communicate with the caching service cluster 516 , such as via Tomcat web applications, to avoid recalculating anything on successive requests.
- This allows the system 500 to check for resources, such as JavaScript Object Notation (JSON) data in the cache, and only submit requests for new data if the system has not cached it yet.
- JSON JavaScript Object Notation
- the set of server clusters 518 includes the control cluster 520 , the profile store cluster 522 , the scoring cluster 524 , and the data mining cluster 526 .
- the control cluster 520 is in communication with the security service cluster 514 and the caching service cluster 516 along different logical or communication paths.
- the control cluster 520 is logically situated between the security service cluster 514 and the caching service cluster 516 and the profile store cluster 522 , the scoring cluster 524 , and the data mining cluster 526 .
- the control cluster 520 includes a cluster of servers or services that receive requests for data, such as JSON over HTTPS or others, and manages a coordination of several backend services to respond to the requests for data either synchronously or asynchronously.
- the control cluster 520 controls scoring of a network of profiles which include retrieving the network of profiles from the profile store cluster 522 , passing the network of profiles to the scoring cluster 524 , and pushing a set of results from the scoring cluster 524 into the caching service cluster 516 . This allows for a complexity of operations and timing to be obfuscated from various services that need data but do not care how that data is found or determined.
- the control cluster 520 communicates, whether directly or indirectly, based on network communications to the control cluster 520 that related to jobs that the system 500 needs to do that require multiple resources to be managed, such as a request for a network path and scores between two profiles. If not cached, then this process involves mining data, storing the mined data in the profile store cluster 522 and the scoring cluster 524 .
- the control cluster 520 can receive or send communications that include authentication, requesting data and or checking to see if data is available. This allows for an asynchronous operation of various backend processes whose nature is inherently not real time. Such communications can be over HTTPS or network port. Note that such communications may utilize REST API's over HTTPS.
- the profile store cluster 522 includes a cluster of servers that provide a distributed storage system for profile data, such as via a thin REST API that relies on AWS Dynamo DB and AWS Redshift to store and retrieve profile data.
- AWS services are illustrative and any storage system that can store a relational model can work since this configuration is an abstraction of Create, Read, Update and Delete (CRUD) operations related to the profiles.
- the control cluster 520 communicates with the profile store cluster 522 , whether directly or indirectly, over a REST API. This communication model can be similar to a communication model between a client and a relational database and involves various CRUD operations and existence tests.
- JSON Profile data is returned from the profile store cluster 522 to the control cluster 520 .
- the profile data can also be added by the control cluster 520 .
- the data mining cluster 526 may return new social media data for a profile and the control cluster 520 may call the profile store 522 and request the profile store 522 to store that data for future reference.
- the scoring cluster 524 includes a cluster of servers that provide a distributed scoring system for profile data, such as via a thin REST API that relies on AWS Redshift to store.
- a manner in which this service scores is configurable and processing systems used vary depending on use and implementation. For example, an in memory representation is used to score however in larger systems this would be handled by Apache SPARK or an optimized map-reduce or map-reduce like system.
- the control cluster 520 communicates with the scoring cluster 524 , whether directly or indirectly, over a REST API. For example, the control cluster 520 submits profile data and a scoring configuration in a JSON POST request and receive back a result as a JSON document over HTTPS. In some embodiments, the scoring cluster 524 can run asynchronously.
- the data mining cluster 526 includes a cluster of servers that provide a distributed data import and disambiguation system for profile data.
- the data mining cluster 526 manages the process of pulling data from social networking service data sources in parallel. This pulled data is then returned to the control cluster 520 , which decides what to do with the pulled data next.
- the data mining cluster 526 can also watch feed data, such as periodically, and notify the control cluster 520 that new data is available.
- the control cluster 520 communicates with the data mining cluster 526 , whether directly or indirectly, over a REST API.
- control cluster 520 submits a request for data either in bulk or as related to a specific profile, such as requesting the system 500 to find data on a profile that has yet to be populated, in a JSON POST request and receive back a results as a JSON document over HTTPS.
- data mining cluster 526 can monitor social networking service data streams and notify the control cluster 520 when new data is detected.
- system 500 relies on AWS services
- system 500 can be configured such that any of such services can be swapped out at any time for an in-house implementation or other services provides by AWS or another cloud computing provider, such as Microsoft Cloud.
- FIG. 6 shows a diagram of an embodiment of a network-based sequence of score formation according to this disclosure.
- a sequence 600 employs various actions by various entities, as noted in a plurality of points 602 - 620 .
- the sequence 600 can be used in context with the system 500 to implement a submission of a scoring request and a response of the scoring request.
- steps such as request, mine for data, score, respond, or others, can be implemented in any language or architecture that accomplished a similar or same process.
- the sequence 600 includes components that may be distributed and clustered for high availability and scaling.
- a user places a request that has a source node and a target node that is marshaled into JSON and sent via HTTPS POST to the system 500 REST API, where the firewall, whether hardware or software, may reject some, most, or all traffic except HTTP and HTTPS.
- a Tomcat container runs, which may include a pool of servers running Apache Tomcat which is a java web application container on a CentOs OS.
- the container represents a HTML and JavaScript interface accessible by the human users 504 through a web browser.
- the request is checked to ensure that the request has been authenticated and the user/role has permission to read the data necessary to complete the request.
- the security service cluster 514 sends back the request to the Tomcat container if the user does not have enough permissions to complete the request or is not authenticated. Otherwise, the security service cluster 514 passes the request to the caching service cluster 516 to check for a recalculated result via HTTPS REST API.
- the caching service cluster 516 determines if a response to the request is cached or not cached. If cached, then the JSON result is returned to the Tomcat container and then a web browser or an HTML client for display.
- the request is forwarded to the control cluster 520 and a client, such as from the point 602 , may be notified that the request is being processed.
- the control cluster 520 contacts the profile store cluster 522 to identify and retrieve the necessary data.
- the profile store cluster 522 determines whether the necessary data exists or does not exist. If the necessary data exists, then the profile store cluster 522 forwards the necessary data to the scoring cluster 524 for scoring. If the necessary data does not exist, then the profile store cluster 522 requests the data mining cluster 526 to retrieve or mine for the necessary data.
- the data mining cluster 526 retrieves or mines the necessary data, such as profile data, and enters into the profile store cluster 522 .
- the scoring cluster 524 scores the necessary data, as disclosed herein and sends a JSON document to a waiting Tomcat container.
- the Tomcat container outputs the JSON document to a client, such as from the point 602 , for display, such as via a web browser.
- Various embodiments of the present disclosure may be implemented in a data processing system suitable for storing and/or executing program code that includes at least one processor coupled directly or indirectly to memory elements through a system bus.
- the memory elements include, for instance, local memory employed during actual execution of the program code, bulk storage, and cache memory which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
- I/O devices can be coupled to the system either directly or through intervening I/O controllers.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.
- the present disclosure may be embodied in a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- a code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
- a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents.
- Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, among others.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
where
-
- Dn C=peice of data from profile n
- Dn T=total data from profile n
- δ=unspecified coefficient for imconsistencies
- Scoren-1=previous score
- Scoren=new score
where
-
- Dn C=peice of data from profile n
- Dn T=total data from profile n
- δ=unspecified coefficient for imconsistencies
- Scoren-1=previous score
- Scoren=new score
and this formula would iterate, such as via a for loop or a while loop, until the values reached a steady state of the Markov chain representing profiles and their content.
where
-
- Dn T=total data from profile n
- δ=unspecified coefficient for imconsistencies
- Scoren-1=previous score
- Scoren=new score
systemId | attributes | profileLinks | ||
0 | [0,1] | [1] | ||
1 | [0] | |||
Description
Profile.systemId is a number that is globally unique in a system for a profile, in this particular storage format it is a Primary Key for the Profile (402) table.
Profile.attributes is an array of foreign keys identifying one or more Attribute objects (406)
Profile.profileLinks is an array of foreign keys identifying one or more ProfileLink objects (404)
Blima Data Example 404 (ProfileLink)->
Data
source= | ||||
profileLinkId | ProfileId | targetProfileId | linkType | isBiDirectional |
10 | 0 | 1 | FRIEND | TRUE |
11 | 1 | 0 | FOLLOWER | FALSE |
Description
ProfileLink.profileLinkId is a number that is globally unique in a system for a ProfileLink (404), in this particular storage format it is a Primary Key for the ProfileLink (404) table.
ProfileLink.sourceProfileId is a foreign key identifying a Profile (406). This is also a source profile of a unidirectional link.
ProfileLink.targetProfileId is a foreign key identifying a Profile (406). This is a target profile of a unidirectional link.
ProfileLink.linkType is a String foreign key into LinkType (412). This describes a type of link for a purpose of conditional processing, grouping, and filtration.
ProfileLink.isBiDirectional is a Boolean for denoting whether or not this particular link is bidirectional, i.e., this link may be processed as if it were two logical links of the same data with the source and target reversed.
source- | ||||
profileLinkId | ProfileId | targetProfileId | linkType | isBiDirectional |
10 | 0 | 1 | FRIEND | TRUE |
11 | 1 | 0 | FOLLOWER | FALSE |
Description
ProfileLink.profileLinkId is a number that is globally unique in a system for a ProfileLink (404), in this particular storage format it is a Primary Key for the ProfileLink (404) table.
ProfileLink.sourceProfileId is a foreign key identifying a Profile (406). This is also a source profile of a unidirectional link.
ProfileLink.targetProfileId is a foreign key identifying a Profile (406). This is a target profile of a unidirectional link.
ProfileLink.linkType is a String foreign key into LinkType (412). This describes the type of link for the purposes of conditional processing, grouping, and filtration.
ProfileLink.isBiDirectional is a Boolean for denoting weather or not this particular link is bidirectional. IE: This link may be processed as if it were two logical links of the same data with a source and target reversed.
attributeId | key | value | metaData | ||
20 | Name | Brian M. Lima | [30] | ||
21 | Address | 71 Turo Square | [31] | ||
Description
Attribute.attributeId is a number that is globally unique in a system for an Attribute (406), in this particular storage format it is a Primary Key for an Attribute (406) table.
Attribute.key is a String key denoting what the attribute is. name, address, photo, etc.
Attribute.value is a value of this attribute in a string format.
Attribute.metaData is an array of Foreign keys into an AttributeMetaData table (408)
attributeMetaId | attributeProximityMeasures | relatedAttributes |
30 | [40] | [20] |
31 | [41] | [21] |
Description
AttributeMetaData.attributeMetaId is a number that is globally unique in a system for a AttributeMetaData (408), in this particular storage format it is a Primary Key for the AttributeMetaData (408) table.
AttributeMetaData.attributeProximityMeasures is an array of Foreign keys into an AttributeProximityMeasure table (410)
AttributeMetaData.relatedAttributes is an array of Foreign Keys into an Attribute (406) table. This provides a way to link attributes.
sourceAttributeId | targetAttributeId | proximityScore | proximityType |
20 | 21 | 1.0 | PHYSICAL |
21 | 20 | 0.5 | TRACE_VALUE |
Description
AttributeProximityMeasure.sourceAttributeId is a Foreign Key into an Attribute table (406) this is a source of a proximity relationship stored here.
AttributeProximityMeasure.targetAttributeId is a Foreign Key into an Attribute table (406) this is a target of a proximity relationship stored.
AttributeProximityMeasure.proximityScore is a double numeric value. This is a score stored.
AttributeProximityMeasure.proximityType is a string denoting a type of score stored.
value |
FRIEND |
FOLLOWER |
Description
LinkType.value is a string unique to a LinkType table denoting a type of link. This is a value used for a purpose of conditional processing, grouping, and filtration.
Claims (29)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/903,812 US12073335B2 (en) | 2015-10-21 | 2022-09-06 | Technologies for evaluating relationships between social networking profiles |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/918,626 US20170116535A1 (en) | 2015-10-21 | 2015-10-21 | System and method of predictive analysis |
US15/169,795 US20170116539A1 (en) | 2015-10-21 | 2016-06-01 | System and method of predictive analysis |
US15/595,085 US11157824B2 (en) | 2015-10-21 | 2017-05-15 | Technologies for evaluating relationships between social networking profiles |
PCT/US2018/031963 WO2018213087A1 (en) | 2017-05-15 | 2018-05-10 | Technologies for evaluating relationships between social networking profiles |
US16/668,668 US11436513B2 (en) | 2015-10-21 | 2019-10-30 | Technologies for evaluating relationships between social networking profiles |
US17/903,812 US12073335B2 (en) | 2015-10-21 | 2022-09-06 | Technologies for evaluating relationships between social networking profiles |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/668,668 Continuation US11436513B2 (en) | 2015-10-21 | 2019-10-30 | Technologies for evaluating relationships between social networking profiles |
Publications (2)
Publication Number | Publication Date |
---|---|
US20220414506A1 US20220414506A1 (en) | 2022-12-29 |
US12073335B2 true US12073335B2 (en) | 2024-08-27 |
Family
ID=63167267
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/595,085 Active 2039-02-02 US11157824B2 (en) | 2015-10-21 | 2017-05-15 | Technologies for evaluating relationships between social networking profiles |
US16/668,668 Active 2036-09-27 US11436513B2 (en) | 2015-10-21 | 2019-10-30 | Technologies for evaluating relationships between social networking profiles |
US17/903,812 Active US12073335B2 (en) | 2015-10-21 | 2022-09-06 | Technologies for evaluating relationships between social networking profiles |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/595,085 Active 2039-02-02 US11157824B2 (en) | 2015-10-21 | 2017-05-15 | Technologies for evaluating relationships between social networking profiles |
US16/668,668 Active 2036-09-27 US11436513B2 (en) | 2015-10-21 | 2019-10-30 | Technologies for evaluating relationships between social networking profiles |
Country Status (1)
Country | Link |
---|---|
US (3) | US11157824B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11157824B2 (en) * | 2015-10-21 | 2021-10-26 | Pairity, Inc. | Technologies for evaluating relationships between social networking profiles |
CN110442455A (en) * | 2019-08-05 | 2019-11-12 | 深圳前海微众银行股份有限公司 | A kind of data processing method and device |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100217720A1 (en) | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Identifying users for effective propagation of content |
US20110258256A1 (en) | 2010-04-14 | 2011-10-20 | Bernardo Huberman | Predicting future outcomes |
US20120011201A1 (en) | 2009-03-18 | 2012-01-12 | Tencent Technology (Shenzhen) Company Limited | Method and system for transmitting information based on social network |
US8442978B2 (en) | 2005-06-28 | 2013-05-14 | Yahoo! Inc. | Trust propagation through both explicit and implicit social networks |
US8473437B2 (en) | 2010-12-17 | 2013-06-25 | Microsoft Corporation | Information propagation probability for a social network |
US20140210702A1 (en) | 2013-01-31 | 2014-07-31 | United Video Properties, Inc. | Systems and methods for presenting messages based on user engagement with a user device |
US20140214941A1 (en) | 2013-01-31 | 2014-07-31 | Linkedin Corporation | Contact prioritization and assignment using a social network |
US20140250048A1 (en) | 2013-03-01 | 2014-09-04 | RedOwl Analytics, Inc. | Analyzing behavior in light of social context |
US20140280610A1 (en) | 2013-03-13 | 2014-09-18 | International Business Machines Corporation | Identification of users for initiating information spreading in a social network |
US20150019483A1 (en) | 2010-12-17 | 2015-01-15 | Facebook, Inc. | Ranking of Address Book Contacts Based on Social Proximity |
US20150039596A1 (en) | 2013-07-30 | 2015-02-05 | Facebook, Inc. | Static Rankings for Search Queries on Online Social Networks |
US20150106164A1 (en) | 2013-10-14 | 2015-04-16 | Limelight Networks, Inc. | Quantizing network interconnections |
US11436513B2 (en) * | 2015-10-21 | 2022-09-06 | Ontario Systems, Llc | Technologies for evaluating relationships between social networking profiles |
-
2017
- 2017-05-15 US US15/595,085 patent/US11157824B2/en active Active
-
2019
- 2019-10-30 US US16/668,668 patent/US11436513B2/en active Active
-
2022
- 2022-09-06 US US17/903,812 patent/US12073335B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8442978B2 (en) | 2005-06-28 | 2013-05-14 | Yahoo! Inc. | Trust propagation through both explicit and implicit social networks |
US20100217720A1 (en) | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Identifying users for effective propagation of content |
US20120011201A1 (en) | 2009-03-18 | 2012-01-12 | Tencent Technology (Shenzhen) Company Limited | Method and system for transmitting information based on social network |
US20110258256A1 (en) | 2010-04-14 | 2011-10-20 | Bernardo Huberman | Predicting future outcomes |
US20150019483A1 (en) | 2010-12-17 | 2015-01-15 | Facebook, Inc. | Ranking of Address Book Contacts Based on Social Proximity |
US8473437B2 (en) | 2010-12-17 | 2013-06-25 | Microsoft Corporation | Information propagation probability for a social network |
US20140210702A1 (en) | 2013-01-31 | 2014-07-31 | United Video Properties, Inc. | Systems and methods for presenting messages based on user engagement with a user device |
US20140214941A1 (en) | 2013-01-31 | 2014-07-31 | Linkedin Corporation | Contact prioritization and assignment using a social network |
US20140250048A1 (en) | 2013-03-01 | 2014-09-04 | RedOwl Analytics, Inc. | Analyzing behavior in light of social context |
US20140280610A1 (en) | 2013-03-13 | 2014-09-18 | International Business Machines Corporation | Identification of users for initiating information spreading in a social network |
US20150039596A1 (en) | 2013-07-30 | 2015-02-05 | Facebook, Inc. | Static Rankings for Search Queries on Online Social Networks |
US20150106164A1 (en) | 2013-10-14 | 2015-04-16 | Limelight Networks, Inc. | Quantizing network interconnections |
US11436513B2 (en) * | 2015-10-21 | 2022-09-06 | Ontario Systems, Llc | Technologies for evaluating relationships between social networking profiles |
Non-Patent Citations (13)
Title |
---|
Aral, Sinan. "Commentary-Identifying social influence: A comment on opinion leadership and social contagion in new product diffusion." Marketing Science 30.2 (2011): 217-223. |
Bhatt, Rushi, Vineet Chaoji, and Rajesh Parekh. "Predicting product adoption in large-scale social networks." Proceedings of the 19th ACM international conference on Information and knowledge management. 2010. |
Centola, Damon. "The spread of behavior in an online social network experiment." science 329.5996 (2010): 1194-1197. |
Goel, Sharad, and Daniel G. Goldstein. "Predicting individual behavior with social networks." Marketing Science 33.1 (2014): 82-93. |
Hill, Shawndra, Foster Provost, and Chris Volinsky. "Network-based marketing: Identifying likely adopters via consumer networks." Statistical Science 21.2 (2006): 256-276. |
http://leadshift.com, Identify Prospects. Book More Meetings., downloaded from the Internet May 10, 2017 (4 Pages). |
http://www.needtagger.com, The Customer Search Engine for Social Media, downloaded from the Internet May 10, 2017 (3 Pages). |
http://www.socedo.com, B2B Intent Data from the Social Web, downloaded from the Internet May 10, 2017 (3 Pages). |
Hu, Yuheng, Shelly Farnham, and Kartik Talamadupula. "Predicting user engagement on twitter with real-world events." Proceedings of the International AAAI Conference on Web and Social Media. vol. 9. No. 1. 2015. |
International Search Report and Written Opinion dated Oct. 18, 2018 from corresponding Application No. PCT/US18/31963, 7 pages. |
Korshunov, Anton, et al. "Social network analysis: methods and applications." Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS) 26.1 (2014): 439-456. |
Nguyen, Tommy H., and Boleslaw K. Szymanski. "Social ranking techniques for the web." Proceedings of the 2013 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining. 2013. |
Yashnikov et al., Identification of Opinion Leaders of the Social Network, Youth Science Forum: Technical and Mathematical Sciences, 2016, vol. 5, No. 34, pp. 59-65. |
Also Published As
Publication number | Publication date |
---|---|
US11436513B2 (en) | 2022-09-06 |
US11157824B2 (en) | 2021-10-26 |
US20180240029A1 (en) | 2018-08-23 |
US20220414506A1 (en) | 2022-12-29 |
US20200125980A1 (en) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11966694B1 (en) | Systems and methods for reflexive questionnaire generation using a spreadsheet | |
US11842145B1 (en) | Systems, devices, and methods for software coding | |
US20230344841A1 (en) | Machine learning based anomaly detection initialization | |
EP3514694B1 (en) | Query translation | |
US12073335B2 (en) | Technologies for evaluating relationships between social networking profiles | |
US10992604B1 (en) | Systems and methods for chat sessions involving multiple chatbots | |
US11853360B1 (en) | Systems, devices, and methods for parallelized data structure processing | |
US11403457B2 (en) | Processing referral objects to add to annotated corpora of a machine learning engine | |
US11934403B2 (en) | Generating training data for natural language search systems | |
US11249992B2 (en) | Parsing of user queries in a remote network management platform using extended context-free grammar rules | |
US11546380B2 (en) | System and method for creation and implementation of data processing workflows using a distributed computational graph | |
US11429650B2 (en) | Parsing of user queries in a remote network management platform using linguistic matching | |
US11914948B1 (en) | Systems, devices, and methods for software coding | |
US20190114366A1 (en) | Dynamic content placeholders for microblogging posts | |
US11868713B1 (en) | Systems, devices, and methods for software coding | |
US11210459B1 (en) | Systems, devices, and methods for software coding | |
US10657188B2 (en) | Representational state transfer resource collection management | |
CN112329429A (en) | Text similarity learning method, device, equipment and storage medium | |
US20240202458A1 (en) | Generating prompt recommendations for natural language processing tasks | |
US10877961B1 (en) | Technologies for collecting network-based information | |
US20220083876A1 (en) | Shiftleft topology construction and information augmentation using machine learning | |
WO2018213087A1 (en) | Technologies for evaluating relationships between social networking profiles | |
Srivastava | Learning Elasticsearch 7. x: Index, Analyze, Search and Aggregate Your Data Using Elasticsearch (English Edition) | |
US12093162B1 (en) | Block anchors for online log parsing | |
da Costa Ferreira | Near Real Time Data Aggregation for NLP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
AS | Assignment |
Owner name: RANDOMWALK, ANALYTICS INC., D/B/A PAIRITY, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALLEN, GREGORY;REEL/FRAME:061012/0573 Effective date: 20170512 Owner name: PAIRITY, INC., DELAWARE Free format text: CHANGE OF NAME;ASSIGNOR:RANDOMWALK, ANALYTICS INC., D/B/A PAIRITY;REEL/FRAME:061388/0734 Effective date: 20180716 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |