Skip to content

Baseline support for manifest as catalogue data #16

@Sveino

Description

@Sveino

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:

manifest

With 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions