wiki:WP2/DevelopingTheCIM

some guidelines for developing the CIM

As you develop CIM UML packages in  Enterprise Architect, you should always export that package as XMI and then upload it to your branch. Additionally, if any pictures change or if you feel additional pictures would be useful, you should upload all PNGs to your branch.

If you want to generate the APPCIM then concim2appcim.xsl should be run on cim.xmi (as opposed to an individual package). This means that you will have to regenerate cim.xmi (in addition to your subpackage XMI) with your changes.

The XSL must use XSLT v2.0; I have simply been running it in  Oxygen (with the built-in Saxon-B 9.1.0.3 processor). It will generate an XSD file for each package in cim.xmi as well as a single output XML file with debugging statements.

The XSL takes a single parameter, version. It should be  set appropriately. (Actually, the XSL takes another parameter, sort-case, which indicates whether UML attributes should be sorted alphabetically before processing; the default value is "false" and, unless you're particularly perverse, it shouldn't need to be changed.)

All the XSD files will be produced in the same directory. You should manually copy them to the appropriate subpackage directory.


Standards and Naming Conventions

(Some of these rules come directly from  here.)

stereotype / tagged valueXML equivalentdefinition
abstractan xs:simpleType or xs:complexType, but not an xs:element or xs:attributean abstract type is not expected to ever be instantiated; it is generally used as a parent class.
documentat least an xs:element that can form a document root; may also be of type xs:complexType or xs:simpleType. a document element has a pre-defined set of elements and attributes (things like id, parent reference, author, etc.).a document is something that can be downloaded as a complete XML document. obviously, <<document>> and <<abstract>> are mutually exclusive.
enumerationan xs:restriction based on xs:string with xs:enumeration valuesa restricted set of values; a controlled vocabulary
enumeration.hrefthe (optional) location of the "vocabulary server" where the enumeration is maintained. some basic enumerations can be defined locally in UML, but others - which have a lifecycle separate from the CIM, and which METAFOR does not govern - will be imported at run-time via a server.
codelista xs:union of an enumeration (above) and xs:stringan extendible set of values; a non-exclusive controlled vocabulary
codelist.hrefthe (optional) location of the "vocabulary server" where the codelist is maintained
unusedignoreda UML class that is not used or not ready to be implemented in XSL (these should be minimised as much as possible, else the UML diagrams will be needlessly cluttered).

UML package and class names should be upper camel case. UML attribute and role names should be lower camel case. This will correspond to upper camel case xs:complexTypes and xs:simpleTypes and lower camel case will be used for xs:elements.

Multiple inheritance is not allowed.

Enumerations and codelists should use "Type" as a suffix.


Wiki Index

  1. WP1: the starting point for WP1: Project Management
  2. WP1/Amendment3: Amendment 3: Metafor project extension
  3. WP1/SoftwareManagement: Live Deliverables
  4. WP1/TelcoMinutes: Teleconference minutes
  5. WP1/TelcoMinutes/20Sept2011
  6. WP1/TelcoMinutes/Telco138_27Sept2011: Telco 138 - 27th September 2011
  7. WP1/TelcoMinutes/Telco139_4Oct2011: Telco 139 - 4th Oct 2011
  8. WP1/TelcoMinutes/Telco140_11Oct2011: Telco 140 11th October 2011
  9. WP1/TelcoMinutes/Telco141_1Nov2011: Telco 141 1st November 2011
  10. WP1/TelcoMinutes/Telco142_6Dec2011
  11. WP1/TelcoMinutes/Telco143_5Jan2012: Telco 143 5th January 2012
  12. WP1/TelcoMinutes/Telco144_2Feb2012: Telco 144 2nd February 2012
  13. WP1/TelcoMinutes/Telco145_6Mar2012: Telco 145 6th March 2012
  14. WP1/TelcoMinutes/Telco146_2Apr2012: Telco 146 2nd April 2012
  15. WP1/TelcoMinutes/Telco147_10May2012: Telco 147 10th May 2012
  16. WP1/TelcoMinutes/Telco148_31May2012: Telco 148 31st May 2012
  17. WP1/TelcoMinutes/Telco149_21June2012: Telco 149 21st June 2012
  18. WP1/TelcoMinutes/Telco150_05July2012: Telco 150 5th July 2012
  19. WP2: the starting point for WP2: The CIM
  20. WP2/ControlledVocabulariesList: A flat list of controlled vocabulary terms for the CIM
  21. WP2/DevelopingTheCIM: Wiki Index
  22. WP3: the starting point for WP3: testing/populating
  23. WP3/Agile: Metafor WP3 Group - Agile Management
  24. WP3/Agile/Sprints/01: Metafor WP3 Group - Sprint 01
  25. WP3/docs
  26. WP3/telcos
  27. WP3/telcos/03/agenda
  28. WP3/telcos/04
  29. WP3/telcos/05: Agenda
  30. WP4: the starting point for WP4: Services
  31. WP4/Agile: Services Group - Agile Management
  32. WP4/Agile/Sprints/01: Services Group - Development Sprint 01
  33. WP4/Agile/Sprints/02: Services Group - Development Sprint 02
  34. WP4/Agile/Sprints/03: Services Group - Development Sprint 03
  35. WP4/Agile/Sprints/03/url-design: Initial Thoughts on Metafor URL design to supplement attached note
  36. WP4/Agile/Sprints/04: Services Group - Development Sprint 04
  37. WP4/Agile/Sprints/05: Services Group - Development Sprint 05
  38. WP4/Agile/Sprints/06: Services Group - Development Sprint 06
  39. WP4/Agile/Sprints/07: Services Group - Development Sprint 07
  40. WP4/Agile/Sprints/08: Services Group - Development Sprint 08
  41. WP4/Agile/Sprints/08/Agenda
  42. WP4/Agile/Sprints/09: Services Group - Development Sprint 09
  43. WP4/Agile/Sprints/11
  44. WP4/Agile/Sprints/12: Services Group - Development Sprint 12
  45. WP4/Agile/Sprints/19
  46. WP4/Deliverables
  47. WP4/MF-ISENES-Timeline
  48. WP4/NumSim: WP4/NumSim
  49. WP4/PortalDeployment: pre-requisites
  50. WP4/QDeployment: Deploying the questionnaire
  51. WP4/QSandbox: Notes on building questionnaire sandboxes
  52. WP4/ServicesPlanningDocument: Metafor Services (WP4, WP5, & WP6): Deliverables, Dependencies, and …
  53. WP4/URIstructure: WP4/URIstructure - The Metafor URI structure(s)
  54. WP5: the starting point for WP5: Tools
  55. WP6: the starting point for WP6: CIM Creation
  56. WP7: the starting point for WP7: Dissemination
  57. CMIP5: the starting point for CMIP5
  58. CMIP5/FileMetadata: CMIP5 Internal File Metadata
  59. CMIP5/QuestionaireBetaTesting: Comments, queries and issues raised by our beta testers
  60. CMIP5/QuestionaireIssues: Alpha 5 release of the CMIP5 questionnaire: …
  61. CMIP5/QuestionaireRequirements: CMIP5 questionnaire requirements
  62. CMIP5/QuestionaireTimeline
  63. CMIP5/QuestionnaireAccess: Instructions for Access to the CMIP5 Questionnaire …
  64. CMIP5/QuestionnaireCentres
  65. CMIP5/QuestionnaireOpenLetter: Open letter to our users
  66. CMIP5/QuestionnaireTimeline
  67. CMIP5/Storyline
  68. CMIP5/VarURIStructure: CMIP5/Variable Structures
  69. CMIP5_CVSoft
  70. requirements: METAFOR requirements
  71. requirements/testRequirement: requirement: make sure that thingies contain widgets (sample requirement)
  72. use-cases: METAFOR use-cases
  73. use-cases/AnnotateCIMRecord: Use-Case: Annotate a CIM Record
  74. use-cases/BrowseCIMRepository: Use-Case: Browse a CIM Repository
  75. use-cases/CaptureGridDefinition: Use-Case: Capture a Grid Definition
  76. use-cases/FindCIMRepository
  77. use-cases/FindExperimentsForModel: Use-Case: Find Experiments Based On Model X
  78. use-cases/FindModelsForExperiment: Use-Case: Find Models Used In Experiment X
  79. use-cases/FindModelsToCouple: Use-Case: Find Models To Couple
  80. use-cases/FindRelatedCIMRecords: Use-Case: Find Related CIM Records
  81. use-cases/FindRelatedCitations: Use-Case: Find Related Citations
  82. use-cases/KeywordSearchCIMRepository: Use-Case: Keyword Search a CIM Repository
  83. use-cases/QueryCIMRepository: Use-Case: Query a CIM Repository
  84. use-cases/ViewCIMRecord: Use-Case: View a CIM Record
  85. use-cases/ViewDatasetQualityReport: Use-Case: Find Related Citations
  86. use-cases/create-qc-record: Use-Case: Modify or Create a quality control record
  87. use-cases/template: Use-Case: <name>
  88. use-cases/testUseCase: Use-Case: a sample use-case
  89. tickets/1008: QC for CMIP5 Questionnaire Records
  90. tickets/167: CIM sequence document & diagrams
  91. tickets/180: notes for  ticket 180
  92. tickets/181: notes for  ticket 181
  93. tickets/182: The Wiki page for documenting progress on the ConCIM activity package: …
  94. tickets/184: Existing Controlled Vocabulary lists
  95. tickets/185: notes for  ticket 185
  96. tickets/189: Use Cases for interacting with the UMUI Minutes from a meeting that …
  97. tickets/191: Experiment relationships for CMIP5
  98. tickets/192: CMIP5 Questionnaire
  99. tickets/193: Extracting CIM metadata from code and verifying CIM metadata and code are …
  100. tickets/214: Figure out how the Controlled Vocabulary should integrate with the CIM
  101. tickets/215: tidy the CIM (as per the Y1 meeting)
  102. tickets/226: restructure the wiki
  103. tickets/232: create a widget for the thingie (sample ticket)
  104. tickets/236: tidy the CIM (to make it less XML specific)
  105. tickets/237: include sequencing info in the CIM
  106. tickets/239: Outstanding CIM Issues
  107. tickets/241: Implement Tree Navigation for the CMIP5 Questionnaire
  108. tickets/244: Processing the mindmaps (bundled version) to create XML suitable for …
  109. tickets/245: Work in progress
  110. tickets/247: Ingest ESG metadata into mindmaps
  111. tickets/248: CMIP5 Questionnaire Timeline
  112. tickets/249: Questionnaire to CIM Conversion
  113. tickets/250: CMIP5 Conformance wiki for ticket #250
  114. tickets/253: Questionnaire Metadata Validation
  115. tickets/254: Table 1: CMIP5 constraints not enforced by the Questionnaire
  116. tickets/277: Proposed updates to the CIM Grid logical data model
  117. tickets/280: add / revise definitions of terms used in the CIM
  118. tickets/281: when should references use XPath and when should they embed documents …
  119. tickets/31
  120. tickets/326/aerosols
  121. tickets/326/atmos
  122. tickets/326/atmos_chem
  123. tickets/326/land_ice
  124. tickets/326/land_surf
  125. tickets/326/ocean: Herafter is the previous version of definitions tables for Ocean, included …
  126. tickets/326/ocean_biochem
  127. tickets/326/sea_ice: Herafter is the previous version of definitions tables for Ocean, included …
  128. tickets/485: CMIP5 Questionnaire
  129. tickets/509: What Deployment/Hardware/Configuration? Information Should Be Recorded?
  130. tickets/519
  131. tickets/55: Metafor Governance
  132. tickets/636: Wiki Page for Ticket #636 (Review of Grid Properties in MindMaps)
  133. tickets/684: Discussion of Ensemble Handling Issues
  134. tickets/707: THREDDS to CIM instances tool
  135. tickets/709: CIM v1.5
  136. tickets/715: METAFOR Success Criteria
  137. tickets/778: Integrate Controlled Vocabularies with the CIM
  138. tickets/78
  139. tickets/79: CIM Differencing Tool Design Document
  140. tickets/810
  141. tickets/862: Required CIM Software Component Properties
  142. tickets/868: Some Documentation of Issues associated with ticket:868
  143. tickets/870: Moving towards CIM2.0
  144. tickets/888: Definition of unconfigured vs configured model
  145. tickets/92: Outstanding CIM Prototype Human GUI Issues
  146. tickets/920: O&M
  147. tickets/920/options4om1: Initial Step
  148. tickets/920/sidl: Scientific Interface Definition Language (SIDL)
  149. tickets/921
  150. tickets/925: A Common Information Model paired with scientific Controlled Vocabularies …
  151. tickets/926: EGU abstract - The CMIP5 questionnnaire: web-based metadata collection for …
  152. tickets/927
  153. tickets/986: CIM v1.7