Skip to content

Releases: linkml/linkml-model

v1.8.0

03 Jul 14:21
76bc327
Compare
Choose a tag to compare

Highlights

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

New Contributors

Full Changelog: v1.7.0...v1.8.0

v1.8.0rc1

28 Jun 14:31
76bc327
Compare
Choose a tag to compare
v1.8.0rc1 Pre-release
Pre-release

Highlights

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

New Contributors

Full Changelog: v1.7.0...v1.8.0rc1

v1.7.0

08 Feb 17:32
e53a511
Compare
Choose a tag to compare

Array Support

The 1.7.x series of LinkML sees the introduction of first-class array support through the introduction of the linkml:array metamodel slot.

Basic example of usage, to define a 3D array:

TemperatureDataset:
    attributes:
      temperature_matrix:
        range: float
        unit:
         ucum_code: K
        array:
          exact_number_dimensions: 3

Individual axes can be named and constrained. See #181 for a log of discussions. Additional documentation will be added to the main LinkML site.

Thanks to the work of the @linkml/ndarray-wg

This work was conducted as part of the LinkML Neurodata Hackashop sponsored by NeurodataWithoutBorders and DANDI and organized by @satra and @oruebel at Berkeley in Feb 2024.

Additional Highights

What's Changed

New Contributors

Full Changelog: v1.6.0...v1.7.0

v1.7.0rc1

02 Feb 20:32
aab9842
Compare
Choose a tag to compare
v1.7.0rc1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.6.0...v1.7.0rc1

v1.6.0

01 Sep 20:40
55037f0
Compare
Choose a tag to compare

Highlights

This release marks the start of versioned documentation deployment

https://linkml.io/linkml-model/1.6.x/docs/

What's Changed

Full Changelog: v1.5.2...v1.6.0

v1.6.0rc1

12 Jul 23:42
76e2f54
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.5.0...v1.6.0rc1

v1.5.2

12 Jun 19:02
597f504
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.5.1...v1.5.2

v1.5.1

14 Apr 23:24
356a065
Compare
Choose a tag to compare

What's Changed

  • Add classes OneDimensionalSeries, TwoDimensionalArray by @rly in #143
  • refining array model by @cmungall in #153

New Contributors

  • @rly made their first contribution in #143

Full Changelog: v1.5.0...v1.5.1

1.5.0 release

24 Mar 20:49
39cd17d
Compare
Choose a tag to compare

Changes between 1.5 and 1.4

Example Value Objects

Previously examples were limited to objects with two fields (value and description)

1.5 adds a object field that has range Any, allowing an arbitrary nested object to be used

See: https://w3id.org/linkml/Example

implements

Any LinkML element can now list a number of uris or curies to indicate conformance to an external schema without importing it

See: https://w3id.org/linkml/implements

Note: currently this is treated purely as documentation, but in future tools may use this to perform an additional level of validation on a project.

inlined_as_simple_dict

added inlined_as_simple_dict. This can be used to explicitly indicate that a collection is inlined as a SimpleDict.

For more information, see the section Collection Forms in part 6 of the specification

An example of inlining as a dict is commonly seen on all linkml schemas:

prefixes:
  chemrof: https://w3id.org/chemrof/
  COB: http://purl.obolibrary.org/obo/COB_
  BFO: http://purl.obolibrary.org/obo/BFO_

Currently tools do not use this element, so usage is purely documentational. In future validators may use this to determine whether to interpret a dict as a SimpleDict or not.

Additional metadata fields for schemas

The following can now be added to schema elements

  • created_by
  • created_on
  • last_updated_on
  • modified_by
  • status

Documentation improvements

Thanks for @vincentvialard for many clarifications and fixes to the specification and documentation

What's Changed

Full Changelog: v1.4.0...v1.5.0

v1.5.0rc2

16 Mar 20:06
Compare
Choose a tag to compare

Identical to https://github.com/linkml/linkml-model/releases/tag/v1.5.0rc1, except this time created using 1.4.10 of linkml generators