Skip to content

LinkML Schema Metamodel

The metamodel for schemas defined using the Linked Data Modeling Language framework.

For more information on LinkML:

LinkML is self-describing. Every LinkML schema consists of elements that instantiate classes in this metamodel.

Core metaclasses:

There are many subsets of profiles of the metamodel, for different purposes:

For canonical reference documentation on any metamodel construct, refer to the official URI for each construct, e.g. https://w3id.org/linkml/is_a

URI: https://w3id.org/linkml/meta

Name: meta

Classes

Class Description
AltDescription an attributed description
Annotatable mixin for classes that support annotations
AnonymousEnumExpression An enum_expression that is not named
AnonymousExpression An abstract parent class for any nested expression
        AnonymousClassExpression None
        AnonymousSlotExpression None
AnonymousTypeExpression A type expression that is not a top-level named type definition. Used for nesting.
Anything None
AnyValue None
ArrayExpression defines the dimensions of an array
ClassExpression A boolean expression that can be used to dynamically determine membership of a class
ClassLevelRule A rule that is applied to classes
        ClassRule A rule that applies to instances of a class
CommonMetadata Generic metadata shared across definitions
DimensionExpression defines one of the dimensions of an array
Element A named element in the model
        Definition abstract base class for core metaclasses
                ClassDefinition an element whose instances are complex objects that may have slot-value assignments
                EnumDefinition an element whose instances must be drawn from a specified set of permissible values
                SlotDefinition an element that describes how instances are related to other instances
        SchemaDefinition A collection of definitions that make up a schema or a data model.
        SubsetDefinition an element that can be used to group other metamodel elements
        TypeDefinition an element that whose instances are atomic scalar values that can be mapped to primitive types
Example usage example and description
Expression general mixin for any class that can represent some form of expression
        EnumExpression An expression that constrains the range of a slot
        SlotExpression an expression that constrains the range of values a slot can take
        TypeExpression An abstract class grouping named types and anonymous type expressions
Extensible mixin for classes that support extension
Extension a tag/value pair used to add non-model information to an entry
        Annotation a tag/value pair with the semantics of OWL Annotation
ImportExpression an expression describing an import
LocalName an attributed label
MatchQuery A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts.
PathExpression An expression that describes an abstract path from an object to another through a sequence of slot lookups
PatternExpression a regular expression pattern used to evaluate conformance of a string
PermissibleValue a permissible value, accompanied by intended text and an optional mapping to a concept URI
Prefix prefix URI tuple
ReachabilityQuery A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types.
Setting assignment of a key to a value
StructuredAlias object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)
UniqueKey a collection of slots whose values uniquely identify an instance of a class
UnitOfMeasure A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension).

Slots

Slot Description
id The official schema URI
name the unique name of the element within the context of the schema
prefix_prefix The prefix components of a prefix expansions
class_uri URI of the class that provides a semantic interpretation of the element in a ...
slot_uri URI of the class that provides a semantic interpretation of the slot in a lin...
type_uri The uri that defines the possible values for the type definition
prefix_reference The namespace to which a prefix expands to
title A concise human-readable display label for the element
classes An index to the collection of all class definitions in the schema
slot_definitions An index to the collection of all slot definitions in the schema
description a textual description of the element's purpose and use
enums An index to the collection of all enum definitions in the schema
identifier True means that the key slot(s) uniquely identifies the elements
types An index to the collection of all type definitions in the schema
alias the name used for a slot in the context of its owning class
multivalued true means that slot can have more than one value and should be represented u...
typeof A parent type from which type properties are inherited
subsets An index to the collection of all subset definitions in the schema
required true means that the slot must be present in instances of the class definition
base python base type in the LinkML runtime that implements this type definition
recommended true means that the slot should be present in instances of the class definiti...
repr the name of the python object that implements this type definition
prefixes A collection of prefix expansions that specify how CURIEs can be expanded to ...
is_a A primary parent class or slot from which inheritable metaslots are propagate...
default_prefix The prefix that is used for all elements within a schema
mixins A collection of secondary parent classes or slots from which inheritable meta...
default_range default slot range to be used if range element is omitted from a slot definit...
slots collection of slot names that are applicable to a class
settings A collection of global variable settings
text The actual permissible value itself
imports A list of schemas that are to be included in this schema
meaning the value meaning of a permissible value
slot_usage the refinement of a slot in the context of the containing class definition
inlined True means that keyed or identified slot appears in an outer structure by val...
inlined_as_list True means that an inlined slot is represented as a list of range instances
inlined_as_simple_dict True means that an inlined slot is represented as a simple dict whose values ...
attributes Inline definition of slots
license license for the schema
tree_root Indicates that this is the Container class which forms the root of the serial...
pattern the string value of the slot must conform to this regular expression expresse...
rank the relative order in which the element occurs, lower values are given preced...
any_of holds if at least one of the expressions hold
exactly_one_of holds if only one of the expressions hold
none_of holds if none of the expressions hold
all_of holds if all of the expressions hold
preconditions an expression that must hold in order for the rule to be applicable to an ins...
postconditions an expression that must hold for an instance of the class, if the preconditio...
elseconditions an expression that must hold for an instance of the class, if the preconditio...
conforms_to An established standard to which the element conforms
implements An element in another schema which this element conforms to
instantiates An element in another schema which this element instantiates
categories Controlled terms used to categorize an element
keywords Keywords or tags used to describe the element
definition_uri The native URI of the element
id_prefixes An allowed list of prefixes for which identifiers must conform
id_prefixes_are_closed If true, then the id_prefixes slot is treated as being closed, and any use of...
structured_aliases A list of structured_alias objects, used to provide aliases in conjunction wi...
aliases Alternate names/labels for the element
deprecated Description of why and when this element will no longer be used
todos Outstanding issues that needs resolution
notes editorial notes about an element intended primarily for internal consumption
comments notes and comments about an element intended primarily for external consumpti...
in_subset used to indicate membership of a term in a defined subset of terms used for a...
from_schema id of the schema that defined the element
imported_from the imports entry that this element was derived from
see_also A list of related entities or URLs that may be of relevance
owned_by agent that owns or is the steward of the element
created_by agent that created the element
contributors agent that contributed to the element
created_on time at which the element was created
last_updated_on time at which the element was last updated
modified_by agent that modified the element
status status of the element
literal_form The literal lexical form of a structured alias; i
alias_predicate The relationship between an element and its alias
in_language the primary language used in the sources
source A related resource from which the element is derived
publisher An entity responsible for making the resource available
abstract Indicates the class or slot cannot be directly instantiated and is intended f...
mixin Indicates the class or slot is intended to be inherited from without being an...
apply_to Used to extend class or slot definitions
values_from The identifier of a "value set" -- a set of identifiers that form the possibl...
code_set the identifier of an enumeration code set
code_set_version the version identifier of the enumeration code set
code_set_tag the version tag of the enumeration code set
pv_formula Defines the specific formula to be used to generate the permissible values
permissible_values A list of possible values for a slot range
enum_uri URI of the enum that provides a semantic interpretation of the element in a l...
include An enum expression that yields a list of permissible values that are to be in...
minus An enum expression that yields a list of permissible values that are to be su...
inherits An enum definition that is used as the basis to create a new enum
matches Specifies a match query that is used to calculate the list of permissible val...
identifier_pattern A regular expression that is used to obtain a set of identifiers from a sourc...
concepts A list of identifiers that are used to construct a set of permissible values
reachable_from Specifies a query for obtaining a list of permissible values based on graph r...
source_ontology An ontology or vocabulary or terminology that is used in a query to obtain a ...
is_direct True if the reachability query should only include directly related nodes, if...
traverse_up True if the direction of the reachability query is reversed and ancestors are...
include_self True if the query is reflexive
relationship_types A list of relationship types (properties) that are used in a reachability que...
source_nodes A list of nodes that are used in the reachability query
emit_prefixes a list of Curie prefixes that are used in the representation of instances of ...
version particular version of schema
structured_imports A list of specifications for how to import elements from external schemas
default_curi_maps ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes...
metamodel_version Version of the metamodel used to load the schema
source_file name, uri or description of the source of the schema
source_file_date modification date of the source of the schema
source_file_size size in bytes of the source of the schema
generation_date date and time that the schema was loaded/generated
enum_range An inlined enumeration
range_expression A range that is described as a boolean expression combining existing ranges
boolean_slot A grouping of slots that expression a boolean operator over a list of operand...
bidirectional in addition to preconditions entailing postconditions, the postconditions ent...
open_world if true, the the postconditions may be omitted in instance data, but it is va...
deactivated a deactivated rule is not executed by the rules engine
rules the collection of rules that apply to all members of this class
classification_rules The collection of classification rules that apply to all members of this clas...
slot_conditions expresses constraints on a group of slots for a class expression
subclass_of DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation
defining_slots The combination of is a plus defining slots form a genus-differentia definiti...
union_of indicates that the domain element consists exactly of the members of the elem...
unique_keys A collection of named unique keys for this class
unique_key_name name of the unique key
consider_nulls_inequal By default, None values are considered equal for the purposes of comparisons ...
unique_key_slots list of slot names that form a key
slot_names_unique if true then induced/mangled slot names are not created for class_usage and a...
domain defines the type of the subject of the slot
range defines the type of the object of the slot
array coerces the value of the slot into an array and defines the dimensions of tha...
dimensions definitions of each axis in the array
minimum_number_dimensions minimum number of dimensions in the array
maximum_number_dimensions maximum number of dimensions in the array, or False if explicitly no maximum
exact_number_dimensions exact number of dimensions in the array
inherited true means that the value of a slot is inherited by subclasses
readonly If present, slot is read only
ifabsent function that provides a default value for the slot
implicit_prefix Causes the slot value to be interpreted as a uriorcurie after prefixing with ...
value_specification_constant Grouping for metamodel slots that constrain the a slot value to equal a speci...
list_value_specification_constant Grouping for metamodel slots that constrain members of a multivalued slot val...
value_presence if true then a value must be present (for lists there must be at least one va...
equals_string the slot must have range string and the value of the slot must equal the spec...
equals_number the slot must have range of a number and the value of the slot must equal the...
equals_expression the value of the slot must equal the value of the evaluated expression
exact_cardinality the exact number of entries for a multivalued slot
minimum_cardinality the minimum number of entries for a multivalued slot
maximum_cardinality the maximum number of entries for a multivalued slot
equals_string_in the slot must have range string and the value of the slot must equal one of t...
equals_number_in the slot must have range number and the value of the slot must equal one of t...
has_member the value of the slot is multivalued with at least one member satisfying the ...
all_members the value of the slot is multivalued with all members satisfying the conditio...
singular_name a name that is used in the singular form
inapplicable true means that values for this slot must not be present
list_elements_ordered If True, then the order of elements of a multivalued slot is guaranteed to be...
list_elements_unique If True, then there must be no duplicates in the elements of a multivalued sl...
shared If True, then the relationship between the slot domain and range is many to o...
key True means that the key slot(s) uniquely identify the elements within a singl...
designates_type True means that the key slot(s) is used to determine the instantiation (types...
owner the "owner" of the slot
domain_of the class(es) that reference the slot in a "slots" or "slot_usage" context
is_usage_slot True means that this slot was defined in a slot_usage situation
usage_slot_name The name of the slot referenced in the slot_usage
subproperty_of Ontology property which this slot is a subproperty of
disjoint_with Two classes are disjoint if they have no instances in common, two slots are d...
children_are_mutually_disjoint If true then all direct is_a children are mutually disjoint and share no inst...
relational_logical_characteristic An abstract grouping for metaslots that describe logical properties of a slot
symmetric If s is symmetric, and i
asymmetric If s is antisymmetric, and i
reflexive If s is reflexive, then i
irreflexive If s is irreflexive, then there exists no i such i
locally_reflexive If s is locally_reflexive, then i
transitive If s is transitive, and i
transitive_form_of If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transit...
reflexive_transitive_form_of transitive_form_of including the reflexive case
inverse indicates that any instance of d s r implies that there is also an instance o...
is_class_field indicates that for any instance, i, the domain of this slot will include an a...
role a textual descriptor that indicates the role played by the slot range
minimum_value For ordinal ranges, the value must be equal to or higher than this
maximum_value For ordinal ranges, the value must be equal to or lower than this
interpolated if true then the pattern is first string interpolated
partial_match if not true then the pattern must match the whole string, as if enclosed in ^
syntax the string value of the slot must conform to this regular expression expresse...
structured_pattern the string value of the slot must conform to the regular expression in the pa...
string_serialization Used on a slot that stores the string serialization of the containing object
alt_description_text text of an attributed description
alt_description_source the source of an attributed description
alt_descriptions A sourced alternative description for an element
value example value
value_description description of what the value is doing
value_object direct object representation of the example
examples example usages of an element
setting_key the variable name for a setting
setting_value The value assigned for a setting
import_from
import_as
import_map
local_name_source the ncname of the source of the name
local_name_value a name assigned to an element in a given ontology
local_names
slot_group allows for grouping of related slots into a grouping slot that serves the rol...
is_grouping_slot true if this slot is a grouping slot
followed_by in a sequential list, this indicates the next member
reversed true if the slot is to be inversed
traverse the slot to traverse
path_rule a rule for inferring a slot assignment based on evaluating a path through a s...
represents_relationship true if this class represents a relationship rather than an entity
relational_role the role a slot on a relationship class plays, for example, the subject, obje...
unit an encoding of a unit
ucum_code associates a QUDT unit with its UCUM code (case-sensitive)
derivation Expression for deriving this unit from other units
has_quantity_kind Concept in a vocabulary or ontology that denotes the kind of quantity being m...
iec61360code
symbol name of the unit encoded as a symbol
abbreviation An abbreviation for a unit is a short ASCII string that is used in place of t...
descriptive_name the spelled out name of the unit, for example, meter
mappings A list of terms from different schemas or terminology systems that have compa...
exact_mappings A list of terms from different schemas or terminology systems that have ident...
close_mappings A list of terms from different schemas or terminology systems that have close...
related_mappings A list of terms from different schemas or terminology systems that have relat...
narrow_mappings A list of terms from different schemas or terminology systems that have narro...
broad_mappings A list of terms from different schemas or terminology systems that have broad...
deprecated_element_has_exact_replacement When an element is deprecated, it can be automatically replaced by this uri o...
deprecated_element_has_possible_replacement When an element is deprecated, it can be potentially replaced by this uri or ...
annotations a collection of tag/text tuples with the semantics of OWL Annotation
extensions a tag/text tuple attached to an arbitrary element
extension_tag a tag associated with an extension
extension_value the actual annotation

Enumerations

Enumeration Description
PvFormulaOptions The formula used to generate the set of permissible values from the code_set ...
RelationalRoleEnum enumeration of roles a slot on a relationship class can play
AliasPredicateEnum permissible values for the relationship between an element and an alias
PresenceEnum enumeration of conditions by which a slot value should be set

Types

Type Description
String A character string
Integer An integer
Boolean A binary (true or false) value
Float A real number that conforms to the xsd:float specification
Double A real number that conforms to the xsd:double specification
Decimal A real number with arbitrary precision that conforms to the xsd:decimal speci...
Time A time object represents a (local) time of day, independent of any particular...
Date a date (year, month and day) in an idealized calendar
Datetime The combination of a date and time
DateOrDatetime Either a date or a datetime
Uriorcurie a URI or a CURIE
Curie a compact URI
Uri a complete URI
Ncname Prefix part of CURIE
Objectidentifier A URI or CURIE that represents an object in the model
Nodeidentifier A URI, CURIE or BNODE that represents a node in a model
Jsonpointer A string encoding a JSON Pointer
Jsonpath A string encoding a JSON Path
Sparqlpath A string encoding a SPARQL Property Path

Subsets

Subset Description
BasicSubset An extension of MinimalSubset that avoids advanced constructs and can be impl...
MinimalSubset The absolute minimal set of elements necessary for defining any schema
ObjectOrientedProfile A profile that includes all the metamodel elements whose semantics can be exp...
OwlProfile A profile that includes all the metamodel elements whose semantics can be exp...
RelationalModelProfile A profile that includes all the metamodel elements whose semantics can be exp...
SpecificationSubset A subset that includes all the metamodel elements that form part of the norma...