Description
LinkML supports native list
fields, and some schemas (example here) use this functionality to express many:many relationships between classes. Even if LinkML supports list fields natively, these are usually represented by a join table when mapped to an RDBMS. The official LinkML -> SQLAlchemy codegen handles these by creating a join table and using SA's secondary argument to make the relationship behave more like a simple list relationship on each side (example here)
Right now Platformics requires all many:many relationships to have an explicit Entity type of their own, so if a student is in multiple classes, schema authors are required to create an explicit StudentClass entity with a 1:many relationship between itself and students, and a 1:many relation between itself and classes.
What this ticket means:
- Decide whether platformics can/should support implicit many:many relationships, and document the decision
- Write up a spec for how this relationship should behave at the SA and GQL levels
- Estimate the level of effort to implement the spec