# US 10,503,744 B2 · Dialog system for transitioning between state diagrams

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

- Number: US 10,503,744 B2
- Document ID: US10503744B2
- Status: Granted
- Kind: B2
- Application number: 15/459,447
- Filed: 2017-03-15
- Published: 2018-06-07
- Granted: 2019-12-10
- Earliest claimed: 2016-12-06
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Priyanka Khaitan; Haichao Wei; Kevin Hsu; Mitchell Clark
- Web page: https://patentgrep.com/patent/US10503744B2

## CPC

- G06F 16/248: Presentation of query results
- G06F 16/3325: {Reformulation based on results of preceding query}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 16/24578: {using ranking}
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F 16/258: {Data format conversion from or to a database}
- G06F 16/3322: {using system suggestions (G06F16/3325 takes precedence)}
- G06F 16/3323: {using document space presentation or visualization, e.g. category, hierarchy or range presentation and selection}
- G06F 16/3329: Natural language query formulation
- G06F 16/84: Mapping; Conversion
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/986: {Document structures and storage, e.g. HTML extensions}
- 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 provided for receiving and processing a query to determine an intent of the query, and analyzing the intent of the query to determine that the intent of the query is associated with a use case state diagram. Systems and methods further provide for traversing a plurality of nodes in the user case state diagram to generate a value for each relevant node, performing an operation associated with the query using the generated values, and providing the results of the operation to a computing device.

## Claims

### Claim 1

A method comprising:
determining, by a server computer, that an intent of a first query received from a user via a computing device is associated with a first use case state diagram of a plurality of predetermined use case state diagrams, wherein the first use case state diagram comprises a plurality of nodes to traverse to satisfy a query and wherein each node comprises a key-value pair;
traversing the first use case state diagram, wherein traversing the first use case state diagram comprises generating and storing a value for each node in the first use case state diagram based on available data or data requested from the computing device;
during traversal of the first use case state diagram, receiving; response data in response to data requested from the computing device;
determining that the response data is a second query with an intent associated with a second use case state diagram of the plurality of predetermined use case state diagrams;
traversing the second use case state diagram to provide a response to the second query;
receiving a third query from the computing device;
processing the third query to determine an intent of the third query;
determining that the intent of the third query is associated with the first use case state diagram, wherein generated values for a plurality of nodes of the first use case state diagram continue to persist in memory;
determining a node where the user left off in the first use case diagram based on the generated values;
continuing from the node where the user left off in the first user case diagram, for each node in a flow of the first use case state diagram:
determining, by the server computer, whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node, generating, by the server computer, the value for the node based on the data, and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating, by the server computer, a request message to request the data from the computing device, receiving, by the server computer, the data from the computing device, generating the value for the node based on the data from the computing device, and storing the value in the key-value pair for the node;
performing, by the server computer, an operation associated with the third query, using the key-value pairs for the plurality of nodes that contain generated values; and
providing, by the server computer, results of the operation to the computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the value for a node of the first state diagram is stored in volatile memory instead of a permanent storage device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the key in the key-value pair is a question or request for information associated with the node and wherein the value is the data associated with an answer or received data requested.

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of nodes comprise conditional nodes and non-conditional nodes.

### Claim 5 (depends on 1)

The method of claim 1, wherein each node of the plurality of nodes-comprises a unique identifier to identify each node.

### Claim 6 (depends on 1)

The method of claim 1, wherein each node of the plurality of nodes comprises a plurality of keys.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
deleting the generated values from memory after providing the results of the operation to the computing device.

### Claim 8

A server computer comprising:
determining that an intent of a first query received from a user via a computing device is associated with a first use case state diagram of a plurality of predetermined use case state diagrams, wherein the first use case state diagram comprises a plurality of nodes to traverse to satisfy a query and wherein each node comprises a key-value pair;
traversing the first use case state diagram, wherein traversing the first use case state diagram comprises generating and storing a value for each node in the first use case state diagram based on available data or data requested from the computing device;
during traversal of the first use case state diagram, receiving response data in response to data requested from the computing device;
determining that the response data is a second query with an intent associated with a second use case state diagram of the plurality of predetermined use case state diagrams;
traversing the second use case state diagram to provide a response to the second query;
receiving a third query from the computing device;
processing the third query to determine an intent of the third query;
determining that the intent of the third query is associated with the first use case state diagram, wherein generated values for a plurality of nodes of the first use case state diagram continue to persist in memory;
determining a node where the user left off in the first use case diagram based on the generated values;
continuing from the node where the user left off in the first user case diagram, for each node in a flow of the first use case state diagram:
determining whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node, generating the value for the node based on the data, and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating a request message to request the data from the computing device, receiving the data from the computing device, generating the value for the node based on the data from the computing device, and storing the value in the key-value pair for the node;
performing an operation associated with the third query, using the key-value pairs for the plurality of nodes that contain generated values; and
providing results of the operation to the computing device.

### Claim 9 (depends on 8)

The server computer of claim 8, wherein the value for a node of the first state diagram is stored in volatile memory instead of a permanent storage device.

### Claim 10 (depends on 8)

The server computer of claim 8, wherein the key in the key-value pair is a question or request for information associated with the node and wherein the value is the data associated with an answer or received data requested.

### Claim 11 (depends on 8)

The server computer of claim 8, wherein the plurality of nodes comprise conditional nodes and non-conditional nodes.

### Claim 12 (depends on 8)

The server computer of claim 8, wherein each node of the plurality of nodes comprises a unique identifier to identify each node.

### Claim 13 (depends on 8)

The server computer of claim 8, the operations further comprising:
deleting the generated values from memory after providing the results of the operation to the computing device.

### Claim 14

A non-transitory computer-readable medium comprising instructions stored thereon that are executable by at least one processor to cause a computing device to perform operations comprising:
determining that an intent of a first query received from a user via a computing device is associated with a first use case state diagram of a plurality of predetermined use case state diagrams, wherein the first use case state diagram comprises a plurality of nodes to traverse to satisfy a query and wherein each node comprises a key-value pair;
traversing the first use case state diagram, wherein traversing the first use case state diagram comprises generating and storing a value for each node in the first use case state diagram based on available data or data requested from the computing device;
during traversal of the first use case state diagram, receiving response data in response to data requested from the computing device;
determining that the response data is a second query with an intent associated with a second use case state diagram of the plurality of predetermined use case state diagrams;
traversing the second use case state diagram to provide a response to the second query;
receiving a third query from the computing device;
processing the third query to determine an intent of the third query;
determining that the intent of the third query is associated with the first use case state diagram, wherein generated values for a plurality of nodes of the first use case state diagram continue to persist in memory;
determining a node where the user left off in the first use case diagram based on the generated values;
continuing from the node where the user left off in the first user case diagram, for each node in a flow of the first use case state diagram:
determining whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node, generating the value for the node based on the data, and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating a request message to request the data from the computing device, receiving the data from the computing device, generating the value for the node based on the data from the computing device, and storing the value in the key-value pair for the node;
performing an operation associated with the third query, using the key-value pairs for the plurality of nodes that contain generated values; and
providing results of the operation to the computing device.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
wherein traversing the first use case diagram comprises, for each node in a flow of the first use case state diagram:
determining whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node the value for the node based on the data, and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating a request message to request the data from the computing device, receiving the data from the computing device, generating the value for the node based on the data received from the computing device, and storing the value in the key-value pair for the node.

### Claim 16 (depends on 1)

The method of claim 1, wherein determining that the intent of the first query is associated with the first use case state diagram of the plurality of predetermined use case diagrams comprises mapping the intent to a use case of the first use case state diagram.

### Claim 17 (depends on 1)

The method of claim 1, wherein traversing the second use case state diagram comprises:
for each node in a flow of the second use case state diagram:
determining whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node, generating the value for the node based on the data and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating a request message to request the data from the user, receiving the data from the user, generating the value for the node based on the data received from the computing device, and storing the value in the key-value pair for the node;
performing an operation associated with the response data, using the key-value pairs for the plurality of nodes that contain generated values; and
providing results of the operation to the computing device.

### Claim 18 (depends on 8)

The server computer of claim 8,
wherein traversing the first use case diagram comprises, for each node in a flow of the first use case state diagram:
determining whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node the value for the node based on the data, and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating a request message to request the data from the computing device, receiving the data from the computing device, generating the value for the node based on the data received from the computing device, and storing the value in the key-value pair for the node.

### Claim 19 (depends on 8)

The server computer of claim 8, wherein determining that the intent of the first query is associated with the first use case state diagram of the plurality of predetermined use case diagrams comprises mapping the intent to a use case of the first use case state diagram.

### Claim 20 (depends on 8)

The server computer of claim 8, wherein traversing the second use case state diagram comprises:
for each node in a flow of the second use case state diagram:
determining whether data is available to determine a value for the node;
based on a determination that data is available to determine a value for the node, generating the value for the node based on the data and storing the value in the key-value pair for the node;
based on a determination that data is not available to determine a value for the node, generating a request message to request the data from the user, receiving the data from the user, generating the value for the node based on the data received from the computing device, and storing the value in the key-value pair for the node;
performing an operation associated with the response data; using the key-value pairs for the plurality of nodes that contain generated values; and
providing results of the operation to the computing device.
