Optimizing efficiency and cost of crowd-sourced polling
First Claim
1. A system for optimizing computer-based crowd-sourced polling, comprising:
- a processor; and
a memory comprising instructions that, when executed by the processor, cause the processor to perform a method comprising;
receiving an input query representing a crowd-sourced poll comprising two or more branches, each branch associated with a corresponding set of worker qualifications, the query being formatted as a multi-layer structure;
iteratively reducing the multi-layer structure of the input query to construct a reformulated query, the reformulated query having a reduced complexity relative to the input query;
reducing one or more of expected completion time and expected cost associated with the reformulated query by matching the reformulated query to an optimized execution process selected from a plurality of predefined execution processes;
presenting the reformulated query and matching optimized execution process as an optimized version of the crowd-sourced poll for execution via a computer-based crowd-sourcing backend;
during execution of the optimized version of the crowd-sourced poll, improving poll efficiency by automatically changing the matching optimized execution process to another of the predefined execution processes and dynamically changing the reformulated query to correspond to the automatically changed execution process in response to collected runtime statistics relating to execution of the optimized version of the crowd-sourced poll; and
further during execution, presenting the changed reformulated query and changed matching optimized execution process for continued execution via the computer-based crowd-sourcing backend.
2 Assignments
0 Petitions
Accused Products
Abstract
A “Poll Optimizer” provides automated techniques for performing various combinations of both static and runtime optimizations for crowd-sourced queries including, but not limited to, crowd-sourced opinion-based polls. These optimizations have been observed to improve poll performance by reducing factors such as completion times, monetary costs, and error rates of polls. In various implementations, the Poll Optimizer receives an input query representing a crowd-sourced poll that is formatted as a multi-layer structure (e.g., LINQ-based queries natively supported by .NET languages, JQL-based queries supported by JAVA, etc.). The Poll optimizer then iteratively reduces the multi-layer structure of the input query to construct a reformulated query. This reformulated query is then matched to an optimized execution process selected from a plurality of predefined execution processes. Finally, the reformulated query and matching optimized execution process are provided as an optimized version of the crowd-sourced poll for execution via a computer-based crowd-sourcing backend.
-
Citations
20 Claims
-
1. A system for optimizing computer-based crowd-sourced polling, comprising:
-
a processor; and a memory comprising instructions that, when executed by the processor, cause the processor to perform a method comprising; receiving an input query representing a crowd-sourced poll comprising two or more branches, each branch associated with a corresponding set of worker qualifications, the query being formatted as a multi-layer structure; iteratively reducing the multi-layer structure of the input query to construct a reformulated query, the reformulated query having a reduced complexity relative to the input query; reducing one or more of expected completion time and expected cost associated with the reformulated query by matching the reformulated query to an optimized execution process selected from a plurality of predefined execution processes; presenting the reformulated query and matching optimized execution process as an optimized version of the crowd-sourced poll for execution via a computer-based crowd-sourcing backend; during execution of the optimized version of the crowd-sourced poll, improving poll efficiency by automatically changing the matching optimized execution process to another of the predefined execution processes and dynamically changing the reformulated query to correspond to the automatically changed execution process in response to collected runtime statistics relating to execution of the optimized version of the crowd-sourced poll; and further during execution, presenting the changed reformulated query and changed matching optimized execution process for continued execution via the computer-based crowd-sourcing backend. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented process, comprising:
using a computer to perform process actions for; receiving a crowd-sourced query formatted as a multi-layer structure, the crowd-sourced query comprising two or more branches, each branch associated with a corresponding set of worker qualifications; applying one or more optimizations to the crowd-sourced query to construct a reformulated query, said optimizations serving to reduce a complexity of the crowd-sourced query; reducing one or more of expected completion time and expected cost associated with the reformulated query by matching the reformulated query to an optimized execution process; presenting the reformulated query and matching optimized execution process as an optimized version of the crowd-sourced query for execution via a computer-based crowd-sourcing backend; during execution of the optimized version of the crowd-sourced query, improving query efficiency by automatically changing the matching optimized execution process to a different optimized execution processes and dynamically changing the reformulated query to correspond to the automatically changed execution process in response to collected runtime statistics relating to execution of the optimized version of the crowd-sourced query; and further during execution, presenting the changed reformulated query and changed matching optimized execution process for continued execution via the computer-based crowd-sourcing backend. - View Dependent Claims (13, 14, 15, 16, 17)
-
18. A cloud-based crowd-sourced query system, comprising:
-
a general purpose computing device; and a computer program comprising program modules executable by the computing device, wherein the computing device is directed by the program modules of the computer program to; receive a crowd-sourced query comprising two or more branches, each branch associated with a corresponding set of worker qualifications; apply one or more automated optimizations to the crowd-sourced query to construct a reformulated query, the reformulated query having a reduced complexity relative to the crowd-sourced query; reduce one or more of expected completion time and expected cost associated with the reformulated query by associating the reformulated query with a matching optimized execution process selected from a plurality of predefined execution processes; provide the reformulated query and matching optimized execution process as an optimized version of the crowd-sourced query for execution via a cloud-based crowd-sourcing backend; during execution of the optimized version of the crowd-sourced query, improve query efficiency by automatically changing the matching optimized execution process to a different one of the predefined execution processes and dynamically changing the reformulated query to correspond to the changed execution process in response to collected runtime statistics relating to execution of the optimized version of the crowd-sourced query; and further during execution, presenting the changed reformulated query and changed matching optimized execution process for continued execution via the cloud-based crowd-sourcing backend. - View Dependent Claims (19, 20)
-
Specification