mff-uk / dataspecer

https://dataspecer.com
MIT License
23 stars 7 forks source link

Duplicate objects in JSON part of generated specification #672

Closed jakubklimek closed 1 month ago

jakubklimek commented 1 month ago

Maybe related to #671 , but see the duplicate chapters in the JSON part of this specification based on this project.

image

sstenchlak commented 1 month ago

This is de facto correct. In a structural model, if you create multiple properties with the same end object (in this case, we have Schvaluje předání působnosti, Přebírá působnost, Převádí působnost — all three having Orgán veřejné moci as a data type), then the end object is created for each of its properties. This allows for different sub-properties and other parameters for each of these objects. Therefore, it is correct that there are multiple instances of Orgán veřejné moci in the generated documentation.

We do not yet support a configuration that would allow you to prefer reusing those objects instead of creating new ones, nor do we have an option in the UI to reuse them manually without explicitly creating a new data structure and reusing it in the traditional way.

As an example, consider a data structure for a Person with some basic properties and two associations: hasFriends and hasEnemies. These associations would point back to Person, but in the structure model, we might not want to include those two associations, which leads to two different structures — ComplexPerson (interprets Person) and SimplePerson (also interprets Person). This implies that the user must be aware of the concept of reusing objects within a single structure, as there are cases when it is necessary and cases when it is not.

The options are:

Regarding namings:

This is already implemented - you can name each object on a structure level differently using the technical labels, hence creating something like a Simple and Complex person in possible.

sstenchlak commented 1 month ago

We decided for "položka typu IRI (Orgán veřejné moci)" with link to the semantic layer + not including additional structure information.