Skip to content

Slot: extra_slots

How a class instance handles extra data not specified in the class definition.

Note that this does not define the constraints that are placed on additional slots defined by inheriting classes.

__

Possible values:

- allowed: true - allow all additional data

- allowed: false (or allowed: or allowed: null while range_expression is null) -

_ forbid all additional data (default)_

- range_expression: ... - allow additional data if it matches the slot expression (see examples)

__

URI: linkml:extra_slots Alias: extra_slots

Applicable Classes

Name Description Modifies Slot
ClassDefinition an element whose instances are complex objects that may have slot-value assig... no

Properties

Type and Range

Property Value
Range ExtraSlotsExpression
Domain ClassDefinition
Domain Of ClassDefinition

Cardinality and Requirements

Property Value

In Subsets

Examples

Value
JsonObj(allowed=True)
JsonObj(allowed=False)
JsonObj(range_expression=JsonObj(range='string'))
JsonObj(range_expression=JsonObj(range='AClassDefinition'))
JsonObj(range_expression=JsonObj(any_of=[{'range': 'string'}, {'range': 'integer'}]))
JsonObj(range_expression=JsonObj(range='integer', multivalued=True, maximum_cardinality=5))
JsonObj(range_expression=JsonObj(range='integer', required=True))
JsonObj(allowed=False, range_expression=JsonObj(range='string'))

Identifier and Mapping Information

Schema Source

Mappings

Mapping Type Mapped Value
self linkml:extra_slots
native linkml:extra_slots

LinkML Source

name: extra_slots
description: "How a class instance handles extra data not specified in the class definition.\n\
  Note that this does *not* define the constraints that are placed on additional slots\
  \ defined by inheriting classes.\n\nPossible values:\n- `allowed: true` - allow\
  \ all additional data\n- `allowed: false` (or `allowed:` or `allowed: null` while\
  \ `range_expression` is `null`) -\n  forbid all additional data (default)\n- `range_expression:\
  \ ...`  - allow additional data if it matches the slot expression (see examples)\n"
examples:
- value: JsonObj(allowed=True)
  description: Allow all additional data
- value: JsonObj(allowed=False)
  description: Forbid any additional data
- value: JsonObj(range_expression=JsonObj(range='string'))
  description: Allow additional data that are strings
- value: JsonObj(range_expression=JsonObj(range='AClassDefinition'))
  description: Allow additional data if they are instances of the class definition
    "AClassDefinition"
- value: 'JsonObj(range_expression=JsonObj(any_of=[{''range'': ''string''}, {''range'':
    ''integer''}]))'
  description: allow additional data if they are either strings or integers
- value: JsonObj(range_expression=JsonObj(range='integer', multivalued=True, maximum_cardinality=5))
  description: 'Allow additional data if they are lists of integers of at most length
    5.

    Note that this does *not* mean that a maximum of 5 extra slots are allowed.

    '
- value: JsonObj(range_expression=JsonObj(range='integer', required=True))
  description: 'Allow additional data if they are integers.

    `required` is meaningless in this context and ignored, since by definition all
    "extra" slots are optional.

    '
- value: JsonObj(allowed=False, range_expression=JsonObj(range='string'))
  description: 'A semantically *invalid* use of `extra_slots`, as extra slots will
    be forbidden and the

    `anonymous_slot_expression` will be ignored.

    '
in_subset:
- SpecificationSubset
- BasicSubset
from_schema: https://w3id.org/linkml/meta
rank: 1000
domain: class_definition
alias: extra_slots
domain_of:
- class_definition
range: extra_slots_expression