Class: SlotExpression
an expression that constrains the range of values a slot can take
 classDiagram
    class SlotExpression
      Expression <|-- SlotExpression
      SlotExpression <|-- AnonymousSlotExpression
      SlotExpression <|-- SlotDefinition
      SlotExpression : all_members
          SlotExpression --> anonymous_slot_expression : all_members
      SlotExpression : all_of
          SlotExpression --> anonymous_slot_expression : all_of
      SlotExpression : any_of
          SlotExpression --> anonymous_slot_expression : any_of
      SlotExpression : bindings
          SlotExpression --> enum_binding : bindings
      SlotExpression : enum_range
          SlotExpression --> enum_expression : enum_range
      SlotExpression : equals_expression
      SlotExpression : equals_number
      SlotExpression : equals_string
      SlotExpression : equals_string_in
      SlotExpression : exact_cardinality
      SlotExpression : exactly_one_of
          SlotExpression --> anonymous_slot_expression : exactly_one_of
      SlotExpression : has_member
          SlotExpression --> anonymous_slot_expression : has_member
      SlotExpression : implicit_prefix
      SlotExpression : inlined
      SlotExpression : inlined_as_list
      SlotExpression : maximum_cardinality
      SlotExpression : maximum_value
          SlotExpression --> Anything : maximum_value
      SlotExpression : minimum_cardinality
      SlotExpression : minimum_value
          SlotExpression --> Anything : minimum_value
      SlotExpression : multivalued
      SlotExpression : none_of
          SlotExpression --> anonymous_slot_expression : none_of
      SlotExpression : pattern
      SlotExpression : range
          SlotExpression --> element : range
      SlotExpression : range_expression
          SlotExpression --> anonymous_class_expression : range_expression
      SlotExpression : recommended
      SlotExpression : required
      SlotExpression : structured_pattern
          SlotExpression --> pattern_expression : structured_pattern
      SlotExpression : unit
          SlotExpression --> UnitOfMeasure : unit
      SlotExpression : value_presence
          SlotExpression --> presence_enum : value_presence
Inheritance
- Expression- SlotExpression
 
Slots
| Name | Cardinality and Range | Description | Inheritance | 
|---|---|---|---|
| range | 0..1 Element | defines the type of the object of the slot | direct | 
| range_expression | 0..1 AnonymousClassExpression | A range that is described as a boolean expression combining existing ranges | direct | 
| enum_range | 0..1 EnumExpression | An inlined enumeration | direct | 
| bindings | 0..* EnumBinding | A collection of enum bindings that specify how a slot can be bound to a permi... | direct | 
| required | 0..1 Boolean | true means that the slot must be present in instances of the class definition | direct | 
| recommended | 0..1 Boolean | true means that the slot should be present in instances of the class definiti... | direct | 
| multivalued | 0..1 Boolean | true means that slot can have more than one value and should be represented u... | direct | 
| inlined | 0..1 Boolean | True means that keyed or identified slot appears in an outer structure by val... | direct | 
| inlined_as_list | 0..1 Boolean | True means that an inlined slot is represented as a list of range instances | direct | 
| minimum_value | 0..1 Anything | For ordinal ranges, the value must be equal to or higher than this | direct | 
| maximum_value | 0..1 Anything | For ordinal ranges, the value must be equal to or lower than this | direct | 
| pattern | 0..1 String | the string value of the slot must conform to this regular expression expresse... | direct | 
| structured_pattern | 0..1 PatternExpression | the string value of the slot must conform to the regular expression in the pa... | direct | 
| unit | 0..1 UnitOfMeasure | an encoding of a unit | direct | 
| implicit_prefix | 0..1 String | Causes the slot value to be interpreted as a uriorcurie after prefixing with ... | direct | 
| value_presence | 0..1 PresenceEnum | if PRESENT then a value must be present (for lists there must be at least one... | direct | 
| equals_string | 0..1 String | the slot must have range string and the value of the slot must equal the spec... | direct | 
| equals_string_in | 0..* String | the slot must have range string and the value of the slot must equal one of t... | direct | 
| equals_number | 0..1 Integer | the slot must have range of a number and the value of the slot must equal the... | direct | 
| equals_expression | 0..1 String | the value of the slot must equal the value of the evaluated expression | direct | 
| exact_cardinality | 0..1 Integer | the exact number of entries for a multivalued slot | direct | 
| minimum_cardinality | 0..1 Integer | the minimum number of entries for a multivalued slot | direct | 
| maximum_cardinality | 0..1 Integer | the maximum number of entries for a multivalued slot | direct | 
| has_member | 0..1 AnonymousSlotExpression | the value of the slot is multivalued with at least one member satisfying the ... | direct | 
| all_members | 0..1 AnonymousSlotExpression | the value of the slot is multivalued with all members satisfying the conditio... | direct | 
| none_of | 0..* AnonymousSlotExpression | holds if none of the expressions hold | direct | 
| exactly_one_of | 0..* AnonymousSlotExpression | holds if only one of the expressions hold | direct | 
| any_of | 0..* AnonymousSlotExpression | holds if at least one of the expressions hold | direct | 
| all_of | 0..* AnonymousSlotExpression | holds if all of the expressions hold | direct | 
Mixin Usage
| mixed into | description | 
|---|---|
| AnonymousSlotExpression | |
| SlotDefinition | an element that describes how instances are related to other instances | 
Usages
| used by | used in | type | used | 
|---|---|---|---|
| TypeExpression | implicit_prefix | domain | SlotExpression | 
| AnonymousTypeExpression | implicit_prefix | domain | SlotExpression | 
| TypeDefinition | implicit_prefix | domain | SlotExpression | 
| PathExpression | range_expression | domain | SlotExpression | 
| SlotExpression | range_expression | domain | SlotExpression | 
| SlotExpression | implicit_prefix | domain | SlotExpression | 
| AnonymousSlotExpression | range_expression | domain | SlotExpression | 
| AnonymousSlotExpression | implicit_prefix | domain | SlotExpression | 
| SlotDefinition | range_expression | domain | SlotExpression | 
| SlotDefinition | implicit_prefix | domain | SlotExpression | 
Identifier and Mapping Information
Schema Source
- from schema: https://w3id.org/linkml/meta
Mappings
| Mapping Type | Mapped Value | 
|---|---|
| self | linkml:SlotExpression | 
| native | linkml:SlotExpression | 
LinkML Source
Direct
name: slot_expression
description: an expression that constrains the range of values a slot can take
from_schema: https://w3id.org/linkml/meta
is_a: expression
mixin: true
slots:
- range
- range_expression
- enum_range
- bindings
- required
- recommended
- multivalued
- inlined
- inlined_as_list
- minimum_value
- maximum_value
- pattern
- structured_pattern
- unit
- implicit_prefix
- value_presence
- equals_string
- equals_string_in
- equals_number
- equals_expression
- exact_cardinality
- minimum_cardinality
- maximum_cardinality
- has_member
- all_members
- none_of
- exactly_one_of
- any_of
- all_of
slot_usage:
  any_of:
    name: any_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  all_of:
    name: all_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  exactly_one_of:
    name: exactly_one_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  none_of:
    name: none_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
Induced
name: slot_expression
description: an expression that constrains the range of values a slot can take
from_schema: https://w3id.org/linkml/meta
is_a: expression
mixin: true
slot_usage:
  any_of:
    name: any_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  all_of:
    name: all_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  exactly_one_of:
    name: exactly_one_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
  none_of:
    name: none_of
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression
attributes:
  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
    rank: 1000
    domain: slot_definition
    inherited: true
    ifabsent: default_range
    alias: range
    owner: slot_expression
    domain_of:
    - enum_binding
    - 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
    status: testing
    rank: 1000
    domain: slot_expression
    alias: range_expression
    owner: slot_expression
    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
    status: testing
    rank: 1000
    alias: enum_range
    owner: slot_expression
    domain_of:
    - slot_expression
    range: enum_expression
  bindings:
    name: bindings
    description: 'A collection of enum bindings that specify how a slot can be bound
      to a permissible value from an enumeration.
      LinkML provides enums to allow string values to be restricted to one of a set
      of permissible values (specified statically or dynamically).
      Enum bindings allow enums to be bound to any object, including complex nested
      objects. For example, given a (generic) class Concept with slots id and label,
      it may be desirable to restrict the values the id takes on in a given context.
      For example, a HumanSample class may have a slot for representing sample site,
      with a range of concept, but the values of that slot may be restricted to concepts
      from a particular branch of an anatomy ontology.'
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    status: testing
    rank: 1000
    domain: element
    multivalued: true
    alias: bindings
    owner: slot_expression
    domain_of:
    - schema_definition
    - slot_expression
    range: enum_binding
    inlined: true
  required:
    name: required
    description: true means that the slot must be present in instances of the class
      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_expression
    domain_of:
    - slot_expression
    range: boolean
  recommended:
    name: recommended
    description: true means that the slot should be present in instances of the class
      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_expression
    domain_of:
    - slot_expression
    range: boolean
  multivalued:
    name: multivalued
    description: true means that slot can have more than one value and should be represented
      using a list or collection structure.
    in_subset:
    - SpecificationSubset
    - MinimalSubset
    - BasicSubset
    - ObjectOrientedProfile
    from_schema: https://w3id.org/linkml/meta
    rank: 7
    domain: slot_definition
    inherited: true
    alias: multivalued
    owner: slot_expression
    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
    - only applicable in tree-like serializations, e.g json, yaml
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    see_also:
    - https://w3id.org/linkml/docs/specification/06mapping/#collection-forms
    - https://linkml.io/linkml/schemas/inlining.html
    rank: 25
    domain: slot_definition
    inherited: true
    alias: inlined
    owner: slot_expression
    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
    see_also:
    - https://w3id.org/linkml/docs/specification/06mapping/#collection-forms
    - https://linkml.io/linkml/schemas/inlining.html
    rank: 27
    domain: slot_definition
    inherited: true
    alias: inlined_as_list
    owner: slot_expression
    domain_of:
    - slot_expression
    range: boolean
  minimum_value:
    name: minimum_value
    description: For ordinal ranges, the value must be equal to or higher than this
    notes:
    - Range to be refined to an "Ordinal" metaclass - see https://github.com/linkml/linkml/issues/1384#issuecomment-1892721142
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - low value
    rank: 1000
    domain: slot_definition
    inherited: true
    alias: minimum_value
    owner: slot_expression
    domain_of:
    - type_expression
    - slot_expression
    range: Anything
  maximum_value:
    name: maximum_value
    description: For ordinal ranges, the value must be equal to or lower than this
    notes:
    - Range to be refined to an "Ordinal" metaclass - see https://github.com/linkml/linkml/issues/1384#issuecomment-1892721142
    in_subset:
    - SpecificationSubset
    - BasicSubset
    from_schema: https://w3id.org/linkml/meta
    aliases:
    - high value
    rank: 1000
    domain: slot_definition
    inherited: true
    alias: maximum_value
    owner: slot_expression
    domain_of:
    - type_expression
    - slot_expression
    range: Anything
  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_expression
    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
    see_also:
    - https://linkml.io/linkml/schemas/constraints.html#structured-patterns
    rank: 1000
    domain: definition
    inherited: true
    alias: structured_pattern
    owner: slot_expression
    domain_of:
    - type_expression
    - slot_expression
    range: pattern_expression
  unit:
    name: unit
    description: an encoding of a unit
    from_schema: https://w3id.org/linkml/meta
    rank: 1000
    slot_uri: qudt:unit
    alias: unit
    owner: slot_expression
    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
    status: testing
    rank: 1000
    domain: slot_expression
    alias: implicit_prefix
    owner: slot_expression
    domain_of:
    - type_expression
    - slot_expression
    range: string
  value_presence:
    name: value_presence
    description: if PRESENT then a value must be present (for lists there must be
      at least one value). If ABSENT then a value must be absent (for lists, must
      be empty)
    comments:
    - if set to true this has the same effect as required=true. In contrast, required=false
      allows a value to be present
    from_schema: https://w3id.org/linkml/meta
    status: unstable
    rank: 1000
    is_a: list_value_specification_constant
    domain: slot_definition
    inherited: true
    alias: value_presence
    owner: slot_expression
    domain_of:
    - slot_expression
    range: presence_enum
  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
    rank: 1000
    is_a: list_value_specification_constant
    inherited: true
    alias: equals_string
    owner: slot_expression
    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
    status: testing
    rank: 1000
    is_a: list_value_specification_constant
    multivalued: true
    inherited: true
    alias: equals_string_in
    owner: slot_expression
    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
    status: unstable
    rank: 1000
    is_a: list_value_specification_constant
    inherited: true
    alias: equals_number
    owner: slot_expression
    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
    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://linkml.io/linkml/developers/inference.html
    - https://linkml.io/linkml/schemas/advanced.html#equals-expression
    rank: 1000
    is_a: list_value_specification_constant
    inherited: true
    alias: equals_expression
    owner: slot_expression
    domain_of:
    - slot_expression
    range: string
  exact_cardinality:
    name: exact_cardinality
    description: the exact number of entries for a multivalued slot
    comments:
    - if exact_cardinality is set, then minimum_cardinalty and maximum_cardinality
      must be unset or have the same value
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 1000
    is_a: list_value_specification_constant
    inherited: true
    alias: exact_cardinality
    owner: slot_expression
    domain_of:
    - slot_expression
    - dimension_expression
    range: integer
  minimum_cardinality:
    name: minimum_cardinality
    description: the minimum number of entries for a multivalued slot
    comments:
    - minimum_cardinality cannot be greater than maximum_cardinality
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 1000
    is_a: list_value_specification_constant
    inherited: true
    alias: minimum_cardinality
    owner: slot_expression
    domain_of:
    - slot_expression
    - dimension_expression
    range: integer
  maximum_cardinality:
    name: maximum_cardinality
    description: the maximum number of entries for a multivalued slot
    comments:
    - maximum_cardinality cannot be less than minimum_cardinality
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    rank: 1000
    is_a: list_value_specification_constant
    inherited: true
    alias: maximum_cardinality
    owner: slot_expression
    domain_of:
    - slot_expression
    - dimension_expression
    range: integer
  has_member:
    name: has_member
    description: the value of the slot is multivalued with at least one member satisfying
      the condition
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    status: testing
    rank: 1000
    is_a: list_value_specification_constant
    alias: has_member
    owner: slot_expression
    domain_of:
    - slot_expression
    range: anonymous_slot_expression
  all_members:
    name: all_members
    description: the value of the slot is multivalued with all members satisfying
      the condition
    in_subset:
    - SpecificationSubset
    from_schema: https://w3id.org/linkml/meta
    status: testing
    rank: 1000
    is_a: list_value_specification_constant
    alias: all_members
    owner: slot_expression
    domain_of:
    - slot_expression
    range: anonymous_slot_expression
  none_of:
    name: none_of
    description: holds if none of the expressions hold
    from_schema: https://w3id.org/linkml/meta
    rank: 105
    is_a: boolean_slot
    multivalued: true
    alias: none_of
    owner: slot_expression
    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
    from_schema: https://w3id.org/linkml/meta
    rank: 103
    is_a: boolean_slot
    multivalued: true
    alias: exactly_one_of
    owner: slot_expression
    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
    from_schema: https://w3id.org/linkml/meta
    rank: 101
    is_a: boolean_slot
    multivalued: true
    alias: any_of
    owner: slot_expression
    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
    from_schema: https://w3id.org/linkml/meta
    rank: 107
    is_a: boolean_slot
    multivalued: true
    alias: all_of
    owner: slot_expression
    domain_of:
    - type_expression
    - path_expression
    - slot_expression
    - class_expression
    range: anonymous_slot_expression