Class: PermissibleValueDerivation
A specification of how to derive the value of a PV from a source enum
URI: [linkmlmap:PermissibleValueDerivation](https://w3id.org/linkml/transformer/PermissibleValueDerivation)
## Inheritance
* [SpecificationComponent](SpecificationComponent.md)
* [ElementDerivation](ElementDerivation.md)
* **PermissibleValueDerivation**
## Slots
| Name | Cardinality and Range | Description | Inheritance |
| --- | --- | --- | --- |
| [name](name.md) | 1
[String](String.md) | Target permissible value text | direct | | [expr](expr.md) | 0..1
[String](String.md) | | direct | | [populated_from](populated_from.md) | 0..1
[String](String.md) | Source permissible value that maps to this target permissible value | direct | | [sources](sources.md) | *
[String](String.md) | Deprecated | direct | | [hide](hide.md) | 0..1
[Boolean](Boolean.md) | | direct | | [copy_directives](copy_directives.md) | *
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | | [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | | [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | | [mixins](mixins.md) | *
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | | [value_mappings](value_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | | [expression_mappings](expression_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table where the values are expressions evaluated against source bin... | [ElementDerivation](ElementDerivation.md) | | [expression_to_value_mappings](expression_to_value_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table in which the keys are boolean expressions and the values are ... | [ElementDerivation](ElementDerivation.md) | | [expression_to_expression_mappings](expression_to_expression_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | | [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | | [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | | [implements](implements.md) | *
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | | [comments](comments.md) | *
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | ## Usages | used by | used in | type | used | | --- | --- | --- | --- | | [EnumDerivation](EnumDerivation.md) | [permissible_value_derivations](permissible_value_derivations.md) | range | [PermissibleValueDerivation](PermissibleValueDerivation.md) | ## TODOs * this is currently under-specified. We will need boolean combinators to express if-then-else ## Identifier and Mapping Information ### Schema Source * from schema: https://w3id.org/linkml/transformer ## Mappings | Mapping Type | Mapped Value | | --- | --- | | self | linkmlmap:PermissibleValueDerivation | | native | linkmlmap:PermissibleValueDerivation | ## LinkML Source ### Direct
### Induced
classDiagram
class PermissibleValueDerivation
click PermissibleValueDerivation href "../PermissibleValueDerivation/"
ElementDerivation <|-- PermissibleValueDerivation
click ElementDerivation href "../ElementDerivation/"
PermissibleValueDerivation : comments
PermissibleValueDerivation : copy_directives
PermissibleValueDerivation --> "*" CopyDirective : copy_directives
click CopyDirective href "../CopyDirective/"
PermissibleValueDerivation : description
PermissibleValueDerivation : expr
PermissibleValueDerivation : expression_mappings
PermissibleValueDerivation --> "*" KeyVal : expression_mappings
click KeyVal href "../KeyVal/"
PermissibleValueDerivation : expression_to_expression_mappings
PermissibleValueDerivation --> "*" KeyVal : expression_to_expression_mappings
click KeyVal href "../KeyVal/"
PermissibleValueDerivation : expression_to_value_mappings
PermissibleValueDerivation --> "*" KeyVal : expression_to_value_mappings
click KeyVal href "../KeyVal/"
PermissibleValueDerivation : hide
PermissibleValueDerivation : implements
PermissibleValueDerivation : is_a
PermissibleValueDerivation --> "0..1" ElementDerivation : is_a
click ElementDerivation href "../ElementDerivation/"
PermissibleValueDerivation : mirror_source
PermissibleValueDerivation : mixins
PermissibleValueDerivation --> "*" ElementDerivation : mixins
click ElementDerivation href "../ElementDerivation/"
PermissibleValueDerivation : name
PermissibleValueDerivation : overrides
PermissibleValueDerivation --> "0..1" Any : overrides
click Any href "../Any/"
PermissibleValueDerivation : populated_from
PermissibleValueDerivation : sources
PermissibleValueDerivation : value_mappings
PermissibleValueDerivation --> "*" KeyVal : value_mappings
click KeyVal href "../KeyVal/"
[String](String.md) | Target permissible value text | direct | | [expr](expr.md) | 0..1
[String](String.md) | | direct | | [populated_from](populated_from.md) | 0..1
[String](String.md) | Source permissible value that maps to this target permissible value | direct | | [sources](sources.md) | *
[String](String.md) | Deprecated | direct | | [hide](hide.md) | 0..1
[Boolean](Boolean.md) | | direct | | [copy_directives](copy_directives.md) | *
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | | [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | | [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | | [mixins](mixins.md) | *
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | | [value_mappings](value_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | | [expression_mappings](expression_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table where the values are expressions evaluated against source bin... | [ElementDerivation](ElementDerivation.md) | | [expression_to_value_mappings](expression_to_value_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table in which the keys are boolean expressions and the values are ... | [ElementDerivation](ElementDerivation.md) | | [expression_to_expression_mappings](expression_to_expression_mappings.md) | *
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | | [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | | [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | | [implements](implements.md) | *
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | | [comments](comments.md) | *
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | ## Usages | used by | used in | type | used | | --- | --- | --- | --- | | [EnumDerivation](EnumDerivation.md) | [permissible_value_derivations](permissible_value_derivations.md) | range | [PermissibleValueDerivation](PermissibleValueDerivation.md) | ## TODOs * this is currently under-specified. We will need boolean combinators to express if-then-else ## Identifier and Mapping Information ### Schema Source * from schema: https://w3id.org/linkml/transformer ## Mappings | Mapping Type | Mapped Value | | --- | --- | | self | linkmlmap:PermissibleValueDerivation | | native | linkmlmap:PermissibleValueDerivation | ## LinkML Source ### Direct
name: PermissibleValueDerivation
description: A specification of how to derive the value of a PV from a source enum
todos:
- this is currently under-specified. We will need boolean combinators to express if-then-else
from_schema: https://w3id.org/linkml/transformer
is_a: ElementDerivation
attributes:
name:
name: name
description: Target permissible value text
from_schema: https://w3id.org/linkml/transformer
key: true
domain_of:
- SchemaReference
- ElementDerivation
- ObjectDerivation
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
- Agent
expr:
name: expr
from_schema: https://w3id.org/linkml/transformer
domain_of:
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: string
populated_from:
name: populated_from
description: Source permissible value that maps to this target permissible value.
from_schema: https://w3id.org/linkml/transformer
domain_of:
- ClassDerivation
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: string
sources:
name: sources
description: Deprecated. Use populated_from instead.
deprecated: Deprecated. Use populated_from instead. See https://github.com/linkml/linkml-map/issues/193
for planned list support in populated_from. Will be removed in a future version.
from_schema: https://w3id.org/linkml/transformer
domain_of:
- ClassDerivation
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: string
multivalued: true
hide:
name: hide
from_schema: https://w3id.org/linkml/transformer
domain_of:
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: boolean
name: PermissibleValueDerivation
description: A specification of how to derive the value of a PV from a source enum
todos:
- this is currently under-specified. We will need boolean combinators to express if-then-else
from_schema: https://w3id.org/linkml/transformer
is_a: ElementDerivation
attributes:
name:
name: name
description: Target permissible value text
from_schema: https://w3id.org/linkml/transformer
key: true
owner: PermissibleValueDerivation
domain_of:
- SchemaReference
- ElementDerivation
- ObjectDerivation
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
- Agent
required: true
expr:
name: expr
from_schema: https://w3id.org/linkml/transformer
owner: PermissibleValueDerivation
domain_of:
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: string
populated_from:
name: populated_from
description: Source permissible value that maps to this target permissible value.
from_schema: https://w3id.org/linkml/transformer
owner: PermissibleValueDerivation
domain_of:
- ClassDerivation
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: string
sources:
name: sources
description: Deprecated. Use populated_from instead.
deprecated: Deprecated. Use populated_from instead. See https://github.com/linkml/linkml-map/issues/193
for planned list support in populated_from. Will be removed in a future version.
from_schema: https://w3id.org/linkml/transformer
owner: PermissibleValueDerivation
domain_of:
- ClassDerivation
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: string
multivalued: true
hide:
name: hide
from_schema: https://w3id.org/linkml/transformer
owner: PermissibleValueDerivation
domain_of:
- SlotDerivation
- EnumDerivation
- PermissibleValueDerivation
range: boolean
copy_directives:
name: copy_directives
from_schema: https://w3id.org/linkml/transformer
owner: PermissibleValueDerivation
domain_of:
- TransformationSpecification
- ElementDerivation
range: CopyDirective
multivalued: true
inlined: true
overrides:
name: overrides
description: overrides source schema slots
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: Any
is_a:
name: is_a
from_schema: https://w3id.org/linkml/transformer
rank: 1000
slot_uri: linkml:is_a
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: ElementDerivation
mixins:
name: mixins
from_schema: https://w3id.org/linkml/transformer
rank: 1000
slot_uri: linkml:mixins
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: ElementDerivation
multivalued: true
inlined: false
value_mappings:
name: value_mappings
description: A mapping table that is applied directly to mappings, in order of
precedence. Keys should always be quoted in YAML to prevent type coercion —
unquoted true/false become booleans and bare numbers become integers, which
will not match the stringified source value used for lookup.
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: KeyVal
multivalued: true
inlined: true
expression_mappings:
name: expression_mappings
description: A mapping table where the values are expressions evaluated against
source bindings. Looked up by the same key as value_mappings (the stringified
source value). Keys should always be quoted (see value_mappings). If both value_mappings
and expression_mappings are present, value_mappings takes precedence for keys
that appear in both.
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: KeyVal
multivalued: true
inlined: true
expression_to_value_mappings:
name: expression_to_value_mappings
description: 'A mapping table in which the keys are boolean expressions and the
values are literal results. On enum derivations, used for scalar binning: each
key is evaluated with value() bound to the incoming value, and the first truthy
key''s value is returned as the target permissible value. See issue #99.'
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: KeyVal
multivalued: true
inlined: true
expression_to_expression_mappings:
name: expression_to_expression_mappings
description: A mapping table in which the keys and values are expressions
deprecated: 'Deprecated: use case() with and/or operators instead (#127). Will
be removed before 1.0.'
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: KeyVal
multivalued: true
inlined: true
mirror_source:
name: mirror_source
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- ElementDerivation
range: boolean
description:
name: description
description: description of the specification component
from_schema: https://w3id.org/linkml/transformer
rank: 1000
slot_uri: dcterms:description
owner: PermissibleValueDerivation
domain_of:
- SpecificationComponent
range: string
implements:
name: implements
description: A reference to a specification that this component implements.
from_schema: https://w3id.org/linkml/transformer
rank: 1000
owner: PermissibleValueDerivation
domain_of:
- SpecificationComponent
range: uriorcurie
multivalued: true
comments:
name: comments
description: A list of comments about this component. Comments are free text,
and may be used to provide additional information about the component, including
instructions for its use.
from_schema: https://w3id.org/linkml/transformer
rank: 1000
slot_uri: rdfs:comment
owner: PermissibleValueDerivation
domain_of:
- SpecificationComponent
range: string
multivalued: true