There are several issues on subclasses of class 'Generator' #159, #160, #161, #162 and the old issue #55.
I am aware that
The current def of 'Generator' is:
A generator is a grid component that converts motive power (mechanical energy) into electrical power for use in an external circuit.
Source: https://en.wikipedia.org/wiki/Electric_generator
The EnArgus wiki (#179) has "Ein Generator wandelt mechanische Energie in elektrische Energie um." as a definition.
This is identical to the current definition without the "for use in an external circuit" end
Right now, generator is a subclass of 'artificial object'. I think this makes sense and is better, than making it a subclass of 'grid component'. Nevertheless, a generator can be (and usually is) also a grid component. Can we solve this with an equivalent class?
_A generator is an artificial object that converts motive power (mechanical energy) into electrical power._
Yes I just had a similar problem with model components in #196.
We can make grid component an equivalent class defined as "every entity that is part of a grid"
@stap-m, @l-emele is there a difference between a Generator and an EnergyGenerator and an ElectricityGenerator?
A _generator_ in general is a device that generates electricity (= electric energy). It does not necessary has to be from mechanical energy as there are also photovoltaic generators (see #162) and thermoelectric generators. Also a fuel cell can be seen as a a generator.
The generator that uses mechanical energy is usually called _electric generator_. As electric generators are by far the most common type of generators their name is usually shortened to generator. But for the ontology we should use the more precise names.
We have decide on a crucial point regarding the definition of a generator:
I strongly prefer the first option but a lot of our generator subclasses (e.g. BiogasElectricityGenerator) follow the second logic.
We discussed this already a bit on the project meeting in Magdeburg in January 2019 but we came there to no final conclusion.
I found the class PowerGeneratingUnit with no definition but the relations uses some EnergyGeneratorTechnology, EnergyStorageTechnology, EnergyTransferTechnology.
Is that a synonym to Powerplant?
In the current structure Powerplant and PowerGeneratingUnit are synonyms.
what was the problem when discussing it 2019? I'd prefer the first one too.
Simply the lack of time. We had a discussion on the ontology in general and stumbled over the generator and it's different possible definitions but had no time to find a general consensus.
Yes, the first one.
So we have a consensus on this long standing topic!
ok subclasses of Generator right now are:
which ones have to be moved? (I didnt listed all subclasses for clarity)
We need a def for Generator if we want to continue with its subclasses, e.g. in PR #235.
What do we want to express with the term 'Generator'? We agreed on this:
Is it the device inside a power plant that produces ("generates") the electricity?
If in our def every device that produces electricity is called 'Generator, it is confusing to talk about an _'electricGenerator'_ if it uses mechanical energy (although is is called like this, e.g. on wikipedia), since EVERY generator generates _electricity_
The generator that uses mechanical energy is usually called electric generator.
We need to clarify what is a power plant that uses a 'Generator' and what is a potential subclass of a 'generator'. In my understanding, a 'Turbine' is such a subclass, a 'SolarThermalCollector' is not. A 'PV cell' could also be a 'Generator'. The term 'PhotovoltaicGenerator' is unfamiliar to me.
And we have to discuss if _thermoelectric generator_ is useful in an ESM ontology.
@jannahastings, @MGlauer can you please add your pictures of the Whiteboard here?


ok this will be the subclass-structure. This is complex enough that I think the best way is to make a pull request and work directly on the ontology. So I'll try to implement everything and see which problems occur.
First problem: I cant find a def for PowerGeneratingUnit?

is this the correct powerplant structure?
If I remember correctly our discussion from last week, we decided to delete the class ReactivePowerplant.
Why do we have HydroPowerplants and HydroelectricPowerplants? This is confusing.
Some hydros are also renewable but not all, e.g. a PumpedStoragePlant without natural intake is not renewable.
ok this will be the subclass-structure. This is complex enough that I think the best way is to make a pull request and work directly on the ontology. So I'll try to implement everything and see which problems occur.
First problem: I cant find a def for PowerGeneratingUnit?
IIRC: We renamed EnergyConverter to PowerGeneratingUnit. This was also the reason why we did not rename EnergyTransformer to EnergyConverter yet. Otherwise it would clash with the former definition. Therefore we would rename GasEnergyConverter to GasPowerGeneratingUnit? (sound a bit weird to me)
Therefore we would rename
GasEnergyConvertertoGasPowerGeneratingUnit? (sound a bit weird to me)
We might include _fired_ in the class name. GasFiredPowerGeneratingUnit does not sound weird to mee.
Why do we have HydroPowerplants and HydroelectricPowerplants? This is confusing.
We decided on leaving all hydro-related classes out for the moment. This is another huge area discussion.
Oh no, I think we neither wrote down a def for PowerGeneratingUnit nor EnergyConverter/Transformer. But at least we discussed it well so it should be possible to recap. Here goes a first attempt:
An energy converter is an artificial object that transforms or changes a certain type of energy.
A power generating unit is an artificial object that contains _(has_part some)_ one or more energy converters, amongst others, to generate electric energy / power
edit:
Why do we have HydroPowerplants and HydroelectricPowerplants? This is confusing.
We decided on leaving all hydro-related classes out for the moment. This is another huge area discussion.
Do we have an issue where we collect all water-related problems?
We might include fired in the class name. GasFiredPowerGeneratingUnit does not sound weird to me.
I don't think each subclass of PowerGeneratingUnit needs the suffix _PowerGeneratingUnit_. We already have PVPanel that doesn't fit the scheme. What about GasFiredPowerUnit and WindDrivenPowerUnit ?
In the pictures above there is the definition for energy converter: _An energy converter is an artificial object that has part some generator (and other stuff)._
What about
GasFiredPowerUnitandWindDrivenPowerUnit?
I am probably fine with GasFiredPowerUnit. We have decided last week on WindEnergyConverter instead of WindDrivenPowerUnit .
In the pictures above there is the definition for energy converter: An energy converter is an artificial object that has part some generator (and other stuff).
This def interfers with the def of generator: _A generator is an energy transformer/converter that converts other forms of energy into eletrical energy._
I.e. an energyConverter can transorm any type of energy into any type of energy.
In the pictures above there is the definition for energy converter: An energy converter is an artificial object that has part some generator (and other stuff).
Now I also found this def on the foto. I think this def was made before we renamed energyConverter to PowerGeneratingUnit, where it fits. So at least we have a def for that one 馃槂
What do we do with the hydro classes until we address them? delete them? put them away somewhere? just ignore them?
I don't like the "and other stuff" ending of the power generating unit def. What about:
A power generating unit is an artificial object that contains a generator amongst other parts."?
Do we have an issue where we collect all water-related problems?
we have just two water issues so we can just concentrate discussion in one of them, e.g. #43
What about
GasFiredPowerUnitandWindDrivenPowerUnit?I am probably fine with
GasFiredPowerUnit. We have decided last week onWindEnergyConverterinstead ofWindDrivenPowerUnit.
the name "WindEnergyConverter" will be confusing as soon as we rename EnergyTransformer to EnergyConverter
This is not confusing but intended: The WindEnergyConverter is that EnergyConverter that uses WindEnergy.
Actually the def has to be:, A Wind energy converter is the _Power Generating Unit_ that uses wind energy.
I made an overview with defs:

One important point in the definition of energy converter is missing: That an energy converter is a _device_. This word is important to distinguish the levels.
In the protocol we mention the word device explicitly.
Proposal: _An energy converter is a device that transforms or changes a certain type of energy._
BTW: What is the difference between a _transformation of energy_ and a _change of energy_?
@l-emele what should do with the subclasses of ReactivePowerplant: HydrogenPowerplant and NuclarPowerplant. Delete?
I propose delete ReactivePowerplant but make HydrogenPowerplant and NuclearPowerPlant direct subclasses of PowerPlant.

ok then I have this Powerplant hierarchy (with HydroPowerplant being ignored and looked at later)
To almost all fuels there is an equivalent PowerPlant and PowerGenerationUnit, e.g.
How do we deal with this efficiently? I think could do there a lot by infering.
@jannahastings: Any thoughts?
The class FieldPhotovoltaicGenerator should be renamed as we defined generator differently. Next to FieldPhotovoltaikPowerPlant I would suggest _solar park_ and _solar farm_ at least as synonyms.
I would be also okay to name it directly _solar park_, that is a term that is used quite often and is somehow the equivalent term to _wind farm_.
https://en.wikipedia.org/wiki/Photovoltaic_power_station
We do have a lot of redundancy with the Powerplants and PowerGeneratingUnits and Generators. I personally don't see a more efficient way than just implementing those redundancies, especially because if I understand it correctly there's information added each level. E.g. a WindElectricityGenerator is used in several kind of WindFarms: eg. OffShoreWindFarm and OnShoreWindFarm
under Generator we have a class BioElectricityGenerator with subclasses Biogas- and BiomassElectricityGenerator.
Am I right that we have accordingly also that structure in PowerGeneratingUnit and Powerplant?

my current structure
A couple of things I spotted from those screenshots:
FossilGenerator and RegenerativeGenerator (and their subclasses) are no meaningful subclasses of as in both FossilPowerplants and RenewablePowerplants. Possible subclasses of ElectroMotiveGenerator.ElectroMotiveGenerator are synchronous & asynchronous generators and AC & DC generators. But for the moment I think we don't need any these subclasses of ElectroMotiveGenerator.PVCell should be a direct subclass of Generator on the same hierarchical level as ElectroMotiveGenerator.Generator need to be renamed or deleted as they are no generators in our definition:HeatGenerator and subclasses: Needs renamingHydroGenerator can probabaly be deletedHydrogenGenerator: can be deleted (similar to FossileGenerator)NuclearPowerGenerator: can be deleted (similar to FossileGenerator)FossilPowerplant and FossilPowerUnit.under Generator we have a class BioElectricityGenerator with subclasses Biogas- and BiomassElectricityGenerator.
Am I right that we have accordingly also that structure in PowerGeneratingUnit and Powerplant?
These classes are not generators any more according to our more precise definition. They need to be renamed and to be redefined. The lables could be something like BiofuelPowerplant with subclasses BiogasPowerPlant and SolidBiomassPowerPlant.
So are there any more generators than Electromotive and PVCell?
FuelCell is a generator. I don't know whether we have already FuelCell in our ontology. If not, we should include it.
And is there a difference between SolidBiomassPowerPlants and BiomassPowerPlants?
And are the turbine subclasses complete? We have Gas-, Hydrogen-, Steam-, Water- and WindTurbine
SolidBiomassPowerPlant is a subclass of SolidBiomassPowerPlant.
For the moment the turbine subclasses are complete. The HydrogenTurbine should be a subclass of the GasTurbine.
What should happen with HeatGenerator and HeatPumpHeatGenerator?
We have also the classes
All four classes should be renamed and redefined. The HeatGenerator needs to be redefined to something like: _A newclassname is an energy transformer/converter that converts other forms of energy into useful heat_. I included _useful heat_ to differentiate from _waste heat_,
Currently I have no idea for a good class name that can replace HeatGenerator.
@stap-m @Ludee: Any ideas?
Some proposals:
HeatGenerator: I can't think of a term for 'HeatGenerator' that is actually used. I like HeatGeneratingDevice, but would this include cooling? ThermalEnergyConverter sounds like Thermal Energy is converted to something else, so it is not a good idea. EnergyToHeatConverter?
HeatPumpHeatGenerator: Just HeatPump
SolarThermalHeatGenerator: SolarThermalHeatCollector or SolarThermalCollector
HeatGeneratorTechnology: If I remember it right, we decided on deleting all '_something_Technology' classes.
What about just Heater?
I am fine with renaming HeatPumpHeatGenerator to HeatPump and SolarThermalHeatGenerator to SolarThermalCollector. In my view in the word SolarThermalHeatCollector the parts _thermal_ and _heat_ redundant as the word _thermal_ litteraly means just to heat or temperature belonging, see https://en.wiktionary.org/wiki/-thermal.
Heater sounds good to me!
So Heater is an EnergyTransformer, are HeatPump and SolarThermalCollector subclasses?
To the EnergyTransformer def: It has to start with _"... is an ArtificialObject"_ to be aristotelean so its a bit harder to get the "device" part in because that would look like _"... is an ArtificialObject that is a device"_ (a bit ugly).
So what do you think about renaming EnergyTransformer to EnergyTransformerDevice? Then we have device the same way implemented as Unit and Plant.
other def proposals:
Powerplant subclasses: Formulate them in the structure: _"A HydrogenPowerplant is a Powerplant having an aggregate of HydrogenPowerUnits as its PowerGeneratingUnits."_
PowerGeneratingUnit subclasses: Formulate them in the structure: _"A FossilPowerUnit is a PowerGeneratingUnit using FossilCombustionFuel as Fuel."_
So what do you think about renaming EnergyTransformer to EnergyTransformerDevice? Then we have device the same way implemented as Unit and Plant.
EnergyConvertingDevice ?
I also need defs for HeatPump and FuelCell.
SolarThermalCollector has the def: _"A solar thermal collector collects heat by absorbing sunlight. The term "solar collector" commonly refers to a device for solar hot water heating, but may refer to large power generating installations such as solar parabolic troughs and solar towers or non water heating devices such as solar air heaters."_
Turbine has def: _"A turbine [...] is a rotary mechanical device that extracts energy from a fluid flow and converts it into useful work. The work produced by a turbine can be used for generating electrical power when combined with a generator."_
def: A solar thermal collector is a heater that absorbs solar radiation to convert it into heat. ?
We could add more subclasses for differentiation.
For turbine, we have a def from the meeting: a turbine is a energy transformer that converts energy from a moving fluid flow into useful work.
'useful work' is not very specific though...
more proposals:
FuelCell: "A FuelCell is a Generator that converts chemical energy into electricity using redox reactions."
HeatPump: "A HeatPump is a heater that transforms energy from air, ground or water into useful heat."
I am fine with the definition proposals for FuelCell and SolarThermalCollector
Proposals for definitions:
Turbine: A turbine is an energy transformer that converts energy from a moving fluid flow into rotational energy.HeatPump: A heat pump is a heater that transforms low temperature heat to high temperature heat using a drive energy.New subclass:
ElectricHeatPump: An electric heat pump is a heat pump that uses electric energy as drive energy.Turbine looks good now.
HeatPump: "A heat pump is a heater that transforms low temperature heat to high temperature heat using external energy"? Although it is understood that a heat pump cannot work spontaneously...