Welcome to the Open Fibre Data Standard 0.1.0-beta release.
We want to hear your feedback on the standard and its documentation. For general feedback, questions and suggestions, you can comment on an existing [discussion](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/discussions) or start a new one. For bug reports or feedback on specific elements of the data model and documentation, you can comment on the issues linked in the documentation or you can [create a new issue](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/new/choose).
To comment on or create discussions and issues, you need to [sign up for a free GitHub account](https://github.com/signup). If you prefer to provide feedback privately, you can email [info@opentelecomdata.net](mailto:info@opentelecomdata.net).
The schema provides the authoritative definition of the structure of Open Fibre Data Standard (OFDS) data, the meaning of each field, and the rules that must be followed to publish OFDS data. It is used to validate the structure and format of OFDS data.
For this version of OFDS, the canonical URL of the schema is https://raw.githubusercontent.com/Open-Telecoms-Data/open-fibre-data-standard/0__1__0__beta/schema/network-schema.json. Use the canonical URL to make sure that your software, documentation or other resources refer to the specific version of the schema with which they were tested.
This page presents the schema in an interactive browser and in reference tables with additional information in paragraphs. You can also download the canonical version of the schema as JSON Schema or download it as a CSV spreadsheet.
If any conflicts are found between the text on this page and the text within the schema, the text within the schema takes precedence.
Click on schema elements to expand the tree, or use the '+' icon to expand all elements. Use { } to view the underlying schema for any section. Required fields are indicated in bold.
<script src="../_static/docson/widget.js" data-schema="../network-schema.json"></script>This section presents each field in the schema in tables with additional information in paragraphs. Required fields are indicated in the Required column. For fields that reference components, a link is provided to a table with details of the component.
This section describes the overall structure of the OFDS schema. The top-level object in OFDS data is a Network
. A network has the following sections:
In addition to the above sections, there are several top-level metadata fields:
::::{tab-set}
:::{tab-item} Schema
:collapse: nodes,spans,phases,organisations,contracts,publisher,crs,links
:::
:::{tab-item} Example
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0
:title: Example
:::
::::
The nodes section contains information on the nodes in the network.
For information on the fields that can be provided for each node, see Node.
The spans section contains information on the spans in the network.
For information on the fields that can be provided for each span, see Span.
The phases section contains information on the phases in which nodes and spans are deployed.
For information on the fields that can be provided for each phase, see Phase.
Each organisation referenced in a network must be included in the organisations section.
For information on the fields that can be provided for each organisation, see Organisation.
The contracts section contains information on contracts relating to the network.
For information on the fields that can be provided for each contract, see Contract.
This section lists each component in the OFDS schema. Some components are reused in multiple places in the schema. For information on how the components fit together, see the structure section or the schema browser.
The following issues relate to this component or its fields:
* `Node`, `.accessPoint`: [#60 Node definition (access points)](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/60)
* `.location`: [#10 Coordinates modelling (add support for WKT to Flatten Tool)](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/10)
* `.internationalConnections`: [#72 International connections](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/72)
* `.physicalInfrastructureProvider`, `.networkProvider`: [#47 Link ownership and operation (physical infrastructure provider and network provider)](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47)
Node
is defined as:
:jsonpointer: /definitions/Node/description
This component is referenced by the following properties:
Each Node
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Node
:collapse: id,name,phase,status,location,address,type,accessPoint,internationalConnections,power,technologies,physicalInfrastructureProvider,networkProvider
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes
:title: nodes
:::
::::
The following issues relate to this component or its fields:
* `Span`: [#83 Consider renaming links to spans](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/83)
* `.start`, `.end`: [#25 Link endpoints](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/25)
* `.route`: [#12 Geometry types for link routes](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/12)
* `.route`: [#10 Coordinates modelling (add support for WKT to Flatten Tool)](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/10)
* `.physicalInfrastructureProvider`, `.networkProvider`: [#47 Link ownership and operation (physical infrastructure provider and network provider)](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47)
* `.supplier`: [#87 Clarify semantics around link supplier](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/87)
* `.deployment`, `.deploymentDetails`: [#26 Link deployment](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/26)
* `.capacityDetails`: [#24 Link capacity](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/24)
Span
is defined as:
:jsonpointer: /definitions/Span/description
This component is referenced by the following properties:
Each Span
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Span
:collapse: id,name,phase,status,readyForServiceDate,start,end,directed,route,physicalInfrastructureProvider,networkProvider,supplier,transmissionMedium,deployment,deploymentDetails,darkFibre,fibreType,fibreTypeDetails,fibreCount,fibreLength,technologies,capacity,capacityDetails,countries
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans
:title: spans
:::
::::
Phase
is defined as:
:jsonpointer: /definitions/Phase/description
This component is referenced by the following properties:
Each Phase
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Phase
:collapse: id,name,description,funders
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/phases
:title: phases
:::
::::
The following issues relate to this component or its fields:
* `.roleDetails`: [#47 Link ownership and operation (physical infrastructure provider and network provider)](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47)
Organisation
is defined as:
:jsonpointer: /definitions/Organisation/description
This component is referenced by the following properties:
Each Organisation
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Organisation
:collapse: id,name,identifier,country,roles,roleDetails,website,logo
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/organisations
:title: organisations
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/publisher
:title: publisher
:::
::::
The following issues relate to this component or its fields:
* `Contract`: [#71 Contracts](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/71)
Contract
is defined as:
:jsonpointer: /definitions/Contract/description
This component is referenced by the following properties:
Each Contract
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Contract
:collapse: id,title,description,type,value,dateSigned,documents,relatedPhases
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/contracts
:title: contracts
:::
::::
Geometry
is defined as:
:jsonpointer: /definitions/Geometry/description
This component is referenced by the following properties:
Each Geometry
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Geometry
:collapse: type,coordinates
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes/0/location
:title: nodes/0/location
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/route
:title: spans/0/route
:::
::::
OrganisationReference
is defined as:
:jsonpointer: /definitions/OrganisationReference/description
This component is referenced by the following properties:
Node/physicalInfrastructureProvider
Node/networkProvider
Span/physicalInfrastructureProvider
Span/networkProvider
Span/supplier
Phase/funders
Each OrganisationReference
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/OrganisationReference
:collapse: id,name
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes/0/physicalInfrastructureProvider
:title: nodes/0/physicalInfrastructureProvider
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes/0/networkProvider
:title: nodes/0/networkProvider
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/physicalInfrastructureProvider
:title: spans/0/physicalInfrastructureProvider
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/networkProvider
:title: spans/0/networkProvider
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/supplier
:title: spans/0/supplier
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/phases/0/funders
:title: phases/0/funders
:::
::::
PhaseReference
is defined as:
:jsonpointer: /definitions/PhaseReference/description
This component is referenced by the following properties:
Each PhaseReference
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/PhaseReference
:collapse: id,name
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes/0/phase
:title: nodes/0/phase
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/phase
:title: spans/0/phase
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/contracts/0/relatedPhases
:title: contracts/0/relatedPhases
:::
::::
Address
is defined as:
:jsonpointer: /definitions/Address/description
This component is referenced by the following properties:
Each Address
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Address
:collapse: streetAddress,locality,region,postalCode,country
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes/0/address
:title: nodes/0/address
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/nodes/0/internationalConnections
:title: nodes/0/internationalConnections
:::
::::
Value
is defined as:
:jsonpointer: /definitions/Value/description
This component is referenced by the following properties:
Each Value
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Value
:collapse: amount,currency
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/contracts/0/value
:title: contracts/0/value
:::
::::
Document
is defined as:
:jsonpointer: /definitions/Document/description
This component is referenced by the following properties:
Each Document
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Document
:collapse: title,description,url,format
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/contracts/0/documents
:title: contracts/0/documents
:::
::::
Identifier
is defined as:
:jsonpointer: /definitions/Identifier/description
This component is referenced by the following properties:
Each Identifier
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Identifier
:collapse: id,scheme,legalName,uri
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/organisations/0/identifier
:title: organisations/0/identifier
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/publisher/identifier
:title: publisher/identifier
:::
::::
Coordinates in all OFDS data must be specified in the coordinate reference system required by GeoJSON:
The coordinate reference system for all GeoJSON coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84) [WGS84] datum, with longitude and latitude units of decimal degrees. This is equivalent to the coordinate reference system identified by the Open Geospatial Consortium (OGC) URN urn:ogc:def:crs:OGC::CRS84.
The CoordinateReferenceSystem
object references the CRS by name
and uri
. Its properties must be set to the following values:
name
: urn:ogc:def:crs:OGC::CRS84uri
: http://www.opengis.net/def/crs/OGC/1.3/CRS84
urn:ogc:def:crs:OGC::CRS84
denotes WGS84 with the order longitude, latitude. It is equivalent to EPSG:4326 with reversed axes.
For more information, see How to transform coordinates to the correct coordinate reference system.
The following issues relate to this component or its fields:
* `CoordinateReferenceSystem`: [#9 Coordinate reference system](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/9)
CoordinateReferenceSystem
is defined as:
:jsonpointer: /definitions/CoordinateReferenceSystem/description
This component is referenced by the following properties:
Each CoordinateReferenceSystem
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/CoordinateReferenceSystem
:collapse: name,uri
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/crs
:title: crs
:::
::::
The following issues relate to this component or its fields:
* `Link`: [#83 Consider renaming links to spans](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/83)
* `Link`: [#75 Paginating and streaming nodes and links](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/75)
Link
is defined as:
:jsonpointer: /definitions/Link/description
This component is referenced by the following properties:
Each Link
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/Link
:collapse: href,rel
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/links
:title: links
:::
::::
FibreTypeDetails
is defined as:
:jsonpointer: /definitions/FibreTypeDetails/description
This component is referenced by the following properties:
Each FibreTypeDetails
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/FibreTypeDetails
:collapse: fibreSubtype,description
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/fibreTypeDetails
:title: spans/0/fibreTypeDetails
:::
::::
The following issues relate to this component or its fields:
* `DeploymentDetails`: [#26 Link deployment](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/26)
DeploymentDetails
is defined as:
:jsonpointer: /definitions/DeploymentDetails/description
This component is referenced by the following properties:
Each DeploymentDetails
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/DeploymentDetails
:collapse: description
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/deploymentDetails
:title: spans/0/deploymentDetails
:::
::::
The following issues relate to this component or its fields:
* `CapacityDetails`: [#24 Link capacity](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/24)
CapacityDetails
is defined as:
:jsonpointer: /definitions/CapacityDetails/description
This component is referenced by the following properties:
Each CapacityDetails
has the following fields:
::::{tab-set}
:::{tab-item} Schema
:pointer: /definitions/CapacityDetails
:collapse: description
:::
:::{tab-item} Examples
.. jsoninclude:: ../../examples/json/network-package.json
:jsonpointer: /networks/0/spans/0/capacityDetails
:title: spans/0/capacityDetails
:::
::::