dc14526Shared challenge tools: schema, validation, metrics, reference selection, comparison site; moved out of the string repositoryJeremy Magland 1{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "$id": "https://vault1.magland.org/challenges/string/schema/solution.schema.json",
4 "title": "Challenge solution submission",
5 "description": "One submission file: a set of solutions to one challenge from one submitter, with an optional accuracy partial order among them.",
6 "type": "object",
7 "required": [
8 "schema_version",
9 "submission_id",
10 "challenge_id",
11 "submitter",
12 "solutions"
13 ],
14 "additionalProperties": false,
15 "properties": {
16 "schema_version": {
17 "const": 1
18 },
19 "submission_id": {
20 "type": "string",
21 "pattern": "^[a-z0-9][a-z0-9-]*$",
22 "description": "Identifier of this submission. Must equal the file name without .json."
23 },
24 "challenge_id": {
25 "type": "string",
26 "pattern": "^[a-z0-9][a-z0-9-]*$",
27 "description": "The challenge this submission solves. Must equal the name of the directory containing the file."
28 },
29 "submitter": {
30 "type": "object",
31 "required": [
32 "name"
33 ],
34 "additionalProperties": false,
35 "properties": {
36 "name": {
37 "type": "string"
38 },
39 "email": {
40 "type": "string"
41 },
42 "url": {
43 "type": "string",
44 "format": "uri"
45 }
46 }
47 },
48 "date": {
49 "type": "string",
50 "format": "date"
51 },
52 "description": {
53 "type": "string"
54 },
55 "code_url": {
56 "type": "string",
57 "format": "uri",
58 "description": "Source code for the method, applying to every solution unless overridden."
59 },
60 "viz_url": {
61 "type": "string",
62 "format": "uri",
63 "description": "A web application visualizing the solutions."
64 },
65 "solutions": {
66 "type": "array",
67 "minItems": 1,
68 "items": {
69 "type": "object",
70 "required": [
71 "solution_id",
72 "output"
73 ],
74 "additionalProperties": false,
75 "properties": {
76 "solution_id": {
77 "type": "string",
78 "pattern": "^[a-z0-9][a-z0-9-]*$",
79 "description": "Unique within the submission."
80 },
81 "output": {
82 "type": "string",
83 "description": "Path to the wav file relative to the directory containing this JSON file, or an http(s) URL."
84 },
85 "method": {
86 "type": "string",
87 "description": "Short name of the numerical method."
88 },
89 "parameters": {
90 "type": "object",
91 "description": "Discretization parameters, free form."
92 },
93 "timing_seconds": {
94 "type": "number",
95 "minimum": 0,
96 "description": "Self-reported wall-clock time to produce the output, excluding file I/O."
97 },
98 "hardware": {
99 "type": "string"
100 },
101 "code_url": {
102 "type": "string",
103 "format": "uri"
104 },
105 "viz_url": {
106 "type": "string",
107 "format": "uri"
108 },
109 "more_accurate_than": {
110 "type": "array",
111 "items": {
112 "type": "string"
113 },
114 "description": "solution_ids in this same file that the submitter asserts are less accurate than this one."
115 },
116 "notes": {
117 "type": "string"
118 },
119 "fields": {
120 "type": "object",
121 "required": [
122 "path"
123 ],
124 "additionalProperties": false,
125 "description": "Optional export of the solution field on the grid recommended by the challenge, for visualization. Not scored.",
126 "properties": {
127 "path": {
128 "type": "string",
129 "description": "Path relative to the directory containing this JSON file, or an http(s) URL."
130 },
131 "format": {
132 "const": "hdf5"
133 },
134 "description": {
135 "type": "string"
136 }
137 }
138 }
139 }
140 }
141 }
142 }
143}