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:

  • The network is too large to load in to memory, in which case a link to a streamable bulk nodes file may be provided in .links

  • The data is published via an API and the network is too large to return in a single API response, in which case a link to a paginated nodes endpoint may be provided in .links.

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:

  • The network is too large to load in to memory, in which case a link to a streamable bulk spans file may be provided in .links

  • The data is published via an API and the network is too large to return in a single API response, in which case a link to a paginated spans endpoint may be provided in .links.

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 .scheme.

publisher/identifier/scheme

string

Scheme

The register from which the identifier in .id is drawn, from the open organisationIdentifierScheme codelist.

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 Organisation.website.

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 Node.location or Span.route) then this field must be provided.

See CoordinateReferenceSystem

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 crs. Further details about the accuracy of coordinates in this dataset can be provided in .accuracyDetails.

accuracyDetails

string

Accuracy details

Further details about the accuracy specified in accuracy. For example, the confidence level of the accuracy measurement, the methodology used to calculate the accuracy, or a local classification of accuracy.

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

{
    "id": "a096d627-72e1-4f9b-b129-951b1737bff4",
    "name": "Ghana Fibre Network",
    "nodes": [
        {
            "id": "1",
            "name": "Accra",
            "phase": {
                "id": "1",
                "name": "NextGen Phase 1"
            },
            "status": "operational",
            "location": {
                "type": "Point",
                "coordinates": [
                    -0.174,
                    5.625
                ]
            },
            "address": {
                "streetAddress": "Boundary Rd",
                "locality": "Shiashie",
                "region": "Accra",
                "postalCode": "12345",
                "country": "GH"
            },
            "type": [
                "pop"
            ],
            "accessPoint": true,
            "internationalConnections": [
                {
                    "region": "Lom\u00e9",
                    "country": "TG"
                }
            ],
            "power": true,
            "technologies": [
                "ip"
            ],
            "physicalInfrastructureProvider": {
                "id": "GH-RGD-CS111111111",
                "name": "FibreCo"
            },
            "networkProviders": [
                {
                    "id": "GH-RGD-CS222222222",
                    "name": "FastWeb"
                }
            ]
        },
        {
            "id": "2",
            "name": "Kumasi",
            "phase": {
                "id": "1",
                "name": "NextGen Phase 1"
            },
            "status": "operational",
            "location": {
                "type": "Point",
                "coordinates": [
                    -1.628,
                    6.711
                ]
            },
            "address": {
                "streetAddress": "Kejetia Road",
                "locality": "Bantama",
                "region": "Kumasi",
                "postalCode": "00000",
                "country": "GH"
            },
            "type": [
                "pop"
            ],
            "accessPoint": false,
            "power": true,
            "technologies": [
                "ip"
            ],
            "physicalInfrastructureProvider": {
                "id": "GH-RGD-CS111111111",
                "name": "FibreCo"
            },
            "networkProviders": [
                {
                    "id": "GH-RGD-CS222222222",
                    "name": "FastWeb"
                }
            ]
        }
    ],
    "spans": [
        {
            "id": "1",
            "name": "Accra to Kumasi",
            "phase": {
                "id": "1",
                "name": "NextGen Phase 1"
            },
            "status": "operational",
            "readyForServiceDate": "2018-01-01",
            "start": "1",
            "end": "2",
            "directed": false,
            "route": {
                "type": "LineString",
                "coordinates": [
                    [
                        -0.173,
                        5.626
                    ],
                    [
                        -0.178,
                        5.807
                    ],
                    [
                        -0.112,
                        5.971
                    ],
                    [
                        -0.211,
                        5.963
                    ],
                    [
                        -0.321,
                        6.17
                    ],
                    [
                        -0.488,
                        6.29
                    ],
                    [
                        -0.56,
                        6.421
                    ],
                    [
                        -0.752,
                        6.533
                    ],
                    [
                        -0.867,
                        6.607
                    ],
                    [
                        -1.101,
                        6.585
                    ],
                    [
                        -1.304,
                        6.623
                    ],
                    [
                        -1.461,
                        6.727
                    ],
                    [
                        -1.628,
                        6.713
                    ]
                ]
            },
            "physicalInfrastructureProvider": {
                "id": "GH-RGD-CS111111111",
                "name": "FibreCo"
            },
            "networkProviders": [
                {
                    "id": "GH-RGD-CS222222222",
                    "name": "FastWeb"
                }
            ],
            "supplier": {
                "id": "GH-RGD-CS333333333",
                "name": "ProjectCo"
            },
            "transmissionMedium": [
                "fibre"
            ],
            "deployment": [
                "belowGround"
            ],
            "deploymentDetails": {
                "description": "Buried in ducts"
            },
            "darkFibre": true,
            "fibreType": "G.652",
            "fibreTypeDetails": {
                "fibreSubtype": "G.652.D",
                "description": "CABLED STANDARD ENHANCED SINGLEMODE FIBRE ESMF, LOW WATER PEAK SINGLE MODE FIBRE G.652.D, OS2"
            },
            "fibreCount": 24,
            "fibreLength": 276000,
            "technologies": [
                "sdh"
            ],
            "capacity": 4.976,
            "capacityDetails": {
                "description": "2xSTM-16"
            },
            "countries": [
                "GH"
            ]
        }
    ],
    "phases": [
        {
            "id": "1",
            "name": "NextGen Phase 1",
            "description": "The first phase of the Ghana Fibre Network NextGen roll-out.",
            "funders": [
                {
                    "id": "1",
                    "name": "Ghana Infrastructure Investment Fund"
                }
            ]
        }
    ],
    "organisations": [
        {
            "id": "GH-RGD-CS111111111",
            "name": "FibreCo",
            "identifier": {
                "id": "CS111111111",
                "scheme": "GH-RGD",
                "legalName": "FibreCo Ghana Limited",
                "uri": "https://example.com/companies/CS111111111"
            },
            "country": "GH",
            "roles": [
                "physicalInfrastructureProvider"
            ],
            "roleDetails": "FibreCo owns and maintains the physical infrastructure.",
            "website": "https://www.example.com",
            "logo": "https://www.example.com/logo.png"
        },
        {
            "id": "GH-RGD-CS222222222",
            "name": "FastWeb",
            "identifier": {
                "id": "CS222222222",
                "scheme": "GH-RGD",
                "legalName": "FastWeb Ghana Limited",
                "uri": "https://example.com/companies/CS222222222"
            },
            "country": "GH",
            "roles": [
                "networkProvider"
            ],
            "roleDetails": "FastWeb provides wholesale services to service providers and dark fibre access to other network providers.",
            "website": "https://www.example.com",
            "logo": "https://www.example.com/logo.png"
        },
        {
            "id": "GH-RGD-CS333333333",
            "name": "ProjectCo",
            "identifier": {
                "id": "CS333333333",
                "scheme": "GH-RGD",
                "legalName": "ProjectCo Ghana Limited",
                "uri": "https://example.com/companies/CS333333333"
            },
            "country": "GH",
            "roles": [
                "supplier"
            ],
            "roleDetails": "ProjectCo was responsible for the construction of phase 1 of the NextGen network.",
            "website": "https://www.example.com",
            "logo": "https://www.example.com/logo.png"
        },
        {
            "id": "1",
            "name": "Ghana Infrastructure Investment Fund",
            "country": "GH",
            "roles": [
                "funder"
            ],
            "roleDetails": "The Ghana Infrastructure Investment Fund provided equity financing for the construction of phase 1 of the NextGen network.",
            "website": "https://www.example.com",
            "logo": "https://www.example.com/logo.png"
        }
    ],
    "contracts": [
        {
            "id": "1",
            "title": "NextGen Phase 1 Construction Contract",
            "description": "Contract for the construction of phase 1 of the NextGen network.",
            "type": "private",
            "value": {
                "amount": 1537459500.0,
                "currency": "GHS"
            },
            "dateSigned": "2016-06-30",
            "documents": [
                {
                    "title": "NextGen Phase 1 Construction Contract",
                    "description": "Signed contract.",
                    "url": "http://example.com/contracts/nextgen-phase1-construction.pdf",
                    "format": "application/pdf"
                }
            ],
            "relatedPhases": [
                {
                    "id": "1",
                    "name": "NextGen Phase 1"
                }
            ]
        }
    ],
    "website": "http://example.com/network",
    "publisher": {
        "name": "FibreCo",
        "identifier": {
            "id": "CS111111111",
            "scheme": "GH-RGD",
            "legalName": "FibreCo Ghana Limited",
            "uri": "https://example.com/companies/CS111111111"
        }
    },
    "publicationDate": "2022-01-01",
    "collectionDate": "2021-09-30",
    "crs": {
        "name": "urn:ogc:def:crs:OGC::CRS84",
        "uri": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
    },
    "accuracy": 250,
    "accuracyDetails": "Measured according to the US National Standard for Spatial Data Accuracy.",
    "language": "en",
    "links": [
        {
            "rel": "describedby",
            "href": "https://raw.githubusercontent.com/Open-Telecoms-Data/open-fibre-data-standard/0__3__0/schema/network-schema.json"
        }
    ]
}

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 nodes array.

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, .country is required.

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.

See OrganisationReference

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.

See OrganisationReference

[
    {
        "id": "1",
        "name": "Accra",
        "phase": {
            "id": "1",
            "name": "NextGen Phase 1"
        },
        "status": "operational",
        "location": {
            "type": "Point",
            "coordinates": [
                -0.174,
                5.625
            ]
        },
        "address": {
            "streetAddress": "Boundary Rd",
            "locality": "Shiashie",
            "region": "Accra",
            "postalCode": "12345",
            "country": "GH"
        },
        "type": [
            "pop"
        ],
        "accessPoint": true,
        "internationalConnections": [
            {
                "region": "Lom\u00e9",
                "country": "TG"
            }
        ],
        "power": true,
        "technologies": [
            "ip"
        ],
        "physicalInfrastructureProvider": {
            "id": "GH-RGD-CS111111111",
            "name": "FibreCo"
        },
        "networkProviders": [
            {
                "id": "GH-RGD-CS222222222",
                "name": "FastWeb"
            }
        ]
    },
    {
        "id": "2",
        "name": "Kumasi",
        "phase": {
            "id": "1",
            "name": "NextGen Phase 1"
        },
        "status": "operational",
        "location": {
            "type": "Point",
            "coordinates": [
                -1.628,
                6.711
            ]
        },
        "address": {
            "streetAddress": "Kejetia Road",
            "locality": "Bantama",
            "region": "Kumasi",
            "postalCode": "00000",
            "country": "GH"
        },
        "type": [
            "pop"
        ],
        "accessPoint": false,
        "power": true,
        "technologies": [
            "ip"
        ],
        "physicalInfrastructureProvider": {
            "id": "GH-RGD-CS111111111",
            "name": "FibreCo"
        },
        "networkProviders": [
            {
                "id": "GH-RGD-CS222222222",
                "name": "FastWeb"
            }
        ]
    }
]

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 spans array.

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 .id of a node in the nodes array. If directed == true, it represents the starting point of the span. Otherwise, the distinction between start and end is arbitrary.

end

string

End

The identifier of one of two nodes that this span connects. It must match the .id of a node in the nodes array. If directed == true, it represents the end point of the span. Otherwise, the distinction between start and end is arbitrary.

directed

boolean

Directed

Whether this span is directed. If True, then .start represents the start of the span and .end represents the end. Otherwise, .start and .end reference this span’s endpoints with no direction implied.

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.

See OrganisationReference

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.

See OrganisationReference

supplier

object

Supplier

The organisation responsible for installing the cable for this span.

See OrganisationReference

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.

deploymentDetails

object

Deployment details

Further details of this span’s deployment.

See DeploymentDetails

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.

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.

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.

[
    {
        "id": "1",
        "name": "Accra to Kumasi",
        "phase": {
            "id": "1",
            "name": "NextGen Phase 1"
        },
        "status": "operational",
        "readyForServiceDate": "2018-01-01",
        "start": "1",
        "end": "2",
        "directed": false,
        "route": {
            "type": "LineString",
            "coordinates": [
                [
                    -0.173,
                    5.626
                ],
                [
                    -0.178,
                    5.807
                ],
                [
                    -0.112,
                    5.971
                ],
                [
                    -0.211,
                    5.963
                ],
                [
                    -0.321,
                    6.17
                ],
                [
                    -0.488,
                    6.29
                ],
                [
                    -0.56,
                    6.421
                ],
                [
                    -0.752,
                    6.533
                ],
                [
                    -0.867,
                    6.607
                ],
                [
                    -1.101,
                    6.585
                ],
                [
                    -1.304,
                    6.623
                ],
                [
                    -1.461,
                    6.727
                ],
                [
                    -1.628,
                    6.713
                ]
            ]
        },
        "physicalInfrastructureProvider": {
            "id": "GH-RGD-CS111111111",
            "name": "FibreCo"
        },
        "networkProviders": [
            {
                "id": "GH-RGD-CS222222222",
                "name": "FastWeb"
            }
        ],
        "supplier": {
            "id": "GH-RGD-CS333333333",
            "name": "ProjectCo"
        },
        "transmissionMedium": [
            "fibre"
        ],
        "deployment": [
            "belowGround"
        ],
        "deploymentDetails": {
            "description": "Buried in ducts"
        },
        "darkFibre": true,
        "fibreType": "G.652",
        "fibreTypeDetails": {
            "fibreSubtype": "G.652.D",
            "description": "CABLED STANDARD ENHANCED SINGLEMODE FIBRE ESMF, LOW WATER PEAK SINGLE MODE FIBRE G.652.D, OS2"
        },
        "fibreCount": 24,
        "fibreLength": 276000,
        "technologies": [
            "sdh"
        ],
        "capacity": 4.976,
        "capacityDetails": {
            "description": "2xSTM-16"
        },
        "countries": [
            "GH"
        ]
    }
]

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 phases array.

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.

See OrganisationReference

[
    {
        "id": "1",
        "name": "NextGen Phase 1",
        "description": "The first phase of the Ghana Fibre Network NextGen roll-out.",
        "funders": [
            {
                "id": "1",
                "name": "Ghana Infrastructure Investment Fund"
            }
        ]
    }
]

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 organisations array.

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.

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.

string

iri

Logo

The URL of the logo for this organisation.

[
    {
        "id": "GH-RGD-CS111111111",
        "name": "FibreCo",
        "identifier": {
            "id": "CS111111111",
            "scheme": "GH-RGD",
            "legalName": "FibreCo Ghana Limited",
            "uri": "https://example.com/companies/CS111111111"
        },
        "country": "GH",
        "roles": [
            "physicalInfrastructureProvider"
        ],
        "roleDetails": "FibreCo owns and maintains the physical infrastructure.",
        "website": "https://www.example.com",
        "logo": "https://www.example.com/logo.png"
    },
    {
        "id": "GH-RGD-CS222222222",
        "name": "FastWeb",
        "identifier": {
            "id": "CS222222222",
            "scheme": "GH-RGD",
            "legalName": "FastWeb Ghana Limited",
            "uri": "https://example.com/companies/CS222222222"
        },
        "country": "GH",
        "roles": [
            "networkProvider"
        ],
        "roleDetails": "FastWeb provides wholesale services to service providers and dark fibre access to other network providers.",
        "website": "https://www.example.com",
        "logo": "https://www.example.com/logo.png"
    },
    {
        "id": "GH-RGD-CS333333333",
        "name": "ProjectCo",
        "identifier": {
            "id": "CS333333333",
            "scheme": "GH-RGD",
            "legalName": "ProjectCo Ghana Limited",
            "uri": "https://example.com/companies/CS333333333"
        },
        "country": "GH",
        "roles": [
            "supplier"
        ],
        "roleDetails": "ProjectCo was responsible for the construction of phase 1 of the NextGen network.",
        "website": "https://www.example.com",
        "logo": "https://www.example.com/logo.png"
    },
    {
        "id": "1",
        "name": "Ghana Infrastructure Investment Fund",
        "country": "GH",
        "roles": [
            "funder"
        ],
        "roleDetails": "The Ghana Infrastructure Investment Fund provided equity financing for the construction of phase 1 of the NextGen network.",
        "website": "https://www.example.com",
        "logo": "https://www.example.com/logo.png"
    }
]

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 contracts array.

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

[
    {
        "id": "1",
        "title": "NextGen Phase 1 Construction Contract",
        "description": "Contract for the construction of phase 1 of the NextGen network.",
        "type": "private",
        "value": {
            "amount": 1537459500.0,
            "currency": "GHS"
        },
        "dateSigned": "2016-06-30",
        "documents": [
            {
                "title": "NextGen Phase 1 Construction Contract",
                "description": "Signed contract.",
                "url": "http://example.com/contracts/nextgen-phase1-construction.pdf",
                "format": "application/pdf"
            }
        ],
        "relatedPhases": [
            {
                "id": "1",
                "name": "NextGen Phase 1"
            }
        ]
    }
]

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, from the closed geometryType codelist. This must be ‘Point’ when referenced by Node.location, and ‘LineString’ when referenced by Span.route.

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]].

{
    "type": "Point",
    "coordinates": [
        -0.174,
        5.625
    ]
}
{
    "type": "LineString",
    "coordinates": [
        [
            -0.173,
            5.626
        ],
        [
            -0.178,
            5.807
        ],
        [
            -0.112,
            5.971
        ],
        [
            -0.211,
            5.963
        ],
        [
            -0.321,
            6.17
        ],
        [
            -0.488,
            6.29
        ],
        [
            -0.56,
            6.421
        ],
        [
            -0.752,
            6.533
        ],
        [
            -0.867,
            6.607
        ],
        [
            -1.101,
            6.585
        ],
        [
            -1.304,
            6.623
        ],
        [
            -1.461,
            6.727
        ],
        [
            -1.628,
            6.713
        ]
    ]
}

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 .id of an organisation in the organisations array.

name

string

Name

The name of the organisation being referenced. This must match the .name of the organisation in the organisations array whose .id matches the .id of this organisation reference.

{
    "id": "GH-RGD-CS111111111",
    "name": "FibreCo"
}
[
    {
        "id": "GH-RGD-CS222222222",
        "name": "FastWeb"
    }
]
{
    "id": "GH-RGD-CS111111111",
    "name": "FibreCo"
}
[
    {
        "id": "GH-RGD-CS222222222",
        "name": "FastWeb"
    }
]
{
    "id": "GH-RGD-CS333333333",
    "name": "ProjectCo"
}
[
    {
        "id": "1",
        "name": "Ghana Infrastructure Investment Fund"
    }
]

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 .id of a phase in the phases array.

name

string

Name

The name of the phase being referenced. This must match the .name of the phase in the phases array whose .id matches the .id of this phase reference.

{
    "id": "1",
    "name": "NextGen Phase 1"
}
{
    "id": "1",
    "name": "NextGen Phase 1"
}
[
    {
        "id": "1",
        "name": "NextGen Phase 1"
    }
]

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.

{
    "streetAddress": "Boundary Rd",
    "locality": "Shiashie",
    "region": "Accra",
    "postalCode": "12345",
    "country": "GH"
}
[
    {
        "region": "Lom\u00e9",
        "country": "TG"
    }
]

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.

{
    "amount": 1537459500.0,
    "currency": "GHS"
}

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.

[
    {
        "title": "NextGen Phase 1 Construction Contract",
        "description": "Signed contract.",
        "url": "http://example.com/contracts/nextgen-phase1-construction.pdf",
        "format": "application/pdf"
    }
]

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.

scheme

string

Scheme

The register from which the identifier in .id is drawn, from the open organisationIdentifierScheme codelist.

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 Organisation.website.

{
    "id": "CS111111111",
    "scheme": "GH-RGD",
    "legalName": "FibreCo Ghana Limited",
    "uri": "https://example.com/companies/CS111111111"
}
{
    "id": "CS111111111",
    "scheme": "GH-RGD",
    "legalName": "FibreCo Ghana Limited",
    "uri": "https://example.com/companies/CS111111111"
}

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:

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.

{
    "name": "urn:ogc:def:crs:OGC::CRS84",
    "uri": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
}

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.

{
    "fibreSubtype": "G.652.D",
    "description": "CABLED STANDARD ENHANCED SINGLEMODE FIBRE ESMF, LOW WATER PEAK SINGLE MODE FIBRE G.652.D, OS2"
}

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.

{
    "description": "Buried in ducts"
}

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.

{
    "description": "2xSTM-16"
}