Skip to content

Class: SlotExpression

an expression that constrains the range of values a slot can take

URI: linkml:SlotExpression

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

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