linkml
Linked Open Data Modeling Language
What it is and what it does
LinkML is a linked data modeling language designed to let you define data schemas once in YAML and generate multiple schema representations—JSON Schema, RDF, ShEx, and others—from that single source. It follows object-oriented and ontological principles, making it useful for domains like healthcare and bioinformatics where semantic interoperability matters. The package includes command-line tools and a Python API for schema generation, validation, and conversion.
You author schemas in YAML, then use LinkML's generators to produce the formats your downstream systems need. It depends on a substantial set of libraries—including jsonschema, rdflib, pydantic, and sqlalchemy—to handle schema validation, RDF processing, and data serialization. The project is actively maintained and supports modern Python versions.
Use it for:
- Define a biomedical data model once in YAML and generate JSON Schema for API validation and RDF for semantic web publishing.
- Convert an existing ontology or schema into multiple formats for use across different tools and platforms.
- Build a domain-specific schema language for internal data governance, then auto-generate documentation and validation code.
- Create linked data models that integrate with existing RDF and OWL ecosystems.
- Generate TypeScript or Python classes from a YAML schema definition for type-safe data handling.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
LinkML is a modeling language for defining linked data schemas in YAML, with tools to generate JSON, RDF, and other schema formats from a single source definition.
Yes, if you need to author schemas once and generate multiple formats (JSON Schema, RDF, ShEx) from a single source. The active maintenance, permissive license, low install friction, and support for current Python versions make it a solid choice. No known vulnerabilities. Best suited for teams working with linked data, semantic web standards, or multi-format schema requirements.
Install
linkml on PyPI
pip
pip install linkmluv
uv add linkmlpoetry
poetry add linkmlInstalling linkml
Before you install
Low install friction with a pure-Python wheel. Active maintenance with a release within the last 86 days. Supports current Python versions (3.10–3.13).
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
pip install linkml
from linkml.loaders import yaml_loader
from linkml.generators.jsonschemagen import JsonSchemaGenerator
schema = yaml_loader.load('my_schema.yaml')
generator = JsonSchemaGenerator(schema)
json_schema = generator.serialize()
Requires Python 3.10 or later.
Verify before relying
- Specific documentation on schema validation and error handling during conversion.
- Performance characteristics when working with large or deeply nested schemas.
- Community adoption metrics beyond download counts (e.g., active issue resolution, contributor base).
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 25 — antlr4-python3-runtime, click, graphviz, hbreader, isodate, jinja2, jsonasobj2, jsonschema, linkml-runtime, openpyxl, parse, prefixcommons, prefixmaps, pydantic, pyjsg, pyshex, pyshexc, python-dateutil, pyyaml, rdflib, requests, sphinx-click, sqlalchemy, typing-extensions, watchdog |
| Maintenance | actively maintained — 86 days since the last release |
| First released | |
| Downloads | 446,587/month — #6,611 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: linkml-1.11.1-py3-none-any.whl
Keywords: biolink, data modeling, linked data, owl, rdf, schema
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
linkml-runtimeProvides runtime support for LinkML-generated…
permissive · top 15,000 on PyPI
schema-saladSchema Salad is a schema language for…
permissive · top 15,000 on PyPI
sssomParse, validate, and convert SSSOM (Simple…
permissive · top 15,000 on PyPI
prontoPronto parses, browses, creates, and exports…
permissive · top 15,000 on PyPI
PyShExPyShEx parses and validates RDF data against…
permissive · top 15,000 on PyPI
owlrlImplements OWL2 RL Profile and RDFS inference…
unclear · top 5,000 on PyPI
ShExJSGShExJSG provides a Python object model for the…
permissive · top 15,000 on PyPI
followthemoneyProvides a pragmatic data model and validation…
permissive · top 15,000 on PyPI
rdflibRDFLib is a Python library for parsing,…
permissive · top 1,000 on PyPI
rdflib-jsonldProvides JSON-LD parsing and serialization for…
permissive · top 15,000 on PyPI