.. include:: .. _openepda_updk_format_v0_2: ========================================== openEPDA uPDK |trade| Blocks - Version 0.2 ========================================== This page contains specification for the uPDK |trade| block description standard. For general information about uPDK including the licensing terms, see :ref:`pdk_components`. General format info =================== The standard building block schema is defined in a json/yaml compatible style as these are: - very commonly used/standard formats - open and accessible to everybody - human readable - hierarchical - label based Any logical yaml features like linking are omitted to keep the schemas as generic and format independent as possible. We omit the brackets of a json style format for readability. Note that it is straightforward to read this schema as yaml and convert it between yaml, json and/or xml as you see a need for it. Here we convert it to html tables as well for documentation purposes. SBB schema example ================== Before discussing a more formal SBB definition, we first show an example of two blocks in the SBB schema, i.e. a MMI power coupler *mmi* and an optical amplifier *soa*. They are grouped under the *blocks* label. Licensing and background information is organized under the *header* label. .. include:: sbb_example.rst SBB schema description ====================== The standard building block schema description in table form is printed below. Alternatively, download the SBB schema description below in :download:`csv ` format. More information on the label <...> notation is found below the table. The columns have the following meaning: - **label**: shows the label hierarchy by indentation (or by number in csv). - **type**: the datatype of each label. A datatype is *int*, *float*, *str*, *object*, or *subschema*. See the SSB metadata schema for more detail. - **required**: A bullet value indicates that a label must be present in the SBB to have a minimum set of data to describe the block. If not present the default value must be assumed. If there is no default the schema is incomplete. - **documentation**: describes the purpose of the label - **default**: default value where applicable. If a value is missing the default must be assumed. - **allowed_values**: list of allowed values, if applicable - **example**: example data Defined top labels are - **header**: license and background information on the schema - **blocks**: standard black blocks (SBB) - **subschemas**: subschemas that may be called from other parts of the schema. Note that a subschema may contain another subschema as long as there are no circular references. .. include:: openEPDA_uPDK_SBB_v0.2.yaml.rst