openMetadataInitiative / openMINDS

Complete collection of schemas for the metadata models of the openMINDS metadata framework. All schemas are formatted in the openMINDS syntax (*.schema.omi.json).
MIT License
0 stars 3 forks source link

changing the namespace #25

Open lzehl opened 3 months ago

lzehl commented 3 months ago

old namespaces: (openminds version <= v3)

new namespaces: (openminds version >= v4)

SUBMODULENAME: lowerCamelCase SCHEMANAME: UpperCamelCase PROPERTYNAME: lowerCamelCase

How to change / switch to the new namespace:

openMINDS (main); pipeline branch: 1) add default namespace to versions.json / versions-dev.json files 2) update build pipeline to use default namespaces of version files for types and properties

openMINDS submodules; version branches: 1) remove all full namespaces for schema types 2) remove all instances folders (as unrelated cleanup)

@openMetadataInitiative/openminds-developers please comment if I forgot something or if something is unclear

ehennestad commented 2 months ago

@Lyuba, how will this apply to @ids for instances?

apdavison commented 2 months ago

Having seen how this works out in practice, in the PRs created by @Raphael-Gazzotti , I think we would be losing something by removing all information about modules from the .schema.tpl.json files. Given that openMINDS is developed over multiple GitHub projects, with one per module, it is often important during development to know to which module a given type belongs.

I would therefore like to suggest the following: instead of using plain type names in the templates, we use a CURIE including the module name. Example:

"_type": "LivePaperResourceItem",
"_linkedTypes": [
     "Organization",
     "WebService",
     "Service"
]

⬇︎

"_type": "publications:LivePaperResourceItem",
"_linkedTypes": [
     "core:Organization",
     "core:WebService",
     "controlledTerms:Service"
]

The prefixes can then be expanded according to the version. For older versions: core -> https://openminds.ebrains.eu/core controlledTerms -> https://openminds.ebrains.eu/controlledTerms while for future versions, all the prefixes expand to the same namespace: core -> https://openminds.om-i.org/types controlledTerms -> https://openminds.om-i.org/types

ehennestad commented 2 months ago

The pipeline is generating this (which I assume is not the intention): https://github.com/openMetadataInitiative/openMINDS/blob/0ad2cb6c96d1b9025e41ef2a0d247221ba44d908/schemas/latest/chemicals/amountOfChemical.schema.omi.json#L2-L4

Raphael-Gazzotti commented 2 months ago

The pipeline hasn't been updated yet to reflect the latest schema changes. This is affecting namespace autocompletion and vocabulary matching.

ehennestad commented 2 months ago

Isn't it better to update the pipeline prior to changing the schemas, especially if this is pushed to main?

ehennestad commented 2 months ago

Also note that descriptions are missing from the types.json as well as schema.omi.json files: Example: https://github.com/openMetadataInitiative/openMINDS/blob/main/schemas/latest/controlledTerms/ageCategory.schema.omi.json

lzehl commented 1 month ago

@ehennestad there is a dependency that we cannot avoid. we need to have the submodules ready prior to the pipeline change. the missing descriptions are a temporary issue. thanks for your patients