Computer-implemented method for monitoring and storing data in a structured data model pertaining to business processes, the structured data model capturing causal linkages in events making up the processes and being usable to serve reasoned responses to queries on how the data may evolve to possible and probable future states of the business processes, the computer having access to a plurality of stencils, each stencil being for one of a plurality of business processes, each stencil being a homogeneously structured program-code template by which a processor may instantiate a process object to monitor progress of a process through a sequence of a predefined number of at least two discretized canonical states universal to each stencil for all modelled processes, the stencil defining:
- a process graph for the modelled process represented by the stencil, the process graph comprising:
- event-nodes representing:
- events to be received by the computing apparatus in use as data messages in a stream or queue;
- or
- the absence of receipt of a given event within a time interval;
- wherein the events selected for the process graph include or infer information updating knowledge concerning the progress of the modelled business process;
- and
- edges joining the event-nodes, the edges representing possible causal linkages of possible transitions between events;
- wherein the process graph is arranged as a directed root tree encoding domain-specific prior knowledge about how the business process propagates from a root event-node at which the process is a first, initial state to one or more leaf event-nodes defining one or more terminal mutually exclusive possible realities in which the process is considered to be in a final, done state, each edge being assigned a weight indicating the expected probability of monitored instances of the process transitioning from one event to another along a path to a given reality, each edge being further assigned a time interval within which the process is expected to traverse the edge to transition between the intersecting event-nodes;
- one or more attributes for the modelled process;
- and
- a respective schedule function for each attribute and for the process, each schedule function specifying a mapping of states to events in the event-nodes of the process graph causing a transition of the respective attribute or process to a corresponding state, wherein the states in sequence represent indicators of increasing certainty about the progress of the processes and their attribute values from the initial state of the process to the final, done state of the process;
- the method comprising:
- monitoring events received as messages in a stream or queue;
- in response to receipt of any event matching an event-node in the process graph of a stencil for a given business process, instructing a process object instantiated for the process based on the stencil for that process to transition to the corresponding event-node in the process graph, thereby causing the process object to generate and store in a database record at least:
- a residual process graph including the remaining event-nodes and paths of the process graph of the stencil from the current event-node to the extant possible realities of the process stemming from the current event-node;
- respective state records for the process and each attribute, the state records storing:
- a timestamp representing the information time for the transition to the current event node;
- the current state of the process or attribute at the current event node, based on the schedule function for the process or the attribute;
- and
- for each attribute, a current expected value of the or each attribute for the process, updated based on information contained in the event and/or the stencil;
- the receipt of events for the business processes thereby generating a database of records digitizing data pertaining to the business processes and usable to serve reasoned responses to queries on how the data may evolve to possible and probable future states of the business processes.