-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnassa-schema.json
344 lines (344 loc) · 9.14 KB
/
nassa-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
[
{
"field": "id",
"level": 0,
"parent": "",
"description": "Module identification number. Assigned when opening a submission.",
"type": "String",
"format": "YEAR-FIRSTAUTHORSURNAME-999",
"mandatory": true
},
{
"field": "nassaVersion",
"level": 0,
"parent": "",
"description": "Latest version of the NASSA schema that applies to this module (NASSA.yml fields, directory and file structure). ",
"type": "String",
"format": "1.0.0 (semantic versioning)",
"mandatory": true
},
{
"field": "moduleType",
"level": 0,
"parent": "",
"description": "Whether a algorithm or a submodel (contain modules)",
"type": "String",
"format": "Algorithm, Submodel",
"mandatory": true
},
{
"field": "title",
"level": 0,
"parent": "",
"description": "Module name or title. It must include a useful description of module.",
"type": "String",
"format": "free text, max. 100",
"mandatory": true
},
{
"field": "moduleVersion",
"level": 0,
"parent": "",
"description": "Current version identifier. Defaults to \"1.0.0\" and should increase after every update.",
"type": "String",
"format": "1.0.0 (semantic versioning)",
"mandatory": true
},
{
"field": "contributors",
"level": 0,
"parent": "",
"description": "List of contributors to the module",
"type": "",
"format": "",
"mandatory": true
},
{
"field": "roles",
"level": 1,
"parent": "contributors",
"description": "How this author contributed to the module (specific labels, see \"format\" column)",
"type": "Array",
"format": "Author, Compiler, Contributor, Copyright Holder, Creator, Thesis Advisor, Translator (https://journal.r-project.org/archive/2012-1/RJournal_2012-1_Hornik~et~al.pdf)",
"mandatory": true
},
{
"field": "name",
"level": 1,
"parent": "contributors",
"description": "Full name of a contributor",
"type": "String",
"format": "SURNAME, NAME with no accent marks",
"mandatory": true
},
{
"field": "email",
"level": 1,
"parent": "contributors",
"description": "Stable email of a contributor",
"type": "String",
"format": "valid email",
"mandatory": true
},
{
"field": "orcid",
"level": 1,
"parent": "contributors",
"description": "ORCID number of a contributor",
"type": "String",
"format": "9999-9999-9999-9999",
"mandatory": false
},
{
"field": "license",
"level": 0,
"parent": "",
"description": "Software license for the code in this module",
"type": "String",
"format": "valid SPDX identifier (second column at https://spdx.org/licenses)",
"mandatory": false
},
{
"field": "lastUpdateDate",
"level": 0,
"parent": "",
"description": "Date of the last update submitted",
"type": "Date",
"format": "YYYY-MM-DD",
"mandatory": true
},
{
"field": "description",
"level": 0,
"parent": "",
"description": "Description of what the module does. It should expand the information already given in the name/title.",
"type": "String",
"format": "free text",
"mandatory": true
},
{
"field": "relatedModules",
"level": 0,
"parent": "",
"description": "List of modules this one is related to (similar, depending on, ...)",
"type": "Array",
"format": "a valid module id as defined above",
"mandatory": false
},
{
"field": "references",
"level": 0,
"parent": "",
"description": "Literature references",
"type": "",
"format": "",
"mandatory": false
},
{
"field": "moduleReferences",
"level": 1,
"parent": "references",
"description": "References that describe and explain the module, any of its parts, or its original use in a model. This includes public repositories holding models that include the module.",
"type": "Array",
"format": "a valid citation key from the submission BIBTEX file (.bib)",
"mandatory": false
},
{
"field": "useExampleReferences",
"level": 1,
"parent": "references",
"description": "References citing, describing, or using the module, after it has been published in the NASSA library.",
"type": "Array",
"format": "a valid citation key from the submission BIBTEX file (.bib)",
"mandatory": false
},
{
"field": "domainKeywords",
"level": 0,
"parent": "",
"description": "Domain-related keywords",
"type": "",
"format": "",
"mandatory": false
},
{
"field": "subjects",
"level": 1,
"parent": "domainKeywords",
"description": "Subject keyword(s). Example/recommendation: https://ehrafworldcultures.yale.edu/ehrafe/majorSubjects.do",
"type": "Array",
"format": "",
"mandatory": false
},
{
"field": "regions",
"level": 1,
"parent": "domainKeywords",
"description": "Region keyword(s). Example/recommendation: http://www.geonames.org/",
"type": "Array",
"format": "",
"mandatory": false
},
{
"field": "periods",
"level": 1,
"parent": "domainKeywords",
"description": "Period keyword(s). Example/recommendation: https://perio.do/en/",
"type": "Array",
"format": "",
"mandatory": false
},
{
"field": "modellingKeywords",
"level": 0,
"parent": "",
"description": "Modelling-related keyword(s). Using NASSA schema specifications.",
"type": "Array",
"format": "",
"mandatory": true
},
{
"field": "programmingKeywords",
"level": 0,
"parent": "",
"description": "Programming-related keyword(s). Using NASSA schema specifications.",
"type": "Array",
"format": "",
"mandatory": true
},
{
"field": "implementations",
"level": 0,
"parent": "",
"description": "List of implementations in different programming languages",
"type": "",
"format": "",
"mandatory": true
},
{
"field": "language",
"level": 1,
"parent": "implementations",
"description": "Programming language",
"type": "String",
"format": "Options: 'C#', 'Java', 'Julia', 'NetLogo', 'Processing', 'Python', 'R', 'Ruby'.",
"mandatory": true
},
{
"field": "softwareDependencies",
"level": 1,
"parent": "implementations",
"description": "Listing any software (libraries, packages, etc), specifying the release version, on which the module implementation relies to properly function.",
"type": "Array",
"format": "free text",
"mandatory": true
},
{
"field": "docsDir",
"level": 0,
"parent": "",
"description": "Relative path to the directory containing general module documentation.",
"type": "String",
"format": "path",
"mandatory": false
},
{
"field": "inputs",
"level": 0,
"parent": "",
"description": "List of inputs required by the module. Create entries for each of the variables that can or should be given/set externally, so that the module can work.",
"type": "",
"format": "",
"mandatory": false
},
{
"field": "name",
"level": 1,
"parent": "inputs",
"description": "Parameter/variable/file name in the module.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "type",
"level": 1,
"parent": "inputs",
"description": "Parameter/variable/file type. Use the programming language specific type.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "unit",
"level": 1,
"parent": "inputs",
"description": "Parameter/variable unit of measurement, if applicable.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "default",
"level": 1,
"parent": "inputs",
"description": "Parameter/variable default value",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "description",
"level": 1,
"parent": "inputs",
"description": "Parameter/variable/file description. Meaning, data structure, or any other relevant information for the procurement and preparation of the input.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "outputs",
"level": 0,
"parent": "",
"description": "List of outputs generated by the module. Create entries for each of the variables that are suggested as outputs. Ideally, the list should also include any module variable that can be read externally and is the product of module mechanisms (i.e., not equal to the inputs).",
"type": "",
"format": "",
"mandatory": false
},
{
"field": "name",
"level": 1,
"parent": "outputs",
"description": "Variable/object name in the module.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "type",
"level": 1,
"parent": "outputs",
"description": "Variable/object type. Use the programming language specific type.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "unit",
"level": 1,
"parent": "outputs",
"description": "Variable/object unit of measurement, if applicable.",
"type": "String",
"format": "free text",
"mandatory": false
},
{
"field": "description",
"level": 1,
"parent": "outputs",
"description": "Variable/object description. Meaning, data structure, or any other relevant information for data analysis and interpretation or the use of the output as input in another module.",
"type": "String",
"format": "free text",
"mandatory": false
}
]