Skip to content

Class: Decision

A decision point in the analysis. Either locally defined (with label and options) or a pure reference to an ancestor decision via from.

Reference grammar:

__

_ from: ../id -- a parent decision_

_ from: ../../id -- a grandparent decision_

__

Decisions only flow downward through scopes; sibling-sub or child references are not legal. An aliased Decision is a pure pointer: only id, from, and when may be set.

URI: astra:Decision

 classDiagram
    class Decision
    click Decision href "../Decision/"
      Decision : default

      Decision : from

      Decision : id

      Decision : label

      Decision : options





        Decision --> "*" Option : options
        click Option href "../Option/"



      Decision : rationale

      Decision : tags

      Decision : when

Slots

Name Cardinality and Range Description Inheritance
from 0..1
String
Path to an ancestor decision: ` direct
when *
String
Conditions for when this element is active direct
id 1
String
Decision identifier (the key in the decisions map) direct
label 0..1
String
Human-readable name for the decision direct
rationale 0..1
String
Why this decision exists direct
tags *
String
Tags for grouping and categorizing direct
default 0..1
String
Default option ID for baseline universes direct
options *
Option
Map of option IDs to option specifications direct

Usages

used by used in type used
Analysis decisions range Decision

Rules

from_alias_forbids_label

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'from': {'value_presence': 'PRESENT'}} {'label': {'value_presence': 'ABSENT'}}

from_alias_forbids_options

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'from': {'value_presence': 'PRESENT'}} {'options': {'value_presence': 'ABSENT'}}

from_alias_forbids_default

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'from': {'value_presence': 'PRESENT'}} {'default': {'value_presence': 'ABSENT'}}

from_alias_forbids_rationale

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'from': {'value_presence': 'PRESENT'}} {'rationale': {'value_presence': 'ABSENT'}}

from_alias_forbids_tags

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'from': {'value_presence': 'PRESENT'}} {'tags': {'value_presence': 'ABSENT'}}

label_and_options_required_when_not_aliased

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'from': {'value_presence': 'ABSENT'}} {'label': {'required': True}, 'options': {'required': True}}

Identifier and Mapping Information

Schema Source

Mappings

Mapping Type Mapped Value
self astra:Decision
native astra:Decision

LinkML Source

Direct

name: Decision
description: "A decision point in the analysis. Either locally defined (with label\
  \ and options) or a pure reference to an ancestor decision via `from`.\nReference\
  \ grammar:\n\n  from: ../id     -- a parent decision\n  from: ../../id  -- a grandparent\
  \ decision\n\nDecisions only flow downward through scopes; sibling-sub or child\
  \ references are not legal. An aliased Decision is a pure pointer: only `id`, `from`,\
  \ and `when` may be set."
from_schema: https://w3id.org/astra/analysis
slots:
- from
- when
slot_usage:
  from:
    name: from
    description: 'Path to an ancestor decision: `../id` for a parent decision, `../../id`
      for a grandparent, and so on. Reaching laterally (`../sibling.id`) or downward
      (`child.id`) is not allowed  if siblings need a shared decision, lift it to
      the common ancestor and have each sub `from:` it.'
    pattern: ^(\.\./)+[a-z][a-z0-9_]*$
attributes:
  id:
    name: id
    description: Decision identifier (the key in the decisions map)
    from_schema: https://w3id.org/astra/analysis
    identifier: true
    domain_of:
    - Input
    - Output
    - Option
    - Decision
    - Analysis
    - Evidence
    - Insight
    - UniverseNode
    - Universe
    required: true
    pattern: ^(?!(inputs|outputs|decisions|findings|prior_insights|analyses|options|content)$)[a-z][a-z0-9_]*$
  label:
    name: label
    description: Human-readable name for the decision
    from_schema: https://w3id.org/astra/analysis
    domain_of:
    - Input
    - Output
    - Option
    - Decision
    - Insight
  rationale:
    name: rationale
    description: Why this decision exists
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    domain_of:
    - Decision
  tags:
    name: tags
    description: Tags for grouping and categorizing
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    domain_of:
    - Decision
    - Analysis
    - Insight
    multivalued: true
  default:
    name: default
    description: Default option ID for baseline universes
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    domain_of:
    - Decision
  options:
    name: options
    description: Map of option IDs to option specifications
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    domain_of:
    - Decision
    range: Option
    multivalued: true
    inlined: true
rules:
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      label:
        name: label
        value_presence: ABSENT
  title: from_alias_forbids_label
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      options:
        name: options
        value_presence: ABSENT
  title: from_alias_forbids_options
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      default:
        name: default
        value_presence: ABSENT
  title: from_alias_forbids_default
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      rationale:
        name: rationale
        value_presence: ABSENT
  title: from_alias_forbids_rationale
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      tags:
        name: tags
        value_presence: ABSENT
  title: from_alias_forbids_tags
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: ABSENT
  postconditions:
    slot_conditions:
      label:
        name: label
        required: true
      options:
        name: options
        required: true
  description: A non-aliased Decision must declare its label and options.
  title: label_and_options_required_when_not_aliased

Induced

name: Decision
description: "A decision point in the analysis. Either locally defined (with label\
  \ and options) or a pure reference to an ancestor decision via `from`.\nReference\
  \ grammar:\n\n  from: ../id     -- a parent decision\n  from: ../../id  -- a grandparent\
  \ decision\n\nDecisions only flow downward through scopes; sibling-sub or child\
  \ references are not legal. An aliased Decision is a pure pointer: only `id`, `from`,\
  \ and `when` may be set."
from_schema: https://w3id.org/astra/analysis
slot_usage:
  from:
    name: from
    description: 'Path to an ancestor decision: `../id` for a parent decision, `../../id`
      for a grandparent, and so on. Reaching laterally (`../sibling.id`) or downward
      (`child.id`) is not allowed  if siblings need a shared decision, lift it to
      the common ancestor and have each sub `from:` it.'
    pattern: ^(\.\./)+[a-z][a-z0-9_]*$
attributes:
  id:
    name: id
    description: Decision identifier (the key in the decisions map)
    from_schema: https://w3id.org/astra/analysis
    identifier: true
    alias: id
    owner: Decision
    domain_of:
    - Input
    - Output
    - Option
    - Decision
    - Analysis
    - Evidence
    - Insight
    - UniverseNode
    - Universe
    range: string
    required: true
    pattern: ^(?!(inputs|outputs|decisions|findings|prior_insights|analyses|options|content)$)[a-z][a-z0-9_]*$
  label:
    name: label
    description: Human-readable name for the decision
    from_schema: https://w3id.org/astra/analysis
    alias: label
    owner: Decision
    domain_of:
    - Input
    - Output
    - Option
    - Decision
    - Insight
    range: string
  rationale:
    name: rationale
    description: Why this decision exists
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    alias: rationale
    owner: Decision
    domain_of:
    - Decision
    range: string
  tags:
    name: tags
    description: Tags for grouping and categorizing
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    alias: tags
    owner: Decision
    domain_of:
    - Decision
    - Analysis
    - Insight
    range: string
    multivalued: true
  default:
    name: default
    description: Default option ID for baseline universes
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    alias: default
    owner: Decision
    domain_of:
    - Decision
    range: string
  options:
    name: options
    description: Map of option IDs to option specifications
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    alias: options
    owner: Decision
    domain_of:
    - Decision
    range: Option
    multivalued: true
    inlined: true
  from:
    name: from
    description: 'Path to an ancestor decision: `../id` for a parent decision, `../../id`
      for a grandparent, and so on. Reaching laterally (`../sibling.id`) or downward
      (`child.id`) is not allowed  if siblings need a shared decision, lift it to
      the common ancestor and have each sub `from:` it.'
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    alias: from
    owner: Decision
    domain_of:
    - Input
    - Output
    - Decision
    range: string
    pattern: ^(\.\./)+[a-z][a-z0-9_]*$
  when:
    name: when
    description: 'Conditions for when this element is active. Format: ''decision_id.option_id''
      or ''~decision_id.option_id''. Multiple conditions are AND''d together.'
    from_schema: https://w3id.org/astra/analysis
    rank: 1000
    alias: when
    owner: Decision
    domain_of:
    - Output
    - Decision
    range: string
    multivalued: true
rules:
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      label:
        name: label
        value_presence: ABSENT
  title: from_alias_forbids_label
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      options:
        name: options
        value_presence: ABSENT
  title: from_alias_forbids_options
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      default:
        name: default
        value_presence: ABSENT
  title: from_alias_forbids_default
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      rationale:
        name: rationale
        value_presence: ABSENT
  title: from_alias_forbids_rationale
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      tags:
        name: tags
        value_presence: ABSENT
  title: from_alias_forbids_tags
- preconditions:
    slot_conditions:
      from:
        name: from
        value_presence: ABSENT
  postconditions:
    slot_conditions:
      label:
        name: label
        required: true
      options:
        name: options
        required: true
  description: A non-aliased Decision must declare its label and options.
  title: label_and_options_required_when_not_aliased