Patent ID: 8201160

Claim:
A data processing method for a data processing system having a processor comprising the steps of: receiving at said processor a model of a directed graph representing execution logic of a process flow, the model defining one or more nodes and edges of the directed graph, each node having a corresponding behavior defining execution of the node, and each edge having corresponding data defining a directional link from one node to another node and having a corresponding condition defining when the edge is to be traversed; said processor executing an initial transformation on the model of a directed graph by introducing a variable “next” to store a next node, Nx, to be executed and by replacing each edge condition, ci, where ci is the original guard of the edge N->Ni (for i=1 to n), with a term “if (cx) {next=Nx}”, where x is (i, i+1, . . . , i+n), on the model of the directed graph to produce a transformed graph; said processor executing a series of transformation rules on said transformed graph, according to a predefined priority for applying transformation rules, the transformation rules comprising a first rule for the elimination of an edge that links a node to itself, and a second rule for the elimination of an edge that links a node to another node, each rule including an update operation defining a new behaviour for the or each node affected by the elimination of a corresponding edge and updating edge conditions of any remaining edges to maintain the execution logic, wherein the second rule comprises at least one of a third rule for the elimination of an edge that links a source node to a target node, if and only if the source node has only one outgoing edge and the target node has only one incoming edge, a fourth rule for the elimination of an edge that links a source node to a target node, if and only if the source node has only one outgoing edge, and a fifth rule for the elimination of an edge that links a source node to a target node, if and only if the target node has only one incoming edge; and said processor creating an output according to the performance of the transformation rules.