HumanBrainProject / openMINDS

openMINDS comprises a set of metadata models for research products in the field of neuroscience.
MIT License
40 stars 13 forks source link

Moving openMINDS instance libraries to main GitHub #29

Open lzehl opened 2 years ago

lzehl commented 2 years ago

The openMINDS instance libraries are version dependent which is why they were located so far on the repository version branch of each git submodule where the respective schema is defined.

Some instances include though linkages to instances of a different git submodule. To facilitate the development and maintenance of the openMINDS instance libraries in general we decided to move all of them to the version branches of the main openMINDS GitHub.

Open question: How should the instance libraries be organized?

As before the instance libraries will be located in an "instances" folder in each version branch, but we need to decide on a meaningful sub-directory. Not for technical reasons (the sub-directory does not matter, just that they are stored as JSONLDs), but for readability/maintenance.

We had some prior discussion for this and I would like to share and put up for discussion the following suggestion (e.g., v2 branch):

instances/
    brainAtlases/
        Julich-BrainAtlas/ (example, same structure for all registered brain atlases)
            Julich-BrainAtlas.jsonld (BrainAtlas instance; with nested Terminology)
            JBA_v1-13_Colin27-1998/
                 JBA_v1-13_Colin27-1998.jsonld (BrainAtlasVersion instance; with nested TerminologyVersion)
                 parcellationEntityVersions/
                     *.jsonld (ParcellationEntityVersion instances; with nested AtlasAnnotation)
                 serviceLinks/
                     *.jsonld (ServiceLink instances; with nested URL [this is not yet an embeddedType! would need to change])
            parcellationEntities/
                 *.jsonld (ParcellationEntity instances)
    commonCoordinateSpaces/
         *.jsonld (ParcellationEntity instances for common reference spaces)
    contentTypes/
         *.jsonld (ContentType instances)
    licenses/
        *.jsonld (License instances)
    miscellaneous/
        dataLocations/
            *.jsonld (File or FileBundle instances for e.g. atlas annotations)
        persons/
            *.jsonld (Person instances for e.g. atlas developers)
        URLs/
            *.jsonld (URL instances for e.g. common coordinate space homepages)
        [etc]
    terminologies/
        UBERONParcellations/
            *.jsonld (UBERONParcellation instances)
        actionStatusTypes/
            *.jsonld (ActionStatusType instances)
        ageCategories/
            *.jsonld (AgeCategory instances)
        [etc]

Issue we need to discuss in this context: how to handle all "miscellaneous" instances? They are typically registered already in the databases (e.g. the KG) for other purposes and we need to keep/suggest how to keep them in sync. Any ideas? [Note: "dataLocations" should maybe be moved to the atlas sub-directories]

@HumanBrainProject/openminds-developers: this issue requires particularly your input :wink: