simphony / simphony-common

The native implementation of the Simphony cuds objects
BSD 2-Clause "Simplified" License
7 stars 5 forks source link

Refactoring: CUDS class #421

Open dpinte opened 7 years ago

dpinte commented 7 years ago

After having spent some time reviewing the code and the existing example applications, I think some changes must be made to the object model .

The CUDS class defined in simphony.cuds.cuds which inherits from api.CUDS should be renamed.

Having two classes with the same name but a different behaviour makes it highly confusing for users. If you're not convinced by that, take a minute to try to explain the object model to somebody new to the project.

In terms of definitions: on the object side, The CUDS class is defined in the Simulation inputs as the "Model information". On the metadata side (see simphony_metadata.yaml), the CUDS is defined as "CUDS Container, a knowledge-based container of semantic concepts used to agglomerate relevant data and information."

Suggestion:

Recommandation: keep the CUDS naming as qualifier for the expression the domain model fo the RoMM

ahashibon commented 7 years ago

Thanks Didrik,

dpinte commented 6 years ago

@ahashibon

the CUDS class indeed needs attention. The precise name should follow the ontology. CUDS container is too technical, I like ModelInformation that can be shortened to MI or Computational Model Information as CMI or simply ComputationalModel as we had originally planned.

Let's not use abbreviation. We all have tools that can auto-complete. Using explicit names will be better.

CUDS should be defined in the metadata and be auto generated like any other cuds class.

Which CUDS are you referring to? There is on CUDS in the metadata, which is auto-generated. Is it what you meant? Or where you referring to the ModelInformation class?