There is a newer version of the record available.

Published October 14, 2022 | Version v1.3.3
Software Open

linkml/linkml-runtime: v1.3.3

  • 1. Lawrence Berkeley National Laboratory
  • 2. Johns Hopkins University
  • 3. LBNL
  • 4. Leibniz-Institut für Katalyse e.V.
  • 5. @actions
  • 6. @openmicroscopy
  • 7. The Berkeley Lab
  • 8. @RENCI
  • 9. SIB Swiss Institute of Bioinformatics
  • 10. @TB-Modeling

Description

Highlights

Given a tree-root/container object, this will create an index, and allow for retrieval of proxy objects that shadow domain YAMLRoot classes. These operate in the same way, except that object references are automatically dereferenced.

For example, given a container object following the standard personinfo schema, an index can be created and queried:

    >>> ix = ObjectIndex(container, schemaview=schemaview)
    >>> container = ix.bless(container)
    >>> for p in container.persons:
    >>>    for r in p.has_familial_relationships():
    >>>        print(f"{p.name} {p.type} {r.related_to.name}")

Note this will work even if related_to is not inlined.

This means naive traversal of the object tree is not guaranteed to be bounded, unlike with a YAMLRoot object. E.g.

    >>> person.has_familial_relationships[0].
    >>>    related_to.has_familial_relationships[0].
    >>>    related_to.has_familial_relationships[0].name

In the above, the same proxy object is reused for any object with an identifier.

What's Changed New Contributors

Full Changelog: https://github.com/linkml/linkml-runtime/compare/v1.3.2...v1.3.3

Files

linkml/linkml-runtime-v1.3.3.zip

Files (510.3 kB)

Name Size Download all
md5:62276050915a075b9072ce98e2f7c074
510.3 kB Preview Download

Additional details

Related works