IP Library Granted Patent US 11,256,685
Granted Patent B2
US 11,256,685 · App. 16/092,522 · Granted Feb 22, 2022

Removing wildcard tokens from a set of wildcard tokens for a search query

Inventors: Qiming Chen (Sunnyvale, CA); Meichun Hsu (Sunnyvale, CA); Malu G. Castellanos (Sunnyvale, CA)
Assignee: Micro Focus LLC
G06F16/242G06F16/3335
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 11,256,685
App. No.
16/092,522
Granted
Feb 22, 2022
Kind
B2
Abstract

In one example in accordance with the present disclosure, a method may include separating a list of keywords into a set of word tokens and a set of wildcard tokens. The method may also include removing each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens and removing each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens. The method may also include executing a search query comprising a new list of keywords that includes each wildcard token not removed from the set of wildcard tokens.

Claims (99)

1. A method for electronically removing keywords from a list of keywords in a search expression for retrieving documents stored electronically from a database, comprising:

entering the search expression for retrieving the document stored electronically from the database;

separating, by a processor, the list of keywords into a set of word tokens and a set of wildcard tokens,

wherein each wildcard token contains a wildcard character and one or more word characters and each word token contains one or more word characters and no wildcard character;

removing, by the processor, each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens,

removing, by the processor, each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens;

wherein removing each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens and removing each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens removes keywords from the list of keywords; and

executing, by the processor, a search query comprising a new list of keywords from the list of keywords separated into the set of word tokens and the set of wildcard tokens that includes each of the word tokens of the set of word tokens and each wildcard token not removed from the set of wildcard tokens.

2. The method of claim wherein each wildcard token is inferred by a word token if any string that matches the wildcard token also matches the word token.

3. The method of claim 1 , wherein each wildcard token is inferred by the at least one other wildcard token if any string that matches the wildcard token also matches the at least one other wildcard token.

4. The method of claim 1 , wherein the list of keywords is included in an SQL query and the new list of keywords is generated before execution of the SQL query.

5. The method of claim 1 , further comprising:

determining, whether a selected wildcard token belonging to the set of wildcard tokens begins with the wildcard character;

determining whether the selected wildcard token ends with the wildcard character; and

generating a first array containing each element of the selected wildcard token separated by the wildcard character,

wherein the first array includes a first character and a last character.

6. The method of claim 5 , further comprising:

determining that each element in the first array is contained in a first word token belonging to the set of word tokens;

determining that the first character of the first array is a first element of the first word token if the selected wildcard token does not begin with the wildcard character;

determining that the last character of the first array is a last element of the first word token if the selected wildcard token does not end with the wildcard character; and

removing the selected wildcard token from the set of wildcard tokens.

7. The method of claim 1 , further comprising:

determining, whether a selected wildcard token belonging to the set of wildcard tokens begins with the wildcard character;

determining whether the selected wildcard token ends with the wildcard character;

generating a first array containing each element of the selected wildcard token separated by the wildcard character,

wherein the first array includes a first character and a last character;

generating a second array containing each element in a comparison wildcard token separated by the wildcard character,

wherein the comparison wildcard token belonging to the set of wildcard tokens and the second array includes a beginning element and an end element;

determining that each element in the first array is contained in the second array;

determining that the first character of the first array is a same as the beginning element of the second array if the selected wildcard token does not begin with the wildcard character;

determining that the last character of the first array is a same as the end element of the second array if the selected wildcard token does not end with the wildcard character; and

removing the selected wildcard token from the set of wildcard tokens.

8. The method of claim 7 , further comprising:

determining that the comparison wildcard token begins with the wildcard character if the selected wildcard token begins with the wildcard character; and

determining that the comparison wildcard token ends with the wildcard character if the selected wildcard token ends with the wildcard character.

9. The method of claim 1 , wherein each wildcard token is inferred by a word token if each element of a string representing the wildcard token is contained in the word token, a first element of the string matches a first element of the word token if the wildcard token does not begin with the wildcard character and a last element of the string matches a last element of the word token if the wildcard token does not end with the wildcard character.

10. The method of claim 1 , wherein each wildcard token is inferred by the at least one other wildcard token if each element of a string representing the wildcard token is contained in a string representing the at least one other wildcard token, the wildcard token and the at least one other wildcard token begin with the wildcard character, the wildcard token and the at least one other wildcard token end with the wildcard character, a first element of the string of the wildcard token matches a first element of the string of the at least one other wildcard token if the wildcard token does not begin with the wildcard character and a last element of the string of the wildcard token matches a last element of the string of the at least one other wildcard token if the wildcard token does not end with the wildcard character.

11. A system for electronically removing keywords from a list of keywords in a search expression for retrieving documents stored electronically from a database, comprising:

a keyword separator to separate the list of keywords into a set of word tokens and a set of wildcard tokens,

wherein each wildcard token contains a wildcard character and one or more word characters and each word token contains one or more word characters and no wildcard character;

a first wildcard token remover to remove each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens;

wherein a first wildcard token is inferred by a first word token if any string that matches the first wildcard token also matches the first word token;

a second wildcard token remover to remove each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens,

wherein a second wildcard token is inferred by a third wildcard token if any string that matches the second wildcard token also matches the third wildcard token,

wherein removing each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens and removing each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens removes keywords from the list of keywords; and

a query executor to execute a search query comprising a new list of keywords from the list of keywords separated into the set of word tokens and the set of wildcard tokens that includes each of the word tokens of the set of word tokens and each wildcard token not removed from the set of wildcard tokens.

12. The system of claim 11 , wherein the first wildcard token remover is further configured to:

determine whether a selected wildcard token belonging to the set of wildcard tokens begins with the wildcard character;

determine whether the selected wildcard token ends with the wildcard character;

generate an array containing each element of the selected wildcard token separated by the wildcard character,

wherein the array includes a first character and a last character;

determine that each element in the array is contained in a selected word token belonging to the set of word tokens;

determine that the first character of the array is a first element of the selected word token if the selected wildcard token does not begin with the wildcard character;

determine that the last character of the array is a last element of the selected word token if the selected wildcard token does not end with the wildcard character; and

remove the selected wildcard token from the set of wildcard tokens.

13. The system of claim 11 , wherein the second wildcard token remover is further configured to:

determine whether a selected wildcard token belonging to the set of wildcard tokens begins with the wildcard character;

determine whether the selected wildcard token ends with the wildcard character;

generate a first array containing each element of the selected wildcard token separated by the wildcard character,

wherein the first array includes a first character and a last character;

generate a second array containing each element in a comparison wildcard token separated by the wildcard character,

wherein the second array includes a beginning element and an end element;

determine that each element in the first array is contained in the second array;

determine that the selected wildcard token does not begin with the wildcard character;

determine that the first character of the first array is a same as the beginning element of the second array;

determine that the last e character of the first array is a same as the end element of the second array; and

remove the selected wildcard token from the set of wildcard tokens.

14. The system of claim 11 , wherein any string that matches the first wildcard token also matched the first word token, includes each element in the string contained in the first word token, a first element of the string matches a first element of the first word token if the first wildcard token does not begin with the wildcard character and a last element of the string matches a last element of the first word token if the first wildcard token does not end with the wildcard character.

15. A non-transitory machine-readable storage medium encoded with instructions, the instructions being executable by a hardware processor of a system for electronically removing keywords from a list of keywords in a search expression for retrieving documents stored electronically from a database to cause the hardware processor to:

separate the list of keywords into a set of word tokens and a set of wildcard tokens,

wherein each wildcard token contains a wildcard character and one or more word characters and each word token contains one or more word characters and no wildcard character;

remove each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens;

remove each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens,

wherein removing each wildcard token in the set of wildcard tokens that is inferred by at least one word token in the set of word tokens and removing each wildcard token in the set of wildcard tokens that is inferred by at least one other wildcard token in the set of wildcard tokens removes keywords from the list of keywords;

generate a new list of keywords from the list of keywords separated into the set of word tokens and the set of wildcard tokens including each of the word tokens of the set of word tokens and each wildcard token not removed from the set of wildcard tokens; and

execute a search query using the new list of keywords.

16. The non-transitor machine-readable storage medium of claim 15 , wherein the instructions being executable by the hardware processor of the system cause the system to:

determine whether a selected wildcard token belonging to the set of wildcard tokens begins with the wildcard character;

determine whether the selected wildcard token ends with the wildcard character;

generate a first array containing each element of the selected wildcard token separated by the wildcard character,

wherein the first array includes a first character and a last character;

determine that each element in the first array is contained in a selected word token belonging to the set of word tokens;

determine that the first character of the first array is a first element of the selected word token if the selected wildcard token does not begin with the wildcard character;

determine that the last character of the first array is a last element of the selected word token if the selected wildcard token does not end with the wildcard character; and

remove the selected wildcard token from the set of wildcard tokens.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the instructions being executable by the hardware processor of the system cause the system to:

determine whether a selected wildcard token belonging to the set of wildcard tokens begins with a wildcard character;

determine whether the selected wildcard token ends with the wildcard character;

generate a first array containing each element of the selected wildcard token separated by the wildcard character,

wherein the first array includes a first character and a last character;

generate a second array containing each element in a comparison wildcard token separated by the wildcard character,

wherein the comparison wildcard token belongs to the set of wildcard tokens and the second array includes a beginning element and an end element;

determine that each element in the first array is contained in the second array;

determine whether the selected wildcard token begins with the wildcard character, if the comparison wildcard token begins with the wildcard character,

and if the comparison wildcard token does not begin with the wildcard character, determine that the first character of the first array is a same as the beginning element of the second array; and

determine whether the selected wildcard token ends with a wildcard character, if the comparison wildcard token ends with the wildcard character, and if the comparison wildcard token does not end with the wildcard character, determine that the last character of the first array is a same as the end element of the second array.

18. The non-transitory machine-readable storage medium of claim 15 , wherein the list of keywords is included in the search query and the new list of keywords is generated before execution of the search query.

19. The non-transitory machine-readable storage medium of claim 15 , wherein each wildcard token is inferred by a word token if each element of a string representing the wildcard token is contained in the word token, a first element of the string matches a first element of the word token if the wildcard token does not begin with the wildcard character and a last element of the string matches a last element of the word token if the wildcard token does not end with the wildcard character.

20. The on-transitory machine-readable storage medium of claim 15 , wherein each wildcard token is inferred by the at least one other wildcard token if each element of a string representing the wildcard token is contained in a string representing the at least one other wildcard token, the wildcard token and the at least one other wildcard token begin with the wildcard character, the wildcard token and the at least one other wildcard token end with the wildcard character, a first element of the string of the wildcard token matches a first element of the string of the at least one other wildcard token if the wildcard token does not begin with the wildcard character and a last element of the string of the wildcard token matches a last element of the string of the at least one other wildcard token if the wildcard token does not end with the wildcard character.

Assignments (7)
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2018
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 048103/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2018
From: CHEN, QIMING; HSU, MEICHUN; CASTELLANOS, MALU G.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 047487/0630 →