Changes for page Technical details
Last modified by lzehl on 2021/07/05 18:57
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -111,42 +111,20 @@ 111 111 === The openMINDS schema template syntax === 112 112 113 113 (% style="text-align: justify;" %) 114 -All openMINDS metadata models are definedusinga light-weighted schema template syntax.Althoughthis schematemplatesyntaxisinspiredbyJSON-Schema, itoutsourcesmost schematechnicalitiesto behandled intheopenMINDS integrationpipeline, making theopenMINDSschemas more human-readable, especially for untrained eyes.114 +All openMINDS metadata models use a light-weighted schema template syntax for defining the expected metadata. The correspondingly formatted schema files use the extension: **##.schema.tpl.json##**. 115 115 116 116 (% style="text-align: justify;" %) 117 - The fewremaining customizedtechnicalpropertieswhichneed additionalinterpretationortranslationtoaformalschemalanguages(e.g. JSON-Schema)have anunderscoreasprefix(e.g.,**##"_type"##**).Within the openMINDS integration pipeline (cf. below), theschema template syntax is interpreted,extendedand flexibly translated to various formalschemalanguages.Allfurther specificationsof theopenMINDSschematemplate syntax are described below.117 +Although, as the file extension suggests, this openMINDS schema template syntax is inspired by JSON-Schema, it facilitates or even excludes technical aspects that are generally expected for the openMINDS schemas making them more human-readable, especially for untrained eyes. Behind the scenes, within the openMINDS integration pipeline (cf. below), this schema template syntax is then interpreted and flexibly translated to various formal metadata formats (e.g., JSON-Schema). 118 118 119 119 (% style="text-align: justify;" %) 120 - All openMINDSschemasneedto have the extension**##.schema.tpl.json##**andeachschema isdefinedasanestedassociative array(dictionary)withthefollowing conceptual structure:120 +Despite the simplification in comparison to JSON-Schema, the openMINDS schema templates are also, at the core, specially formatted JSON files using a particular syntax, meaning special key-value pairs that define the validation rules of a schema. 121 121 122 -{{code language="json"}} 123 -{ 124 - "_type": "https://openminds.ebrains.eu/LABEL_OF_METADATA_MODEL/SCHEMA_NAME", 125 - "properties": { 126 - "PROPERTY_NAME": { 127 - "type": "DATA_TYPE", 128 - "_instruction": "METADATA_ENTRY_INSTRUCTION" 129 - }, 130 - "required": [ 131 - "PROPERTY_NAME" 132 - ] 133 -} 134 -{{/code}} 135 - 136 136 (% style="text-align: justify;" %) 137 - **##"_type"##** definestheschema type (or namespace)withthedepicted naming convention,where the labelof therespectiveopenMINDSmetadata model (e.g., **##"core"##**) and theschemaname (format: UpperCamelCase;e.g. **##"Person"##**) haveto be specified.Obviously,theschemanameshould bemeaningfulandprovidesomeinsidesinto what metadatacontenttheschema covers.123 +Please find in the following a full documentation of the openMINDS schema template syntax and how it's key-value pairs need to be defined and interpreted. 138 138 139 139 (% style="text-align: justify;" %) 140 - Under**##"properties"##** a nested associative array is defined, where each key defines the property name (format: lowerCamelCase; e.g. **##"givenName"##**). The correspondingvalue isagain a nested associative array defining the expected data **##"type"##** (cf. below) and the**##"_instructions"##** for entering the correct metadata for the respective property.126 +(//**coming soon**//) 141 141 142 -(% style="text-align: justify;" %) 143 -Under **##"required"##** a list of property names can be provided that are obligatory to be present in a correctly instantiated metadata instance of the respective schema. If none of the properties are required, this key-value pair does not have to be specified. 144 - 145 -(% style="text-align: justify;" %) 146 -Now, depending on the expected data type additional constraints can be made for the metadata entry of a respective property. Currently, the openMINDS schema template syntax supports the following data types: **##"string"##**, ##**"integer"##**, **##"float"##**, **##"boolean"##**, **##"array"##** and **##"object"##**. 147 - 148 148 === The openMINDS integration pipeline === 149 149 150 -(//**coming soon**//) If you'd like to learn more about the openMINDS integration pipeline, especially if you'd like to contribute to it, please get in touch with us (the openMINDS development team) via the issues on the openMINDS or openMINDS_generator GitHub or the support email: openminds@ebrains.eu 151 - 152 -{{putFootnotes/}} 130 +(//**coming soon**//)