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¶
- from schema: https://w3id.org/astra/analysis
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