microbiomedata / dh_testing

Sandbox for testing the content of various minimal schemas vs DataHarmonizer
0 stars 0 forks source link

What attributes should DH check? #2

Open turbomam opened 2 years ago

turbomam commented 2 years ago

Each row of a DH interface represents an instance of a class from some schema. Each column represents a slot from that class.

When checking a value in a DH interface cell, which slot_definition attributes can we or should we validate?

turbomam commented 2 years ago
name: slot_definition
description: an element that describes how instances are related to other instances
in_subset:
- SpecificationSubset
- MinimalSubset
- BasicSubset
- OwlProfile
from_schema: https://w3id.org/linkml/meta
aliases:
- slot
- field
- property
- attribute
- column
- variable
close_mappings:
- rdf:Property
rank: 3
is_a: definition
mixins:
- slot_expression
slot_usage:
  is_a:
    name: is_a
    description: A primary parent slot from which inheritable metaslots are propagated
    range: slot_definition
  mixins:
    name: mixins
    description: A collection of secondary parent mixin slots from which inheritable
      metaslots are propagated
    range: slot_definition
  apply_to:
    name: apply_to
    range: slot_definition
  disjoint_with:
    name: disjoint_with
    range: slot_definition
  union_of:
    name: union_of
    range: type_definition
attributes:
  singular_name:
    name: singular_name
    description: a name that is used in the singular form
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    slot_uri: skos:altLabel
    alias: singular_name
    owner: slot_definition
    domain_of:
    - slot_definition
    range: string
  domain:
    name: domain
    description: "defines the type of the subject of the slot.  Given the following\
      \ slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n\
      \  X:\n    S1: Y\n\nimplicitly asserts that X is an instance of C1\n"
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: domain
    owner: slot_definition
    domain_of:
    - slot_definition
    range: class_definition
  slot_uri:
    name: slot_uri
    description: predicate of this slot for semantic web application
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - public ID
    rank: 2
    domain: slot_definition
    ifabsent: slot_curie
    alias: slot_uri
    owner: slot_definition
    domain_of:
    - slot_definition
    range: uriorcurie
  multivalued:
    name: multivalued
    description: true means that slot can have more than one value
    in_subset:
    - SpecificationSubset
    - MinimalSubset
    - BasicSubset
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    rank: 7
    domain: slot_definition
    inherited: true
    alias: multivalued
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  inherited:
    name: inherited
    description: true means that the *value* of a slot is inherited by subclasses
    comments:
    - Inherited applies to slot values.  Parent *slots* are always inherited by subclasses
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: inherited
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  readonly:
    name: readonly
    description: If present, slot is read only.  Text explains why
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: readonly
    owner: slot_definition
    domain_of:
    - slot_definition
    range: string
  ifabsent:
    name: ifabsent
    description: "function that provides a default value for the slot.  Possible values\
      \ for this slot are defined in\nlinkml_runtime.utils.ifabsent_functions.default_library:\n\
      \  * [Tt]rue -- boolean True\n  * [Ff]alse -- boolean False\n  * int(value)\
      \ -- integer value\n  * str(value) -- string value\n  * default_range -- schema\
      \ default range\n  * bnode -- blank node identifier\n  * slot_uri -- URI for\
      \ the slot\n  * class_curie -- CURIE for the containing class\n  * class_uri\
      \ -- URI for the containing class"
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - sh:defaultValue
    domain: slot_definition
    inherited: true
    alias: ifabsent
    owner: slot_definition
    domain_of:
    - slot_definition
    range: string
  list_elements_unique:
    name: list_elements_unique
    description: If True, then there must be no duplicates in the elements of a multivalued
      slot
    comments:
    - should only be used with multivalued slots
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: list_elements_unique
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  list_elements_ordered:
    name: list_elements_ordered
    description: 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
    comments:
    - should only be used with multivalued slots
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: list_elements_ordered
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  shared:
    name: shared
    description: If True, then the relationship between the slot domain and range
      is many to one or many to many
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - inverse functional
    - many to one or many
    domain: slot_definition
    inherited: true
    alias: shared
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  key:
    name: key
    description: True means that the key slot(s) uniquely identify the container.
    comments:
    - see also 'unique_key'
    - key is inherited
    - a given domain can have at most one key slot (restriction to be removed in the
      future)
    - identifiers and keys are mutually exclusive.  A given domain cannot have both
    - a key slot is automatically required.  Keys cannot be optional
    in_subset:
    - SpecificationSubset
    - BasicSubset
    - RelationalModelProfile
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: key
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  identifier:
    name: identifier
    description: True means that the key slot(s) uniquely identify the container.
      There can be at most one identifier or key per container
    comments:
    - identifier is inherited
    - a key slot is automatically required.  Identifiers cannot be optional
    - a given domain can have at most one identifier
    - identifiers and keys are mutually exclusive.  A given domain cannot have both
    in_subset:
    - SpecificationSubset
    - MinimalSubset
    - BasicSubset
    - RelationalModelProfile
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://en.wikipedia.org/wiki/Identifier
    aliases:
    - primary key
    - ID
    - UID
    - code
    rank: 5
    domain: slot_definition
    inherited: true
    alias: identifier
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  designates_type:
    name: designates_type
    description: True means that the key slot(s) is used to determine the instantiation
      (types) relation between objects and a ClassDefinition
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - type designator
    domain: slot_definition
    inherited: true
    alias: designates_type
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  alias:
    name: alias
    description: the name used for a slot in the context of its owning class.  If
      present, this is used instead of the actual slot name.
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 6
    domain: slot_definition
    slot_uri: skos:prefLabel
    alias: alias
    owner: slot_definition
    domain_of:
    - slot_definition
    range: string
  owner:
    name: owner
    description: the "owner" of the slot. It is the class if it appears in the slots
      list, otherwise the declaring slot
    deprecated: Will be replaced by domain_of and eventually removed
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    readonly: filled in by loader -- either class domain or slot domain
    alias: owner
    owner: slot_definition
    domain_of:
    - slot_definition
    range: definition
  domain_of:
    name: domain_of
    description: the class(es) that reference the slot in a "slots" or "slot_usage"
      context
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    multivalued: true
    readonly: filled in by the loader
    alias: domain_of
    owner: slot_definition
    domain_of:
    - slot_definition
    range: class_definition
  subproperty_of:
    name: subproperty_of
    description: '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.'
    examples:
    - value: RO:HOM0000001
      description: this is the RO term for "in homology relationship with", and used
        as a value of subproperty of this means that any ontological child (related
        to RO:HOM0000001 via an is_a relationship), is a valid value for the slot
        that declares this with the subproperty_of tag.  This differs from the 'values_from'
        meta model component in that 'values_from' requires the id of a value set
        (said another way, if an entire ontology had a curie/identifier that was the
        identifier for the entire ontology, then that identifier would be used in
        'values_from.')
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    slot_uri: rdfs:subPropertyOf
    alias: subproperty_of
    owner: slot_definition
    domain_of:
    - slot_definition
    range: slot_definition
  symmetric:
    name: symmetric
    description: If s is symmetric, and i.s=v, then v.s=i
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - owl:SymmetricProperty
    is_a: relational_logical_characteristic
    domain: slot_definition
    alias: symmetric
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  reflexive:
    name: reflexive
    description: If s is reflexive, then i.s=i for all instances i
    comments:
    - it is rare for a property to be reflexive, this characteristic is added for
      completeness, consider instead locally_reflexive
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - owl:ReflexiveProperty
    is_a: relational_logical_characteristic
    domain: slot_definition
    alias: reflexive
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  locally_reflexive:
    name: locally_reflexive
    description: If s is locally_reflexive, then i.s=i for all instances i where s
      if a class slot for the type of i
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: relational_logical_characteristic
    domain: slot_definition
    alias: locally_reflexive
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  irreflexive:
    name: irreflexive
    description: If s is irreflexive, then there exists no i such i.s=i
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - owl:IrreflexiveProperty
    is_a: relational_logical_characteristic
    domain: slot_definition
    alias: irreflexive
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  asymmetric:
    name: asymmetric
    description: If s is antisymmetric, and i.s=v where i is different from v, v.s
      cannot have value i
    comments:
    - asymmetry is the combination of antisymmetry and irreflexivity
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - owl:AsymmetricProperty
    is_a: relational_logical_characteristic
    domain: slot_definition
    alias: asymmetric
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  transitive:
    name: transitive
    description: If s is transitive, and i.s=z, and s.s=j, then i.s=j
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - owl:TransitiveProperty
    is_a: relational_logical_characteristic
    domain: slot_definition
    alias: transitive
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  inverse:
    name: inverse
    description: indicates that any instance of d s r implies that there is also an
      instance of r s' d
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    slot_uri: owl:inverseOf
    alias: inverse
    owner: slot_definition
    domain_of:
    - slot_definition
    range: slot_definition
  is_class_field:
    name: is_class_field
    description: indicates that for any instance, i, the domain of this slot will
      include an assertion of i s range
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    alias: is_class_field
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  transitive_form_of:
    name: transitive_form_of
    description: 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
    comments:
    - '{''Example'': ''ancestor_of is the transitive_form_of parent_of''}'
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    alias: transitive_form_of
    owner: slot_definition
    domain_of:
    - slot_definition
    range: slot_definition
  reflexive_transitive_form_of:
    name: reflexive_transitive_form_of
    description: transitive_form_of including the reflexive case
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: transitive_form_of
    alias: reflexive_transitive_form_of
    owner: slot_definition
    domain_of:
    - slot_definition
    range: slot_definition
  role:
    name: role
    description: a textual descriptor that indicates the role played by the slot range
    comments:
    - the primary use case for this slot is to provide a textual descriptor of a generic
      slot name when used in the context of a more specific class
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    inherited: true
    alias: role
    owner: slot_definition
    domain_of:
    - slot_definition
    range: string
  is_usage_slot:
    name: is_usage_slot
    description: True means that this slot was defined in a slot_usage situation
    deprecated: Replaced by usage_slot_name
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    readonly: filled in by the loader
    alias: is_usage_slot
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  usage_slot_name:
    name: usage_slot_name
    description: The name of the slot referenced in the slot_usage
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    readonly: filled in by the loader
    alias: usage_slot_name
    owner: slot_definition
    domain_of:
    - slot_definition
    range: string
  relational_role:
    name: relational_role
    description: the role a slot on a relationship class plays, for example, the subject,
      object or predicate roles
    comments:
    - this should only be used on slots that are applicable to class that represent
      relationships
    - in the context of RDF, this should be used for slots that can be modeled using
      the RDF reification vocabulary
    - in the context of property graphs, this should be used on edge classes to indicate
      which slots represent the input and output nodes
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - reification_role
    status: testing
    domain: slot_definition
    inherited: true
    alias: relational_role
    owner: slot_definition
    domain_of:
    - slot_definition
    range: relational_role_enum
  slot_group:
    name: slot_group
    description: allows for grouping of related slots into a grouping slot that serves
      the role of a group
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    slot_uri: sh:group
    alias: slot_group
    owner: slot_definition
    domain_of:
    - slot_definition
    range: slot_definition
    range_expression:
      slot_conditions:
        is_grouping_slot:
          name: is_grouping_slot
          equals_expression: 'True'
  is_grouping_slot:
    name: is_grouping_slot
    description: true if this slot is a grouping slot
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - sh:PropertyGroup
    domain: slot_definition
    alias: is_grouping_slot
    owner: slot_definition
    domain_of:
    - slot_definition
    range: boolean
  path_rule:
    name: path_rule
    description: a rule for inferring a slot assignment based on evaluating a path
      through a sequence of slot assignemnts
    from_schema: https://w3id.org/linkml/meta
    domain: slot_definition
    alias: path_rule
    owner: slot_definition
    domain_of:
    - slot_definition
    range: path_expression
  disjoint_with:
    name: disjoint_with
    description: 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
    from_schema: https://w3id.org/linkml/meta
    domain: definition
    multivalued: true
    alias: disjoint_with
    owner: slot_definition
    domain_of:
    - slot_definition
    - class_definition
    range: slot_definition
  children_are_mutually_disjoint:
    name: children_are_mutually_disjoint
    description: If true then all direct is_a children are mutually disjoint and share
      no instances in common
    from_schema: https://w3id.org/linkml/meta
    domain: definition
    alias: children_are_mutually_disjoint
    owner: slot_definition
    domain_of:
    - slot_definition
    - class_definition
    range: boolean
  union_of:
    name: union_of
    description: indicates that the domain element consists exactly of the members
      of the element in the range.
    from_schema: https://w3id.org/linkml/meta
    domain: element
    multivalued: true
    alias: union_of
    owner: slot_definition
    domain_of:
    - type_definition
    - slot_definition
    - class_definition
    range: type_definition
  range:
    name: range
    description: "defines the type of the object of the slot.  Given the following\
      \ slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n\
      \  X:\n    S1: Y\n\nimplicitly asserts Y is an instance of C2\n"
    comments:
    - range is underspecified, as not all elements can appear as the range of a slot.
    in_subset:
    - SpecificationSubset
    - MinimalSubset
    - BasicSubset
    - RelationalModelProfile
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - value domain
    domain: slot_definition
    inherited: true
    ifabsent: default_range
    alias: range
    owner: slot_definition
    domain_of:
    - slot_expression
    range: element
  range_expression:
    name: range_expression
    description: A range that is described as a boolean expression combining existing
      ranges
    comments:
    - one use for this is being able to describe a range using any_of expressions,
      for example to combine two enums
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_expression
    alias: range_expression
    owner: slot_definition
    domain_of:
    - path_expression
    - slot_expression
    range: anonymous_class_expression
  enum_range:
    name: enum_range
    description: An inlined enumeration
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    alias: enum_range
    owner: slot_definition
    domain_of:
    - slot_expression
    range: enum_expression
  required:
    name: required
    description: true means that the slot must be present in the loaded definition
    in_subset:
    - SpecificationSubset
    - MinimalSubset
    - BasicSubset
    - RelationalModelProfile
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    rank: 8
    domain: slot_definition
    inherited: true
    alias: required
    owner: slot_definition
    domain_of:
    - slot_expression
    range: boolean
  recommended:
    name: recommended
    description: true means that the slot should be present in the loaded definition,
      but this is not required
    comments:
    - This is to be used where not all data is expected to conform to having a required
      field
    - If a slot is recommended, and it is not populated, applications must not treat
      this as an error. Applications may use this to inform the user of missing data
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://github.com/linkml/linkml/issues/177
    rank: 9
    domain: slot_definition
    inherited: true
    alias: recommended
    owner: slot_definition
    domain_of:
    - slot_expression
    range: boolean
  inlined:
    name: inlined
    description: 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.
    comments:
    - classes without keys or identifiers are necessarily inlined as lists
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 25
    domain: slot_definition
    inherited: true
    alias: inlined
    owner: slot_definition
    domain_of:
    - slot_expression
    range: boolean
  inlined_as_list:
    name: inlined_as_list
    description: 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.
    comments:
    - 'The default loader will accept either list or dictionary form as input.  This
      parameter controls internal

      representation and output.'
    - 'A keyed or identified class with one additional slot can be input in a third
      form, a dictionary whose key

      is the key or identifier and whose value is the one additional element.  This
      form is still stored according

      to the inlined_as_list setting.'
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 27
    domain: slot_definition
    inherited: true
    alias: inlined_as_list
    owner: slot_definition
    domain_of:
    - slot_expression
    range: boolean
  minimum_value:
    name: minimum_value
    description: for slots with ranges of type number, the value must be equal to
      or higher than this
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - low value
    domain: slot_definition
    inherited: true
    alias: minimum_value
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: integer
  maximum_value:
    name: maximum_value
    description: for slots with ranges of type number, the value must be equal to
      or lowe than this
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - high value
    domain: slot_definition
    inherited: true
    alias: maximum_value
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: integer
  pattern:
    name: pattern
    description: the string value of the slot must conform to this regular expression
      expressed in the string
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 35
    domain: definition
    inherited: true
    alias: pattern
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: string
  structured_pattern:
    name: structured_pattern
    description: the string value of the slot must conform to the regular expression
      in the pattern expression
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: definition
    inherited: true
    alias: structured_pattern
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: pattern_expression
  unit:
    name: unit
    description: an encoding of a unit
    from_schema: https://w3id.org/linkml/units
    slot_uri: qudt:unit
    alias: unit
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    - permissible_value
    range: UnitOfMeasure
  implicit_prefix:
    name: implicit_prefix
    description: Causes the slot value to be interpreted as a uriorcurie after prefixing
      with this string
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: slot_expression
    alias: implicit_prefix
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: string
  equals_string:
    name: equals_string
    description: the slot must have range string and the value of the slot must equal
      the specified value
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    inherited: true
    alias: equals_string
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: string
  equals_string_in:
    name: equals_string_in
    description: the slot must have range string and the value of the slot must equal
      one of the specified values
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    status: testing
    multivalued: true
    inherited: true
    alias: equals_string_in
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: string
  equals_number:
    name: equals_number
    description: the slot must have range of a number and the value of the slot must
      equal the specified value
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    status: unstable
    inherited: true
    alias: equals_number
    owner: slot_definition
    domain_of:
    - type_expression
    - slot_expression
    range: integer
  equals_expression:
    name: equals_expression
    description: the value of the slot must equal the value of the evaluated expression
    todos:
    - specify expression language
    comments:
    - for example, a 'length' slot may have an equals_expression with value '(end-start)+1'
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://github.com/linkml/linkml/issues/75
    is_a: list_value_specification_constant
    inherited: true
    alias: equals_expression
    owner: slot_definition
    domain_of:
    - slot_expression
    range: string
  minimum_cardinality:
    name: minimum_cardinality
    description: the minimum number of entries for a multivalued slot
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    status: testing
    inherited: true
    alias: minimum_cardinality
    owner: slot_definition
    domain_of:
    - slot_expression
    range: integer
  maximum_cardinality:
    name: maximum_cardinality
    description: the maximum number of entries for a multivalued slot
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    status: testing
    inherited: true
    alias: maximum_cardinality
    owner: slot_definition
    domain_of:
    - slot_expression
    range: integer
  has_member:
    name: has_member
    description: the values of the slot is multivalued with at least one member satisfying
      the condition
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    status: testing
    alias: has_member
    owner: slot_definition
    domain_of:
    - slot_expression
    range: anonymous_slot_expression
    inlined: true
  all_members:
    name: all_members
    description: "the value of the multiavlued slot is a list where all elements conform\
      \ to the specified values.\nthis defines a dynamic class with named slots according\
      \ to matching constraints\n\nE.g to state that all members of a list are between\
      \ 1 and 10\n```\nall_members:\n  x:\n    range: integer\n    minimum_value:\
      \ 10\n    maximum_value: 10\n```"
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    is_a: list_value_specification_constant
    status: testing
    multivalued: true
    alias: all_members
    owner: slot_definition
    domain_of:
    - slot_expression
    range: slot_definition
    inlined: true
  none_of:
    name: none_of
    description: holds if none of the expressions hold
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    exact_mappings:
    - sh:not
    rank: 105
    is_a: boolean_slot
    multivalued: true
    alias: none_of
    owner: slot_definition
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  exactly_one_of:
    name: exactly_one_of
    description: holds if only one of the expressions hold
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    exact_mappings:
    - sh:xone
    rank: 103
    is_a: boolean_slot
    multivalued: true
    alias: exactly_one_of
    owner: slot_definition
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  any_of:
    name: any_of
    description: holds if at least one of the expressions hold
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    exact_mappings:
    - sh:or
    rank: 101
    is_a: boolean_slot
    multivalued: true
    alias: any_of
    owner: slot_definition
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  all_of:
    name: all_of
    description: holds if all of the expressions hold
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    exact_mappings:
    - sh:and
    rank: 107
    is_a: boolean_slot
    multivalued: true
    alias: all_of
    owner: slot_definition
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  is_a:
    name: is_a
    description: A primary parent slot from which inheritable metaslots are propagated
    from_schema: https://w3id.org/linkml/meta
    rank: 11
    abstract: true
    domain: definition
    alias: is_a
    owner: slot_definition
    domain_of:
    - definition
    - anonymous_class_expression
    range: slot_definition
  abstract:
    name: abstract
    description: Indicates the class or slot cannot be directly instantiated and is
      intended for grouping and specifying core inherited metaslots
    in_subset:
    - SpecificationSubset
    - BasicSubset
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    domain: definition
    alias: abstract
    owner: slot_definition
    domain_of:
    - definition
    range: boolean
  mixin:
    name: mixin
    description: Indicates the class or slot is not intended to inherited from without
      being an is_a parent. mixins should not be inherited from using is_a, except
      by other mixins.
    in_subset:
    - SpecificationSubset
    - BasicSubset
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://en.wikipedia.org/wiki/Mixin
    aliases:
    - trait
    domain: definition
    alias: mixin
    owner: slot_definition
    domain_of:
    - definition
    range: boolean
  mixins:
    name: mixins
    description: A collection of secondary parent mixin slots from which inheritable
      metaslots are propagated
    from_schema: https://w3id.org/linkml/meta
    rank: 13
    domain: definition
    multivalued: true
    alias: mixins
    owner: slot_definition
    domain_of:
    - definition
    range: slot_definition
  apply_to:
    name: apply_to
    description: 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.
    from_schema: https://w3id.org/linkml/meta
    domain: definition
    multivalued: true
    alias: apply_to
    owner: slot_definition
    domain_of:
    - definition
    range: slot_definition
  values_from:
    name: values_from
    description: '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.'
    from_schema: https://w3id.org/linkml/meta
    domain: definition
    multivalued: true
    alias: values_from
    owner: slot_definition
    domain_of:
    - definition
    range: uriorcurie
  created_by:
    name: created_by
    description: agent that created the element
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: pav:createdBy
    alias: created_by
    owner: slot_definition
    domain_of:
    - definition
    range: uriorcurie
  created_on:
    name: created_on
    description: time at which the element was created
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: pav:createdOn
    alias: created_on
    owner: slot_definition
    domain_of:
    - definition
    range: datetime
  last_updated_on:
    name: last_updated_on
    description: time at which the element was last updated
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: pav:lastUpdatedOn
    alias: last_updated_on
    owner: slot_definition
    domain_of:
    - definition
    range: datetime
  modified_by:
    name: modified_by
    description: agent that modified the element
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: oslc:modifiedBy
    alias: modified_by
    owner: slot_definition
    domain_of:
    - definition
    range: uriorcurie
  status:
    name: status
    description: status of the element
    examples:
    - value: bibo:draft
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://www.hl7.org/fhir/valueset-publication-status.html
    - https://www.hl7.org/fhir/versions.html#std-process
    aliases:
    - workflow status
    domain: element
    slot_uri: bibo:status
    alias: status
    owner: slot_definition
    domain_of:
    - definition
    range: uriorcurie
  string_serialization:
    name: string_serialization
    description: '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.

      We call the slot with the serialization the s-slot, the slots used in the {}s
      are v-slots. If both s-slots and v-slots are populated on an object then the
      value of the s-slot should correspond to the expansion.

      Implementations of frameworks may choose to use this property to either (a)
      PARSE: implement automated normalizations by parsing denormalized strings into
      complex objects (b) GENERARE: implement automated to_string labeling of complex
      objects

      For example, a Measurement class may have 3 fields: unit, value, and string_value.
      The string_value slot may have a string_serialization of {value}{unit} such
      that if unit=cm and value=2, the value of string_value shouldd be 2cm'
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://github.com/linkml/issues/128
    domain: definition
    inherited: false
    alias: string_serialization
    owner: slot_definition
    domain_of:
    - definition
    range: string
  name:
    name: name
    description: 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.
    in_subset:
    - SpecificationSubset
    - OwlProfile
    - MinimalSubset
    - BasicSubset
    - RelationalModelProfile
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://en.wikipedia.org/wiki/Data_element_name
    aliases:
    - short name
    - unique name
    exact_mappings:
    - schema:name
    rank: 1
    domain: element
    slot_uri: rdfs:label
    identifier: true
    alias: name
    owner: slot_definition
    domain_of:
    - element
    range: string
  id_prefixes:
    name: id_prefixes
    description: the identifier of this class or slot must begin with the URIs referenced
      by this prefix
    comments:
    - Order of elements may be used to indicate priority order
    - If identifiers are treated as CURIEs, then the CURIE must start with one of
      the indicated prefixes followed by `:` (_should_ start if the list is open)
    - If identifiers are treated as URIs, then the URI string must start with the
      expanded for of the prefix (_should_ start if the list is open)
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://github.com/linkml/linkml/issues/194
    - https://github.com/linkml/linkml-model/issues/28
    domain: element
    multivalued: true
    alias: id_prefixes
    owner: slot_definition
    domain_of:
    - element
    range: ncname
  definition_uri:
    name: definition_uri
    description: the "native" URI of the element
    comments:
    - Formed by combining the default_prefix with the mangled element
    from_schema: https://w3id.org/linkml/meta
    domain: element
    readonly: filled in by the schema loader
    alias: definition_uri
    owner: slot_definition
    domain_of:
    - element
    range: uriorcurie
  local_names:
    name: local_names
    from_schema: https://w3id.org/linkml/meta
    domain: element
    multivalued: true
    alias: local_names
    owner: slot_definition
    domain_of:
    - element
    range: local_name
    inlined: true
  conforms_to:
    name: conforms_to
    description: An established standard to which the element conforms.
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: dcterms:conformsTo
    alias: conforms_to
    owner: slot_definition
    domain_of:
    - element
    range: string
  extensions:
    name: extensions
    description: a tag/text tuple attached to an arbitrary element
    from_schema: https://w3id.org/linkml/extensions
    domain: extensible
    multivalued: true
    alias: extensions
    owner: slot_definition
    domain_of:
    - extension
    - extensible
    range: extension
    inlined: true
  annotations:
    name: annotations
    description: a collection of tag/text tuples with the semantics of OWL Annotation
    from_schema: https://w3id.org/linkml/annotations
    is_a: extensions
    domain: annotatable
    multivalued: true
    alias: annotations
    owner: slot_definition
    domain_of:
    - annotatable
    - annotation
    range: annotation
    inlined: true
  description:
    name: description
    description: a description of the element's purpose and use
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - definition
    exact_mappings:
    - dcterms:description
    - schema:description
    rank: 5
    domain: element
    slot_uri: skos:definition
    alias: description
    owner: slot_definition
    domain_of:
    - common_metadata
    - permissible_value
    range: string
    recommended: true
  alt_descriptions:
    name: alt_descriptions
    description: A sourced alternative description for an element
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - alternate definitions
    domain: element
    multivalued: true
    alias: alt_descriptions
    owner: slot_definition
    domain_of:
    - common_metadata
    range: alt_description
    inlined: true
  title:
    name: title
    description: the official title of the element
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - long name
    rank: 3
    domain: element
    slot_uri: dcterms:title
    alias: title
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  deprecated:
    name: deprecated
    description: Description of why and when this element will no longer be used
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - owl:deprecated
    domain: element
    alias: deprecated
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  todos:
    name: todos
    description: Outstanding issue that needs resolution
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    multivalued: true
    alias: todos
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  notes:
    name: notes
    description: editorial notes about an element intended for internal consumption
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: skos:editorialNote
    multivalued: true
    alias: notes
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  comments:
    name: comments
    description: notes and comments about an element intended for external consumption
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    exact_mappings:
    - rdfs:comment
    domain: element
    slot_uri: skos:note
    multivalued: true
    alias: comments
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  examples:
    name: examples
    description: example usages of an element
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    close_mappings:
    - vann:example
    singular_name: example
    domain: element
    multivalued: true
    alias: examples
    owner: slot_definition
    domain_of:
    - common_metadata
    range: example
    inlined: true
  in_subset:
    name: in_subset
    description: 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)
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: OIO:inSubset
    multivalued: true
    alias: in_subset
    owner: slot_definition
    domain_of:
    - common_metadata
    range: subset_definition
  from_schema:
    name: from_schema
    description: id of the schema that defined the element
    notes:
    - A stronger model would be range schema_definition, but this doesn't address
      the import model
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: skos:inScheme
    readonly: supplied by the schema loader
    alias: from_schema
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uri
  imported_from:
    name: imported_from
    description: the imports entry that this element was derived from.  Empty means
      primary source
    from_schema: https://w3id.org/linkml/meta
    domain: element
    readonly: supplied by the schema loader
    alias: imported_from
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  source:
    name: source
    description: A related resource from which the element is derived.
    comments:
    - The described resource may be derived from the related resource in whole or
      in part
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - origin
    - derived from
    close_mappings:
    - prov:wasDerivedFrom
    - schema:isBasedOn
    domain: element
    slot_uri: dcterms:source
    alias: source
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  in_language:
    name: in_language
    notes:
    - Use a string from IETF BCP 47
    from_schema: https://w3id.org/linkml/meta
    slot_uri: schema:inLanguage
    alias: in_language
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  see_also:
    name: see_also
    description: a reference
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    domain: element
    slot_uri: rdfs:seeAlso
    multivalued: true
    alias: see_also
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  deprecated element has exact replacement:
    name: deprecated element has exact replacement
    description: When an element is deprecated, it can be automatically replaced by
      this uri or curie
    from_schema: https://w3id.org/linkml/mappings
    mappings:
    - IAO:0100001
    alias: deprecated_element_has_exact_replacement
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  deprecated element has possible replacement:
    name: deprecated element has possible replacement
    description: When an element is deprecated, it can be potentially replaced by
      this uri or curie
    from_schema: https://w3id.org/linkml/mappings
    mappings:
    - OIO:consider
    alias: deprecated_element_has_possible_replacement
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  aliases:
    name: aliases
    description: Alaternate names for the element
    in_subset:
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - synonyms
    - alternate names
    - alternative labels
    - designations
    exact_mappings:
    - schema:alternateName
    domain: element
    slot_uri: skos:altLabel
    multivalued: true
    alias: aliases
    owner: slot_definition
    domain_of:
    - common_metadata
    range: string
  structured_aliases:
    name: structured_aliases
    description: A list of structured_alias objects.
    from_schema: https://w3id.org/linkml/meta
    slot_uri: skosxl:altLabel
    multivalued: true
    alias: structured_aliases
    owner: slot_definition
    domain_of:
    - common_metadata
    range: structured_alias
    inlined: true
  mappings:
    name: mappings
    description: 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.
    from_schema: https://w3id.org/linkml/mappings
    aliases:
    - xrefs
    - identifiers
    - alternate identifiers
    - alternate ids
    slot_uri: skos:mappingRelation
    multivalued: true
    alias: mappings
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  exact mappings:
    name: exact mappings
    description: A list of terms from different schemas or terminology systems that
      have identical meaning.
    from_schema: https://w3id.org/linkml/mappings
    is_a: mappings
    slot_uri: skos:exactMatch
    multivalued: true
    inherited: false
    alias: exact_mappings
    owner: slot_definition
    domain_of:
    - common_metadata
    - UnitOfMeasure
    range: uriorcurie
  close mappings:
    name: close mappings
    description: A list of terms from different schemas or terminology systems that
      have close meaning.
    from_schema: https://w3id.org/linkml/mappings
    is_a: mappings
    slot_uri: skos:closeMatch
    multivalued: true
    inherited: false
    alias: close_mappings
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  related mappings:
    name: related mappings
    description: A list of terms from different schemas or terminology systems that
      have related meaning.
    from_schema: https://w3id.org/linkml/mappings
    is_a: mappings
    slot_uri: skos:relatedMatch
    multivalued: true
    inherited: false
    alias: related_mappings
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  narrow mappings:
    name: narrow mappings
    description: A list of terms from different schemas or terminology systems that
      have narrower meaning.
    from_schema: https://w3id.org/linkml/mappings
    is_a: mappings
    slot_uri: skos:narrowMatch
    multivalued: true
    inherited: false
    alias: narrow_mappings
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  broad mappings:
    name: broad mappings
    description: A list of terms from different schemas or terminology systems that
      have broader meaning.
    from_schema: https://w3id.org/linkml/mappings
    is_a: mappings
    slot_uri: skos:broadMatch
    multivalued: true
    inherited: false
    alias: broad_mappings
    owner: slot_definition
    domain_of:
    - common_metadata
    range: uriorcurie
  rank:
    name: rank
    description: the relative order in which the element occurs, lower values are
      given precedence
    comments:
    - the rank of an element does not affect the semantics
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - order
    - precedence
    - display order
    exact_mappings:
    - qudt:order
    rank: 51
    slot_uri: sh:order
    alias: rank
    owner: slot_definition
    domain_of:
    - common_metadata
    - class_rule
    range: integer