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
-
... ... @@ -7,5 +7,68 @@ 7 7 In parallel, openMINDS tries to consider the various programming skills present in the neuroscience research community. For this reason, openMINDS established an integration pipeline which gradually increases the level of technical detail: starting from a user-friendly, lightweight schema template and ending with established, highly technical metadata schema formats (e.g., JSON-Schema). 8 8 9 9 (% style="text-align: justify;" %) 10 -Please find below a documentation of the layout and requirements needed to keep the openMINDS modularity, the openMINDS integrationpipeline, as well as the openMINDSschemaemplate.10 +Please find below a documentation of the layout and requirements needed to keep the openMINDS modularity, the syntax of the openMINDS schema template, as well as the openMINDS integration pipeline. 11 11 ))) 12 + 13 +=== Overview of the openMINDS layout === 14 + 15 +(% style="text-align: justify;" %) 16 +In summary, openMINDS is the overall umbrella for a set of distributed GitHub repositories, each defining a particular metadata model for neuroscience research products. 17 + 18 +=== The openMINDS schema template syntax === 19 + 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;" %) 51 +(//**coming soon**//) 52 + 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 + 72 +=== The openMINDS integration pipeline === 73 + 74 +(//**coming soon**//)