{"action":"created","issue":{"url":"https://api.github.com/repos/ES-DOC/esdoc-docs/issues/119","repository_url":"https://api.github.com/repos/ES-DOC/esdoc-docs","labels_url":"https://api.github.com/repos/ES-DOC/esdoc-docs/issues/119/labels{/name}","comments_url":"https://api.github.com/repos/ES-DOC/esdoc-docs/issues/119/comments","events_url":"https://api.github.com/repos/ES-DOC/esdoc-docs/issues/119/events","html_url":"https://github.com/ES-DOC/esdoc-docs/issues/119","id":139936566,"number":119,"title":"Define the syntax for specifying vocabularies","user":{"login":"davidhassell","id":8126576,"avatar_url":"https://avatars.githubusercontent.com/u/8126576?v=3","gravatar_id":"","url":"https://api.github.com/users/davidhassell","html_url":"https://github.com/davidhassell","followers_url":"https://api.github.com/users/davidhassell/followers","following_url":"https://api.github.com/users/davidhassell/following{/other_user}","gists_url":"https://api.github.com/users/davidhassell/gists{/gist_id}","starred_url":"https://api.github.com/users/davidhassell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidhassell/subscriptions","organizations_url":"https://api.github.com/users/davidhassell/orgs","repos_url":"https://api.github.com/users/davidhassell/repos","events_url":"https://api.github.com/users/davidhassell/events{/privacy}","received_events_url":"https://api.github.com/users/davidhassell/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ES-DOC/esdoc-docs/labels/CMIP6","name":"CMIP6","color":"0052cc"},{"url":"https://api.github.com/repos/ES-DOC/esdoc-docs/labels/priority%201","name":"priority 1","color":"bfe5bf"},{"url":"https://api.github.com/repos/ES-DOC/esdoc-docs/labels/VOCABS","name":"VOCABS","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"davidhassell","id":8126576,"avatar_url":"https://avatars.githubusercontent.com/u/8126576?v=3","gravatar_id":"","url":"https://api.github.com/users/davidhassell","html_url":"https://github.com/davidhassell","followers_url":"https://api.github.com/users/davidhassell/followers","following_url":"https://api.github.com/users/davidhassell/following{/other_user}","gists_url":"https://api.github.com/users/davidhassell/gists{/gist_id}","starred_url":"https://api.github.com/users/davidhassell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidhassell/subscriptions","organizations_url":"https://api.github.com/users/davidhassell/orgs","repos_url":"https://api.github.com/users/davidhassell/repos","events_url":"https://api.github.com/users/davidhassell/events{/privacy}","received_events_url":"https://api.github.com/users/davidhassell/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/ES-DOC/esdoc-docs/milestones/10","html_url":"https://github.com/ES-DOC/esdoc-docs/milestones/End-to-end%20CMIP6%20for%20beta%20test","labels_url":"https://api.github.com/repos/ES-DOC/esdoc-docs/milestones/10/labels","id":1638522,"number":10,"title":"End-to-end CMIP6 for beta test","description":"","creator":{"login":"eguil","id":7075402,"avatar_url":"https://avatars.githubusercontent.com/u/7075402?v=3","gravatar_id":"","url":"https://api.github.com/users/eguil","html_url":"https://github.com/eguil","followers_url":"https://api.github.com/users/eguil/followers","following_url":"https://api.github.com/users/eguil/following{/other_user}","gists_url":"https://api.github.com/users/eguil/gists{/gist_id}","starred_url":"https://api.github.com/users/eguil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eguil/subscriptions","organizations_url":"https://api.github.com/users/eguil/orgs","repos_url":"https://api.github.com/users/eguil/repos","events_url":"https://api.github.com/users/eguil/events{/privacy}","received_events_url":"https://api.github.com/users/eguil/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2016-03-11T08:27:15Z","updated_at":"2016-03-11T09:20:40Z","due_on":"2016-06-29T22:00:00Z","closed_at":null},"comments":9,"created_at":"2016-03-10T16:12:46Z","updated_at":"2016-03-22T08:36:38Z","closed_at":null,"body":"Finalise the python dictionary syntax for defining CIM2 specializations. See below for a work-in-progress example.\r\n\r\nStill to do:\r\n  * Work out a fully flexible constraint syntax (so that we can constrain more than just value and have multiple constrains on one property)\r\n  * Provide templates for the different document types (model, realm, process, grid)\r\n\r\n\r\n  * Provide basic, in-line documentation on the (currently) 8 types of entity in the file (`ID`, `CIM`, `TYPE`, `CONTACT`, `AUTHORS`, `DATE`, `PROPERTIES`, `ENUMERATIONS`)\r\n  * other things\r\n\r\n**Example**:\r\n```\r\nID = 'cmip6.ocean.grid'\r\n\r\nCIM = '2.0'\r\n\r\nTYPE = 'science.grid'\r\n\r\nCONTACT = 'Eric Guilyardi (e-mail)'\r\n\r\nAUTHORS = 'Eric Guilyardi (e-mail), David Hassell (e-mail)'\r\n\r\nDATE = '2016-03-10'\r\n\r\nPROPERTIES = {\r\n    # ----------------------------------------------------------------\r\n    # OVERVIEW\r\n    # ----------------------------------------------------------------\r\n    'short_name': 'Ocean grid',\r\n    'description': 'Overview of ocean grid'\r\n   \r\n    'discretisation': ['ocean_discretisatsion'],\r\n\r\n    'details': ['vertical_grid',\r\n                'horizontal_grid'],\r\n\r\n    # ----------------------------------------------------------------\r\n    # DETAILS\r\n    # ----------------------------------------------------------------\r\n    'vertical_grid': {\r\n        'description': 'Properties of vertical coordinate in ocean',\r\n        'short_name': 'Properties of vertical coordinate in ocean',\r\n        'number_of_vertical_levels', (\r\n            'int', '1.1',\r\n            'Number of vertical levs'),\r\n    },\r\n\r\n    'horizontal_grid': {\r\n        'description': 'Properties of H coordinate in ocean',\r\n        'short_name': 'Properties of H coordinate in ocean',\r\n        'is_adaptive': (\r\n            'bool', '0.1',\r\n            'Default is False. Set true if grid resolution changes during execution.'),\r\n        'number_of_horizontal_gridpoints': (\r\n            'int', '0.1',\r\n            'Total number of horizontal points on computational grid'),\r\n    },\r\n\r\n    # ----------------------------------------------------------------\r\n    # DISCRETISATION\r\n    # ----------------------------------------------------------------\r\n    'ocean_discretisation': {\r\n        'short_name': 'Type of discretisation scheme in ocean',\r\n        'description': 'Type of discretisation scheme in ocean',\r\n        'details': {\r\n            'vertical_discretisation': {\r\n                'description': 'Properties of vertical coordinate in ocean',\r\n                'short_name': 'Properties of vertical coordinate in ocean',\r\n                'coord_type', (\r\n                    'ENUM:vertical_coord_types', '1.1',\r\n                    'Types of vertical coordinates in ocean',),\r\n                'partial_steps': (\r\n                    'bool', '1.1',\r\n                    'Using partial steps with Z or Z* vertical coordinate in ocean ?'),\r\n            },\r\n            'horizontal_discretisation': {\r\n                'short_name': 'Type of horizontal discretisation scheme in ocean',\r\n                'description': 'Type of horizontal discretisation scheme in ocean',\r\n                'scheme': (\r\n                    'ENUM:horiz_scheme_types', '1.1',\r\n                    'Types of horizonal schemes in ocean',),\r\n                'ocean_pole_singularity_treatment': (\r\n                    'str', '1.1',\r\n                    'Describe how the North Pole singularity is treated (filter, pole rotation/displacement, artificial island, ...)'),\r\n            },\r\n        },                \r\n    },\r\n},\r\n\r\n# ====================================================================\r\n# ENUMERATED LISTS\r\n# ====================================================================\r\n\r\nENUMS = {\r\n    'horiz_scheme_types': {\r\n        'description': 'Types of horizonal schemes in ocean',\r\n        'members': [\r\n            ('Finite difference / Arakawa B-grid','tbd'),\r\n            ('Finite difference / Arakawa C-grid','tbd'),\r\n            ('Finite difference / Arakawa E-grid','tbd'),\r\n            ('Finite volumes', 'tbd'),\r\n            ('Finite elements', 'tbd'),\r\n            ('Other', 'tbd')\r\n        ],\r\n    },\r\n    \r\n    'vertical_coord_types': {\r\n        'description': 'Types of vertical coordinates in ocean',\r\n        'members': [\r\n            ('Z-coordinate','tbd'),\r\n            ('Z*-coordinate', 'tbd'),\r\n            ('S-coordinate', 'tbd'),\r\n            ('Isopycnic - sigma 0','Density referenced to the surface'),\r\n            ('Isopycnic - sigma 2','Density referenced to 2000 m'),\r\n            ('Isopycnic - sigma 4','Density referenced to 4000 m'),\r\n            ('Isopycnic - other','Other density-based coordinate'),\r\n            ('Hybrid / Z+S', 'tbd'),\r\n            ('Hybrid / Z+isopycnic', 'tbd'),\r\n            ('Hybrid / ALE', 'tbd'),\r\n            ('Hybrid / other', 'tbd'),\r\n            ('Pressure referenced (P)', 'tbd'),\r\n            ('P*','tbd'),\r\n            ('Z**', 'tbd'),\r\n            ('Other', 'tbd')\r\n        ],\r\n    },\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/ES-DOC/esdoc-docs/issues/comments/199701025","html_url":"https://github.com/ES-DOC/esdoc-docs/issues/119#issuecomment-199701025","issue_url":"https://api.github.com/repos/ES-DOC/esdoc-docs/issues/119","id":199701025,"user":{"login":"davidhassell","id":8126576,"avatar_url":"https://avatars.githubusercontent.com/u/8126576?v=3","gravatar_id":"","url":"https://api.github.com/users/davidhassell","html_url":"https://github.com/davidhassell","followers_url":"https://api.github.com/users/davidhassell/followers","following_url":"https://api.github.com/users/davidhassell/following{/other_user}","gists_url":"https://api.github.com/users/davidhassell/gists{/gist_id}","starred_url":"https://api.github.com/users/davidhassell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidhassell/subscriptions","organizations_url":"https://api.github.com/users/davidhassell/orgs","repos_url":"https://api.github.com/users/davidhassell/repos","events_url":"https://api.github.com/users/davidhassell/events{/privacy}","received_events_url":"https://api.github.com/users/davidhassell/received_events","type":"User","site_admin":false},"created_at":"2016-03-22T08:36:38Z","updated_at":"2016-03-22T08:36:38Z","body":"Should we drop the `ENUM:` prefix to enumeration names? It's purely an issue of signposting and readability. It is of no consequence to the tools."}}