Class: EnumDerivation

A specification of how to derive the value of a target enum from a source enum

URI: [linkmlmap:class/EnumDerivation](https://w3id.org/linkml/transformer/class/EnumDerivation)
 classDiagram
    class EnumDerivation
    click EnumDerivation href "../../classes/EnumDerivation/"
      ElementDerivation <|-- EnumDerivation
        click ElementDerivation href "../../classes/ElementDerivation/"

      EnumDerivation : comments

      EnumDerivation : copy_directives





        EnumDerivation --> "*" CopyDirective : copy_directives
        click CopyDirective href "../../classes/CopyDirective/"



      EnumDerivation : description

      EnumDerivation : expr

      EnumDerivation : expression_mappings





        EnumDerivation --> "*" KeyVal : expression_mappings
        click KeyVal href "../../classes/KeyVal/"



      EnumDerivation : expression_to_expression_mappings





        EnumDerivation --> "*" KeyVal : expression_to_expression_mappings
        click KeyVal href "../../classes/KeyVal/"



      EnumDerivation : expression_to_value_mappings





        EnumDerivation --> "*" KeyVal : expression_to_value_mappings
        click KeyVal href "../../classes/KeyVal/"



      EnumDerivation : hide

      EnumDerivation : implements

      EnumDerivation : is_a





        EnumDerivation --> "0..1" ElementDerivation : is_a
        click ElementDerivation href "../../classes/ElementDerivation/"



      EnumDerivation : mirror_source

      EnumDerivation : mixins





        EnumDerivation --> "*" ElementDerivation : mixins
        click ElementDerivation href "../../classes/ElementDerivation/"



      EnumDerivation : name

      EnumDerivation : overrides





        EnumDerivation --> "0..1" Any : overrides
        click Any href "../../classes/Any/"



      EnumDerivation : permissible_value_derivations





        EnumDerivation --> "*" PermissibleValueDerivation : permissible_value_derivations
        click PermissibleValueDerivation href "../../classes/PermissibleValueDerivation/"



      EnumDerivation : populated_from

      EnumDerivation : sources

      EnumDerivation : value_mappings





        EnumDerivation --> "*" KeyVal : value_mappings
        click KeyVal href "../../classes/KeyVal/"
## Inheritance * [SpecificationComponent](../classes/SpecificationComponent.md) * [ElementDerivation](../classes/ElementDerivation.md) * **EnumDerivation** ## Slots | Name | Cardinality and Range | Description | Inheritance | | --- | --- | --- | --- | | [name](../slots/name.md) | 1
[String](../types/String.md) | Target enum name | direct | | [populated_from](../slots/populated_from.md) | 0..1
[EnumReference](../types/EnumReference.md) | Source enum to derive this target enum from | direct | | [sources](../slots/sources.md) | *
[EnumReference](../types/EnumReference.md) | Deprecated | direct | | [expr](../slots/expr.md) | 0..1
[String](../types/String.md) | An expression to be evaluated on the source object to derive the target slot | direct | | [hide](../slots/hide.md) | 0..1
[Boolean](../types/Boolean.md) | True if this is suppressed | direct | | [permissible_value_derivations](../slots/permissible_value_derivations.md) | *
[PermissibleValueDerivation](../classes/PermissibleValueDerivation.md) | Instructions on how to derive a set of PVs in the target schema | direct | | [copy_directives](../slots/copy_directives.md) | *
[CopyDirective](../classes/CopyDirective.md) | Directives controlling which sub-elements of the source element are copied in... | [ElementDerivation](../classes/ElementDerivation.md) | | [overrides](../slots/overrides.md) | 0..1
[Any](../classes/Any.md) | overrides source schema slots | [ElementDerivation](../classes/ElementDerivation.md) | | [is_a](../slots/is_a.md) | 0..1
[ElementDerivation](../classes/ElementDerivation.md) | The parent element that the derived target element inherits from | [ElementDerivation](../classes/ElementDerivation.md) | | [mixins](../slots/mixins.md) | *
[ElementDerivation](../classes/ElementDerivation.md) | Mixin elements applied to the derived target element | [ElementDerivation](../classes/ElementDerivation.md) | | [value_mappings](../slots/value_mappings.md) | *
[KeyVal](../classes/KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](../classes/ElementDerivation.md) | | [expression_mappings](../slots/expression_mappings.md) | *
[KeyVal](../classes/KeyVal.md) | A mapping table where the values are expressions evaluated against source bin... | [ElementDerivation](../classes/ElementDerivation.md) | | [expression_to_value_mappings](../slots/expression_to_value_mappings.md) | *
[KeyVal](../classes/KeyVal.md) | A mapping table in which the keys are boolean expressions and the values are ... | [ElementDerivation](../classes/ElementDerivation.md) | | [expression_to_expression_mappings](../slots/expression_to_expression_mappings.md) | *
[KeyVal](../classes/KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](../classes/ElementDerivation.md) | | [mirror_source](../slots/mirror_source.md) | 0..1
[Boolean](../types/Boolean.md) | If true, pass the source value through unchanged instead of transforming it | [ElementDerivation](../classes/ElementDerivation.md) | | [description](../slots/description.md) | 0..1
[String](../types/String.md) | description of the specification component | [SpecificationComponent](../classes/SpecificationComponent.md) | | [implements](../slots/implements.md) | *
[Uriorcurie](../types/Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](../classes/SpecificationComponent.md) | | [comments](../slots/comments.md) | *
[String](../types/String.md) | A list of comments about this component | [SpecificationComponent](../classes/SpecificationComponent.md) | ## Usages | used by | used in | type | used | | --- | --- | --- | --- | | [TransformationSpecification](../classes/TransformationSpecification.md) | [enum_derivations](../slots/enum_derivations.md) | range | [EnumDerivation](../classes/EnumDerivation.md) | ## Identifier and Mapping Information ### Schema Source * from schema: https://w3id.org/linkml/transformer ## Mappings | Mapping Type | Mapped Value | | --- | --- | | self | linkmlmap:EnumDerivation | | native | linkmlmap:EnumDerivation | ## LinkML Source ### Direct
name: EnumDerivation
description: A specification of how to derive the value of a target enum from a source
  enum
from_schema: https://w3id.org/linkml/transformer
is_a: ElementDerivation
attributes:
  name:
    name: name
    description: Target enum name
    from_schema: https://w3id.org/linkml/transformer
    key: true
    domain_of:
    - SchemaReference
    - ElementDerivation
    - ClassDefault
    - ObjectDerivation
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    - Agent
  populated_from:
    name: populated_from
    description: Source enum to derive this target enum from.
    from_schema: https://w3id.org/linkml/transformer
    domain_of:
    - ClassDerivation
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: EnumReference
  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: EnumReference
    multivalued: true
  expr:
    name: expr
    description: An expression to be evaluated on the source object to derive the
      target slot. Should be specified using the LinkML expression language.
    from_schema: https://w3id.org/linkml/transformer
    domain_of:
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: string
  hide:
    name: hide
    description: True if this is suppressed
    from_schema: https://w3id.org/linkml/transformer
    domain_of:
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: boolean
  permissible_value_derivations:
    name: permissible_value_derivations
    description: Instructions on how to derive a set of PVs in the target schema
    from_schema: https://w3id.org/linkml/transformer
    rank: 1000
    domain_of:
    - EnumDerivation
    range: PermissibleValueDerivation
    multivalued: true
    inlined: true
### Induced
name: EnumDerivation
description: A specification of how to derive the value of a target enum from a source
  enum
from_schema: https://w3id.org/linkml/transformer
is_a: ElementDerivation
attributes:
  name:
    name: name
    description: Target enum name
    from_schema: https://w3id.org/linkml/transformer
    key: true
    owner: EnumDerivation
    domain_of:
    - SchemaReference
    - ElementDerivation
    - ClassDefault
    - ObjectDerivation
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    - Agent
    required: true
  populated_from:
    name: populated_from
    description: Source enum to derive this target enum from.
    from_schema: https://w3id.org/linkml/transformer
    owner: EnumDerivation
    domain_of:
    - ClassDerivation
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: EnumReference
  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: EnumDerivation
    domain_of:
    - ClassDerivation
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: EnumReference
    multivalued: true
  expr:
    name: expr
    description: An expression to be evaluated on the source object to derive the
      target slot. Should be specified using the LinkML expression language.
    from_schema: https://w3id.org/linkml/transformer
    owner: EnumDerivation
    domain_of:
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: string
  hide:
    name: hide
    description: True if this is suppressed
    from_schema: https://w3id.org/linkml/transformer
    owner: EnumDerivation
    domain_of:
    - SlotDerivation
    - EnumDerivation
    - PermissibleValueDerivation
    range: boolean
  permissible_value_derivations:
    name: permissible_value_derivations
    description: Instructions on how to derive a set of PVs in the target schema
    from_schema: https://w3id.org/linkml/transformer
    rank: 1000
    owner: EnumDerivation
    domain_of:
    - EnumDerivation
    range: PermissibleValueDerivation
    multivalued: true
    inlined: true
  copy_directives:
    name: copy_directives
    description: Directives controlling which sub-elements of the source element are
      copied into the derived target element.
    from_schema: https://w3id.org/linkml/transformer
    owner: EnumDerivation
    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: EnumDerivation
    domain_of:
    - ElementDerivation
    range: Any
  is_a:
    name: is_a
    description: The parent element that the derived target element inherits from.
    from_schema: https://w3id.org/linkml/transformer
    rank: 1000
    slot_uri: linkml:is_a
    owner: EnumDerivation
    domain_of:
    - ElementDerivation
    range: ElementDerivation
  mixins:
    name: mixins
    description: Mixin elements applied to the derived target element.
    from_schema: https://w3id.org/linkml/transformer
    rank: 1000
    slot_uri: linkml:mixins
    owner: EnumDerivation
    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: EnumDerivation
    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: EnumDerivation
    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: EnumDerivation
    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: EnumDerivation
    domain_of:
    - ElementDerivation
    range: KeyVal
    multivalued: true
    inlined: true
  mirror_source:
    name: mirror_source
    description: If true, pass the source value through unchanged instead of transforming
      it.
    from_schema: https://w3id.org/linkml/transformer
    rank: 1000
    owner: EnumDerivation
    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: EnumDerivation
    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: EnumDerivation
    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: EnumDerivation
    domain_of:
    - SpecificationComponent
    range: string
    multivalued: true