# US 9,519,528 B2 · Checking undoability of an API-controlled computing system

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

- Number: US 9,519,528 B2
- Document ID: US9519528B2
- Status: Granted
- Kind: B2
- Application number: 14/784,887
- Filed: 2014-04-14
- Published: 2016-03-17
- Granted: 2016-12-13
- Earliest claimed: 2013-04-19
- Assignees: National ICT Australia Limited
- Applicants: National Ict Australia Limited
- Inventors: Hiroshi Wada; Ingo Weber
- Web page: https://patentgrep.com/patent/US9519528B2

## CPC

- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 11/008: {Reliability or availability analysis}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present invention generally relates to an application program interface (API)-controlled computing system (100). A computer-implemented method is proposed for determining undoability of an action to be conducted in the API-controlled computing system (100) represented by a formal domain model. A set of pre-states of the API-controlled computing system (100) for the action are obtained. A set of post-states of the API-controlled computing system (100) corresponding to each pre-state in the set of pre-states for the action are obtained. The method automatically determines if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states by using a reachability task for the post-state and its pre-state. The action to be conducted in the API-controlled computing system (100) is undoable if each post-state in each set of post-states of the API-controlled computing system (100) can be undone to its pre-state in the set of pre-states.

## Claims

### Claim 1

A computer-implemented method for determining undoability of an action to be conducted in an API-controlled computing system represented by a formal domain model, comprising:
obtaining a set of pre-states of the API-controlled computing system for the action;
obtaining a set of post-states of the API-controlled computing system corresponding to each pre-state in the set of pre-states for the action;
automatically determining if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states by using a reachability task for the post-state and its pre-state; and
determining the action to be conducted in the API-controlled computing system is undoable if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the set of pre-states comprises only one pre-state of the API-controlled computing system for the action.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the set of pre-states comprises all possible pre-states of the API-controlled computing system for the action.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the action includes at least one precondition and at least one effect, and the set of pre-states consists of states constructed from the at least one precondition and the at least one effect of the action, wherein the constructed states are sufficient to determine the undoability of the action.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the formal domain model is a formal domain model projected from another formal domain model representing the API-controlled computing system.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the set of post-states comprises only one post-state.

### Claim 7

The method according to 1, wherein the set of post-states comprises more than one post-states.

### Claim 8 (depends on 1)

The method according to claim 1, the method further comprising determining a solution to undo the action by using the reachability task if the action is undoable.

### Claim 9 (depends on 1)

The method according to claim 1, further comprising allowing the action to be conducted if the action is determined to be undoable.

### Claim 10 (depends on 1)

The method according to claim 1, further comprising preventing the action from being conducted or replacing the action with one or more substantially equivalent undoable actions if the action is not determined to be undoable.

### Claim 11 (depends on 1)

The method according to claim 1, wherein the API-controlled computing system comprises a memory-state-based system that is managed or operated only through an application program interface.

### Claim 12 (depends on 1)

The method according to claim 1, wherein the formal domain model comprises a planning domain model.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the action comprises a planning action.

### Claim 14 (depends on 12)

The method according to claim 12, wherein the reachability task comprises a planning task.

### Claim 15 (depends on 1)

The method according to claim 1, wherein the formal domain model comprises a graph domain model.

### Claim 16 (depends on 15)

The method according to claim 15, wherein the action comprises a graph action.

### Claim 17 (depends on 15)

The method according to claim 15, wherein the reachability task comprises graph reachability analysis.

### Claim 18

A non-transitory computer-readable medium, including computer-executable instructions stored thereon, for determining undoability of an action to be conducted in an API-controlled computing system represented by a formal domain model, when executed by a processor, causes the processor to:
obtain a set of pre-states of the API-controlled computing system for the action;
obtain a set of post-states of the API-controlled computing system corresponding to each pre-state in the set of pre-states for the action;
automatically determine if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states by using a reachability task for the post-state and its pre-state; and
determine the action to be conducted in the API-controlled computing system is undoable if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states.

### Claim 19

A computer system for determining undoability of an action to be conducted in an API-controlled computing system represented by a formal domain model, the computer system comprising a processor that is adapted to:
obtain a set of pre-states of the API-controlled computing system for the action;
obtain a set of post-states of the API-controlled computing system corresponding to each pre-state in the set of pre-states for the action;
automatically determine if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states by using a reachability task for the post-state and its pre-state; and
determine the action to be conducted in the API-controlled computing system is undoable if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states.

### Claim 20 (depends on 1)

A computer-implemented method for determining undoability of an API-controlled computing system, comprising:
determining undoability of each action in a set of actions to be conducted in the API-controlled computing system according to claim 1; and
determining that the API-controlled computing system is undoable if each action in the set of actions to be conducted in API-controlled computing system is undoable.

### Claim 21

A non-transitory computer-readable medium, including computer-executable instructions stored thereon for determining undoability of an API-controlled computing system, when executed by a processor, causes the processor to:
determine undoability of each action in a set of actions to be conducted in the API-controlled computing system by:
obtaining a set of pre-states of the API-controlled computing system for the action;
obtaining a set of post-states of the API-controlled computing system corresponding to each pre-state in the set of pre-states for the action;
automatically determining if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states by using a reachability task for the post-state and its pre-state; and
determining the action to be conducted in the API-controlled computing system is undoable if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states; and
determine that the API-controlled computing system is undoable if each action in the set of actions to be conducted in API-controlled computing system is undoable.

### Claim 22

A computer system for determining undoability of an API-controlled computing system, the computer system comprising a processor that is adapted to:
determine undoability of each action in a set of actions to be conducted in the API-controlled computing system by:
obtaining a set of pre-states of the API-controlled computing system for the action;
obtaining a set of post-states of the API-controlled computing system corresponding to each pre-state in the set of pre-states for the action;
automatically determining if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states by using a reachability task for the post-state and its pre-state; and
determining the action to be conducted in the API-controlled computing system is undoable if each post-state in each set of post-states of the API-controlled computing system can be undone to its pre-state in the set of pre-states; and
determine that the API-controlled computing system is undoable if each action in the set of actions to be conducted in the API-controlled computing system is undoable.
