Query pruning using interior rectangles in an R-tree index
First Claim
1. A computer implemented method for determining relationships among objects represented in a database, the method comprising the steps of:
- receiving a query including at least a first geometry and a desired relationship between the first geometry and a second geometry;
providing the query to a primary filter operable to;
define at least one interior rectangle that lies entirely within the first geometry;
define a minimum bounding rectangle for the first geometry;
define a minimum bounding rectangle for the second geometry; and
compare the minimum bounding rectangle for the first geometry with the minimum bounding rectangle for the second geometry to determine if the second geometry fulfills a primary filter condition comprising an interaction of the first geometry and the second geometry;
if the second geometry fulfills the primary filter condition, providing the first geometry and the second geometry to an intermediate filter operable to;
determine whether the second geometry fulfills an intermediate filter condition comprising an interaction of the at least one interior rectangle within the first geometry and the minimum bounding rectangle for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry;
if the second geometry is confirmed as fulfilling the intermediate filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the intermediate filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter operable to;
determine whether the second geometry fulfills a secondary filter condition by comparing the second geometry with the first geometry; and
if the second geometry fulfills the secondary filter condition, including the second geometry in the final result set of objects that satisfy the desired relationship.
2 Assignments
0 Petitions
Accused Products
Abstract
To determine relationships among objects represented in a database at least one interior rectangle lying entirely within a first geometric shape is define. A minimum bounding area for the first geometry and a minimum bounding area for a second geometry are defined and compared with one another to determine if the second geometry fulfills a primary filter condition of an interaction between the first and second geometries. Based on the fulfillment of the primary condition by the second geometry, it is determined whether an intermediate filter condition of interaction between the first and second geometries is fulfilled by analyzing the distribution of the second geometry with respect to at least one interior rectangle within the first geometry. It is determined whether the second geometry fulfills a secondary filter condition by comparing the second geometry with the first geometry if the second geometry fulfills the primary filter condition.
97 Citations
55 Claims
-
1. A computer implemented method for determining relationships among objects represented in a database, the method comprising the steps of:
-
receiving a query including at least a first geometry and a desired relationship between the first geometry and a second geometry;
providing the query to a primary filter operable to;
define at least one interior rectangle that lies entirely within the first geometry;
define a minimum bounding rectangle for the first geometry;
define a minimum bounding rectangle for the second geometry; and
compare the minimum bounding rectangle for the first geometry with the minimum bounding rectangle for the second geometry to determine if the second geometry fulfills a primary filter condition comprising an interaction of the first geometry and the second geometry;
if the second geometry fulfills the primary filter condition, providing the first geometry and the second geometry to an intermediate filter operable to;
determine whether the second geometry fulfills an intermediate filter condition comprising an interaction of the at least one interior rectangle within the first geometry and the minimum bounding rectangle for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry;
if the second geometry is confirmed as fulfilling the intermediate filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the intermediate filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter operable to;
determine whether the second geometry fulfills a secondary filter condition by comparing the second geometry with the first geometry; and
if the second geometry fulfills the secondary filter condition, including the second geometry in the final result set of objects that satisfy the desired relationship.
-
-
2. A computer program product for performing a process of determining relationships among objects represented in a database, comprising:
-
a computer readable medium; and
computer program instructions, recorded on the computer readable medium, executable by a processor, for performing the steps of;
receiving a query including at least a first geometry and a desired relationship between the first geometry and a second geometry;
providing the query to a primary filter operable to;
define at least one interior rectangle that lies entirely within the first geometry;
define a minimum bounding rectangle for the first geometry;
define a minimum bounding rectangle for the second geometry; and
compare the minimum bounding rectangle for the first geometry with the minimum bounding rectangle for the second geometry to determine if the second geometry fulfills a primary filter condition comprising an interaction of the first geometry and the second geometry;
if the second geometry fulfills the primary filter condition, providing the first geometry and the second geometry to an intermediate filter operable to;
determine whether the second geometry fulfills an intermediate filter condition comprising an interaction of the at least one interior rectangle within the first geometry and the minimum bounding rectangle for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry;
if the second geometry is confirmed as fulfilling the intermediate filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the intermediate filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter operable to;
determine whether the second geometry fulfills a secondary filter condition by comparing the second geometry with the first geometry; and
if the second geometry fulfills the secondary filter condition, including the second geometry in the final result set of objects that satisfy the desired relationship.
-
-
3. A system for performing a process of determining relationships among objects represented in a database, comprising:
-
a processor operable to execute computer program instructions; and
a memory operable to store computer program instructions executable by the processor, for performing the steps of;
receiving a query including at least a first geometry and a desired relationship between the first geometry and a second geometry;
providing the query to a primary filter operable to;
define at least one interior rectangle that lies entirely within the first geometry;
define a minimum bounding rectangle for the first geometry;
define a minimum bounding rectangle for the second geometry; and
compare the minimum bounding rectangle for the first geometry with the minimum bounding rectangle for the second geometry to determine if the second geometry fulfills a primary filter condition comprising an interaction of the first geometry and the second geometry;
if the second geometry fulfills the primary filter condition, providing the first geometry and the second geometry to an intermediate filter operable to;
determine whether the second geometry fulfills an intermediate filter condition comprising an interaction of the at least one interior rectangle within the first geometry and the minimum bounding rectangle for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry;
if the second geometry is confirmed as fulfilling the intermediate filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the intermediate filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter operable to;
determine whether the second geometry fulfills a secondary filter condition by comparing the second geometry with the first geometry; and
if the second geometry fulfills the secondary filter condition, including the second geometry in the final result set of objects that satisfy the desired relationship.
-
-
4. A computer implemented method for determining relationships among objects represented in a database, the method comprising the steps of:
-
receiving a query including at least a first geometry and a desired relationship between the first geometry and a second geometry;
providing the query to a primary filter operable to;
define at least one interior geometric shape that lies entirely within the first geometry;
define an approximation of the first geometry;
define an approximation of the second geometry; and
compare the approximation of the first geometry with the approximation of the second geometry to determine if the second geometry fulfills a primary filter condition comprising an interaction of the first geometry and the second geometry;
if the second geometry fulfills the primary filter condition, providing the first geometry and the second geometry to an intermediate filter operable to;
determine whether the second geometry fulfills an intermediate filter condition comprising an interaction of the first geometry and the second geometry by analyzing the distribution of the approximation of the second geometry with respect to the at least one interior geometric shape within the first geometry;
if the second geometry is confirmed as fulfilling the intermediate filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the intermediate filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter operable to;
determine whether the second geometry fulfills a secondary filter condition by comparing the second geometry with the first geometry; and
if the second geometry fulfills the secondary filter condition, including the second geometry in the final result set of objects that satisfy the desired relationship.
-
-
5. A system for performing a process of determining relationships among objects represented in a database, comprising:
-
a processor operable to execute computer program instructions; and
a memory operable to store computer program instructions executable by the processor, for performing the steps of;
receiving a query including at least a desired relationship between a first geometry and a second geometry; and
providing the first geometry and the second geometry to a filter; and
the filter operable to;
determine whether the second geometry fulfills a filter condition comprising an interaction of at least one interior rectangle defined for the first geometry that lies entirely within the first geometry and a minimum bounding rectangle defined for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry;
include the second geometry in a final result set of objects that satisfy the desired relationship if the second geometry is confirmed as fulfilling the filter condition;
exclude the second geometry from the final result set the satisfy the desired relationship if the second geometry is confirmed as deviating from the filter condition; and
provide the first geometry and the second geometry to a secondary filter if the second geometry cannot be confirmed as fulfilling, or deviating from, the filter condition.
-
-
6. A computer program product for performing a process of determining relationships among objects represented in a database, comprising:
-
a computer readable medium; and
computer program instructions, recorded on the computer readable medium, executable by a processor, for performing the steps of;
receiving a query including at least a desired relationship between a first geometry and a second geometry; and
providing the first geometry and the second geometry to a filter; and
the filter operable to;
determine whether the second geometry fulfills a filter condition comprising an interaction of at least one interior rectangle defined for the first geometry that lies entirely within the first geometry and a minimum bounding rectangle defined for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry;
include the second geometry in a final result set of objects that satisfy the desired relationship if the second geometry is confirmed as fulfilling the filter condition;
exclude the second geometry from the final result set the satisfy the desired relationship if the second geometry is confirmed as deviating from the filter condition; and
provide the first geometry and the second geometry to a secondary filter if the second geometry cannot be confirmed as fulfilling, or deviating from, the filter condition.
-
-
7. A computer implemented method for determining relationships among objects represented in a database, the method comprising the steps of:
-
receiving a query including at least a desired relationship between a first geometry and a second geometry; and
providing the first geometry and the second geometry to a filter operable to;
determine whether the second geometry fulfills a filter condition comprising an interaction of at least one interior rectangle defined for the first geometry that lies entirely within the first geometry and a minimum bounding rectangle defined for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry; and
if the second geometry is confirmed as fulfilling the filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer implemented method for determining relationships among objects represented in a database, the method comprising the steps of:
-
receiving a query including at least a desired relationship between a first geometry and a second geometry;
providing the first geometry and the second geometry to a filter operable to;
determine whether the second geometry fulfills a filter condition comprising an interaction of at least one interior rectangle defined for the first geometry that lies entirely within the first geometry and a minimum bounding rectangle defined for the second geometry by analyzing the distribution of the minimum bounding rectangle for the second geometry with respect to the at least one interior rectangle within the first geometry; and
if the second geometry is confirmed as fulfilling the filter condition, including the second geometry in a final result set of objects that satisfy the desired relationship;
if the second geometry is confirmed as deviating from the filter condition, excluding the second geometry from the final result set that satisfy the desired relationship;
otherwise, providing the first geometry and the second geometry to a secondary filter. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
Specification