@@ -5,25 +5,24 @@ layout: default
55parent : Schema & Glossary
66---
77
8- WORK IN PROGRESS - NOT READY
9-
108# Workbench
119
1210A workbench consists of the concrete components implemented from the abstract components of the toolbox.
1311
12+ A workbench contains the following:
13+ - ** Processors** : The implementations of blocks
14+ - ** Wires** : The implementations of spaces which are passed from one processor terminal to another processor port
15+ - ** Systems** : The definitions of wires and processors that form unique systems
1416
1517## Schema
1618
1719The top level schema of a workbench is:
1820
19- ``` json
20- {
21- "ID" : " string (required)" ,
22- "Parent" : " block_id (required)" ,
23- "Name" : " string (required)" ,
24- "Description" : " string (optional)" ,
25- "Ports" : " array[Space] (must match parent block Domain)" ,
26- "Terminals" : " array[Space] (must match parent block Codomain)"
21+ ```
22+ object {
23+ Processors: array[Processor] (required)
24+ Wires: array[Wire] (required)
25+ Systems: array[System] (required)
2726}
2827```
2928
@@ -32,39 +31,46 @@ And the children schemas are as follows below.
3231### Processor Schema
3332
3433
35- ``` json
36- {
37- "ID" : " string (required)" ,
38- "Parent" : " block_id (required)" ,
39- "Name" : " string (required)" ,
40- "Description" : " string (optional)" ,
41- "Ports" : " array[Space] (must match parent block Domain)" ,
42- "Terminals" : " array[Space] (must match parent block Codomain)"
43- }
34+ ```
35+ object {
36+ ID: string (required)
37+ Name: string (required)
38+ Description: string
39+ Parent: string (required)
40+ Ports: array[string]
41+ Terminals: array[string] (required)
42+ Subsystem: object {
43+ System ID: string (required)
44+ Wires: array[string] (required)
45+ }
46+ }
4447```
4548
4649### Wire Schema
4750
48- ``` json
49- {
50- "ID" : " string (required)" ,
51- "Parent" : " space_id (required)" ,
52- "Name" : " string (optional)" ,
53- "Description" : " string (optional)" ,
54- "Source" : " tuple(processor_id, int) (must be valid terminal)" ,
55- "Destination" : " tuple(processor_id, int) (must be valid port)"
56- }
51+ ```
52+ object {
53+ ID: string (required)
54+ Parent: string (required)
55+ Source: object {
56+ Processor: string
57+ Index: integer
58+ }
59+ Target: object {
60+ Processor: string
61+ Index: integer
62+ }
63+ }
5764```
5865
5966### System Schema
6067
61- ``` json
62- {
63- "ID" : " string (required)" ,
64- "Parent" : " space_id (required)" ,
65- "Name" : " string (optional)" ,
66- "Description" : " string (optional)" ,
67- "Source" : " tuple(processor_id, int) (must be valid terminal)" ,
68- "Destination" : " tuple(processor_id, int) (must be valid port)"
69- }
68+ ```
69+ object {
70+ ID: string (required)
71+ Name: string (required)
72+ Description: string
73+ Processors: array[string] (required)
74+ Wires: array[string] (required)
75+ }
7076```
0 commit comments