Skip to content

gist generated schema artefacts

Datasetreferencedatasets/generated-artefacts

Checked by automation only

still a draft

Written 2026-10-27 by ktl-librarian (automation). Last checked 2026-10-16 by ktl-librarian (automation).

The full record
Checks
  • 2026-10-16 by ktl-librarian (automation)
Sources
Derived from
Pointed to by
Graph
Open this concept in the knowledge graph
IRI
https://w3id.org/lmodel/gist/knowledge/datasets/generated-artefacts
Licence
CC BY 4.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

just gen-project runs LinkML’s gen-project over src/gist/schema/gist.yaml with the generator settings in .linkml/generators.yaml, and writes the results under project/. Most generators take mergeimports: true, and the JSON Schema takes each element’s gist label as its title. The settings leave out two generators:

  • the SQL DDL, which would hold some 5,400 tables, one for each multivalued slot of each class, because every class carries the 89 slots gist declares without a domain;
  • Java, because the recipe runs gen-java separately afterwards, into the git-ignored project/java/, so gen-project would write that folder twice.

The recipe moves the Python dataclasses into src/gist/datamodel/gist.py and writes a Pydantic model beside it as gist_pydantic.py. It then rewrites project/owl/gist.owl.ttl with a separate gen-owl call whose flags come from LINKML_GENERATORS_OWL_ARGS in config.public.mk, so those flags, not .linkml/generators.yaml, shape the published OWL. Three of those flags leave out the restrictions that only repeat a property’s range or a minimum of none.

gen-project and the separate gen-owl call both keep gist’s own IRIs for gist’s terms. The SHACL shapes are this project’s, and their IRIs are in gist_linkml: (gist_linkml:PersonShape targets gist:Person).

Each class’s definition repeats every slot it inherits, so the JSON Schema, the Pydantic module and the SHACL shapes are about 5 MB, 7 MB and 2.4 MB.

All of these files are committed, and none is edited by hand: regenerate them from the gist LinkML schema instead (Regenerate the schema). CI runs just verify-generated, which regenerates them and fails when a committed file differs in content.

tests/test_generated_artifacts.py (22 tests) checks the JSON Schema, OWL and related outputs. Four of its tests check the committed OWL and SHACL against the gist namespace policy. Four more check that the OWL’s property types, datatype ranges and deprecations, and the datatypes the SHACL shapes accept, match gist’s.