Skip to content

Data model with LinkML#48

Merged
phil-abb merged 1 commit into
mainfrom
data-model_linkml
Apr 23, 2026
Merged

Data model with LinkML#48
phil-abb merged 1 commit into
mainfrom
data-model_linkml

Conversation

@Silvanoc
Copy link
Copy Markdown
Contributor

@Silvanoc Silvanoc commented Apr 2, 2026

The Margo specification needs a single source of truth from which documentation, validation schemas, and tooling get automatically generated. This SUP proposes using LinkML to create the data model and leverage its tooling for all derived artifacts.

Any single source of truth approach increases complexity, but is necessary given the specification's inherent complexity. The success of the approach depends on the available tooling. Any approach will be perceived as wrong if the tooling is not good. Some effort is needed on good tooling.

@phil-abb
Copy link
Copy Markdown
Contributor

phil-abb commented Apr 2, 2026

@margo/technical-wg A new SUP has been started by @Silvanoc for having a single source of truth using LinkML data modeling.

@Silvanoc Silvanoc force-pushed the data-model_linkml branch 2 times, most recently from b27f0ca to 5a8014a Compare April 2, 2026 12:20
@Silvanoc Silvanoc marked this pull request as ready for review April 9, 2026 14:42
@phil-abb
Copy link
Copy Markdown
Contributor

phil-abb commented Apr 9, 2026

@margo/technical-wg - This SUP to use LinkML for single-source data modeling is ready for final review. Please review the proposal and add any questions/comments to the PR.

All TWG participants have 2 weeks to start commenting.

If no comments are added or all comments are addressed within 2 weeks, we'll schedule a meeting for voting members to approve the SUP. If the comments have not been addressed within these 2 weeks, the voting will be scheduled once all comments are addressed.

@phil-abb
Copy link
Copy Markdown
Contributor

I have nothing to add beyond what was commented on in the draft PR in the spec repo.

It adds complexity, but it's worth it.

@Silvanoc
Copy link
Copy Markdown
Contributor Author

Silvanoc commented Apr 16, 2026

It adds complexity, but it's worth it.

I does add complexity, no doubt.

But I'm also convinced that it's worth it. Otherwise I wouldn't be investing my time on demonstrating its need and its feasibility. And honestly, I don't see an option to having some source of truth and generating out of it. For me the open point is which tooling. IMO LinkML is the best approach.

As I argue in the SUP, the key to tackle that complexity is having appropriate tooling.

@ajcraig ajcraig mentioned this pull request Apr 16, 2026
3 tasks
@ajcraig ajcraig linked an issue Apr 17, 2026 that may be closed by this pull request
3 tasks
@matlec
Copy link
Copy Markdown
Contributor

matlec commented Apr 23, 2026

@Silvanoc thanks for your effort to address the inconsistencies in the spec we saw prior to and during the Plugfest in March. I see the need for managing the inherent complexity of the spec, and I think LinkML is the right category of tool. But we must be careful to pair the introduction of LinkML with strong tooling UX and examples. Otherwise, I'm concerned that the learning curve associated with LinkML will slow down community contributions.

@Silvanoc
Copy link
Copy Markdown
Contributor Author

@Silvanoc thanks for your effort to address the inconsistencies in the spec we saw prior to and during the Plugfest in March. I see the need for managing the inherent complexity of the spec, and I think LinkML is the right category of tool.

Glad to see that we agree on this.

But we must be careful to pair the introduction of LinkML with strong tooling UX and examples. Otherwise, I'm concerned that the learning curve associated with LinkML will slow down community contributions.

I don't know what you mean with "examples" apart from the partial implementation available in margo/specification#158 and the whole LinkML documentation (which provides also examples).

I fully agree on the need of tooling to lower the entry barrier. My assumption is that we all agree on the need of a single source of truth. Any of the possible alternatives that I've considered would need such tooling, in most cases the lack of tooling is much bigger than in the LinkML case (one of the main reasons why I chose LinkML).

We must differentiate between the tools needed by the people working on the content of the specification (who might need to modify the model) and those shaping the presentation (HTML, OpenAPI,...).

Nowadays I'd say that the entry barrier to modify the model is very low with the use of AI. Easy generation helps confirming that the expected output is obtained.

Shaping the presentation might be a bit tough, but this should affect much less people than those modifying the model.

Initial version of a Specification Update Proposal (SUP) to use LinkML
to create a specification data model that can be used as single source
of truth for all data-related parts of the specification.

Signed-off-by: Silvano Cirujano Cuesta <silvano.cirujano-cuesta@siemens.com>
@Silvanoc Silvanoc force-pushed the data-model_linkml branch from 5a8014a to aa04fdb Compare April 23, 2026 12:36
@matlec
Copy link
Copy Markdown
Contributor

matlec commented Apr 23, 2026

I don't know what you mean with "examples" apart from the partial implementation available in margo/specification#158 and the whole LinkML documentation (which provides also examples).

It would be good to have a brief guide / how-to for spec authors that explains the steps and prerequisites (in tooling and knowledge) that are needed to make a change to the spec, to validate and preview the change, ... so that we lower the entry barrier to contribute - maybe even as part of an AGENTS.md.

@Silvanoc
Copy link
Copy Markdown
Contributor Author

I don't know what you mean with "examples" apart from the partial implementation available in margo/specification#158 and the whole LinkML documentation (which provides also examples).

It would be good to have a brief guide / how-to for spec authors that explains the steps and prerequisites (in tooling and knowledge) that are needed to make a change to the spec, to validate and preview the change, ... so that we lower the entry barrier to contribute - maybe even as part of an AGENTS.md.

Fully agree on that. All of that belongs IMO to tooling to be developed if this SUP gets approved.

@phil-abb
Copy link
Copy Markdown
Contributor

phil-abb commented Apr 23, 2026

@margo/technical-wg - This SUP has been voted on and approved. #53

@phil-abb phil-abb merged commit 0fc2292 into main Apr 23, 2026
5 checks passed
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.

SUP Voting - Data model with LinkML

4 participants