8495055

Method and Computer Program for Evaluating Database Queries Involving Relational and Hierarchical Data

PublishedJuly 23, 2013
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
19 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for evaluating a conjunctive query, the method executed as a computer program by a general purpose computer, the conjunctive query comprising an at least one first predicate having variables; wherein the at least one first predicate is a relational predicate that is evaluated with a first engine using a relational database, and an at least one second predicate having variables, wherein the at least one second predicate is an external predicate that is evaluated using a second engine without using a relational database; the method comprising the steps of: defining the relational predicates as treated and defining the external predicates as non-treated; defining a variable (X) as distinguished if it appears as an argument in a treated predicate and it is a variable of an expression of a non-treated predicate; selecting a distinguished variable (X) from the conjunctive query, in absence of a distinguished variable by definition, choosing one of the variables in a non-treated predicate to serve as distinguished; forming a binding column (Bx) that contains a superset of values that are possible values of the selected distinguished variable (X) that fit limitations imposed by being an argument of the treated predicates; wherein said binding column (Bx) includes all possible values if it was chosen to serve as distinguished; evaluating the non-treated predicates having the selected distinguished variable (X) as a variable using the possible values from the binding column (Bx); updating the binding column (Bx) to be limited to the possible values fitting the evaluated non-treated predicates; marking the evaluated non-treated predicates as treated; repeating the steps for additionally chosen or selected distinguished variables, until resolving the query.

2

2. The method of claim 1 wherein the first engine performs an at least one join operation, or an at least one column intersection operation, or handles an at least one relational untreated predicate graph.

3

3. The method of claim 1 wherein the external predicate is an XML predicate and the external engine is an XPath engine.

4

4. The method of claim 1 wherein the relational predicate is selected from a group consisting of: a logic predicate having a relational symbol, a relational algebraic expression, an SQL statement, a value predicate, and an expression evaluable against a relational database.

5

5. The method of claim 1 wherein the external predicate is selected from a group consisting of: a predicate against an XML file expressed in an XML query language, and a predicate against a semantic web database expressed in a semantic web query language.

6

6. The method of claim 1 wherein said external predicate comprises a hierarchical structure.

7

7. The method of claim 6 wherein the hierarchical structure is an isomorphic hierarchical structure.

8

8. The method of claim 1 wherein the first engine or the second engine are activated ad-hoc for evaluating the conjunctive query, or by a system providing the conjunctive query.

9

9. The method of claim 1 wherein the conjunctive query is part of a computer executable program.

10

10. The method of claim 9 wherein the computer executable program is an XpathL program or a Datalog program with an at least one external Xpath predicate.

11

11. The method of claim 9 wherein the computer executable program is a recursive program.

12

12. An apparatus having a processor and program code for evaluating a conjunctive query, the conjunctive query comprising an at least one first predicate having variables; wherein the at least one first predicate is a relational predicate that is evaluated with a first engine using a relational database, and an at least one second predicate having variables, wherein the at least one second predicate is an external predicate that is evaluated using a second engine without using a relational database, the apparatus comprising: a processor; a database interface for interfacing with an at least one relational database; a relation loader for creating an at least one relation and loading through the database interface an at least one value into the at least one relation from the at least one relational database; a parser for parsing the conjunctive query; an external processor for evaluating the at least one external predicate; and an evaluation manager for evaluating an at least one result returned from the external processor or an at least one result returned from the database interface; and wherein the processor of the apparatus is programmed to perform the following steps to evaluate the conjunctive query: defining the relational predicates as treated and defining the external predicates as non-treated; defining a variable (X) as distinguished if it appears as an argument in a treated predicate and it is a variable of an expression of a non-treated predicate; selecting a distinguished variable (X) from the conjunctive query, in absence of a distinguished variable by definition, choosing one of the variables in a non-treated predicate to serve as distinguished; forming a binding column (Bx) that contains a superset of values that are possible values of the selected distinguished variable (X) that fit limitations imposed by being an argument of the treated predicates; wherein said binding column (Bx) includes all possible values if it was chosen to serve as distinguished; evaluating the non-treated predicates having the selected distinguished variable (X) as a variable using the possible values from the binding column (Bx); updating the binding column (Bx) to be limited to the possible values fitting the evaluated non-treated predicates; marking the evaluated non-treated predicates as treated; repeating the steps for additionally chosen or selected distinguished variables, until resolving the query.

13

13. The apparatus of claim 12 wherein the evaluation manager further comprises a rule evaluator for evaluating an at least one rule or an SQL generator for creating an at least one auxiliary query.

14

14. The method of claim 1 , wherein the binding column (Bx) is updated after evaluating each of the non-treated predicates.

15

15. The method of claim 1 , wherein the all the non-treated predicates are evaluated before updating the binding column (Bx).

16

16. The method of claim 1 , wherein the variable serving as distinguished appears as a first argument or a second argument of non-treated predicates.

17

17. The method of claim 1 , wherein choosing a variable to serve as distinguished is performed by random selection.

18

18. The method of claim 1 , wherein choosing a variable to serve as distinguished is based on predicate data distribution.

19

19. A non-transitory computer readable storage medium containing a set of instructions for a general purpose computer, to perform the method of claim 1 .

Patent Metadata

Filing Date

Unknown

Publication Date

July 23, 2013

Inventors

Oded Shmueli
Royi Ronen

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “METHOD AND COMPUTER PROGRAM FOR EVALUATING DATABASE QUERIES INVOLVING RELATIONAL AND HIERARCHICAL DATA” (8495055). https://patentable.app/patents/8495055

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

METHOD AND COMPUTER PROGRAM FOR EVALUATING DATABASE QUERIES INVOLVING RELATIONAL AND HIERARCHICAL DATA — Oded Shmueli | Patentable