IP Library Granted Patent US 9,990,417
Granted Patent B2
US 9,990,417 · App. 15/375,641 · Granted Jun 5, 2018

Boolean-query composer

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 9,990,417
App. No.
15/375,641
Granted
Jun 5, 2018
Kind
B2
Abstract

Provided is a process of refining Boolean queries, the process including: obtaining a query; searching a corpus of documents based on the query; selecting narrowing terms that pertain to respective subsets of the responsive documents; selecting broadening terms related to the query; instructing the user's computing device to present a graphical user interface comprising: graphical representations of the narrowing terms; graphical representations of the broadening terms; and one or more user inputs by which the user refines the query by adding a selected narrowing term or a selected broadening term; obtaining a user selection of a broadening term or a narrowing term; forming a refined query based on the user selection; searching at least part of the corpus based on the refined query to identify refined responsive documents; and instructing the user's computing device to present an updated graphical user interface with information about the refined responsive documents.

Claims (111)

1. A method, comprising:

causing, with one or more processors, a computing device to display a user interface with a result of a first Boolean query applied to a data set, wherein:

the user interface represents subsets of the result as concurrently displayed graphical regions;

each of the graphical regions representing a respective subset of query results has a visual attribute determined based on a respective statistic of the respective subset;

the user interface includes a user-selectable input by which the first Boolean query is changed, at least in part, without the user typing additional query terms;

the user interface provides a plurality of candidate query terms that are user selectable without typing the candidate query terms; and

the user interface graphically distinguishes between presented candidate query terms that are broadening terms and candidate query terms that are narrowing terms;

receiving, with one or more processors, a user selection entered via the user-selectable input, the user selection indicating a term to be added to the first Boolean query;

based on the user selection, with one or more processors, forming a second Boolean query;

applying, with one or more processors, the second Boolean query to the data set to produce a result of the second Boolean query; and

causing, with one or more processors, the computing device to display the result of the second Boolean query.

2. The method of claim 1 , wherein:

the data set includes one or more corpora of unstructured text documents, the one or more corpora including more than 50,000 natural language text documents;

causing the computing device to display the user interface comprises:

receiving the first Boolean query from the user computing device;

recursively decomposing the first Boolean query to form an abstract syntax tree representation of the first Boolean query;

accessing a plurality of previously formed indices based on terms parsed from the first Boolean query to identify documents including the terms;

determining the subsets based on a semantic analysis of the one or more corpora;

determining respective statistics of the subsets;

determining dimensions in display space of the user interface based on the respective statistics;

sending instructions to render the user interface over a network from a computational linguistics system to a browser executing on the computing device, wherein the user interface is presented within the browser and is formed, at least in part, by invoking WebGL commands to enlist a graphical processing unit of the computing device in rendering at least part of the user interface;

the user interface includes means for depicting a space-filling layout;

causing the computing device to display the result of the second Boolean query comprises:

sending instructions to the computing device to update the user interface by inserting or removing components of a document object model of the user interface in memory.

3. The method of claim 1 , wherein forming the second Boolean query comprises:

selecting a Boolean operator based on whether the term is a broadening term or a narrowing term;

determining a position in the first Boolean query to add the term based on steps for determining an order of operations; and

forming an abstract syntax tree representation of the second Boolean query based on both the selected Boolean operator and the determined position.

4. The method of claim 1 , wherein:

the user interface provides a dynamically adjustable visual guide to edit Boolean queries the user.

5. The method of claim 1 , wherein:

causing the computing device to display the result of the second Boolean query comprises causing portions of the graphical user interfaces to be constructed dynamically with client-side scripts executed by the computing device.

6. The method of claim 1 , wherein:

applying the second Boolean query comprises interrogating structured data associated with unstructured text documents among the data set.

7. The method of claim 1 , wherein causing the computing device to display the result of the second Boolean query comprises:

causing the computing device to display a synthesis of responsive documents.

8. The method of claim 1 , wherein causing the computing device to display the result of the second Boolean query comprises:

steps for presenting search results.

9. The method of claim 1 , wherein causing a computing device to display a user interface with a result of a first Boolean query comprises:

causing the computing device to display a proportional shape graph.

10. The method of claim 1 , wherein causing a computing device to display a user interface with a result of a first Boolean query comprises:

iteratively and alternatively subdividing available space in a region of the display based on the statistics and selecting rectangle sizes based on whether an aspect ratio of a candidate rectangle satisfies a threshold.

11. The method of claim 1 , wherein the user interface comprises user selectable filters based on metadata of the data set.

12. The method of claim 1 , wherein the user interface comprises a query editing input having means for indicating status of query terms.

13. The method of claim 1 , wherein the user interface comprises a plurality of user selectable candidate query terms, the candidate query terms being selected based on a topic to which the candidate terms pertain.

14. The method of claim 1 , wherein terms in different regions of the interface, with different visual attributes, appearing concurrently, are selectable by the user to add query elements and Boolean operators associated with those query elements.

15. The method of claim 1 , wherein:

the term is a negative disjunctive term selected from among a plurality of candidate query terms determined by means for distributional semantic analysis using means for compressing sparse matrices and means for performing matrix operations.

16. The method of claim 1 , wherein:

the term is a positive disjunctive term selected by the user clicking on a corresponding area of the user interface and invoking a corresponding event handler executed in a browser of the computing device, the positive disjunctive term being selected from among a plurality of positive disjunctive terms determined based on means for latent semantic analysis.

17. The method of claim 1 , wherein:

forming the second Boolean query comprises steps for refactoring a Boolean query and steps for validating a Boolean query.

18. The method of claim 1 , wherein:

receiving a user selection comprises receiving both a user selected positive conjunctive term and a user selected negative conjunctive term;

the second Boolean query includes both the positive conjunctive term and the negative conjunctive term; and

the user interface is caused to be updated to display text of the second Boolean query.

19. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

causing, with one or more processors, a computing device to display a user interface with a result of a first Boolean query applied to a data set, wherein:

the display represents subsets of the result as concurrently displayed graphical regions;

each of the graphical regions representing a respective subset of query results has a visual attribute determined based on a respective statistic of the respective sub set;

the user interface includes a user-selectable input by which the first Boolean query is changed without the user typing additional query terms;

the user interface provides a plurality of candidate query terms that are user selectable without typing the candidate query terms; and

the user interface graphically distinguishes between presented candidate query terms that are broadening terms and candidate query terms that are narrowing terms;

receiving, with one or more processors, a user selection entered via the user-selectable input, the user selection indicating a term to be added to the first Boolean query;

based on the user selection, with one or more processors, forming a second Boolean query;

applying, with one or more processors, the second Boolean query to the data set to produce a result of the second Boolean query; and

causing, with one or more processors, the computing device to display the result of the second Boolean query.

20. The medium of claim 19 , the operations comprising:

causing the computing device to display the user interface comprises:

receiving the first Boolean query from the user computing device;

recursively decomposing the first Boolean query to form an abstract syntax tree representation of the first Boolean query;

accessing a plurality of previously formed indices based on terms parsed from the first Boolean query to identify documents including the terms;

determining the subsets based on a semantic analysis of the one or more corpora;

determining respective statistics of the subsets;

determining dimensions in display space of the user interface based on the respective statistics;

sending instructions to render the user interface over a network from a computational linguistics system to a browser executing on the computing device, wherein the user interface is presented within the browser and is formed, at least in part, by invoking WebGL commands to enlist a graphical processing unit of the computing device in rendering at least part of the user interface;

the user interface includes means for depicting a space-filling layout;

causing the computing device to display the result of the second Boolean query comprises:

sending instructions to the computing device to update the user interface by inserting or removing components of a document object model of the user interface in memory; and

the data set includes one or more corpora of unstructured text documents, the one or more corpora including more than 50,000 natural language text document.

21. The medium of claim 19 , wherein forming the second Boolean query comprises:

selecting a Boolean operator based on whether the term is a broadening term or a narrowing term;

determining a position in the first Boolean query to add the term based on steps for determining an order of operations; and

forming an abstract syntax tree representation of the second Boolean query based on both the selected Boolean operator and the determined position.

22. The medium of claim 19 , wherein:

the user interface provides a dynamically adjustable visual guide to edit Boolean queries the user.

23. The medium of claim 19 , the operations comprising:

causing the computing device to display the result of the second Boolean query comprises causing portions of the graphical user interfaces to be constructed dynamically with client-side scripts executed by the computing device.

24. The medium of claim 19 , the operations comprising:

applying the second Boolean query comprises interrogating structured data associated with unstructured text documents among the data set.

25. The medium of claim 19 , wherein causing the computing device to display the result of the second Boolean query comprises:

causing the computing device to display a synthesis of responsive documents.

26. The medium of claim 19 , wherein causing the computing device to display the result of the second Boolean query comprises:

steps for presenting search results.

27. The medium of claim 19 , wherein causing a computing device to display a user interface with a result of a first Boolean query comprises:

causing the computing device to display a proportional shape graph.

28. The medium of claim 19 , wherein causing a computing device to display a user interface with a result of a first Boolean query comprises:

iteratively and alternatively subdividing available space in a region of the display based on the statistics and selecting rectangle sizes based on whether an aspect ratio of a candidate rectangle satisfies a threshold.

29. The medium of claim 19 , wherein the user interface comprises user selectable filters based on metadata of the data set.

30. The medium of claim 19 , wherein the user interface comprises a query editing input having means for indicating status of query terms.

31. The medium of claim 19 , wherein the user interface comprises a plurality of user selectable candidate query terms, the candidate query terms being selected based on a topic to which the candidate terms pertain.

32. The medium of claim 19 , wherein terms in different regions of the interface, with different visual attributes, appearing concurrently, are selectable by the user to add query elements and Boolean operators associated with those query elements.

33. The medium of claim 19 , wherein:

the term is a negative disjunctive term selected from among a plurality of candidate query terms determined by means for distributional semantic analysis using means for compressing sparse matrices and means for performing matrix operations.

34. The medium of claim 19 , wherein:

the term is a positive disjunctive term selected by the user clicking on a corresponding area of the user interface and invoking a corresponding event handler executed in a browser of the computing device, the positive disjunctive term being selected from among a plurality of positive disjunctive terms determined based on means for latent semantic analysis.

35. The medium of claim 19 , wherein forming the second Boolean query comprises steps for refactoring a Boolean query and steps for validating a Boolean query.

36. The medium of claim 19 , the operations comprising:

receiving a user selection comprises receiving both a user selected positive conjunctive term and a user selected negative conjunctive term;

the second Boolean query includes both the positive conjunctive term and the negative conjunctive term; and

the user interface is caused to be updated to display text of the second Boolean query.

Assignments (8)
SECURITY INTEREST Recorded Nov 18, 2021
From: NETBASE SOLUTIONS, INC.; QUID, LLC
To: EAST WEST BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 058157/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2021
From: QUID, INC.
To: QUID, LLC
Reel/Frame 057956/0185 →
MERGER AND CHANGE OF NAME Recorded Oct 29, 2021
From: QUID, INC.; QUID MERGER SUB II, LLC
To: QUID, LLC
Reel/Frame 057956/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2021
From: QUID, INC.
To: QUID, LLC
Reel/Frame 057962/0230 →
RELEASE OF SECURITY INTEREST Recorded Jan 28, 2020
From: HERCULES CAPITAL, INC.
To: QUID, INC.
Reel/Frame 051646/0106 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT APPLICATION NUMBER INCORRECTLY LISTED AS 15223007 BUT NEEDS TO BE LISTED AS 15233007 PREVIOUSLY RECORDED ON REEL 044023 FRAME 0520. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Apr 25, 2018
From: QUID, INC.
To: HERCULES CAPITAL, INC., AGENT
Reel/Frame 046023/0441 →
SECURITY INTEREST Recorded Nov 2, 2017
From: QUID, INC.
To: HERCULES CAPITAL, INC., AGENT
Reel/Frame 044023/0520 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2017
From: LOWE, MARY KATE; TACCHI, RUGGERO ALTAIR; MARRS, ALEX; LOVE, ORIANA JEANNETTE
To: QUID, INC.
Reel/Frame 041113/0967 →