Mapping rules: from MIFlowCyt to FuGEFlow
Updated by Olga Tchuvatkina June 9, 2008
Modeling classes
We used the following rules for class creation:
- Read FuGE documentation to find appropriate FuGE class to extend
- Extend class according to guidelines
- Avoid extending classes if they add no new attributes and associations. Create “empty” classes only if there is a good reason to create an extra level of abstraction
Modeling attributes
Attribute creation rules (start from the first one and move on until rule “fits”):
Map property as associations to Description and/or OntologyTerm inherited form Describable. Only for optional non-required annotations
Map property as new named associations to Description and/or OntologyTerm
- Map property as new named association to Measurement
- Map property as association to Parameter and its default value inherited from Parameterizable.
- Create new attribute. Only if nothing above works.
Note OntologyTerm class should be selected if use of controlled vocabulary term is recommended. Description class should be used for free text properties only
Note all properties that have measurement unit and value should be mapped either to Measurement class or to Parameter depending on nature of the property (static property vs. adjustable parameter)
Modeling associations
To keep balance between flexibility and constraints we used the following rules for modeling associations with classes like parameters, ontology terms, materials and etc:
Use reference to ExtendedClass if its attributes and associations are expected to be provided
Avoid using reference to GenericClass. Use it only when there is a good reason to limit model to use of GenericClass
Use reference to AbstractClass in all other situations. It will provide flexibility and allow to use any AbstractClass derived instance (including GenericClass) on implementation level
