Patent ID: 8219972

Claim:
A method, executed by a programmable processor, of specifying, generating, and running a data processing system, comprising the steps of: (a) providing a plurality of specifications, each of which defines valid argument values for said predicates, and refers to: (b) providing a plurality of predicates, each referring to a set of arguments, i. a set of variables, and ii. a set of clauses, (c) specifying some clauses of said specifications by referring to one of said predicates, and to variables of the specification to specify values for arguments of the predicate, (d) providing a plurality of plans, which are able to be run to generate sets of said valid argument values for said predicates, (e) providing a planning means which is able to generate said plans from said specifications, (f) providing an evaluation means which is able to run said plans to generate sets of said valid argument values, (g) providing an input means which is able to provide input data values for a set of the arguments of a predicate, (h) providing an output means which is able to output data, (i) inputting argument values from said input means, evaluating input argument values to generate output argument values using said evaluation means, and outputting argument values using said output means, (j) specifying some of said clauses by referring to: i. a set of generating clauses, which will generate a plurality of iterations, each with a set of valid variable values, and ii. a set of aggregating clauses, which specify arbitrary predicate relations between 1) a further set of variable values in a current iteration and 2) a further set of variable values in the previous iteration, whereby users of the system can define any computable result of the iterations.