Repository navigation
Replies: 5 comments 4 replies
|
I agree that this would a welcomed change. I recommend Proposal A. |
|
@eisber and @m-kovalsky I think this change would help us with the Power BI TMDL converter which lets us parse more of the extra meta data within the Semantic model that we would want to capture inside the custom_extensions data field. Can you weigh in on this? |
|
Thanks @MikeCarlo for the proposal. Option A is a clean solution to me by changing the |
|
@MikeCarlo it would be great to also bring this discussion on the dev@ mailing list. As we say at Apache: "if it doesn't happen on the mailing list, it never happens". Even if the GitHub discussions are "forwarded" to the dev@ mailing list, better to have direct discussions there. |
|
There is a similar discussion for ontology in #146 |
Uh oh!
There was an error while loading. Please reload this page.
Spec Change: structured custom extension / annotation data (avoid opaque JSON strings)
Summary
Propose a core-spec change so converter residue and vendor metadata can be
stored as structured key/value data instead of opaque JSON strings in
custom_extensions[].datathat every consumer must special-case-parse.Spec discussion only — no converter migrations in this PR.
Problem
In
0.2.0.dev0, each custom extension is:String-encoded
datais awkward for authors and tools: values are notfirst-class in YAML/JSON Schema, nested structure is hidden behind
JSON.parse, and round-trips depend on each consumer knowing a vendor’sprivate blob shape.
Converters often land unmapped or partially mapped properties in
these blobs when there is no clear core field yet (or when mapping is
incomplete). Examples include metrics, synonyms /
ai_context, and othervendor attributes — the exact set varies by converter. The common pain is
the same: portable or semi-portable information is trapped in a string.
Refs:
core-spec/ossie-schema.json($defs/CustomExtension),core-spec/spec.md(Custom Extensions).Goals
a JSON string.
portable residue.
extensions / annotations only for genuine leftovers.
0.2.0.dev0.Non-goals
custom_extensions.Proposal
Proposal A - Object-valued
dataChange
datafrom string to objectThis will break converters, however if a converter wants to continue to push just plain text into custom_extenstions -> data
Proposal B - New
propertiesmapOptional object on model / dataset / field / relationship / metric for
non-vendor or cross-tool residue; leave
custom_extensionsforvendor-private blobs.
Clearer separation; new field to name and teach.
Recommendation
Go with Proposal A, Change
datafrom string to objectFollow-ups (after agreement)
ossie-schema.json,spec.md,converters/README.md, examples,validation / python models, then per-converter PRs.
All reactions