# US 10,769,188 B2 · Text searches on graph data

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

- Number: US 10,769,188 B2
- Document ID: US10769188B2
- Status: Granted
- Kind: B2
- Application number: 15/946,379
- Filed: 2018-04-05
- Published: 2019-10-10
- Granted: 2020-09-08
- Earliest claimed: 2018-04-05
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Jan Bross; Marcus Paradies; Romans Kasperovics; Thomas Fischer; Markus Fath
- Web page: https://patentgrep.com/patent/US10769188B2

## CPC

- G06F 16/3344: {using natural language analysis}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for performing text searches on graph data stored in a database is provided. The method may include receiving, from a client, a request to perform a text search to locate a target string in the graph data stored in the database. The request may be in accordance with a declarative graph query configured to query the graph data stored in the database. The response to the request may include performing the text search to locate, in the graph data stored in the database, one or more records of strings that are exact matches, approximate matches, and/or linguistic matches for the target string. Related systems and articles of manufacture, including computer program products, are also provided.

## Claims

### Claim 1

A system, comprising:
at least one data processor; and
at least one memory storing instructions which, when executed by the at least one data processor, result in operations comprising:
receiving, from a client, a request to locate a target string in a graph data stored in a database, the request comprising a declarative graph query configured to query the graph data stored in the database, the graph data including a first vertex, a second vertex, and an edge interconnecting the first vertex and the second vertex, the first vertex representing a first string, the second vertex representing a second string, each of the first string and the second string corresponding to a word and/or a portion of a word, and the first string and the second string forming one or more sentences based at least in part on a structural relationship indicated by the edge interconnecting the first vertex and the second vertex; and
responding to the request by at least identifying, in the graph data stored in the database, a first record of a first sentence including a first string that is a linguistic match for the target string, the linguistic match comprising a derivation and/or a conjugation of the target string.

### Claim 2 (depends on 1)

The system of claim 1, wherein the structural relationship between the first string and the second string is determined by one or more grammatical rules including a syntax, a morphology, a semantics, a phonetics, and/or a pragmatics.

### Claim 3 (depends on 1)

The system of claim 1, wherein the first record is identified based at least on the derivation and/or the conjugation of the target string being part of the first sentence associated with the first record.

### Claim 4 (depends on 1)

The system of claim 1, wherein the database comprises a relational database that includes a vertex table and an edge table for storing the graph data, and wherein the storage of the graph data includes storing a key and/or an attribute associated with each of the first vertex, the second vertex, and/or the edge.

### Claim 5 (depends on 1)

The system of claim 1, further comprising:
responding to the request by at least identifying, in the graph data stored in the database, a second record of a second sentence including a second string that is an exact match for the target string.

### Claim 6 (depends on 5)

The system of claim 5, wherein the exact match for the target string is identical to the target string including a pattern associated with the target string as specified by one or more operators included in the target string.

### Claim 7 (depends on 1)

The system of claim 1, further comprising:
responding to the request by at least identifying, in the graph data stored in the database, a second record of a second sentence including a second string that is an approximate match for the target string.

### Claim 8 (depends on 7)

The system of claim 7, wherein the approximate match for the target string includes a first sub string present in the target string, and wherein the approximate match may include an insertion, deletion, substitution, and/or transposition of a second substring from the target string.

### Claim 9 (depends on 1)

The system of claim 1, further comprising:
executing, based on at least a portion of a result of the request, a graph algorithm.

### Claim 10

A computer-implemented method, comprising:
receiving, from a client, a request to locate a target string in a graph data stored in a database, the request comprising a declarative graph query configured to query the graph data stored in the database, the graph data including a first vertex, a second vertex, and an edge interconnecting the first vertex and the second vertex, the first vertex representing a first string, the second vertex representing a second string, each of the first string and the second string corresponding to a word and/or a portion of a word, and the first string and the second string forming one or more sentences based at least in part on a structural relationship indicated by the edge interconnecting the first vertex and the second vertex; and
responding to the request by at least identifying, in the graph data stored in the database, a first record of a first sentence including a first string that is a linguistic match for the target string, the linguistic match comprising a derivation and/or a conjugation of the target string.

### Claim 11 (depends on 10)

The method of claim 10, wherein the structural relationship between the first string and the second string is determined by one or more grammatical rules including a syntax a morphology, a semantics, a phonetics, and/or a pragmatics.

### Claim 12 (depends on 10)

The method of claim 10, wherein the first record is identified based at least on the derivation and/or the conjugation of the target string being part of the first sentence associated with the first record.

### Claim 13 (depends on 10)

The method of claim 10, wherein the database comprises a relational database that includes a vertex table and an edge table for storing the graph data, and wherein the storage of the graph data includes storing a key and/or an attribute associated with each of the first vertex, the second vertex, and/or the edge.

### Claim 14 (depends on 10)

The method of claim 10, further comprising:
responding to the request by at least identifying, in the graph data stored in the database, a second record of a second sentence including a second string that is an exact match for the target string.

### Claim 15 (depends on 14)

The method of claim 14, wherein the exact match for the target string is identical to the target string including a pattern associated with the target string as specified by one or more operators included in the target string.

### Claim 16 (depends on 10)

The method of claim 10, further comprising:
responding to the request by at least identifying, in the graph data stored in the database, a second record of a second sentence including a second string that is an approximate match for the target string.

### Claim 17 (depends on 16)

The method of claim 16, wherein the approximate match for the target string includes a first sub string present in the target string, and wherein the approximate match may include an insertion, deletion, substitution, and/or transposition of a second substring from the target string.

### Claim 18

A non-transitory computer-readable medium storing instructions, which when executed by at least one data processor, result in operations comprising:
receiving, from a client, a request to locate a target string in a graph data stored in a database, the request comprising a declarative graph query configured to query the graph data stored in the database, the graph data including a first vertex, a second vertex, and an edge interconnecting the first vertex and the second vertex, the first vertex representing a first string, the second vertex representing a second string, each of the first string and the second string corresponding to a word and/or a portion of a word, and the first string and the second string forming one or more sentences based at least in part on a structural relationship indicated by the edge interconnecting the first vertex and the second vertex; and
responding to the request by at least identifying, in the graph data stored in the database, a first record of a first sentence including a first string that is a linguistic match for the target string, the linguistic match comprising a derivation and/or a conjugation of the target string.
