derrickoswald / derrickoswald/CIMSpark

CIM 100

Open
#8 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Scala
Stars
19
Forks
1
PR merge metrics
No merged PRs in 30d

Description

The CIMreader is currently coded for [CIM 17](http://cimug.ucaiug.org/Current%20Official%20CIM%20Model%20Releases/Forms/Custom%20All%20Documents.aspx) or rather one specific combination of CIM17 (iec61970cim17v34_iec61968cim13v12_iec62325cim03v17a.eap) that has been labeled CIM100.

For generality, the CIMReader needs to be able to:

- allow for two or more different sets of CIM model classes by version in the source code repository
- identify one set as the default version (softlink?)
- allow for static compilation of client code against a specific model
- identify the model version to be used on import using the CIM header namespace, which maybe needs a heuristic based on namespaces seen in the wild, e.g.:
- xmlns:cim="[http://iec.ch/TC57/2016/CIM-schema-cim17#](https://ec.europa.eu/research/participants/documents/downloadPublic?documentIds=080166e5af3ae0ff&appId=PPGMS)"
- xmlns:cim="http\://iec.ch/TC57/2013/CIM-schema-cim16#" ← our original namespace
- xmlns:cim="[http://iec.ch/TC57/2012/CIM-schema-cim17#](https://raw.githubusercontent.com/GRIDAPPSD/Powergrid-Models/master/blazegraph/test/IEEE8500.xml)"
- xmlns:cim="[http://iec.ch/TC57/CIM100#](https://raw.githubusercontent.com/GRIDAPPSD/Powergrid-Models/master/blazegraph/test/IEEE8500.xml)"
- allow for dynamic programmatic selection of model version classes based on the RDF header (perhaps altering the Java classpath so that client code need not be concerned with a specific version, i.e. import cim17.model vs. import cim16.model) unless they use new or changed classes
- allow for older models (CIM16, CIM15, CIM14) in the same jar file
- allow for conversion between versions, either upgrade or downgrade

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the CIMReader entry point and inspect how the current CIM100 model classes are stored and selected. Compare that flow with the listed CIM namespaces and determine the repository and build changes needed for multiple model versions. Done means the requested version selection, compatibility with older models, and version conversion behavior are defined and covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala, spark
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.