Skip to main content

OpenCGMES

A suite of open-source tools for working with CGMES / CIM (IEC 61970) RDF — RDFS profiles, SHACL constraints, and CIMXML model exchange. Apache 2.0 licensed, built on Apache Jena.

OpenCGMES is three products that share a common foundation:

  • CIMXML — a Java library that parses IEC 61970-552 CIMXML (full models and difference models) into Apache Jena RDF graphs.
  • CIMVocabCheck — static SPARQL and SHACL validation against RDFS / CIM profile schemas. It answers "does this query or shapes graph make sense for the schema I'm working with?" — without executing anything and without needing RDF data. Ships as a library, a CLI, and an LSP language server (CIMLangServer).
  • CIMNotebook — editor integrations (a VS Code extension and an IntelliJ plugin) that bring CIMVocabCheck's validation into the editor as you type.

How the pieces fit together​

CIMXML provides the profile-aware RDF foundation. CIMVocabCheck's core builds a schema index from CIM/RDFS profiles and validates SPARQL and SHACL against it. The CLI and the CIMLangServer wrap that core; CIMNotebook fronts the language server inside editors.

Who should read what​

If you are…Start withThen read
Parsing or generating CIMXML in JavaCIMXML overviewQuick start, Library usage
Writing SPARQL / SHACL for CGMES profilesCIMVocabCheck overviewConfiguration, Validation checks
Validating queries/shapes in Java unit testsLibrary & testsAPI reference
Adding validation in CICLIConfiguration, Endpoints
Working in an editor (VS Code / IntelliJ)CIMNotebook overviewVS Code, IntelliJ
Contributing to OpenCGMESDeveloper guideBuilding, Testing
New to CIM / CGMES / RDFCGMES backgroundthe product overviews above

What you can do with it​

  • Parse CIMXML — read full models and difference models per IEC 61970-552 into Jena graphs, with profile-aware datatype resolution and UUID normalization.
  • Catch query and shape mistakes early — unknown classes/properties, domain/range violations, datatype mismatches, and invalid SHACL cardinalities, all statically, with no dataset and no query execution.
  • Validate in your editor — squiggly underlines, hover docs, completion, and go-to-definition for CIM terms in .rq, .sparql, .ttl, .shacl, and SPARQL Notebook cells.
  • Validate in CI — fail a pipeline on query/shape errors with the CLI, or from your own JUnit tests via the library.
  • Load the schema from a SPARQL endpoint — point at an Apache Jena Fuseki that hosts the CGMES profiles and have the schema and per-graph profile scope discovered automatically.

Coming soon: QueryAndValidationUI​

A web application for uploading RDFS schemas, SHACL shapes, and CIMXML files, querying with SPARQL, and validating against SHACL — currently in development.

License​

OpenCGMES is released under the Apache License 2.0.

Commercial support​

OpenCGMES is actively developed and maintained by SOPTIM AG. The project is free to use under Apache 2.0; commercial support — maintenance, integration services, custom extensions, and CIM/CGMES advisory — is available on request. Contact opencgmes@soptim.de.