Patent US6014614A successfully refreshed from Google Patents.
US6014614A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and mechanism for performing spatial joins
Assignee: Oracle International Corp
•
Filing: 1998-05-29
•
Granted: 2000-01-11
•
Expires: 2018-05-29
Abstract
Abstract A method and mechanism for performing a spatial join between two sets of objects employs a two-pass primary filter. The objects are decomposed into variable-sized cells no larger than a predetermined cell size and stored in respective spatial indexes. The spatial indexes include a code for the variable-size cells of the object and a code for the fixed-size supercell of the variable-size cells. The first pass can be implemented as an equijoin filtering operation using the fixed-size cell codes corresponding to the predetermined cell size, and the second pass as a join operation using the variable-size cell codes at smaller cell sizes.
Inventors
- 👤 John Herring
- 👤 Nipun Agarwal
- 👤 Panagiotis Vretanos
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 21:10
CPC Classifications
G; G06; G06T; G06T17/00; G06T17/005; G06F; G06F16/00; G06F16/20; G06F16/24; G06F16/245; G06F16/2455; G06F16/24553; G06F16/24558; G06F16/2456; G06F16/29; G06F16/50; G06F16/58; G06F16/583; G06F16/5854; G06V; G06V10/00; G06V10/40; G06V10/50; G06V30/00; G06V30/40; G06V30/42; G06V30/422
Claims Analysis
Total Claims: 36
Claim 1
Independent Claim
197 words
A method of determining which of a plurality of first objects interacts within a space with which of a plurality of second objects according to a spatial predicate, said method comprising the computer-implemented steps of: decomposing the plurality of first objects and the plurality of second objects into respective sets of one or more cells, wherein each cell of the respective sets of one or more cells defines a region in said space and has a cell size no larger than a predetermined cell size; filtering from among pairs of the first objects and second objects, respectively, to determine first candidate pairs of the first objects and the second objects, respectively, that share common cells at the predetermined cell size, and filtering from among the first candidate pairs of the first objects and second objects, respectively, to determine second candidate pairs of the first objects and the second objects, respectively, that share overlapping cells of cell sizes smaller than the predetermined cell size; and selecting from among the second candidate pairs resulting pairs of the first objects and the second objects that indicate a first object that interacts with the second object according to the spatial predicate.
Claim 2
Independent Claim
197 words
A method of determining which of a plurality of first objects interacts within a space with which of a plurality of second objects according to a spatial predicate, said method comprising the computer-implemented steps of: decomposing the plurality of first objects and the plurality of second objects into respective sets of one or more cells, wherein each cell of the respective sets of one or more cells defines a region in said space and has a cell size no larger than a predetermined cell size; filtering from among pairs of the first objects and second objects, respectively, to determine first candidate pairs of the first objects and the second objects, respectively, that share common cells at the predetermined cell size, and filtering from among the first candidate pairs of the first objects and second objects, respectively, to determine second candidate pairs of the first objects and the second objects, respectively, that share overlapping cells of cell sizes smaller than the predetermined cell size; and selecting from among the second candidate pairs resulting pairs of the first objects and the second objects that indicate a first object that interacts with the second object according to the spatial predicate.
Claim 3
Dependent Claim
89 words
The method of claim 1, further comprising the steps of: receiving a first input indicative of said predetermined cell size; and receiving a second input indicative of a number of cells; wherein the step of decomposing the plurality of first objects and the plurality of second objects into respective sets of one or more cells includes the step of decomposing the plurality of first objects and the plurality of second objects into the respective sets of one or more cells based on the first input and the second input.
Claim 4
Dependent Claim
66 words
The method of claim 2, further comprising the steps of: generating codes for corresponding cells of said respective sets of one or more cells of the plurality of first objects and the plurality of second objects, said codes identifying a location and a size of the corresponding cell within said space; and building a first spatial index and a second spatial index based on said codes.
Claim 5
Dependent Claim
26 words
The method of claim 3, wherein the step of generating codes for corresponding cells includes the step of generating binary hyperspatial codes for the corresponding cells.
Claim 6
Dependent Claim
37 words
The method of claim 3, wherein the step of filtering pairs of the first objects and the second objects, respectively, includes the step of filtering said pairs based on said first spatial index and said second index.
Claim 7
Dependent Claim
76 words
The method of claim 5, wherein the step of determining second candidate pairs of the first objects and the second objects, respectively, that indicate a first object and a second object that share overlapping cells at cell sizes smaller than the predetermined cell size includes the step of determining said second candidate pairs of the first objects and the second objects by performing a join operation on the first spatial index and the second spatial index.
Claim 8
Dependent Claim
96 words
The method of claim 6, further comprising the step of: generating second codes for the corresponding cells of said respective sets of one or more cells of the plurality of first objects and the plurality of second objects, said second codes identifying a location of a cell at said predetermined cell size containing the respective cell; wherein the step of building a first spatial index and a second spatial index based on said codes includes the step of building said first spatial index and said second spatial index based on said codes and said second codes.
Claim 9
Dependent Claim
39 words
The method of claim 7, wherein the step of generating second codes for the corresponding cells includes the step of truncating corresponding codes for the corresponding cells to a prescribed number of digits based on said predetermined cell size.
Claim 10
Dependent Claim
57 words
The method of claim 8, wherein the step of determining first candidate pairs of the first objects and the second objects, respectively, includes the step of determining first candidate pairs of the first objects and the second objects, respectively, by an equijoin operation on the first spatial index and a second spatial index using the second codes.
Claim 11
Dependent Claim
215 words
A computer-readable medium bearing instructions for determining which of a plurality of first objects interacts within a space with which of a plurality of second objects according to a spatial predicate, said instructions, when executed by one or more processors, arranged to cause the one or more processors to perform the steps of: decomposing the plurality of first objects and the plurality of second objects into respective sets of one or more cells, wherein each cell of the respective sets of one or more cells defines a region in said space and has a cell size no larger than a predetermined cell size; filtering from among pairs of the first objects and second objects, respectively, to determine first candidate pairs of the first objects and the second objects, respectively, that share common cells at the predetermined cell size, and filtering from among the first candidate pairs of the first objects and second objects, respectively, to determine second candidate pairs of the first objects and the second objects, respectively, that share overlapping cells of cell sizes smaller than the predetermined cell size; and selecting from among the second candidate pairs resulting pairs of the first objects and the second objects that indicate a first object that interacts with the second object according to the spatial predicate.
Claim 12
Dependent Claim
215 words
A computer-readable medium bearing instructions for determining which of a plurality of first objects interacts within a space with which of a plurality of second objects according to a spatial predicate, said instructions, when executed by one or more processors, arranged to cause the one or more processors to perform the steps of: decomposing the plurality of first objects and the plurality of second objects into respective sets of one or more cells, wherein each cell of the respective sets of one or more cells defines a region in said space and has a cell size no larger than a predetermined cell size; filtering from among pairs of the first objects and second objects, respectively, to determine first candidate pairs of the first objects and the second objects, respectively, that share common cells at the predetermined cell size, and filtering from among the first candidate pairs of the first objects and second objects, respectively, to determine second candidate pairs of the first objects and the second objects, respectively, that share overlapping cells of cell sizes smaller than the predetermined cell size; and selecting from among the second candidate pairs resulting pairs of the first objects and the second objects that indicate a first object that interacts with the second object according to the spatial predicate.
Claim 13
Dependent Claim
104 words
The computer-readable medium of claim 10, wherein said instructions are further arranged to cause the one or more processors to perform the steps of: receiving a first input indicative of said predetermined cell size, and receiving a second input indicative of a number of cells; and wherein the step of decomposing the plurality of first objects and the plurality of second objects into respective sets of one or more cells includes the step of decomposing the plurality of first objects and the plurality of second objects into the respective sets of one or more cells based on the first input and the second input.
Claim 14
Dependent Claim
80 words
The computer-readable medium of claim 11, wherein said instructions are further arranged to cause the one or more processors to perform the steps of: generating codes for corresponding cells of said respective sets of one or more cells of the plurality of first objects and the plurality of second objects, said codes identifying a location and a size of the corresponding cell within said space; and building a first spatial index and a second spatial index based on said codes.
Claim 15
Dependent Claim
27 words
The computer-readable medium of claim 12, wherein the step of generating codes for corresponding cells includes the step of generating binary hyperspatial codes for the corresponding cells.
Claim 16
Dependent Claim
38 words
The computer-readable medium of claim 12, wherein the step of filtering pairs of the first objects and the second objects, respectively, includes the step of filtering said pairs based on said first spatial index and said second index.
Claim 17
Dependent Claim
77 words
The computer-readable medium of claim 14, wherein the step of determining second candidate pairs of the first objects and the second objects, respectively, that indicate a first object and a second object that share overlapping cells at cell sizes smaller than the predetermined cell size includes the step of determining said second candidate pairs of the first objects and the second objects by performing a join operation on the first spatial index and the second spatial index.
Claim 18
Dependent Claim
110 words
The computer-readable medium of claim 15, wherein said instructions are further arranged to cause the one or more processors to perform the steps of: generating second codes for the corresponding cells of said respective sets of one or more cells of the plurality of first objects and the plurality of second objects, said second codes identifying a location of a cell at said predetermined cell size containing the respective cell; wherein the step of building a first spatial index and a second spatial index based on said codes includes the step of building said first spatial index and said second spatial index based on said codes and said second codes.
Claim 19
Dependent Claim
40 words
The computer-readable medium of claim 16, wherein the step of generating second codes for the corresponding cells includes the step of truncating corresponding codes for the corresponding cells to a prescribed number of digits based on said predetermined cell size.
Claim 20
Dependent Claim
58 words
The computer-readable medium of claim 17, wherein the step of determining first candidate pairs of the first objects and the second objects, respectively, includes the step of determining first candidate pairs of the first objects and the second objects, respectively, by an equijoin operation on the first spatial index and a second spatial index using the second codes.
Claim 21
Independent Claim
229 words
A method of performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, comprising the computer-implemented steps of: building a first spatial index for the set of first objects, said first spatial index including an entry indicating an identifier for one of the first objects, a fixed-length code identifying a location of a cell in which at least part of the one of the first object exists, and a variable-length code identifying a location of a cell in which at least part of the one of the first object exists; building a second spatial index for the set of second objects, said second spatial index including an entry indicating an identifier for one of the second objects, a fixed-length code identifying a location of a cell in which at least part of the one of the second object exists, and a variable-length code identifying a location of a cell in which at least part of the one of the second object exists; performing a first join operation on the first spatial index and the second spatial index based on the fixed-length codes; performing a second join operation on results of the first join operation based on the variable length codes; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 22
Independent Claim
229 words
A method of performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, comprising the computer-implemented steps of: building a first spatial index for the set of first objects, said first spatial index including an entry indicating an identifier for one of the first objects, a fixed-length code identifying a location of a cell in which at least part of the one of the first object exists, and a variable-length code identifying a location of a cell in which at least part of the one of the first object exists; building a second spatial index for the set of second objects, said second spatial index including an entry indicating an identifier for one of the second objects, a fixed-length code identifying a location of a cell in which at least part of the one of the second object exists, and a variable-length code identifying a location of a cell in which at least part of the one of the second object exists; performing a first join operation on the first spatial index and the second spatial index based on the fixed-length codes; performing a second join operation on results of the first join operation based on the variable length codes; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 23
Dependent Claim
22 words
The method of claim 19, wherein the step of performing the first join operation includes the step of performing an equijoin operation.
Claim 24
Dependent Claim
18 words
The method of claim 19, wherein the variable-length codes contains as least as many digits the fixed-length codes.
Claim 25
Dependent Claim
241 words
A computer-readable medium bearing instructions for performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, said instructions arranged, when executed by one or more processors, to cause the one or more processors to perform the steps of: building a first spatial index for the set of first objects, said first spatial index including an entry indicating an identifier for one of the first objects, a fixed-length code identifying a location of a cell in which part of the one of the first object exists, and a variable-length code identifying a location of a cell in which part of the one of the first object exists; building a second spatial index for the set of second objects, said second spatial index including an entry indicating an identifier for one of the second objects, a fixed-length code identifying a location of a cell in which part of the one of the second object exists, and a variable-length code identifying a location of a cell in which part of the one of the second object exists; performing a first join operation on the first spatial index and the second spatial index based on the fixed-length codes; performing a second join operation on results of the first join operation based on the variable length codes; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 26
Dependent Claim
241 words
A computer-readable medium bearing instructions for performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, said instructions arranged, when executed by one or more processors, to cause the one or more processors to perform the steps of: building a first spatial index for the set of first objects, said first spatial index including an entry indicating an identifier for one of the first objects, a fixed-length code identifying a location of a cell in which part of the one of the first object exists, and a variable-length code identifying a location of a cell in which part of the one of the first object exists; building a second spatial index for the set of second objects, said second spatial index including an entry indicating an identifier for one of the second objects, a fixed-length code identifying a location of a cell in which part of the one of the second object exists, and a variable-length code identifying a location of a cell in which part of the one of the second object exists; performing a first join operation on the first spatial index and the second spatial index based on the fixed-length codes; performing a second join operation on results of the first join operation based on the variable length codes; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 27
Dependent Claim
23 words
The computer-readable medium of claim 22, wherein the step of performing the first join operation includes the step of performing an equijoin operation.
Claim 28
Dependent Claim
18 words
The method of claim 22, wherein the variable-length codes contains as least as many digits the fixed-length codes.
Claim 29
Independent Claim
116 words
A method of performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, comprising the computer-implemented steps of: performing a first join operation between the set of first objects and the set of second objects based on fixed-length codes identifying cells in which at least part of the first objects and second objects exist; performing a second join operation on results of the first join operation based on the variable length codes identifying cells in which at least part of the first objects and second objects exist; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 30
Independent Claim
116 words
A method of performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, comprising the computer-implemented steps of: performing a first join operation between the set of first objects and the set of second objects based on fixed-length codes identifying cells in which at least part of the first objects and second objects exist; performing a second join operation on results of the first join operation based on the variable length codes identifying cells in which at least part of the first objects and second objects exist; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 31
Dependent Claim
22 words
The method of claim 25, wherein the step of performing the first join operation includes the step of performing an equijoin operation.
Claim 32
Dependent Claim
18 words
The method of claim 25, wherein the variable-length codes contains as least as many digits the fixed-length codes.
Claim 33
Dependent Claim
133 words
A computer-readable medium performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, said instructions arranged, when executed by one or more processors, to cause the one or more processors to perform the steps of: performing a first join operation between the set of first objects and the set of second objects based on fixed-length codes identifying cells in which at least part of the first objects and second objects exist; performing a second join operation on results of the first join operation based on the variable length codes identifying cells in which at least part of the first objects and second objects exist; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 34
Dependent Claim
133 words
A computer-readable medium performing a spatial join according to a spatial predicate of a set of first objects and a set of second objects, said instructions arranged, when executed by one or more processors, to cause the one or more processors to perform the steps of: performing a first join operation between the set of first objects and the set of second objects based on fixed-length codes identifying cells in which at least part of the first objects and second objects exist; performing a second join operation on results of the first join operation based on the variable length codes identifying cells in which at least part of the first objects and second objects exist; and performing a spatial join operation on results of the second join operation based on the spatial predicate.
Claim 35
Dependent Claim
23 words
The computer-readable medium of claim 28, wherein the step of performing the first join operation includes the step of performing an equijoin operation.
Claim 36
Dependent Claim
19 words
The computer-readable medium of claim 28, wherein the variable-length codes contains as least as many digits the fixed-length codes.
References Cited (Backward Citations)
US5652882A
Cited
US5542073A
Cited
US5818962A
Cited
US5774579A
Cited
US5751852A
Cited
US5884320A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-01-10 | 2003-07-12 | 2004-01-11 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-01-10 | 2007-07-12 | 2008-01-11 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-01-10 | 2011-07-12 | 2012-01-11 | $7700.00 | Window Closed / Lapsed |