meta

metamodel version: 1.7.0

version: 2.0.0

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

For more information on LinkML, see linkml.io

Core metaclasses:

Every LinkML model instantiates SchemaDefinition, all classes in the model instantiate ClassDefinition, and so on

Note that the LinkML metamodel instantiates itself.

For a non-normative introduction to LinkML schemas, see the tutorial and schema guide on [linkml.io/linkml].

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

Classes

Mixins

Slots

  • abstract - an abstract class is a high level class or slot that is typically used to group common slots together and cannot be directly instantiated.
  • alias - the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name.
  • structured_alias➞predicate - The relationship between an element and its alias
  • aliases
  • alt_description➞source - the source of an attributed description
  • alt_description➞description - text of an attributed description
  • alt_descriptions
  • apply_to - Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.
  • attributes - Inline definition of slots
  • base - python base type that implements this type definition
  • bidirectional - in addition to preconditions entailing postconditions, the postconditions entail the preconditions
  • boolean_slot - A grouping of slots that expression a boolean operator over a list of operands
  • categories - controlled terms used to categorize an element
  • children_are_mutually_disjoint - If true then all direct is_a children are mutually disjoint and share no instances in common
  • class_uri - URI of the class in an RDF environment
  • classes - class definitions
  • classification_rules - the collection of classification rules that apply to all members of this class
  • code_set - the identifier of an enumeration code set.
  • code_set_tag - the version tag of the enumeration code set
  • code_set_version - the version identifier of the enumeration code set
  • comments - notes and comments about an element intended for external consumption
  • conforms_to - An established standard to which the element conforms.
  • created_by - agent that created the element
  • created_on - time at which the element was created
  • deactivated - a deactivated rule is not executed by the rules engine
  • default_curi_maps - ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables
  • default_prefix - default and base prefix -- used for ':' identifiers, @base and @vocab
  • default_range - default slot range to be used if range element is omitted from a slot definition
  • defining_slots - The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom
  • definition_uri - the "native" URI of the element
  • deprecated - Description of why and when this element will no longer be used
  • deprecated element has exact replacement - When an element is deprecated, it can be automatically replaced by this uri or curie
  • deprecated element has possible replacement - When an element is deprecated, it can be potentially replaced by this uri or curie
  • description - a description of the element's purpose and use
  • designates_type - True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition
  • disjoint_with - Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances
  • domain - defines the type of the subject of the slot. Given the following slot definition
  • domain_of - the class(es) that reference the slot in a "slots" or "slot_usage" context
  • elseconditions - an expression that must hold for an instance of the class, if the preconditions no not hold
  • emit_prefixes - a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models.
  • enum_range - An inlined enumeration
  • enums - enumerated ranges
  • examples - example usages of an element
  • extension➞tag - a tag associated with an extension
  • extension➞value - the actual annotation
  • extensions - a tag/text tuple attached to an arbitrary element
    • annotations - a collection of tag/text tuples with the semantics of OWL Annotation
  • followed_by - in a sequential list, this indicates the next member
  • from_schema - id of the schema that defined the element
  • generation_date - date and time that the schema was loaded/generated
  • id - The official schema URI
  • id_prefixes - the identifier of this class or slot must begin with the URIs referenced by this prefix
  • identifier - True means that the key slot(s) uniquely identify the container. There can be at most one identifier or key per container
  • ifabsent - function that provides a default value for the slot. Possible values for this slot are defined in
  • implicit_prefix - Causes the slot value to be interpreted as a uriorcurie after prefixing with this string
  • import_as
  • import_from
  • import_map
  • imported_from - the imports entry that this element was derived from. Empty means primary source
  • imports - other schemas that are included in this schema
  • in_language
  • in_subset - used to indicate membership of a term in a defined subset of terms used for a particular domain or application (e.g. the translator_minimal subset holding the minimal set of predicates used in a translator knowledge graph)
  • inapplicable - true means that the slot must not be present
  • info
  • inherited - true means that the value of a slot is inherited by subclasses
  • inlined - True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.
  • inlined_as_list - True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.
  • instantiates
  • interpolated - if true then the pattern is first string interpolated
  • inverse - indicates that any instance of d s r implies that there is also an instance of r s' d
  • is_a - specifies single-inheritance between classes or slots. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded
  • is_class_field - indicates that any instance, i, the domain of this slot will include an assert of i s range
  • is_grouping_slot - true if this slot is a grouping slot
  • is_usage_slot - True means that this slot was defined in a slot_usage situation
  • key - True means that the key slot(s) uniquely identify the container.
  • keywords - Keywords or tags used to describe the element
  • last_updated_on - time at which the element was last updated
  • license - license for the schema
  • list_elements_ordered - If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed
  • list_elements_unique - If True, then there must be no duplicates in the elements of a multivalued slot
  • list_value_specification_constant - Grouping for metamodel slots that constrain members of a multivalued slot value to equal a specified constant
    • all_members - the value of the multiavlued slot is a list where all elements conform to the specified values.
    • equals_expression - the value of the slot must equal the value of the evaluated expression
    • equals_number - the slot must have range of a number and the value of the slot must equal the specified value
    • equals_number_in - the slot must have range number and the value of the slot must equal one of the specified values
    • equals_string - the slot must have range string and the value of the slot must equal the specified value
    • equals_string_in - the slot must have range string and the value of the slot must equal one of the specified values
    • has_member - the values of the slot is multivalued with at least one member satisfying the condition
    • maximum_cardinality - the maximum number of entries for a multivalued slot
    • minimum_cardinality - the minimum number of entries for a multivalued slot
    • value_presence - if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)
  • literal_form - The literal lexical form of a structured alias
  • 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
  • mappings - A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.
    • broad mappings - A list of terms from different schemas or terminology systems that have broader meaning.
    • close mappings - A list of terms from different schemas or terminology systems that have close meaning.
    • exact mappings - A list of terms from different schemas or terminology systems that have identical meaning.
    • narrow mappings - A list of terms from different schemas or terminology systems that have narrower meaning.
    • related mappings - A list of terms from different schemas or terminology systems that have related meaning.
  • maximum_value - for slots with ranges of type number, the value must be equal to or lowe than this
  • meaning - the value meaning of a permissible value
  • metamodel_version - Version of the metamodel used to load the schema
  • minimum_value - for slots with ranges of type number, the value must be equal to or higher than this
  • mixin - this slot or class can only be used as a mixin.
  • mixins - List of definitions to be mixed in. Targets may be any definition of the same type
  • modified_by - agent that modified the element
  • multivalued - true means that slot can have more than one value
  • name - the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.
  • node_source
  • notes - editorial notes about an element intended for internal consumption
  • object
  • object_str
  • open_world - if true, the the postconditions may be omitted in instance data, but it is valid for an inference engine to add these
  • owned_by - agent that owns or is the steward of the element
  • owner - the "owner" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot
  • partial_match - if true then the pattern must match the whole string, as if enclosed in ^...$
  • path_rule - a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts
  • pattern - the string value of the slot must conform to this regular expression expressed in the string
  • permissible_values - A list of possible values for a slot range
  • postconditions - an expression that must hold for an instance of the class, if the preconditions hold
  • preconditions - an expression that must hold in order for the rule to be applicable to an instance
  • predicate
  • prefix_prefix - the nsname (sans ':' for a given prefix)
  • prefix_reference - A URI associated with a given prefix
  • prefixes - prefix / URI definitions to be added to the context beyond those fetched from prefixcommons in id prefixes
  • pv_formula - Defines the specific formula to be used to generate the permissible values.
  • range - defines the type of the object of the slot. Given the following slot definition
  • range_expression - A range that is described as a boolean expression combining existing ranges
  • rank - the relative order in which the element occurs, lower values are given precedence
  • readonly - If present, slot is read only. Text explains why
  • recommended - true means that the slot should be present in the loaded definition, but this is not required
  • relational_logical_characteristic - A property of a slot that pertains to its logical properties
    • asymmetric - If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i
    • irreflexive - If s is irreflexive, then there exists no i such i.s=i
    • locally_reflexive - If s is locally_reflexive, then i.s=i for all instances i where s if a class slot for the type of i
    • reflexive - If s is reflexive, then i.s=i for all instances i
    • symmetric - If s is symmetric, and i.s=v, then v.s=i
    • transitive - If s is transitive, and i.s=z, and s.s=j, then i.s=j
  • relational_role - the role a slot on a relationship class plays, for example, the subject, object or predicate roles
  • repr - the name of the python object that implements this type definition
  • represents_relationship - true if this class represents a relationship rather than an entity
  • required - true means that the slot must be present in the loaded definition
  • reversed - true if the slot is to be inversed
  • role - the role played by the slot range
  • rules - the collection of rules that apply to all members of this class
  • see_also - a reference
  • setting_key - the variable name for a setting
  • setting_value - The value assigned for a setting
  • settings - A collection of global variable settings
  • severity
  • shared - If True, then the relationship between the slot domain and range is many to one or many to many
  • singular_name - a name that is used in the singular form
  • slot_conditions - the redefinition of a slot in the context of the containing class definition.
  • schema_definition➞slots - slot definitions
  • slot_group - allows for grouping of related slots into a grouping slot that serves the role of a group
  • slot_names_unique - if true then induced/mangled slot names are not created for class_usage and attributes
  • slot_uri - predicate of this slot for semantic web application
  • slot_usage - the redefinition of a slot in the context of the containing class definition.
  • slots - list of slot names that are applicable to a class
  • source - A related resource from which the element is derived.
  • 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
  • status - status of the element
  • string_serialization - Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.
  • structured_aliases - A list of structured_alias objects.
  • structured_imports - other schemas that are included in this schema
  • structured_pattern - the string value of the slot must conform to the regular expression in the pattern expression
  • subclass_of - rdfs:subClassOf to be emitted in OWL generation
  • subject
  • subproperty_of - Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hiearchy into an enumerated list of possible values in every serialization of the model.
  • subsets - list of subsets referenced in this model
  • syntax - the string value of the slot must conform to this regular expression expressed in the string. May be interpolated.
  • text
  • title - the official title of the element
  • todos - Outstanding issue that needs resolution
  • transitive_form_of - If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive
  • traverse - the slot to traverse
  • tree_root - indicator that this is the root class in tree structures
  • type
  • type_definition➞uri - The uri that defines the possible values for the type definition
  • typeof - Names a parent type
  • types - data types used in the model
  • union_of - indicates that the domain class consists exactly of the members of the classes in the range
  • unique_key_name - name of the unique key
  • unique_key_slots - list of slot names that form a key
  • unique_keys - Set of unique keys for this slot
  • usage_slot_name - The name of the slot referenced in the slot_usage
  • ➞results
  • value - example value
  • example➞description - description of what the value is doing
  • value_specification_constant - Grouping for metamodel slots that constrain the a slot value to equal a specified constant
  • values_from - The identifier of a "value set" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hiearchy into an enumerated list of possible values in every serialization of the model.
  • version - particular version of schema

Enums

Subsets

  • Basic - An extension of minimal that is a basic subset that can be implemented by a broad variety of tools
  • Minimal - Minimal set of slots for defining a model
  • ObjectOriented - The set of constructs that have an equivalent in a minimal object oriented metamodel
  • Owl - Set of slots that appear in the OWL representation of a model
  • RelationalModel - The set of constructs that have an equivalent in the classic relational mode as defined by Codd

Types

Built in

  • Bool
  • Decimal
  • ElementIdentifier
  • NCName
  • NodeIdentifier
  • URI
  • URIorCURIE
  • XSDDate
  • XSDDateTime
  • XSDTime
  • float
  • int
  • str

Defined

  • Boolean (Bool) - A binary (true or false) value
  • Date (XSDDate) - a date (year, month and day) in an idealized calendar
  • Datetime (XSDDateTime) - The combination of a date and time
  • Decimal (Decimal) - A real number with arbitrary precision that conforms to the xsd:decimal specification
  • Double (float) - A real number that conforms to the xsd:double specification
  • Float (float) - A real number that conforms to the xsd:float specification
  • Integer (int) - An integer
  • Ncname (NCName) - Prefix part of CURIE
  • Nodeidentifier (NodeIdentifier) - A URI, CURIE or BNODE that represents a node in a model.
  • Objectidentifier (ElementIdentifier) - A URI or CURIE that represents an object in the model.
  • String (str) - A character string
  • Time (XSDTime) - A time object represents a (local) time of day, independent of any particular day
  • Uri (URI) - a complete URI
  • Uriorcurie (URIorCURIE) - a URI or a CURIE