The model factsheets (#15) cover the mathermatical objective of a model. We should too, especially because we have a ModelElement "ObjectiveFunction".
Add class "MathematicalObjective" subclass of ModelElement
with instances: CO2, Costs, RE-share
possibly with object property "has_mathematical_objective"
possible def: "A MathematicalObjective is a ModelElement that describes the mathematical objective of a model."
I am aware that
Your definition sounds good, but misses one slight point: The mathematical objective is not CO2, cost or RE-share but to _minimize_ cost or to _maximize_ RE-share. And especially: to _minimize the emissions of CO2_. So at least in some cases we need here the link to other classes.
"A MathematicalObjective is a ModelElement that describes which parameter determinates the objective of the model and whether it should be minimised or maximised."?
the modelfactsheets pull request (#109) added an object property "has_mathematical_objective". We have cost and CO2 as classes so the alternative to what I proposed above is just adding a class "RE-share" with definition and give the "has_mathematical_objective" property a def too
Sounds good.
has_mathematical_objective: "A relation that holds between a model or scenario and the mathematical objective it has."?
I just have no idea how to define RE-share and where to put it in the ontology. Its an abbreviation for Renewable Energy - share, right?
You are right, RE is renewable energy. RE shares are usually defined as renewable generation or renewable consumption divided by total consumption.
"Re-share is a model variable calculated as the renewable generation or renewable consumption divided by total consumption."
or rather unit/ quantitiy?
cost too?
RE share is definitely not a unit, but it is a quantity with the unit percent (or one/unity).
I think all quantities could be used as model variables.
As I understand it, MathematicalObjective refers to optimizations at the moment. Can models without optimization also have mathematical objectives (e.g. simulation)? If not, we should specify the description.
In my understanding a simulation does not have a mathematical objective.
_A MathematicalObjective is a ModelElement that describes which parameter determines the objective of an optimization model and whether it should be minimised or maximised._ Like that?
ok, and RE-share as: _"Re-share is a quantity calculated as the renewable generation or renewable consumption divided by total consumption."_?
Had a second thought on RE-share. There is not one RE-share, but different RE-shares, e.g.
So what about defining RE-share as 'RE-share is a quantity calculated as the renewable generation or renewable consumption divided by consumption.' (without the word 'total')? And then defining subclasses for the different RE-shares?
Why not have an own class 'share' as subclass of 'quantity' with subclass 'RE share'? We also have the class 'Percentage' as subclass of 'quantity', which is related to 'share'.
And we need to fix the definition of 'quantity' beforehand! #205
Energy models optimise (minimize) usually only the system costs in the optimization function. In a "regular" model there is just one variable, which can be optimized and that is the system costs. When we model for example a RE share, we do this by modelling a user constraint. So this is an additional equation, which limits the solution space of the optimization allgorithm, but it's not part of the objective function itself.
A special case are models which can do multi-objective optimization, they can include several variables into the objective function, for example they could minimize the costs and the CO2 emissions in one optimization function. But they are not so common, because they get a multidimensional solution space as a solution instead of a single solution.
We should keep the definition general so that it can be applied to all models. Maybe as simple as that:
_A MathematicalObjective is a ModelElement that describes the optimization allgorithm in an optimization model._
For describing a RE-share and CO2 limitations, I suggest that we include a new class which could be named user constraint or constraining equation.
Summarizing the discussion so far:
has mathematical objective: _A relation that holds between a model or scenario and the mathematical objective it has._mathematical objective: _A MathematicalObjective is a ModelElement that describes which parameter determines the objective of an optimization model and whether it should be minimised or maximised._ / _A MathematicalObjective is a ModelElement that describes the optimization allgorithm in an optimization model._RE-share: _RE-share is a quantity calculated as the renewable generation or renewable consumption divided by consumption._RE-share for different kinds of consumption and a superclass shareuser constraint or constraining equationSince this all happened quite a while ago, the OEO has changed a lot and most of the classes referred to have changed in some way and new ones have been added.
We now have
has objective: _A relation that holds between an optimization and its objective function or objective variable._ with subproperties has objective function and has objective variable - this covers has mathematical objectiveobjective function: _An objective function is an information content entity stating the function that should be maximised or minimised to solve a problem._ - this covers mathematical objectiveconstraint: _A constraint is a condition that has to be fullfilled within a calculation._ - this covers user constraintThis leaves only RE-share open. In the discussion, it was always a subclass of quantity (value). But since #205 introduced process attribute and RE-share is primarily used to describe processes like consumption or transport, I would suggest to implement it as a process attribute:
_RE-share is a process attribute that is the proportion of renewable energy in a generation or consumption process._
Regarding:
* additionally: [...] a superclass `share`
We already have fraction: _A dimensionless ratio unit which relates the part (the numerator) to the whole (the denominator)._
I think, a share is a synonym to a fraction. ratio itself is defined as: _A dimensionless unit which denotes an amount or magnitude of one quantity relative to another._
We should keep the definition general so that it can be applied to all models. Maybe as simple as that:
_A MathematicalObjective is a ModelElement that describes the optimization allgorithm in an optimization model._
I agree that a mathematical objective is an model element, but in my understanding a mathematical objective is an equation or a set of equations that describe the system to be modelled and that are optimised during the model calculation. Something like minimise the sum of the costs of all power generating units at all time steps. A optimisation algorithm is used to find the solution to this optimisation problem. However, in general the same mathematical objective can be solved using different optimisation algorithms.
We already have
fraction: _A dimensionless ratio unit which relates the part (the numerator) to the whole (the denominator)._
I think, a share is a synonym to a fraction.ratioitself is defined as: _A dimensionless unit which denotes an amount or magnitude of one quantity relative to another._
I agree that share is not a good superclass for RE-share. We should distinguish between the process attribute RE-share, which is related to some quantity value that has fraction as its unit. And as you said, the term share would fit better on the unit-side. Maybe we can add a class share / fraction / ratio value as a quantity value that has a fraction / ratio as its unit.
Definition of fraction value: _A fraction value is a quantity value that has a fraction as it's unit._, with the axiom _has unit some fraction_
RE-share should accordingly get the axiom has quantity value some fraction value.
If everyone agrees on this (and the definition of RE-share), we should be ready to implement and close this issue.
I agree. I'd propose to add share as alternative term for fraction value.
Since RE-share will be classified as process attribute, we should adjust the def, e.g. like this: _RE-share is a process attribute that indicates the fraction of renewable energy related to the total energy of an energy generation of consumption process._