Skip to content

Commit 09ee58d

Browse files
feat(openenum): add is_open boolean slot to enum expressions
1 parent d028ff3 commit 09ee58d

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

linkml_model/model/schema/meta.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,29 @@ slots:
650650
exact_mappings:
651651
- cdisc:PermissibleValue
652652

653+
is_open:
654+
domain: enum_expression
655+
range: boolean
656+
description: >-
657+
Whether the enumeration is open, meaning that values outside of the set of
658+
permissible values are allowed. If true, the enumeration is open and data values
659+
that are not in the set of permissible values are permitted (though they SHOULD be
660+
drawn from the permissible values if available). If false (runtime default), the
661+
enumeration is closed and data values MUST be drawn from the set of permissible values.
662+
ifabsent: false
663+
comments:
664+
- An open enumeration is analogous to the `allow-other="yes"` construct in the OSCAL Metamodel.
665+
- When an enum is open, the permissible values are advisory - they document the recommended
666+
or expected values but do not constrain the range. In JSON Schema this maps to a plain string.
667+
see_also:
668+
- https://pages.nist.gov/metaschema/specification/syntax/constraints/#allow-other
669+
- https://github.com/linkml/linkml/issues/127
670+
- https://github.com/linkml/linkml/pull/3712
671+
in_subset:
672+
- SpecificationSubset
673+
# BasicSubset
674+
status: testing
675+
653676
enum_uri:
654677
aliases:
655678
- public ID
@@ -2782,6 +2805,7 @@ classes:
27822805
- code_set_version
27832806
- pv_formula
27842807
- permissible_values
2808+
- is_open
27852809
- include
27862810
- minus
27872811
- inherits

0 commit comments

Comments
 (0)