This document describes the Research Object Optimization Ontology (RO-Opt). RO-Opt is an OWL ontology designed for representing optimizations done to workflows and their provenance, making possible to justify the parameters of a given execution and thus helping reproducing the results. RO-Opt is built on the Research Object model [RO], extending it when necessary.
The latest OWL encoding of RO-Opt can be found here
The quality of the final result of a scientific workflow may depend on how good the choices for the input parameters are. Therefore, when sharing and reusing scientific workflow results, the final choice on the input parameters should be justified and recorded.
In order to find a suitable parameter set, scientists frequently use trial and error, parameter sweeps or even optimization techniques. This optimization process has to be performed for each workflow from scratch and is neither captured nor shared among scientists at the moment. However, the optimization process could be much more simplified and improved, if public workflow repositories would not only store provenance data of the workflow execution but also the necessary meta-information of the optimization process itself. This optimization provenance could be applied for example by other optimization runs to guide the optimization process of the initial sample of parameters. It will allow for a faster convergence of the optimization algorithm and is likely to improve the workflow overall results. Researchers could then reuse the valuable results of others to automatically improve their own scientific result and without investing time for analysis.
This document describes the Research Object Optimization Ontology (RO-Opt), an OWL ontology designed for representing optimizations done to workflows and the provenance of such optimizations. RO-Opt is built on top of the Research Object model, reusing and extending its main concepts when necessary. In particular, RO-Opt reuses the Core Research Object Ontology (ro) for describing the resources aggregated in a workflow optimization and the wfdesc and wfprov for linking and extending workflow concepts.
opt | <http://purl.org/net/RO-optimization#> |
owl | <http://www.w3.org/2002/07/owl#> |
rdfs | <http://www.w3.org/2000/01/rdf-schema#> |
ro | <http://purl.org/wf4ever/ro#> |
wfprov | <http://purl.org/wf4ever/wfprov#> |
wfdesc | <http://purl.org/wf4ever/wfdesc#> |
An Optimization Research Object (opt:OptimizationResearchObject
) is an aggregation of all the resources required
for performing the workflow optimization process. Since Research Objects (ro:ResearchObject
)
are aggregations of the resources used or referenced within an investigation, an Optimization Research Object is a
specific type of Research Object. Figure 1 shows an overview
of the main resources aggregated as part of an Optimization Research Object: The algorithm (opt:Algorithm
) used to
generate the optimization parameters, the fitness function (opt:Fitness
) used, the population of individuals (solutions)
that have been produced at a given iteration of the optimization algorithm (opt:Generation
), the
optimization run (opt:OptimizationRun
) of the part of the workflow on top of which the optimization has been
performed, the search space (opt:SearchSpace
) where the algorithm has searched for optimum values, the termination
condition (opt:TerminationCondition
) for the optimization algorithm, the workflow (wfdesc:Workflow
) being optimized
and the link to the best results (opt:hasBestResult
) found.
An overview of the classes, properties and dataproperties can be seen below:
Research Objects aim at providing support for the description of scientific investigations in a machine readable format. In addition to the scholarly article that reports on the results of the research investigation, a Research Object encapsulates other resources that enable and promote the reuse, interpretation and reproducibility of such investigation results. In particular, a Research Object comprises the datasets used and generated during the research investigation, the workflow encoding the experiment carried out, the provenance traces captured by running the experiments and the various annotations that describes resources and their relationships.
Figure 2 illustrates a coarse-grained view of the Research Object model. Here we focus on Workflow-Centric Research Objects, i.e., Research Objects that contain at least a workflow. As illustrated in Figure 2, a Research Object aggregates a number of resources, namely:
The Research Object model is represented by a family of ontologies, divided into a Research Object Core Ontology and extension modules that cater for different domain specific requirements (Research Object evolution, scientific workflows, etc.). RO-Opt extends the Research Object Core Ontology and the ontologies used to specify Workflow-Centric Research Objects: the wfdesc ontology (used to specify workflow templates) and the wfprov ontology (used to capture the provenance traces of the workflow executions).
In this section we describe the different parts of an optimization, according to Figure 1.
As the fitness landscape of scientific workflows can be rugged
and contain less gradient information, meta-heuristic search
methods are convenient search algorithms (opt:Algorithm
) to deal with the
optimization of scientific workflows.
Figure 3 shows the type of search algorithms we focus on this
paper: Genetic Algorithms (opt:GeneticAlgorithm
), Particle
Swarm Optimization (opt:ParticleSwarmOptimizationAlgorithm
) or other methods that are conceivable and can
be implemented as a plugin of the optimization framework.
The used optimization algorithms should be stored for typing and comparing aspects. Not only the type of algorithm but also the specific parameter of the algorithm may be reused in later optimization runs.
In order to automate the optimization process, workflow results are evaluated by the optimization algorithm. The workflow result is
based on an output parameter (opt:FunctionOutputParameter
), which represents a specific fitness measure
(opt:Fitness
). Figure 4 depicts an overview of the fitness section of the ontology. The fitness measure may
consist of one or several output parameter. Several parameters and weights are used, if the user wants to perform
a multi-objective optimization (opt:MultiObjectiveFitness
) instead of a single-objective optimization
(opt:SingleObjectiveFitness
). Multi-objective optimization tries to solve problems that have two or more, often
conflicting, objectives. Single-objective optimization in turn tries to solve only a single objective. The fitness function
(opt:FintessFunction
) associated to the fitness measure can store not only output parameters and weights but also
a body (opt:hasBody
), which may contain a piece of code representing a unique measure description.
During the optimization process each workflow instance of a population of size y is executed. Each of these instances is
made up of a unique parameter and component combination. After the execution and evaluation of the workflow instances,
a new generation of unique workflow set-ups is executed. To monitor the population evolvement, each individual workflow run has
a corresponding generation number (opt:hasGenerationNumber
). Additionally, the population size of each generation is stored
(opt:hasPopulationSize
), as this number can vary for optimization runs in general and each generation in particular.
Results obtained during the optimization process may be of interest and required to learn from in later optimization
runs (opt:OptimizationRun
). Thus the executed workflow instances and their results should be captured as well. However
we recommend against storing the entire provenance trace of a workflow run if the original trace has already been
saved. This is due to the fact that, usually, many relevant data objects (e.g. intermediate results) are already stored to
achieve reproducibility. We assume that these data objects are negligible when achieving optimization reproducibility
and especially when learning from optimization runs. The crucial values to capture are fitness values (opt:hasFitnessValue
) and a
flag (opt:Flag
), which depicts the origin of the fitness value. As shown in Figure 5, the flag indicates that the
fitness value may have been
calculated (opt:Original
), approximated (opt:Approx
) or just taken from a prior similar or identical optimization run
(opt:LinkToOriginal
). The flag allows users to relate where the specific fitness value originates from. In particular, when optimizing identical
workflows it would be useful to reuse fitness values from prior optimization runs (and use the opt:LinkToOriginal
flag).
Each workflow adaptation represents one specific set-up and can be sampled within a specific search space
(opt:SearchSpace
). The search space is spanned by the selected workflow parameters and/or structural changes. As not all parameter
values or combinations of components are valid, the number of tested workflow set-ups can be reduced by intelligently
sampling the search space by an optimization algorithm. The dependencies of the search space should be stored in order to
allow other optimization processes to reuse the search space later. As shown in Figure 6, the search space comprises
component and parameter dependencies (opt:ProcessorDependecy
and opt:ParameterDependency
) respectively) as
well as parameter constraints (linked with the data property opt:hasParameterConstraint
).
Constraints can limit possible values for parameters. Whereas numerical parameters (double or integer) may be limited by a minimum and maximum value, other parameter types may also be limited. As an example, a parameter can be defined by a regular expression or by a fixed list of valid values. Parameters and components might also have specific dependencies. For example, a parameter A can be dependent on another parameter B by e.g. a numeric sum dependency such as A + B = 1. In a similar manner, workflow components can be dependent on each other. Consider for example the following component dependency: a task can be performed by component D or A and another task by component B or C. Additionally, component A can only be executed together with component C but not with component B. These dependencies can be asserted with the opt:onParameter and opt:hasTargetProcessor properties.
The optimization process will stop at a certain time preferably if the algorithm has converged. However this may be a
heavy time consuming task, and thus the user often wantsto add additional termination criteria. The termination condition
(opt:TerminationCondition
) should be stored due to reasons of the plausibility of the optimization run. The
termination condition precisely stores under which condition the optimization is to be terminated. This can be the maximum
number of performed workflow executions (opt:hadMaxNumberOfExecutions
), the maximum number of evolutionary
steps (opt:hadNumberOfSteps
), the required time for the optimization process (opt:hadMaxTime
), a reached fitness
value (opt:hadFitnessReached
) or a number of generations that did not improve the fitness measure (opt:noChange
).
Depending on the workflow, the search space settings and how strict the termination conditions have been selected,
inferences on how valuable the final best result is, can be made.
The original workflow (wfdesc:Workflow
) should be stored within the Optimization Research Object to increase the optimization
process discoverability (with the opt:hasWorkflow
property). The workflow may be stored in an abstract or concrete fashion to capture
the scientific experiment. Together with this resource, one representative workflow run (wfdesc:WorkflowRun
) should be stored,
to capture all used input data.
To ensure a fast and eased analysis, link(s) to the best result(s) (opt:hasBestResult
) should be stored. For single objective
optimization one link is stored, for multi-objective optimization several results are stored representing the Pareto Front.
Finally, Figure 7 shows a complete schema of all the classes, properties and data properties of the RO-Opt ontology, and how they are connected to the Research Object ontologies.
IRI: http://purl.org/net/RO-optimization#Algorithm
IRI: http://purl.org/net/RO-optimization#AlgorithmParameter
Parameter to specify the used optimization algorithm. These parameter may influence the effectiveness or convergence time of the algorithm.
IRI: http://purl.org/net/RO-optimization#Approx
The fitness value was not calculated, only approximated based on e.g. surrogate model or neighborhood values.
IRI: http://purl.org/net/RO-optimization#Artifact
An opt:Artifact holds information of the used opt:OptimizationInputParameter.
IRI: http://purl.org/net/RO-optimization#BooleanInputParameter
An opt:BooleanInputParameter represents a workflow input parameter of the type boolean. Its value can be true or false, storing the initial setting.
IRI: http://purl.org/net/RO-optimization#ChoiceInputParameter
An opt:ChoiceInputParameter represents a workflow input parameter of the type choice. A choice represents fixed values. E.g. a parameter can have as input "Gaussian", "Polynomial" or "RBF". The algorithm may then select one of these opt:ChoiceInputParameter values ["Gaussian", "Polynomial", "RBF"]
IRI: http://purl.org/net/RO-optimization#Dependency
An opt:Dependency describes the dependency between two parameters or processors, which is defined by the user. Processors might only work in specific combinations, though only specific processors should be connected to each other within a workflow. Those dependencies must be defined by the user, in order that the non-compatible component combinations are excluded from the search space. Additionally, parameter values may not be compatible with each other. E.g. if a parameter value A is within a specific range parameter value B may only be true.
IRI: http://purl.org/net/RO-optimization#DoubleInputParameter
An opt:DoubleInputParameter represents a workflow input parameter of the type double
IRI: http://purl.org/net/RO-optimization#ExponentialFunction
An opt:ExponentialFunction describes a function for selecting a valid value for an opt:NumericInputParameter.
IRI: http://purl.org/net/RO-optimization#FileInputParameter
An opt:FileInputParameter represents a workflow input parameter of the type file. A file input can be taken from a fixed list of input files or a directory.
IRI: http://purl.org/net/RO-optimization#Fitness
An opt:OptimizationResearchObject has a opt:Fitness description which in turn can have one or several opt:FitnessFunctions. An optimization can be a Multi-Objective Optimization or Single-Objective Optimization.
IRI: http://purl.org/net/RO-optimization#FitnessFunction
The opt:FitnessFunctions characterize the specific functions that were used during the optimization to evaluate the workflow. A fitness function can have a body, which is e.g. a function describing a performance measure. A fitness function can also have an opt:FunctionOutputParameter, whose numeric output value is used for the evaluation. For the evaluation a user may also want to give different weights to the fitness function, which can be defined by using the weight field.
IRI: http://purl.org/net/RO-optimization#Flag
Each tested parameter sample set has a fitness value, which was calculated, approximated or taken from a prior run. To store the trustworthiness of a fitness value this flag can be set to opt:Original, opt:Approx, opt:Original or opt:LinkToOriginal.
IRI: http://purl.org/net/RO-optimization#Function
An opt:Function groups the different typs of Functions found in an Optimization Research Object: Fitness Functions and Numeric Functions.
IRI: http://purl.org/net/RO-optimization#FunctionOutputParameter
An opt:FunctionOutputParameter specifies the output that can be used by an optimization algorithm to evaluate the fitness of a specific parameter sample set.
IRI: http://purl.org/net/RO-optimization#Generation
A Generation represents the population of individuals (solutions) that have been produced at a given iteration of the optimization algorithm.
IRI: http://purl.org/net/RO-optimization#GeneticAlgorithm
Class designed to indicate that the optimization was performed by a Genetic Algorithm. The used parameter for crossover and mutation rate are stored within opt:AlgorithmParameter respectively.
IRI: http://purl.org/net/RO-optimization#IntegerInputParameter
An opt:IntegerInputParameter represents a workflow input parameter of the type integer.
IRI: http://purl.org/net/RO-optimization#LinkToOriginal
The fitness value was not calculated, it was substituted by a result from a prior run, having equal or similar settings.
IRI: http://purl.org/net/RO-optimization#MultiObjectiveFitness
If a Fitness is a Multi-Objective Optimization, many fitness functions will be stored to define the maximization or minimization problem of a specific workflow. MO also effects the number of best results, as typically many parameter sets are optimal regarding the various fitness functions (they represent the Pareto front).
IRI: http://purl.org/net/RO-optimization#NumericFunction
An opt:NumericFunction describes a function for selecting a valid value for an opt:NumericInputParameter. Possible function types are opt:ExponentialFunction, opt:PointFunction or opt:PolynomicalFunction. The function value determines the step size for a opt:PointFunction, the basis for opt:ExponentialFunction and the exponent for a opt:PolynomicalFunction. The value for a parameter is then calculated by using e.g. 3*x whereas 3 is the fixed function value and x is a number heuristically determined by the optimization algorithm.
IRI: http://purl.org/net/RO-optimization#NumericInputParameter
An opt:NumericInputParameter represents a workflow input parameter of a numeric type, a double (opt:DoubleInputParameter) or interger (opt:IntegerInputParameter). The range of an opt:NumericInputParameter can be fixed by a minimum and a maximum value. A value can also be selected regarding a numerical function (opt:NumericFunction). A opt:NumericalInputParameter value may also be rounded by linking opt:hasRoundValue with true.
IRI: http://purl.org/net/RO-optimization#OptimizationInputParameter
An opt:OptimizationInputParameter represents the workflow input parameter that has been used during an optimization. On the one hand, it stores the exact value for a specific parameter that has been used during one execution and on the other hand it stores the specification of the range in which a value can be selected. An opt:OptimizationInputParameter has a name (opt:name) and an value (opt:Value), which stores the exact value that were used during an optimization run for this specific parameter. An opt:OptimizationInputParameter can be an opt:NumericInputParameter, opt:StringInputParameter, opt:FileInputParameter, opt:BooleanInputParameter, or opt:ChoiceInputParameter.
IRI: http://purl.org/net/RO-optimization#OptimizationResearchObject
An opt:OptimizationResearchObject stores all relevant information and specifications that have been used to perform an optimization run as well as the optimization result. With the storage of these meta-data, the optimization run can be re-executed and/or analysed to guide future optimization runs. By reusing this knowledge, optimization runs improve workflow settings and workflows may produce more meaningful results.
IRI: http://purl.org/net/RO-optimization#OptimizationResource
An opt:OptimizationResource groups all those elements that are found in an OptimizationResearchObject.
IRI: http://purl.org/net/RO-optimization#OptimizationRun
An opt:OptimizationRun represents one result of a specific paramater sample within an opt:OptimizationResearchObject. Different opt:OptimizationRuns can be specified by several properties. On the one hand, an opt:OptimizationRun has a fitness value and a flag to type the fitness value. On the other hand it has a used parameter sample set and sub-workflow. The sub-workflow specifies the exact workflow and wfprov:Artifact describes the parameter sample set, which holds the exact parameter values for each parameter used for the execution to gain the specific fitness value.
IRI: http://purl.org/net/RO-optimization#Original
The fitness value was calculated by the workflow.
IRI: http://purl.org/net/RO-optimization#ParameterDependency
Paremeter dependencies are defined between a source Processor and its opt:OptimizationInputParameter and another opt:OptimizationInputParameter. A constraint can be defined, which implements a function describing the dependency between these two OptimizationInputParameters.
IRI: http://purl.org/net/RO-optimization#ParticleSwarmOptimizationAlgorithm
Class designed to indicate that the optimization was performed by a Particle Swarm Optimization Algorithm.
IRI: http://purl.org/net/RO-optimization#PointFunction
An opt:PointFunction describes a function for selecting a valid value for an opt:NumericInputParameter
IRI: http://purl.org/net/RO-optimization#PolynomicalFunction
An opt:PolynomicalFunction describes a function for selecting a valid value for an opt:NumericInputParameter
IRI: http://purl.org/net/RO-optimization#Processor
A opt:Processor represents a node within a workflow. This can be a specific task e.g. a web service or application, or any abstract component description.
IRI: http://purl.org/net/RO-optimization#ProcessorDependency
opt:Processor dependencies are defined by specifying the compatibility between a source and target opt:Processor. Respectifely to the compatibility these two processors can or can not be used within one workflow for optimization.
IRI: http://purl.org/net/RO-optimization#SearchSpace
The opt:SearchSpace describes the search space that is spanned by the different opt:Processors, their parameters and constraints. The user defines this space by setting ranges or regular expressions to opt:OptimizationInputParameter and defining dependencies between opt:Processors and opt:OptimizationInputParameter. The optimization algorithm will choose parameter values within the search space for the sampling process.
IRI: http://purl.org/net/RO-optimization#SingleObjectiveFitness
If a opt:Fitness is Single-Objective Optimization, typically only one fitness function is given. Sometimes there will be more than one fitness function defined, they are merged into one fitness value at the end regarding their weight.
IRI: http://purl.org/net/RO-optimization#StringInputParameter
An opt:StringInputParameter represents a workflow input parameter of the type string. A string value can be optimized by modifying the string regarding to a respective regular expression given by the user.
IRI: http://purl.org/net/RO-optimization#TerminationCondition
The opt:TerminationCondition describes the finalization of the optimization. A user may want to run the optimization until i) a maximum number of executions is reached ii) a maximum number of evolutionary steps have been made iii) a maximum time has been reached iv) the fitness value has not changed within a specific number of iterations v) a specific fitness value is reached. Sometimes a user may also want to combine those termination criteria e.g. proceed the optimization until a specific fitness value is reached but within a maximum time and maximum number of executions.
IRI: http://purl.org/net/RO-optimization#belongsToGeneration
This property links an opt:OptimizationResearchObject to an opt:TerminationCondition.
IRI: http://purl.org/net/RO-optimization#hasAbortCriteria
This property links an opt:OptimizationResearchObject to an opt:TerminationCondition.
IRI: http://purl.org/net/RO-optimization#hasAlgorithm
This property links an opt:OptimizationResearchObject to the description of the used optimization algorithm.
IRI: http://purl.org/net/RO-optimization#hasAlgorithmParameter
An opt:Algorithm has different opt:AlgorithmParameters that can be linked by opt:hasAlgorithmParameter
IRI: http://purl.org/net/RO-optimization#hasDependency
An opt:SearchSpace can have different opt:Processor or opt: OptimizationParameterInput opt:Dependencies to narrow the search space.
IRI: http://purl.org/net/RO-optimization#hasFitness
Property that links an opt:OptimizationResearchObject to an opt:Fitness
IRI: http://purl.org/net/RO-optimization#hasFitnessFunction
opt:hasFitnessFunction links and opt:Fitness with the used fitness functions. Opt:Fitness may have one or more opt:FitnessFunctions
IRI: http://purl.org/net/RO-optimization#hasFlag
The fitness values gained during the optimization can have different origins, which are identified by opt:Flag
IRI: http://purl.org/net/RO-optimization#hasInputParameter
Property used to specify the input parameter of a given opt:Processor
IRI: http://purl.org/net/RO-optimization#hasNumericFunction
An opt:NumericInputParameter may be further specified by a opt:NumericFunction
IRI: http://purl.org/net/RO-optimization#hasOptimizationRun
This property links an opt:OptimizationResearchObject to the results of a performed optimization.
IRI: http://purl.org/net/RO-optimization#hasOutputParameter
This object property is used to specify an output parameter as the fitness of a given opt:FitnessFunction
IRI: http://purl.org/net/RO-optimization#hasProcessor
An opt:SearchSpace may have one or several opt:Processors that describe the dimensions of the search space
IRI: http://purl.org/net/RO-optimization#hasSearchSpace
This property links an opt:OptimizationResearchObject to an opt:SearchSpace.
IRI: http://purl.org/net/RO-optimization#hasSourceProcessor
This property is used to specify the opt:Processor that acts as a source to a opt:Dependency, source and target are linked by their compatibility.
IRI: http://purl.org/net/RO-optimization#hasSubWorkflow
This property links an opt:OptimizationResearchObject to a wfdesc:Workflow in order to specify the abstract sub-workflow used for the optimization.
IRI: http://purl.org/net/RO-optimization#hasTargetProcessor
This property is used to specify the opt:Processor that acts as a target to an opt:ProcessorDependency source and target are linked by their compatibility
IRI: http://purl.org/net/RO-optimization#hasWorkflow
This property links an opt:OptimizationResearchObject to a wfdesc:Workflow in order to specify the original actract workflow of the optimization process.
IRI: http://purl.org/net/RO-optimization#onParameter
This property is used to specify the opt:OptimizationInputParameter that acts as a target to a opt:ParameterDependency, source and target are linked by their compatibility and a constraint.
IRI: http://purl.org/net/RO-optimization#compatibleResource
This property can be true or false specifying if a source and target opt:Processor are usable within one workflow or not
IRI: http://purl.org/net/RO-optimization#fitnessReached
An opt:TerminationCondition can be defined by a reached fitness value
IRI: http://purl.org/net/RO-optimization#hadMaximumNumberOfExecutions
An opt:TerminationCondition can be defined by a maximum number of performed executions
IRI: http://purl.org/net/RO-optimization#hadMaximumTime
An opt:TerminationCondition can be defined by a maximum time an optimization may take.
IRI: http://purl.org/net/RO-optimization#hadNumberOfSteps
A opt:TerminationCondition can be defined by a maximum number of performed evolutionary steps.
IRI: http://purl.org/net/RO-optimization#hasBestResult
Links an opt:OptimizationResearchObject with the best result or the best result set (Pareto front) of the specific optimization run.
IRI: http://purl.org/net/RO-optimization#hasBody
Links a opt:FitnessFunction with a respective body (script or source code) to calculate the fitness
IRI: http://purl.org/net/RO-optimization#hasBooleanValue
This property links a opt:BooleanInputParameter with its value.
IRI: http://purl.org/net/RO-optimization#hasChoiceValue
This property links a opt:ChoiceInputParameter with its list of valid values.
IRI: http://purl.org/net/RO-optimization#hasFileName
This property links a opt:FileInputParameter with a list of valid file names.
IRI: http://purl.org/net/RO-optimization#hasFitnessValue
Links an opt:OptimizationRun with the specific fitness value that was calculated for the specific parameter sample set stored within this opt:OptimizationRun.
IRI: http://purl.org/net/RO-optimization#hasFunctionValue
opt:NumericFunctions have a function value to describe their basis, exponent or step size.
IRI: http://purl.org/net/RO-optimization#hasGenerationNumber
Property that specifies the iteration that produced the generation in question.
IRI: http://purl.org/net/RO-optimization#hasMaxValue
The range of a opt:NumericInputParameter is defined by a maximum value and minimum value.
IRI: http://purl.org/net/RO-optimization#hasMinValue
The range of a opt:NumericInputParameter is defined by a minimum value and maximum value.
IRI: http://purl.org/net/RO-optimization#hasName
Links the name of an opt:OptimizationInputParameter.
IRI: http://purl.org/net/RO-optimization#hasParameterConstraint
The dependency of two parameters is defined by a parameter constraint, defining e.g. a numerical function.
IRI: http://purl.org/net/RO-optimization#hasParameterValue
Links the numerical value, which has been used during the optimization run to a specific opt:AlgorithmParameter.
IRI: http://purl.org/net/RO-optimization#hasPopulationSize
Property that specifies the number of individuals that belong to a given generation.
IRI: http://purl.org/net/RO-optimization#hasRegularExpression
This property links the regular expression to describe a opt:StringInputParameter.
IRI: http://purl.org/net/RO-optimization#hasRoundValue
Defines whether a opt:NumericInputParameter should be rounded.
IRI: http://purl.org/net/RO-optimization#hasValue
Links the value of an opt:Artifact (of a opt:OptimizationInputParameter) that was used for a specific optimization run.
IRI: http://purl.org/net/RO-optimization#hasWeight
An opt:FitnessFunction can be evaluated with respect to a specific weight.
IRI: http://purl.org/net/RO-optimization#noChange
An opt:TerminationCondition can be defined by a maximum number of steps within the fitness value had no change
The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment used for representing the Corss Referencing Section of this document.
Workflow optimizations can be performed by different optimization algorithms. Typically, one optimization algorithm is not best suitable for each optimization problem and another may be tested. Examples are opt:GeneticAlgorithms (GA) or opt:ParticleSwarmOptimization (PSO).