Personal tools
  • We're Hiring!

You are here: Home Documentation Previous versions OME Server Conceptual Framework Analysis Executions

Analysis Executions

When executing an analysis chain, the analysis engine keeps a complete record of what is being done. It does this by creating three kinds of execution objects — module executions, node executions, and chain executions.

Module executions and node executions are distinct objects because of analysis result reuse. Currently, modules are assumed to be deterministic; that, given the same set of inputs, the module will always produce the same set of outputs. This allows the analysis engine to reuse the results of a module if it determines that it has been executed before. A module execution records when an analysis module was actually executed to generate results. A node execution records when a module execution was used to satisfy the execution of a node. With the reuse of results, there can be more node executions than there are module executions. Each time the engine reuses results, it creates a new node execution that is satisfied by an existing module execution.

Part of the module execution object is a list of the inputs that were provided to the module. In order to save space in the database, these are not specified as a list of attributes; rather, each actual input in the module execution is another module execution, called the input module execution. The actual list of attributes can be fully reconstructed from this information. The formal input has a semantic type; the actual input is the list of all of the attributes of this type created by the input module execution.

A chain execution simply records the fact that the user attempted to execute a well-formed chain against a dataset. It does not necessarily signify that the chain successfully completed executing. If any modules produced an error condition, or if the chain was not able to finish for any other reason, the chain execution will be marked as incomplete.

Document Actions