From 09ee58d700306a8ccd040a191db62148be71b357 Mon Sep 17 00:00:00 2001 From: noelmcloughlin Date: Thu, 2 Jul 2026 16:49:16 +0100 Subject: [PATCH] feat(openenum): add is_open boolean slot to enum expressions --- linkml_model/model/schema/meta.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/linkml_model/model/schema/meta.yaml b/linkml_model/model/schema/meta.yaml index 4b1b6514..d0ac4547 100644 --- a/linkml_model/model/schema/meta.yaml +++ b/linkml_model/model/schema/meta.yaml @@ -650,6 +650,29 @@ slots: exact_mappings: - cdisc:PermissibleValue + is_open: + domain: enum_expression + range: boolean + description: >- + Whether the enumeration is open, meaning that values outside of the set of + permissible values are allowed. If true, the enumeration is open and data values + that are not in the set of permissible values are permitted (though they SHOULD be + drawn from the permissible values if available). If false (runtime default), the + enumeration is closed and data values MUST be drawn from the set of permissible values. + ifabsent: false + comments: + - An open enumeration is analogous to the `allow-other="yes"` construct in the OSCAL Metamodel. + - When an enum is open, the permissible values are advisory - they document the recommended + or expected values but do not constrain the range. In JSON Schema this maps to a plain string. + see_also: + - https://pages.nist.gov/metaschema/specification/syntax/constraints/#allow-other + - https://github.com/linkml/linkml/issues/127 + - https://github.com/linkml/linkml/pull/3712 + in_subset: + - SpecificationSubset + # BasicSubset + status: testing + enum_uri: aliases: - public ID @@ -2782,6 +2805,7 @@ classes: - code_set_version - pv_formula - permissible_values + - is_open - include - minus - inherits