IP Library Granted Patent US 7,617,183
Granted Patent B1
US 7,617,183 · App. 09/721,806 · Granted Nov 10, 2009

Method and apparatus for operating a database

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,617,183
App. No.
09/721,806
Granted
Nov 10, 2009
Kind
B1
Abstract

A method of processing a database service query is provided. In one embodiment, the method includes receiving a service query, applying principles of logic to the service query to obtain a sum of terms, evaluating each term as one or more separate SQL instructions, and executing each separate SQL instruction. Preferably, the sum of terms is additionally expanded to remove NOT operators, using for example Boolean logic.

Claims (68)

1. A method of processing a database service query, comprising:

receiving a service query,

obtaining a sum of terms associated with the service query by expanding at least one nested term into one or more un-nested terms,

evaluating the sum of terms as a plurality of SQL instructions, wherein the sum of terms comprises one or more positive terms and one or more negative terms,

determining a plurality of results associated with the sum of terms by executing, using a processor, the SQL instructions,

collecting, into a first list, any of the results associated with the one or more negative terms,

collecting, into a second list, any of the results associated with the one or more positive terms while omitting from the second list any of the results that are in the first list, and

providing one or more of the results from the second list to a user.

2. The method as claimed in claim 1 , further comprising expanding each term to remove NOT operators.

3. The method as claimed in claim 2 , wherein the sum of terms are expanded using Boolean logic.

4. The method as claimed in claim 1 , in which the service query is an X.500 or LDAP service query.

5. The method as claimed in claim 1 , in which the service query is a search service query.

6. The method of claim 1 wherein:

evaluating the sum of terms comprises converting the sum of terms to a plurality of SQL instructions comprising at least one negative term;

and further comprising:

subtracting at least one of the results associated with the at least one negative term.

7. The method of claim 1 , wherein obtaining a sum of terms comprises:

identifying at least one term associated with at least one NOT operator; and

expanding the at least one term associated with the at least one NOT operator into at least one negative term.

8. The method of claim 1 , wherein:

if the service query comprises a term having at least two NOT operators, deleting or disregarding from the sum of terms a third-order term corresponding to the term having at least two NOT operators.

9. The method of claim 1 , wherein obtaining a sum of terms comprises:

identifying at least one term associated with at least one NOT operator; and

expanding the at least one term associated with at least one NOT operator into at least one negative term and at least one positive term.

10. A system for processing a directory service query, comprising:

a database operable to store arbitrary data; and

a processor that is communicatively coupled to the database and that processes a service query by:

obtaining a sum of terms by expanding at least one nested term into one or more un-nested terms,

evaluating the sum of terms as a plurality of SQL instructions, wherein the sum of terms comprises one or more positive terms and one or more negative terms,

determining a plurality of results associated with the sum of terms by executing the SQL instructions,

collecting, into a first list, any of the results associated with the one or more negative terms,

collecting, into a second list, any of the results associated with the one or more positive terms while omitting from the second list any of the results that are in the first list, and

providing one or more of the results from the second list to a user.

11. The system as claimed in claim 10 , further comprising means to perform X.500 or LDAP services.

12. A method of processing a directory service query, comprising:

receiving a directory service query,

obtaining a sum of terms by expanding at least one nested term into one or more un-nested terms,

mapping the sum of terms to a plurality of SQL instructions, wherein the sum of terms comprises one or more positive terms and one or more negative terms,

determining a plurality of results associated with the sum of terms by executing, using a processor, the SQL instructions,

collecting, into a first list, any of the results associated with the one or more negative terms,

collecting, into a second list, any of the results associated with the one or more positive terms while omitting from the second list any of the results that are in the first list, and

providing one or more of the results from the second list to a user.

13. The method as claimed in claim 12 , further comprising expanding each term to remove NOT operators.

14. The method as claimed in claim 13 , wherein the sum of terms are expanded using Boolean logic.

15. The method as claimed in claim 12 , in which the directory service query is an X.500 or LDAP service query.

16. The method as claimed in claim 12 , in which the directory service query is a search service query.

17. A system for processing a directory service query, comprising:

a database that is operable to store arbitrary data; and

a processor that is communicatively coupled to the database and that processes a directory service query by:

obtaining a sum of terms by expanding at least one nested term into one or more un-nested terms,

mapping the sum of terms to a plurality of SQL instructions, wherein the sum of terms comprises one or more positive terms and one or more negative terms,

determining a plurality of results associated with the sum of terms by executing the SQL statements,

collecting, into a first list, any of the results associated with the one or more negative terms, and

collecting, into a second list, any of the results associated with the one or more positive terms while omitting from the second list any of the results that are in the first list, and

providing only the results from the second list to a user.

18. The system as claimed in claim 17 , further comprising means to perform X.500 or LDAP services.

19. A method of processing a database service query, comprising:

receiving a service query;

obtaining a sum of terms associated with the service query by:

expanding at least one nested term into one or more un-nested terms;

expanding at least one term associated with at least one NOT operator into at least one negative term and at least one positive term; and

if the service query comprises a term having at least two NOT operators, deleting from the sum of terms a third-order term corresponding to the term having at least two NOT operators;

evaluating the sum of terms as a plurality of SQL instructions;

obtaining a plurality of results by executing, using a processor, the SQL instructions, wherein each term of the sum of terms is associated with one or more of the results;

generating a first list comprising one or more of the results associated with the at least one negative term;

generating a second list comprising one or more of the results associated with the at least one positive term, wherein the first list and the second list are generated by the processor;

removing or omitting from the second list at least one of the results associated with the at least one negative term; and

providing one or more of the results from the second list to a user.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2012
From: COMPUTER ASSOCIATES THINK, INC.
To: GOOGLE INC.
Reel/Frame 028801/0049 →