Monitoring third-party forum contributions to improve searching through time-to-live data assignments

Information

  • Patent Grant
  • 11966429
  • Patent Number
    11,966,429
  • Date Filed
    Wednesday, October 13, 2021
    2 years ago
  • Date Issued
    Tuesday, April 23, 2024
    12 days ago
Abstract
A system and method are presented that improves search results based on skills associated with individuals. The system monitors an individual's contributions to a third-party forum and associates the contributions with skills. The system also monitors learnings received by the individual. Assignments are made to associate the individual with the skills and to assign points. Users request a search based on search skill parameters, and the system uses forum-based data and non-forum data to identify and sort individuals. Skill and point assignments are made temporarily, and assignments are deleted upon the expiration of a time-to-live clock. Save events can permanently save data. Local forum data is also stored and can be used to restore deleted assignments. Points are used to improve avatars used when interacting with searching users.
Description
FIELD OF THE INVENTION

The present application relates to the field of data searching over a network. More particularly, the present application improves the searching of data related to individuals by improving data quality and content through the monitoring of contributions to and learnings from third-party forums and through time-to-live data assignments.


SUMMARY OF THE INVENTION

In an embodiment, a method is included. The method can include a) at a system server, accessing forum data and non-forum data that together relate to a plurality of individuals, the non-forum data associating skills with a first set of individual identifiers, b) at the system server, receiving contribution data from a system application operating on an individual computing device, the contribution data identifying a contribution made from the individual computing device to a third-party forum, c) at the system server, determining a first individual identifier associated with a first individual for the contribution data, d) at the system server, establishing within the forum data a first skill association between a contribution skill identified for the contribution and the first individual identifier, e) at the system server, establishing within the forum data a first point association between a contribution point value identified for the contribution and the first individual identifier, f) at a search server, receiving a query from a search user device to search the plurality of individuals, the query can include a search parameter, g) at the search server, identifying a query skill from the search parameter, wherein the query skill matches the contribution skill, h) at the search server, searching both the non-forum data and the forum data for individual identifiers associated with the query skill to determine search results, the search results including data related to the first individual identifier as a consequence of the contribution skill being associated with the first individual identifier, and i) at the search server, returning the search results to the search user device.


In an embodiment, the contribution data includes contribution content, and further wherein the contribution point value is identified based upon an examination of the contribution content.


In an embodiment, the contribution skill is identified for the contribution by first determining a topic under which the contribution was made, and second determining the contribution skill based on the topic.


In an embodiment, the method can further include preliminary steps of evaluating a hierarchy of a plurality of topics found at the third-party forum, and creating an association between the plurality of topics and a plurality of skills.


In an embodiment, the search server is operating on a same computer system as the system server.


In an embodiment, the data related to the first individual identifier in the search results is personally identifiable information for the first individual.


In an embodiment, the first skill association is established within the forum data by establishing associations between an individual identifier data entity and a contribution data entity and between the contribution data entity and a skill data entity.


In an embodiment, a plurality of skills are associated with the first individual identifier in the forum data.


In an embodiment, a plurality of point values are associated with the first individual identifier in the forum data.


In an embodiment, the method can further include receiving a request from the individual computing device to redeem point values associated with the first individual identifier.


In an embodiment, an avatar is associated with the first individual identifier, further wherein the search results present the avatar in conjunction with the data related to the first individual identifier, and still further wherein the request alters the avatar associated with the first individual identifier.


In an embodiment, an avatar is associated with the first individual identifier, further can include a step of creating a live video link between the individual computing device and the search user device in which the avatar represents the first individual, and still further wherein the request alters the avatar associated with the first individual identifier.


In an embodiment, the forum data includes temporary forum data and permanent forum data, further wherein the first skill association and the first point association are stored in the temporary forum data, further can include identifying a time-to-live clock expiration associated with the first individual identifier and, consequently, deleting the first skill association and the first point association from the forum data.


In an embodiment, the forum data includes temporary forum data and permanent forum data, further wherein the first skill association and the first point association are stored in the temporary forum data, further can include identifying a save event associated with the first individual identifier and, consequently, storing the first skill association and the first point association into the permanent forum data.


In an embodiment, the step of searching to determine the search results includes the save event.


In an embodiment, the save event includes an event selected from a set of events consisting of: i) utilization of the system server by the individual computing device for a determined time period, ii) accumulation of a total number of point values associated with the first individual identifier that exceeds a set threshold, and iii) interaction between the search user device and the individual computing device facilitated by the system server.


In an embodiment, the method can further include j) at the system server, receiving learning confirmation data associated with the first individual identifier from the system application operating on the individual computing device, the learning confirmation data identifying a learning received by the individual computing device, k) at the system server, determining a learning skill for the learning, l) at the system server, establishing within the forum data a second skill association between the learning skill and the first individual identifier, m) at the system server, determining a learning point value for the learning, and n) at the system server, establishing within the forum data a second point association between the learning point value and the first individual identifier.


In an embodiment, the forum data further includes temporary forum data and permanent forum data, further wherein the temporary forum data includes data relating to a second individual identifier associated with a second individual, further can include identifying a time-to-live clock expiration associated with the second individual identifier and, consequently, deleting the data relating to the second individual identifier, and still further can include, in response to a request to restore the data associated with the second individual identifier: i) at the system server, identifying credentials associated with the second individual identifier at the third-party forum, ii) at the system server and using the credentials, requesting and receiving prior contributions previously made in association with the credentials at the third-party forum, iii) at the system server, for each of the prior contributions, determining an identified skill and an identified point value, and establishing, within the permanent forum data, associations between the second individual identifier and the identified skills and the identified point values.


In an embodiment, the method can further include, before determining the identified skill and the identified point value for each of the prior contributions, verifying that the second individual authored the prior contributions.


In an embodiment, the method can further include: j) at the system server, receiving ratings for the contribution from the third-party forum, k) at the system server, altering the first skill association between the contribution skill and the first individual identifier based on the ratings.


In an embodiment, the method can further include: l) at the system server, receiving conversation data for the contribution from the third-party forum, m) at the system server, identifying relevant data in the conversation data, wherein the relevant data identifies a third individual identifier for the conversation data and further wherein the relevant data is derived from analyzing the third individual identifier and the contribution skill, n) at the system server, altering the first skill association between the contribution skill and the first individual identifier based on the relevant data.


In an embodiment, a method is included. The method can include a) at a system server, receiving first contribution data identifying a first individual identifier and a first contribution made to a first third-party forum, b) at the system server, receiving second contribution data identifying the first individual identifier and a second contribution to a second third-party forum, wherein the first third-party forum and the second third-party forum do not share forum data, c) at the system server, identifying that a contribution skill is relevant to both the first contribution data and the second contribution data, d) at the system server, establishing within forum data: i) a first contribution association between a first contribution data entity containing the first contribution data and the first individual identifier, ii) a second contribution association between a second contribution data entity containing the second contribution data and the first individual identifier, iii) a first skill association between the first contribution data entity and the contribution skill thereby establishing a first association path between the first individual identifier and the contribution skill, and iv) a second skill association between the second contribution data entity and the contribution skill thereby establishing a second association path between the first individual identifier and the contribution skill, e) at a search server, receiving a query from a search user device that identifies the contribution skill, f) at the search server, identifying a plurality of individual identifiers in response to the query including the first individual identifier, g) at the search server, sorting the plurality of individual identifiers based on a strength of association between the plurality of individual identifiers and the contribution skill, wherein the first and second association paths between the first individual identifier to the contribution skill increases the strength of association for the first individual identifier, h) at the search server, returning search results reflecting the sorted plurality of individual identifiers to the search user device.


In an embodiment, a method is included. The method can include a) at a system server, accessing temporary forum data and permanent forum data that together relate to a plurality of individuals associating skills with a first set of individual identifiers, b) at the system server, receiving first contribution data identifying a first individual identifier and a first contribution made to a third-party forum, c) at the system server, identifying a contribution skill and a contribution point value for the first contribution data, d) at the system server, establishing within the temporary forum data: i) a first skill association between the first individual identifier and the contribution skill, ii) a first point association between the first individual identifier and the contribution point value, e) at the system server, receiving a query identifying a query skill from a search user device, f) at the system server, searching both the temporary forum data and permanent forum data for individual identifiers associated with the query skill, g) at the system server, returning search results to the search user device, h) at the system server, identifying a time-to-live clock expiration associated with the first individual identifier and, as a consequence, deleting the first skill association and the first point association from the temporary forum data, i) at the system server, receiving a request to restore data associated with the first individual identifier, and in response to receiving the request: i) identifying credentials associated with the first individual identifier at the third-party forum, ii) at the system server and using the credentials, requesting and receiving prior contributions previously made in association with the credentials at the third-party forum, iii) at the system server, for each of the prior contributions, determining an identified skill and an identified point value, and establishing, within the permanent forum data, associations between the first individual identifier and the identified skills and the identified point values.


In an embodiment, the method can further include, before determining the identified skill and the identified point value for each of the prior contributions, verifying that an individual associated with the first individual identifier authored the prior contributions.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a schematic view of a third-party forum user interface that allows for contributions on a topic.



FIG. 2 is a schematic view of a system for monitoring contributions to a forum to improve search results.



FIG. 3 is a schematic view of the system of FIG. 2 showing details of forum data.



FIG. 4 is a schematic view of the system of FIG. 2 showing details of system data and the individual device during a contribution to the third-party forum.



FIG. 5 is a schematic view of the system of FIG. 2 during learning from a third-party forum.



FIG. 6 is a schematic view of the system of FIG. 2 showing a search query from a user device.



FIG. 7 is a schematic view showing data flow between a system server and a system data store triggered by a save event.



FIG. 8 is a schematic view showing data loss upon expiration of a time-to-live clock.



FIG. 9 is a flow chart showing a process of monitoring a third-party forum contribution to improve searching using time-to-live data assignments.



FIG. 10 is a schematic view of data communication after a request to rebuild point assignments.



FIG. 11 is a flow chart showing a process of rebuilding data assignments and points.



FIG. 12 is a flow chart showing a process for updating data relating to previously monitored contributions.



FIG. 13 is a flow chart showing a process of utilizing points.





DETAILED DESCRIPTION

Forum Contribution Monitoring System



FIG. 1 shows a user interface 100 created by a third-party forum. A forum is an electronic system operating over a network in which multiple individuals can interact and communicate with the aid of a server computer. In the following description, a forum is a system that allows for the contribution of descriptive, technical information. A forum can be self-described as a forum, or may be referred to as an online community, a message board or a social media system. In most cases, however, the forum allows for contributions to be submitted and shared relevant to specific topics. A contribution can a text-based submission to the forum that contains technical information, but the contribution can also be a visual image or a video clip, or some combination of these different formats. Interface 100 may be presented to one or more individuals using a variety of techniques, including through the creation of web pages presented by browser software.


The forum interface 100 shown in FIG. 1 shows an example of an answer or contribution 120 being displayed in response to question 114. In this case, question 114 asks a technical question relating to computer programing. According to interface 100, this question 114 is part of a topic 112 related to the Ruby on Rails programming environment. This topic 112 may itself be a subtopic of a different main topic or topic category 110, such as website development. These topics 110, 112 form a hierarchy that is used to organization contributions made to the forum. Many other topics are likely maintained in this hierarchy other than the topic category 110 and topic 112 shown in FIG. 1. An individual can browse a topic hierarchy to find an area of interest, and then questions (such as question 114) can be perused to find a specific area of interest. Individuals look through the contributions 120 to gain knowledge and insight concerning the topics 110, 112. Multiple answers (such as contributions 120) may be presented to a single question 114. Most forums will also provide an ability to launch a search interface (such as by clicking icon 150) that will allow the user to search for topic categories 110, topics 112, questions 114, or contributions 120 that match their search query. In FIG. 1, the contribution 120 is an answer to a specific question 114, but contributions 120 do not always need to take the form of answers to questions. The forum shown in interface 100 is sometimes considered an “expert forum” since experts on various topics 110, 112 frequently make contributions 120 relevant to those topics 110, 112.


In interface 100, the contribution 120 is associated with a user ID 122, in this case user ID-1 122. A rating 124 is also associated with the contribution 120. This rating 124 may be based on feedback provided by other users of the forum. Such feedback can be binary (thumbs up/thumbs down) or a more detailed rating (1 to 5 stars). Typically, an algorithm (which can be as simple as an average of all ratings, or a count of positive reactions) is applied to the user feedback to develop an overall rating 124 for the contribution 120. A date and time 126 is also assigned to the contribution 120 to indicate when the contribution was submitted to the forum.


Interface 100 shows that a response 130 from another user (user ID-2 132) has been made to the first contribution 120. The author of contribution 120 (user ID-1 122) then submitted a reply contribution 140. The original contribution 120, the response 130, and the reply 140 can be considered to form a conversation since the subsidiary contributions 130, 140 all are made in response to the original contribution 120.


A contribution 120 typically involves textual content, such as a written answer to a question. However, contributions 120 are not limited to textual content, as the contribution 120 may contain images, audio data, or audio-visual content instead of or in addition to the textual content. Contributions 120 are typically viewable through interface 100 to many or all members of the forum. In some embodiments, a forum may allow for direct communication between a subset of its members, such as between only two or three members. These direct communications can also be considered contributions 120 to a forum, with responses 130 and replies 140 still being generated but being shared by only the subset of members participating in the direct communication.


Whether the contribution 120 is viewed by all members or just a subset of members, it is not necessary that the contributions 120 be in response to a particular question 114 or even a narrow topic 112. In some circumstances, the contribution 120 may take the form of providing guidance or information to new or novice users. Such “coaching” contributions 120 will likewise be considered a contribution 120 to the forum, and may take place under an overall general topic 110 for the forum.



FIG. 2 shows a system 20 for monitoring contributions to one or more third-party forums. The system 20 includes a system server 210 that monitors communications transmitted over a network 200. In particular, the system server 210 monitors communications associated with one or more forum servers 220. In FIG. 2, the forum servers 220 include a first expert forum server 222 and a second expert forum server 224. The communications being monitored generally pass between one of the forum servers 220 and an individual device 240 that is being used by an individual that makes contributions to the forum. The system server 210 can utilize custom software code operating on the individual device 240 to help monitor these communications. Through such monitoring, the system server 210 accumulates data concerning the individual using the individual device 240. The system server 210 can save this data in system data 212, although, as is explained in further detail below, some of this data can be temporarily stored outside of the system data 212. Similarly, the first expert forum server 222 stores data relating to its forum in first forum data 232, while the second expert forum server 224 stores data relating to its forum in second forum data 234. The system server 210 utilizes the data it accumulates to improve the results it generates in response to search queries from a search user device 250. In most circumstances, the search query relates to individuals, and the data accumulating by monitoring the individual using individual device 240 during interactions with the forum servers 220 improves the results generated for that query.


The system server 210, the forum servers 220, the individual device 240, and the search user device 250 shown in FIG. 2 are all computing devices. That means that each device includes a processor for processing computer programming instructions. In most cases, the processor is a CPU, such as the CPU devices created by Intel Corporation (Santa Clara, CA), Advanced Micro Devices, Inc. (Santa Clara, CA), or a RISC processer produced according to the designs of Arm Holdings PLC (Cambridge, England). Furthermore, these computing devices 210, 220, 240, 250 have memory, which generally takes the form of both temporary, random access memory (RAM) and more permanent storage such a magnetic disk storage, FLASH memory, or another non-transitory (also referred to as permanent) storage medium. The memory and storage (referred to collectively as “memory”) contain both programming instructions and data. In practice, both programming and data will be stored permanently on non-transitory storage devices and transferred into RAM when needed for processing or analysis.


The data 212, 232, 234 shown in FIG. 2 is stored in separate data stores (also referred to as data or databases). These data stores 212, 232, 234 may physically be located within or as part of their controlling computing devices 210, 222, 224, respectively, or they may be located remotely from them over a local area network, a storage area network, or even a remote wide area network. If located remotely, data stores may be controlled by their own data controller computers. The data stores generally include defined database entities. These entities may constitute database tables in a relational database, or database objects in an object-oriented database, or any other type of database entity (aka “data entity”) usable with a computerized database. In the present embodiment, the phrase database entity refers to data records in a database whether comprising a row in a database table, an instantiation of a database object, or any other populated database entity. Data within these data stores 212, 232, 234 can be “associated” with other data. This association can be implemented using a variety of techniques depending on the technology used to store and manage the database, such as through formal relationships in a relational database or through established relationships between objects in an object-oriented database. Furthermore, these data stores 212, 232, 234 may automatically encrypt or compress the data which they contain.



FIG. 3 also shows system 20, but FIG. 3 shows details concerning some of the data entities stored in the first forum data store 232. Similar data entities will be stored in the second forum data 234. In FIG. 3, relationships between database entities are shown using crow-foot lines to indicate the types of relationships between these entities (such as a one-to-many relationship). Not all the data stored in the first forum data 232 is shown in FIG. 3, as only details concerning the contributions are presented. Furthermore, the distinction between different entities, such as the contribution entity 300 and the individual ID entity 320, are presented for ease in understanding the data being stored and the relationship between data. It is not required that separate entities be created to exactly match the different data entities shown in this Figure or in the other Figures, as data entities can be merged or split without impacting the functionality of the overall system 20.


The data store 232 stores data about a contribution to a forum in a contribution data entity 300. This entity 300 can store the content of each contribution made through the first expert forum server 222, such as the text, image, and/or video data that might be contributed by the individual using individual device 240. In other embodiments, the contribution entity 300 does not contain the entire contribution, but only contains metadata describing the contributions. Each contribution entity 300 is associated with an individual ID data entity 320 in a one-to-many relationship, meaning that one individual (identified by the individual ID data entity 320) may make multiple contributions to a forum that are tracked in first forum data 232.


In order to simplify this discussion, a database entity such as the contribution database entity 300 or the individual ID 320 may be referred to as simply a contribution 300 or an individual ID 320 (or sometimes even as “individual 320”). In most cases, these references will refer to the data stored in the data stores 230 maintained by the third-party forum servers 220, not the abstract concept of a contribution nor an actual person who submitted the contribution. These semantics will also be true when discussing other data entities.


Each contribution 300 will be associated with a time 350 that tracks the date and time of when the contribution 300 was made to the first expert forum server 222. Each contribution 300 may also be related to one or more feedback or ratings data 340. These ratings data 340 may just be a single score or number, or may constitute a plurality of feedback inputs made by other users about a specific contribution 300. The ratings data 340 can be displayed whenever the contribution 300 is displayed by the first expert forum server 222, such as the rating 124 displayed in interface 100.


Each contribution 300 is related to a topic 310. The first expert forum server 222 will generally group contributions 300 by topic 310, and may even require that all contributions 300 be made in associated with one specific topic 310. In FIG. 1, the topic category 110, the topic 112, and the question 114 can all be considered examples of topics 310. As shown by the crow's foot link back to itself in FIG. 3, each topic 310 can be associated with other topics 310 in a parental hierarchy, which is what allows question 114 to be a child of topic 112, which itself is a child of topic category 110. It is possible and even expected that a single parent topic 310 has multiple child topics 310.


In some contexts, it is necessary for topics to be geographically limited, which is accomplished by associating the topic database entities 310 with a geography 330. For example, legal topics may be limited to a geography where a law is applicable, such as a country or a state. Medical topics can similarly be restricted to limited geographies of relevance.


The same crow's foot link that linked topic data entities 310 to other topic entities 310 is also shown linking the contribution data entity 300 with other contribution entities 300. This indicates that one contribution 300 can be made in response to another contribution 300, in the same way that response contribution 130 was made in response to answer contribution 120, and reply contribution 140 was made in reply to response contribution 130. A contribution 300 does not have to be made in response to any other contribution 300, but if it is, it is generally made in response to only a single contribution 300. Since one contribution 300 can have many responsive contributions 300 to it, this is a one-to-many link.


As shown in both FIGS. 2 and 3, the system 20 has the system server 210 as a separate computing device or system than the first expert forum server 222 and the second expert forum server 224. This is because the system server 210 is generally operated separately from the forum servers 220, usually by a different entity. The system server 210 does not have direct access to the forum data 230 of the forum servers 220. In this way, the forum servers 220 are considered to be “third-party forum servers” from the point of view of the system server 210, and the monitoring performed by the system server 210 can be considered the monitoring of third-party forums. The two forum servers 222 and 224 also do not share forum data 230 with each other, and therefore are considered two distinct third-party forums.


In some contexts, one of the forum servers 220, such as first expert forum server 222, will open up an application programming interface (or API) 360 to third parties. These types of interfaces allow unrelated systems to make data requests to the first expert forum server 222. If the request complies with the format of the API 360 and is requesting data that is authorized to be shared with the requester, the forum server 222 will acquire the requested data from its data store 232 and share it with the requester. In FIG. 3, the system server 210 has access through API link 360 to some of the first forum data 232. The system server 210 does not have API access to the data 234 of the second expert forum server 224.


Monitoring Contributions and Learnings



FIG. 4 shows system 20 with the first and second expert forum servers 222, 224 and their data 232, 234 being represented by a single forum server 220 and its forum data 230. The individual device 240 is shown in FIG. 4 as a dashed line box 240. In an actual implementation, multiple individual devices 240 may be present, with the system server 210 obtaining details about the multiple individuals using those devices 240. Inside the dashed line box 240 are three different devices 480, 484, 490, representing three example configurations for an individual device 240. These different devices 480, 484, 490 may be used by a single individual, or may be used by separate individuals all utilizing system 20.


In particular, device 480 is a standard computer such as a desktop or laptop computer. Operating on computer 480 is system programming 482. In this context, the programming 482 is considered “system” programming because it is specifically designed to communicate with the system 20. This system programming 482 allows interaction with the forum server 220 using the technology expected by that server 220. For example, if the forum server 220 is designed to provide a user interface to a web browser, the system programming 482 will be programmed to receive web interfaces and present them to the user. If the forum server 220 did not operate over standard web interfaces, the system programming 482 would be designed to interact with whatever interface is being used by the forum server 220. In addition, the system programming 482 includes additional programming to monitor interactions with the forum server 220 and to communicate with the system server 210 about those interactions.


Device 484 is also a standard computer, but this device 484 operates a standard web browser 486 such as Safari by Apple, Inc. (Cupertino, CA), Chrome by Google LLC (Mountain View, CA), or Microsoft Edge by Microsoft Corp. (Redmond, WA). These browsers allow for plug-ins, which are computer programs that interact with the standard browser. Plug-ins are generally allowed to monitor the browsing that occurs using the browser and to communicate with external systems. A system plugin 488 operates on device 484 to monitor interaction with the forum server 220 that occurs using the browser 486, and then communicate over the network 200 with the system server 210 about those interactions.


Device 490 is a mobile device, such as a smart phone or tablet computer. Operating on this device 490 is a system app 492 that operates in the same manner as system programming 482 in that it allows interaction with the forum server 220, monitors that interaction, and communicates with the system server 210.


As explained above, the system server 210 obtains data concerning the individuals that contribute to the forum server 220 in order to improve search results for users of the search user device 250. One way that it accomplishes this is by tracking all contributions, such as contribution 400, that is made by an individual device 240 to the forum server 220.


The contribution 400 is shown in FIG. 4 on an arrow coming from the individual devices 240 and going to the forum server 220. The system programming 482, or plugin 488, or app 492 (generically referred to as the system application 494) detects the contribution 400 being submitted to the forum server 220, identifies the relevant data in the contribution 400, and forwards this data as contribution data 402 to the system server 210. Note that the contribution data 402 need not be an exact digital copy of the contribution 400 that is sent to the forum server 220—it need only contain the relevant information needed by the system server 210 and this information can be reformatted to match any format desired by the system server 210. The contribution data 402 generally includes an identifier for the individual using the device 240. The contribution data 402 will also identify the topics associated with that contribution 400. Thus, if contribution 400 were the contribution 120 in FIG. 1, the contribution data 402 would identify the individual that made the contribution (which might take the form of User ID-1 122) and identify the topic category 110, the topic 112, and the question 114 associated with contribution 120. In some embodiments, the contribution data 402 would also include the content of contribution 120.


The system server 210 receives the contribution data 402 and then extracts or derives information from the contribution data 402 concerning the individual using device 240. The system server 210 can then store this information in its system data 212. The information obtained from the contribution data 402 is referred to in FIG. 4 as individual forum data 410. This is shown as a dashed box 410 in FIG. 4, and the data elements within this box 410 comprise that information that is obtained by analysis of the contribution data 402 received from a system application 494. Part of this data 410 is the individual's identifier 412. In one embodiment, the individual's identifier 412 stored in the system data 212 is different than the individual IDs 320 stored in the forum data 230 maintained by the various forum servers 220. The individual forum identifiers 320 are used only by a particular forum server 220, while the individual identifier 412 in the system data 212 constitutes a singular identifier for an individual used by the system server 210 itself. The system server 210 is able to convert between the system's individual identifier 412 and the identifiers 320 used by the various forum servers 220 by storing credentials 414 within the individual forum data 410. The credentials 414 will usually take the form of forum identifiers 320 and passwords used to log into a forum server 220. A single individual identifier 412 may be associated with credentials 414 for a plurality of different third-party forum servers 220. In this way, the contribution data 402 sent by the system applications 494 might contain only the forum identifier 320 used by the forum server 220, and the system server 210 can identify the correct system individual identifier 412.


The individual forum data 410 also includes information about all the contributions made by the individual. These contributions are stored in database entity 430, meaning that a contribution 400 made to the forum server 220 will generate an instance of the contributions database entity 430. Each contribution 430 will be associated with the identifier 412 for the individual that made that contribution 430. Furthermore, like the contributions 300 maintained in the first forum data 232, the contributions 430 can be linked to other contributions 430 in a conversational hierarchy, with a single conversation having contributions 430 that are associated with a plurality of different individual identifiers.


In one embodiment, the system server 210 maintains “points” 440 earned by an individual through their contributions 430. Points 440 can be assigned to contributions 430 in a variety of ways. For example, a set number of points 440 can be assigned for each contribution 430 regardless of the content of the contribution 430. Alternatively, the system server 210 can evaluate received contribution data 402 for a contribution 400, determine the “quality” of the contribution 400, assign points based on the quality, and then save the content as a new contribution entry 430 in the forum data 410 along with the assigned points 440. The determination of quality can be based on a variety of factors, including a textual analysis of any text portion associated with the contribution 430. The textual analysis may reveal the number of words in the contribution 430 and the complexity of the words. The textual analysis may also analyze the grammar of the text portion to ensure that the contribution is submitted in full, grammatical sentences. As explained below in connection with FIG. 12, it is also possible to revisit known contributions 430 by requesting data from forum server 220 concerning the feedback and ratings 340 given to a particular contribution 430, as well as the responses by other users to this contribution 430 and even further replies to the responses made by the contributing individual. This data will then be used to assign points 440 for a particular contribution 430, where a highly-rated contribution 430 as revealed by the ratings 340 can be assigned a higher number of points 440. Furthermore, a contribution that triggered multiple replies can also be given more points 440. In one example, for each individual 412, the system 210 sums up the points 440 from contributions 430 from that individual 412 and tracks that sum as the total points 440 earned by the individual 412.


Another goal of the server 210 is to identify particular skills of the individual that created the contribution 430. These identified skills are stored in the system data 212 in skill database entities 450 that are associated in the data store 212 with the contributions 430. The identification of skills 450 by the system server 210 can be based on the topic(s) 310 that are associated with a contribution 400, as identified in the contribution data 402 submitted to the system server 210. For example, contribution 120 is associated with the Ruby on Rails topic 112, and in particular is associated with a question 114 concerning the spawning of child processes. If this contribution 120 were the submitted contribution 400, the system server 210 would be able to identify that the contribution 400 relates to i) Ruby on Rails, ii) spawning child processes, and iii) website development. If the contribution 120 is worthy of points 440 or is otherwise considered a quality contribution 120, then the system server 210 will identify skills 450 related to these three topics and store those skills 450 in the individual forum data 410.


In some embodiments, the assignment of a skill 450 to a contribution 430 can be used to determine the strength or magnitude of the individual's aptitude on that skill. For example, an individual 412 that has made five, highly-rated contributions 430 in a third-party forum related to a skill 450 would be considered to have more strength in that skill 450 than another individual 412 that has only submitted one unrated contribution 430 related to that skill 450. This can be determined simply be examining the number of association paths found in the individual forum data 410 between the individual identifier 412 and the skill entity 450. The concept of an association path identifies that the individual identifier 412 is associated with a skill 450 even though the link of that association path passes through a contribution 430 (or a learning 460) in FIG. 4. An association path does not need to pass through one or more other data entities, thus FIG. 4 shows an association path between the individual identifier 412 and the skill 450 as well as an association path between the individual identifier 412 and the contribution 430. In the present disclosure, an “association” can be a direct association between two data entities or an association path that passes through multiple data entities.


The magnitude or strength of a skill 450 identified with an individual identifier 412 could be based on the number of contributions 430 that relate to that skill 450 and/or the points 440 awarded for these contributions 430. Alternatively, the associations between a contribution 430 and a skill 450 in the individual forum data 410 can each be associated with a strength or value rating. In addition, even if the system server 210 does not use the feedback and ratings scores 340 for contributions 430 to determine the points 440 awarded for a contribution, the feedback and ratings scores 340 could still be analyzed by the system server 210 in order to determine the magnitude or strength of the skill 450 associated with that contribution 430. Then the system server 210 could analyze all skills 450 assigned to the individual identifier 412 (via contributions 430) to determine the variety and overall strength of skills 450 associated with the individual 412.


In some embodiments, the interactions with a second individual using the forum server 220 will be analyzed more deeply by the system server 210. In the example of FIG. 1, contribution 120 generated a response 130 by a second individual, and this response 130 could be received and analyzed by the system server 210 (such as by using the method described below in connection with FIG. 12). The system server 210 may recognize User ID-2 132 as a second individual (with an identifier 412) for whom data is maintained in the individual forum data 410. If this second individual is considered highly skilled in a topic (such as Ruby on Rails 112), then the interaction shown in FIG. 1 with this skilled expert on this topic will indicate that the individual who wrote contribution 120 and reply 140 is also likely to be highly skilled in this same topic 112. This additional knowledge can be compared to feedback/ratings 340 for the actual contribution 120 and the reply 140 to further confirm or to reject this indication. In this way, an individual's interaction with known experts on a topic in a third-party forum 220 can increase the individual's magnitude or strength for a skill 450.


As explained above, the skills 450 associated with a contribution 430 can be based on the topics under which the forum server 220 placed this contribution 430. In FIG. 4, the system data 212 tracks the forum topics 470 that are made available on the various forum servers 220 and associates these topics 470 with specific skills 450 that are tracked by the system data 212. The association between forum topics 470 and the system skills 450 can be based on a many-to-many relationship. For instance, the forum server 220 that provided interface 100 is known to have a topic category 110 related to Website Development and another topic 112 related to Ruby on Rails. These topics may be hard-coded into the programming of the forum server 220, meaning that they were not created by mere users of the forum server 220 but were pre-programmed by the administrators of the forum. Individual users can create questions 114 or subtopics, but these must be placed into the predefined hierarchy of topics established by the forum server 220. In this case, the system data 212 can associate these preestablished/known topics 470 found at a forum server 220 with known skills 450 that are tracked in data store 212. For example, the system server 210 might care about the following skills 450: “programming,” “user interface design,” “e-commerce platform development.” These skills 450 do not correlate one-to-one with the predefined topics 470 at the forum server 220, but relationships between the topics 470 and the skills 450 maintained by the system data 212 make it easier to assign skills 450 for any contribution 430 made through that forum server 220. Thus, quality contributions to the Ruby on Rails topic 112 will indicate the individual is skilled in programming in general and e-commerce platform development in particular. Another topic 470 maintained by the forum server 220, such one on credit card processing, could also be associated with the e-commerce platform development skill 450.


In other embodiments, the textual content of the contribution 430 is individually analyzed to determine which skill 450 should be assigned. One way to match textual content with skills 450 is the identification of keywords and key phrases (together referred to herein as keywords). An individual skill 450 may be assigned a plurality of keywords, and searches for those keywords will then be made in the textual content of a new contribution 430. For example, some of the keywords for a “ecommerce platform development” skill 450 may be “Ruby on Rails,” “credit card,” “ecommerce,” “Stripe,” “gift cards,” etc. The system server 210 could examine the textual content of the new contribution 430, count the occurrences of any of these keywords, and determine whether the count is sufficient to assign the ecommerce platform development skill 450 to the contribution 430. A sufficient count may be a minimum number of any keywords (e.g., at least five keywords), a minimum number of distinct keywords (e.g., at least two distinct keywords such as “Ruby on Rails”), or a percentage of keywords when compared to the total number of words in a contribution 430 (e.g., at least 30% of the words of the contribution are keywords).


In yet another embodiment, the system application 494 stores data in its own local forum data 496. In FIG. 4, local forum data 496 is only shown in connection with the local computer 480, but the local forum data 496 can be used with any of the individual computing devices 240. Local forum data 496 contains some of the same information that is stored in the individual forum data 410 in the system data 212. The local forum data 496 allows individuals that use the devices 240 to access a local version of their contribution information 430. It effectively becomes a local notebook that stores all of an individual's contributions 400 to a variety of forum servers 220. In some embodiments, the local forum data 496 does not contain points 440 or skills 450, but rather serves only as a repository for contributions 430 (and learnings 460, as described below). This data can be stored in a write-only/additive manner, which means that the user will not be able to edit or delete the information stored in the local forum data 496. An interface provided by the system application 494 (not shown in the Figures) can then allow the user to examine, search through, and list all of the contributions 430 and learnings 460 stored in the local forum data 496. In one embodiment, the local forum data 496 is actually stored locally in or near the individual computer device 240. In other embodiments, the local forum data 496 is centrally stored (such as by using cloud-based storage services) so that it can be accessed by an individual that uses multiple individual computing devices 240 regardless of which device 240 was being used. In these latter embodiments, the data 496 is “local” in that it is used only by the system applications 494 on the individual computing devices 240 and it does not form part of the system data 212 used by the system server 210.



FIG. 4 shows that each contribution 430 is associated with an individual identifier 412, and each contribution 430 can be associated with both points 440 and skills 450. In this way, the system data 212 is able to identify all of the points 440 and skills 450 for an individual identifier that have been accumulated through a variety of contributions 430 even when these contributions are made to a plurality of different third-party forum servers 220.


In a similar manner, the system server can track learnings 460, associate a learning 460 with an individual identifier 412, and associate the learning 460 with both points 440 and skills 450. A learning 460 is essentially a receipt of information at an individual device 240 from a forum server 220. Ideally, each learning 460 will be intended to teach an individual using the individual device 240 a skill 450. FIG. 5 shows system 20 where only a single individual computing device 240 and its system application 494 is shown. In FIG. 5, some learning 500 is being transmitted from the forum server 220, over the network 200, to an individual computing device 240.


The receipt of this learning 500 is identified by the system application 494 operating on the individual computer. In one embodiment, the system application 494 identifies the learning 500 and monitors the display or other presentation of the learning 500 to the individual to ensure that the entire learning 500 has been presented. For example, if the learning 500 were a training video, the system application 494 would ensure that the entire training video were presented. If the learning 500 were a series of web pages, the system application 494 would ensure that the entire series of web pages were displayed. Upon confirmation that the entire learning 500 were presented over the individual computing device 240, the system application 494 would send a confirmation of knowledge received message 510 to the system server 210. This confirmation message (also known as learning confirmation data) 510 would identify the learning 500 received (which will likely identify the forum server 220 that transmitted the learning) and an individual identifier 412.


Upon receiving the confirmation 510 that the learning 500 was presented to the individual, a learning database entity 460 is created in the individual forum data 410 that is associated with the correct individual ID 412. The system server 210 would then identify a number of points 440 to be assigned to the individual 412 based on receiving this learning 500. In addition, the system server 210 is responsible for identifying one or more skills 450 that should be learned or improved by an individual receiving this learning 500. For example, if the learning 500 constituted a training video provided by the forum server 220 on the topic of spawning a child process using Ruby on Rails, the system server 210 may identify the same set of skills for this learning 500 as it did for the forum contribution 120. In all cases, the skills 450 identified for a learning 500 will be based on the content/topic of the learning 500.


While the forum server 220 exercises control of the topic 310 assigned to a contribution 300 (see FIG. 3), management of learning topics may be quite different. In some embodiments, an entity that manages the forum server 220 may pre-identify possible learnings 500 to the system server 210 so that each possible learning can be pre-associated with one or more skills 450. In return for this cooperation, the system server 210 may be programmed to provide biographical data 520 to the forum server 220 for each individual that completes learning 500. This presumes that the system server 210 maintains biographical data 520 concerning the individuals, that the system server 210 has more such biographical data 520 than the forum server 220, and that the forum server 220 has a desire to obtain this additional biographical data 520. This further presumes that the individual has granted permission for the system server 210 to provide data to the forum server 220. This cooperation allows for pre-examination of the available learning materials 500 provided by the forum server 220, and for the pre-assignment of skills 450 to those learnings 500.


In this way, the overall points 440 associated with an individual identifier 412 will include points 440 awarded for making contributions 430 to third-party forum servers 220 and points awarded for receiving the presentation of learnings 500 from the third-party forum servers 220. Similarly, skills 450 associated with the individuals 412 in the forum data 410 will include the combination of skills 450 identified for contributions 430 and skills 450 identified for learnings 500. Of course, the system server 210 is able to monitor the use of multiple forum servers 220 by the same set of individuals.


Time-To-Live Data and Improved Search Results



FIG. 4 shows that the system server 210 contains cached individual forum data with time-to-live (TTL) 420. In one embodiment, the system server 210 analyzes contribution data 402 and learning confirmations 510 and identifies points 440 and skills 450 based on those inputs as described above. But rather than immediately storing this data permanently in the individual forum data 410 on the system data store 212, the system server 210 maintains this data in a data cache 420.


The cached data 420 is different than a standard data cache, in which data permanently stored in remote or slow data storage is temporarily stored in closer or faster data storage to increase the speed of data queries. Rather than duplicating the individual forum data 410, the cached individual forum data 420 contains new data that has not been stored in the system data store 212 and might never be stored permanently in that data store 212. It is not necessary that the cached individual forum data 420 is stored in a faster, transient storage device (transient meaning that the storage device might not remember the data when powered down). In some embodiments, the cached data 420 is stored on a permanent storage device that is no faster and no closer to the processor(s) of the system server 210 than the individual forum data 410 stored on the data store 212. In fact, it is possible that the cached individual forum data 420 is stored on the same storage device(s) that stores the system data store 212. The location or format of how the cached individual forum data 420 is stored is not directly relevant to the present disclosure.


Rather, it is important to note that this data 420 is not integrated into the permanent system data 212 until after a save event has occurred. Furthermore, this data 420 is subject to a time-to-live (TTL) limitation, meaning that if a save event does not occur before the TTL clock expires, this data 420 is deleted and is never permanently stored in the system data 212. This TTL feature is described in more detail below in connection with FIGS. 7 and 8.


The content of the cached individual forum data 420 will be similar in structure and types of data as the individual forum data 410. The cached data 420 will contain information about contributions 430 and learnings 460, will be associated those with individual identifiers 412, and will have assigned points 440 and skills 450 that are associated with the contributions 430, learnings 460, and individual identifiers 412. Like the individual forum data 410, the data in the cached individual forum data 420 can be stored encrypted or compressed on a physical storage or memory device.


Although the cached individual forum data 420 is kept separate from the system data 212, it still provides useful information when a search query is received from the search user device 250. Such a query 600 is shown in connection with system 20 shown in FIG. 6. In this Figure, the search user device 250 is shown containing search system programming 610. This programming 610 is similar to system application 494, in that it is programming 610 that allows the device 250 to communicate with the system server 210. The search system programming 610 can take the form of an application for a computer, an app for a mobile device, a plug-in for a browser software application, or any similar type of programming. In some embodiments, the search user device 250 communicates with the system server 210 through a web interface, meaning that the search system programming need be only a standard web browser.


In FIG. 6, the system server 210 is also labeled the search server 211. This is because the handling of the query 600 can be handled by the same computer system operating the system server 210, but it can also be handled by a separate computer system altogether. Alternatively, the same computer system can operate a first set of programming instructions to operate as the system server 210 as described above in connection with FIGS. 1-5, and a second set of programming instructions to operate as the search server 211. For the sake of simplicity, the functions of the search server 211 will be discussed in the following discussion as being performed by the system server 210.


One of the primary purposes of the search system programming 610 is to submit a query 600 to the system server 210. This query 600 generally takes the form of requesting search results that contain identifiers or information concerning one or more individuals, such as the individual identifiers 412 found in the individual forum data 410. The searching and sorting for these individuals/identifiers 412 will involve comparing the skills 450 associated with the individual identifiers 412 against skills specified by, or derived from, the query 600.


In FIG. 6, the query is submitted with parameters 602 that identify the parameters of the query 600. These parameters 602 might specify specific skills such as the skills 450 maintained in the system data 212. Alternatively, the requirements may specify something else that can be converted into one or more skills 450 by the system server 210. For example, the query 600 might relate to a job posting, which requires certain minimum skills from its job candidates. The specific skills might be listed as requirements or desired attribute parameters 602 within the job posting search query 600. These search parameters 602 can be the same as, or can be related to, the skills 450 maintained in the individual forum data 410 and the cached individual forum data 420. For example, a search parameter 602 might request a search for individuals skilled at “ecommerce development,” which could be identical to a skill 450 maintained in the system data 212. Alternatively, the skill parameter 602 in the query 600 might need to be translated or converted to a skill 450 in the same manner as topics 470 can be converted into skills 450, as described above. In some embodiments, parameter 602 in the query 600 might simply list a job title, and the system server 210 would then be responsible for identifying a plurality of different skills 450 that are relevant to that query 600. In another example, the query can relate to a friend-matching system in which interest and skills of the searching party are compared with multiple individuals to find a compatible match. The query could also relate to a search for an individual that has sufficient skills to perform a one-time service for the searching party. In another example, the query could relate to a search for a candidate for political office who has skills that are valued by the user to evaluate how the user will vote or how the user will donate to political candidates.


Once the query 600 is received by the system server 210 over the network 200, the server 210 must develop results 620 for the query 600 and then return the results 620 to the search user device 250 back over the network 200. The results 620 are created by searching for individuals (individual identifiers 412) having skills 450 that match or are otherwise relevant to the parameters 602 of the query 600. The system server 210 can search the individual forum data 410 for individuals 412 permanently stored in the system data 212 to identify individual identifiers 412 for the results. Also, since the cached candidate data 420 contains the same type of data for contributions 430 and learnings 460 that have not yet been permanently stored in the system data 212, the system server 210 will also use this data 420 to define the results 620.


In many embodiments, a third source of data 630 will also be used to generate results. This third source 630 is found in the system data 212, but it is not based on interaction with third-party forums 220 and therefore it does not form part of the individual forum data 410. Consequently, this third source 630 can be considered “non-forum data.” This non-forum data 630 can still relate to the same individuals that use the individual computing devices 240, and hence may relate to the same set of individual identifiers 412. In some embodiments, individuals use their individual computing devices 240 to log into, or sign up with, the system server 210 in order to participate in the overall system 20. During this process, the individual can manually submit data 630 concerning themselves for storage in the system data 212. For instance, the individual might manually identify skills 450 that they have, and this information can be stored in the non-forum data 630 in association with their individual identifier 412. Alternatively, the individual might submit a text-based resume, from which information about a user's skills 450 can be obtained. Video interviews can also be used to generate this non-forum data 630. The assignee of the present invention has filed numerous applications relating to video interviews with individuals in which data concerning the individual is extracted from audio, visual, and motion data taken concerning that individual (see, e.g., U.S. Pat. Nos. 10,728,443; 10,963,841; and 11,023,735 and US Patent Publication Nos. 2021/0158663 and 2021/0233262). This extracted data can also be stored in the non-forum data for individuals 630.


The system server 210 therefore analyzes the query 600 and its parameters 602, and then analyzes the cached individual forum data 420, individual forum data 410 found on the system data store 212, and the non-forum data for individuals 630 also found on the system data store 212. The result of this analysis is the generation of results 620, which are based on data related to the individual identifiers 412 associated with the skills 450 required by the parameters 602. In some embodiments, the results 620 specify the actual individual identifiers 412. Alternatively, the results 620 can provide other data about the individuals associated with the individual identifiers 412. This other data might constitute personally identifiable information (“PII”) that is sufficient to identify the individual associated with the identifier 412, such as the individual's name and contact information. Alternatively, the other data may be data associated with the individual identifier 412 but is not PII. For example, the other data may simply be a created identifier unique to the results 620 count, such as “individual number 1” and “individual number 2” for results 620 that identified only two individuals.


The results 620 are preferably filtered and sorted so as to prioritize the best fit among the individual identifiers 412 that are determined to be relevant to the query parameters 602. The filtered and sorted results 620 are then returned to the search user device 250.


As an example, a parameter 602 that requires a very strong ability in a certain skill 450 would trigger the system server 210 to sort the results 620 based on the strength of the association between that skill 450 with the individual 412. In the context of the individual forum data 410 and the cached individual forum data 420, the strength of the association can be based on the analysis described above. In one embodiment, the strength of association is rated on a numerical scale, such as a whole number between 1 to 3. The system server 210 can examine the number of contributions 430 and learnings 460 related to that skill, can examine the feedback and ratings 340 for those contributions 430, and can then use this information to assign a strength number. An individual ID 430 associated with a single contribution 430 of a first skill 450 might only have a strength of 1. In contrast, a different individual ID 430 that is associated with numerous contributions 430 associated with the same first skill 450, some of which have numerous positive feedback ratings 340, would be given a strength of 3.


As explained above, the cached individual forum data 420 is governed by a time-to-live clock. The concept of time-to-live, or TTL, is well known in the caching context in identifying stale cache data. In these prior art systems, data found in a more permanent storage location is loaded into cache memory for faster processing. The data is allowed to remain in the cache for a set time period only, which is known as the time to live. A clock determines when this period has expired. Upon expiration of this time, the data in the cache is considered to be stale, and data must be read from the permanent storage to refresh the content of the cache and create a new TTL. The TTL concept can also be used in computer networking to prevent a packet of data from being circulating indefinitely, causing a lost network packet to be discarded once its TTL has expired.


The present use of the TTL value in the cached individual data 420 is unique because the cached data 420 is not a duplicate of other data, as is typically the case with typical data caches. Nor is the cached individual forum data 420 data that is lost in transmission. Rather, the cached individual forum data 420 is destined to remain separate from the individual forum data 410 until the occurrence of a save event 700, as is shown in FIG. 7. Save events 700 are specific to one individual. When a save event 700 does occur, the cached individual forum data 420 for that individual is permanently stored into the individual forum data 410 in the system data 212 and then is deleted from the cached individual forum data 420. Once the data is stored in the individual forum data 410, it cannot be lost.


The time-to-live for the cached individual forum data 420 is maintained separately from individual to individual. As shown in FIG. 8, if a clock 800 indicates that a TTL expiration 810 for an individual's cached data 420 has occurred before a save event 700 for that individual is detected, then the system server 210 will delete that individual's cached forum data 420. For example, the time-to-live for the cached data 420 may be one month. If the user 412 associated with that cached data 420 has not utilized the system 20 for one month, a TTL expiration 810 will occur and the cached data 420 will be deleted. Once deleted, the points 440 and skills 450 associated with the identified contributions 430 and learnings 460 that were found in the cached data 420 will be lost.


In other words, an individual using individual device 240 can interact with the forum servers 220. This interaction will be monitored by the system server 210, and result in the assignment of points 440 and skills 450 to an individual identifier 412 associated with the user. The points 440 can be used by the individual as described below, while the skills 450 will help the individual appear in search results 620. But these points 440 and skills 450 are temporary and can be lost unless the individual triggers a save event 700 that stores their data permanently in the individual forum data 410 of the system data 212.


One goal for this temporary assignment of points 440 and skills 450 is to encourage continued use of the system 20 by the individuals, which means that save events 700 can be defined based upon use of system 20. For instance, one save event 700 may be daily contributions 430 to any third-party forum server 220 for a set number of days (such as seven days), which can be determined by either the system server 210 or the system application 494. Another save event 700 might be a set number of contribution data 402 and/or learning confirmations 510 received by the system server 210. For example, receiving contribution data 402 for a user 412 ten times may constitute a save event. In another example, receiving three learning confirmations 510 may be a save event. A different save event 700 might occur if the total number of points 440 associated with an individual identifier 412 exceeds some threshold amount, or the change in the number of points 440 associated with an individual identifier 412 over a limited time period exceeds a threshold amount.


In some instances, data concerning some individuals that are stored the cached individual forum data 420 may be particularly useful. For instance, this cached data 420 may indicate that a particular user identifier 412 is associated with a rare but highly-desirable skill 450. This fact could be identified before the TTL expires for this data because this cached data 420 causes the particular user identifier 412 to appear in search results 620 for one or more queries 600. To avoid losing highly valuable data such as this, the system 20 can create a save event for this information that is unrelated to the activity of the individual, but is instead based on an individual identifier appearing in a search result 620. In some embodiments, a save event 700 is created for an individual whenever their individual identifier (or related user data) is included a query result list 620 returned to any search user device 250. In other embodiments, this save event 700 is created only if the information that triggered the inclusion in the results 620 is found in the cached individual forum data 420. In these embodiments, if the inclusion in the results 620 resulted from information already stored in the system data 212 (namely in the individual forum data 410 or in the non-forum data for individuals 630), then a save event 700 is not triggered. In still other embodiments, the save event 700 is created only if the search results 620 rank the individual highly, such as appearing in the top ten, five, or two search results. It is also possible to count appearances in the search results 620, creating a save event 700 only if the data in the cached data 420 causes a particular user identifier 412 (or related user data) to appear in search results 620 for multiple queries 600.


In other embodiments, the user of the search user device 250 provides content through the system server 210 that is associated with the user or an entity associated with that user. For example, the user of the search user device 250 might work for a company that is searching for new employees using the system 20. This company may provide content through the system server 210 that is useful for an industry, or provides training to individuals using the individual devices 240, or otherwise provides a way for the company to make contact with those individuals. In these cases, mere interaction between the individual using individual device 240 and such content may trigger a save event 700, as may any other interaction between the individual device 240 and the search user device 250 that is facilitated by the system server 210.


In another embodiment, the individual device 240 is able to send to the system server 210 a request (not shown in the Figures) to delete the cached individual forum data 420 associated with their identifier 412. In this embodiment, the cached individual forum data 420 can be deleted either by a time-to-live expiration 810 or a specific request from an individual device 240.


Overall Method



FIG. 9 contains a flow chart outlining the steps for a method 900 of monitoring contributions to third-party forums in order to improve search results. The method begins at step 905, in which the topic structure of a third-party forum 220 is analyzed. Forum servers 220 frequently use a hierarchical topic structure to organize contributions 120, such as the use of the topic category 110, topic 112, and question 114 structure shown in FIG. 1. In some forums 220, the hierarchical topic structure is predefined and static. In other forums 220, the structure is free form, and individuals are allowed to create and organize the topic structure of the forum 220 at the same time they are making contributions under that structure. In step 905, the system server 210 analyzes and understands the topic structure. The purpose for doing so is to allow the system server 210 to create associations of these topics in the topic structure with skills 450 that are defined in the system data 212. Referring back to FIG. 4, the topics 470 at a forum that are identified through step 905 are associated with skills 450 through data entities in system data 212 at step 910. This allows future contributions 430 at that forum 220 to be identified with a skill 450 based upon the topic in which it was placed at the forum 220.


At step 915, the system 20 monitors contributions made to one or more third-party forums 220 by an individual that is known by their individual ID 412. As explained above, this monitoring can take place through the use of a system application 494 operating on an individual computing device 240. In other embodiments, calls over an API interface 360 can be used by the system server 210 to request new contributions 300 that are found in a third-party forum's data 230 and which were made by individuals known to the system server 210. As explained above, the system data 212 will contain forum credentials 414 for the individuals being monitored by the system server 210. The credentials 414 can be used to periodically request information on new contributions by these individuals using the API interface 360. In another embodiment, the third-party forum server 220 will periodically push data to the system server 210 relating to contributions 300 made by certain individuals.


At step 920, skills 450 are assigned to the contribution 430 made by the individual 412. This assignment is relatively trivial if step 910 has already assigned topics 470 at that third-party forum server 220 to skills 450. If this did not occur, or if the topic under which a contribution 430 is made were unknown to the system server 210, skill assignment can be based upon a textual analysis of the unknown topic and the contribution itself 430. For instant, if the textual analysis of a contribution 430 identifies words and phrases such as “Ruby on Rails,” “ecommerce”, “credit card processing”, “order”, “user interface”, and “fulfillment”, the analysis may determine that this contribution 430 is to be associated with the ecommerce development skill 450.


At step 925, the system server 210 reaches out to the forum server 220 in an attempt to identify the feedback and ratings 340 for a particular contribution. This ability to examine the contribution 300 as it resides within the third-party forum 220 can take place through API calls 360 or through web navigation and data scraping. Techniques for placing API calls or for scraping data from a website are known in the prior art. As explained above, this data can then be used to determine a strength or magnitude for the assignment of this skill 450 to the contribution 430 and, hence, to the individual ID 412. This step 925 is described in more detail in connection with FIG. 12. At step 930, the contribution 430 and skill assignment 450 data are temporarily stored in the cached individual forum data 420.


At the same time the system server 210 is monitoring for received contributions data 402, it is also monitoring for learning confirmations 510 at step 935. If the system server 210 does receive a confirmation 510, step 940 will attempt to verify that knowledge was received. In some instances, the verification step 940 actually happens before the confirmation 510 is transmitted to the system server 210. For instance, the system application 494 can monitor the receipt of the learning 500. If the system application 494 has knowledge about the entirety of the learning 500 (such as the length of training video), it can assure that the entire video has been presented over the individual computing device 240 before the knowledge receipt confirmation 510 is transmitted to the system server 210. In other cases, an API call 360 is made to the forum server 220 presenting the learning 500 to seek confirmation that the learning 500 has been completed by the individual. Next, a skill entity 450 appropriate for this learning is identified at step 945. A learning data entity 460 and the identified skill entity 450 are then stored in association with the individual ID 412 in the cached individual forum data 420 at step 930.


At step 950, the system server 210 assigns points 440 to the contributions 430 and learnings 460 that have been identified. As explained above, the points 440 can be based on quantity of contributions 430 and learnings 460 identified. Alternatively, the quality of the contributions 430 and learnings 460 can be analyzed, with more points being awarded to higher quality contributions 430 and learnings 460.


In one embodiment, in the next step 955 the system server 210 reaches out to the third-party forum server 220 to identify and analyze any conversation that might have taken place relating to an identified contribution 430. Using the example of FIG. 1, response 130 and reply 140 both form part of the conversation relating to contribution 120. If a conversation is identified, the expertise level of the contributors to that conversation can also be identified at step 955 using the system data 212. At step 960, information retrieved about the conversation can be used to strengthen the assignment of skills 450 and increase the number of points 440 associated with a contribution 430. Note that steps 955 and 960 are connected to the rest of the method 900 through dotted arrows to indicate that these steps 955, 960 simply represent another embodiment. If this embodiment is not implemented, processing merely passes to the next step 965.


In step 965, a search user device 250 submits a query 600 with certain parameters 602 to the system server 210. The system server 210 then determines results 620 for that query 600 based on both cached individual forum data 420 and other, permanently stored individual forum data 410 in the system data 212. The system server can also consider non-forum data 630 in determining results for that query 600.


Step 970 then determines whether a save event 700 has occurred for any individual. If it has, step 975 will save the points 440 and skills 450 for that individual 412 into the permanently stored individual forum data 410. This data can then be removed from the cached individual forum data 420. In most cases, step 970 will also save the contributions 430 and learnings 460 to the permanent individual forum data 410. At that point, the method 900 will continue to monitor for contribution data 402 or learning confirmations 510 from this or other users.


If a save event has not occurred, step 980 determines if the time-to-live period for data in the cached individual forum data 420 has expired. If a TTL expiration 810 is detected, then step 985 will remove the data for that individual from the cached individual forum data 420 without permanently saving it. In some embodiments, a TTL expiration event 810 will delete contributions 430, points 440, skills 450, and learnings 460, but will not delete other data including new individual identifiers 412, credentials 414 used by the individual to log into a forum server 220, or information gained about topics 470. At this point, or if no TTL expiration 810 is detected, then the method 900 will continue to monitor for contribution data 402 or learning confirmations 510.


Rebuilding Lost Points and Skills



FIG. 10 shows system 20 and the data flow that is triggered by a request for point rebuild 1000 sent by the system application 494 operating on an individual computing device. As explained above, points 440 and skills 450 associated with contributions 430 and learnings 460 are stored temporarily in the cached individual forum data 420, but this can be deleted if the TTL for that data expires. In systems where save events 700 are associated with continued or long-term use of the system 20, use of the system 20 by an individual that is followed by a long period of time may cause a TTL expiration event 810. This will cause a deletion of data in the cached individual forum data 420, and at a later point the individual may indicate a desire to recapture this lost data by sending a request for point rebuild 1000 to the system server 210. In some cases, a request for point rebuild 1000 will not be accepted unless earned by renewed use of the system 20, or unless paid for through some other type of compensation.



FIG. 11 shows a method 1100 for rebuilding points 440 and skills 450. This method 1100 starts at step 1105 with the system server 210 receiving a request 1000 to restore points 440 and skills 450 for a particular individual. Such a request requires that the system server 210 identify all the contributions 430 and learnings 460 that may have been stored in the cached individual forum data 420 but were deleted in step 985. This request may also include identifying contributions 430 made to third-party forum servers 220 even before the individual began using the system 20. The first place to identify these contributions 430 and learnings 460 is by examining the local forum data 496 (assuming that the operating embodiment stores data in local forum data 496). This takes place at step 1110. The local forum data 496 is maintained by the system application 494. Thus, when the system server 210 that receives the request 1000 from an individual using the system application 494, the system server 210 can request this data 496 from that same system application 494.


In some cases, the local forum data 496 will be incomplete. Consequently, method 1100 will reach out to the forum servers 220 to identify contributions 400 and/or learnings 500 for this individual. The next step 1115, therefore, is to identify the credentials 414 for the identified user 412. These credentials 414 may come from previously stored data found on the individual forum data 410. As indicated above, credentials 414 may be permanently saved when learned by the system 20 and might not be deleted even upon the occurrence of a TTL expiration event 810. In some embodiments, the individual may submit credential information 414 along with the request for point rebuild 1000 so that the system server 210 can identify contributions 430 created by the individual at a new forum server 220.


At step 1120, the system server 210 will examine the third-party forum servers 220 for which it has credential information 414. In system 20, the system server 210 has API access 360 to the first expert forum server 222, and therefore submits an API request 1010 to that third-party forum server 222, as shown in FIG. 10. This API request 1010 includes the appropriate credential information to identify the individual. At step 1125, the third-party forum server 222 responds to the API request 1010 by returning the requested contributions 430 in an API response 1012. If available, the API response 1012 may also include information about learnings 460 transmitted to this individual by the forum server 222.


The system server 210 does not have API access to the second expert forum server 224. To obtain the necessary data, the system server 210 navigates through web pages provided by forum server 224 through requests 1020, until web pages 1022 containing the desired information are displayed and returned to the system server 210. The system server 210 can then scrape the relevant data from the received web pages 1022.


At step 1130, the system server 210 may decide to verify the authorship of the contributions 430 it received in step 1125. Verifying authorship can be necessary to prevent an individual from claiming credit for contributions made by another. This is especially relevant when an individual is requesting 1000 credit for points 440 and skills 450 from contributions made prior to enrolling with the system server 210 and system 20.


In one embodiment, the authorship of the contributions 430 received at step 1125 is not verified until the system application 494 has received written input from the individual. This input may be a separate contribution to a third-party forum 220, or it could be an answer to a question specially provided to the individual by the system application 494 operating on the individual device 240. This written input can then be compared with the writing in the contributions 430 received in step 1125. Known algorithms exist to compare writing samples to determine the likelihood that the same author wrote both writing samples. If the algorithm that compares the writing determines that it is reasonably likely that the writing received from the system application 494 matches the contributions identified in step 1125, then step 1130 has verified the authorship of the contributions.


In another embodiment, the system application 494 requests that the individual rewrite one of the contributions identified in step 1125. The new answer could be compared with the previously identified contribution for both style and content to verify that the individual was responsible for the identified contribution from step 1125.


If step 1130 verifies that the individual was the author of the identified contributions, then step 1135 determines the points 440 and skills 450 that should be assigned to the contributions 430 (and learnings 460) from step 1120. At step 1140, these points 440 and skills 450 are saved (along with the received contributions 430 and learnings 460) in the permanent individual forum data 410 stored on the system data store 212. The method then ends at step 1145.


Updating Data from Third-Party Forum Server



FIG. 12 contains a flow chart showing a method 1200 for updating data from a third-party forum server 220. As explained above, the system server 210 frequently receives contribution data 402 from an individual computing device 240 indicating that an individual has submitted a contribution 400 to a third-party forum server 220. Using the techniques described above, the system server 210 can create a contribution data entity 430 and then appropriately assign points 440 and skills 450 for that contribution 430. But since the contribution 430 was recently submitted to the third-party forum server 220, there is little possibility that other users have submitted ratings feedback (such as rating 124 shown in FIG. 1 in connection with contribution 120) or have made any responsive posts 130 that could form part of a conversation at the time the contribution data 402 is received.


Method 1200 allows the system server 210 to periodically revisit these old contributions on the third-party forum servers 220 to identify this type of data. The method 1200 begins with selecting a forum server 220 for an individual 412 at step 1205. Next, step 1210 identifies the individual's credentials 414 for that selected forum server 220.


Step 1215 then determines whether the system server 210 has an API interface 360 to this forum server 220. If so, then step 1220 submits an API request to that forum server 220 using the credentials 414 identified in step 1210. At step 1235, the system server 210 receives relevant data back from the API request, including ratings data 340 and other contributions that form part of a conversation on the forum server 220. This relevant information should relate to all of the contributions 430 that the individual 412 has submitted to this forum server 220.


If the system server 210 does not have an API interface 360 to the forum server 220, the system server 210 will determine at step 1240 whether or not it has access to the forum server 220 through a publish and subscribe system. If not, the system server 210 must scrape web pages to obtain the necessary information. To do so, it may be most efficient to log into the forum server 220 as the individual using the credentials 414, as shown at step 1245. In most cases, however, step 1245 is not necessary nor desired, as contributions are usually made available to all parties by the forum server 220, not just to the individual that submitted the contributions. At step 1250, the system server 210 navigates to the web pages containing the relevant contributions 430. The relevant contributions 430 are those contributions 430 already known by the system server 210 to have been made to the selected forum server 220 by this individual 412. Step 1255 then scrapes relevant data, including ratings 340 and other contributions that form part of the conversation related to the individual's contributions 430.


If step 1240 determines that a publish and subscribe system is available at the forum server 220, that means that the system server 210 can simply subscribe to updates made at the forum server 220. This subscription can relate to broad topics, such as topic 112 shown in FIG. 1, or on narrow topics or questions, such as question 114, or even on related contributions made to a single contribution, such as contribution 120. The system server 210 may subscribe to all contributions for which it received contribution data 402. In this way, whenever changes are made at the forum server 220 (such as a rating 124 or a related contribution 130, as shown in FIG. 1), the data will be published and pushed to the system server 210. The system server 210 then needs to only receive it subscribed data at step 1260.


Once the relevant data is received at steps 1235, 1255, or 1260, step 1265 determines whether any additional points 440 or skills 450 should be assigned to any of the individual's contributions 430. For example, the system server may evaluate the received relevant data and identify that an individual associated with other individual identifier 412 in the system data 212 has participated in a conversation concerning an original contribution 430 made by the individual identified in step 1205. Analysis may indicate that this other individual is highly skilled in the skill 450 that was associated with the original contribution 430. Participating in a conversation with a highly-skilled colleague as part of a contribution 430 may cause the system server 210 to strengthen the association made originally made between the contribution and the skill 450.


If step 1265 determines that points 440 or skills 450 should be increased or changed, step 1270 will create and save these additional or changed points 440 and skills 450. This data will be saved either in the permanently saved individual forum data 410 or the cached individual forum data 420, depending on where the associated contribution data entities 430 are stored.


At step 1275, the method 1200 determines if there are any more forum server/individual combinations to be examined. If so, the method returns to step 1205 for the identification of a new forum server/individual combination. If not, the method ends at step 1280.


In some embodiments, the method 1200 identifies only ratings 340 and conversation data that relate to already identified contributions 430. In other embodiments, the method 1200 will identify all contributions 430 made by the identified individual 412 at the selected forum server 220. New contribution data 430 (and awarded points 440 and skills 450) will then be stored alongside the updated points 440 and skills 450 at step 1265.


Use of Points



FIG. 13 shows a method 1300 by which an individual can utilize/redeem their accumulated points 440. If points 440 were not tracked in the system 20, individuals might still be incentivized to use the system 20 because the improved search results 620 based on the system's improved knowledge of their skills 450 would be beneficial to them. Nonetheless, the accumulation of points 440 serves as an additional incentive for individuals to use the above-described system 20.


In one embodiment, individuals are able to display or otherwise share their total number of accumulated points 440 with other individuals. This can be accomplished through a mere presentation of a numeric point total. Alternatively, a user can be assigned a rank. The more points 440 accumulated by an individual, the higher their rank. This rank can then be shared with other users of the system 20 and also with other users of the various third-party forum servers 220. These ranks could be represented through avatars that are generated by the system 20. A user might obtain a rank of “General” or “Supreme Leader” or “T-Rex” based on their point total, and an avatar could be generated that reflects these rank titles.


In another embodiment, the system 20 could form part of a job search system in which employers use the search user device 250 to identify individuals that will apply for and accept their jobs. In this embodiment, the individuals that submit contributions 400 and receiving learnings 500 would be the same individuals that would apply for the jobs. In this context, the number of accumulated points 440 by an individual could be shared along with their identifying information (associated with their individual identifier 412) within the query results 620. Alternatively, these points 440 could also be converted into ranks, and their ranks (or related icons) could be displayed in the query results.


In a job searching system, biases can be avoided by having an initial conversation between an employer and a job candidate be partially anonymized. One method of doing so is to have job candidates presented (at least in the early stages of an interview and/or job application process) as an avatar. In this embodiment, the points 440 accumulated by an individual could be used to change the avatar that is shown in an employer. These avatars could be linked to the ranks described in the previous paragraph. Alternatively, a variety of avatars and alterations to the avatars could be made available to the individual in order to create custom avatars. Better avatars would be purchased for a higher number of points 440. Improvements and modifications to an existing avatar could also be purchased using accumulated points 440. Employers would understand that more elaborate avatars represent an individual that has more points 440, and therefore is likely to have more and stronger skills 450.


In this context, step 1305 of method 1300 is a request from an individual to improve an avatar using points 440 accumulated in the system 20. Step 1310 reduces the points 440 assigned to an individual identifier 412 and upgrades an avatar that is usable by that individual. At step 1315, this avatar is presented within the search results 620 that are returned to the search user device 250 whenever that individual's information is also included in those results 620.


At step 1320, the system 20 allows direct communication between the search user device 250 and the individual computing device 240 used by that individual. This interaction might take the form of a text-based chat, an audio conversation, or a video conference. At step 1325, the avatar improved at step 1310 is used to represent the individual during the direct communication with the search user device 250.


In the context of a video interview, it is possible that the avatar will replace the image of the individual shown on the search user device 250. Technologies are known where an individual's face can be replaced in real time with an avatar that moves as the individual moves and talks as the individual talks. Thus, the video conference described in step 1325 can include live audio communications with the face of the individual replaced by the avatar.


Studies have indicated that bias in the employment context is most likely to arise in the first few minutes of an in-person interview. Thus, the replacement of an individual's face during the first few minutes of the interview with an avatar might reduce bias. After those first few minutes, the use of the avatar might not be necessary. Thus, step 1330 eventually replaces the avatar with an image or live stream of the individual's actual face after a time period. The method 1300 then ends at step 1335.


The many features and advantages of the invention are apparent from the above description. Numerous modifications and variations will readily occur to those skilled in the art. Since such modifications are possible, the invention is not to be limited to the exact construction and operation illustrated and described. Rather, the present invention should be limited only by the following claims.

Claims
  • 1. A method comprising: a) at a system server, receiving first contribution data identifying a first individual identifier and a first contribution made to a first third-party forum;b) at the system server, receiving second contribution data identifying the first individual identifier and a second contribution to a second third-party forum, wherein the first third-party forum and the second third-party forum do not share forum data;c) verifying an authorship of the first contribution and the second contribution, wherein verifying the authorship comprises receiving additional input associated with the first individual identifier, wherein the additional input is received in response to a question sent to a system application operating on an individual's device;d) at the system server, identifying that a contribution skill is relevant to both the first contribution data and the second contribution data;e) at the system server, establishing within forum data: i) a first contribution association between a first contribution data entity containing the first contribution data and the first individual identifier;ii) a second contribution association between a second contribution data entity containing the second contribution data and the first individual identifier,iii) a first skill association between the first contribution data entity and the contribution skill thereby establishing a first association path between the first individual identifier and the contribution skill, andiv) a second skill association between the second contribution data entity and the contribution skill thereby establishing a second association path between the first individual identifier and the contribution skill;f) at the system server, establishing within the forum data for the first individual identifier a first point association between a contribution point value identified for the first contribution or the second contribution and the first individual identifier, wherein the contribution point value is identified based on textual analysis of the first contribution data or the second contribution data;g) at a search server, receiving a query from a search device that identifies the contribution skill;h) at the search server, identifying a plurality of individual identifiers in response to the query including the first individual identifier;i) at the search server, sorting the plurality of individual identifiers based on a strength of association between the plurality of individual identifiers and the contribution skill, wherein the first and second association paths between the first individual identifier to the contribution skill increases the strength of association for the first individual identifier;j) at the search server, returning search results reflecting the sorted plurality of individual identifiers to the search device.
  • 2. The method of claim 1, wherein the contribution data includes contribution content, and further wherein the contribution point value is identified based upon an examination of the contribution content.
  • 3. The method of claim 1, wherein the contribution skill is identified for the contribution by first determining a topic under which the contribution was made, and second determining the contribution skill based on the topic.
  • 4. The method of claim 3, further comprising preliminary steps of evaluating a hierarchy of a plurality of topics found at the third-party forum, and creating an association between the plurality of topics and a plurality of skills.
  • 5. The method of claim 1, wherein the search server is operating on a same computer system as the system server.
  • 6. The method of claim 1, wherein the data related to the first individual identifier in the search results is personally identifiable information for the first individual.
  • 7. The method of claim 1, wherein the first skill association is established within the forum data by establishing associations between an individual identifier data entity and a contribution data entity and between the contribution data entity and a skill data entity.
  • 8. The method of claim 1, wherein a plurality of skills are associated with the first individual identifier in the forum data.
  • 9. The method of claim 1, wherein a plurality of point values are associated with the first individual identifier in the forum data.
  • 10. The method of claim 9, further comprising receiving a request from the first computing device to redeem point values associated with the first individual identifier.
  • 11. The method of claim 10, wherein an avatar is associated with the first individual identifier, further wherein the search results present the avatar in conjunction with the data related to the first individual identifier, and still further wherein the request alters the avatar associated with the first individual identifier.
  • 12. The method of claim 10, wherein an avatar is associated with the first individual identifier, further comprising a step of creating a live video link between the first computing device and the search device in which the avatar represents the first individual, and still further wherein the request alters the avatar associated with the first individual identifier.
  • 13. The method of claim 1, wherein the forum data comprises temporary forum data and permanent forum data, further wherein the first skill association and the first point association are stored in the temporary forum data, further comprising identifying a time-to-live clock expiration associated with the first individual identifier and, consequently, deleting the first skill association and the first point association from the forum data.
  • 14. The method of claim 1, wherein the forum data comprises temporary forum data and permanent forum data, further wherein the first skill association and the first point association are stored in the temporary forum data, further comprising identifying a save event associated with the first individual identifier and, consequently, storing the first skill association and the first point association into the permanent forum data.
  • 15. The method of claim 14, wherein the step of searching to determine the search results comprises the save event.
  • 16. The method of claim 14, wherein the save event comprises an event selected from a set of events consisting of: i) utilization of the system server by the first computing device for a determined time period;ii) accumulation of a total number of point values associated with the first individual identifier that exceeds a set threshold; andiii) interaction between the search device and the first computing device facilitated by the system server.
  • 17. The method of claim 1, further comprising j) at the system server, receiving learning confirmation data associated with the first individual identifier from the system application operating on the first computing device, the learning confirmation data identifying a learning received by the first computing device;k) at the system server, determining a learning skill for the learning;l) at the system server, establishing within the forum data a second skill association between the learning skill and the first individual identifier;m) at the system server, determining a learning point value for the learning; andn) at the system server, establishing within the forum data a second point association between the learning point value and the first individual identifier.
  • 18. The method of claim 1, wherein the forum data further comprises temporary forum data and permanent forum data, further wherein the temporary forum data comprises data relating to a second individual identifier associated with a second individual; further comprising identifying a time-to-live clock expiration associated with the second individual identifier and, consequently, deleting the data relating to the second individual identifier; and still further comprising, in response to a request to restore the data associated with the second individual identifier: i) at the system server, identifying credentials associated with the second individual identifier at the third-party forum;ii) at the system server and using the credentials, requesting and receiving prior contributions previously made in association with the credentials at the third-party forum;iii) at the system server, for each of the prior contributions, determining an identified skill and an identified point value, and establishing, within the permanent forum data, associations between the second individual identifier and the identified skills and the identified point values.
  • 19. The method of claim 18, further comprising, before determining the identified skill and the identified point value for each of the prior contributions, verifying that the second individual authored the prior contributions.
  • 20. The method of claim 1, further comprising: j) at the system server, receiving ratings for the contribution from the third-party forum;k) at the system server, altering the first skill association between the contribution skill and the first individual identifier based on the ratings.
  • 21. The method of claim 20l) at the system server, receiving conversation data for the contribution from the third-party forum;m) at the system server, identifying relevant data in the conversation data, wherein the relevant data identifies a third individual identifier for the conversation data and further wherein the relevant data is derived from analyzing the third individual identifier and the contribution skill;n) at the system server, altering the first skill association between the contribution skill and the first individual identifier based on the relevant data.
  • 22. The method of claim 1, wherein verifying the authorship of the first contribution and the second contribution comprises receiving additional input associated with the first individual identifier.
  • 23. The method of claim 22, wherein the additional input is compared to the first contribution and the second contribution to determine the likelihood of that the same author created the additional input, the first contribution and the second contribution.
  • 24. A method comprising: a) at a system server, accessing temporary forum data and permanent forum data that together relate to a plurality of individuals associating skills with a first set of individual identifiers;b) at the system server, receiving first contribution data identifying a first individual identifier and a first contribution made to a third-party forum;c) at the system server, identifying a contribution skill and a contribution point value for the first contribution data;d) at the system server, establishing within the temporary forum data: i) a first skill association between the first individual identifier and the contribution skill;ii) a first point association between the first individual identifier and the contribution point value;e) at the system server, receiving a query identifying a query skill from a search user device;f) at the system server, searching both the temporary forum data and permanent forum data for individual identifiers associated with the query skill;g) at the system server, returning search results to the search user device;h) at the system server, identifying a time-to-live clock expiration associated with the first individual identifier and, as a consequence, deleting the first skill association and the first point association from the temporary forum data;i) at the system server, receiving a request to restore data associated with the first individual identifier, and in response to receiving the request: i) identifying credentials associated with the first individual identifier at the third-party forum;ii) at the system server and using the credentials, requesting and receiving prior contributions previously made in association with the credentials at the third-party forum;iii) at the system server, for each of the prior contributions, determining an identified skill and an identified point value, and establishing, within the permanent forum data, associations between the first individual identifier and the identified skills and the identified point values.
  • 25. The method of claim 24, further comprising, before determining the identified skill and the identified point value for each of the prior contributions, verifying that an individual associated with the first individual identifier authored the prior contributions.
CROSS-REFERENCE TO RELATED CASES

The present application is a continuation of U.S. patent application Ser. No. 17/396,294, filed on Aug. 6, 2021, which is hereby incorporated by reference in its entirety.

US Referenced Citations (438)
Number Name Date Kind
1173785 Deagan Feb 1916 A
1686351 Spitzglass Oct 1928 A
3152622 Rothermel Oct 1964 A
3764135 Madison Oct 1973 A
5109281 Kobori et al. Apr 1992 A
5410344 Graves et al. Apr 1995 A
5835667 Wactlar et al. Nov 1998 A
5867209 Irie et al. Feb 1999 A
5884004 Sato et al. Mar 1999 A
5886967 Aramaki Mar 1999 A
5897220 Huang et al. Apr 1999 A
5906372 Recard May 1999 A
5937138 Fukuda et al. Aug 1999 A
5949792 Yasuda et al. Sep 1999 A
6128414 Liu Oct 2000 A
6229904 Huang et al. May 2001 B1
6289165 Abecassis Sep 2001 B1
6484266 Kashiwagi et al. Nov 2002 B2
6502199 Kashiwagi et al. Dec 2002 B2
6504990 Abecassis Jan 2003 B1
RE37994 Fukuda et al. Feb 2003 E
6600874 Fujita et al. Jul 2003 B1
6618723 Smith Sep 2003 B1
6981000 Park et al. Dec 2005 B2
7095329 Saubolle Aug 2006 B2
7146627 Ismail et al. Dec 2006 B1
7293275 Krieger et al. Nov 2007 B1
7313539 Pappas et al. Dec 2007 B1
7336890 Lu et al. Feb 2008 B2
7499918 Ogikubo Mar 2009 B2
7606444 Erol et al. Oct 2009 B1
7650286 Obeid Jan 2010 B1
7702542 Aslanian Apr 2010 B2
7725812 Balkus et al. May 2010 B1
7797402 Roos Sep 2010 B2
7810117 Karnalkar et al. Oct 2010 B2
7865424 Pappas et al. Jan 2011 B2
7895620 Haberman et al. Feb 2011 B2
7904490 Ogikubo Mar 2011 B2
7962375 Pappas et al. Jun 2011 B2
7974443 Kipman et al. Jul 2011 B2
7991635 Hartmann Aug 2011 B2
7996292 Pappas et al. Aug 2011 B2
8032447 Pappas et al. Oct 2011 B2
8046814 Badenell Oct 2011 B1
8099415 Luo et al. Jan 2012 B2
8111326 Talwar Feb 2012 B1
8169548 Ryckman May 2012 B2
8185543 Choudhry et al. May 2012 B1
8229841 Pappas et al. Jul 2012 B2
8238718 Toyama et al. Aug 2012 B2
8241628 Diefenbach-Streiber et al. Aug 2012 B2
8266068 Foss et al. Sep 2012 B1
8300785 White Oct 2012 B2
8301550 Pappas et al. Oct 2012 B2
8301790 Morrison et al. Oct 2012 B2
8326133 Lemmers Dec 2012 B2
8326853 Richard et al. Dec 2012 B2
8331457 Mizuno et al. Dec 2012 B2
8331760 Butcher Dec 2012 B2
8339500 Hattori et al. Dec 2012 B2
8358346 Hikita et al. Jan 2013 B2
8387094 Ho et al. Feb 2013 B1
8505054 Kirley Aug 2013 B1
8508572 Ryckman et al. Aug 2013 B2
8543450 Pappas et al. Sep 2013 B2
8560482 Miranda et al. Oct 2013 B2
8566880 Dunker et al. Oct 2013 B2
8600211 Nagano et al. Dec 2013 B2
8611422 Yagnik et al. Dec 2013 B1
8620771 Pappas et al. Dec 2013 B2
8620872 Killalea Dec 2013 B1
8633964 Zhu Jan 2014 B1
8650114 Pappas et al. Feb 2014 B2
8751231 Larsen et al. Jun 2014 B1
8774604 Torii et al. Jul 2014 B2
8792780 Hattori Jul 2014 B2
8824863 Kitamura et al. Sep 2014 B2
8854457 De Vleeschouwer et al. Oct 2014 B2
8856000 Larsen et al. Oct 2014 B1
8902282 Zhu Dec 2014 B1
8909542 Montero et al. Dec 2014 B2
8913103 Sargin et al. Dec 2014 B1
8918532 Lueth et al. Dec 2014 B2
8930260 Pappas et al. Jan 2015 B2
8988528 Hikita Mar 2015 B2
9009045 Larsen et al. Apr 2015 B1
9015746 Holmdahl et al. Apr 2015 B2
9026471 Pappas et al. May 2015 B2
9026472 Pappas et al. May 2015 B2
9047634 Pappas et al. Jun 2015 B2
9064258 Pappas et al. Jun 2015 B2
9070150 Pappas et al. Jun 2015 B2
9092813 Pappas et al. Jul 2015 B2
9106804 Roberts et al. Aug 2015 B2
9111579 Meaney et al. Aug 2015 B2
9117201 Kennell et al. Aug 2015 B2
9129640 Hamer Sep 2015 B2
9135674 Yagnik et al. Sep 2015 B1
9223781 Pearson et al. Dec 2015 B2
9224156 Moorer Dec 2015 B2
9305286 Larsen et al. Apr 2016 B2
9305287 Krishnamoorthy et al. Apr 2016 B2
9355151 Cranfill et al. May 2016 B1
9378486 Taylor et al. Jun 2016 B2
9398315 Oks et al. Jul 2016 B2
9402050 Recchia et al. Jul 2016 B1
9437247 Pendergast et al. Sep 2016 B2
9438934 Zhu Sep 2016 B1
9443556 Cordell et al. Sep 2016 B2
9456174 Boyle et al. Sep 2016 B2
9462301 Paśko Oct 2016 B2
9501663 Hopkins et al. Nov 2016 B1
9501944 Boneta et al. Nov 2016 B2
9542452 Ross et al. Jan 2017 B1
9544380 Deng et al. Jan 2017 B2
9554160 Han et al. Jan 2017 B2
9570107 Boiman et al. Feb 2017 B2
9583144 Ricciardi Feb 2017 B2
9600723 Pantofaru et al. Mar 2017 B1
9607655 Bloch et al. Mar 2017 B2
9652745 Taylor et al. May 2017 B2
9653115 Bloch et al. May 2017 B2
9666194 Ondeck et al. May 2017 B2
9684435 Carr et al. Jun 2017 B2
9693019 Fluhr et al. Jun 2017 B1
9710790 Taylor et al. Jul 2017 B2
9723223 Banta et al. Aug 2017 B1
9747573 Shaburov et al. Aug 2017 B2
9792955 Fleischhauer et al. Oct 2017 B2
9805767 Strickland Oct 2017 B1
9823809 Roos Nov 2017 B2
9876963 Nakamura et al. Jan 2018 B2
9881647 McCauley et al. Jan 2018 B2
9936185 Delvaux et al. Apr 2018 B2
9940508 Kaps et al. Apr 2018 B2
9940973 Roberts et al. Apr 2018 B2
9979921 Holmes May 2018 B2
10008239 Eris Jun 2018 B2
10019653 Wilf et al. Jul 2018 B2
10021377 Newton et al. Jul 2018 B2
10108932 Sung et al. Oct 2018 B2
10115038 Hazur et al. Oct 2018 B2
10147460 Ullrich Dec 2018 B2
10152695 Chiu et al. Dec 2018 B1
10152696 Thankappan et al. Dec 2018 B2
10168866 Wakeen et al. Jan 2019 B2
10178427 Huang Jan 2019 B2
10235008 Lee et al. Mar 2019 B2
10242345 Taylor et al. Mar 2019 B2
10268736 Balasia et al. Apr 2019 B1
10296873 Balasia et al. May 2019 B1
10310361 Featherstone Jun 2019 B1
10318927 Champaneria Jun 2019 B2
10325243 Ross et al. Jun 2019 B1
10325517 Nielson et al. Jun 2019 B2
10331764 Rao et al. Jun 2019 B2
10346805 Taylor et al. Jul 2019 B2
10346928 Li et al. Jul 2019 B2
10353720 Wich-Vila Jul 2019 B1
10433030 Packard et al. Oct 2019 B2
10438135 Larsen et al. Oct 2019 B2
10489439 Calapodescu et al. Nov 2019 B2
10607188 Kyllonen et al. Mar 2020 B2
10657498 Dey et al. May 2020 B2
10694097 Shirakyan Jun 2020 B1
10728443 Olshansky Jul 2020 B1
10735396 Krstic et al. Aug 2020 B2
10748118 Fang Aug 2020 B2
10796217 Wu Oct 2020 B2
10963841 Olshansky Mar 2021 B2
11023735 Olshansky Jun 2021 B1
11127232 Olshansky Sep 2021 B2
11144882 Olshansky Oct 2021 B1
11727040 Olshansky Aug 2023 B2
20010001160 Shoff et al. May 2001 A1
20010038746 Hughes et al. Nov 2001 A1
20020097984 Abecassis Jul 2002 A1
20020113879 Battle et al. Aug 2002 A1
20020122659 McGrath et al. Sep 2002 A1
20020191071 Rui et al. Dec 2002 A1
20030005429 Colsey Jan 2003 A1
20030027611 Recard Feb 2003 A1
20030189589 LeBlanc et al. Oct 2003 A1
20030194211 Abecassis Oct 2003 A1
20030233345 Perisic Dec 2003 A1
20040033061 Hughes et al. Feb 2004 A1
20040186743 Cordero Sep 2004 A1
20040264919 Taylor et al. Dec 2004 A1
20050095569 Franklin May 2005 A1
20050137896 Pentecost et al. Jun 2005 A1
20050187765 Kim et al. Aug 2005 A1
20050232462 Vallone et al. Oct 2005 A1
20050235033 Doherty Oct 2005 A1
20050271251 Russell et al. Dec 2005 A1
20060042483 Work et al. Mar 2006 A1
20060045179 Mizuno et al. Mar 2006 A1
20060100919 Levine May 2006 A1
20060116555 Pavlidis et al. Jun 2006 A1
20060229896 Rosen et al. Oct 2006 A1
20070088601 Money et al. Apr 2007 A1
20070124161 Mueller et al. May 2007 A1
20070237502 Ryckman et al. Oct 2007 A1
20070288245 Benjamin Dec 2007 A1
20080086504 Sanders et al. Apr 2008 A1
20090083103 Basser Mar 2009 A1
20090083670 Roos Mar 2009 A1
20090087161 Roberts et al. Apr 2009 A1
20090144785 Walker et al. Jun 2009 A1
20090171899 Chittoor et al. Jul 2009 A1
20090192884 Lo Jul 2009 A1
20090248685 Pasqualoni et al. Oct 2009 A1
20090258334 Pyne Oct 2009 A1
20100086283 Ramachandran et al. Apr 2010 A1
20100143329 Larsen Jun 2010 A1
20100183280 Beauregard et al. Jul 2010 A1
20100191561 Jeng et al. Jul 2010 A1
20100199228 Latta et al. Aug 2010 A1
20100217757 Fujioka Aug 2010 A1
20100223109 Hawn et al. Sep 2010 A1
20100325307 Roos Dec 2010 A1
20110055098 Stewart Mar 2011 A1
20110055930 Flake et al. Mar 2011 A1
20110060671 Erbey et al. Mar 2011 A1
20110076656 Scott et al. Mar 2011 A1
20110088081 Folkesson et al. Apr 2011 A1
20110119264 Hu May 2011 A1
20110135279 Leonard Jun 2011 A1
20110191416 Glazer Aug 2011 A1
20120036127 Work et al. Feb 2012 A1
20120053996 Galbavy Mar 2012 A1
20120084649 Dowdell et al. Apr 2012 A1
20120114246 Weitzman May 2012 A1
20120130771 Kannan et al. May 2012 A1
20120257875 Sharpe et al. Oct 2012 A1
20120271774 Clegg Oct 2012 A1
20130007670 Roos Jan 2013 A1
20130016815 Odinak et al. Jan 2013 A1
20130016816 Odinak et al. Jan 2013 A1
20130016823 Odinak et al. Jan 2013 A1
20130024105 Thomas Jan 2013 A1
20130111401 Newman et al. May 2013 A1
20130121668 Meaney et al. May 2013 A1
20130124998 Pendergast et al. May 2013 A1
20130124999 Agnoli et al. May 2013 A1
20130125000 Fleischhauer et al. May 2013 A1
20130177296 Geisner et al. Jul 2013 A1
20130212033 Work et al. Aug 2013 A1
20130212180 Work et al. Aug 2013 A1
20130216206 Dubin et al. Aug 2013 A1
20130218688 Roos Aug 2013 A1
20130222601 Engstroem et al. Aug 2013 A1
20130226578 Bolton et al. Aug 2013 A1
20130226674 Field et al. Aug 2013 A1
20130226910 Work et al. Aug 2013 A1
20130254192 Work et al. Sep 2013 A1
20130259447 Sathish et al. Oct 2013 A1
20130266925 Nunamaker et al. Oct 2013 A1
20130268452 MacEwen et al. Oct 2013 A1
20130283378 Costigan et al. Oct 2013 A1
20130290210 Cline et al. Oct 2013 A1
20130290325 Work et al. Oct 2013 A1
20130290420 Work et al. Oct 2013 A1
20130290448 Work et al. Oct 2013 A1
20130297589 Work et al. Nov 2013 A1
20130332381 Clark et al. Dec 2013 A1
20130332382 LaPasta et al. Dec 2013 A1
20140036023 Croen et al. Feb 2014 A1
20140089217 McGovern et al. Mar 2014 A1
20140092254 Mughal et al. Apr 2014 A1
20140123177 Kim et al. May 2014 A1
20140125703 Roveta et al. May 2014 A1
20140143165 Posse et al. May 2014 A1
20140153902 Pearson et al. Jun 2014 A1
20140186004 Hamer Jul 2014 A1
20140191939 Penn et al. Jul 2014 A1
20140192200 Zagron Jul 2014 A1
20140198196 Howard et al. Jul 2014 A1
20140214709 Greaney Jul 2014 A1
20140245146 Roos Aug 2014 A1
20140258288 Work et al. Sep 2014 A1
20140270706 Pasko Sep 2014 A1
20140278506 Rogers et al. Sep 2014 A1
20140278683 Kennell et al. Sep 2014 A1
20140279634 Seeker Sep 2014 A1
20140282709 Hardy et al. Sep 2014 A1
20140317009 Bilodeau et al. Oct 2014 A1
20140317079 Obernikhin Oct 2014 A1
20140317126 Work et al. Oct 2014 A1
20140325359 Vehovsky et al. Oct 2014 A1
20140325373 Kramer et al. Oct 2014 A1
20140327779 Eronen et al. Nov 2014 A1
20140330734 Sung et al. Nov 2014 A1
20140330773 Brillhart Nov 2014 A1
20140336942 Pe'er et al. Nov 2014 A1
20140337900 Hurley Nov 2014 A1
20140356822 Hoque et al. Dec 2014 A1
20140358810 Hardtke et al. Dec 2014 A1
20140359439 Lyren Dec 2014 A1
20150003603 Odinak et al. Jan 2015 A1
20150003605 Odinak et al. Jan 2015 A1
20150006422 Carter et al. Jan 2015 A1
20150012453 Odinak et al. Jan 2015 A1
20150046357 Danson et al. Feb 2015 A1
20150063775 Nakamura et al. Mar 2015 A1
20150067723 Bloch et al. Mar 2015 A1
20150099255 Aslan et al. Apr 2015 A1
20150100702 Krishna et al. Apr 2015 A1
20150127565 Chevalier et al. May 2015 A1
20150139601 Mate et al. May 2015 A1
20150154564 Moon et al. Jun 2015 A1
20150155001 Kikugawa et al. Jun 2015 A1
20150170303 Geritz et al. Jun 2015 A1
20150201134 Carr et al. Jul 2015 A1
20150205800 Work et al. Jul 2015 A1
20150205872 Work et al. Jul 2015 A1
20150206102 Cama et al. Jul 2015 A1
20150222815 Wang et al. Aug 2015 A1
20150228306 Roberts et al. Aug 2015 A1
20150242707 Wilf et al. Aug 2015 A1
20150251099 Soules Sep 2015 A1
20150269165 Work et al. Sep 2015 A1
20150269529 Kyllonen et al. Sep 2015 A1
20150269530 Work et al. Sep 2015 A1
20150271289 Work et al. Sep 2015 A1
20150278223 Work et al. Oct 2015 A1
20150278290 Work et al. Oct 2015 A1
20150278964 Work et al. Oct 2015 A1
20150324698 Karaoguz et al. Nov 2015 A1
20150339939 Gustafson et al. Nov 2015 A1
20150356512 Bradley Dec 2015 A1
20150380052 Hamer Dec 2015 A1
20160005029 Ivey et al. Jan 2016 A1
20160036976 Odinak et al. Feb 2016 A1
20160104096 Ovick et al. Apr 2016 A1
20160116827 Tarres Bolos Apr 2016 A1
20160117942 Marino et al. Apr 2016 A1
20160139562 Crowder et al. May 2016 A1
20160154883 Boerner Jun 2016 A1
20160155475 Hamer Jun 2016 A1
20160180234 Siebach et al. Jun 2016 A1
20160180883 Hamer Jun 2016 A1
20160219264 Delvaux et al. Jul 2016 A1
20160225409 Eris Aug 2016 A1
20160225410 Lee et al. Aug 2016 A1
20160247537 Ricciardi Aug 2016 A1
20160267436 Silber et al. Sep 2016 A1
20160313892 Roos Oct 2016 A1
20160323608 Bloch et al. Nov 2016 A1
20160330398 Recchia et al. Nov 2016 A1
20160364692 Bhaskaran et al. Dec 2016 A1
20170026667 Pasko Jan 2017 A1
20170039525 Seidle et al. Feb 2017 A1
20170076751 Hamer Mar 2017 A9
20170134776 Ranjeet et al. May 2017 A1
20170164013 Abramov et al. Jun 2017 A1
20170164014 Abramov et al. Jun 2017 A1
20170164015 Abramov et al. Jun 2017 A1
20170171602 Qu Jun 2017 A1
20170178688 Ricciardi Jun 2017 A1
20170195491 Odinak et al. Jul 2017 A1
20170206504 Taylor et al. Jul 2017 A1
20170213190 Hazan Jul 2017 A1
20170213573 Takeshita et al. Jul 2017 A1
20170227353 Brunner Aug 2017 A1
20170236073 Borisyuk et al. Aug 2017 A1
20170244894 Aggarwal et al. Aug 2017 A1
20170244984 Aggarwal et al. Aug 2017 A1
20170244991 Aggarwal et al. Aug 2017 A1
20170262706 Sun et al. Sep 2017 A1
20170264958 Hutten Sep 2017 A1
20170293413 Matsushita et al. Oct 2017 A1
20170316806 Warren et al. Nov 2017 A1
20170332044 Marlow et al. Nov 2017 A1
20170353769 Husain et al. Dec 2017 A1
20170372748 McCauley et al. Dec 2017 A1
20180011621 Roos Jan 2018 A1
20180025303 Janz Jan 2018 A1
20180054641 Hall et al. Feb 2018 A1
20180070045 Holmes Mar 2018 A1
20180074681 Roos Mar 2018 A1
20180082238 Shani Mar 2018 A1
20180096307 Fortier et al. Apr 2018 A1
20180109737 Nakamura et al. Apr 2018 A1
20180109826 McCoy et al. Apr 2018 A1
20180110460 Danson et al. Apr 2018 A1
20180114154 Bae Apr 2018 A1
20180130497 McCauley et al. May 2018 A1
20180132014 Khazanov et al. May 2018 A1
20180150604 Arena et al. May 2018 A1
20180158027 Venigalla Jun 2018 A1
20180182436 Ullrich Jun 2018 A1
20180191955 Aoki et al. Jul 2018 A1
20180218238 Viirre et al. Aug 2018 A1
20180226102 Roberts et al. Aug 2018 A1
20180227501 King Aug 2018 A1
20180232751 Terhark et al. Aug 2018 A1
20180247271 Van Hoang et al. Aug 2018 A1
20180253697 Sung et al. Sep 2018 A1
20180268868 Salokannel et al. Sep 2018 A1
20180270613 Park Sep 2018 A1
20180302680 Cormican Oct 2018 A1
20180308521 Iwamoto Oct 2018 A1
20180316947 Todd Nov 2018 A1
20180336528 Carpenter et al. Nov 2018 A1
20180336930 Takahashi Nov 2018 A1
20180350405 Marco et al. Dec 2018 A1
20180353769 Smith et al. Dec 2018 A1
20180374251 Mitchell et al. Dec 2018 A1
20180376225 Jones et al. Dec 2018 A1
20190005373 Nims et al. Jan 2019 A1
20190019157 Saha et al. Jan 2019 A1
20190057356 Larsen et al. Feb 2019 A1
20190087558 Mercury et al. Mar 2019 A1
20190096307 Liang et al. Mar 2019 A1
20190129964 Corbin, II May 2019 A1
20190141033 Kaafar et al. May 2019 A1
20190220824 Liu Jul 2019 A1
20190244176 Chuang et al. Aug 2019 A1
20190259002 Balasia et al. Aug 2019 A1
20190295040 Clines Sep 2019 A1
20190311488 Sareen Oct 2019 A1
20190325064 Mathiesen et al. Oct 2019 A1
20200012350 Tay Jan 2020 A1
20200110786 Kim Apr 2020 A1
20200126545 Kakkar et al. Apr 2020 A1
20200143329 Gamaliel May 2020 A1
20200311163 Ma et al. Oct 2020 A1
20200311682 Olshansky Oct 2020 A1
20200311953 Olshansky Oct 2020 A1
20200396376 Olshansky Dec 2020 A1
20210035047 Mossoba et al. Feb 2021 A1
20210158663 Buchholz et al. May 2021 A1
20210174308 Olshansky Jun 2021 A1
20210233262 Olshansky Jul 2021 A1
20210312184 Olshansky Oct 2021 A1
20210314521 Olshansky Oct 2021 A1
20230039116 Olshansky Feb 2023 A1
Foreign Referenced Citations (83)
Number Date Country
2002310201 Mar 2003 AU
2007249205 Mar 2013 AU
2206105 Dec 2000 CA
2763634 Dec 2012 CA
109146430 Jan 2019 CN
1376584 Jan 2004 EP
1566748 Aug 2005 EP
1775949 Dec 2007 EP
1954041 Aug 2008 EP
2009258175 Nov 2009 JP
2019016192 Jan 2019 JP
9703366 Jan 1997 WO
9713366 Apr 1997 WO
9713367 Apr 1997 WO
9828908 Jul 1998 WO
9841978 Sep 1998 WO
9905865 Feb 1999 WO
0133421 May 2001 WO
0117250 Sep 2002 WO
03003725 Jan 2003 WO
2004062563 Jul 2004 WO
2005114377 Dec 2005 WO
2006103578 Oct 2006 WO
2006129496 Dec 2006 WO
2007039994 Apr 2007 WO
2007097218 Aug 2007 WO
2008029803 Mar 2008 WO
2008039407 Apr 2008 WO
2009042858 Apr 2009 WO
2009042900 Apr 2009 WO
2009075190 Jun 2009 WO
2009116955 Sep 2009 WO
2009157446 Dec 2009 WO
2010055624 May 2010 WO
2010116998 Oct 2010 WO
2011001180 Jan 2011 WO
2011007011 Jan 2011 WO
2011035419 Mar 2011 WO
2011129578 Oct 2011 WO
2011136571 Nov 2011 WO
2012002896 Jan 2012 WO
2012068433 May 2012 WO
2012039959 Jun 2012 WO
2012089855 Jul 2012 WO
2013026095 Feb 2013 WO
2013039351 Mar 2013 WO
2013074207 May 2013 WO
2013088208 Jun 2013 WO
2013093176 Jun 2013 WO
2013131134 Sep 2013 WO
2013165923 Nov 2013 WO
2014089362 Jun 2014 WO
2014093668 Jun 2014 WO
2014152021 Sep 2014 WO
2014163283 Oct 2014 WO
2014164549 Oct 2014 WO
2015031946 Apr 2015 WO
2015071490 May 2015 WO
2015109290 Jul 2015 WO
2016031431 Mar 2016 WO
2016053522 Apr 2016 WO
2016073206 May 2016 WO
2016123057 Aug 2016 WO
2016138121 Sep 2016 WO
2016138161 Sep 2016 WO
2016186798 Nov 2016 WO
2016189348 Dec 2016 WO
2017022641 Feb 2017 WO
2017042831 Mar 2017 WO
2017049612 Mar 2017 WO
2017051063 Mar 2017 WO
2017096271 Jun 2017 WO
2017130810 Aug 2017 WO
2017150772 Sep 2017 WO
2017192125 Nov 2017 WO
2018042175 Mar 2018 WO
2018094443 May 2018 WO
2020198230 Oct 2020 WO
2020198240 Oct 2020 WO
2020198363 Oct 2020 WO
2021108564 Jun 2021 WO
2021202293 Oct 2021 WO
2021202300 Oct 2021 WO
Non-Patent Literature Citations (46)
Entry
“Air Canada Keeping Your Points Active Aeroplan,” https://www.aircanada.com/us/en/aco/home/aeroplan/your-aeroplan/inactivity-policy.html, 6 pages.
“American Express Frequently Asked Question: Why were Membership Rewards points forfeited and how can I reinstate them?,” https://www.americanexpress.com/us/customer-service/faq.membership-rewards-points-forfeiture.html, 2 pages.
“DaXtra Parser (CVX) Technical Specifications,” DaXtra Parser Spec. available at URL: <https://cvxdemo.daxtra.com/cvx/download/Parser%20Technical%20Specifications.pdf> at least as early as Feb. 25, 2021 (3 pages).
File History for U.S. Appl. No. 16/366,746 downloaded Sep. 7, 2021 (353 pages).
File History for U.S. Appl. No. 16/828,578 downloaded Sep. 7, 2021 (353 pages).
File History for U.S. Appl. No. 16/366,703 downloaded Sep. 7, 2021 (727 pages).
File History for U.S. Appl. No. 17/212,688 downloaded Sep. 7, 2021 (311 pages).
File History for U.S. Appl. No. 16/696,781 downloaded Oct. 1, 2021 (434 pages).
File History for U.S. Appl. No. 17/025,902 downloaded Oct. 1, 2021 (367 pages).
File History for U.S. Appl. No. 16/931,964 downloaded Sep. 7, 2021 (259 pages).
“International Preliminary Report on Patentability,” for PCT Application No. PCT/US2020/024470 dated Oct. 7, 2021 (9 pages).
“International Preliminary Report on Patentability,” for PCT Application No. PCT/US2020/024488 dated Oct. 7, 2021 (9 pages).
“International Preliminary Report on Patentability,” for PCT Application No. PCT/US2020/024722 dated Oct. 7, 2021 (8 pages).
“International Search Report and Written Opinion,” for PCT Application No. PCT/US2020/024470 dated Jul. 9, 2020 (13 pages).
“International Search Report and Written Opinion,” for PCT Application No. PCT/US2020/024488 dated May 19, 2020 (14 pages).
“International Search Report and Written Opinion,” for PCT Application No. PCT/US2020/024722 dated Jul. 10, 2020 (13 pages).
“International Search Report and Written Opinion,” for PCT Application No. PCT/US2020/062246 dated Apr. 1, 2021 (18 pages).
“International Search Report and Written Opinion,” for PCT Application No. PCT/US2021/024423 dated Jun. 16, 2021 (13 pages).
“International Search Report and Written Opinion,” for PCT Application No. PCT/US2021/024450 dated Jun. 4, 2021 (14 pages).
“Invitation to Pay Additional Fees,” for PCT Application No. PCT/US2020/062246 dated Feb. 11, 2021 (14 pages).
“Non-Final Office Action,” for U.S. Appl. No. 16/910,986 dated Jun. 23, 2021 (70 pages).
“Nurse Resumes,” Post Job Free Resume Search Results for “nurse” available at URL <https://www.postjobfree.com/resumes?q=nurse&l=&radius=25> at least as early as Jan. 26, 2021 (2 pages).
“Nurse,” LiveCareer Resume Search results available online at URL <https://www.livecareer.com/resume-search/search?jt=nurse> website published as early as Dec. 21, 2017 (4 pages).
“Response to Non Final Office Action,” for U.S. Appl. No. 16/910,986, filed Sep. 30, 2021 (18 pages).
“Resume Database,” Mighty Recruiter Resume Database available online at URL <https://www.mightyrecruiter.com/features/resume-database> at least as early as Sep. 4, 2017 (6 pages).
“Resume Library,” Online job board available at Resume-library.com at least as early as Aug. 6, 2019 (6 pages).
“Television Studio,” Wikipedia, Published Mar. 8, 2019 and retrieved May 27, 2021 from URL <https://en.wikipedia.org/w/index/php?title=Television_studio&oldid=886710983> (3 pages).
“Understanding Multi-Dimensionality in Vector Space Modeling,” Pythonic Excursions article published Apr. 16, 2019, accessible at URL <https://aegis4048.github.io/understanding_multi-dimensionality_in_vector_space_modeling> (29 pages).
Advantage Video Systems “Jeffrey Stansfield of AVS interviews rep about Air-Hush products at the 2019 NAMM Expo,” YouTube video, available at https://www.youtube.com/watch?v=nWzrM99qk_o, accessed Jan. 17, 2021.
Alley, E. “Professional Autonomy in Video Relay Service Interpreting: Perceptions of American Sign Language-English Interpreters,” (Order No. 10304259). Available from ProQuest Dissertations and Theses Professional. (Year: 2016), 209 pages.
Bishop, Todd “Microsoft patents tech to score meetings using body language, facial expressions, other data,” Article published Nov. 28, 2020 at URL <https://www.geekwire.com/author/todd/> (7 pages).
Brocardo, Marcelo Luiz, et al. “Verifying Online User Identity using Stylometric Analysis for Short Messages,” Journal of Networks, vol. 9, No. 12, Dec. 2014, pp. 3347-3355.
Hughes, K. “Corporate Channels: How American Business and Industry Made Television Useful,” (Order No. 10186420). Available from ProQuest Dissertations and Theses Professional. (Year: 2015), 499 pages.
Jakubowski, Kelly, et al. “Extracting Coarse Body Movements from Video in Music Performance: A Comparison of Automated Computer Vision Techniques with Motion Capture Data,” Front. Digit. Humanit. 2017, 4:9 (8 pages).
Johnston, A. M, et al. “A Mediated Discourse Analysis of Immigration Gatekeeping Interviews,” (Order No. 3093235). Available from ProQuest Dissertations and Theses Professional (Year: 2003), 262 pages.
Lai, Kenneth, et al.“Decision Support for Video-based Detection of Flu Symptoms,” Biometric Technologies Laboratory, Department of Electrical and Computer Engineering, University of Calgary, Canada, Aug. 24, 2020 available at URL <https://ucalgary.ca/labs/biometric-technologies/publications> (8 pages).
Liu, Weihua, et al. “RGBD Video Based Human Hand Trajectory Tracking and Gesture Recognition System,” Mathematical Problems in Engineering vol. 2015, article ID 863732 (16 pages).
Luenendonk, Martin “The Secrets to Interviewing for a Role That's Slightly Out of Reach,” Cleverism Article available at URL <https://www.cleverism.com/interviewing-for-a-role-thats-slightly-out-of-reach/> last updated Sep. 25, 2019 (13 pages).
Pentland, S. J. “Human-Analytics in Information Systems Research and Applications in Personnel Selection,” (Order No. 10829600). Available from ProQuest Dissertations and Theses Professional. (Year: 2018), 158 pages.
Ramanarayanan, Vikram, et al. “Evaluating Speech, Face, Emotion and Body Movement Time-series Features for Automated Multimodal Presentation Scoring,” In Proceedings of the 2015 ACM on (ICMI 2015). Association for Computing Machinery, New York, NY, USA, 23-30 (8 pages).
Randhavane, Tanmay, et al. “Identifying Emotions from Walking Using Affective and Deep Features,” Jan. 9, 2020 Article available at Cornell University website URL <https://arxiv.org/abs/1906.11884v4> (15 pages).
Swanepoel, De Wet, et al. “A Systematic Review of Telehealth Applications in Audiology,” Telemedicine and e-Health 16.2 (2010): 181-200 (20 pages).
Wang, Jenny “How to Build a Resume Recommender like the Applicant Tracking System (ATS),” Towards Data Science article published Jun. 25, 2020, accessible at URL <https://towardsdatascience.com/resume-screening-tool-resume-recommendation-engine-in-a-nutshell-53fcf6e6559b> (14 pages).
Yun, Jaeseok, et al. “Human Movement Detection and Identification Using Pyroelectric Infrared Sensors,” Sensors 2014, 14, 8057-8081 (25 pages).
“Non-Final Office Action,” for U.S. Appl. No. 17/396,294 dated Jul. 7, 2022 (57 pages).
“Notice of Allowance,” for U.S. Appl. No. 17/396,294 dated Mar. 17, 2023 (22 pages).
Related Publications (1)
Number Date Country
20230045662 A1 Feb 2023 US
Continuations (1)
Number Date Country
Parent 17396294 Aug 2021 US
Child 17500687 US