Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIM++ #74

Open
1 of 82 tasks
lmramirea1 opened this issue Mar 20, 2023 · 0 comments
Open
1 of 82 tasks

CIM++ #74

lmramirea1 opened this issue Mar 20, 2023 · 0 comments
Assignees

Comments

@lmramirea1
Copy link

Name

CIM++

Screenshots

Capture

Focus Topic

Deserialiser library for C++ objects from XML/RDF documents based on CIM standards

Primary Purpose

CIM++ is a software project around a deserialiser library (libcimpp) for C++ objects from XML/RDF documents based on the Common Information Model (CIM) standards (i.e. IEC61970/61968/62325) for the energy sector.

Description

The increasing complexity of ICT systems in smart grids requires a standardized data model to improve interoperability. To this aim, IEC 61970/61968/62235 specify the CIM, which defines data structures for many power system components and the relations between them. This means that CIM based software such as the CIM-to-X translators must be kept up-to date as well. First, the CIM-to-X translator has to deserialize the CIM data in the form of RDF/XML documents and present it in the form of objects, C++ objects in our specific case. To enable this with our toolchain, a CIM based data model, specified by a visual Unified Modeling Language (UML) editor, can be mapped to a compilable CIM C++ codebase. This codebase is used for the automated generation of a C++ objects deserializer library for RDF/XML documents following the UML specification. The toolchain and deserializer are implemented in the open-source project called CIM++. The deserialized C++ objects can be processed directly by another C++ program or they can be used as input to a serializer, which converts them into another data format.

It includes a toolchain for an automated generation of the CIM++ Deserializer from ontologies specified by CIM UML. Currently the CIM++ Deserializer is distributed via GitHub and the generation toolchain will follow.

Mathematical Description

No response

Website

https://www.fein-aachen.org/en/projects/cimpp/

Documentation

https://github.com/sogno-platform/libcimpp

Source

https://github.com/sogno-platform/libcimpp.git

Year

2017

Institution

Institute for Automation of Complex Power Systems (ACS)

Funding Source

No response

Publications

2

Publication List

  1. L. Razik, M. Mirz, D. Knibbe, S. Lankes, and A. Monti, “Automated deserializer generation from CIM ontologies: CIM++–an easy-to-use and automated adaptable open-source library for object deserialization in C++ from documents based on user-specified UML models following the Common Information Model (CIM) standards for the energy sector,” Computer Science-Research and Development, pp. 1–11, 2017.
  2. M. Mirz, L. Razik, J. Dinkelbach, H. A. Tokel, G. Alirezaeiz, R. Mathar and A. Monti, “A Co-Simulation Architecture for Power System, Communication and Market in the Smart Grid”

Use Cases

No response

Infrastructure Sector

  • Atmospheric dispersion
  • Agriculture
  • Biomass
  • Buildings
  • Communications
  • Cooling
  • Ecosystems
  • Electric
  • District heating
  • Forestry
  • Health
  • Hydrogen
  • Individual heating
  • Land use
  • Liquid fuels
  • Natural Gas
  • Transportation
  • Water

Represented Behavior

  • Earth Systems
  • Employment
  • Built Infrastructure
  • Financial
  • Macro-economy
  • Micro-economy
  • Policy
  • Social

Modeling Paradigm

  • Analytics
  • Data
  • Discrete Simulation
  • Dynamic Simulation
  • Equilibrium
  • Engineering/Design
  • Optimization
  • Visualization

Capabilities

No response

Programming Language

  • C – ISO/IEC 9899
  • C++ (C plus plus) – ISO/IEC 14882
  • C# (C sharp) – ISO/IEC 23270
  • Delphi
  • GAMS (General Algebraic Modeling System)
  • Go
  • Haskell
  • Java
  • JavaScript(Scripting language)
  • Julia
  • Kotlin
  • LabVIEW
  • Lua
  • MATLAB
  • Modelica
  • Nim
  • Object Pascal
  • Octave
  • Pascal Script
  • Python
  • R
  • Rust
  • Simulink
  • Swift (Apple programming language)
  • WebAssembly
  • Zig

Required Dependencies

No response

What is the software tool's license?

None

Operating System Support

  • Windows
  • Mac OSX
  • Linux
  • iOS
  • Android

User Interface

  • Programmatic
  • Command line
  • Web based
  • Graphical user
  • Menu driven
  • Form based
  • Natural language

Parallel Computing Paradigm

  • Multi-threaded computing
  • Multi-core computing
  • Distributed computing
  • Cluster computing
  • Massively parallel computing
  • Grid computing
  • Reconfigurable computing with field-programmable gate arrays (FPGA)
  • General-purpose computing on graphics processing units
  • Application-specific integrated circuits
  • Vector processors

What is the highest temporal resolution supported by the tool?

Not Applicable

What is the typical temporal resolution supported by the tool?

None

What is the largest temporal scope supported by the tool?

Not Applicable

What is the typical temporal scope supported by the tool?

None

What is the highest spatial resolution supported by the tool?

Not Applicable

What is the typical spatial resolution supported by the tool?

None

What is the largest spatial scope supported by the tool?

Not Applicable

What is the typical spatial scope supported by the tool?

None

Input Data Format

XML, CSV

Input Data Description

No response

Output Data Format

XML

Output Data Description

No response

Contact Details

Lukas Razik ([email protected])

Interface, Integration, and Linkage

No response

@GordStephen GordStephen added the needs-transferring Needs to be copied to the new tools portal (opentools.globalpst.org) label Dec 11, 2023
@GordStephen GordStephen added transferred and removed needs-transferring Needs to be copied to the new tools portal (opentools.globalpst.org) labels Apr 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants