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
-
... ... @@ -12,12 +12,63 @@ 12 12 13 13 === Overview of the openMINDS layout === 14 14 15 +(% style="text-align: justify;" %) 15 15 In summary, openMINDS is the overall umbrella for a set of distributed GitHub repositories, each defining a particular metadata model for neuroscience research products. 16 16 17 17 === The openMINDS schema template syntax === 18 18 20 +(% style="text-align: justify;" %) 21 +All openMINDS metadata models use a light-weighted schema template syntax for defining the metadata. The correspondingly formatted schema files use the extension: **##.schema.tpl.json##**. 22 + 23 +(% style="text-align: justify;" %) 24 +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 it more human-readable, especially for untrained eyes. 25 + 26 +(% style="text-align: justify;" %) 27 +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). Please find in the following a full documentation of the openMINDS schema template syntax and how it needs to be interpreted. 28 + 29 +(% style="text-align: justify;" %) 30 +===== Target & context templates ===== 31 + 32 +(% style="text-align: justify;" %) 33 +All openMINDS schemas have to have a **##"_type"##** to be recognized as target templates. In other words, the **##"_type"##** is used to define the openMINDS namespace of a corresponding schema using the following naming convention: 34 + 35 +(% style="text-align: center;" %) 36 +**##"_type": "https:~/~/openminds.ebrains.eu/<<schema-model>>/<<schema-name>>"##**, 37 + 38 +(% style="text-align: justify;" %) 39 +where **##<<schema-model>>##** has to be replaced with the label of the openMINDS metadata model the corresponding schema belongs to and **##<<schema-name>>##** exchanged with the label of that schema. 40 + 41 +(% style="text-align: justify;" %) 42 +If an openMINDS schema template file //DOES NOT// define a **##"_type"##**, it is interpreted as a context template which requires an extension to become a target template. 43 + 44 +(% style="text-align: justify;" %) 45 +Context templates are and should be used when multiple openMINDS schemas (target templates) have the same subset of properties. This common subset of properties can then be defined within a single context schema instead of each target template which facilitates the long-term maintenance of these properties. 46 + 47 +(% style="text-align: justify;" %) 48 +===== String properties ===== 49 + 50 +(% style="text-align: justify;" %) 19 19 (//**coming soon**//) 20 20 53 +(% style="text-align: justify;" %) 54 +===== Numerical properties ===== 55 + 56 +(% style="text-align: justify;" %) 57 +(//**coming soon**//) 58 + 59 +(% style="text-align: justify;" %) 60 +===== Object properties ===== 61 + 62 +(% style="text-align: justify;" %) 63 +(//**coming soon**//) 64 + 65 +(% style="text-align: justify;" %) 66 +===== Property arrays ===== 67 + 68 +(% style="text-align: justify;" %) 69 +(//**coming soon**//) 70 + 71 + 21 21 === The openMINDS integration pipeline === 22 22 23 23 (//**coming soon**//)