-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Baseline support for manifest as catalogue data
Summary
Introduce baseline (read-only) support in KGraphPy for handling a manifest as catalogue data.
This baseline implementation SHALL:
Support parsing content with or without a manifest file
Support pure syntax translation between:
CIMXML
TriG
JSON-LD (planed)
Support the CGMES 3.0 instance file header exception
Follow a defined folder and file structure
Writing manifests and packaging (ZIP, bundling, etc.) is out of scope for this phase.
Scope
Included in baseline
Read-only parsing of manifest files
Pure syntax translation between CIMXML, TriG, and JSON-LD
Defined directory structure
CGMES 3.0 header handling
Excluded (future phase)
Writing/generating manifest files
ZIP packaging or bundling algorithms
Advanced validation beyond syntax-level checks
General Principle
KGraphPy SHALL perform pure syntax translation between CIMXML, TriG, and JSON-LD (planed). If there are no defined exceptions.
This means:
No semantic transformation
No structural enrichment
No inferred metadata
No model restructuring
The only allowed structural handling is the defined CGMES 3.0 header exception.
Manifest Handling
General Rules
KGraphPy SHALL support parsing:
With manifest present
Without manifest present
If the manifest is not present:
Translation between MD header (CIMXML) and DCAT header (TriG) SHALL be omitted
CGMES 3.0 Exception Rule
For CGMES 3.0 instance files (see issue #7:
Manifest File Rules
Location
- The manifest file SHALL by default be located in the current directory
Naming
The manifest file SHALL always be named:
manifestWith syntax-dependent extension:
| Syntax | Extension |
|---|---|
| CIMXML | .xml |
| TriG | .trig |
| JSON-LD | .jsonld |
Current default:
.trig SHALL be the default manifest format
(simpler to manually create and inspect)
Folder Structure
Syntax variants SHALL be organized in subfolders:
cimxml/
trig/
jsonld/
The structure SHALL follow the same principles as described here:
https://github.com/statnett/Nordic44/blob/main/instances/NetworkCode/ReadMe.adoc
Example Directory Layout
instances/
NetworkCode/
manifest.trig
manifest.xml
trig/
file1.trig
cimxml/
file1.xml
jsonld/
file1.jsonld
Behaviour Summary
| Condition | Behaviour |
|---|---|
| Manifest present | Parse and include in model |
| Manifest absent | Parse content only |
| Syntax translation | Pure syntax translation |
| CGMES 3.0 instance | Header translation allowed |
| Non-CGMES content | No header transformation |