Skip to content

[OSSIE][NVIDIA_GSF] Add bidirectional GSF semantic model converter#247

Open
liofnv wants to merge 2 commits into
apache:mainfrom
liofnv:feature/gsf-native-yaml-converter
Open

[OSSIE][NVIDIA_GSF] Add bidirectional GSF semantic model converter#247
liofnv wants to merge 2 commits into
apache:mainfrom
liofnv:feature/gsf-native-yaml-converter

Conversation

@liofnv

@liofnv liofnv commented Jul 22, 2026

Copy link
Copy Markdown

Summary

Adds an offline, bidirectional converter between Apache Ossie YAML and NVIDIA GSF semantic-model YAML.

  • ossie-gsf export: Ossie → NVIDIA GSF
  • ossie-gsf import: NVIDIA GSF → Ossie
  • Python string-in/string-out API
  • No GSF, Neo4j, database, or network connection required for conversion
  • NVIDIA-specific metadata uses the NVIDIA_GSF custom-extension identifier

Why

GSF stores its active semantic layer in Neo4j. Its standalone semantic-model YAML provides a portable representation that can be versioned, reviewed, and converted without connecting directly to a GSF deployment.

Mapping

  • Semantic model → GSF model
  • Dataset → Term
  • Physical field → ColumnAttribute
  • Computed field or metric → SqlAttribute
  • Relationship → semantic foreign key
  • Expression dialects and vendor metadata are preserved for round trips

Testing

  • 19 converter tests
  • Checked-in Ossie/GSF fixture pair
  • Bidirectional semantic round-trip coverage
  • Generated Ossie YAML validated with the repository’s official schema and SQL validator
  • Manually verified through the full CLI and live Neo4j import/export path

Notes

The physical catalog must already be ingested before the generated model is loaded into GSF.

The corresponding GSF import/export implementation is available on:
https://github.com/NVIDIA/GSF/tree/feature/ossie-import-export

Add offline Ossie-to-GSF conversion with a CLI, round-trip metadata preservation, checked-in fixtures, and official Ossie schema validation.
@jbonofre
jbonofre self-requested a review July 22, 2026 15:27
Make the extension namespace reflect the full product name while continuing to accept the legacy GSF identifier on input.
@QMalcolm
QMalcolm self-requested a review July 22, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant