# US 2018/0322189 A1 · Fuzzy matching for computing resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0322189 A1
- Document ID: US20180322189A1
- Status: Published application
- Kind: A1
- Application number: 15/586,037
- Filed: 2017-05-03
- Published: 2018-11-08
- Earliest claimed: 2017-05-03
- Assignees: ServiceNow, Inc.
- Applicants: ServiceNow, Inc.
- Inventors: Yu Xia
- Web page: https://patentgrep.com/patent/US20180322189A1

## CPC

- G06F 16/3344: {using natural language analysis}
- G06F 9/30018: {Bit or string instructions}
- G06F 9/30021: {Compare instructions, e.g. Greater-Than, Equal-To, MINMAX}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/3334: {Selection or weighting of terms from queries, including natural language queries}
- G06F 16/90344: {by using string matching techniques}
- H04L 41/085: Retrieval of network configuration; Tracking network configuration history
- H04L 41/0859: by keeping history of different configuration generations or by rolling back to previous configuration versions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods are disclosed for normalizing strings to identify computing resources and improve performance and utilization of computing resources. For example, methods may include determining a comparison length based on lengths of strings in a set of strings; padding a first string from the set of strings to the comparison length to obtain a padded string; receiving a second string; determining a distance between the second string and the padded string; and identifying a match between the first string and the second string based on the distance.

## Claims

### Claim 1

A system operable to normalize strings to identify computing resources and facilitate computing network operations, the system comprising:
a memory; and
a processor, wherein the memory includes instructions executable by the processor to cause the system to:
determine a comparison length based on lengths of strings in a set of strings, where the strings in the set of strings are associated with computing resources;
pad a first string from the set of strings to the comparison length to obtain a padded string;
receive a second string;
determine a count of character operations to transform from the second string to the padded string; and
identify a match between the first string and the second string based on the count.

### Claim 2 (depends on 1)

The system of claim 1, wherein the memory includes instructions executable by the processor to cause the system to:
responsive to the match, modify the second string based on the first string from the set of strings to obtain a normalized string; and
store, display, or transmit the normalized string.

### Claim 3 (depends on 1)

The system of claim 1, wherein the instructions to determine the comparison length include instructions executable by the processor to cause the system to:
determine the comparison length as a weighted average of lengths of strings in the set of strings.

### Claim 4 (depends on 1)

The system of claim 1, wherein the instructions to determine the comparison length include instructions executable by the processor to cause the system to:
rank software publishers associated with strings in the set of strings based on indications of an extent or frequency of installations of software published by the software publishers;
determine respective weights for strings in the set of strings based on the rank of a software publisher associated with the respective string; and
determine a weighted average of lengths of strings in the set of strings using the respective weights for the strings in the set of strings.

### Claim 5 (depends on 1)

The system of claim 1, wherein the instructions to pad the first string to the comparison length include instructions executable by the processor to cause the system to:
append one or more randomly generated characters to the first string.

### Claim 6 (depends on 1)

The system of claim 1, wherein the instructions to pad the first string to the comparison length include instructions executable by the processor to cause the system to:
append one or more escaped characters to the first string, wherein the one or more escaped characters do not to occur in the set of strings.

### Claim 7 (depends on 1)

The system of claim 1, wherein the instructions to determine the count include instructions executable by the processor to cause the system to:
determine the count using a dynamic programming algorithm to determine a Damerau-Levenshtein distance between the second string and the padded string.

### Claim 8 (depends on 1)

The system of claim 1, wherein the instructions to identify the match include instructions executable by the processor to cause the system to:
compare the count to a threshold; and
identify the match between the first string and the second string responsive to the count being below the threshold.

### Claim 9 (depends on 1)

The system of claim 1, wherein the memory includes instructions executable by the processor to cause the system to:
update the set of strings by adding or removing one or more strings from the set of strings; and
responsive to the update, determine the comparison length based on lengths of strings in a set of strings.

### Claim 10 (depends on 1)

The system of claim 1, wherein the first string is associated with a record for an installed software, the second string is associated with a software usage record, and the memory includes instructions executable by the processor to cause the system to:
responsive to the match, uninstall the installed software.

### Claim 11

A method for normalizing strings to identify computing resources and improve performance and utilization of computing resources, the method comprising:
determining a comparison length based on lengths of strings in a set of strings;
padding a first string from the set of strings to the comparison length to obtain a padded string;
receiving a second string;
determining a distance between the second string and the padded string; and
identifying a match between the first string and the second string based on the distance.

### Claim 12 (depends on 11)

The method of claim 11, comprising:
responsive to the match, modifying the second string based on the first string from the set of strings to obtain a normalized string; and
storing, displaying, or transmitting the normalized string.

### Claim 13 (depends on 11)

The method of claim 11, wherein determining the comparison length comprises:
determining the comparison length as a weighted average of lengths of strings in the set of strings.

### Claim 14 (depends on 11)

The method of claim 11, wherein determining the comparison length comprises:
ranking software publishers associated with strings in the set of strings based on indications of an extent or frequency of installations of software published by the software publishers;
determining respective weights for strings in the set of strings based on the rank of a software publisher associated with the respective string; and
determining a weighted average of lengths of strings in the set of strings using the respective weights for the strings in the set of strings.

### Claim 15 (depends on 11)

The method of claim 11, wherein padding the first string to the comparison length comprises:
appending one or more randomly generated characters to the first string.

### Claim 16 (depends on 11)

The method of claim 11, wherein padding the first string to the comparison length comprises:
appending one or more escaped characters to the first string, wherein the one or more escaped characters do not to occur in the set of strings.

### Claim 17 (depends on 11)

The method of claim 11, wherein determining the distance comprises:
using a dynamic programming algorithm to determine a Damerau-Levenshtein distance between the second string and the padded string.

### Claim 18 (depends on 11)

The method of claim 11, comprising:
responsive to the match, uninstalling an installed software, wherein the first string is associated with a record for the installed software and the second string is associated with a software usage record.

### Claim 19

A system operable to facilitate matching of heterogeneous strings to identify computing resources and improve performance and utilization of computing resources, the system comprising:
a memory; and
a processor, wherein the memory includes instructions executable by the processor to cause the system to:
pad a first string from a set of strings to a comparison length to obtain a padded string;
receive a second string;
determine a count of character operations to transform from the second string to the padded string; and
identify a match between the first string and the second string based on the count.

### Claim 20 (depends on 19)

The system of claim 19, wherein the first string is associated with a record for an installed software, the second string is associated with a software usage record, and the memory includes instructions executable by the processor to cause the system to:
responsive to the match, uninstall the installed software.
