LinkML at a glance
LinkML is a flexible modeling language that allows you to author
schemas (“models”) in YAML that describe the structure of your
data. The language is designed to allow for both simple use cases such
as describing the column headers in a spreadsheet through to creating
a complex interlinked schema.
LinkML is designed to work in harmony with other frameworks, including
both semantic RDF-based frameworks, as well as frameworks that are more familiar
to developers such as JSON.
Feature: Rich modeling language
LinkML offers many features of use to data modelers, while retaining a simple core
Classes can be arranged in inheritance hierarchies
Powerful yet easy to use Semantic enumerations that can optionally be backed by ontologies
Create data models that are independent of a database technology
Develop machine-actionable reporting standards and data dictionaries
Include rich annotations and mappings as part of a model
“Linked Data” ready
A bridge between frameworks
Many frameworks lock you in to a particular view of the world or
technology. This can lead to silos, and the need to create mappings
and transformations between different representations of the same
data; for example, if your JSON documents need to work in concert with
your relational database or graph store.
LinkML has [many different generators forexisting
frameworks that allow the translation of a LinkML
schema to other frameworks:
Convert to JSON-LD contexts, and instantly port your data to RDF
Convert to JSON-Schema and using JSON-Schema validators
Convert to SHACL or ShEx and validate your RDF data
Convert to Python dataclasses or pydantic for easy use within applications
Generate SQL Schemas or SQL Alchemy for use with relational databases
Feature: Generation of documentation and websites
Using the LinkML toolchain you can go from a schema to a statically
hosted searchable website in minutes, with pages for each of your
schema elements. Using lightweight namespace registries such as
w3id.org you can easily have resolvable URIs for all your concepts.
We eat our own dogfood!
The LinkML schema language is itself defined in LinkML, and we use our own toolchain for working with it!