Legal claims defining the scope of protection, as filed with the USPTO.
1. A system, comprising: a processor; and a memory, accessible by the processor, the memory storing instructions that, when executed by the processor, cause the processor to perform actions comprising: receiving a composite join query comprising: one or more unitary queries; one or more Boolean operations applied to the one or more unitary queries; an identification of a plurality of join tables of a plurality of relational databases; and an identification of a join field; generating a Boolean tree based on the composite join query; traversing the generated Boolean tree to generate a plurality of matching join key sets, wherein each respective matching join key set of the plurality of matching join key sets comprises one or more join keys of one or more respective matching documents from the plurality of join tables for a respective query node of the Boolean tree; filtering the matching documents to remove matching documents with join keys that do not match the one or more unitary queries of the composite join query; and providing an identification of the filtered matching documents as results of the composite join query.
2. The system of claim 1 , wherein generating the Boolean tree based on the composite join query comprises: parsing the composite join query; adding a new Boolean node to the Boolean tree for each of the one or more Boolean operations of the composite join query; and adding a new query node to the Boolean tree for each of the one or more unitary queries of the composite join query.
3. The system of claim 2 , wherein traversing the generated Boolean tree to generate the plurality of matching join key sets comprises: for each query node of the generated Boolean tree: executing a query, via a search engine, on the plurality of join tables for each query node of the generated Boolean tree; and adding, to the respective matching join key set, a join key of each matching document of the plurality of join tables that matches the query of the query node; and for each Boolean node of the generated tree, performing the respective Boolean operation on the join keys of the respective join key set.
4. The system of claim 3 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises, for each of one or more Boolean AND nodes of the generated tree, performing an intersection of the respective join key sets from one or more child nodes of the respective Boolean AND node.
5. The system of claim 3 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises, for each of one or more Boolean OR nodes of the generated tree, performing a union of the respective join key sets from one or more child nodes of the respective Boolean OR node.
6. The system of claim 3 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises, for each of one or more Boolean NOT nodes of the generated tree, performing an inverse of the respective join key sets from one or more child nodes of the respective Boolean NOT node.
7. The system of claim 1 , wherein the identification of the plurality of join tables comprises an inner join table query, and wherein the actions comprise generating a matching inner join key set, comprising: executing the inner join table query, via a search engine, on the plurality of join tables; and adding, to the matching inner join key set, one or more inner join keys of each matching document of the plurality of join tables that matches the inner join table query.
8. The system of claim 7 , wherein the actions comprise performing an intersection between the plurality of matching join key sets and the matching inner join key set.
9. The system of claim 8 , the actions comprising filtering the matching documents to remove matching documents with join keys that do not match the intersected plurality of matching join key sets and the matching inner join key set.
10. A method, comprising: receiving a composite join query comprising: one or more unitary queries; one or more Boolean operations applied to the one or more unitary queries; an identification of a plurality of join tables of a plurality of relational databases; and an identification of a join field; generating a Boolean tree based on the composite join query, comprising: parsing the composite join query; adding a new Boolean node to the Boolean tree for each of the one or more Boolean operations of the composite join query; and adding a new query node to the Boolean tree for each of the one or more unitary queries of the composite join query; traversing the generated Boolean tree in post order to generate a plurality of matching join key sets, wherein each respective matching join key set of the plurality of matching join key sets comprises one or more join keys of one or more respective matching documents from the plurality of join tables for a respective query node of the Boolean tree; filtering the matching documents to remove matching documents with join keys that do not match the one or more unitary queries of the composite join query; and providing an identification of the filtered matching documents as results of the composite join query.
11. The method of claim 10 , wherein traversing the generated Boolean tree to generate the plurality of matching join key sets comprises: for each query node of the generated Boolean tree: executing a query, via a search engine, on the plurality of join tables for each query node of the generated Boolean tree; and adding, to the respective matching join key set, a join key of each matching document of the plurality of join tables that matches the query of the query node; and for each Boolean node of the generated tree, performing the respective Boolean operation on the join keys of the respective join key set.
12. The method of claim 11 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises: performing, for each of one or more Boolean AND nodes of the generated tree, an intersection of the respective join key sets from one or more child nodes of the respective Boolean AND node; performing, for each of one or more Boolean OR nodes of the generated tree, a union of the respective join key sets from one or more child nodes of the respective Boolean OR node; and performing, for each of one or more Boolean NOT nodes of the generated tree, an inverse of the respective join key sets from one or more child nodes of the respective Boolean NOT node.
13. The method of claim 10 , wherein the identification of the plurality of join tables comprises an inner join table query, and wherein the actions comprise generating a matching inner join key set, comprising: executing the inner join table query, via a search engine, on the plurality of join tables; and adding, to the matching inner join key set, one or more inner join keys of each matching document of the plurality of join tables that matches the inner join table query.
14. The method of claim 13 , comprising: performing an intersection between the plurality of matching join key sets and the matching inner join key set; and filtering the matching documents to remove matching documents with join keys that do not match the intersected plurality of matching join key sets and the matching inner join key set.
15. A non-transitory computer readable medium comprising instructions that, when executed by a processor, causes the processor to perform actions comprising: receiving a composite join query comprising: one or more unitary queries; one or more Boolean operations applied to the one or more unitary queries; an inner join table query comprising an identification of a plurality of join tables of a plurality of relational databases; and an identification of a join field; generating a Boolean tree based on the composite join query; traversing the generated Boolean tree to generate a plurality of matching join key sets, wherein each respective matching join key set of the plurality of matching join key sets comprises one or more join keys of one or more respective matching documents from the plurality of join tables for a respective query node of the Boolean tree; generating a matching inner join key set, comprising: executing the inner join table query, via a search engine, on the plurality of join tables; and adding, to the matching inner join key set, one or more inner join keys of each matching document of the plurality of join tables that matches the inner join table query; performing an intersection between the plurality of matching join key sets and the matching inner join key set; filtering the matching documents to remove matching documents with join keys that do not match intersected plurality of matching join key sets and the matching inner join key set; and providing an identification of the filtered matching documents as results of the composite join query.
16. The non-transitory computer readable medium of claim 15 , wherein generating the Boolean tree based on the composite join query comprises: parsing the composite join query; adding a new Boolean node to the Boolean tree for each of the one or more Boolean operations of the composite join query; and adding a new query node to the Boolean tree for each of the one or more unitary queries of the composite join query.
17. The non-transitory computer readable medium of claim 16 , wherein traversing the generated Boolean tree to generate the plurality of matching join key sets comprises: for each query node of the generated Boolean tree: executing a query, via the search engine, on the plurality of join tables for each query node of the generated Boolean tree; and adding, to the respective matching join key set, a join key of each matching document of the plurality of join tables that matches the query of the query node; and for each Boolean node of the generated tree, performing the respective Boolean operation on the join keys of the respective join key set.
18. The non-transitory computer readable medium of claim 15 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises, for each of one or more Boolean AND nodes of the generated tree, performing an intersection of the respective join key sets from one or more child nodes of the respective Boolean AND node.
19. The non-transitory computer readable medium of claim 15 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises, for each of one or more Boolean OR nodes of the generated tree, performing a union of the respective join key sets from one or more child nodes of the respective Boolean OR node.
20. The non-transitory computer readable medium of claim 15 , wherein performing the respective Boolean operation on the join keys of the respective join key set comprises, for each of one or more Boolean NOT nodes of the generated tree, performing an inverse of the respective join key sets from one or more child nodes of the respective Boolean NOT node.
Unknown
May 31, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.