psychoinformatics-de / shacl-vue

https://psychoinformatics-de.github.io/shacl-vue/
MIT License
0 stars 0 forks source link

Handle inlined objects and objects with/without IDs properly #23

Open jsheunis opened 1 week ago

jsheunis commented 1 week ago

In a LinkML schema, classes can have a property tagged with identifier: true, which provides the ability to reference objects of those classes by its identifier (curie / uri). E.g. an Author class with a slot id set to identifier: true will allow other objects, such as Publication, to list an Author by id, provided that there is a property on Publication (e.g. authors) that has Author as the range. Tagging a slot as inlined provides additional control over whether the range class (here, Author) should be inlined or referenced by ID. If the range class does not declare an identifier then inlined is always true.

On the user interface side, this translates to the following:

While LinkML can be used to define a hierarchical data organisation, SHACL defines shapes to validate RDF data (e.g. a set of triples). AFAIK there is no straightforward shacl constraint or other shacl-based specification that would allow:

So from the perspective of SHACL-based user interface generation, we should figure out sensible ways to achieve this such that the user interface can still allow the user to see the hierarchical contexts of the data being entered, while being unaware of the hierarchical building blocks in LinkML.