IP Library Granted Patent US 7,765,219
Granted Patent B2
US 7,765,219 · App. 11/065,189 · Granted Jul 27, 2010

Sort digits as number collation in server

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,765,219
App. No.
11/065,189
Granted
Jul 27, 2010
Kind
B2
Abstract

Systems and methods that supply a sort order for strings with defined digit and non-digit tokens, via employing a normalization procedure that assigns numeric values to the digit based tokens, and that further leverages on existing database collations. As such, plugging a particular collation into the sort engine determines a weight for the various characters relative to each other, and in conjunction with the normalization procedure, provides an intuitive sort order for the strings.

Claims (36)

1. A computer-implemented sort order engine, comprising:

a processor that executes the following computer-executable components stored in memory to sort text strings in accordance with a specified collation, including:

a normalization component that:

accesses a plurality of data strings, each data string including a sequence of characters, the characters selected from among numeric and alphabetic characters;

for each data string in the plurality of data strings:

parses the data string into a series of adjacent numeric tokens and alphabetic tokens, the numeric tokens including adjacent numeric characters and the alphabetic tokens including adjacent alphabetic characters;

for each numeric token in the data string:

count the number of significant digits in the numeric token, the count of the number of significant digits indicating the length of the numeric token, the count ignoring any leading zeroes of the numeric token; and

pre-pends a numeric value representing the count of the number of significant digit in the numeric token to the numeric token by inserting the numeric value into the data string prior and adjacent to the numeric token within the data string such that one or more of the numeric value and numeric token to sort the data string, wherein the numeric value sorts numeric token based on the length of the numeric token without having to re-parse the numeric token; and

a collation component that sorts the plurality of data strings in accordance with the specified collation based at least in part on the length of the numeric tokens included in the pre-pend numeric values.

2. The computer-implemented sort order engine of claim 1 , wherein the at least on numeric token comprises a sequence of leading zeroes.

3. The computer-implemented sort order engine of claim 2 , wherein the leading zeroes are stripped from the at least one numeric token to form stripped digit groups.

4. At a computer system including a processor and system memory, the method for sorting text strings in accordance with a specified collation, the method comprising:

accesses a plurality of data strings, each data string including a sequence of characters, the characters selected from among numeric and alphabetic characters;

for each data string in the plurality of data strings:

parses the data string into a series of adjacent numeric tokens and alphabetic tokens, the numeric tokens including adjacent numeric characters and the alphabetic tokens including adjacent alphabetic characters;

for each numeric token in the data string:

the processor counting the number of significant digits in the numeric token, the count of the number of significant digits indicating the length of the numeric token, the count ignoring any leading zeroes of the numeric token; and

pre-pends a numeric value representing the count of the number of significant digit in the numeric token to the numeric token by inserting the numeric value into the data string prior and adjacent to the numeric token within the data string such that one or more of the numeric value and numeric token to sort the data string, wherein the numeric value sorts numeric token based on the length of the numeric token without having to re-parse the numeric token; and

sorting the plurality of data strings in accordance with the specified collation based at least in part on the length of the numeric tokens included in the pre-pend numeric values.

5. The method of claim 4 , wherein sorting includes sorting the one or more strings as a function of integer comparison on respective assigned numeric values.

6. The method of claim 4 , further comprising assigning numeric values to numeric tokens represented as non-western numeric characters based upon western numeric character equivalents.

7. The method of claim 4 further comprising ranking the data strings with a date format based on a variant sort algorithm.

8. The method of claim 4 , further comprising striping leading zeroes from a group of numbers associated with at least one numeric token, to form a stripped digit group.

9. The method of claim 4 , further comprising determining whether a numeric token is all zeroes, and if so, ignoring the digit token.

10. The method of claim 8 , further comprising counting a number of digits in the stripped digit group, to represent a significant digit number.

11. The method of claim 10 further comprising padding the significant digit with zeroes.

12. The method of claim 10 , further comprising employing the significant digit to converge a sort order to a logical subset.

13. A computer program product usable at a computer system, the computer program product for implementing a method for sorting text strings in accordance with a specified collation, the computer program product comprising one or more computer storage media having stored there on computer-executable instructions that, when executed at a processor, cause the computer system to perform the method, including the following:

accesses a plurality of data strings, each data string including a sequence of characters, the characters selected from among numeric and alphabetic characters;

for each data string in the plurality of data strings:

parse the data string into a series of adjacent numeric tokens and alphabetic tokens, the numeric tokens including adjacent numeric characters and the alphabetic tokens including adjacent alphabetic characters;

for each numeric token in the data string:

counting the number of significant digits in the numeric token, the count of the number of significant digits indicating the length of the numeric token, the count ignoring any leading zeroes of the numeric token; and

pre-pending a numeric value representing the count of the number of significant digit in the numeric token to the numeric token by inserting the numeric value into the data string prior and adjacent to the numeric token within the data string such that one or more of the numeric value and numeric token to sort the data string, wherein the numeric value sorts numeric token based on the length of the numeric token without having to re-parse the numeric token; and

sort the plurality of data strings in accordance with the specified collation based at least in part on the length of the numeric tokens included in the pre-pend numeric values.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2005
From: ELLIS, MR. NIGEL R.; NEGRIN, MR RICHARD L.
To: MICROSOFT CORPORATION
Reel/Frame 015855/0766 →
Continuity (1)
Related Publication 20060190452A1 · Aug 24, 2006