Skip to content

SPIKE: Is it possible to create default inverse properties for relationships? #68

Open
@jgadling

Description

@jgadling

LinkML supports the ability to create slots (fields with properties) independently of tables, and then those slots can be assigned to multiple tables (example schema here). Platformics handles this functionality fine for scalar fields, but when using slots to define a relationship, things get tricky:

  • Platformics currently requires an inverse property to be defined on every relationship. This property basically includes the name of the table the slot is assigned to, making it ~impossible to reuse that slot across multiple different tables

There are a few paths forward to handle relationship slot reuse:

  • Try to infer the inverse property automatically based on the class the slot is assigned to
  • Force schema authors to always specify the inverse property (LinkML makes this ~workable this via a slot_usage parameter)
  • Support relationships without an inverse property, so schema authors can decide when to specify inverse relationships and when to omit them.

This ticket means:

  • Come to a decision on how to handle these inverse relationships, and document the rationale
  • Implement the functionality we want.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions