From 2a1fd109f1b6f124ab2b8e2560b9b067ea2af145 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 15 Dec 2022 16:31:02 +1300 Subject: [PATCH 1/7] manage.py: Remove convert_to_geojson --- manage.py | 102 ------------------------------------------------------ 1 file changed, 102 deletions(-) diff --git a/manage.py b/manage.py index 3e46d6f..b20b498 100755 --- a/manage.py +++ b/manage.py @@ -49,59 +49,6 @@ def write_lines(filename, lines): f.writelines(lines) -def dereference_object(ref, list): - """ - Return from list the object referenced by ref. Otherwise, return ref. - """ - - if "id" in ref: # Can remove, `id` is required - for item in list: - if item.get("id") == ref["id"]: # Can simplify, `id` is required - return item - - return ref - - -def convert_to_feature(object, organisation_references, network, organisations, phases, nodes): - """ - Convert a node or span to a GeoJSON feature. - """ - feature = {"type": "Feature"} - - # Set `.geometry` - # TO-DO: Handle case when publishers add an additional `location` or `route` field to spans and nodes, respectively. - if "location" in object: - feature["geometry"] = object.pop("location") - elif "route" in object: - feature["geometry"] = object.pop("route") - else: - feature["geometry"] = None - - properties = feature["properties"] = object - - # Dereference organisation references - for organisationReference in organisation_references: - if organisationReference in properties: - properties[organisationReference] == dereference_object(properties[organisationReference], organisations) - - # Dereference phase references - if "phase" in properties: - properties["phase"] == dereference_object(properties["phase"], phases) - - # Dereference endpoints - for endpoint in ["start", "end"]: - if endpoint in properties: - for node in nodes: - if "id" in node and node["id"] == properties[endpoint]: # Can simplify, `.id` is required - properties[endpoint] = node - - # Embed network-level data - # TO-DO: Handle case when publishers add an additional `network` field to `Node` or `Span`. - feature["properties"]["network"] = network - - return feature - - def delete_directory_contents(directory_path): """ Deletes the contents of a directory on disk. @@ -784,55 +731,6 @@ def pre_commit(): # Run mdformat subprocess.run(['mdformat', 'docs']) -@cli.command() -@click.argument('filename', type=click.Path(exists=True)) -def convert_to_geojson(filename): - """ - Convert a network package to two GeoJSON files: nodes.geojson and spans.geojson. - """ - - # Load data - with open(filename, 'r') as f: - package = json.load(f) - - nodeFeatures = [] - spanFeatures = [] - - for network in package["networks"]: - nodes = network.pop("nodes", []) - spans = network.pop("spans", []) - # TO-DO: Consider how to handle unreferenced phases and organisations. Currently, they are dropped from the geoJSON output - phases = network.pop("phases", []) - organisations = network.pop("organisations", []) - - # Dereference `contracts.relatedPhases` - if "contracts" in network: - for contract in network["contracts"]: - if "relatedPhases" in contract: - for phase in contract["relatedPhases"]: - phase = dereference_object(phase, phases) - - # Convert nodes to features - for node in nodes: - nodeFeatures.append(convert_to_feature(node, ['physicalInfrastructureProvider', 'networkProvider'], network, organisations, phases, nodes)) - - # Convert spans to features - for span in spans: - spanFeatures.append(convert_to_feature(span, ['physicalInfrastructureProvider', 'networkProvider'], network, organisations, phases, nodes)) - - with open('nodes.geojson', 'w') as f: - featureCollection = { - "type": "FeatureCollection", - "features": nodeFeatures - } - json.dump(featureCollection, f, indent=2) - - with open('spans.geojson', 'w') as f: - featureCollection = { - "type": "FeatureCollection", - "features": spanFeatures - } - json.dump(featureCollection, f, indent=2) if __name__ == '__main__': cli() From 62dfe0517f3caec509709a71af03f72bd57ed28e Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 15 Dec 2022 16:32:53 +1300 Subject: [PATCH 2/7] manage.py: Remove update_from_airtable --- manage.py | 186 ------------------------------------------------------ 1 file changed, 186 deletions(-) diff --git a/manage.py b/manage.py index b20b498..e54b533 100755 --- a/manage.py +++ b/manage.py @@ -14,13 +14,8 @@ from github import Github from ocdskit.mapping_sheet import mapping_sheet from pathlib import Path -from pyairtable import Table -from pyairtable.formulas import match -AIRTABLE_API_KEY = os.environ['AIRTABLE_API_KEY'] -BASE_ID = 'apprMa4GXD05csfkW' GITHUB_ACCESS_TOKEN = os.environ['GITHUB_ACCESS_TOKEN'] -EXTERNAL_CODELISTS = ['country.csv', 'currency.csv', 'language.csv', 'mediaType.csv'] basedir = Path(__file__).resolve().parent codelistdir = basedir / 'codelists' @@ -28,12 +23,6 @@ referencedir = basedir / 'docs' / 'reference' schemadir = basedir / 'schema' -def set_value(source_obj, target_obj, source_field, target_field): - """Update the value of the target object's field if the equivalent field exists in the source object.""" - - if source_obj.get(source_field): - target_obj[target_field] = source_obj[source_field] - def read_lines(filename): """Read a file and return a list of lines.""" @@ -488,181 +477,6 @@ def cli(): pass -@cli.command() -def update_from_airtable(): - """Update schema and codelists from Airtable. - - * Add new definitions and properties - * Update existing definitions and properties - * Delete definitions and properties that do not exist in Airtable or are marked as 'Omit' - """ - - top_object = 'Network' - - with (schemadir / 'network-schema.json').open() as f: - schema = json.load(f) - - # Get data from Airtable - definitions_table = Table(AIRTABLE_API_KEY, BASE_ID, 'Classes') - properties_table = Table(AIRTABLE_API_KEY, BASE_ID, 'Properties') - codelists_table = Table(AIRTABLE_API_KEY, BASE_ID, 'Codelists') - codes_table = Table(AIRTABLE_API_KEY, BASE_ID, 'Codes') - - # Update schema - definitions = {record['id']: record for record in definitions_table.all()} - for definition_record in definitions.values(): - definition_fields = definition_record['fields'] - - if definition_fields['Status'] != 'Omit': - if definition_fields['Name'] == top_object: - target = schema - else: - if definition_fields['Name'] not in schema['definitions']: - target = schema['definitions'][definition_fields['Name']] = {} - else: - target = schema['definitions'][definition_fields['Name']] - - set_value(definition_fields, target, "Title", "title") - set_value(definition_fields, target, "Description", "description") - set_value(definition_fields, target, "Status", "$comment") - if "additionalFields" in definition_fields: - target["additionalFields"] = bool(definition_fields["additionalFields"]) - - target["type"] = "object" - - # Add links to related Github issues - target['$comment'] = ",".join(definition_fields.get("Github issues","")) - - # Update properties - if not target.get("properties"): - target["properties"] = {} - - # Clear required fields - if target.get("required"): - target["required"] = [] - - if definition_fields.get('Properties'): - for property_id in definition_fields['Properties']: - property_record = properties_table.get(property_id) - property_fields = property_record['fields'] - - if property_fields['Status'] != 'Omit': - - # Add new properties or update existing properties - if property_fields['Property'] not in target["properties"]: - property = target["properties"][property_fields['Property']] = {} - else: - property = target["properties"][property_fields['Property']] - - # Set values - set_value(property_fields, property, "Title", "title") - set_value(property_fields, property, "Description", "description") - set_value(property_fields, property, "Github issues", "$comment") - set_value(property_fields, property, "Format", "format") - set_value(property_fields, property, "Type", "type") - set_value(property_fields, property, "Constant value", "const") - - # Add links to related Github issues - property['$comment'] = ",".join(property_fields.get("Github issues","")) - - # Set $ref for objects and arrays of objects - if 'instanceOf' in property_fields: - ref = definitions[property_fields['instanceOf'][0]]['fields']['Name'] - - if property_fields.get('Type') == 'object': - property.pop("type") - property['$ref'] = f'#/definitions/{ref}' - elif property_fields.get('Type') == 'array': - if property_fields.get("Items"): - property["items"] = {"type": property_fields["Items"]} - if property_fields.get("instanceOf"): - property["items"] = {"$ref": f'#/definitions/{ref}'} - - # Set codelist, enum and openCodelist - if property_fields.get("Codelist"): - codelist_record = codelists_table.get(property_fields["Codelist"][0]) - codelist_fields = codelist_record["fields"] - property["codelist"] = f"{codelist_fields['Name']}.csv" - - if codelist_fields.get("Codelist type") == "Closed": - property["openCodelist"] = False - property["enum"] = [] - - if codelist_fields.get("Codes"): - for code_id in codelist_fields["Codes"]: - code_record = codes_table.get(code_id) - property["enum"].append(code_record["fields"]["Code"]) - - elif codelist_fields.get("Codelist type") == "Open": - property["openCodelist"] = True - - # Set required properties - if property_fields.get("Required") == True: - if target.get("required"): - if property_fields["Property"] not in target["required"]: - target["required"].append(property_fields["Property"]) - else: - target["required"] = [property_fields["Property"]] - - target["properties"][property_fields['Property']] = property - - # Delete properties not in Airtable - for property in list(target["properties"]): - formula = match({"Property": property, "propertyOf": definition_fields["Name"]}) - result = properties_table.first(formula=formula) - - if not result or result["fields"]["Status"] == "Omit": - target["properties"].pop(property) - - # Delete definitions not in Airtable - for definition in list(schema["definitions"]): - formula = match({"Name": definition}) - result = definitions_table.first(formula=formula) - - if not result or result["fields"]["Status"] == "Omit": - schema["definitions"].pop(definition) - - with (schemadir / 'network-schema.json').open('w') as f: - json.dump(schema, f, indent=2) - f.write('\n') - - # Update codelists - files = glob.glob(f"{codelistdir}/*/*.csv") - for file in files: - - # Don't delete codelists that are managed outside of Airtable - if file.split("/")[-1] not in EXTERNAL_CODELISTS: - os.remove(file) - - for codelist in codelists_table.all(): - codelist_fields = codelist["fields"] - - if codelist_fields["Status"] != "Omit" and codelist_fields.get("Codes"): - filename = f"{codelist_fields['Name']}.csv" - - if codelist_fields.get("Codelist type") == "Closed": - subdir = "closed" - else: - subdir = "open" - - with open(codelistdir / subdir / filename, 'w', newline='') as f: - fieldnames = ['Code', 'Title', 'Description'] - writer = csv.DictWriter(f, fieldnames=fieldnames) - writer.writeheader() - - for code_id in codelist_fields['Codes']: - code_record = codes_table.get(code_id) - code_fields = code_record['fields'] - - if code_fields["Status"] not in ["Omit","Further clarification needed"]: - - writer.writerow({ - 'code': code_fields.get("Code", ""), - 'title': code_fields.get("Title", ""), - 'description': code_fields.get("Description", "") - }) - - @cli.command() def pre_commit(): """Update derivative schema files, examples and reference documentation: From 3e27906466fcd6021eca8ffeb229a2732adf422a Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 15 Dec 2022 16:39:44 +1300 Subject: [PATCH 3/7] docs: Remove consultation admonitions --- docs/governance/index.md | 2 +- docs/guidance/index.md | 2 +- docs/guidance/publication.md | 6 +-- docs/guidance/use.md | 2 +- docs/history/changelog.md | 2 +- docs/history/index.md | 2 +- docs/index.md | 2 +- docs/primer/index.md | 2 +- docs/primer/openfibredata.md | 2 +- docs/primer/openfibredatastandard.md | 2 +- docs/primer/scopeandkeyconcepts.md | 2 +- docs/reference/codelists.md | 2 +- docs/reference/identifiers.md | 2 +- docs/reference/index.md | 2 +- docs/reference/publication_formats/csv.md | 6 +-- docs/reference/publication_formats/geojson.md | 6 +-- docs/reference/publication_formats/index.md | 7 +-- docs/reference/publication_formats/json.md | 2 +- docs/reference/schema.md | 53 +------------------ manage.py | 45 +--------------- 20 files changed, 20 insertions(+), 131 deletions(-) diff --git a/docs/governance/index.md b/docs/governance/index.md index 8cbce16..94872e5 100644 --- a/docs/governance/index.md +++ b/docs/governance/index.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/guidance/index.md b/docs/guidance/index.md index 99ed4b9..5a61f27 100644 --- a/docs/guidance/index.md +++ b/docs/guidance/index.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/guidance/publication.md b/docs/guidance/publication.md index d16946c..568e9c4 100644 --- a/docs/guidance/publication.md +++ b/docs/guidance/publication.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` @@ -95,10 +95,6 @@ If you add an additional field, you ought to describe its structure, format and ### How to format data for publication -```{admonition} Consultation -There are [open issues](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues?q=is%3Aopen+is%3Aissue+label%3ATooling) related to tooling for transforming data between publication formats. -``` - OFDS data can be published in three [publication formats](../reference/publication_formats/index.md): - The [JSON format](../reference/publication_formats/json.md) reflects the structure of the [schema](../reference/schema.md), is useful to developers who want to use the data to build web apps, and offers a ‘base’ format that other publication formats can be converted to and from. diff --git a/docs/guidance/use.md b/docs/guidance/use.md index 2188ba4..f1094c6 100644 --- a/docs/guidance/use.md +++ b/docs/guidance/use.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 4c7cad4..1734405 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/history/index.md b/docs/history/index.md index 2953ab9..46d82b9 100644 --- a/docs/history/index.md +++ b/docs/history/index.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/index.md b/docs/index.md index 3308f1c..08175e0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/primer/index.md b/docs/primer/index.md index ab70de4..fcdd65e 100644 --- a/docs/primer/index.md +++ b/docs/primer/index.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/primer/openfibredata.md b/docs/primer/openfibredata.md index 5a8ce40..59c730a 100644 --- a/docs/primer/openfibredata.md +++ b/docs/primer/openfibredata.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/primer/openfibredatastandard.md b/docs/primer/openfibredatastandard.md index 2071262..46a0aa7 100644 --- a/docs/primer/openfibredatastandard.md +++ b/docs/primer/openfibredatastandard.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/primer/scopeandkeyconcepts.md b/docs/primer/scopeandkeyconcepts.md index aeade5e..42c784f 100644 --- a/docs/primer/scopeandkeyconcepts.md +++ b/docs/primer/scopeandkeyconcepts.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/reference/codelists.md b/docs/reference/codelists.md index 098c311..b6b9381 100644 --- a/docs/reference/codelists.md +++ b/docs/reference/codelists.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/reference/identifiers.md b/docs/reference/identifiers.md index 63535e1..10161b5 100644 --- a/docs/reference/identifiers.md +++ b/docs/reference/identifiers.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/reference/index.md b/docs/reference/index.md index dee78b5..248a059 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/reference/publication_formats/csv.md b/docs/reference/publication_formats/csv.md index 7bcf94e..e9d3389 100644 --- a/docs/reference/publication_formats/csv.md +++ b/docs/reference/publication_formats/csv.md @@ -3,15 +3,11 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` -```{admonition} Consultation -This page has [open issues](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues?q=is%3Aopen+is%3Aissue+label%3A%22CSV+format%22). -``` - This section describes the structure of the tables in the CSV format and the relationship between the tables. Example CSV files and blank templates are provided for each table. The CSV format has 10 tables, reflecting the structure of the [schema](../schema.md). The networks table is the main table. Arrays of objects in the schema are represented as separate tables: diff --git a/docs/reference/publication_formats/geojson.md b/docs/reference/publication_formats/geojson.md index 84499ea..fbac3fd 100644 --- a/docs/reference/publication_formats/geojson.md +++ b/docs/reference/publication_formats/geojson.md @@ -3,15 +3,11 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` -```{admonition} Consultation -This page has [open issues](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues?q=is%3Aopen+is%3Aissue+label%3A%22GeoJSON+format%22+). -``` - This page describes how to publish data in GeoJSON format. If your data is small enough to fit into memory or if you are publishing data via an API, you should use the [small files and API responses option](#small-files-and-api-responses-option). If your data is too large to fit into memory, you should use the [streaming option](#streaming-option). diff --git a/docs/reference/publication_formats/index.md b/docs/reference/publication_formats/index.md index 4bc8a24..76cca5c 100644 --- a/docs/reference/publication_formats/index.md +++ b/docs/reference/publication_formats/index.md @@ -3,16 +3,11 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` -```{admonition} Consultation -The following issues relate to this page: -* [#51 Packaging multiple networks](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/51) -``` - OFDS data must be published using at least one of the formats described in this section: ```{eval-rst} diff --git a/docs/reference/publication_formats/json.md b/docs/reference/publication_formats/json.md index 3ab1cb5..8bb6ce0 100644 --- a/docs/reference/publication_formats/json.md +++ b/docs/reference/publication_formats/json.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` diff --git a/docs/reference/schema.md b/docs/reference/schema.md index 7b9e26c..038956c 100644 --- a/docs/reference/schema.md +++ b/docs/reference/schema.md @@ -3,7 +3,7 @@ ```{admonition} 0.1.0-beta release 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). +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 in the [issue tracker](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues) 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). ``` @@ -98,14 +98,6 @@ This section lists each component in the OFDS schema. Some components are reused #### Node -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -143,18 +135,6 @@ Each `Node` has the following fields: #### Span -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -229,11 +209,6 @@ Each `Phase` has the following fields: #### Organisation -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -278,11 +253,6 @@ Each `Organisation` has the following fields: #### Contract -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -661,11 +631,6 @@ The `CoordinateReferenceSystem` object references the CRS by `name` and `uri`. I For more information, see [How to transform coordinates to the correct coordinate reference system](../guidance/publication.md#how-to-transform-coordinates-to-the-correct-coordinate-reference-system). -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -703,12 +668,6 @@ Each `CoordinateReferenceSystem` has the following fields: #### Link -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -783,11 +742,6 @@ Each `FibreTypeDetails` has the following fields: #### DeploymentDetails -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json @@ -825,11 +779,6 @@ Each `DeploymentDetails` has the following fields: #### CapacityDetails -```{admonition} Consultation -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: ```{jsoninclude-quote} ../../schema/network-schema.json diff --git a/manage.py b/manage.py index e54b533..d5861a3 100755 --- a/manage.py +++ b/manage.py @@ -11,12 +11,9 @@ from collections import OrderedDict from flattentool import create_template, flatten -from github import Github from ocdskit.mapping_sheet import mapping_sheet from pathlib import Path -GITHUB_ACCESS_TOKEN = os.environ['GITHUB_ACCESS_TOKEN'] - basedir = Path(__file__).resolve().parent codelistdir = basedir / 'codelists' examplesdir = basedir / 'examples' @@ -84,20 +81,6 @@ def get_dereferenced_schema(schema, output=None): return output -def get_issues(issue_urls): - """ - Accepts a comma-separated list of issue urls and returns issues from the Github API. - """ - github = Github(GITHUB_ACCESS_TOKEN) - repo = github.get_repo("Open-Telecoms-Data/open-fibre-data-standard") - issues = [] - - for issue_url in set(issue_urls.split(",")): - issues.append(repo.get_issue(number=int(issue_url.split("/")[-1]))) - - return issues - - def update_csv_docs(jsonref_schema): """Update docs/reference/publication_formats/csv.md""" @@ -379,33 +362,7 @@ def update_schema_docs(schema): # Add heading definition["content"].insert(0, f"#### {defn}\n") - - # Get Github issues and list related definitions and properties - definition["issues"] = OrderedDict() - if definition.get("$comment"): - for issue in get_issues(definition["$comment"]): - definition["issues"][issue.url] = {"issue": issue, "relatedTo": [defn]} - - for prop, property in definition["properties"].items(): - if property.get("$comment"): - for issue in get_issues(property["$comment"]): - if issue.url in definition["issues"]: - definition["issues"][issue.url]["relatedTo"].append(f".{prop}") - else: - definition["issues"][issue.url] = {"issue": issue, "relatedTo": [f".{prop}"]} - - # Add admonition with list of related Github issues - if len(definition["issues"]) > 0: - definition["content"].extend([ - "```{admonition} Consultation\n", - "The following issues relate to this component or its fields:\n" - ]) - for issue in definition["issues"].values(): - definition["content"].extend([ - f"* `{'`, `'.join(issue['relatedTo'])}`: [#{issue['issue'].number} {issue['issue'].title}]({issue['issue'].html_url})\n" - ]) - definition["content"].append("```\n\n") - + # Add description definition["content"].extend([ f"`{defn}` is defined as:\n\n", From a355b13dda6d3e9407b18aa33790a0e7a0e23cb8 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 15 Dec 2022 16:41:17 +1300 Subject: [PATCH 4/7] .gitignore: Ignore config files for Visual Studio Code and Pyenv --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c9811e7..c0d9f2d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .ve *.swp *~ -_build \ No newline at end of file +_build +.python-version +.vscode From 0ed09b0b0399d7a5ab8627d29941a6ac1f9dcfcd Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 15 Dec 2022 16:42:21 +1300 Subject: [PATCH 5/7] network-schema.csv: Resolve references --- manage.py | 2 +- schema/network-schema.csv | 249 ++++++++++++++++++++++++-------------- 2 files changed, 158 insertions(+), 93 deletions(-) diff --git a/manage.py b/manage.py index d5861a3..5859856 100755 --- a/manage.py +++ b/manage.py @@ -454,7 +454,7 @@ def pre_commit(): jsonref_schema = json_load('network-schema.json', jsonref) # Generate network-schema.csv - schema_table = mapping_sheet(schema, include_codelist=True, include_definitions=True) + schema_table = mapping_sheet(schema, include_codelist=True, include_definitions=False) with (schemadir / 'network-schema.csv').open('w', newline='') as f: writer = csv.DictWriter(f, fieldnames=schema_table[0], lineterminator='\n') diff --git a/schema/network-schema.csv b/schema/network-schema.csv index 006ae37..bc52cb4 100644 --- a/schema/network-schema.csv +++ b/schema/network-schema.csv @@ -7,111 +7,176 @@ section,path,title,description,type,range,values,links,deprecated,deprecationNot * 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.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-format-data-for-publication,,, +,nodes,Node,"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.",object,,,,,, +nodes,nodes/id,Identifier,An identifier for this node. The identifier must be unique within the scope of the `nodes` array.,string,1..1,,,,, +nodes,nodes/name,Node name,A name for this node.,string,0..1,,,,, +nodes,nodes/phase,Phase,The phase to which this node belongs.,object,0..1,,,,, +nodes,nodes/phase,Phase reference,The identifier and name of the phase being referenced. Used for cross-referencing.,object,0..1,,,,, +nodes,nodes/phase/id,Identifier,The identifier of the phase being referenced. This must match the `.id` of a phase in the `phases` array.,string,1..1,,,,, +nodes,nodes/phase/name,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.,string,0..1,,,,, +nodes,nodes/status,Status,"The status of this node, from the closed nodeStatus codelist.",string,0..1,"Enum: proposed, planned, underConstruction, operational, decommissioned, inactive",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodestatus,,,nodeStatus.csv +nodes,nodes/location,Node location,A GeoJSON Point geometry describing the physical location of this node.,object,0..1,,https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4,,, +nodes,nodes/location,Geometry,A GeoJSON Geometry object.,object,0..1,,https://datatracker.ietf.org/doc/html/rfc7946#section-3.1,,, +nodes,nodes/location/type,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`.",string,1..1,"Enum: LineString, Point","https://datatracker.ietf.org/doc/html/rfc7946#section-1.4, https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#geometrytype",,,geometryType.csv +nodes,nodes/location/coordinates,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]].",array,1..n,,"https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1, https://datatracker.ietf.org/doc/html/rfc7946#ref-WGS84",,, +nodes,nodes/address,Node address,The physical address of this node.,object,0..1,,,,, +nodes,nodes/address,Address,An address.,object,0..1,,,,, +nodes,nodes/address/streetAddress,Street address,"The street address. For example, 1600 Amphitheatre Pkwy.",string,0..1,,,,, +nodes,nodes/address/locality,Locality,"The locality. For example, Mountain View.",string,0..1,,,,, +nodes,nodes/address/region,Region,"The region. For example, CA.",string,0..1,,,,, +nodes,nodes/address/postalCode,Postal code,"The postal code. For example, 94043.",string,0..1,,,,, +nodes,nodes/address/country,Country,"The country in which the address is physically located, from the closed country codelist.",string,0..1,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv +nodes,nodes/type,Node type,"The type of this node, from the open nodeType codelist.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetype,,,nodeType.csv +nodes,nodes/accessPoint,Access point,Whether active or passive transmission equipment is installed at this node which is capable of providing access to the network.,boolean,0..1,,,,, +nodes,nodes/internationalConnections,International connections,"The international connections available at this node. For all connections, `.country` is required.",array,0..n,,,,, +,nodes/internationalConnections,Address,An address.,object,,,,,, +nodes,nodes/internationalConnections/streetAddress,Street address,"The street address. For example, 1600 Amphitheatre Pkwy.",string,0..1,,,,, +nodes,nodes/internationalConnections/locality,Locality,"The locality. For example, Mountain View.",string,0..1,,,,, +nodes,nodes/internationalConnections/region,Region,"The region. For example, CA.",string,0..1,,,,, +nodes,nodes/internationalConnections/postalCode,Postal code,"The postal code. For example, 94043.",string,0..1,,,,, +nodes,nodes/internationalConnections/country,Country,"The country in which the address is physically located, from the closed country codelist.",string,0..1,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv +nodes,nodes/power,Power availability,Whether power for active network equipment is available at this node.,boolean,0..1,,,,, +nodes,nodes/technologies,Technologies,"The active technologies used at this node, from the open nodeTechnologies codelist.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetechnologies,,,nodeTechnologies.csv +nodes,nodes/physicalInfrastructureProvider,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.",object,0..1,,,,, +nodes,nodes/physicalInfrastructureProvider,Organisation reference,The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.,object,0..1,,,,, +nodes,nodes/physicalInfrastructureProvider/id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, +nodes,nodes/physicalInfrastructureProvider/name,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.,string,0..1,,,,, +nodes,nodes/networkProvider,Network provider,"The organisation that operates 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.",object,0..1,,,,, +nodes,nodes/networkProvider,Organisation reference,The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.,object,0..1,,,,, +nodes,nodes/networkProvider/id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, +nodes,nodes/networkProvider/name,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.,string,0..1,,,,, ,spans,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.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-format-data-for-publication,,, +,spans,Span,A physical connection between two nodes.,object,,,,,, +spans,spans/id,Identifier,An identifier for this span. The identifier must be unique within the scope of the `spans` array.,string,1..1,,,,, +spans,spans/name,Span name,A name for this span.,string,0..1,,,,, +spans,spans/phase,Phase,The phase to which this span belongs.,object,0..1,,,,, +spans,spans/phase,Phase reference,The identifier and name of the phase being referenced. Used for cross-referencing.,object,0..1,,,,, +spans,spans/phase/id,Identifier,The identifier of the phase being referenced. This must match the `.id` of a phase in the `phases` array.,string,1..1,,,,, +spans,spans/phase/name,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.,string,0..1,,,,, +spans,spans/status,Span status,"The status of the network infrastructure for this span, from the closed spanStatus codelist.",string,0..1,"Enum: operational, underConstruction, planned, decommissioned, proposed, inactive",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spanstatus,,,spanStatus.csv +spans,spans/readyForServiceDate,Ready for service date,The date this span was ready to carry traffic.,string,0..1,date,,,, +spans,spans/start,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.",string,0..1,,,,, +spans,spans/end,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.",string,0..1,,,,, +spans,spans/directed,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.",boolean,0..1,,,,, +spans,spans/route,Span route,A GeoJSON LineString geometry describing the route of this span.,object,0..1,,https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4,,, +spans,spans/route,Geometry,A GeoJSON Geometry object.,object,0..1,,https://datatracker.ietf.org/doc/html/rfc7946#section-3.1,,, +spans,spans/route/type,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`.",string,1..1,"Enum: LineString, Point","https://datatracker.ietf.org/doc/html/rfc7946#section-1.4, https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#geometrytype",,,geometryType.csv +spans,spans/route/coordinates,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]].",array,1..n,,"https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1, https://datatracker.ietf.org/doc/html/rfc7946#ref-WGS84",,, +spans,spans/physicalInfrastructureProvider,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.",object,0..1,,,,, +spans,spans/physicalInfrastructureProvider,Organisation reference,The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.,object,0..1,,,,, +spans,spans/physicalInfrastructureProvider/id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, +spans,spans/physicalInfrastructureProvider/name,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.,string,0..1,,,,, +spans,spans/networkProvider,Network provider,"The organisation that operates 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.",object,0..1,,,,, +spans,spans/networkProvider,Organisation reference,The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.,object,0..1,,,,, +spans,spans/networkProvider/id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, +spans,spans/networkProvider/name,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.,string,0..1,,,,, +spans,spans/supplier,Supplier,The organisation responsible for installing the cable for this span.,object,0..1,,,,, +spans,spans/supplier,Organisation reference,The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.,object,0..1,,,,, +spans,spans/supplier/id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, +spans,spans/supplier/name,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.,string,0..1,,,,, +spans,spans/transmissionMedium,Transmission medium,"The physical media of this span, from the closed transmissionMedium codelist.",array,0..n,"Enum: fibre, microwave, copper, coaxial",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#transmissionmedium,,,transmissionMedium.csv +spans,spans/deployment,Deployment,"The physical deployment of this span, from the closed deployment codelist. Further details of this span's deployment can be provided in `.deploymentDetails`.",array,0..n,"Enum: aboveGround, belowGround",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#deployment,,,deployment.csv +spans,spans/deploymentDetails,Deployment details,Further details of this span's deployment.,object,0..1,,,,, +spans,spans/deploymentDetails,Deployment details,Further details about a span's deployment.,object,0..1,,,,, +spans,spans/deploymentDetails/description,Description,A description of this span's deployment.,string,0..1,,,,, +spans,spans/darkFibre,Dark fibre availability,Whether access to dark fibre is available on this span.,boolean,0..1,,,,, +spans,spans/fibreType,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`.",string,0..1,"Enum: G.651.1, G.652, G.653, G.654, G.655, G.656, G.657",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#fibretype,,,fibreType.csv +spans,spans/fibreTypeDetails,Fibre type details,Further details about this span's fibre type.,object,0..1,,,,, +spans,spans/fibreTypeDetails,Fibre type details,Further details about a span's fibre type.,object,0..1,,,,, +spans,spans/fibreTypeDetails/fibreSubtype,Fibre subtype,"The sub-category of the fibre type. For example, G.652.B.",string,0..1,,,,, +spans,spans/fibreTypeDetails/description,Description,A description of this span's fibre type.,string,0..1,,,,, +spans,spans/fibreCount,Fibre count,The number of individual optical fibres in this span.,integer,0..1,,,,, +spans,spans/fibreLength,Fibre length,The physical length of fibre optic cable used in this span.,number,0..1,,,,, +spans,spans/technologies,Technologies,"The active technologies used on this span,from the open spanTechnologies codelist.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spantechnologies,,,spanTechnologies.csv +spans,spans/capacity,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. Further details of this span's capacity can be provided in `.capacityDetails`.",number,0..1,,,,, +spans,spans/capacityDetails,Capacity details,Further details about this span's capacity,object,0..1,,,,, +spans,spans/capacityDetails,Capacity details,Further details about a span's capacity.,object,0..1,,,,, +spans,spans/capacityDetails/description,Description,A description of this span's capacity.,string,0..1,,,,, +spans,spans/countries,Countries,"The countries in which this span is physically located, from the closed country codelist.",array,0..n,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv ,phases,Phases,Information about the phases in which this network is deployed.,array,0..n,,,,, +,phases,Phase,A set of nodes and/or spans deployed as a group.,object,,,,,, +phases,phases/id,Identifier,An identifier for this phase. The identifier must be unique within the scope of the `phases` array.,string,1..1,,,,, +phases,phases/name,Name,A name for this phase.,string,0..1,,,,, +phases,phases/description,Description,A description for this phase.,string,0..1,,,,, +phases,phases/funders,Funders,"Information about the organisations that provide financing for the development or operation of this phase, also known as investors or financers.",array,0..n,,,,, +,phases/funders,Organisation reference,The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.,object,,,,,, +phases,phases/funders/id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, +phases,phases/funders/name,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.,string,0..1,,,,, ,organisations,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.,array,0..n,,,,, +,organisations,Organisation,An organisation.,object,,,,,, +organisations,organisations/id,Local identifier,A local identifier for this organisation. The identifier must be unique within the scope of the `organisations` array.,string,1..1,,,,, +organisations,organisations/name,Name,A name for this organisation.,string,0..1,,,,, +organisations,organisations/identifier,Organisation identifier,An identifier for this organisation.,object,0..1,,,,, +organisations,organisations/identifier,Organisation identifier,An organisation identifier.,object,0..1,,,,, +organisations,organisations/identifier/id,Identifier,The identifier assigned to the organisation in the register identified in `.scheme`.,string,0..1,,,,, +organisations,organisations/identifier/scheme,Scheme,"The register from which the identifier in `.id` is drawn, from the open organisationIdentifierScheme codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationidentifierscheme,,,organisationIdentifierScheme.csv +organisations,organisations/identifier/legalName,Legal name,The legally registered name of the organisation,string,0..1,,,,, +organisations,organisations/identifier/uri,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`.",string,0..1,iri,,,, +organisations,organisations/country,Country,"The country in which this organisation is legally registered, from the closed country codelist.",string,0..1,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv +organisations,organisations/roles,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`.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationrole,,,organisationRole.csv +organisations,organisations/roleDetails,Role details,Further details about this organisation's roles in the network,string,0..1,,,,, +organisations,organisations/website,Website,The URL of the website for this organisation.,string,0..1,iri,,,, +organisations,organisations/logo,Logo,The URL of the logo for this organisation.,string,0..1,iri,,,, ,contracts,Contracts,Information about contracts related to this network.,array,0..n,,,,, +,contracts,Contract,An agreement between the public and private sectors to develop a network.,object,,,,,, +contracts,contracts/id,Identifier,An identifier for this contract. The identifier must be unique within the scope of the `contracts` array.,string,1..1,,,,, +contracts,contracts/title,Contract title,A title for this contract.,string,0..1,,,,, +contracts,contracts/description,Contract description,A description for this contract.,string,0..1,,,,, +contracts,contracts/type,Contract type,"The type of this contract, from the open contractType codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#contracttype,,,contractType.csv +contracts,contracts/value,Contract value,The value of this contract.,object,0..1,,,,, +contracts,contracts/value,Value,A financial value.,object,0..1,,,,, +contracts,contracts/value/amount,Amount,The amount of this value.,number,0..1,,,,, +contracts,contracts/value/currency,Currency,"The currency of this value, from the closed currency codelist.",string,0..1,"Enum: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL, ADP, AFA, ALK, AOK, AON, AOR, ARA, ARP, ARY, ATS, AYM, AZM, BAD, BEC, BEF, BEL, BGJ, BGK, BGL, BOP, BRB, BRC, BRE, BRN, BRR, BUK, BYB, BYR, CHC, CSD, CSJ, CSK, CYP, DDM, DEM, ECS, ECV, EEK, ESA, ESB, ESP, FIM, FRF, GEK, GHC, GHP, GNE, GNS, GQE, GRD, GWE, GWP, HRD, IEP, ILP, ILR, ISJ, ITL, LAJ, LSM, LTL, LTT, LUC, LUF, LUL, LVL, LVR, MGF, MLF, MRO, MTL, MTP, MVQ, MXP, MZE, MZM, NIC, NLG, PEH, PEI, PES, PLZ, PTE, RHD, ROK, ROL, RUR, SDD, SDP, SIT, SKK, SRG, STD, SUR, TJR, TMM, TPE, TRL, UAK, UGS, UGW, USS, UYN, UYP, VEB, VEF, VNC, XEU, XFO, XFU, XRE, YDD, YUD, YUM, YUN, ZAL, ZMK, ZRN, ZRZ, ZWC, ZWD, ZWN, ZWR",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#currency,,,currency.csv +contracts,contracts/dateSigned,Date signed,The date this contract was signed.,string,0..1,date,,,, +contracts,contracts/documents,Contract documents,The documents related to this contract.,array,0..n,,,,, +,contracts/documents,Document,A piece of electronic or physical matter that provides information or evidence or that serves as an official record.,object,,,,,, +contracts,contracts/documents/title,Title,A title for this document.,string,0..1,,,,, +contracts,contracts/documents/description,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.",string,0..1,,,,, +contracts,contracts/documents/url,URL,A web address for accessing this document.,string,0..1,iri,,,, +contracts,contracts/documents/format,Format,"The format of this document, from the open mediaType codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#mediatype,,,mediaType.csv +contracts,contracts/relatedPhases,Related phases,The phases to which this contract relates.,array,0..n,,,,, +,contracts/relatedPhases,Phase reference,The identifier and name of the phase being referenced. Used for cross-referencing.,object,,,,,, +contracts,contracts/relatedPhases/id,Identifier,The identifier of the phase being referenced. This must match the `.id` of a phase in the `phases` array.,string,1..1,,,,, +contracts,contracts/relatedPhases/name,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.,string,0..1,,,,, ,website,Website,The URL of the website for this network.,string,0..1,iri,,,, -,publisher,Publisher,The organisation that published this network.,unknown,0..1,,,,, +,publisher,Publisher,The organisation that published this network.,object,0..1,,,,, +,publisher,Organisation,An organisation.,object,0..1,,,,, +publisher,publisher/id,Local identifier,A local identifier for this organisation. The identifier must be unique within the scope of the `organisations` array.,string,1..1,,,,, +publisher,publisher/name,Name,A name for this organisation.,string,0..1,,,,, +publisher,publisher/identifier,Organisation identifier,An identifier for this organisation.,object,0..1,,,,, +publisher,publisher/identifier,Organisation identifier,An organisation identifier.,object,0..1,,,,, +publisher,publisher/identifier/id,Identifier,The identifier assigned to the organisation in the register identified in `.scheme`.,string,0..1,,,,, +publisher,publisher/identifier/scheme,Scheme,"The register from which the identifier in `.id` is drawn, from the open organisationIdentifierScheme codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationidentifierscheme,,,organisationIdentifierScheme.csv +publisher,publisher/identifier/legalName,Legal name,The legally registered name of the organisation,string,0..1,,,,, +publisher,publisher/identifier/uri,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`.",string,0..1,iri,,,, +publisher,publisher/country,Country,"The country in which this organisation is legally registered, from the closed country codelist.",string,0..1,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv +publisher,publisher/roles,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`.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationrole,,,organisationRole.csv +publisher,publisher/roleDetails,Role details,Further details about this organisation's roles in the network,string,0..1,,,,, +publisher,publisher/website,Website,The URL of the website for this organisation.,string,0..1,iri,,,, +publisher,publisher/logo,Logo,The URL of the logo for this organisation.,string,0..1,iri,,,, ,publicationDate,Publication date,The date when this network was published.,string,0..1,date,,,, ,collectionDate,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.",string,0..1,date,,,, -,crs,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.,unknown,0..1,,,,, +,crs,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.,object,0..1,,,,, +,crs,Coordinate reference system,The coordinate reference system used in the data.,object,0..1,,,,, +crs,crs/name,Name,The name of the coordinate reference system.,string,1..1,uri,,,, +crs,crs/uri,Uniform Resource Identifier,A URI for the coordinate reference system.,string,1..1,uri,,,, ,accuracy,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`.",number,0..1,,,,, ,accuracyDetails,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.",string,0..1,,,,, ,language,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.",string,0..1,,"https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#language, https://www.w3.org/International/articles/language-tags/",,,language.csv ,links,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.",array,1..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-publish-large-networks,,, -Node,id,Identifier,An identifier for this node. The identifier must be unique within the scope of the `nodes` array.,string,1..1,,,,, -Node,name,Node name,A name for this node.,string,0..1,,,,, -Node,phase,Phase,The phase to which this node belongs.,unknown,0..1,,,,, -Node,status,Status,"The status of this node, from the closed nodeStatus codelist.",string,0..1,"Enum: proposed, planned, underConstruction, operational, decommissioned, inactive",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodestatus,,,nodeStatus.csv -Node,location,Node location,A GeoJSON Point geometry describing the physical location of this node.,unknown,0..1,,https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4,,, -Node,address,Node address,The physical address of this node.,unknown,0..1,,,,, -Node,type,Node type,"The type of this node, from the open nodeType codelist.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetype,,,nodeType.csv -Node,accessPoint,Access point,Whether active or passive transmission equipment is installed at this node which is capable of providing access to the network.,boolean,0..1,,,,, -Node,internationalConnections,International connections,"The international connections available at this node. For all connections, `.country` is required.",array,0..n,,,,, -Node,power,Power availability,Whether power for active network equipment is available at this node.,boolean,0..1,,,,, -Node,technologies,Technologies,"The active technologies used at this node, from the open nodeTechnologies codelist.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetechnologies,,,nodeTechnologies.csv -Node,physicalInfrastructureProvider,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.",unknown,0..1,,,,, -Node,networkProvider,Network provider,"The organisation that operates 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.",unknown,0..1,,,,, -Span,id,Identifier,An identifier for this span. The identifier must be unique within the scope of the `spans` array.,string,1..1,,,,, -Span,name,Span name,A name for this span.,string,0..1,,,,, -Span,phase,Phase,The phase to which this span belongs.,unknown,0..1,,,,, -Span,status,Span status,"The status of the network infrastructure for this span, from the closed spanStatus codelist.",string,0..1,"Enum: operational, underConstruction, planned, decommissioned, proposed, inactive",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spanstatus,,,spanStatus.csv -Span,readyForServiceDate,Ready for service date,The date this span was ready to carry traffic.,string,0..1,date,,,, -Span,start,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.",string,0..1,,,,, -Span,end,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.",string,0..1,,,,, -Span,directed,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.",boolean,0..1,,,,, -Span,route,Span route,A GeoJSON LineString geometry describing the route of this span.,unknown,0..1,,https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4,,, -Span,physicalInfrastructureProvider,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.",unknown,0..1,,,,, -Span,networkProvider,Network provider,"The organisation that operates 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.",unknown,0..1,,,,, -Span,supplier,Supplier,The organisation responsible for installing the cable for this span.,unknown,0..1,,,,, -Span,transmissionMedium,Transmission medium,"The physical media of this span, from the closed transmissionMedium codelist.",array,0..n,"Enum: fibre, microwave, copper, coaxial",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#transmissionmedium,,,transmissionMedium.csv -Span,deployment,Deployment,"The physical deployment of this span, from the closed deployment codelist. Further details of this span's deployment can be provided in `.deploymentDetails`.",array,0..n,"Enum: aboveGround, belowGround",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#deployment,,,deployment.csv -Span,deploymentDetails,Deployment details,Further details of this span's deployment.,unknown,0..1,,,,, -Span,darkFibre,Dark fibre availability,Whether access to dark fibre is available on this span.,boolean,0..1,,,,, -Span,fibreType,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`.",string,0..1,"Enum: G.651.1, G.652, G.653, G.654, G.655, G.656, G.657",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#fibretype,,,fibreType.csv -Span,fibreTypeDetails,Fibre type details,Further details about this span's fibre type.,unknown,0..1,,,,, -Span,fibreCount,Fibre count,The number of individual optical fibres in this span.,integer,0..1,,,,, -Span,fibreLength,Fibre length,The physical length of fibre optic cable used in this span.,number,0..1,,,,, -Span,technologies,Technologies,"The active technologies used on this span,from the open spanTechnologies codelist.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spantechnologies,,,spanTechnologies.csv -Span,capacity,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. Further details of this span's capacity can be provided in `.capacityDetails`.",number,0..1,,,,, -Span,capacityDetails,Capacity details,Further details about this span's capacity,unknown,0..1,,,,, -Span,countries,Countries,"The countries in which this span is physically located, from the closed country codelist.",array,0..n,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv -Phase,id,Identifier,An identifier for this phase. The identifier must be unique within the scope of the `phases` array.,string,1..1,,,,, -Phase,name,Name,A name for this phase.,string,0..1,,,,, -Phase,description,Description,A description for this phase.,string,0..1,,,,, -Phase,funders,Funders,"Information about the organisations that provide financing for the development or operation of this phase, also known as investors or financers.",array,0..n,,,,, -Organisation,id,Local identifier,A local identifier for this organisation. The identifier must be unique within the scope of the `organisations` array.,string,1..1,,,,, -Organisation,name,Name,A name for this organisation.,string,0..1,,,,, -Organisation,identifier,Organisation identifier,An identifier for this organisation.,unknown,0..1,,,,, -Organisation,country,Country,"The country in which this organisation is legally registered, from the closed country codelist.",string,0..1,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv -Organisation,roles,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`.",array,0..n,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationrole,,,organisationRole.csv -Organisation,roleDetails,Role details,Further details about this organisation's roles in the network,string,0..1,,,,, -Organisation,website,Website,The URL of the website for this organisation.,string,0..1,iri,,,, -Organisation,logo,Logo,The URL of the logo for this organisation.,string,0..1,iri,,,, -Contract,id,Identifier,An identifier for this contract. The identifier must be unique within the scope of the `contracts` array.,string,1..1,,,,, -Contract,title,Contract title,A title for this contract.,string,0..1,,,,, -Contract,description,Contract description,A description for this contract.,string,0..1,,,,, -Contract,type,Contract type,"The type of this contract, from the open contractType codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#contracttype,,,contractType.csv -Contract,value,Contract value,The value of this contract.,unknown,0..1,,,,, -Contract,dateSigned,Date signed,The date this contract was signed.,string,0..1,date,,,, -Contract,documents,Contract documents,The documents related to this contract.,array,0..n,,,,, -Contract,relatedPhases,Related phases,The phases to which this contract relates.,array,0..n,,,,, -Geometry,type,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`.",string,1..1,"Enum: LineString, Point","https://datatracker.ietf.org/doc/html/rfc7946#section-1.4, https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#geometrytype",,,geometryType.csv -Geometry,coordinates,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]].",array,1..n,,"https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1, https://datatracker.ietf.org/doc/html/rfc7946#ref-WGS84",,, -OrganisationReference,id,Local identifier,The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.,string,1..1,,,,, -OrganisationReference,name,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.,string,0..1,,,,, -PhaseReference,id,Identifier,The identifier of the phase being referenced. This must match the `.id` of a phase in the `phases` array.,string,1..1,,,,, -PhaseReference,name,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.,string,0..1,,,,, -Address,streetAddress,Street address,"The street address. For example, 1600 Amphitheatre Pkwy.",string,0..1,,,,, -Address,locality,Locality,"The locality. For example, Mountain View.",string,0..1,,,,, -Address,region,Region,"The region. For example, CA.",string,0..1,,,,, -Address,postalCode,Postal code,"The postal code. For example, 94043.",string,0..1,,,,, -Address,country,Country,"The country in which the address is physically located, from the closed country codelist.",string,0..1,"Enum: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country,,,country.csv -Value,amount,Amount,The amount of this value.,number,0..1,,,,, -Value,currency,Currency,"The currency of this value, from the closed currency codelist.",string,0..1,"Enum: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL, ADP, AFA, ALK, AOK, AON, AOR, ARA, ARP, ARY, ATS, AYM, AZM, BAD, BEC, BEF, BEL, BGJ, BGK, BGL, BOP, BRB, BRC, BRE, BRN, BRR, BUK, BYB, BYR, CHC, CSD, CSJ, CSK, CYP, DDM, DEM, ECS, ECV, EEK, ESA, ESB, ESP, FIM, FRF, GEK, GHC, GHP, GNE, GNS, GQE, GRD, GWE, GWP, HRD, IEP, ILP, ILR, ISJ, ITL, LAJ, LSM, LTL, LTT, LUC, LUF, LUL, LVL, LVR, MGF, MLF, MRO, MTL, MTP, MVQ, MXP, MZE, MZM, NIC, NLG, PEH, PEI, PES, PLZ, PTE, RHD, ROK, ROL, RUR, SDD, SDP, SIT, SKK, SRG, STD, SUR, TJR, TMM, TPE, TRL, UAK, UGS, UGW, USS, UYN, UYP, VEB, VEF, VNC, XEU, XFO, XFU, XRE, YDD, YUD, YUM, YUN, ZAL, ZMK, ZRN, ZRZ, ZWC, ZWD, ZWN, ZWR",https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#currency,,,currency.csv -Document,title,Title,A title for this document.,string,0..1,,,,, -Document,description,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.",string,0..1,,,,, -Document,url,URL,A web address for accessing this document.,string,0..1,iri,,,, -Document,format,Format,"The format of this document, from the open mediaType codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#mediatype,,,mediaType.csv -Identifier,id,Identifier,The identifier assigned to the organisation in the register identified in `.scheme`.,string,0..1,,,,, -Identifier,scheme,Scheme,"The register from which the identifier in `.id` is drawn, from the open organisationIdentifierScheme codelist.",string,0..1,,https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationidentifierscheme,,,organisationIdentifierScheme.csv -Identifier,legalName,Legal name,The legally registered name of the organisation,string,0..1,,,,, -Identifier,uri,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`.",string,0..1,iri,,,, -CoordinateReferenceSystem,name,Name,The name of the coordinate reference system.,string,1..1,uri,,,, -CoordinateReferenceSystem,uri,Uniform Resource Identifier,A URI for the coordinate reference system.,string,1..1,uri,,,, -Link,href,Link target,The URL of this related resource.,string,1..1,iri,,,, -Link,rel,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 `links` array to link to the schema that describes the structure of the data.",string,1..1,Pattern: ^(?!(describedby)),https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#linkrelationtype,,,linkRelationType.csv -FibreTypeDetails,fibreSubtype,Fibre subtype,"The sub-category of the fibre type. For example, G.652.B.",string,0..1,,,,, -FibreTypeDetails,description,Description,A description of this span's fibre type.,string,0..1,,,,, -DeploymentDetails,description,Description,A description of this span's deployment.,string,0..1,,,,, -CapacityDetails,description,Description,A description of this span's capacity.,string,0..1,,,,, +,links,Link,A link to a related resource.,object,,,,,, +links,links/href,Link target,The URL of this related resource.,string,1..1,iri,,,, +links,links/rel,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 `links` array to link to the schema that describes the structure of the data.",string,1..1,Pattern: ^(?!(describedby)),https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#linkrelationtype,,,linkRelationType.csv From 2fa677da3887e0a99a5e3bf982d3bff22942a6a4 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 15 Dec 2022 16:49:25 +1300 Subject: [PATCH 6/7] Update changelog --- docs/history/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 1734405..f7217fe 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -20,6 +20,7 @@ Iterative improvements are made outside of the release cycle. They do not involv - [#201](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/pull/201) - Add support page. - [#208](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/pull/208) - Add link to "WGS 84" text in docs/reference/schema.md. - [#213](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/pull/213) - For GeoJSON/JSON conversion, use libcoveofds now. +- [#232](https://github.com/Open-Telecoms-Data/open-fibre-data-standard/pull/232) - Remove unmaintained GitHub issue admonitions ## 0.1.0-beta - 2022-11-10 From 12a7844540b9533a598bdecb923adde6a76433ca Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 16 Dec 2022 11:59:25 +1300 Subject: [PATCH 7/7] network-schema.json: Remove $comment fields --- schema/network-schema.json | 101 ------------------------------------- 1 file changed, 101 deletions(-) diff --git a/schema/network-schema.json b/schema/network-schema.json index a7d3c5e..230dd1d 100644 --- a/schema/network-schema.json +++ b/schema/network-schema.json @@ -12,7 +12,6 @@ "id": { "title": "Identifier", "description": "A universally unique identifier for this network, as defined by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122). For more information, see the [identifier reference](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/identifiers.html).", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/58", "format": "uuid", "type": "string" }, @@ -20,13 +19,11 @@ "title": "Network name", "description": "A name for this network.", "type": "string", - "$comment": "", "minLength": 1 }, "nodes": { "title": "Nodes", "description": "Information about the nodes that belong to this network. Information about nodes should be embedded in this field unless:\n\n* 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`\n* 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`.\n\nFor more information, see [how to format data for publication](https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-format-data-for-publication).", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/75", "type": "array", "items": { "$ref": "#/definitions/Node" @@ -37,7 +34,6 @@ "spans": { "title": "Spans", "description": "Information about the spans that belong to this network. Information about spans should be embedded in this field unless:\n\n* 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`\n* 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`.\n\nFor more information, see [how to format data for publication](https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-format-data-for-publication).", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/75,https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/83", "type": "array", "items": { "$ref": "#/definitions/Span" @@ -49,7 +45,6 @@ "title": "Phases", "description": "Information about the phases in which this network is deployed.", "type": "array", - "$comment": "", "items": { "$ref": "#/definitions/Phase" }, @@ -60,7 +55,6 @@ "title": "Organisations", "description": "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.", "type": "array", - "$comment": "", "items": { "$ref": "#/definitions/Organisation" }, @@ -70,7 +64,6 @@ "contracts": { "title": "Contracts", "description": "Information about contracts related to this network.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/71", "type": "array", "items": { "$ref": "#/definitions/Contract" @@ -88,7 +81,6 @@ "publisher": { "title": "Publisher", "description": "The organisation that published this network.", - "$comment": "", "$ref": "#/definitions/Organisation" }, "publicationDate": { @@ -108,19 +100,16 @@ "crs": { "title": "Coordinate reference system", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/9", "$ref": "#/definitions/CoordinateReferenceSystem" }, "accuracy": { "title": "Accuracy", "description": "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`.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/70", "type": "number" }, "accuracyDetails": { "title": "Accuracy details", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/70", "type": "string", "minLength": 1 }, @@ -128,7 +117,6 @@ "title": "Language", "description": "The default language of this network,from the open [language codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#language). A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", "type": "string", - "$comment": "", "codelist": "language.csv", "openCodelist": true, "minLength": 1 @@ -136,7 +124,6 @@ "links": { "title": "Links", "description": "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](https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-publish-large-networks).", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/75,https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/83", "type": "array", "prefixItems": [ { @@ -164,34 +151,29 @@ "Node": { "title": "Node", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/60", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this node. The identifier must be unique within the scope of the `nodes` array.", "type": "string", - "$comment": "", "minLength": 1 }, "name": { "title": "Node name", "description": "A name for this node.", "type": "string", - "$comment": "", "minLength": 1 }, "phase": { "title": "Phase", "description": "The phase to which this node belongs.", - "$comment": "", "$ref": "#/definitions/PhaseReference" }, "status": { "title": "Status", "description": "The status of this node, from the closed [nodeStatus codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodestatus).", "type": "string", - "$comment": "", "codelist": "nodeStatus.csv", "openCodelist": false, "enum": [ @@ -206,20 +188,17 @@ "location": { "title": "Node location", "description": "A GeoJSON [Point](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4) geometry describing the physical location of this node.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/10", "$ref": "#/definitions/Geometry" }, "address": { "title": "Node address", "description": "The physical address of this node.", - "$comment": "", "$ref": "#/definitions/Address" }, "type": { "title": "Node type", "description": "The type of this node, from the open [nodeType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetype).", "type": "array", - "$comment": "", "items": { "type": [ "string" @@ -234,13 +213,11 @@ "accessPoint": { "title": "Access point", "description": "Whether active or passive transmission equipment is installed at this node which is capable of providing access to the network.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/60", "type": "boolean" }, "internationalConnections": { "title": "International connections", "description": "The international connections available at this node. For all connections, `.country` is required.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/72", "type": "array", "items": { "$ref": "#/definitions/Address" @@ -258,7 +235,6 @@ "title": "Technologies", "description": "The active technologies used at this node, from the open [nodeTechnologies codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetechnologies).", "type": "array", - "$comment": "", "items": { "type": [ "string" @@ -273,13 +249,11 @@ "physicalInfrastructureProvider": { "title": "Physical infrastructure provider", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "$ref": "#/definitions/OrganisationReference" }, "networkProvider": { "title": "Network provider", "description": "The organisation that operates 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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "$ref": "#/definitions/OrganisationReference" } }, @@ -291,34 +265,29 @@ "Span": { "title": "Span", "description": "A physical connection between two nodes.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/83", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this span. The identifier must be unique within the scope of the `spans` array.", "type": "string", - "$comment": "", "minLength": 1 }, "name": { "title": "Span name", "description": "A name for this span.", "type": "string", - "$comment": "", "minLength": 1 }, "phase": { "title": "Phase", "description": "The phase to which this span belongs.", - "$comment": "", "$ref": "#/definitions/PhaseReference" }, "status": { "title": "Span status", "description": "The status of the network infrastructure for this span, from the closed [spanStatus codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spanstatus).", "type": "string", - "$comment": "", "codelist": "spanStatus.csv", "openCodelist": false, "enum": [ @@ -340,14 +309,12 @@ "start": { "title": "Start", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/25", "type": "string", "minLength": 1 }, "end": { "title": "End", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/25", "type": "string", "minLength": 1 }, @@ -360,32 +327,27 @@ "route": { "title": "Span route", "description": "A GeoJSON [LineString](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4) geometry describing the route of this span.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/12,https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/12,https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/10,https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/10", "$ref": "#/definitions/Geometry" }, "physicalInfrastructureProvider": { "title": "Physical infrastructure provider", "description": "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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "$ref": "#/definitions/OrganisationReference" }, "networkProvider": { "title": "Network provider", "description": "The organisation that operates 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.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "$ref": "#/definitions/OrganisationReference" }, "supplier": { "title": "Supplier", "description": "The organisation responsible for installing the cable for this span.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/87", "$ref": "#/definitions/OrganisationReference" }, "transmissionMedium": { "title": "Transmission medium", "description": "The physical media of this span, from the closed [transmissionMedium codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#transmissionmedium).", "type": "array", - "$comment": "", "items": { "type": [ "string" @@ -406,7 +368,6 @@ "deployment": { "title": "Deployment", "description": "The physical deployment of this span, from the closed [deployment codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#deployment). Further details of this span's deployment can be provided in `.deploymentDetails`.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/26", "type": "array", "items": { "type": [ @@ -426,7 +387,6 @@ "deploymentDetails": { "title": "Deployment details", "description": "Further details of this span's deployment.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/26", "$ref": "#/definitions/DeploymentDetails" }, "darkFibre": { @@ -439,7 +399,6 @@ "title": "Fibre type", "description": "The type of fibre used in this span, from the closed [fibreType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#fibretype). Further details of the span's fibre type can be provided in `.fibreTypeDetails`.", "type": "string", - "$comment": "", "codelist": "fibreType.csv", "openCodelist": false, "enum": [ @@ -455,7 +414,6 @@ "fibreTypeDetails": { "title": "Fibre type details", "description": "Further details about this span's fibre type.", - "$comment": "", "$ref": "#/definitions/FibreTypeDetails" }, "fibreCount": { @@ -474,7 +432,6 @@ "title": "Technologies", "description": "The active technologies used on this span,from the open [spanTechnologies codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spantechnologies).", "type": "array", - "$comment": "", "items": { "type": [ "string" @@ -495,14 +452,12 @@ "capacityDetails": { "title": "Capacity details", "description": "Further details about this span's capacity", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/24", "$ref": "#/definitions/CapacityDetails" }, "countries": { "title": "Countries", "description": "The countries in which this span is physically located, from the closed [country codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country).", "type": "array", - "$comment": "", "items": { "type": [ "string" @@ -775,35 +730,30 @@ "Phase": { "title": "Phase", "description": "A set of nodes and/or spans deployed as a group.", - "$comment": "", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this phase. The identifier must be unique within the scope of the `phases` array.", "type": "string", - "$comment": "", "minLength": 1 }, "name": { "title": "Name", "description": "A name for this phase.", "type": "string", - "$comment": "", "minLength": 1 }, "description": { "title": "Description", "description": "A description for this phase.", "type": "string", - "$comment": "", "minLength": 1 }, "funders": { "title": "Funders", "description": "Information about the organisations that provide financing for the development or operation of this phase, also known as investors or financers.", "type": "array", - "$comment": "", "items": { "$ref": "#/definitions/OrganisationReference" }, @@ -819,34 +769,29 @@ "Organisation": { "title": "Organisation", "description": "An organisation.", - "$comment": "", "type": "object", "properties": { "id": { "title": "Local identifier", "description": "A local identifier for this organisation. The identifier must be unique within the scope of the `organisations` array.", "type": "string", - "$comment": "", "minLength": 1 }, "name": { "title": "Name", "description": "A name for this organisation.", "type": "string", - "$comment": "", "minLength": 1 }, "identifier": { "title": "Organisation identifier", "description": "An identifier for this organisation.", - "$comment": "", "$ref": "#/definitions/Identifier" }, "country": { "title": "Country", "description": "The country in which this organisation is legally registered, from the closed [country codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country).", "type": "string", - "$comment": "", "codelist": "country.csv", "openCodelist": false, "enum": [ @@ -1106,7 +1051,6 @@ "title": "Roles", "description": "This organisation's roles in this network, from the open [organisationRole codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationrole). Further details about this organisation's roles can be provided in `.roleDetails`.", "type": "array", - "$comment": "", "items": { "type": [ "string" @@ -1121,7 +1065,6 @@ "roleDetails": { "title": "Role details", "description": "Further details about this organisation's roles in the network", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "type": "string", "minLength": 1 }, @@ -1148,35 +1091,30 @@ "Contract": { "title": "Contract", "description": "An agreement between the public and private sectors to develop a network.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/71", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this contract. The identifier must be unique within the scope of the `contracts` array.", "type": "string", - "$comment": "", "minLength": 1 }, "title": { "title": "Contract title", "description": "A title for this contract.", "type": "string", - "$comment": "", "minLength": 1 }, "description": { "title": "Contract description", "description": "A description for this contract.", "type": "string", - "$comment": "", "minLength": 1 }, "type": { "title": "Contract type", "description": "The type of this contract, from the open [contractType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#contracttype).", "type": "string", - "$comment": "", "codelist": "contractType.csv", "openCodelist": true, "minLength": 1 @@ -1184,7 +1122,6 @@ "value": { "title": "Contract value", "description": "The value of this contract.", - "$comment": "", "$ref": "#/definitions/Value" }, "dateSigned": { @@ -1198,7 +1135,6 @@ "title": "Contract documents", "description": "The documents related to this contract.", "type": "array", - "$comment": "", "items": { "$ref": "#/definitions/Document" }, @@ -1209,7 +1145,6 @@ "title": "Related phases", "description": "The phases to which this contract relates.", "type": "array", - "$comment": "", "items": { "$ref": "#/definitions/PhaseReference" }, @@ -1225,14 +1160,12 @@ "Geometry": { "title": "Geometry", "description": "A [GeoJSON Geometry object](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1).", - "$comment": "", "type": "object", "properties": { "type": { "title": "Type", "description": "The [GeoJSON geometry type](https://datatracker.ietf.org/doc/html/rfc7946#section-1.4) that is described by `.coordinates`, from the closed [geometryType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#geometrytype). This must be 'Point' when referenced by `Node.location`, and 'LineString' when referenced by `Span.route`.", "type": "string", - "$comment": "", "codelist": "geometryType.csv", "openCodelist": false, "enum": [ @@ -1244,7 +1177,6 @@ "title": "Coordinates", "description": "One or more [GeoJSON positions](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1). 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.\n\nEach 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](https://datatracker.ietf.org/doc/html/rfc7946#ref-WGS84) 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\n\nTherefore, 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": "array", - "$comment": "", "items": { "type": [ "number", @@ -1267,21 +1199,18 @@ "OrganisationReference": { "title": "Organisation reference", "description": "The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.", - "$comment": "", "type": "object", "properties": { "id": { "title": "Local identifier", "description": "The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.", "type": "string", - "$comment": "", "minLength": 1 }, "name": { "title": "Name", "description": "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.", "type": "string", - "$comment": "", "minLength": 1 } }, @@ -1293,21 +1222,18 @@ "PhaseReference": { "title": "Phase reference", "description": "The identifier and name of the phase being referenced. Used for cross-referencing.", - "$comment": "", "type": "object", "properties": { "id": { "title": "Identifier", "description": "The identifier of the phase being referenced. This must match the `.id` of a phase in the `phases` array.", "type": "string", - "$comment": "", "minLength": 1 }, "name": { "title": "Name", "description": "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.", "type": "string", - "$comment": "", "minLength": 1 } }, @@ -1319,42 +1245,36 @@ "Address": { "title": "Address", "description": "An address.", - "$comment": "", "type": "object", "properties": { "streetAddress": { "title": "Street address", "description": "The street address. For example, 1600 Amphitheatre Pkwy.", "type": "string", - "$comment": "", "minLength": 1 }, "locality": { "title": "Locality", "description": "The locality. For example, Mountain View.", "type": "string", - "$comment": "", "minLength": 1 }, "region": { "title": "Region", "description": "The region. For example, CA.", "type": "string", - "$comment": "", "minLength": 1 }, "postalCode": { "title": "Postal code", "description": "The postal code. For example, 94043.", "type": "string", - "$comment": "", "minLength": 1 }, "country": { "title": "Country", "description": "The country in which the address is physically located, from the closed [country codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country).", "type": "string", - "$comment": "", "codelist": "country.csv", "openCodelist": false, "enum": [ @@ -1616,7 +1536,6 @@ "Value": { "title": "Value", "description": "A financial value.", - "$comment": "", "type": "object", "properties": { "amount": { @@ -1629,7 +1548,6 @@ "title": "Currency", "description": "The currency of this value, from the closed [currency codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#currency).", "type": "string", - "$comment": "", "codelist": "currency.csv", "openCodelist": false, "enum": [ @@ -1943,21 +1861,18 @@ "Document": { "title": "Document", "description": "A piece of electronic or physical matter that provides information or evidence or that serves as an official record.", - "$comment": "", "type": "object", "properties": { "title": { "title": "Title", "description": "A title for this document.", "type": "string", - "$comment": "", "minLength": 1 }, "description": { "title": "Description", "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.", "type": "string", - "$comment": "", "minLength": 1 }, "url": { @@ -1971,7 +1886,6 @@ "title": "Format", "description": "The format of this document, from the open [mediaType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#mediatype).", "type": "string", - "$comment": "", "codelist": "mediaType.csv", "openCodelist": true, "minLength": 1 @@ -1982,21 +1896,18 @@ "Identifier": { "title": "Organisation identifier", "description": "An organisation identifier.", - "$comment": "", "type": "object", "properties": { "id": { "title": "Identifier", "description": "The identifier assigned to the organisation in the register identified in `.scheme`.", "type": "string", - "$comment": "", "minLength": 1 }, "scheme": { "title": "Scheme", "description": "The register from which the identifier in `.id` is drawn, from the open [organisationIdentifierScheme codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationidentifierscheme).", "type": "string", - "$comment": "", "codelist": "organisationIdentifierScheme.csv", "openCodelist": true, "minLength": 1 @@ -2005,7 +1916,6 @@ "title": "Legal name", "description": "The legally registered name of the organisation", "type": "string", - "$comment": "", "minLength": 1 }, "uri": { @@ -2021,7 +1931,6 @@ "CoordinateReferenceSystem": { "title": "Coordinate reference system", "description": "The coordinate reference system used in the data.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/9", "type": "object", "properties": { "name": { @@ -2050,7 +1959,6 @@ "Link": { "title": "Link", "description": "A link to a related resource.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/75,https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/83", "type": "object", "properties": { "href": { @@ -2064,7 +1972,6 @@ "title": "Link relation type", "description": "The relationship with this related resource, from the open [linkRelationType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#linkrelationtype). The 'describedby' code must only be used in the first item in the `links` array to link to the schema that describes the structure of the data.", "type": "string", - "$comment": "", "codelist": "linkRelationType.csv", "openCodelist": true, "minLength": 1, @@ -2080,21 +1987,18 @@ "FibreTypeDetails": { "title": "Fibre type details", "description": "Further details about a span's fibre type.", - "$comment": "", "type": "object", "properties": { "fibreSubtype": { "title": "Fibre subtype", "description": "The sub-category of the fibre type. For example, G.652.B.", "type": "string", - "$comment": "", "minLength": 1 }, "description": { "title": "Description", "description": "A description of this span's fibre type.", "type": "string", - "$comment": "", "minLength": 1 } }, @@ -2103,14 +2007,12 @@ "DeploymentDetails": { "title": "Deployment details", "description": "Further details about a span's deployment.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/26", "type": "object", "properties": { "description": { "title": "Description", "description": "A description of this span's deployment.", "type": "string", - "$comment": "", "minLength": 1 } }, @@ -2119,20 +2021,17 @@ "CapacityDetails": { "title": "Capacity details", "description": "Further details about a span's capacity.", - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/24", "type": "object", "properties": { "description": { "title": "Description", "description": "A description of this span's capacity.", "type": "string", - "$comment": "", "minLength": 1 } }, "minProperties": 1 } }, - "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/75", "minProperties": 1 }