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
SchemaDefinition a collection of subset, type, slot and class definitions
ClassDefinition an element whose instances are complex objects that may have slot-value assig...
SlotDefinition an element that describes how instances are related to other instances
TypeDefinition an element that whose instances are atomic scalar values that can be mapped t...
EnumDefinition an element whose instances must be drawn from a specified set of permissible ...
SubsetDefinition an element that can be used to group other metamodel elements
Prefix prefix URI tuple
PermissibleValue a permissible value, accompanied by intended text and an optional mapping to ...
UniqueKey a collection of slots whose values uniquely identify an instance of a class
CommonMetadata Generic metadata shared across definitions
Element a named element in the model
TypeExpression
AnonymousTypeExpression
Definition abstract base class for core metaclasses
EnumExpression An expression that constrains the range of a slot
AnonymousEnumExpression An enum_expression that is not named
MatchQuery A query that is used on an enum expression to dynamically obtain a set of per...
ReachabilityQuery A query that is used on an enum expression to dynamically obtain a set of per...
StructuredAlias object that contains meta data about a synonym or alias including where it ca...
Expression general mixin for any class that can represent some form of expression
AnonymousExpression
PathExpression An expression that describes an abstract path from an object to another throu...
SlotExpression an expression that constrains the range of values a slot can take
AnonymousSlotExpression
ClassExpression A boolean expression that can be used to dynamically determine membership of ...
AnonymousClassExpression
ClassLevelRule A rule that is applied to classes
ClassRule A rule that applies to instances of a class
PatternExpression a regular expression pattern used to evaluate conformance of a string
ImportExpression an expression describing an import
Setting assignment of a key to a value
LocalName an attributed label
Example usage example and description
AltDescription an attributed description
UnitOfMeasure A unit of measure, or unit, is a particular quantity value that has been chos...
Annotatable mixin for classes that support annotations
Annotation a tag/value pair with the semantics of OWL Annotation
Extension a tag/value pair used to add non-model information to an entry
Extensible mixin for classes that support extension

Slots

Slot Description
id The official schema URI
name the unique name of the element within the context of the schema
prefix_prefix the nsname (sans ':' for a given prefix)
class_uri URI of the class that provides a semantic interpretation of the element in a ...
slot_uri predicate of this slot for semantic web application
type_uri The uri that defines the possible values for the type definition
prefix_reference A URI associated with a given prefix
title the official title of 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 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 identify the container
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
typeof Names a parent type
subsets An index to the collection of all subset definitions in the schema
required true means that the slot must be present in the loaded definition
base python base type that implements this type definition
recommended true means that the slot should be present in the loaded definition, but this...
repr the name of the python object that implements this type definition
prefixes prefix / URI definitions to be added to the context beyond those fetched from...
is_a A primary parent class or slot from which inheritable metaslots are propagate...
default_prefix default and base prefix -- used for ':' identifiers, @base and @vocab
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
imports other schemas that are 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
attributes Inline definition of slots
license license for the schema
tree_root indicator that this is the root class in tree structures
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
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 the identifier of this class or slot must begin with the URIs referenced by t...
structured_aliases A list of structured_alias objects
aliases Alaternate names for the element
deprecated Description of why and when this element will no longer be used
todos Outstanding issue that needs resolution
notes editorial notes about an element intended for internal consumption
comments notes and comments about an element intended for external consumption
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 reference
owned_by agent that owns or is the steward of the element
created_by agent that created 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
alias_predicate The relationship between an element and its alias
in_language
source A related resource from which the element is derived
abstract Indicates the class or slot cannot be directly instantiated and is intended f...
mixin Indicates the class or slot is not intended to inherited from without being a...
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 other schemas that are included in this schema
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 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 unique keys for this class
unique_key_name name of the unique key
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
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
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 values of the slot is multivalued with at least one member satisfying the...
all_members the value of the multiavlued slot is a list where all elements conform to the...
singular_name a name that is used in the singular form
inapplicable true means that the 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 container
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 A property of a slot that pertains to its logical properties
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 slots with ranges of type number, the value must be equal to or higher th...
maximum_value for slots with ranges of type number, the value must be equal to or lowe than...
interpolated if true then the pattern is first string interpolated
partial_match if 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
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 quanity being me...
iec61360code
symbol name of the unit encoded as a symbol
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
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
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

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...