Schema reference
0.3.0 release
Welcome to the Open Fibre Data Standard 0.3.0 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 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 in the issue tracker or you can create a new issue.
To comment on or create discussions and issues, you need to sign up for a free GitHub account. If you prefer to provide feedback privately, you can email 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__3__0/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.
Note
If any conflicts are found between the text on this page and the text within the schema, the text within the schema takes precedence.
Browser
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.
Reference tables
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.
Structure
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:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
uuid |
Required |
|
Identifier |
A universally unique identifier for this network, as defined by RFC 4122. For more information, see the identifier reference. |
|||
name |
string |
|||
Network name |
A name for this network. |
|||
nodes |
array[Node] |
|||
Nodes |
Information about the nodes that belong to this network. Information about nodes should be embedded in this field unless:
For more information, see how to format data for publication. See Node |
|||
spans |
array[Span] |
|||
Spans |
Information about the spans that belong to this network. Information about spans should be embedded in this field unless:
For more information, see how to format data for publication. See Span |
|||
phases |
array[Phase] |
|||
Phases |
Information about the phases in which this network is deployed. See Phase |
|||
organisations |
array[Organisation] |
|||
Organisations |
Information about the organisations involved in this network. Organisation references elsewhere in the schema are used to refer back to this entries in this list. See Organisation |
|||
contracts |
array[Contract] |
|||
Contracts |
Information about contracts related to this network. See Contract |
|||
website |
string |
iri |
||
Website |
The URL of the website for this network. |
|||
publisher |
object |
|||
Publisher |
The publisher of this network. |
|||
publisher/name |
string |
|||
Name |
A name for this organisation. |
|||
publisher/identifier |
object |
|||
Organisation identifier |
An identifier for this organisation. See Identifier |
|||
publisher/identifier/id |
string |
|||
Identifier |
The identifier assigned to the organisation in the register identified in |
|||
publisher/identifier/scheme |
string |
|||
Scheme |
The register from which the identifier in |
|||
publisher/identifier/legalName |
string |
|||
Legal name |
The legally registered name of the organisation |
|||
publisher/identifier/uri |
string |
iri |
||
URI |
A canonical URI for this identifier, such as those provided by Open Corporates. Do not use this field to provide the website of the organisation: instead, use |
|||
publicationDate |
string |
date |
||
Publication date |
The date when this network was published. |
|||
collectionDate |
string |
date |
||
Collection date |
The date when the location data was collected. If a dataset was produced by digitising a map, the date that the data for the map was collected. |
|||
crs |
object |
|||
Coordinate reference system |
The coordinate reference system used in this network. If this network includes any coordinate data (in |
|||
accuracy |
number |
|||
Accuracy |
The horizontal uncertainty, in metres, of the coordinates in this dataset relative to the datum of the coordinate reference system specified in |
|||
accuracyDetails |
string |
|||
Accuracy details |
Further details about the accuracy specified in |
|||
language |
string |
|||
Language |
The default language of this network,from the open language codelist. A BCP47 language tag is allowed, if there is a user need for the additional information. |
|||
links |
array[Link] |
Required |
||
Links |
Links to related resources. The first item in the links array must be a link to the canonical JSON schema that describes the structure of the data. Links to API endpoints for nodes and spans should be provided when a network is too large to return in a single API response and links to bulk files should be provided when a network is too large to load into memory, for more information, see how to publish large networks. See Link |
Nodes
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.
Spans
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.
Phases
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.
Organisations
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.
Contracts
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.
Components
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.
Node
Node
is defined as:
A point within a network. A node may be an access point or may reflect a geographic point at which a span splits, aggregates or crosses a border. Nodes can allow for interconnections to other networks or connections to end users.
This component is referenced by the following properties:
Each Node
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Identifier |
An identifier for this node. The identifier must be unique within the scope of the |
|||
name |
string |
|||
Node name |
A name for this node. |
|||
phase |
object |
|||
Phase |
The phase to which this node belongs. See PhaseReference |
|||
status |
string |
|||
Status |
The status of this node, from the closed nodeStatus codelist. |
|||
location |
object |
|||
Node location |
In the JSON publication format, a GeoJSON Point geometry describing the physical location of this node. In the CSV publication format, a well-known text POINT geometry. See Geometry |
|||
address |
object |
|||
Node address |
The physical address of this node. See Address |
|||
type |
array[[string]] |
|||
Node type |
The type of this node, from the open nodeType codelist. For nodes with multiple network providers, the union of the node types for each provider. |
|||
accessPoint |
boolean |
|||
Access point |
Whether active or passive transmission equipment is installed at this node which is capable of providing access to the network. |
|||
internationalConnections |
array[Address] |
|||
International connections |
The international connections available at this node. For all connections, See Address |
|||
power |
boolean |
|||
Power availability |
Whether power for active network equipment is available at this node. |
|||
technologies |
array[[string]] |
|||
Technologies |
The active technologies used at this node, from the open nodeTechnologies codelist. For nodes with multiple network providers, the union of the active technologies used by each provider. |
|||
physicalInfrastructureProvider |
object |
|||
Physical infrastructure provider |
The organisation that owns the passive network infrastructure for this node, i.e. the non-electrical elements, such as dark fibre, ducts and physical sites. |
|||
networkProviders |
array[Organisation reference] |
|||
Network providers |
The organisations that operate the active network infrastructure for this node, i.e. the electrical elements, such as optical transceivers, switches and routers. In open business models, network providers provide wholesale access to service providers such as retail internet service providers. Network providers can own or lease the active network infrastructure. |
Span
Span
is defined as:
A physical connection between two nodes.
This component is referenced by the following properties:
Each Span
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Identifier |
An identifier for this span. The identifier must be unique within the scope of the |
|||
name |
string |
|||
Span name |
A name for this span. |
|||
phase |
object |
|||
Phase |
The phase to which this span belongs. See PhaseReference |
|||
status |
string |
|||
Span status |
The status of the network infrastructure for this span, from the closed spanStatus codelist. |
|||
readyForServiceDate |
string |
date |
||
Ready for service date |
The date this span was ready to carry traffic. For spans with multiple network providers, the earliest of the dates at which each provider’s network was ready to carry traffic on this span. |
|||
start |
string |
|||
Start |
The identifier of one of two nodes that this span connects. It must match the |
|||
end |
string |
|||
End |
The identifier of one of two nodes that this span connects. It must match the |
|||
directed |
boolean |
|||
Directed |
Whether this span is directed. If |
|||
route |
object |
|||
Span route |
In the JSON publication format, a GeoJSON LineString geometry describing the route of this span. In the CSV publication format, a well-known text LINESTRING geometry. See Geometry |
|||
physicalInfrastructureProvider |
object |
|||
Physical infrastructure provider |
The organisation that owns the passive network infrastructure for this span, i.e. the non-electrical elements, such as dark fibre, ducts and physical sites. |
|||
networkProviders |
array[Organisation reference] |
|||
Network providers |
The organisations that operate the active network infrastructure for this span, i.e. the electrical elements, such as optical transceivers, switches and routers. In open business models, network providers provide wholesale access to service providers such as retail internet service providers. Network providers can own or lease the active network infrastructure. |
|||
supplier |
object |
|||
Supplier |
The organisation responsible for installing the cable for this span. |
|||
transmissionMedium |
array[[string]] |
|||
Transmission medium |
The physical media of this span, from the closed transmissionMedium codelist. |
|||
deployment |
array[[string]] |
|||
Deployment |
The physical deployment of this span, from the closed deployment codelist. Further details of this span’s deployment can be provided in |
|||
deploymentDetails |
object |
|||
Deployment details |
Further details of this span’s deployment. |
|||
darkFibre |
boolean |
|||
Dark fibre availability |
Whether access to dark fibre is available on this span. |
|||
fibreType |
string |
|||
Fibre type |
The type of fibre used in this span, from the closed fibreType codelist. Further details of the span’s fibre type can be provided in |
|||
fibreTypeDetails |
object |
|||
Fibre type details |
Further details about this span’s fibre type. See FibreTypeDetails |
|||
fibreCount |
integer |
|||
Fibre count |
The number of individual optical fibres in this span. |
|||
fibreLength |
number |
|||
Fibre length |
The physical length in kilometres, of fibre optic cable used in this span. |
|||
technologies |
array[[string]] |
|||
Technologies |
The active technologies used on this span, from the open spanTechnologies codelist. For spans with multiple network providers, the union of the active technologies used by each provider. |
|||
capacity |
number |
|||
Capacity |
The transmission rate, or throughput, of this span, expressed in Gbit/sec (Gbps). The equipped capacity is the total capacity of the circuits (e.g. E1, DS3, STM-1 etc.) which have been activated in the network transmission equipment of the span. For spans with multiple network providers, the sum of the capacity of each provider’s network on this span. Further details of this span’s capacity can be provided in |
|||
capacityDetails |
object |
|||
Capacity details |
Further details about this span’s capacity See CapacityDetails |
|||
countries |
array[[string]] |
|||
Countries |
The countries in which this span is physically located, from the closed country codelist. |
Phase
Phase
is defined as:
A set of nodes and/or spans deployed as a group.
This component is referenced by the following properties:
Each Phase
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Identifier |
An identifier for this phase. The identifier must be unique within the scope of the |
|||
name |
string |
|||
Name |
A name for this phase. |
|||
description |
string |
|||
Description |
A description for this phase. |
|||
funders |
array[Organisation reference] |
|||
Funders |
Information about the organisations that provide financing for the development or operation of this phase, also known as investors or financers. |
Organisation
Organisation
is defined as:
An organisation.
This component is referenced by the following properties:
Each Organisation
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Local identifier |
A local identifier for this organisation. The identifier must be unique within the scope of the |
|||
name |
string |
|||
Name |
A name for this organisation. |
|||
identifier |
object |
|||
Organisation identifier |
An identifier for this organisation. See Identifier |
|||
country |
string |
|||
Country |
The country in which this organisation is legally registered, from the closed country codelist. |
|||
roles |
array[[string]] |
|||
Roles |
This organisation’s roles in this network, from the open organisationRole codelist. Further details about this organisation’s roles can be provided in |
|||
roleDetails |
string |
|||
Role details |
Further details about this organisation’s roles in the network |
|||
website |
string |
iri |
||
Website |
The URL of the website for this organisation. |
|||
logo |
string |
iri |
||
Logo |
The URL of the logo for this organisation. |
Contract
Contract
is defined as:
An agreement between the public and private sectors to develop a network.
This component is referenced by the following properties:
Each Contract
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Identifier |
An identifier for this contract. The identifier must be unique within the scope of the |
|||
title |
string |
|||
Contract title |
A title for this contract. |
|||
description |
string |
|||
Contract description |
A description for this contract. |
|||
type |
string |
|||
Contract type |
The type of this contract, from the open contractType codelist. |
|||
value |
object |
|||
Contract value |
The value of this contract. See Value |
|||
dateSigned |
string |
date |
||
Date signed |
The date this contract was signed. |
|||
documents |
array[Document] |
|||
Contract documents |
The documents related to this contract. See Document |
|||
relatedPhases |
array[Phase reference] |
|||
Related phases |
The phases to which this contract relates. See PhaseReference |
Geometry
Geometry
is defined as:
This component is referenced by the following properties:
Additional properties are not permitted within Geometry
objects.
Each Geometry
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
type |
string |
Required |
||
Type |
The GeoJSON geometry type that is described by |
|||
coordinates |
array[[number, array]] |
Required |
||
Coordinates |
One or more GeoJSON positions. For geometries of type ‘Point’, the coordinates member must be a single position. For geometries of type ‘LineString’ the coordinates member must be an array of positions. Each position is an array of numbers with two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order. Longitude and latitude must be expressed using the World Geodetic System 1984 WGS 84 datum in units of decimal degrees. Altitude or elevation may be included as an optional third element and must be expressed as the height in meters above or below the WGS 84 reference ellipsoid Therefore, geometries of type ‘Point’ must be a single array, e.g. [longitude, latitude], and geometries of type ‘LineString’ must be an array of arrays, e.g. [[longitude, latitude], [longitude, latitude]]. |
OrganisationReference
OrganisationReference
is defined as:
The local identifier and name of the organisation being referenced. Used to cross-reference to the
organisations
array.
This component is referenced by the following properties:
Each OrganisationReference
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Local identifier |
The local identifier of the organisation being referenced. This must match the |
|||
name |
string |
|||
Name |
The name of the organisation being referenced. This must match the |
PhaseReference
PhaseReference
is defined as:
The identifier and name of the phase being referenced. Used for cross-referencing.
This component is referenced by the following properties:
Each PhaseReference
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
Required |
||
Identifier |
The identifier of the phase being referenced. This must match the |
|||
name |
string |
|||
Name |
The name of the phase being referenced. This must match the |
Address
Address
is defined as:
An address.
This component is referenced by the following properties:
Each Address
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
streetAddress |
string |
|||
Street address |
The street address. For example, 1600 Amphitheatre Pkwy. |
|||
locality |
string |
|||
Locality |
The locality. For example, Mountain View. |
|||
region |
string |
|||
Region |
The region. For example, CA. |
|||
postalCode |
string |
|||
Postal code |
The postal code. For example, 94043. |
|||
country |
string |
|||
Country |
The country in which the address is physically located, from the closed country codelist. |
Value
Value
is defined as:
A financial value.
This component is referenced by the following properties:
Each Value
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
amount |
number |
|||
Amount |
The amount of this value. |
|||
currency |
string |
|||
Currency |
The currency of this value, from the closed currency codelist. |
Document
Document
is defined as:
A piece of electronic or physical matter that provides information or evidence or that serves as an official record.
This component is referenced by the following properties:
Each Document
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
title |
string |
|||
Title |
A title for this document. |
|||
description |
string |
|||
Description |
A description of this document. Descriptions should not exceed 250 words. If the document is not accessible online, the description should describe how to access a copy of the document. |
|||
url |
string |
iri |
||
URL |
A web address for accessing this document. |
|||
format |
string |
|||
Format |
The format of this document, from the open mediaType codelist. |
Identifier
Identifier
is defined as:
An organisation identifier.
This component is referenced by the following properties:
Each Identifier
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
id |
string |
|||
Identifier |
The identifier assigned to the organisation in the register identified in |
|||
scheme |
string |
|||
Scheme |
The register from which the identifier in |
|||
legalName |
string |
|||
Legal name |
The legally registered name of the organisation |
|||
uri |
string |
iri |
||
URI |
A canonical URI for this identifier, such as those provided by Open Corporates. Do not use this field to provide the website of the organisation: instead, use |
CoordinateReferenceSystem
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 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::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.
CoordinateReferenceSystem
is defined as:
The coordinate reference system used in the data.
This component is referenced by the following properties:
Each CoordinateReferenceSystem
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
name |
string |
uri |
Required |
|
Name |
The name of the coordinate reference system. |
|||
uri |
string |
uri |
Required |
|
Uniform Resource Identifier |
A URI for the coordinate reference system. |
Link
Link
is defined as:
A link to a related resource.
This component is referenced by the following properties:
Each Link
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
href |
string |
iri |
Required |
|
Link target |
The URL of this related resource. |
|||
rel |
string |
Required |
||
Link relation type |
The relationship with this related resource, from the open linkRelationType codelist. The ‘describedby’ code must only be used in the first item in the |
FibreTypeDetails
FibreTypeDetails
is defined as:
Further details about a span’s fibre type.
This component is referenced by the following properties:
Each FibreTypeDetails
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
fibreSubtype |
string |
|||
Fibre subtype |
The sub-category of the fibre type. For example, G.652.B. |
|||
description |
string |
|||
Description |
A description of this span’s fibre type. |
DeploymentDetails
DeploymentDetails
is defined as:
Further details about a span’s deployment.
This component is referenced by the following properties:
Each DeploymentDetails
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
description |
string |
|||
Description |
A description of this span’s deployment. |
CapacityDetails
CapacityDetails
is defined as:
Further details about a span’s capacity.
This component is referenced by the following properties:
Each CapacityDetails
has the following fields:
Title |
Description |
Type |
Format |
Required |
---|---|---|---|---|
description |
string |
|||
Description |
A description of this span’s capacity. |