First release
Added the openMINDS instance library (predefined metadata instances) as class attributes. For example:
In [1]: from openminds.latest.controlled_terms import AgeCategory
In [2]: AgeCategory.adult
Out[2]: <openminds.latest.controlled_terms.age_category.AgeCategory at 0x104eb3970>
In [3]: AgeCategory.adult.id
Out[3]: 'https://openminds.ebrains.eu/instances/ageCategory/adult'
In [4]: AgeCategory.adult.definition
Out[4]: "'Adult' categorizes the life cycle stage of an animal or human that reached sexual maturity."In some cases it is more convenient to retrieve instances by name or synonym, e.g.:
In [1]: from openminds.latest.controlled_terms import MolecularEntity
In [2]: MolecularEntity.by_name("HEPES") == MolecularEntity.by_name("4-(2-hydroxyethyl)-1-piperazine ethanesulfonic acid")
Out[2]: True
For more detail see #29.
- Improved property descriptions, for example the
identifierproperty of theProductSourceclass now has the description "Term or code used to identify the product source" whereas previously it was the generic "Term or code used to identify something or someone". - Non-HTTP IRIs are now allowed.
- Bug fixes:
- instance properties that should be IRI objects were just plain strings
- passing an integer to a property of type "number" produced a validation error
- when validating collections the "ignore" argument wasn't being passed down
- type hints were producing an error with Python 3.8
- Update to latest openMINDS schemas and instances
- Internal import statements are now sorted alphabetically
- Added release candidate for openMINDS v4
- Nodes in a collection are now sorted by ID.
- includes fixes and additions to instance library, including:
- replacement of MRAcquisitionType by MRSpatialEncoding
- the addition of a Marmoset brain atlas, and some other new instances
- improved consistency of @id paths, spelling corrections, improved term definitions
- more reliable export as JSON-LD: specifically when a property which expects a single value has a list/tuple as a value, this would break JSON-LD export. Now, although it is marked as a validation failure, this does not prevent export.
- addition of a
Linkclass, to allow making reference to remote graph nodes defined by their@idthat are not present locally. - improved CI testing: we now test v3 and v4, as well as "latest".
- drop support for Python 3.8, add support for Python 3.14.
- more forgiving import of JSON-LD:
- make the class registry reusable by other packages #70
- bug fix: prevent infinite recursion in
validate()where there are loops in the graph #76 - allow the user to specify which openMINDS version should be used by
Collection.load()#77 - add the option to group files into subdirectories by schema when saving #80
- improvements to the
by_name()method #81