Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
8d21814
Temporary update_model workflow
matentzn Apr 15, 2026
d985a7f
Merge branch 'main' into update-runtime-workflow
matentzn Apr 29, 2026
b003cf9
generate validation_datamodel through uv and make sure to sync first
matentzn Apr 29, 2026
8cf63d3
test(plantuml): use text-content parsing #3463
noelmcloughlin Apr 30, 2026
4c2c71b
Merge branch 'main' into update-runtime-workflow
matentzn May 7, 2026
170c138
Apply pre-commit auto-fixes (end-of-file, ruff)
amc-corey-cox May 8, 2026
2090313
Update metamodel test fixtures from linkml-model
amc-corey-cox May 11, 2026
982c7e0
fix(owlgen): warn on covering axiom edge cases for abstract classes
jdsika Apr 2, 2026
17dfbe5
Pin linkml model vendoring to release tag
matentzn May 12, 2026
f18f958
Merge branch 'main' into update-runtime-workflow
matentzn May 12, 2026
5ebce8b
Merge pull request #3510 from linkml/update-metamodel-fixtures
matentzn May 13, 2026
1cab050
Enable python 3.14
melonora May 13, 2026
88afd7a
Deterministic RDF Serialization via pyoxigraph RDFC-1.0
matentzn May 14, 2026
4173490
Update Community-Meetings.md
sagehrke May 14, 2026
2f75978
Merge pull request #3521 from linkml/update-community-meeting-schedule
matentzn May 15, 2026
4bdd98f
Merge branch 'main' into update-runtime-workflow
amc-corey-cox May 15, 2026
018e3d3
Bump linkml-model pin to v1.11.0 (GA, identical to rc2)
amc-corey-cox May 15, 2026
b32f222
Merge pull request #3390 from linkml/update-runtime-workflow
matentzn May 15, 2026
80aa373
chore(yamlutil): add jsonobj as safedumper root_representer
noelmcloughlin May 15, 2026
adb98f3
fix(linkml): relmodel performance improvements
noelmcloughlin May 15, 2026
f7cadbb
fix(oocodegen): imports=self.mergeimports
noelmcloughlin May 15, 2026
6967a2b
fix(excel): class names longer than 31 chars
noelmcloughlin May 17, 2026
1237ec2
perf: fix bottleneck in is_empty validation.
MaximilianWenzel May 19, 2026
bb63e98
Merge branch 'main' into plantuml
sujaypatil96 May 20, 2026
877584d
Merge pull request #3464 from noelmcloughlin/plantuml
sujaypatil96 May 20, 2026
1cfb7c3
Merge branch 'main' into excel2
sujaypatil96 May 20, 2026
b40f736
Merge pull request #3527 from noelmcloughlin/excel2
sujaypatil96 May 21, 2026
d043a15
fix(docgen): omit empty Cardinality table in slot pages
matentzn May 25, 2026
a1bca6b
Merge pull request #3570 from linkml/issue3569
matentzn May 27, 2026
d24624c
feat(jsonschemagen): emit `readOnly: true` for slots with `readonly` …
candleindark May 28, 2026
67fd16b
Merge branch 'main' into fix/owlgen-single-child-covering-axiom-upstream
jdsika May 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.10", "3.11", "3.12", "3.13"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
# Test on Windows with only the oldest and newest Python versions
exclude:
- os: windows-latest
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,4 +126,5 @@ examples/PersonSchema/rust/Cargo.lock
# temporary ignore
monorepo-cleanup.sh
/tests/linkml/test_generators/__snapshots__/figs/class_event_local.svg
/packages/linkml_runtime/linkml-model-github
.worktrees/
2 changes: 1 addition & 1 deletion docs/get-involved/Community-Meetings.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Join the LinkML community for regular sessions featuring presentations on LinkML
| Date | Presenter 1 | Topic 1 | Presenter 2 | Topic 2 |
| :---: | :---: | :---: | :----: | :---: |
| June 18, 2026 | Anh Nguyet Vu | Sage/Synapse's adoption of LinkML https://nf-osi.github.io/nf-metadata-dictionary/ | Corey Levinson | http://schema.oaedata.org/ |
| May 21, 2026 | Inge Vejsbjerg | [LinkML for AI Governance at IBM](https://ibm.github.io/ai-atlas-nexus/) |Joshua Send|TypeDB and TypeQL| |
| May 21, 2026 | Inge Vejsbjerg | [LinkML for AI Governance at IBM](https://ibm.github.io/ai-atlas-nexus/) |Joshua Send|Why TypeDB is the Natural Backend for LinkML| |
| [April 16, 2026](https://docs.google.com/presentation/d/1d2AjM9TBESO6njMXBB-lw5A6WDIFMBb14ZhCRKN2GiY/edit?slide=id.g36e69bd970c_1_50#slide=id.g36e69bd970c_1_50) | Daniel Kapitan| [Introducing PLUGIN and why we fell in love with LinkML](https://docs.google.com/presentation/d/1KqwKnq-f4JsSwHVRtCXZrwqBI7JIP1aqbUqlO7iEjd0/edit?slide=id.p1#slide=id.p1)| Community Discussion Topics| RareLink/REDCap + LinkML with Adam Graefe | |
| [March 19, 2026](https://docs.google.com/presentation/d/13gQtrlTJcF3V8XzW4ruva9_D1tzyp8ZzDLATp2TuuMY/edit?slide=id.g36e69bd970c_1_50#slide=id.g36e69bd970c_1_50)| Damien Goutte-Gattat | [linkml-java](https://github.com/gouttegd/linkml-java): a LinkML runtime library for the Java language ([Slides](https://drive.google.com/file/d/1-hXJo9FFmIvpERrKNJjb_-tTO_6354cM/view?usp=sharing))| Chris Mungall| Validating dynamic value sets with [linkml-term-validator](https://github.com/linkml/linkml-term-validator) ([Slides](https://docs.google.com/presentation/d/1lhdDImxBQDaj8yFgpRYF_pnCTNDVn3Ilkb_pHfoR7Po/edit?slide=id.p#slide=id.p))|
| [February 19, 2026](https://docs.google.com/presentation/d/1Wa_vX8JhLeA_5b7dsRDDoWAA7uTG9fsiH0nMYjxjSz0/edit?slide=id.g36e69bd970c_1_50#slide=id.g36e69bd970c_1_50) | David Linke | [The new LinkML project template based on copier and why we built it](https://zenodo.org/records/18704589) <br> Repo: [linkml-project-copier](https://github.com/linkml/linkml-project-copier) | Nico Matentzoglu | [The LinkML Community Governance & Community Discussion](https://drive.google.com/file/d/1s2Fslc2pN6ig2-TDkdtzjtBKa5z1oFqC/view?usp=sharing) |
Expand Down
43 changes: 37 additions & 6 deletions examples/tutorial/tutorial01/data.ttl
Original file line number Diff line number Diff line change
@@ -1,7 +1,38 @@
@prefix personinfo: <https://w3id.org/linkml/examples/personinfo> .

[] a personinfo:Person ;
personinfo:age "32" ;
personinfo:full_name "Clark Kent" ;
personinfo:id "ORCID:1234" ;
personinfo:phone "555-555-5555" .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wgs: <https://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix qb: <http://purl.org/linked-data/cube#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix dcmitype: <http://purl.org/dc/dcmitype/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix csvw: <http://www.w3.org/ns/csvw#> .
@prefix shex: <http://www.w3.org/ns/shex#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix ssn: <http://www.w3.org/ns/ssn/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dcam: <http://purl.org/dc/dcam/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix schema: <https://schema.org/> .
@prefix schema1: <http://schema.org/> .
_:c14n0 a personinfo:Person ;
personinfo:age "32" ;
personinfo:full_name "Clark Kent" ;
personinfo:id "ORCID:1234" ;
personinfo:phone "555-555-5555" .
60 changes: 45 additions & 15 deletions examples/tutorial/tutorial04/data-semantic.ttl
Original file line number Diff line number Diff line change
@@ -1,17 +1,47 @@
@prefix ORCID: <https://orcid.org/> .
@prefix oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> .
@prefix personinfo: <https://w3id.org/linkml/examples/personinfo/> .
@prefix schema1: <http://schema.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wgs: <https://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix faldo: <http://biohackathon.org/resource/faldo#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix qb: <http://purl.org/linked-data/cube#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ORCID:1234 a schema1:Person ;
schema1:name "Clark Kent" ;
schema1:telephone "555-555-5555" ;
personinfo:age 33 .

ORCID:4567 a schema1:Person ;
schema1:name "Lois Lane" ;
personinfo:age 34 .

[] a personinfo:Container ;
personinfo:persons ORCID:1234,
ORCID:4567 .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix dcmitype: <http://purl.org/dc/dcmitype/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix shex: <http://www.w3.org/ns/shex#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix csvw: <http://www.w3.org/ns/csvw#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ssn: <http://www.w3.org/ns/ssn/> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix oa: <http://www.w3.org/ns/oa#> .
@prefix dcam: <http://purl.org/dc/dcam/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix idot: <http://identifiers.org/> .
@prefix schema: <https://schema.org/> .
@prefix schema1: <http://schema.org/> .
@prefix ORCID: <https://orcid.org/> .
ORCID:1234 schema1:name "Clark Kent" ;
schema1:telephone "555-555-5555" ;
a schema1:Person ;
personinfo:age 33 .
ORCID:4567 schema1:name "Lois Lane" ;
a schema1:Person ;
personinfo:age 34 .
_:c14n0 a personinfo:Container ;
personinfo:persons ORCID:1234 , ORCID:4567 .
55 changes: 43 additions & 12 deletions examples/tutorial/tutorial04/data.ttl
Original file line number Diff line number Diff line change
@@ -1,16 +1,47 @@
@prefix ORCID: <https://orcid.org/> .
@prefix oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> .
@prefix personinfo: <https://w3id.org/linkml/examples/personinfo/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wgs: <https://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix faldo: <http://biohackathon.org/resource/faldo#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix qb: <http://purl.org/linked-data/cube#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix dcmitype: <http://purl.org/dc/dcmitype/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix shex: <http://www.w3.org/ns/shex#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix csvw: <http://www.w3.org/ns/csvw#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ssn: <http://www.w3.org/ns/ssn/> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix oa: <http://www.w3.org/ns/oa#> .
@prefix dcam: <http://purl.org/dc/dcam/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix idot: <http://identifiers.org/> .
@prefix schema: <https://schema.org/> .
@prefix schema1: <http://schema.org/> .
@prefix ORCID: <https://orcid.org/> .
ORCID:1234 a personinfo:Person ;
personinfo:age 33 ;
personinfo:full_name "Clark Kent" ;
personinfo:phone "555-555-5555" .

personinfo:age 33 ;
personinfo:full_name "Clark Kent" ;
personinfo:phone "555-555-5555" .
ORCID:4567 a personinfo:Person ;
personinfo:age 34 ;
personinfo:full_name "Lois Lane" .

[] a personinfo:Container ;
personinfo:persons ORCID:1234,
ORCID:4567 .
personinfo:age 34 ;
personinfo:full_name "Lois Lane" .
_:c14n0 a personinfo:Container ;
personinfo:persons ORCID:1234 , ORCID:4567 .
112 changes: 77 additions & 35 deletions examples/tutorial/tutorial04/personinfo-semantic.shacl.ttl
Original file line number Diff line number Diff line change
@@ -1,39 +1,81 @@
@prefix personinfo: <https://w3id.org/linkml/examples/personinfo/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix schema1: <http://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix wgs: <https://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix qb: <http://purl.org/linked-data/cube#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

personinfo:Container a sh:NodeShape ;
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [ sh:class schema1:Person ;
sh:nodeKind sh:IRI ;
sh:order 0 ;
sh:path personinfo:persons ] ;
sh:targetClass personinfo:Container .

@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix dcmitype: <http://purl.org/dc/dcmitype/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix csvw: <http://www.w3.org/ns/csvw#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix ssn: <http://www.w3.org/ns/ssn/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix dcam: <http://purl.org/dc/dcam/> .
@prefix schema: <https://schema.org/> .
@prefix schema1: <http://schema.org/> .
@prefix ORCID: <https://orcid.org/> .
schema1:Person a sh:NodeShape ;
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [ sh:maxCount 1 ;
sh:maxInclusive 200 ;
sh:minInclusive 0 ;
sh:order 4 ;
sh:path personinfo:age ],
[ sh:description "name of the person" ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:order 1 ;
sh:path schema1:name ],
[ sh:maxCount 1 ;
sh:order 0 ;
sh:path personinfo:id ],
[ sh:description "other names for the person" ;
sh:order 2 ;
sh:path personinfo:aliases ],
[ sh:maxCount 1 ;
sh:order 3 ;
sh:path schema1:telephone ;
sh:pattern "^[\\d\\(\\)\\-]+$" ] ;
sh:targetClass schema1:Person .
sh:closed true ;
sh:ignoredProperties _:c14n7 ;
sh:property _:c14n0 , _:c14n2 , _:c14n3 , _:c14n4 , _:c14n6 ;
sh:targetClass schema1:Person .
personinfo:Container a sh:NodeShape ;
sh:closed true ;
sh:ignoredProperties _:c14n1 ;
sh:property _:c14n5 ;
sh:targetClass personinfo:Container .
_:c14n0 sh:datatype xsd:string ;
sh:description "name of the person" ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:nodeKind sh:Literal ;
sh:order 1 ;
sh:path schema1:name .
_:c14n1 rdf:first rdf:type ;
rdf:rest rdf:nil .
_:c14n2 sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:nodeKind sh:Literal ;
sh:order 0 ;
sh:path personinfo:id .
_:c14n3 sh:datatype xsd:integer ;
sh:maxCount 1 ;
sh:maxInclusive 200 ;
sh:minInclusive 0 ;
sh:nodeKind sh:Literal ;
sh:order 4 ;
sh:path personinfo:age .
_:c14n4 sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:nodeKind sh:Literal ;
sh:order 3 ;
sh:path schema1:telephone ;
sh:pattern "^[\\d\\(\\)\\-]+$" .
_:c14n5 sh:class schema1:Person ;
sh:nodeKind sh:IRI ;
sh:order 0 ;
sh:path personinfo:persons .
_:c14n6 sh:datatype xsd:string ;
sh:description "other names for the person" ;
sh:nodeKind sh:Literal ;
sh:order 2 ;
sh:path personinfo:aliases .
_:c14n7 rdf:first rdf:type ;
rdf:rest rdf:nil .
Loading
Loading