Changes for page Technical details

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

From version 41.1
edited by lzehl
on 2021/03/09 17:55
Change comment: There is no comment for this version
To version 40.1
edited by lzehl
on 2021/03/09 16:52
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,24 +90,70 @@
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 -===== Defining expected values =====
93 +===== Properties expecting a string value =====
94 94  
95 95  (% style="text-align: justify;" %)
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.
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:
97 97  
98 +{{code language="json"}}
99 +{
100 + "properties": {
101 + "freeStringProperty": {
102 + "type": "string"
103 + }
104 + }
105 +}
106 +{{/code}}
107 +
98 98  (% style="text-align: justify;" %)
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"##**
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:
107 107  
108 -Also very similar to JSON-Schema, additional type-specific keys can be used to set further requirements for the expected value. H
111 +{{code language="json"}}
112 +{
113 + "properties": {
114 + "emailProperty": {
115 + "type": "string",
116 + "_formats": [
117 + "email"
118 + ]
119 + }
120 + }
121 +}
122 +{{/code}}
109 109  
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:
110 110  
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 +
111 111  === The openMINDS integration pipeline ===
112 112  
113 113  (//**coming soon**//)
Public

openMINDS