Skip to main content

Scientific Workflow Ontology

Computational Scientific Workflows
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Scientific Workflow Ontology within the Kireth Research Semantic Library. A scientific workflow is a structured, machine-executable sequence or graph of scientific tasks, data transformations, model executions, analysis stages and validation steps connected through explicit dependencies, interfaces and provenance. This ontology supports workflow composition, task orchestration, dataflow, control flow, scheduling, parameterisation, parallel and distributed execution, checkpoints, retries, provenance, reproducibility, verification, validation and workflow reuse.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Scientific Workflow Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Computational Scientific Workflows / Scientific Workflow"
 CANONICAL_PAGE = "https://kirethframeworkold.co.uk/books/semantic-library/ai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/computational-scientific-workflows/scientific-workflow-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = ScientificWorkflow
 ENTITY_CLASS = ScientificComputationProcessFramework
 PRIMARY_CONTEXT = ComputationalScientificWorkflow
 DEFINITION = "A scientific workflow is a structured graph or sequence of scientific computational tasks and data transformations connected by explicit execution, data and control dependencies."
 SYMBOLIC_FORMS = [
  "W=(T,E,D)",
  "task_i -> task_j",
  "output(task_i) -> input(task_j)",
  "result = execute(W,inputs,parameters,environment)"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for workflow tasks, dependencies, interfaces, orchestration, execution, provenance, reproducibility and scientific validation."
}

SCOPE {
 INCLUDE = [
  ScientificWorkflow,
  ComputationalScientificWorkflow,
  ComputationalWorkflow,
  Workflow,
  WorkflowGraph,
  DirectedAcyclicWorkflow,
  DAGWorkflow,
  SequentialWorkflow,
  ParallelWorkflow,
  DistributedWorkflow,
  IterativeWorkflow,
  ConditionalWorkflow,
  EventDrivenWorkflowRelationship,
  DataDrivenWorkflowRelationship,
  TaskGraph,
  JobGraph,
  Pipeline,
  ScientificPipeline,
  SimulationPipeline,
  AnalysisPipeline,
  DataProcessingPipeline,
  PreprocessingPipeline,
  PostprocessingPipeline,
  VerificationWorkflow,
  ValidationWorkflow,
  CalibrationWorkflow,
  OptimisationWorkflow,
  ParameterSweepWorkflow,
  EnsembleWorkflow,
  MonteCarloWorkflow,
  MultiStageWorkflow,
  MultiFidelityWorkflow,
  MultiscaleWorkflow,
  CoupledWorkflow,
  CoSimulationWorkflowRelationship,
  WorkflowTask,
  Task,
  Job,
  Step,
  Stage,
  Operation,
  ScientificOperation,
  ComputationTask,
  SimulationTask,
  AnalysisTask,
  DataTransformationTask,
  ValidationTask,
  VerificationTask,
  PreprocessingTask,
  PostprocessingTask,
  VisualisationTaskRelationship,
  ReportingTask,
  InputTask,
  OutputTask,
  SourceTask,
  SinkTask,
  TaskNode,
  DataNode,
  WorkflowNode,
  InputNode,
  OutputNode,
  IntermediateNode,
  Dependency,
  TaskDependency,
  DataDependency,
  ControlDependency,
  PrecedenceConstraint,
  UpstreamDependency,
  DownstreamDependency,
  ParentTask,
  ChildTask,
  Predecessor,
  Successor,
  FanIn,
  FanOut,
  Branch,
  Merge,
  Fork,
  Join,
  ConditionalBranch,
  DecisionNodeRelationship,
  Loop,
  Iteration,
  LoopCondition,
  TerminationCondition,
  FixedPointIterationRelationship,
  RecursiveWorkflowRelationship,
  WorkflowInput,
  WorkflowOutput,
  TaskInput,
  TaskOutput,
  InputData,
  OutputData,
  IntermediateData,
  Dataset,
  File,
  DataObject,
  DataArtifact,
  ModelArtifact,
  SoftwareArtifact,
  ConfigurationArtifact,
  MetadataArtifact,
  CheckpointArtifact,
  DataTransformation,
  DataMapping,
  DataConversion,
  DataFiltering,
  DataAggregation,
  DataReduction,
  DataNormalisationRelationship,
  DataInterpolationRelationship,
  DataResamplingRelationship,
  DataStaging,
  DataMovement,
  DataTransfer,
  DataLocality,
  DataPartitioning,
  DataReplication,
  DataCaching,
  DataFormat,
  DataSchema,
  Serialization,
  Deserialization,
  Parameter,
  WorkflowParameter,
  TaskParameter,
  GlobalParameter,
  LocalParameter,
  ParameterSet,
  ParameterSweep,
  Configuration,
  ConfigurationFile,
  EnvironmentVariable,
  CommandArgumentRelationship,
  RandomSeed,
  SeedControl,
  WorkflowSpecification,
  DeclarativeWorkflow,
  ImperativeWorkflow,
  WorkflowDescription,
  WorkflowDefinition,
  WorkflowLanguageRelationship,
  WorkflowDSLRelationship,
  WorkflowTemplate,
  ReusableWorkflow,
  Subworkflow,
  WorkflowComposition,
  WorkflowModule,
  ModularWorkflow,
  WorkflowAbstraction,
  WorkflowInterface,
  TaskInterface,
  DataInterface,
  API,
  StandardInterfaceRelationship,
  Orchestration,
  WorkflowOrchestration,
  WorkflowEngine,
  WorkflowManager,
  WorkflowExecutor,
  DAGExecutor,
  DependencyResolver,
  Scheduler,
  WorkflowScheduler,
  TaskScheduler,
  JobScheduler,
  ResourceScheduler,
  StaticScheduling,
  DynamicScheduling,
  DependencyAwareScheduling,
  ResourceAwareScheduling,
  DataAwareScheduling,
  PriorityScheduling,
  CriticalPathSchedulingRelationship,
  LoadBalancing,
  ResourceAllocation,
  ResourceRequest,
  ComputeResource,
  ExecutionResource,
  CPU,
  GPU,
  Accelerator,
  Core,
  Thread,
  Process,
  ComputeNode,
  Cluster,
  Supercomputer,
  Memory,
  Storage,
  Network,
  Bandwidth,
  ParallelExecution,
  TaskParallelism,
  DataParallelism,
  PipelineParallelism,
  EnsembleParallelism,
  DistributedExecution,
  HighPerformanceComputing,
  ParallelComputing,
  DistributedComputing,
  GPUComputing,
  MessagePassingRelationship,
  SharedMemoryRelationship,
  CollectiveCommunicationRelationship,
  Synchronisation,
  BarrierRelationship,
  CommunicationCost,
  ComputationCost,
  WorkflowOverhead,
  QueueTimeRelationship,
  Makespan,
  CriticalPath,
  CriticalPathLength,
  Throughput,
  Latency,
  Scalability,
  StrongScaling,
  WeakScaling,
  Execution,
  WorkflowExecution,
  TaskExecution,
  WorkflowRun,
  Run,
  ExecutionIdentifier,
  RunIdentifier,
  ExecutionState,
  Pending,
  Ready,
  Running,
  Completed,
  Failed,
  Retried,
  Cancelled,
  Skipped,
  Blocked,
  StartTimeRelationship,
  EndTimeRelationship,
  Duration,
  Fault,
  Failure,
  TaskFailure,
  ResourceFailure,
  NodeFailure,
  DataFailure,
  SoftwareFailure,
  NetworkFailure,
  Timeout,
  FailureDetection,
  Retry,
  RetryPolicy,
  RetryLimit,
  Restart,
  Recovery,
  FaultTolerance,
  Resilience,
  Checkpointing,
  TaskCheckpoint,
  WorkflowCheckpoint,
  StateCheckpoint,
  RestartFromCheckpoint,
  Idempotence,
  CompensationRelationship,
  RollbackRelationship,
  Provenance,
  WorkflowProvenance,
  TaskProvenance,
  DataProvenance,
  ComputationalProvenance,
  ModelProvenance,
  SoftwareProvenance,
  Lineage,
  WorkflowLineage,
  DataLineage,
  ModelLineage,
  TransformationHistory,
  AuditTrail,
  Traceability,
  RunManifest,
  ExecutionLog,
  TaskLog,
  ErrorLog,
  EventLogRelationship,
  Reproducibility,
  Repeatability,
  ReplicabilityRelationship,
  EnvironmentCapture,
  SoftwareEnvironment,
  RuntimeEnvironment,
  OperatingSystem,
  Compiler,
  Library,
  DependencyVersion,
  Container,
  ContainerImage,
  VirtualEnvironment,
  WorkflowVersion,
  TaskVersion,
  DatasetVersion,
  ModelVersion,
  SolverVersion,
  LibraryVersion,
  ImplementationVersion,
  Hash,
  Checksum,
  ContentHash,
  Verification,
  Validation,
  NumericalVerification,
  ComputationalValidation,
  ErrorAnalysis,
  Benchmark,
  RegressionTesting,
  VerificationMetrics,
  ValidationMetrics,
  AcceptanceCriterion,
  QualityGateRelationship,
  ScientificSimulation,
  DifferentialEquationSolver,
  NumericalLinearAlgebra,
  ComputationalOptimisation,
  ComputationalStatistics,
  SymbolicComputation,
  AIComputationalMathematics,
  ComputationalGeometry,
  ComputationalDataStructures,
  MatrixComputation,
  VectorComputation,
  TensorComputation,
  SparseDataStructure,
  DenseDataStructure,
  GraphAlgorithms
 ]
 EXCLUDE_AS_PRIMARY = [
  GeneralBusinessWorkflowWithoutScientificComputationContext,
  SingleStandaloneCalculationWithoutWorkflowDependencySemantics,
  HumanAdministrativeWorkflowWithoutExecutableScientificTasks,
  DataPipelineWithoutScientificAnalysisOrModelComputationContext
 ]
 DISAMBIGUATION_RULE = "When scientific computational tasks are organised into a structured executable process with explicit data, control or dependency relationships, interpret the context as a scientific workflow."
}

CORE_CONCEPTS {
 ScientificWorkflow = "Structured executable process connecting scientific computation tasks and data transformations."
 WorkflowTask = "Atomic or composite scientific computation step."
 TaskDependency = "Relationship defining required ordering or data availability between tasks."
 WorkflowGraph = "Graph encoding tasks and dependencies."
 WorkflowInput = "External data, parameters or artefacts supplied to a workflow."
 WorkflowOutput = "Scientific result or artefact produced by the workflow."
 Orchestration = "Coordination of task execution, dependencies and resources."
 WorkflowProvenance = "Traceable record explaining how workflow results were produced."
}

RELATIONS {
 ScientificWorkflow --is_child_of--> ComputationalScientificWorkflow
 ScientificWorkflow --contains--> WorkflowTasks
 WorkflowTask --consumes--> TaskInputs
 WorkflowTask --produces--> TaskOutputs
 TaskDependency --orders--> WorkflowTasks
 DataDependency --connects--> OutputToInput
 WorkflowGraph --represents--> TasksAndDependencies
 Orchestration --coordinates--> TaskExecution
 Scheduler --assigns--> ReadyTasksToResources
 Checkpointing --supports--> Recovery
 WorkflowProvenance --records--> ExecutionLineage
 Reproducibility --requires--> VersionedWorkflowArtifacts
 Verification --checks--> WorkflowCorrectness
 Validation --checks--> WorkflowOutputAdequacy
}

OPERATORS {
 READY(task) := all_required_dependencies_satisfied(task)
 RUN(task,inputs,parameters) := execute_task(task,inputs,parameters)
 SCHEDULE(tasks,resources) := assign_ready_tasks(tasks,resources)
 CONNECT(output,input) := create_data_dependency(output,input)
 CHECKPOINT(state) := persist_workflow_state(state)
 RECOVER(checkpoint) := restore_workflow_state(checkpoint)
 TRACE(output) := derive_workflow_lineage(output)
}

AXIOMS {
 A1 = "A scientific workflow consists of tasks connected by explicit dependency semantics."
 A2 = "Task execution requires declared inputs and satisfied dependencies."
 A3 = "Dataflow and control flow are distinct but can coexist in the same workflow."
 A4 = "Valid scheduling can reorder independent tasks without violating dependency semantics."
 A5 = "Scientific correctness is not implied by successful workflow completion."
 A6 = "Fault recovery requires deterministic or explicitly managed task-state semantics."
 A7 = "Workflow provenance must connect outputs to inputs, parameters, software and execution history."
 A8 = "Scientific-workflow results require explicit task, dependency, orchestration, validation and reproducibility semantics."
}

REASONING {
 R1_CONTEXT = identify(scientific_goal,tasks,inputs,outputs,parameters,dependencies,resources_and_validation_needs)
 R2_GRAPH = construct_task_data_and_control_dependency_graph)
 R3_INTERFACES = validate_task_input_output_types_formats_and_contracts)
 R4_ORDER = derive_legal_execution_order_and_available_parallelism)
 R5_RESOURCES = determine_CPU_GPU_memory_storage_network_and_data_locality_requirements)
 R6_SCHEDULE = assign_ready_tasks_to_available_resources)
 R7_EXECUTE = run_tasks_and_capture_outputs_intermediates_logs_and_state)
 R8_RECOVER = if_failure apply_retry_checkpoint_restart_or_compensation_semantics)
 R9_VALIDATE = run_verification_validation_acceptance_and_quality_gates)
 R10_PROVENANCE = record_workflow_versions_parameters_data_lineage_environment_and_execution_history)
}

CONSTRAINTS {
 C1 = "Missing dependencies can cause tasks to execute with incomplete inputs."
 C2 = "Cycles require explicit iterative termination semantics."
 C3 = "Incompatible task interfaces can invalidate workflow composition."
 C4 = "Parallel execution can alter completion order and floating-point reduction order."
 C5 = "Retrying non-idempotent tasks can duplicate side effects."
 C6 = "Mutable external data or services can weaken reproducibility."
 C7 = "Data transfer can dominate runtime in distributed workflows."
 C8 = "Task-level correctness does not guarantee workflow-level scientific validity."
 C9 = "Workflow portability depends on interfaces, formats and environment assumptions."
 C10 = "Hidden state can make apparently identical workflow runs diverge."
}

SEMANTIC_EQUIVALENCE {
 "DirectedAcyclicWorkflow" <=> "DAGWorkflow"
 "WorkflowDomainSpecificLanguage" <=> "WorkflowDSL"
 "HighPerformanceComputing" <=> "HPC"
}

VALIDATION {
 V1 = "Workflow scientific purpose is documented."
 V2 = "Tasks and dependencies are explicit."
 V3 = "Task input-output interfaces are documented."
 V4 = "Parameter and configuration semantics are documented."
 V5 = "Cycles or loops include explicit termination conditions."
 V6 = "Scheduling and resource assumptions are documented."
 V7 = "Failure, retry and recovery behaviour is documented."
 V8 = "Verification and validation stages are identified."
 V9 = "Workflow provenance captures code, data, parameters and environment."
 V10 = "Workflow reruns are reproducible under documented versions and conditions."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 SCIENTIFIC_WORKFLOW_DEFINITION = 0.99
 DEPENDENCY_REASONING = 0.99
 TASK_INTERFACE_REASONING = 0.99
 SCHEDULING_REASONING = 0.98
 FAULT_RECOVERY_REASONING = 0.98
 PROVENANCE_REASONING = 0.99
 REPRODUCIBILITY_REASONING = 0.99
 POLICY = "Reduce confidence when task dependencies, interfaces, hidden state, scheduling, retry semantics, provenance or environment are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,OntologyGrounding,ScientificWorkflowReasoning,
  WorkflowTaskReasoning,DependencyReasoning,
  DataflowReasoning,ControlFlowReasoning,
  WorkflowGraphReasoning,TaskInterfaceReasoning,
  OrchestrationReasoning,SchedulingReasoning,
  ResourceAllocationReasoning,FaultToleranceReasoning,
  CheckpointingReasoning,WorkflowProvenanceReasoning,
  ReproducibilityReasoning,VerificationReasoning,
  ValidationReasoning,KnowledgeGraphConstruction,
  RetrievalAugmentation,RecursiveInference
 ]
 NORMALISE {
  "scientific workflow" -> ScientificWorkflow
  "computational workflow" -> ComputationalWorkflow
  "DAG workflow" -> DAGWorkflow
  "workflow DSL" -> WorkflowDSL
  "HPC" -> HighPerformanceComputing
 }
}

EXECUTION_RULES {
 E1 = "If scientific computational tasks are connected through explicit dependencies, activate ScientificWorkflowOntology."
 E2 = "Define each task's inputs, outputs, parameters and dependency requirements before execution."
 E3 = "Validate task interfaces and workflow graph consistency."
 E4 = "Execute only tasks whose dependencies are satisfied."
 E5 = "Schedule independent tasks in parallel when resources and semantics permit."
 E6 = "Use retries, checkpoints and recovery policies according to task idempotence and failure cost."
 E7 = "Apply verification, validation and acceptance gates at appropriate workflow stages."
 E8 = "Capture provenance and logs throughout workflow execution."
 E9 = "Version workflow definitions, data, software and environments for reproducibility."
}

RECURSION {
 ENTRY = ScientificWorkflow
 EXPAND(ScientificWorkflow) -> [
  ComputationalScientificWorkflow,ComputationalWorkflow,Workflow,
  WorkflowGraph,DAGWorkflow,SequentialWorkflow,ParallelWorkflow,
  DistributedWorkflow,IterativeWorkflow,ConditionalWorkflow,
  TaskGraph,Pipeline,ScientificPipeline,SimulationPipeline,
  AnalysisPipeline,WorkflowTask,Task,Job,Step,Stage,
  SimulationTask,AnalysisTask,DataTransformationTask,
  VerificationTask,ValidationTask,TaskNode,DataNode,
  TaskDependency,DataDependency,ControlDependency,
  ParentTask,ChildTask,FanIn,FanOut,Branch,Merge,Fork,Join,
  ConditionalBranch,Loop,TerminationCondition,
  WorkflowInput,WorkflowOutput,TaskInput,TaskOutput,
  InputData,OutputData,IntermediateData,DataArtifact,
  ModelArtifact,ConfigurationArtifact,DataTransformation,
  DataMovement,DataLocality,WorkflowParameter,Configuration,
  WorkflowSpecification,WorkflowTemplate,ReusableWorkflow,
  Subworkflow,WorkflowComposition,WorkflowInterface,
  Orchestration,WorkflowEngine,WorkflowScheduler,
  ResourceScheduler,DependencyAwareScheduling,LoadBalancing,
  ResourceAllocation,CPU,GPU,Memory,Storage,Network,
  ParallelExecution,DistributedExecution,HighPerformanceComputing,
  Checkpointing,Retry,Restart,Recovery,FaultTolerance,
  WorkflowProvenance,DataProvenance,ComputationalProvenance,
  Lineage,AuditTrail,Traceability,Reproducibility,
  EnvironmentCapture,WorkflowVersion,DatasetVersion,
  ModelVersion,ImplementationVersion,NumericalVerification,
  ComputationalValidation,ErrorAnalysis,Benchmark,
  RegressionTesting,VerificationMetrics,ValidationMetrics
 ]
 EXPAND(ScientificWorkflowFamilies) -> [
  WorkflowGraphAndDependencySemantics,
  ScientificTasksAndInterfaces,
  DataflowControlFlowAndParameterisation,
  SchedulingResourceAndParallelExecution,
  IterationBranchingAndWorkflowComposition,
  CheckpointingRetryAndFaultRecovery,
  VerificationValidationAndQualityGates,
  ProvenanceReproducibilityAndVersioning
 ]
 STOP_CONDITION = "Stop when tasks, dependencies, interfaces, scheduling, recovery, validation, provenance and reproducibility are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Computational Scientific Workflows"
 RELATED_ONTOLOGIES = [
  "Computational Scientific Workflows",
  "Verification & Validation",
  "Reproducibility Ontology",
  "Benchmark Ontology",
  "Regression Testing Ontology",
  "Scientific Simulation Ontology",
  "Differential Equation Solver Ontology",
  "Numerical Linear Algebra Ontology 2",
  "Computational Optimisation Ontology",
  "Computational Statistics Ontology",
  "Symbolic Computation",
  "AI Computational Mathematics Ontology",
  "Computational Data Structures",
  "Graph Algorithms Ontology",
  "High Performance Computing Ontology 2",
  "Parallel Computing Ontology",
  "Distributed Computing Ontology",
  "GPU Computing Ontology"
 ]
 ROUTE_RULES = [
  "Scientific Workflow -> Computational Scientific Workflows for parent semantics",
  "Scientific Workflow -> Verification & Validation for correctness and adequacy gates",
  "Scientific Workflow -> Reproducibility for rerun and environment semantics",
  "Scientific Workflow -> Benchmark and Regression Testing for controlled repeated workflows",
  "Scientific Workflow -> Scientific Simulation for simulation pipelines",
  "Scientific Workflow -> Differential Equation Solvers, Numerical Linear Algebra, Optimisation and Computational Statistics for domain-specific scientific tasks",
  "Scientific Workflow -> Symbolic Computation and AI Computational Mathematics for symbolic and learned workflow stages",
  "Scientific Workflow -> Computational Data Structures and Graph Algorithms for workflow graph representation",
  "Scientific Workflow -> HPC, Parallel, Distributed and GPU Computing for scalable execution"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible workflow structures, task types or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve workflow-versus-task distinction.",
  "Preserve data-dependency-versus-control-dependency distinction.",
  "Preserve workflow-definition-versus-workflow-execution distinction.",
  "Preserve legal-scheduling-order-versus-dependency-order distinction.",
  "Preserve task-success-versus-scientific-validity distinction.",
  "Preserve retry-versus-restart-versus-recovery distinction.",
  "Preserve provenance-versus-log-output distinction.",
  "Preserve machine-readable scientific-workflow semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "A scientific workflow is a structured executable process linking scientific computation tasks and data transformations through explicit dependencies."
 TASK_SUMMARY = "Each workflow task has declared inputs, outputs, parameters and computational responsibilities."
 DEPENDENCY_SUMMARY = "Data and control dependencies determine valid execution order and available parallelism."
 EXECUTION_SUMMARY = "Workflow engines and schedulers orchestrate ready tasks across available computational resources."
 RESILIENCE_SUMMARY = "Retries, checkpoints and restart semantics support recovery from long-running or failure-prone computations."
 PROVENANCE_SUMMARY = "Workflow provenance links outputs to the tasks, data, parameters, software and environments that produced them."
 VALIDATION_SUMMARY = "Scientific workflows should include explicit verification, validation and reproducibility semantics rather than treating successful execution as proof of scientific correctness."
}

FLOW {
 INPUT
 -> detect_scientific_workflow_context
 -> identify_scientific_goal_tasks_inputs_outputs_parameters_dependencies_resources_and_validation_requirements
 -> construct_task_data_and_control_dependency_graph
 -> validate_task_interfaces_types_formats_and_graph_consistency
 -> determine_legal_execution_order_parallelism_and_resource_requirements
 -> assign_ready_tasks_to_available_resources
 -> execute_tasks_and_capture_outputs_intermediates_logs_and_state
 -> if_failure_apply_retry_checkpoint_restart_or_compensation_semantics
 -> execute_verification_validation_acceptance_and_quality_gates
 -> record_workflow_versions_parameters_data_lineage_environment_and_execution_history
 -> package_artifacts_for_reproducible_rerun
 -> route_to_related_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-SCIENTIFIC-WORKFLOWS-SCIENTIFIC-WORKFLOW-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ