OP-TED / ePO

The eProcurement Ontology provides the formal, semantic foundation for the creation and reuse of linked open data in the domain of public procurement in the EU.
European Union Public License 1.2
58 stars 18 forks source link

Don't use too many namespaces #287

Closed VladimirAlexiev closed 9 months ago

VladimirAlexiev commented 3 years ago

281 shows several namespaces: epo, ecat, epo-ecat, epo-eorder.

Please mind that every new namespace makes it slightly harder for the user of the ontology. I think even the authors may have gotten confused: ecat:eCatalogue but epo-ecat:eCatalogueLine?

Multiple namespaces are justified only for very large ontologies like FIBO that has over 500 modules, each in a separate namespace. For smaller ontologies (up to 1k classes and props), it's a lot more convenient to use a single namespace.

Please note that modularization (breaking the ontology into files, with a well-layered import dependency hierarchy) is orthogonal to namespaces. There's no need to use a separate namespace for each module.

Using a single namespace makes it a lot more likely that ontology term URLs will remain permanent, even in face of module refactoring.

giorgialodi commented 3 years ago

We noticed already some confusion in the names of the modules (during the definition of the UML diagrams) and this will be fixed once the modules will be stabilized. We will think about this suggestion even if I do not see so much issues if I use a different namespace for a different module, whose lifecycle is potentially treated apart from the main ontology (epo). The module has its own classes and props and it will typically import the main ontology epo and that's it, as far as we have seen so far.

VladimirAlexiev commented 3 years ago

"Distinct lifecycle" justifies the creation of multiple modules, but it doesn't require "distinct namespaces". Keeping all terms in the same namespace improves the chance term URLs will remain permanent.

The only benefit of "distinct namespaces" is if you expect conflicts in term names, i.e. the same local name to be used in different namespaces with different meaning. But I can't see such danger.

guascce commented 3 years ago

This will be discussed further when those sub domains will be further analysed.