Code Monkey home page Code Monkey logo

ontology's Introduction

OpenEnergyPlatform

License: CC0-1.0 GitHub release (latest by date) Coverage Badge

Open Energy Family - Open Energy Ontology (OEO)

Developing a common ontology for the domain of energy system analysis.

Introduction

The Open Energy Ontology (OEO) is a domain ontology of the energy system analysis context. It is developed as part of the Open Energy Family. The OEO is published on GitHub under an open source license. The language used is the Manchester OWL Syntax, which was chosen because it is user-friendly for editing and viewing differences of edited files. The OEO is constantly being extended. The first version of the OEO has been released on June 11th 2020. A Steering Committee (OEO-SC) was created to accompany the development, increase awareness of the ontology and include it in current projects.

Scope of this ontology

This domain ontology is a collaborative effort to represent the context of energy system analysis based on standard terminologies used by human experts in this field of research. It is designed to improve transparency and facilitate comparability and transferability of energy system modelling and scenario analysis. This ontology makes use of the Basic Formal Ontology (BFO) and its principles. It re-uses several other ontologies as described in the GitHub Wiki.

License / Copyright / Citation

This repository is licensed under CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.
For a scientific citation please see the CITATION.cff.

To cite a specific class of the ontology and its definition please use the following convention:

'class label' (FUll-URI) from the Open Energy Ontology (OEO)

Example:

'energy system' (https://openenergy-platform.org/ontology/oeo/OEO_00030024) from the Open Energy Ontology (OEO)

Releases and installation

The latest version of the OEO can be accessed on the Open Energy Platform and the Master Branch.
All released versions can be downloaded directly from the GitGub Releases.
The currently developed version is available on the default dev Branch.

The source code of the ontology is found in the folder src/ontology/
The main file is src/ontology/oeo.omn

All own modules are collected in the folder src/ontology/edits/
The following diagram illustrates the modular file structure of the OEO. It depicts the import and file hierarchy from external imports (right) to the main file oeo.omn (left). Structure of the OEO

The imported modules are under src/ontology/imports/
To get an overview of the existing modules, take a look at the following wiki article: GitHub Wiki We recommend to use the software Protégé to open and edit the ontology. Additionally, an ontology viewer is available on the Open Energy Platform.

Collaboration

This is an interdisciplinary open source project, help is always welcome.
Everyone is invited to develop this repository with good intentions.

The development of the ontology happens mainly on GitHub and is supplemented by regular (online) developer meetings to review the progress and discuss more complicated topics.

If you're new to GitHub or ontologies check out our "How to participate" article for some first advice and helpful links. The workflow is described in the CONTRIBUTING.md file. Please check it out before you start working on this project. Points that are not clear in the file can be discussed in a GitHub Issue. Please read the GitHub Wiki for more information about the ontology, its standards, its best practice principles and the BFO classification.

Teams

Experts in ontology engineering, economy and energy-system modelling work together collaboratively.
We combine domain knowledge with knowledge about how an ontology should be designed.

If you have a specific question about ontology design, energy system modelling or economy (in context of this ontology), you can tag one of these teams (or persons) to notify its members that you need their feedback or help.

The OEO is organised in a general team and several subteams:

Organisation

Domain Experts

Ontology experts

ontology's People

Contributors

0umfhxcvx5j7joaohfss5mncnistjj6q avatar akleinau avatar alex2448 avatar areleu avatar bachibouzouk avatar christian-rli avatar chrwm avatar fabianneuhaus avatar h-spinde avatar han-f avatar heddaelisabethgardian avatar jannahastings avatar kaischnepf avatar l-emele avatar litotes18 avatar ludee avatar lumi321 avatar markus-rothkoetter avatar mglauer avatar nelekoehler avatar normanzielke avatar seb-ssabes avatar sfluegel05 avatar stage1407 avatar stap-m avatar u-mueller avatar vera-ier avatar viktorwichern avatar vismayajochem avatar wingechr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ontology's Issues

The current git workflow is not clear/perfect

This issue arise from @han-f comment

This is why I am a "fan" to always explain the "why" right where I ask for something. I think this also helps to avoid confusion and saves time (no need to click somewhere else and get familiar with another issue and then click back).

I would suggest that one should at least copy-paste the issue description within the PR description.

Originally posted by @Bachibouzouk in #70 (comment)

The class Generator is not unified

Currently there is a Generator class (subclass of bfo:generically dependent continuant) and an ElectricityGeneratorTechnology Class (subclass of Technology subclass of bfo:object). They have to be unified to get a more clear ontology.

Choose an open license

Requirements:

  • Must be an (approved) open license (SPDX and/or opendefinition)
  • Because the ontology is like code, a suitable open license for code should be selected
  • Should have no or minimal license obligations to be usable for everybody
  • While further developments and extensions are welcome, forks should be published under a new name to ensure a unique version name

Options are:

  • CC0 - Public Domain Dedication, no restrictions, no attribution, "as open as possible"
  • CC-BY 4.0 not well suited for code!
  • BSD or GNU licenses
  • MIT license or ISC license

Example ontology licenses:

fix IRI

we need a proper IRI for the ontology

ElectricityGridComponent should be part_of some ElectricityGrid

Currently, only many subclasses of ElectricityGridComponent are part_of ElectricityGrid. However, it would be easier to have ElectricityGridComponent as part_of ElectricityGrid instead (which of course then would be inherited to the subclasses).
Also note that we have already: ElectricityGrid has_part some ElectricityGridComponent.

Subclasses in geographic regions

Subclasses in geographic regions could, to my understanding, be built in at least two ways.

  1. continent -> subclasses (or entities): Africa, Europe, North America, South America, Australia, ....
  2. continent -> subclasses: country, county, municipality (...), where the latter could again be subclasses of country and so on.

The current suggestion follows 1) having country, county, municipality being classes on the same hierarchy level. What are your thoughts?

See branch feature/geo

Terminology MaStR

@stap-m
i am not sure about the terminology i should use for the parameters from MaStR. For now i just translated them like AuflagenAbschaltungSchattenwurf = RequirementsSwitchOffShadowing.

MaStR need to be restructured

The EmpiricalDataset MaStR (Marktstammdatenregister) currently has the subclass StorageUnitDataset. This should not be a subclass but part_of MaStr.

Also StorageUnitDataset would then have to be reclassified and its subclasses sorted out, as for example EmergencyGenerator should not be a subclass of StorageUnitDataset (and therefore MaStr). It is an object, a DataSet is an InformationArtifact.

Additionally the subclasses have wrong URIs (semanticweb) which could potentially lead to classes with the same name.

Popular tags from OEP

This tags from the OEP I cannot find in the ontology
health
society
Decarbonisation Pathway
economy
environment
Commercial
Conventional
template

Further, the green tags are licenses or something (see issue#31)

The commit 17a88a63 should be split in many commits

Related to 17a88a6 of #46

A solution could be to start a new branch from dev (git checkout dev, git pull, git checkout-b fix/restructure-scenario) and push it immediately. Then create a pull request in which one can copy the following as the PR's description :

As the whole Class ElectricityProductionUnit, rather than just it's subclass WindEntity (renamed to the more specific "WindEntityData") contains specifications of those units and is not an object. So I move it to bfo:quality (subclass of specifically dependent continuant) as it depends on the Unit it describes and add the suffix "Property"

  • Add object properties "has_disposition", "has_role", "has_function" and "has_quality"
  • Move Pollutant and it's subclasses GreenhouseGas and Airpollutant to bfo:disposition
  • Make flourinatedGas subclass of "has_disposition some greenhousegas" instead of greenhousegas
  • As "Agent" is rather a role in the energy model/ simulation I move it to role. Which gives me the opportunity to classify ist subclasses new as object aggregate (Organisation) and object (Person)
  • Add subclass "has_part some Person" to Organisation because it fits the given definition
  • Implement changes of issue #45 (generalize the solutions for liquid and solid too): rename "StateOfMatter" to "PortionOfMatter"
  • Add prefix "PortionOf" to it's subclasses, as well as add the bfo:quality "phase_description" with its subclasses "Liquid", "Solid", and "Gas"

ElectricityGridComponent needs to be restructured

Right now the subclasses of ElectricityGridComponent (classified as bfo:generically dependent continuant) are partly better classified as objects (like Generator and StorageUnit) or InformationArtifact (like CommonParameters and HydroEntityDataset). They have to be restructured.

Instances for units

The ontology should include specific units (e.g. inch for LengthUnit). I guess these would be implemented best as individuals of UnitOfMeasurement.

@fabianneuhaus : It seems quite redundant to include units like cm if the ontology already includes m. Is this appropriate or should we include some kind of 'scaling'?

Instances of GreenhouseGas need reclassification

The class GreenhouseGas (subclass of Pollutant subclass of bfo:disposition) has instances like Carbon_dioxide and Methane that dont have any other superclasses.
Because those are material entities I propose to just make them all subclasses of Gas?

wrong modelling of "state of matter"

Coal is a solid, and solid is "state of matter". This means that coal is a "state of matter". But this is not true. Coal has a "state of matter" (namely, solid).

Distinguish between continuants

The current subclass hierarchy does not correctly distinguish between the different types of continuants:

  • independent continuant
  • specifically dependent continuant
  • generically dependent continuant

Currently everything is a generically dependent continuant. We should restructure the class hierarchy.

Check definition of Hydropower and WaterTurbine

  • 1. Splitting Hydropower in Hydro and Ocean as two different Types of EnergyCarrier

  • 2. WaterTurbine replaced with OceanPowerPlant and HydroPowerPlant
    note: not replaced but all exist now

  • 3. Subclasses of OceanPowerplant are WavePowerPlant and TidalPowerPlant

  • 4. Subclasses of HydroPowerplant are ReservoirPowerPlant and RunOfRiverPowerplant

  • 5. Subclasses of ReservoirPowerPlant are StorageHydropowerPlant, PumpstoragePowerPlant and PumpstoragePowerPlantWithNaturalInflux

  • 5.OceanPowerplant uses some Ocean

  • 6.HydroPowerplant uses some Hydro

To 5. A Storage Powerplant has no Pump system. Pumpstorage Power Plants can have a natural influx but also not.

Trouble merging branches

We have a few troubles:

  • Protege seems to change the order of attributes in the omn file when working on the ontology.
    Thus it marks changes when comparing versions where there are none.

  • It seems that Protege sorts classes alphabetically. If persons work on different branches and in different places, then changes with similar alphabetic beginnings end up in the same place when trying to merge with git - thus seemingly creating conflicts (where there should actually be none)

We have created the branch feature/geo off feature/resources and have trouble merging back into feature/resources due to the above mentioned issues. We are not sure how to resolve this. Do you have an advice on how to deal with this?

Suggestion: Potentially add this to the agenda for the next ontology meeting.

@l-emele
@wingechr

protégé 5.5.0 fails to import oeo.omn on linux

A fresh install of protege-5.5.0-beta-4 (as is the default download for linux-users on their website) is not able to import oeo.omn. The program freezes, displaying an empty error message window.

A workaround is to just use an older version. Version 5.2.0 imports the file without any problems. (available here)

Sector definitions

Our ideas on class Sector (as they can be characterised differently), and we will work on this

Add a class SectorConcept
Each Sector has a SectorConcept
SectorConcept contains subclasses of concepts that have specific names
    These subclasses can be filled with information accordingly

Classification EnergyCarrier needs to be restructured

The class EnergyCarrier with subclasses like Air, Heat and Fuel is currently a subclass of bfo:object. As they dont have boundaries and are uncountable (same problem as with StateOfMatter) EnergyCarrier needs to be reclassified.

Build proper import hierarchy

There are some concepts that are used in many party of the ontology. They should not be redefined in every part for consistency reasons. Yet, just refencing e.g. oeo:Transformation does not import the corresponding semantics. So, we need some common module that contains basic features.

The workflow strategy is not complete yet

As there seem to be different opinions on workflow, especially merges, we need to discuss that in an own issue instead of the now closed pull request #58.

Requirements/demands from the Ontology hackathon meeting:

  • A class should always have a definition which reflects what the class is (should be discussed)

  • Every entry in the ontology should have an annotation

  • The classes should arise from concepts rather than words

  • The goal of this ontology (what it should help with) should be kept in mind by the collaborators (and hence must be clearly described somewhere, like in the README and/or the CONTRIBUTE)

  • Names should follow the UpperCamelCase

use of ontology

As a user I would like to use a glossary/ontology to understand  unknown terms and ensure that my terminology and that of SzenarioDB match.

Collection of used DCAT-AP namespace prefixes

The metadata set DCAT-AP and GeoDCAT-AP is using some namespaces I wan't to collect and link here:

  • DCMI Metadata Terms (dct)
  • Asset Description Metadata Schema (adms)
  • W3C Data Catalog Vocabulary (dcat)
  • ISA Data Catalog Vocabulary Application Profile (DCAT-AP)
  • GeoDCAT
  • ISA Core Location Vocabulary (LOCN)
  • Friend of a Friend (FOAF)
  • SPDX
  • Schema.org
  • VCARD

Sources:

The definition of sector is not clear

I'm not sure anymore if a sector is really an object aggregate. Maybe rather a generically dependent continuant? Is a sector more than the sum of its parts? What are its parts? A more detailed definition/ explanation of what a sector is would also help.

Check definition and hirarchy of 'agent'

Definition of 'agent' includes the term 'person', but at the moment 'person' is subclass of 'agent'.

  1. Is this a good definition?
  2. Is the hirarchy correct/reasonable?

Content and format of 'definition source'

How should the field 'definition source' be used? So far I've put just URLs in the field 'definition source' but this is not a complete indication of the source.

Should that be just plain text? Or should that be e.g. formatted in a machine readable format like BibTeX? Or something completely different?

How to add a property other than "subclass of"?

Following our discussions in January I have started including emission-related information in the ontology.

In the branch feature/resources I included the class Pollutant which contains the subclasses GreenhouseGas and AirPollutant. In the subclass GreenhouseGas I also added some individuals like Carbon_dioxide and Methane. I also included in the class Quantity the subclasses GlobalWarmingPotential and EmissionFactor next to the already existing subclass Emission.

Now I want to tell Protégé that the subclasses GlobalWarmingPotential, EmissionFactor, and Emission are always connected to a pollutant. In spoken language I would say something like: "The value of a GlobalWarmingPotential (GWP) can never stand alone, it has always to be mentioned for which greenhouse gas this GWP belongs to." (EmissionFactor and Emission are identical cases.)

How can I add a property like that in Protégé? Obviously the property "subclass of" does not fit here.

cc @han-f @wingechr

P.S. If you are not familiar with the GWP concept, check here: https://en.wikipedia.org/wiki/Global_warming_potential

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.