Changes for page Technical details

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

From version 40.1
edited by lzehl
on 2021/03/09 16:52
Change comment: There is no comment for this version
To version 41.1
edited by lzehl
on 2021/03/09 17:55
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -38,13 +38,13 @@
38 38  {{code language="json"}}
39 39  {
40 40   "properties": {
41 - "propertyNameA": {},
42 - "propertyNameB": {},
43 - "propertyNameC": {}
41 + "propertyNameA": {},
42 + "propertyNameB": {},
43 + "propertyNameC": {}
44 44   },
45 45   "required": [
46 - "propertyNameA",
47 - "propertyNameC"
46 + "propertyNameA",
47 + "propertyNameC"
48 48   ]
49 49  }
50 50  {{/code}}
... ... @@ -73,8 +73,8 @@
73 73  
74 74  {{code language="json"}}
75 75  {
76 - "_type": "https:~/~/openminds.ebrains.eu/core/Dataset",
77 - "_extends": "products/researchProduct.schema.tpl.json"
76 + "_type": "https:~/~/openminds.ebrains.eu/core/Dataset",
77 + "_extends": "products/researchProduct.schema.tpl.json"
78 78  }
79 79  {{/code}}
80 80  
... ... @@ -90,70 +90,24 @@
90 90  How to define the expected value of a property will be explained for the different property types in the following sections.
91 91  
92 92  (% style="text-align: justify;" %)
93 -===== Properties expecting a string value =====
93 +===== Defining expected values =====
94 94  
95 95  (% style="text-align: justify;" %)
96 -Properties that expect values of type string can be defined in large parts in the same way as in JSON-Schema. Without any further formatting requirements the definition of such a property looks like this:
96 +The expected value of a property can be defined in large parts in the same way as in JSON-Schema, with some openMINDS syntax specific simplifications and modifications.
97 97  
98 -{{code language="json"}}
99 -{
100 - "properties": {
101 - "freeStringProperty": {
102 - "type": "string"
103 - }
104 - }
105 -}
106 -{{/code}}
107 -
108 108  (% style="text-align: justify;" %)
109 -In accordance with JSON-Schema, it is possible, though, to further define a selected list of built-in formats that are accepted for the expected string. Supported are all [[built-in formats of JSON-Schema Draft 7.0>>https://json-schema.org/understanding-json-schema/reference/string.html#built-in-formats||rel="noopener noreferrer" target="_blank"]]. Assuming that my string property only accepts a value of format "email", the openMINDS syntax is the following:
99 +On the first level, the **##"type"##** of the expected property value needs to be defined. In principle, the openMINDS template syntax supports the same value types as JSON-Schema Draft 7.0, meaning:
100 ++ **##"string"##**
101 ++ **##"number"##**
102 ++ **##"integer"##**
103 ++ **##"array"##**
104 ++ **##"boolean"##**
105 ++ **##"null"##**
106 ++ **##"object"##**
110 110  
111 -{{code language="json"}}
112 -{
113 - "properties": {
114 - "emailProperty": {
115 - "type": "string",
116 - "_formats": [
117 - "email"
118 - ]
119 - }
120 - }
121 -}
122 -{{/code}}
108 +Also very similar to JSON-Schema, additional type-specific keys can be used to set further requirements for the expected value. H
123 123  
124 -(% style="text-align: justify;" %)
125 -Also like JSON-Schema, it is possible to define a customized regular expression pattern for the expected string, supporting the [[ECMA-262 regex-dialect>>https://www.ecma-international.org/publications-and-standards/standards/ecma-262/]]. Assuming that my string property only accepts a Gregorian calendar year, the corresponding openMINDS syntax look like this:
126 126  
127 -{{code language="json"}}
128 -{
129 - "properties": {
130 - "yearProperty": {
131 - "type": "string",
132 - "pattern": "([0-9]{4})"
133 - }
134 - }
135 -}
136 -{{/code}}
137 -
138 -(% style="text-align: justify;" %)
139 -===== Properties expecting a numerical value =====
140 -
141 -(% style="text-align: justify;" %)
142 -(//**coming soon**//)
143 -
144 -(% style="text-align: justify;" %)
145 -===== Properties expecting another object =====
146 -
147 -(% style="text-align: justify;" %)
148 -(//**coming soon**//)
149 -
150 -(% style="text-align: justify;" %)
151 -===== Properties expecting an array of values =====
152 -
153 -(% style="text-align: justify;" %)
154 -(//**coming soon**//)
155 -
156 -
157 157  === The openMINDS integration pipeline ===
158 158  
159 159  (//**coming soon**//)
Public

openMINDS