LinkML Documentation#
Everything you need to know about LinkML, the Linked Data Modeling Language.
LinkML is a flexible modeling language that allows you to author schemas in YAML that describe the structure of your data. Additionally, it is a framework for working with and validating data in a variety of formats (JSON, RDF, TSV), with generators for compiling LinkML schemas to other frameworks.
LinkML is open source (licensed under the Apache-2.0 license) and community-driven. You can find the code on GitHub.
Documentation#
- LinkML at a glance
- Quick Install Guide
- Tutorial
- Part 1: Creating your first LinkML schema
- Part 2: Adding a container object
- Part 3: Adding constraints and performing validation
- Part 4: Working with RDF
- Part 5: Using Python dataclasses
- Part 6: Enumerations
- Part 7: Slots and inheritance
- Part 8: Generating Projects
- Part 9: Working with SQL databases
- Part 10: Working with SQL databases
- LinkML Schemas
- Models
- Schema Element Metadata
- Inheritance
- Slots
- Arrays
- URIs and Mappings
- Semantic Enumerations
- Inlining objects
- Adding constraints and rules
- Type designators
- Subsets
- Imports
- Advanced features
- Mapping schemas to other frameworks
- Schema Linter
- Derived models
- Annotations
- The metamodel
- Expression Language
- Working with Data
- Generators
- How-to Guides
- LinkML Project Cookiecutter
- How to run a collaborative data modeling project
- How to recognize and work with different structural forms
- Using yq for querying and manipulating schemas
- Using JSON-LD
- How to model quantities and measurements
- Porting LinkML tools to other programming languages
- Multidimensional Arrays
- How to Generate AI prompts
- Deprecating elements while maintaining PURLs and other URIs
- Examples of use
- The LinkML Ecosystem
- LinkML specification
- Contribution Guidelines
- FAQ
Metamodel Reference#
The LinkML metamodel is itself described in LinkML. This model is
hosted in the linkml-model
repository. Each element of the model has a URI of the form
https://w3id.org/linkml/<ELEMENT>
, shortened to the CURIE linkml:<ELEMENT>
The key schema elements are:
Developers#
If you are a developer looking to either contribute to the framework, or make use of any linkml package programmatically, this section is for you: