There is a newer version of the record available.

Published May 13, 2026 | Version v1.11.0
Software Open

LinkML: A Linked Open Data Modeling Language

Description

linkml-lint note

  • linkml-lint is now more strict about type validation in schema files. The Python runtime still coerces many shorthand forms at load time, but schemas that previously passed linkml-lint may now fail type checks. Some specific patterns:
    • Multivalued slots must be YAML lists. Bare scalar shorthands under comments, notes, in_subset, see_also, aliases, the *_mappings family, and other multivalued metamodel slots are no longer accepted — you'll need to wrap them in a list.
    • deprecated is a string, not a boolean. The slot is defined to carry a human-readable reason for deprecation. To mark an element deprecated without a reason, it works to use a quoted string (e.g. deprecated: "true") — a bare value that yaml coerces to a boolean will fail the type check.
    • examples.value must be a string. Use examples.value for the canonical textual representation of an example. Non-string examples (mappings, numbers, booleans, nested objects) belong under examples.object.

What's Changed

  • Fix induced_slot setting alias equal to slot name by @kevinschaper in https://github.com/linkml/linkml/pull/3135
  • fix: skip subproperty_of Literal expansion when range is class or enum by @vladistan in https://github.com/linkml/linkml/pull/3185
  • Feature: Improve YARRRML generator object semantics & inline handling by @lapkinvladimir in https://github.com/linkml/linkml/pull/3131
  • feat(plantumlgen): enum rendering, --all flag, format fix, mixin improvements by @mgskjaeveland in https://github.com/linkml/linkml/pull/3201
  • mark more tests that use the metamodel as slow by @sneakers-the-rat in https://github.com/linkml/linkml/pull/3210
  • Emit URIRef for xsd:anyURI values in RDF serialization by @amc-corey-cox in https://github.com/linkml/linkml/pull/3221
  • Use vendored JSON-LD context in generators by @amc-corey-cox in https://github.com/linkml/linkml/pull/3224
  • fix(owlgen): implement children_are_mutually_disjoint by @mgskjaeveland in https://github.com/linkml/linkml/pull/3187
  • Submit releases to the LinkML Zenodo community by @dalito in https://github.com/linkml/linkml/pull/3206
  • Add configurable list formatting for CSV/TSV serialization by @turbomam in https://github.com/linkml/linkml/pull/3134
  • dont leave files open by @sneakers-the-rat in https://github.com/linkml/linkml/pull/3207
  • build(deps): bump the github-actions group with 5 updates by @dependabot[bot] in https://github.com/linkml/linkml/pull/3232
  • Add alumni section with contributors by @matentzn in https://github.com/linkml/linkml/pull/3195
  • javagen: Represent boolean slots as Boolean-typed fields by default. by @gouttegd in https://github.com/linkml/linkml/pull/3178
  • handle special ifabsent cases in ifabsent processor by @sneakers-the-rat in https://github.com/linkml/linkml/pull/2366
  • Relax click dependency specification by @pkalita-lbl in https://github.com/linkml/linkml/pull/3240
  • Fix/suppress vacuous axioms by @mgskjaeveland in https://github.com/linkml/linkml/pull/3192
  • Create new generator sqlvalidationgen by @FlorianK13 in https://github.com/linkml/linkml/pull/3127
  • Update Community-Meetings.md by @sagehrke in https://github.com/linkml/linkml/pull/3252
  • cheaper docgen test and use threadpoolexecutor to generate classes by @sneakers-the-rat in https://github.com/linkml/linkml/pull/3220
  • Add plugin-link for interactive LinkML viewing by @dkapitan in https://github.com/linkml/linkml/pull/3257
  • downgrade null/empty enum errors to warnings for optional slots by @madanucd in https://github.com/linkml/linkml/pull/3227
  • Fix: use kwargs in _normalize_inlined to support inherited classes by @dalito in https://github.com/linkml/linkml/pull/3247
  • Remove obsolete info on testing from pre-monorepo times by @dalito in https://github.com/linkml/linkml/pull/3268
  • Clean up obsolete files in linkml-runtime package and update references to new home by @dalito in https://github.com/linkml/linkml/pull/3271
  • Follow-up of PR #3271 - remove xfails by @dalito in https://github.com/linkml/linkml/pull/3275
  • Update index.rst by @sagehrke in https://github.com/linkml/linkml/pull/3288
  • Create office-hours.md by @sagehrke in https://github.com/linkml/linkml/pull/3286
  • improve plantuml generator help by @Silvanoc in https://github.com/linkml/linkml/pull/3290
  • feat(owlgen): add covering axiom for abstract classes by @mgskjaeveland in https://github.com/linkml/linkml/pull/3219
  • fix(generators): omit sh:class linkml:Any from SHACL output by @jdsika in https://github.com/linkml/linkml/pull/3278
  • Add new decorator feature for compliance tests by @matentzn in https://github.com/linkml/linkml/pull/3302
  • Implementing range_expression in jsonschemagen by @cmungall in https://github.com/linkml/linkml/pull/2860
  • Fix pydantic generator ifabsent=bnode producing invalid code by @amc-corey-cox in https://github.com/linkml/linkml/pull/3238
  • fix(rdflib): support Pydantic models in RDFLibDumper by @emmanuel-ferdman in https://github.com/linkml/linkml/pull/3234
  • Sort type declaration classes in pythongen according to inheritence graph by @christian-monch in https://github.com/linkml/linkml/pull/3045
  • fix(generators): prefer literal coercion in mixed any_of unions by @jdsika in https://github.com/linkml/linkml/pull/3276
  • fix(shacl): emit sh:BlankNodeOrIRI for nodeidentifier type by @jdsika in https://github.com/linkml/linkml/pull/3291
  • feat(context): add --exclude-imports flag to ContextGenerator by @jdsika in https://github.com/linkml/linkml/pull/3294
  • Fix issue #3011 test and add documentation for SHACL naming modes by @kevinschaper in https://github.com/linkml/linkml/pull/3090
  • fix(shaclgen): migrate ShaclGenerator from SchemaLoader to SchemaView by @jdsika in https://github.com/linkml/linkml/pull/3293
  • Enable parallel test execution with pytest-xdist by @amc-corey-cox in https://github.com/linkml/linkml/pull/3306
  • Add AI-Assisted Discussions guidelines by @matentzn in https://github.com/linkml/linkml/pull/3150
  • Make delimited file loader schema-aware to preserve string/enum columns by @Sigfried in https://github.com/linkml/linkml/pull/3289
  • Consolidate GOLR biolink snapshots into single file by @amc-corey-cox in https://github.com/linkml/linkml/pull/3307
  • Misc improvements to the Java code generator by @gouttegd in https://github.com/linkml/linkml/pull/3255
  • Validate tutorial as part of standard tests by @dalito in https://github.com/linkml/linkml/pull/3272
  • Refactor: cleanup dead code by @Silvanoc in https://github.com/linkml/linkml/pull/3265
  • ifabsent enum serialization fix by @kevinschaper in https://github.com/linkml/linkml/pull/3308
  • fix: handle None preconditions in doc-gen class template by @saschabuehrle in https://github.com/linkml/linkml/pull/3310
  • Generator-level governance: add first stab at team proposal based on git blame line count by @matentzn in https://github.com/linkml/linkml/pull/3137
  • fix(gen-json): include mixins/abstracts for union(anyof) support by @noelmcloughlin in https://github.com/linkml/linkml/pull/3274
  • Add boolean truthy/falsy handling for CSV/TSV by @turbomam in https://github.com/linkml/linkml/pull/3144
  • Fix linkml-runtime version floor for multivalued inlined slots (#3182) by @turbomam in https://github.com/linkml/linkml/pull/3183
  • Fix broken doctests across both packages by @cmungall in https://github.com/linkml/linkml/pull/3230
  • Update metamodel test fixtures from linkml-model by @github-actions[bot] in https://github.com/linkml/linkml/pull/3170
  • normalize: Correctly recognise linkml:Any classes. by @gouttegd in https://github.com/linkml/linkml/pull/3328
  • add doc and examples for instantiates vs implements by @sierra-moxon in https://github.com/linkml/linkml/pull/3284
  • Create a pull request template by @matentzn in https://github.com/linkml/linkml/pull/3335
  • Update Community-Meetings.md by @sagehrke in https://github.com/linkml/linkml/pull/3339
  • Update CITATION.cff. by @gouttegd in https://github.com/linkml/linkml/pull/3342
  • Fixes issue #3235: Summary generator prefixes enums in ranges with "Unknown_" by @sveinugu in https://github.com/linkml/linkml/pull/3236
  • javagen: Render uriorcurie-typed slots as String fields. by @gouttegd in https://github.com/linkml/linkml/pull/3311
  • fix(example-runner): normalize hyphenated key names / linkml:Any handling by @noelmcloughlin in https://github.com/linkml/linkml/pull/3319
  • oocodegen/javagen: Add option to honour slot aliases when deriving field names by @gouttegd in https://github.com/linkml/linkml/pull/3326
  • Generate compliance dashboard by @matentzn in https://github.com/linkml/linkml/pull/3303
  • Identifiers cannot be null by @Silvanoc in https://github.com/linkml/linkml/pull/2449
  • Pydanticgen support class alias for class names which aren't valid python classes by @kevinschaper in https://github.com/linkml/linkml/pull/2534
  • feat(sqla): add SQLAlchemy 2.x declarative code generation by @kevinschaper in https://github.com/linkml/linkml/pull/3231
  • Consolidate SchemaBuilder: deprecate linkml copy in favor of linkml_runtime by @dalito in https://github.com/linkml/linkml/pull/3334
  • Fix bug in generation of OWL union, intersection, and none of by @cthoyt in https://github.com/linkml/linkml/pull/3359
  • Jinja template changes for documentation pages search bar optimizations by @sujaypatil96 in https://github.com/linkml/linkml/pull/3350
  • Update CITATION.cff with new ORCID entries and paper by @matentzn in https://github.com/linkml/linkml/pull/3340
  • test: warn when OWL coherency checks are skipped by @SproutSeeds in https://github.com/linkml/linkml/pull/3312
  • test: reduce issue snapshot file count first pass by @SproutSeeds in https://github.com/linkml/linkml/pull/3315
  • Make gen_doc output ordering deterministic by @sveinugu in https://github.com/linkml/linkml/pull/3368
  • Update Community-Meetings.md by @sagehrke in https://github.com/linkml/linkml/pull/3385
  • Add regression tests for _normalize_inlined with comma-containing values by @matentzn in https://github.com/linkml/linkml/pull/3371
  • docs: update feature dashboard by @github-actions[bot] in https://github.com/linkml/linkml/pull/3346
  • feat(generators): add --exclude-external-imports flag for JSON-LD context generator by @jdsika in https://github.com/linkml/linkml/pull/3279
  • doc: do point to Zenodo "transient" DOI by @yarikoptic in https://github.com/linkml/linkml/pull/3394
  • fix(linter): always validate schema against metamodel before linting by @amc-corey-cox in https://github.com/linkml/linkml/pull/3403
  • Fix identifier/key slots not marked required in induced_slot by @amc-corey-cox in https://github.com/linkml/linkml/pull/3348
  • Update validation docs with details on rules by @matentzn in https://github.com/linkml/linkml/pull/3345
  • feat: add TypeDB generator (gen-typedb) by @GullyBurns in https://github.com/linkml/linkml/pull/3382
  • New tabular structure to render unit metaslot information on generated docs pages by @sujaypatil96 in https://github.com/linkml/linkml/pull/3404
  • Update metamodel test fixtures from linkml-model by @github-actions[bot] in https://github.com/linkml/linkml/pull/3424
  • cli: Accept -h as a short equivalent of --help. by @gouttegd in https://github.com/linkml/linkml/pull/3412
  • fix(pythongen): skip runtime-computed ifabsent bakes for the metamodel by @amc-corey-cox in https://github.com/linkml/linkml/pull/3414
  • YARRRML generator bug fixes and E2E tests update by @lapkinvladimir in https://github.com/linkml/linkml/pull/3338
  • fix(induced_slot): resolve spaced/underscored slots to generators names by @noelmcloughlin in https://github.com/linkml/linkml/pull/3322
  • feat: add C++ header generator (gen-cpp-header) by @Kieleth in https://github.com/linkml/linkml/pull/3332
  • Bump the github-actions group with 8 updates by @dependabot[bot] in https://github.com/linkml/linkml/pull/3341
  • fix(sqltablegen): performance optimization #3355 by @noelmcloughlin in https://github.com/linkml/linkml/pull/3356
  • Convert leaf test files from unittest to pytest style by @amc-corey-cox in https://github.com/linkml/linkml/pull/3243
  • Add support for schema dicts in SchemaLoader.importmap by @rly in https://github.com/linkml/linkml/pull/3391
  • Clarify and consolidate schema validation tools by @amc-corey-cox in https://github.com/linkml/linkml/pull/3410
  • [codex] Fix owlgen crash on none_of rule expressions by @cmungall in https://github.com/linkml/linkml/pull/3362
  • fix(pythongen): improved sort_classes performance by @noelmcloughlin in https://github.com/linkml/linkml/pull/3363
  • fix(schemaview): improve induced_slot #3352, _closure #3354 performance by @noelmcloughlin in https://github.com/linkml/linkml/pull/3364
  • Update Schedule on the Community-Meetings.md by @sagehrke in https://github.com/linkml/linkml/pull/3452
  • Update Linkml docs with new Slack signup form by @sagehrke in https://github.com/linkml/linkml/pull/3455
  • Fix enum.md.jinja2 so that it can correctly expand/render dynamic enum elements by @sujaypatil96 in https://github.com/linkml/linkml/pull/3469
  • Update Community-Meetings.md with Guidelines for presenting by @sagehrke in https://github.com/linkml/linkml/pull/3460
  • Trigger CI on merge_group events to unblock the merge queue by @kevinschaper in https://github.com/linkml/linkml/pull/3472
  • build(deps): bump the github-actions group across 1 directory with 5 updates by @dependabot[bot] in https://github.com/linkml/linkml/pull/3470
  • Use linkml.validator in linkml.utils.converter by @sneakers-the-rat in https://github.com/linkml/linkml/pull/2385
  • terminusdb: updates to the modern schema format by @philocalyst in https://github.com/linkml/linkml/pull/3258
  • feat(generators): add --xsd-anyuri-as-iri flag for cross-generator IRI consistency by @jdsika in https://github.com/linkml/linkml/pull/3292
  • fix(jsonldcontextgen): emit scoped contexts for class-level range overrides by @amc-corey-cox in https://github.com/linkml/linkml/pull/3336
  • fix(excelgen): move workbook.save outside loop by @noelmcloughlin in https://github.com/linkml/linkml/pull/3420
  • Adding test for any_of at the class level. by @cmungall in https://github.com/linkml/linkml/pull/2292
  • Update Metamodel files for 1.11.0-rc2 by @matentzn in https://github.com/linkml/linkml/pull/3484
  • Fix 2687: Make class_uri be skos:exactMatch of the element URI on JSON-LD and RDF by @Silvanoc in https://github.com/linkml/linkml/pull/2693
  • docs: update feature dashboard by @github-actions[bot] in https://github.com/linkml/linkml/pull/3486
  • Fix empty multivalued cells crashing loader with --list-wrapper none by @turbomam in https://github.com/linkml/linkml/pull/3251
  • first working version openapi generator by @Silvanoc in https://github.com/linkml/linkml/pull/3300
  • Emit examples in JSON Schema output by @sveinugu in https://github.com/linkml/linkml/pull/3378
  • Add --include flag to linkml validate for schema rules overlay composition by @amc-corey-cox in https://github.com/linkml/linkml/pull/3400
  • feat(contextgen): add @type: @vocab coercion for eligible enums by @jdsika in https://github.com/linkml/linkml/pull/3447
  • Update metamodel test fixtures from linkml-model by @github-actions[bot] in https://github.com/linkml/linkml/pull/3510

New Contributors

  • @dkapitan made their first contribution in https://github.com/linkml/linkml/pull/3257
  • @jdsika made their first contribution in https://github.com/linkml/linkml/pull/3278
  • @christian-monch made their first contribution in https://github.com/linkml/linkml/pull/3045
  • @Sigfried made their first contribution in https://github.com/linkml/linkml/pull/3289
  • @saschabuehrle made their first contribution in https://github.com/linkml/linkml/pull/3310
  • @sveinugu made their first contribution in https://github.com/linkml/linkml/pull/3236
  • @cthoyt made their first contribution in https://github.com/linkml/linkml/pull/3359
  • @SproutSeeds made their first contribution in https://github.com/linkml/linkml/pull/3312
  • @GullyBurns made their first contribution in https://github.com/linkml/linkml/pull/3382
  • @Kieleth made their first contribution in https://github.com/linkml/linkml/pull/3332
  • @philocalyst made their first contribution in https://github.com/linkml/linkml/pull/3258

Full Changelog: https://github.com/linkml/linkml/compare/v1.10.0...v1.11.0

Files

linkml/linkml-v1.11.0.zip

Files (44.8 MB)

Name Size Download all
md5:de7b775f3d34aba0e797f165682ac40e
44.8 MB Preview Download

Additional details

Related works

Software