Changes for page Technical details

Last modified by lzehl on 2021/07/05 18:57

From version 5.1
edited by lzehl
on 2021/02/22 19:48
Change comment: There is no comment for this version
To version 16.1
edited by lzehl
on 2021/03/08 20:14
Change comment: There is no comment for this version

Summary

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 integration pipeline, as well as the openMINDS schema template.
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**//)
Public

openMINDS