US-12625864-B2 - Apparatus, systems, and methods for crowdsourcing domain specific intelligence
Abstract
The present disclosure provides apparatus, systems, and methods for crowdsourcing domain specific intelligence. The disclosed crowdsourcing mechanism can receive domain specific intelligence as a data processing rule module. For example, a data analytics system can request a crowd of software developers to provide a data processing rule module tailored to process a particular type of information from a particular domain. When the data analytics system receives the data processing rule module from one of the software developers for the particular domain, the data analytics system can use the received data processing rule module to process information associated with the particular domain.
Inventors
- Jeffrey Su
- Boris SHIMANOVSKY
Assignees
- FOURSQUARE LABS, INC.
Dates
- Publication Date
- 20260512
- Application Date
- 20201026
Claims (20)
- 1 . An apparatus configured to crowdsource domain specific intelligence from a plurality of persons, the apparatus comprising: one or more interfaces configured to provide communication with a first plurality of computing devices and a second plurality of computing devices, wherein one of the first plurality of computing devices is operated by one of the plurality of persons having knowledge of a particular domain; and a processor, in communication with the one or more interfaces, and configured to run one or more modules that are operable to cause the apparatus to: receive a plurality of data processing rule (DPR) modules from the first plurality of computing devices, wherein the plurality of DPR modules are implemented using two or more programming languages, and wherein a DPR module of the plurality of DPR modules is tailored for use in a particular domain, and wherein the DPR module is a computer executable program created using a programming language and is associated with one of the plurality of persons based on the knowledge of the particular domain; and group a subset of the plurality of DPR modules into a first DPR module package to provide the knowledge of the particular domain as a package, wherein the subset of the plurality of DPR modules are grouped into one or more packages based upon a common programming language used to implement two or more individual DPR modules in the subset of the plurality of the DPR modules.
- 2 . The apparatus of claim 1 , wherein the modules are operable to cause the apparatus to send a DPR module request to the second plurality of computing devices, requesting the second plurality of computing devices to provide a DPR module for a predetermined domain, wherein the DPR module request includes information indicative of functional requirements of the requested DPR module.
- 3 . The apparatus of claim 2 , wherein the modules are operable to cause the apparatus to receive the requested DPR module from one of the second plurality of computing devices and to determine that the received DPR module satisfies the functional requirements.
- 4 . The apparatus of claim 2 , wherein the modules are operable to cause the apparatus to receive the requested DPR module from one of the second plurality of computing devices, wherein the one of the second plurality of computing devices is configured to determine that the DPR module received by the apparatus satisfies the functional requirements.
- 5 . The apparatus of claim 1 , wherein the plurality of DPR modules is configured to operate on a virtual machine.
- 6 . The apparatus of claim 1 , wherein the plurality of DPR modules is configured to operate on a system capable of running machine code compiled from two or more languages.
- 7 . The apparatus of claim 1 , wherein the modules are operable to cause the apparatus to send the first DPR module package to a server in communication with the apparatus for use at the server.
- 8 . The apparatus of claim 7 , wherein one of the plurality of DPR modules is configured to call a DPR module in a second DPR module package, and the modules are operable to cause the apparatus to maintain a dependency between the first DPR module package and the second DPR module package.
- 9 . The apparatus of claim 8 , wherein the modules are operable to cause the apparatus to send, in addition to the first DPR module package, the second DPR module package to the server.
- 10 . The apparatus of claim 1 , wherein the modules are operable to cause the apparatus to maintain a resource, and one of the plurality of DPR modules is configured to use the resource to provide a context-aware functionality.
- 11 . The apparatus of claim 1 , wherein the modules are operable to cause the apparatus to provide an application programming interface (API) to enable an external system to use one of the plurality of DPR modules maintained by the apparatus.
- 12 . A method of crowdsourcing domain specific intelligence from a plurality of persons, the method comprising: providing, by one or more interfaces in an apparatus, communication with a first plurality of computing devices and a second plurality of computing devices, wherein one of the first plurality of computing devices is configured to be operated by one of the plurality of persons having knowledge of a particular domain; receiving, at a data processing rule crowdsourcing (DPRC) module in the apparatus, a plurality of data processing rule (DPR) modules from the first plurality of computing devices, wherein the plurality of DPR modules are implemented using two or more programming languages, and wherein a DPR module of the plurality of DPR modules is tailored for use in a particular domain, and wherein the DPR module is a computer executable program created using a programming language and is associated with one of the plurality of persons based on the knowledge of the particular domain; and grouping a subset of the plurality of DPR modules into a first DPR module package to provide the knowledge of the particular domain as a package, wherein the subset of the plurality of DPR modules are grouped into one or more packages based upon a common programming language used to implement two or more individual DPR modules in the subset of the DPR modules.
- 13 . The method of claim 12 , further comprising sending, by the DPRC module, a DPR module request to the second plurality of computing devices, requesting the second plurality of computing devices to provide a DPR module for a predetermined domain, wherein the DPR module request includes information indicative of functional requirements of the requested DPR module.
- 14 . The method of claim 13 , further comprising receiving, by the DPRC module, the requested DPR module from one of the second plurality of computing devices, wherein the one of the second plurality of computing devices is configured to determine that the DPR module received by the DPRC module satisfies the functional requirements.
- 15 . The method of claim 12 , wherein one of the plurality of DPR modules is configured to call a DPR module in a second DPR module package, and the method further comprises maintaining a dependency between the first DPR module package and the second DPR module package.
- 16 . The method of claim 12 , further comprising providing an application programming interface (API) to enable an external system to use one of the plurality of DPR modules maintained by the apparatus.
- 17 . A non-transitory computer readable medium having executable instructions operable to cause a data processing apparatus to: provide, by one or more interfaces in the apparatus, communication with a first plurality of computing devices and a second plurality of computing devices, wherein one of the first plurality of computing devices is configured to be operated by one of the plurality of persons having knowledge of a particular domain; receive, at a data processing rule crowdsourcing (DPRC) module in the apparatus, a plurality of data processing rule (DPR) modules from the first plurality of computing devices, wherein a DPR module of the plurality of DPR modules is tailored for use in a particular domain, and wherein the DPR module is a computer executable program created using a programming language and is associated with one of the plurality of persons based on the knowledge of the particular domain; and group the plurality of DPR modules into a first DPR module package to provide the knowledge of the particular domain as a package, wherein the plurality of DPR modules are grouped into one or more packages based upon a common programming language used to implement the DPR modules.
- 18 . The non-transitory computer readable medium of claim 17 , wherein the executable instructions are further operable to cause the data processing apparatus to send, by the DPRC module, a DPR module request to the second plurality of computing devices, requesting the second plurality of computing devices to provide a DPR module for a predetermined domain, wherein the DPR module request includes information indicative of functional requirements of the requested DPR module.
- 19 . The non-transitory computer readable medium of claim 17 , wherein the executable instructions are further operable to cause the data processing apparatus to receive, by the DPRC module, the requested DPR module from one of the second plurality of computing devices, wherein the one of the second plurality of computing devices is configured to determine that the DPR module received by the DPRC module satisfies the functional requirements.
- 20 . The non-transitory computer readable medium of claim 17 , wherein the executable instructions are further operable to cause the data processing apparatus to provide an application programming interface (API) to enable an external system to use one of the plurality of DPR modules maintained by the apparatus.
Description
CROSS REFERENCE TO RELATED APPLICATIONS This application claims benefit of the earlier filing date, under 35 U.S.C. § 119(c), of: U.S. Provisional Application No. 61/799,986, filed on Mar. 15, 2013, entitled “SYSTEM FOR ANALYZING AND USING LOCATION BASED BEHAVIOR”;U.S. Provisional Application No. 61/800,036, filed on Mar. 15, 2013, entitled “GEOGRAPHIC LOCATION DESCRIPTOR AND LINKER”;U.S. Provisional Application No. 61/799,131, filed on Mar. 15, 2013, entitled “SYSTEM AND METHOD FOR CROWD SOURCING DOMAIN SPECIFIC INTELLIGENCE”;U.S. Provisional Application No. 61/799,846, filed Mar. 15, 2013, entitled “SYSTEM WITH BATCH AND REAL TIME DATA PROCESSING”; andU.S. Provisional Application No. 61/799,817, filed on Mar. 15, 2013, entitled “SYSTEM FOR ASSIGNING SCORES TO LOCATION ENTITIES”. This application is also related to: U.S. patent application Ser. No. 14/214,208, filed on Mar. 14, 2014, entitled “APPARATUS, SYSTEMS, AND METHODS FOR ANALYZING MOVEMENTS OF TARGET ENTITIES,”;U.S. patent application Ser. No. 14/214,296, filed Mar. 14, 2014, entitled “APPARATUS, SYSTEMS, AND METHODS FOR PROVIDING LOCATION INFORMATION,”;U.S. patent application Ser. No. 14/214,219, filed on Mar. 14, 2014, entitled “APPARATUS, SYSTEMS, AND METHODS FOR BATCH AND REALTIME DATA PROCESSING,”;U.S. patent application Ser. No. 14/214,309, filed on Mar. 14, 2014, entitled “APPARATUS, SYSTEMS, AND METHODS FOR ANALYZING CHARACTERISTICS OF ENTITIES OF INTEREST,”; andU.S. patent application Ser. No. 14/214,231, filed on Mar. 14, 2014, entitled “APPARATUS, SYSTEMS, AND METHODS FOR GROUPING DATA RECORDS,” The entire content of each of the above-referenced applications (including both the provisional applications and the non-provisional applications) is herein incorporated by reference. FIELD OF THE INVENTION The present disclosure generally relates to systems and methods for crowdsourcing domain specific intelligence. BACKGROUND A large amount of information is created every day. Social networking sites and blogging sites receive millions of new postings every day, and new webpages are constantly being created to provide information about a person, a landmark, a business, or any other entities that people are interested in. Furthermore, the information is usually not available from a single repository, but is usually distributed across millions of repositories, often located around the world. Because of the sheer volume and the distributed nature of information, it is difficult for people to consume information efficiently. To address this issue, data analytics systems can (1) gather the information using a crawler and (2) create a meaningful summary of the information so that the information can be consumed easily. To create such a meaningful summary, the data analytics system often pre-processes (or cleans) the information to detect (e.g. find or anchor) and retrieve (e.g., extract) relevant data from the gathered information. To this end, the data analytics system can use a data processing module to search for data having known formats or structures. Unfortunately, data in certain domains can be formatted or structured in a non-conventional manner. Therefore, the data processing module has to be tailored to the particular domain using domain specific intelligence so that the data processing module can detect relevant data from the large amount of information. Unfortunately, a single software programmer may not have the domain specific intelligence nor the capacity to adequately tailor the data processing module to all domains of interest. Therefore, there is a need for an effective mechanism for providing domain specific intelligence to the data processing module. SUMMARY In general, in an aspect, embodiments of the disclosed subject matter can include an apparatus. The apparatus is configured to crowdsource domain specific intelligence from a plurality of persons. The apparatus can include one or more interfaces configured to provide communication with a first plurality of computing devices and a second plurality of computing devices, wherein one of the first plurality of computing devices is operated by one of the plurality of persons having knowledge of a particular domain. The apparatus can also include a processor, in communication with the one or more interfaces, and configured to run one or more modules. The one or more module are operable to cause the apparatus to receive a plurality of data processing rule (DPR) modules from the first plurality of computing devices, wherein one of the plurality of DPR modules is tailored for use in a particular domain, and the one of the plurality of DPR modules is provided by one of the plurality of persons based on the knowledge of the particular domain; and group the plurality of DPR modules into a first DPR module package to provide the knowledge of the particular domain as a package. In general, in an aspect, embodiments of the disclosed subject matter can include a method for crowdsourcing domain