v1.8.0rc1
Pre-releaseHighlights
New primitive types for use in scientific computing
Provides new primitives such as uint32
for precise specification of numeric base types
https://github.com/linkml/linkml-model/pull/185/files
This work was done by the @linkml/ndarray-wg as part of the Berkeley neuro-hackathon
Enum model enhancements
permissible_values
now allows for many of the same slots as other elements, allowing for placement in an is-a hierarchy. See #192, #194, #195
This metamodel also introduces the concept of enum bindings. See the examples here: https://github.com/linkml/linkml-model/blob/main/tests/input/examples/schema_definition-enum_bindings-1.yaml
For example, given a class for modeling concepts or vocabulary terms in your model:
Concept:
description: A generic class for representing an element from a vocabulary or ontology.
attributes:
id:
identifier: true
description: CURIE/identifier for the concept. E.g. ENVO:1234567
name:
description: human-readable label of the concept. E.g. "blood"
vocabulary:
description: E.g. UBERON, PO, ENVO, NCIT
and a class that uses it:
EnvironmentalMaterialSample:
attributes:
name:
description: E.g. my blood sample
sample_material_type:
range: Concept
This allows for a great deal of flexibility. But what if we want to restrict the values of the id field of the referenced concept based on a (static of dynamic) enum?
We can modify the attribute or slot:
sample_material_type:
range: Concept
bindings:
- binds_value_of: id
range: ENVOMaterialEnum
obligation_level: RECOMMENDED
description: Material type from the ENVO ontology
Currently this only serves as documentation as logic to validate bindings is not yet implemented
What's Changed
- Relax domain on is_a, mixin, mixins such that inheritance is valid for permissible values; fixes linkml/linkml#1261 by @sierra-moxon in #192
- Adding is_a and mixins to slots for permissible_value. by @cmungall in #195
- Allowing permissible_value to have implements and instantiates by @cmungall in #194
- Adding extended types. Fixes linkml/linkml#1871 by @cmungall in #185
- Adding enum bindings by @cmungall in #193
- Adding type_mappings to metamodel by @cmungall in #196
- Allowing multivalued to be used in slot expressions as well as top level slots. by @cmungall in #197
- Update ifabsent metamodel to allow for
EnumName(PermissibleValue)
by @vincentkelleher in #198
New Contributors
- @vincentkelleher made their first contribution in #198
Full Changelog: v1.7.0...v1.8.0rc1