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