← Back to Patent Explorer
US5359729A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for searching for a given point in regions defined by attribute ranges, then sorted by lower and upper range values and dimension

Assignee: Salesforce Inc
•
Filing: 1993-12-03
•
Granted: 1994-10-25
•
Expires: 2013-12-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Regions, such as those determined by attributes in a spread sheet, are defined by ranges of attribute values. Regions are distinct if they differ in their number of ranges (dimension) or because a pair of corresponding ranges fail to overlap. A region is located for a given point by: (1) sorting the regions by lower range value and dimension to form list A, then by upper range and dimension to form list B, (2) paring lists A and B to sublists of the dimension of the point, and (3) searching the shorter of the pared lists.

Inventors

  • 👤 David F. Yarnell
  • 👤 Donald E. Schuy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 20:34
CPC Classifications
G; G06; G06F; G06F40/00; G06F40/10; G06F40/166; G06F40/177; G06F40/18; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99937

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 486 words
A method for computer sorting and making a search of a plurality of regions, each region expressed as at least one range, each range having a lower and an upper value, wherein the lower and upper values may be equal, and no two regions have both the same number of ranges and all corresponding ranges overlap, and wherein the search will determine whether a point, expressed as a plurality of coordinates, is included within one of the regions, the search being successful when both the number of coordinates of the point is equal to the number of ranges in a region and each coordinate of the point is within each corresponding range within the region, comprising the steps of: (a) creating a first sorted list of the regions by: (i) arranging the regions by the number of ranges within each region, and (ii) sub-arranging the regions having an equal number of ranges by the lower value of the first range in each region, and for regions having an equal number of ranges and an equal lower value for the first range, proceeding to a comparison of the lower value for each successive corresponding range in the regions until two corresponding lower values are unequal; (b) creating a second sorted list of the regions by repeating step (a) using the upper values for the ranges instead of the lower values; (c) performing a preliminary search on the first sorted list to create a first sublist of regions where the point could be located, searching first for regions that have the same number of ranges as the point has coordinates, and thereafter searching said regions having the same number of ranges as the point has coordinates, by comparing coordinate values of the point with the lower values of the corresponding ranges within the regions to identify a region in the first sorted list, wherein all of the preceding regions in the first sorted list could include the point, the first sublist comprising the identified region and all of the preceding regions in the first sorted list; (d) repeating step (c) using the upper values of the ranges instead of the lower values and the second sorted list instead of the first sorted list, and creating a second sublist of the second sorted list where the point could be located, the second sublist comprising a region identified in the second sorted list, and all of the regions succeeding the identified region in the second sorted list; (e) comparing the first sublist with the second sublist to determine which sublist is the shorter, or if the sublists are equal in length; (f) selecting the shorter sublist to linearly search, and if the sublists are equal in length, selecting either sublist; and (g) linearly searching the selected sublist until an item in the selected sublist is found where each coordinate for the point falls within each corresponding range within the region.
Claim 2
Independent Claim 486 words
A method for computer sorting and making a search of a plurality of regions, each region expressed as at least one range, each range having a lower and an upper value, wherein the lower and upper values may be equal, and no two regions have both the same number of ranges and all corresponding ranges overlap, and wherein the search will determine whether a point, expressed as a plurality of coordinates, is included within one of the regions, the search being successful when both the number of coordinates of the point is equal to the number of ranges in a region and each coordinate of the point is within each corresponding range within the region, comprising the steps of: (a) creating a first sorted list of the regions by: (i) arranging the regions by the number of ranges within each region, and (ii) sub-arranging the regions having an equal number of ranges by the lower value of the first range in each region, and for regions having an equal number of ranges and an equal lower value for the first range, proceeding to a comparison of the lower value for each successive corresponding range in the regions until two corresponding lower values are unequal; (b) creating a second sorted list of the regions by repeating step (a) using the upper values for the ranges instead of the lower values; (c) performing a preliminary search on the first sorted list to create a first sublist of regions where the point could be located, searching first for regions that have the same number of ranges as the point has coordinates, and thereafter searching said regions having the same number of ranges as the point has coordinates, by comparing coordinate values of the point with the lower values of the corresponding ranges within the regions to identify a region in the first sorted list, wherein all of the preceding regions in the first sorted list could include the point, the first sublist comprising the identified region and all of the preceding regions in the first sorted list; (d) repeating step (c) using the upper values of the ranges instead of the lower values and the second sorted list instead of the first sorted list, and creating a second sublist of the second sorted list where the point could be located, the second sublist comprising a region identified in the second sorted list, and all of the regions succeeding the identified region in the second sorted list; (e) comparing the first sublist with the second sublist to determine which sublist is the shorter, or if the sublists are equal in length; (f) selecting the shorter sublist to linearly search, and if the sublists are equal in length, selecting either sublist; and (g) linearly searching the selected sublist until an item in the selected sublist is found where each coordinate for the point falls within each corresponding range within the region.
Claim 3
Dependent Claim 31 words
The method of claim 1, wherein the step of performing a preliminary search on the first sorted list to create a first sublist of regions comprises using a binary search technique.
Claim 4
Dependent Claim 73 words
The method of claim 1, wherein the step of performing a preliminary search on the first sorted list to create a first sublist of regions comprises the step of terminating the search if a match is found, wherein a match is a region having the same number of ranges as coordinates of the point, and having a lower value for each range equal to a corresponding value for each coordinate of the point.
Claim 5
Dependent Claim 83 words
The method of claim 1, wherein the step of repeating step (c) using the upper value of the ranges instead of the lower value and the second sorted list instead of the first sorted list, comprises the step of terminating the search if a match is found, wherein a match is a region having the same number of ranges as coordinates of the point, and having an upper value for each range equal to the corresponding value for each coordinate of the point.
Claim 6
Dependent Claim 60 words
The method of claim 1, wherein the step of repeating step (c) using the upper values of the ranges instead of the lower values and the second sorted list instead of the first sorted list further comprises the step of excluding from the second sublist regions having a number of ranges unequal to the number of coordinates of the point.
Claim 7
Dependent Claim 16 words
The method of claim 1, wherein the regions are indicative of addresses in a computer memory.
Claim 8
Dependent Claim 15 words
The method of claim 1, wherein the regions are indicative of cells in a spreadsheet.
Claim 9
Dependent Claim 15 words
The method of claim 1, wherein the regions are indicative of elements in an array.
Claim 10
Dependent Claim 16 words
The method of claim 1, wherein the regions are indicative of areas in a mapping system.
Claim 11
Dependent Claim 41 words
The method of claim 1, wherein the method is used to associate attribute data with cells in a spreadsheet, a region being indicative of a zone in a spreadsheet, wherein the cells comprising the zone have at least one identical attribute.
Claim 12
Dependent Claim 43 words
The method of claim 10, wherein the search item represents a cell, and a default attribute is associated with the cell if it is determined that the sublist does not correspond to a subset of regions in which the search item is located.

References Cited (Backward Citations)

US4398249A Cited
US4633430A Cited
US5055998A Cited
US4989141A Cited
US5189608A Cited
US4873513A Cited
US5133052A Cited
US5150381A Cited
US5033009A Cited
US5093907A Cited
US5159678A Cited
US5263120A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-10-24 1998-04-25 1998-10-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-10-24 2002-04-25 2002-10-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-10-24 2006-04-25 2006-10-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag