IP Library Granted Patent US 10,817,482
Granted Patent B2
US 10,817,482 · App. 14/214,213 · Granted Oct 27, 2020

Apparatus, systems, and methods for crowdsourcing domain specific intelligence

Inventors: Jeffrey Su (Los Angeles, CA); Boris Shimanovsky (Los Angeles, CA)
Assignee: FACTUAL INC.
G06F16/21G05B13/0265G06F16/23G06F16/235G06F16/2379G06F16/2386G06F16/2477G06F16/24564G06F16/282G06F16/285G06F16/29G06F16/313G06F16/35G06F16/951G06N5/022G06N20/00G06Q10/101G06Q30/0261G06Q30/0282G06Q50/01H04L41/14H04W4/02H04W4/021H04W4/025H04W4/029H04W4/50H04W8/08H04W8/16H04W8/18H04W16/24H04W64/00H04W64/003H04W76/38H04W88/02G06F16/337H04W16/00H04W16/30H04W16/32H04W88/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,817,482
App. No.
14/214,213
Granted
Oct 27, 2020
Kind
B2
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.

Claims (39)

1. An apparatus configured to crowdsource information for processing domain information received from a data source, the apparatus comprising:

one or more interfaces configured to provide communication with a plurality of computing devices, wherein the plurality of computing devices are operated by a plurality of software developers; and

a processor, in communication with the one or more interfaces, configured to:

receive information from a data source including a web page and the web page containing domain information;

generate a data processing rule (DPR) module request requesting a DPR module, wherein the request contains a specification of the DPR module and the specification is tailored to process the domain information in the web page;

transmit the generated DPR module request to a computing device in the plurality of computing devices operated by a software developer who has knowledge of the domain information in the web page;

receive a DPR module from the computing device, wherein the received DPR module is implemented by the software developer using a programming language according to the specification in the DPR module request, the received DPR module including rules representing the software developer's knowledge of the domain information in the web page and the rules being programmed into the DPR module using the programming language; and

process the received DPR module including the rules representing the software developer's knowledge of the domain information in the web page, wherein processing the received DPR module allows the processor to determine that the domain information in the web page has a particular meaning.

2. The apparatus of claim 1 , wherein the domain information in the web page includes a telephone number of a specific country and the specification of the DPR module request requires that the DPR module to be capable of parsing telephone numbers of the specific country and determining whether the telephone number of the specific country is associated with a landline or a mobile device.

3. The apparatus of claim 2 , wherein, in the step of transmitting the generated DPR module request, the generated DPR module request is transmitted to a computing device in the plurality of computing devices operated by a software developer who is familiar with telephone number formats of the specific country.

4. The apparatus of claim 3 , wherein the received DPR module includes rules representing the software developer's familiarity with the telephone number formats of the specific country and processing the received DPR module allows the processor to determine that the telephone number in the web page is associated with a landline or a mobile device.

5. The apparatus of claim 1 , wherein the processor is further configured to receive a user query from a computing device and process the user query using the DPR module.

6. The apparatus of claim 1 , wherein the DPR module is implemented using Java, Lisp, Clojure, JRuby, Scala, or JavaScript programming language.

7. The apparatus of claim 6 , wherein the processor is further configured to generate additional (DPR) module requests requesting additional DPR modules, wherein each of the additional requests contain a specification of each of the additional DPR modules and the specification is tailored to process the domain information in the web page.

8. The apparatus of claim 7 , wherein the processor is further configured to receive the additional DPR modules from one or more of the plurality of computing devices operated by the software developers.

9. The apparatus of claim 8 , wherein the processor is further configured to group the received DPR modules into packages by type of programing language used to implement the received DPR modules.

10. The apparatus of claim 9 , wherein the received DPR modules are grouped into a first package containing DPR modules all implemented using Clojure, a second package containing DPR modules all implemented using Ruby, and a third package containing DPR modules all implemented using JavaScript.

11. The apparatus of claim 9 , wherein the packages have dependencies with each other and a DPR module in one of the packages includes a subroutine that calls a DPR module in another one of the packages.

12. The apparatus of claim 7 , wherein the processor is further configured to process the additional DPR modules, wherein processing the additional DPR modules allow the processor to determine that the domain information in the web page has other particular meanings.

13. The apparatus of claim 1 , wherein the DPR module is locally tested on the computing device operated by the software developer who has knowledge of the domain information in the web page before the DPR module is received by the processor that the DPR module satisfies the specification of the DPR module request.

14. The apparatus of claim 1 , wherein the processor is further configured to communicate with a resource and the received DPR module is configured to use the resource to provide a context-aware functionality.

15. The apparatus of claim 14 , wherein the processor is further configured to provide an application programming interface (API) to enable an external system to use the received DPR module.

16. The apparatus of claim 15 , wherein the received DPR module is configured to use the resource to determine a physical location of the external system.

17. The apparatus of claim 1 , wherein the processor is configured to generate multiple DPR module requests requesting multiple DPR modules, wherein each of the requests contains a specification for the corresponding DPR module, and the specifications are the same and are tailored to process the same domain information in the web page.

18. The apparatus of claim 17 , transmit the generated multiple DPR module requests to multiple computing devices in the plurality of computing devices operated by software developers who have knowledge of the domain information in the web page, receive multiple DPR modules from the multiple computing devices, and select a DPR module from the received multiple DPR modules that has the lowest computational time.

19. A method of crowdsourcing information for processing domain information received from a data source, the method comprising:

communicating, by one or more interfaces and a processor in communication with the one or more interfaces, with a plurality of computing devices, wherein the plurality of computing devices are operated by a plurality of software developers;

receiving, by the processor via the one or more interfaces, information from a data source including a web page and the web page containing domain information;

generating, by the processor, a data processing rule (DPR) module request requesting a DPR module, wherein the request contains a specification of the DPR module and the specification is tailored to process the domain information in the web page;

transmitting, by the processor via the one or more interfaces, the generated DPR module request to a computing device in the plurality of computing devices operated by a software developer who has knowledge of the domain information in the web page;

receiving, by the processor via the one or more interfaces, a DPR module from the computing device, wherein the received DPR module is implemented by the software developer using a programming language according to the specification in the DPR module request, the received DPR module including rules representing the software developer's knowledge of the domain information in the web page and the rules being programmed into the DPR module using the programming language; and

processing, by the processor, the received DPR module including the rules representing the software developer's knowledge of the domain information in the web page, wherein processing the received DPR module allows the processor to determine that the domain information in the web page has a particular meaning.

20. A non-transitory computer-readable medium having instructions executable by a data processing apparatus including one or more interfaces and a processor in communication with the one or more interfaces to:

communicate, by the processor via the one or more interfaces, with a plurality of computing devices, wherein the plurality of computing devices are operated by a plurality of software developers;

receive, by the processor via the one or more interfaces, information from a data source including a web page and the web page containing domain information;

generate, by the processor, a data processing rule (DPR) module request requesting a DPR module, wherein the request contains a specification of the DPR module and the specification is tailored to process the domain information in the web page;

transmit, by the processor via the one or more interfaces, the generated DPR module request to a computing device in the plurality of computing devices operated by a software developer who has knowledge of the domain information in the web page;

receive, by the processor via the one or more interfaces, a DPR module from the computing device, wherein the received DPR module is implemented by the software developer using a programming language according to the specification in the DPR module request, the received DPR module including rules representing the software developer's knowledge of the domain information in the web page and the rules being programmed into the DPR module using the programming language; and

process, by the processor, the received DPR module including the rules representing the software developer's knowledge of the domain information in the web page, wherein processing the received DPR module allows the processor to determine that the domain information in the web page has a particular meaning.

Assignments (5)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 52575/0270 Recorded Jul 15, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 060669/0462 →
SECURITY INTEREST Recorded Jul 13, 2022
From: FOURSQUARE LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060649/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2022
From: FACTUAL, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 059977/0688 →
SECURITY INTEREST Recorded May 5, 2020
From: FACTUAL INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 052575/0270 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2017
From: SU, JEFFREY; SHIMANOVSKY, BORIS
To: FACTUAL INC.
Reel/Frame 042746/0091 →
Continuity (6)
Provisional Application 61799131 · Mar 15, 2013
Provisional Application 61799846 · Mar 15, 2013
Provisional Application 61799817 · Mar 15, 2013
Provisional Application 61799986 · Mar 15, 2013
Provisional Application 61800036 · Mar 15, 2013
Related Publication 20140279811A1 · Sep 18, 2014