From 3db2a030fcdbc532dfb1774b624070a2b19eaa5e Mon Sep 17 00:00:00 2001 From: ericgodwin Date: Mon, 18 May 2026 17:45:30 -0700 Subject: [PATCH 1/2] Added provider, resource, and version as required fields. Signed-off-by: ericgodwin --- .../base/bathymetry/bad-depth.yaml | 3 ++ .../buildings/bad-confidence-in-source.yaml | 10 ++++-- counterexamples/buildings/bad-license.yaml | 3 ++ counterexamples/buildings/bad-time.yaml | 3 ++ .../buildings/building-part-bad-name.yaml | 3 ++ counterexamples/places/bad-empty-emails.yaml | 6 ++++ counterexamples/places/bad-empty-phones.yaml | 6 ++++ counterexamples/places/bad-empty-socials.yaml | 6 ++++ .../places/bad-empty-websites.yaml | 6 ++++ .../places/bad-operating-status.yaml | 6 ++++ .../segment/bad-source-between.yaml | 3 ++ docs/schema/0-Schema.mdx | 2 +- examples/base/bathymetry-example.yaml | 3 ++ examples/base/infrastructure-example.yaml | 3 ++ .../base/infrastructure-height-example.yaml | 3 ++ examples/base/land-cover-example.yaml | 3 ++ examples/base/land-sand-example.yaml | 3 ++ examples/base/land-use-example.yaml | 3 ++ examples/base/water-body-disputed.yaml | 3 ++ examples/base/water-river-example.yaml | 3 ++ examples/base/water-river-with-wikidata.yaml | 3 ++ examples/buildings/basic-sources.yaml | 3 ++ examples/buildings/building-part-basic.yaml | 6 ++++ examples/buildings/building-part-name.yaml | 3 ++ examples/buildings/building-polygon.yaml | 10 ++++-- examples/buildings/empire-state-building.json | 3 ++ examples/buildings/license-basic.yaml | 3 ++ examples/buildings/osm/outline.yaml | 3 ++ examples/buildings/osm/part1.yaml | 3 ++ examples/buildings/osm/part2.yaml | 3 ++ examples/divisions/division/capital_of.yaml | 3 ++ examples/divisions/division/class.yaml | 3 ++ examples/divisions/division/dependency.yaml | 3 ++ .../division/multiple_capital_division.yaml | 3 ++ examples/divisions/division/population.yaml | 3 ++ examples/divisions/division/prominence.yaml | 3 ++ examples/divisions/division/region.yaml | 3 ++ ...ace-no-emails-phones-socials-websites.yaml | 6 ++++ .../places/place-with-operating-status.yaml | 6 ++++ examples/places/place.yaml | 6 ++++ .../segment/road/road-with-lr-sources.yaml | 6 ++++ .../pyproject.toml | 3 ++ .../tests/address_baseline_schema.json | 25 ++++++++++++-- .../overture-schema-base-theme/pyproject.toml | 18 ++++++++++ .../tests/bathymetry_baseline_schema.json | 25 ++++++++++++-- .../tests/infrastructure_baseline_schema.json | 25 ++++++++++++-- .../tests/land_baseline_schema.json | 25 ++++++++++++-- .../tests/land_cover_baseline_schema.json | 25 ++++++++++++-- .../tests/land_use_baseline_schema.json | 25 ++++++++++++-- .../tests/water_baseline_schema.json | 25 ++++++++++++-- .../pyproject.toml | 6 ++++ .../tests/building_baseline_schema.json | 25 ++++++++++++-- .../tests/building_part_baseline_schema.json | 25 ++++++++++++-- packages/overture-schema-common/README.md | 8 ++--- .../src/overture/schema/common/sources.py | 29 +++++++++++++++- .../tests/test_models.py | 5 ++- .../pyproject.toml | 12 +++++++ .../tests/division_area_baseline_schema.json | 25 ++++++++++++-- .../tests/division_baseline_schema.json | 25 ++++++++++++-- .../division_boundary_baseline_schema.json | 25 ++++++++++++-- .../pyproject.toml | 3 ++ .../tests/place_baseline_schema.json | 25 ++++++++++++-- .../pyproject.toml | 6 ++++ .../tests/connector_baseline_schema.json | 25 ++++++++++++-- .../tests/segment_baseline_schema.json | 25 ++++++++++++-- .../base/bathymetry/bad-depth.yaml | 3 ++ .../buildings/bad-confidence-in-source.yaml | 10 ++++-- .../buildings/bad-license.yaml | 3 ++ .../counterexamples/buildings/bad-time.yaml | 3 ++ .../buildings/building-part-bad-name.yaml | 3 ++ .../places/bad-empty-emails.yaml | 6 ++++ .../places/bad-empty-phones.yaml | 6 ++++ .../places/bad-empty-socials.yaml | 6 ++++ .../places/bad-empty-websites.yaml | 6 ++++ .../places/bad-operating-status.yaml | 6 ++++ .../segment/bad-source-between.yaml | 3 ++ .../examples/base/bathymetry-example.yaml | 3 ++ .../examples/base/infrastructure-example.yaml | 3 ++ .../base/infrastructure-height-example.yaml | 3 ++ .../examples/base/land-cover-example.yaml | 3 ++ .../examples/base/land-sand-example.yaml | 3 ++ reference/examples/base/land-use-example.yaml | 3 ++ .../examples/base/water-body-disputed.yaml | 3 ++ .../examples/base/water-river-example.yaml | 3 ++ .../base/water-river-with-wikidata.yaml | 3 ++ .../examples/buildings/basic-sources.yaml | 3 ++ .../buildings/building-part-basic.yaml | 6 ++++ .../buildings/building-part-name.yaml | 3 ++ .../examples/buildings/building-polygon.yaml | 10 ++++-- .../buildings/empire-state-building.json | 3 ++ .../examples/buildings/license-basic.yaml | 3 ++ reference/examples/buildings/osm/outline.yaml | 3 ++ reference/examples/buildings/osm/part1.yaml | 3 ++ reference/examples/buildings/osm/part2.yaml | 3 ++ .../divisions/division/capital_of.yaml | 3 ++ .../examples/divisions/division/class.yaml | 3 ++ .../divisions/division/dependency.yaml | 3 ++ .../division/multiple_capital_division.yaml | 3 ++ .../divisions/division/population.yaml | 3 ++ .../divisions/division/prominence.yaml | 3 ++ .../examples/divisions/division/region.yaml | 3 ++ ...ace-no-emails-phones-socials-websites.yaml | 6 ++++ .../places/place-with-operating-status.yaml | 6 ++++ reference/examples/places/place.yaml | 6 ++++ .../segment/road/road-with-lr-sources.yaml | 6 ++++ schema/defs.yaml | 33 +++++++++++++------ 106 files changed, 773 insertions(+), 55 deletions(-) diff --git a/counterexamples/base/bathymetry/bad-depth.yaml b/counterexamples/base/bathymetry/bad-depth.yaml index 915d9aa32..0e8bdcb08 100644 --- a/counterexamples/base/bathymetry/bad-depth.yaml +++ b/counterexamples/base/bathymetry/bad-depth.yaml @@ -13,5 +13,8 @@ properties: - record_id: x123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: "2087-08-23" ext_expected_errors: - "depth/minimum]: minimum: got -1, want 0" diff --git a/counterexamples/buildings/bad-confidence-in-source.yaml b/counterexamples/buildings/bad-confidence-in-source.yaml index b6b625399..0efa04b7c 100644 --- a/counterexamples/buildings/bad-confidence-in-source.yaml +++ b/counterexamples/buildings/bad-confidence-in-source.yaml @@ -14,8 +14,14 @@ properties: height: 21.34 sources: - property: "" - dataset: microsoftMLBuildings, + dataset: microsoftMLBuildings + provider: microsoft + resource: ml-buildings + version: abc confidence: 100 - property: /properties/height - dataset: metaLidarExtractions, + dataset: metaLidarExtractions + provider: meta + resource: lidar-extractions + version: "2087-08-23" confidence: -1 diff --git a/counterexamples/buildings/bad-license.yaml b/counterexamples/buildings/bad-license.yaml index d4282f30b..823ec20ae 100644 --- a/counterexamples/buildings/bad-license.yaml +++ b/counterexamples/buildings/bad-license.yaml @@ -11,6 +11,9 @@ properties: version: 1 sources: - dataset: MyGreatDataset + provider: overture + resource: soccer-stadiums + version: "2087-08-23" property: "/geometry" update_time: '2024-04-26T23:55:01-08:00' confidence: 0.3 diff --git a/counterexamples/buildings/bad-time.yaml b/counterexamples/buildings/bad-time.yaml index 85e8a5404..8383f6a72 100644 --- a/counterexamples/buildings/bad-time.yaml +++ b/counterexamples/buildings/bad-time.yaml @@ -12,5 +12,8 @@ properties: version: 1 sources: - dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" property: "/blah" update_time: abc2023-02-22T23:55:01-08:00 diff --git a/counterexamples/buildings/building-part-bad-name.yaml b/counterexamples/buildings/building-part-bad-name.yaml index 8587e84f0..30ef581d8 100644 --- a/counterexamples/buildings/building-part-bad-name.yaml +++ b/counterexamples/buildings/building-part-bad-name.yaml @@ -30,3 +30,6 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/counterexamples/places/bad-empty-emails.yaml b/counterexamples/places/bad-empty-emails.yaml index 765034436..739eae145 100644 --- a/counterexamples/places/bad-empty-emails.yaml +++ b/counterexamples/places/bad-empty-emails.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/counterexamples/places/bad-empty-phones.yaml b/counterexamples/places/bad-empty-phones.yaml index ea48419cc..cb9540a58 100644 --- a/counterexamples/places/bad-empty-phones.yaml +++ b/counterexamples/places/bad-empty-phones.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/counterexamples/places/bad-empty-socials.yaml b/counterexamples/places/bad-empty-socials.yaml index 3f45d54cf..2fd559d6c 100644 --- a/counterexamples/places/bad-empty-socials.yaml +++ b/counterexamples/places/bad-empty-socials.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/counterexamples/places/bad-empty-websites.yaml b/counterexamples/places/bad-empty-websites.yaml index 0a28806eb..168d0eba3 100644 --- a/counterexamples/places/bad-empty-websites.yaml +++ b/counterexamples/places/bad-empty-websites.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/counterexamples/places/bad-operating-status.yaml b/counterexamples/places/bad-operating-status.yaml index 83888870a..0db30451b 100644 --- a/counterexamples/places/bad-operating-status.yaml +++ b/counterexamples/places/bad-operating-status.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/counterexamples/transportation/segment/bad-source-between.yaml b/counterexamples/transportation/segment/bad-source-between.yaml index 0df4f0b75..39816a8f9 100644 --- a/counterexamples/transportation/segment/bad-source-between.yaml +++ b/counterexamples/transportation/segment/bad-source-between.yaml @@ -21,4 +21,7 @@ properties: - record_id: w123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: "2087-08-23" between: [] diff --git a/docs/schema/0-Schema.mdx b/docs/schema/0-Schema.mdx index 43c0905c2..dc57503cb 100644 --- a/docs/schema/0-Schema.mdx +++ b/docs/schema/0-Schema.mdx @@ -49,7 +49,7 @@ In the Overture schema, all features have a unique `id` called a [GERS ID](https | **theme** | *string* | one of six Overture data themes | | **type** | *string* | one of 14 Overture feature types | | **version** | *int32* | version number of the feature, incremented in each Overture release where the geometry or attributes of this feature changed | -| **sources** | *list\\>\>* | array of source information for the properties of a given feature | +| **sources** | *list\\>\>* | array of source information for the properties of a given feature | ### Other key schema properties diff --git a/examples/base/bathymetry-example.yaml b/examples/base/bathymetry-example.yaml index ecc5f6b77..34b153651 100644 --- a/examples/base/bathymetry-example.yaml +++ b/examples/base/bathymetry-example.yaml @@ -16,4 +16,7 @@ properties: - record_id: x123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: "2087-08-23" version: 0 diff --git a/examples/base/infrastructure-example.yaml b/examples/base/infrastructure-example.yaml index 006a23384..4abb93300 100644 --- a/examples/base/infrastructure-example.yaml +++ b/examples/base/infrastructure-example.yaml @@ -18,4 +18,7 @@ properties: - property: "" record_id: w556368546@3 dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/examples/base/infrastructure-height-example.yaml b/examples/base/infrastructure-height-example.yaml index 68aacf8f7..8c3c0619a 100644 --- a/examples/base/infrastructure-height-example.yaml +++ b/examples/base/infrastructure-height-example.yaml @@ -16,4 +16,7 @@ properties: - property: "" record_id: n10707323715@5 dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/examples/base/land-cover-example.yaml b/examples/base/land-cover-example.yaml index c2c6cabcc..fb70fe2ed 100644 --- a/examples/base/land-cover-example.yaml +++ b/examples/base/land-cover-example.yaml @@ -16,4 +16,7 @@ properties: - record_id: x123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: "2087-08-23" version: 0 diff --git a/examples/base/land-sand-example.yaml b/examples/base/land-sand-example.yaml index b816f4971..bf47cc470 100644 --- a/examples/base/land-sand-example.yaml +++ b/examples/base/land-sand-example.yaml @@ -18,4 +18,7 @@ properties: - record_id: w407753930@3 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/examples/base/land-use-example.yaml b/examples/base/land-use-example.yaml index b1e6cbb97..3ded74457 100644 --- a/examples/base/land-use-example.yaml +++ b/examples/base/land-use-example.yaml @@ -19,4 +19,7 @@ properties: - record_id: w509487233@1 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/examples/base/water-body-disputed.yaml b/examples/base/water-body-disputed.yaml index 1adb9283d..ebf260ca9 100644 --- a/examples/base/water-body-disputed.yaml +++ b/examples/base/water-body-disputed.yaml @@ -31,6 +31,9 @@ properties: - record_id: w1234567 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" is_salt: false is_intermittent: false version: 0 diff --git a/examples/base/water-river-example.yaml b/examples/base/water-river-example.yaml index d4587b7f2..ac2f1c4da 100644 --- a/examples/base/water-river-example.yaml +++ b/examples/base/water-river-example.yaml @@ -17,6 +17,9 @@ properties: - record_id: w54320702@1 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" is_salt: false is_intermittent: false version: 0 diff --git a/examples/base/water-river-with-wikidata.yaml b/examples/base/water-river-with-wikidata.yaml index 4278e77ab..71814dae4 100644 --- a/examples/base/water-river-with-wikidata.yaml +++ b/examples/base/water-river-with-wikidata.yaml @@ -17,5 +17,8 @@ properties: - record_id: w353912370@4 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" wikidata: Q7420045 version: 0 diff --git a/examples/buildings/basic-sources.yaml b/examples/buildings/basic-sources.yaml index 91eed889b..10b641731 100644 --- a/examples/buildings/basic-sources.yaml +++ b/examples/buildings/basic-sources.yaml @@ -14,6 +14,9 @@ properties: version: 1 sources: - dataset: MyGreatDataset + provider: overture + resource: soccer-stadiums + version: "2087-08-23" property: "/geometry" update_time: '2024-04-26T23:55:01-08:00' confidence: 0.3 diff --git a/examples/buildings/building-part-basic.yaml b/examples/buildings/building-part-basic.yaml index 9f776bef5..fc98ecb7e 100644 --- a/examples/buildings/building-part-basic.yaml +++ b/examples/buildings/building-part-basic.yaml @@ -31,5 +31,11 @@ properties: sources: - property: "" dataset: microsoftMLBuildings + provider: microsoft + resource: ml-buildings + version: abc - property: /properties/height dataset: metaLidarExtractions + provider: meta + resource: lidar-extractions + version: "2087-08-23" diff --git a/examples/buildings/building-part-name.yaml b/examples/buildings/building-part-name.yaml index 749e2fb3a..7c472f7dc 100644 --- a/examples/buildings/building-part-name.yaml +++ b/examples/buildings/building-part-name.yaml @@ -30,3 +30,6 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/examples/buildings/building-polygon.yaml b/examples/buildings/building-polygon.yaml index 1698db857..6fe9ebb2e 100644 --- a/examples/buildings/building-polygon.yaml +++ b/examples/buildings/building-polygon.yaml @@ -27,8 +27,14 @@ properties: is_underground: false sources: - property: "" - dataset: microsoftMLBuildings, + dataset: microsoftMLBuildings + provider: microsoft + resource: ml-buildings + version: abc confidence: 1 - property: /properties/height - dataset: metaLidarExtractions, + dataset: metaLidarExtractions + provider: meta + resource: lidar-extractions + version: "2087-08-23" confidence: 0.95 diff --git a/examples/buildings/empire-state-building.json b/examples/buildings/empire-state-building.json index 298e26292..7b0d1305c 100644 --- a/examples/buildings/empire-state-building.json +++ b/examples/buildings/empire-state-building.json @@ -20,6 +20,9 @@ { "property": "", "dataset": "OpenStreetMap", + "provider": "osm", + "resource": "planet", + "version": "2099-05-18T10:30:00Z", "record_id": "w34633854@71" } ], diff --git a/examples/buildings/license-basic.yaml b/examples/buildings/license-basic.yaml index e26753171..7f835d782 100644 --- a/examples/buildings/license-basic.yaml +++ b/examples/buildings/license-basic.yaml @@ -11,6 +11,9 @@ properties: version: 1 sources: - dataset: MyGreatDataset + provider: overture + resource: soccer-stadiums + version: "2087-08-23" property: "/geometry" update_time: '2024-04-26T23:55:01-08:00' confidence: 0.3 diff --git a/examples/buildings/osm/outline.yaml b/examples/buildings/osm/outline.yaml index a5855efe2..3f27cfdf0 100644 --- a/examples/buildings/osm/outline.yaml +++ b/examples/buildings/osm/outline.yaml @@ -29,3 +29,6 @@ properties: sources: - property: '' dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/examples/buildings/osm/part1.yaml b/examples/buildings/osm/part1.yaml index 759082fcd..7f84e9986 100644 --- a/examples/buildings/osm/part1.yaml +++ b/examples/buildings/osm/part1.yaml @@ -27,3 +27,6 @@ properties: sources: - property: '' dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/examples/buildings/osm/part2.yaml b/examples/buildings/osm/part2.yaml index be2ff39b1..49152ab9e 100644 --- a/examples/buildings/osm/part2.yaml +++ b/examples/buildings/osm/part2.yaml @@ -27,3 +27,6 @@ properties: sources: - property: '' dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/examples/divisions/division/capital_of.yaml b/examples/divisions/division/capital_of.yaml index f6709f226..951566a2e 100644 --- a/examples/divisions/division/capital_of.yaml +++ b/examples/divisions/division/capital_of.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: N6968827.V76 country: SI hierarchies: diff --git a/examples/divisions/division/class.yaml b/examples/divisions/division/class.yaml index cdf920092..335c465e7 100644 --- a/examples/divisions/division/class.yaml +++ b/examples/divisions/division/class.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: N21040334 country: DK hierarchies: diff --git a/examples/divisions/division/dependency.yaml b/examples/divisions/division/dependency.yaml index 2708c8587..d5b4a1ea7 100644 --- a/examples/divisions/division/dependency.yaml +++ b/examples/divisions/division/dependency.yaml @@ -25,6 +25,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R4422604.V41 country: PR region: US-PR diff --git a/examples/divisions/division/multiple_capital_division.yaml b/examples/divisions/division/multiple_capital_division.yaml index ee8fb19eb..b56057e90 100644 --- a/examples/divisions/division/multiple_capital_division.yaml +++ b/examples/divisions/division/multiple_capital_division.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R223407.V254 country: PL region: PL-04 diff --git a/examples/divisions/division/population.yaml b/examples/divisions/division/population.yaml index a0742ad38..869e5054c 100644 --- a/examples/divisions/division/population.yaml +++ b/examples/divisions/division/population.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R68841.V267 country: CA region: CA-ON diff --git a/examples/divisions/division/prominence.yaml b/examples/divisions/division/prominence.yaml index 5986e201c..5839a8fa7 100644 --- a/examples/divisions/division/prominence.yaml +++ b/examples/divisions/division/prominence.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: N21040334 country: DK hierarchies: diff --git a/examples/divisions/division/region.yaml b/examples/divisions/division/region.yaml index e646519a7..c30099de1 100644 --- a/examples/divisions/division/region.yaml +++ b/examples/divisions/division/region.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R61320.V468 country: US region: US-NY diff --git a/examples/places/place-no-emails-phones-socials-websites.yaml b/examples/places/place-no-emails-phones-socials-websites.yaml index e1aafb250..ddb27e8a6 100644 --- a/examples/places/place-no-emails-phones-socials-websites.yaml +++ b/examples/places/place-no-emails-phones-socials-websites.yaml @@ -26,9 +26,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: abc record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: "2087-08-23" record_id: "10df72b8" names: primary: My Sweet POI diff --git a/examples/places/place-with-operating-status.yaml b/examples/places/place-with-operating-status.yaml index 145b40560..a07270b23 100644 --- a/examples/places/place-with-operating-status.yaml +++ b/examples/places/place-with-operating-status.yaml @@ -34,9 +34,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: abc record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: "2087-08-23" record_id: "10df72b8" names: primary: My Sweet POI diff --git a/examples/places/place.yaml b/examples/places/place.yaml index cbcbc03e1..c9117ab56 100644 --- a/examples/places/place.yaml +++ b/examples/places/place.yaml @@ -35,9 +35,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: abc record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: "2087-08-23" record_id: "10df72b8" names: primary: My Sweet POI diff --git a/examples/transportation/segment/road/road-with-lr-sources.yaml b/examples/transportation/segment/road/road-with-lr-sources.yaml index 3591eebc9..7b0cbdcb6 100644 --- a/examples/transportation/segment/road/road-with-lr-sources.yaml +++ b/examples/transportation/segment/road/road-with-lr-sources.yaml @@ -20,12 +20,18 @@ properties: sources: - property: "/names/primary" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: w12345@1 between: - 0 - 0.5 - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2097-12-19T08:24:00Z" record_id: w67890@1 between: - 0.5 diff --git a/packages/overture-schema-addresses-theme/pyproject.toml b/packages/overture-schema-addresses-theme/pyproject.toml index a550ec79f..7844d6145 100644 --- a/packages/overture-schema-addresses-theme/pyproject.toml +++ b/packages/overture-schema-addresses-theme/pyproject.toml @@ -69,3 +69,6 @@ value = "Chatham Island" [[examples.Address.sources]] property = "" dataset = "OpenAddresses/LINZ" +provider = "open-addresses" +resource = "linz" +version = "2024-01-01" diff --git a/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json b/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json index 1ae5a6ab6..2fc45e2b0 100644 --- a/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json +++ b/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json @@ -39,7 +39,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -54,21 +54,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/pyproject.toml b/packages/overture-schema-base-theme/pyproject.toml index c671e1d88..858330a18 100644 --- a/packages/overture-schema-base-theme/pyproject.toml +++ b/packages/overture-schema-base-theme/pyproject.toml @@ -62,6 +62,9 @@ ymax = -75.64299774169922 [[examples.Bathymetry.sources]] property = "" dataset = "ETOPO/GLOBathy" +provider = "etopo" +resource = "globathy" +version = "2024-12-09" record_id = "2024-12-09T00:00:00.000Z" [examples.Bathymetry.cartography] @@ -86,6 +89,9 @@ ymax = -82.42407989501953 [[examples.Infrastructure.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2023-04-07" record_id = "n7674174803@2" update_time = "2023-04-07T17:37:48.000Z" @@ -119,6 +125,9 @@ ymax = -85.44999694824219 [[examples.Land.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2024-03-05" record_id = "n11693475112@1" update_time = "2024-03-05T09:23:39.000Z" @@ -147,6 +156,9 @@ ymax = 65.96218872070312 [[examples.LandCover.sources]] property = "" dataset = "ESA WorldCover" +provider = "esa" +resource = "worldcover" +version = "2024-11-07" update_time = "2024-11-07T00:00:00.000Z" [examples.LandCover.cartography] @@ -172,6 +184,9 @@ ymax = -43.95420837402344 [[examples.LandUse.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2010-04-24" record_id = "w56117029@3" update_time = "2010-04-24T22:35:13.000Z" @@ -203,6 +218,9 @@ ymax = -84.9347915649414 [[examples.Water.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2024-02-11" record_id = "n11109190647@2" update_time = "2024-02-11T05:52:05.000Z" diff --git a/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json b/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json index c7b14a349..19e017134 100644 --- a/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json @@ -60,7 +60,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -75,21 +75,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json b/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json index c53570380..92d0a5417 100644 --- a/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json @@ -369,7 +369,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -384,21 +384,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/land_baseline_schema.json b/packages/overture-schema-base-theme/tests/land_baseline_schema.json index be1f6d780..924bbf87b 100644 --- a/packages/overture-schema-base-theme/tests/land_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/land_baseline_schema.json @@ -242,7 +242,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -257,21 +257,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json b/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json index a104da44a..166375aba 100644 --- a/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json @@ -77,7 +77,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -92,21 +92,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json b/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json index c1ad6e97f..79fdef60a 100644 --- a/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json @@ -320,7 +320,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -335,21 +335,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/water_baseline_schema.json b/packages/overture-schema-base-theme/tests/water_baseline_schema.json index fd78c6fb9..d2ec0deb4 100644 --- a/packages/overture-schema-base-theme/tests/water_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/water_baseline_schema.json @@ -173,7 +173,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -188,21 +188,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-buildings-theme/pyproject.toml b/packages/overture-schema-buildings-theme/pyproject.toml index 833b67a23..e281bfe4f 100644 --- a/packages/overture-schema-buildings-theme/pyproject.toml +++ b/packages/overture-schema-buildings-theme/pyproject.toml @@ -59,6 +59,9 @@ ymax = -43.993709564208984 [[examples.Building.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2017-08-27" record_id = "w519166507@1" update_time = "2017-08-27T21:39:50.000Z" @@ -81,5 +84,8 @@ ymax = -39.81088638305664 [[examples.BuildingPart.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2014-10-31" record_id = "w223076787@2" update_time = "2014-10-31T22:55:36.000Z" diff --git a/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json b/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json index 31d563883..c10df38ff 100644 --- a/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json +++ b/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json @@ -356,7 +356,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -371,21 +371,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json b/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json index 760f53efd..ce4ffa082 100644 --- a/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json +++ b/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json @@ -242,7 +242,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -257,21 +257,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-common/README.md b/packages/overture-schema-common/README.md index ebb4a4534..0040a57af 100644 --- a/packages/overture-schema-common/README.md +++ b/packages/overture-schema-common/README.md @@ -73,16 +73,16 @@ Name rules support geometric range and side scoping for cases like a street whos ## Sources -Source attribution tracking. Each `SourceItem` identifies which dataset a feature or property came from, with optional license, record ID, update time, and confidence score. Source items support geometric range scoping for per-segment attribution. +Source attribution tracking. Each `SourceItem` includes a backward-compatible `dataset` identifier and the required source triplet (`provider`, `resource`, `version`), with optional license, record ID, update time, and confidence score. Source items support geometric range scoping for per-segment attribution. ```python from overture.schema.common.sources import SourceItem sources = [ - SourceItem(property="", dataset="OpenStreetMap"), - SourceItem(property="/geometry", dataset="Microsoft ML Buildings"), + SourceItem(property="", dataset="OpenStreetMap", provider="osm", resource="planet", version="2026-05-01"), + SourceItem(property="/geometry", dataset="Microsoft ML Buildings", provider="microsoft", resource="buildings", version="v3"), # first 30% of the segment's geometry came from a different source - SourceItem(property="/geometry", dataset="County GIS", between=[0, 0.3]), + SourceItem(property="/geometry", dataset="County GIS", provider="county-gis", resource="building-footprints", version="2026-04", between=[0, 0.3]), ] ``` diff --git a/packages/overture-schema-common/src/overture/schema/common/sources.py b/packages/overture-schema-common/src/overture/schema/common/sources.py index d6e5c282a..b8795bf3f 100644 --- a/packages/overture-schema-common/src/overture/schema/common/sources.py +++ b/packages/overture-schema-common/src/overture/schema/common/sources.py @@ -41,9 +41,36 @@ class SourceItem(BaseModel): ) dataset: str = Field( description=textwrap.dedent(""" - Name of the dataset where the source data can be found. + Dataset identifier retained for backward compatibility. """).strip() ) + provider: Annotated[ + str, + Field( + min_length=1, + description=textwrap.dedent(""" + Name of the entity that produced the source data. + """).strip(), + ), + ] + resource: Annotated[ + str, + Field( + min_length=1, + description=textwrap.dedent(""" + Subject or data type produced by the provider. + """).strip(), + ), + ] + version: Annotated[ + str, + Field( + min_length=1, + description=textwrap.dedent(""" + Sortable source snapshot identifier, such as a date, number, or release label. + """).strip(), + ), + ] # Optional diff --git a/packages/overture-schema-common/tests/test_models.py b/packages/overture-schema-common/tests/test_models.py index a2c83e69c..a56578473 100644 --- a/packages/overture-schema-common/tests/test_models.py +++ b/packages/overture-schema-common/tests/test_models.py @@ -57,6 +57,9 @@ def test_feature_json_schema() -> None: }, "property": {"type": "string"}, "dataset": {"type": "string"}, + "provider": {"minLength": 1, "type": "string"}, + "resource": {"minLength": 1, "type": "string"}, + "version": {"minLength": 1, "type": "string"}, "license": { "pattern": "^(\\S(.*\\S)?)?$", "type": "string", @@ -68,7 +71,7 @@ def test_feature_json_schema() -> None: }, "confidence": {"maximum": 1.0, "minimum": 0.0, "type": "number"}, }, - "required": ["property", "dataset"], + "required": ["property", "dataset", "provider", "resource", "version"], "type": "object", } }, diff --git a/packages/overture-schema-divisions-theme/pyproject.toml b/packages/overture-schema-divisions-theme/pyproject.toml index 0314d8d1b..45d98079c 100644 --- a/packages/overture-schema-divisions-theme/pyproject.toml +++ b/packages/overture-schema-divisions-theme/pyproject.toml @@ -71,6 +71,9 @@ ymax = -21.13536834716797 [[examples.Division.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2014-12-18" record_id = "n3173231082@4" update_time = "2014-12-18T09:17:03Z" @@ -110,6 +113,9 @@ ymax = -21.283489227294922 [[examples.DivisionArea.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2020-12-30" record_id = "r7247527@3" update_time = "2020-12-30T18:41:56Z" @@ -142,11 +148,17 @@ ymax = -15.151169776916504 [[examples.DivisionBoundary.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2023-07-20" record_id = "r6063055@9" update_time = "2023-07-20T00:28:40Z" [[examples.DivisionBoundary.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2023-07-20" record_id = "r6063063@12" update_time = "2023-07-20T00:28:40Z" diff --git a/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json b/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json index 3838c20e0..4367b6cd6 100644 --- a/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json +++ b/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json @@ -201,7 +201,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -216,21 +216,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json b/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json index 8097ee0df..74225bd20 100644 --- a/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json +++ b/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json @@ -304,7 +304,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -319,21 +319,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json b/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json index 82b9b38b9..f9e096dfc 100644 --- a/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json +++ b/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json @@ -91,7 +91,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -106,21 +106,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-places-theme/pyproject.toml b/packages/overture-schema-places-theme/pyproject.toml index 58fa3dd7a..0e0b27025 100644 --- a/packages/overture-schema-places-theme/pyproject.toml +++ b/packages/overture-schema-places-theme/pyproject.toml @@ -66,6 +66,9 @@ ymax = -79.17133331298828 [[examples.Place.sources]] property = "" dataset = "meta" +provider = "meta" +resource = "places" +version = "2025-06-30" record_id = "107663894904826" update_time = "2025-06-30T07:00:00.000Z" confidence = 0.7337175792507205 diff --git a/packages/overture-schema-places-theme/tests/place_baseline_schema.json b/packages/overture-schema-places-theme/tests/place_baseline_schema.json index b8752ff24..874f5e88c 100644 --- a/packages/overture-schema-places-theme/tests/place_baseline_schema.json +++ b/packages/overture-schema-places-theme/tests/place_baseline_schema.json @@ -268,7 +268,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -283,21 +283,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-transportation-theme/pyproject.toml b/packages/overture-schema-transportation-theme/pyproject.toml index 547b54401..3e91c5d2c 100644 --- a/packages/overture-schema-transportation-theme/pyproject.toml +++ b/packages/overture-schema-transportation-theme/pyproject.toml @@ -57,6 +57,9 @@ ymax = -43.96794128417969 [[examples.Connector.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2024-01-01" [[examples.Segment]] id = "1bc62f3b-08b5-42b8-89fe-36f685f60455" @@ -76,6 +79,9 @@ ymax = -43.953250885009766 [[examples.Segment.sources]] property = "" dataset = "OpenStreetMap" +provider = "osm" +resource = "planet" +version = "2021-05-03" record_id = "w53435546@6" update_time = "2021-05-03T06:37:03Z" diff --git a/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json b/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json index a51faf3f0..99b708275 100644 --- a/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json +++ b/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json @@ -24,7 +24,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -39,21 +39,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json b/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json index 4ec108313..e916c2a2b 100644 --- a/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json +++ b/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json @@ -1150,7 +1150,7 @@ "type": "number" }, "dataset": { - "description": "Name of the dataset where the source data can be found.", + "description": "Dataset identifier retained for backward compatibility.", "title": "Dataset", "type": "string" }, @@ -1165,21 +1165,42 @@ "title": "Property", "type": "string" }, + "provider": { + "description": "Name of the entity that produced the source data.", + "minLength": 1, + "title": "Provider", + "type": "string" + }, "record_id": { "description": "Identifies the specific record within the source dataset where the source data can\nbe found.\n\nThe format of record identifiers is dataset-specific.", "title": "Record Id", "type": "string" }, + "resource": { + "description": "Subject or data type produced by the provider.", + "minLength": 1, + "title": "Resource", + "type": "string" + }, "update_time": { "description": "Last update time of the source data record.", "format": "date-time", "title": "Update Time", "type": "string" + }, + "version": { + "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "minLength": 1, + "title": "Version", + "type": "string" } }, "required": [ "property", - "dataset" + "dataset", + "provider", + "resource", + "version" ], "title": "SourceItem", "type": "object" diff --git a/reference/counterexamples/base/bathymetry/bad-depth.yaml b/reference/counterexamples/base/bathymetry/bad-depth.yaml index 915d9aa32..0e8bdcb08 100644 --- a/reference/counterexamples/base/bathymetry/bad-depth.yaml +++ b/reference/counterexamples/base/bathymetry/bad-depth.yaml @@ -13,5 +13,8 @@ properties: - record_id: x123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: "2087-08-23" ext_expected_errors: - "depth/minimum]: minimum: got -1, want 0" diff --git a/reference/counterexamples/buildings/bad-confidence-in-source.yaml b/reference/counterexamples/buildings/bad-confidence-in-source.yaml index b6b625399..0efa04b7c 100644 --- a/reference/counterexamples/buildings/bad-confidence-in-source.yaml +++ b/reference/counterexamples/buildings/bad-confidence-in-source.yaml @@ -14,8 +14,14 @@ properties: height: 21.34 sources: - property: "" - dataset: microsoftMLBuildings, + dataset: microsoftMLBuildings + provider: microsoft + resource: ml-buildings + version: abc confidence: 100 - property: /properties/height - dataset: metaLidarExtractions, + dataset: metaLidarExtractions + provider: meta + resource: lidar-extractions + version: "2087-08-23" confidence: -1 diff --git a/reference/counterexamples/buildings/bad-license.yaml b/reference/counterexamples/buildings/bad-license.yaml index 2abe3ea5e..26ed88c5e 100644 --- a/reference/counterexamples/buildings/bad-license.yaml +++ b/reference/counterexamples/buildings/bad-license.yaml @@ -11,6 +11,9 @@ properties: version: 1 sources: - dataset: MyGreatDataset + provider: overture + resource: soccer-stadiums + version: "2087-08-23" property: "/geometry" update_time: "2024-04-26T23:55:01-08:00" confidence: 0.3 diff --git a/reference/counterexamples/buildings/bad-time.yaml b/reference/counterexamples/buildings/bad-time.yaml index 85e8a5404..169158656 100644 --- a/reference/counterexamples/buildings/bad-time.yaml +++ b/reference/counterexamples/buildings/bad-time.yaml @@ -12,5 +12,8 @@ properties: version: 1 sources: - dataset: OpenStreetMap + provider: osm + resource: planet + version: "2026-05-18T10:30:00Z" property: "/blah" update_time: abc2023-02-22T23:55:01-08:00 diff --git a/reference/counterexamples/buildings/building-part-bad-name.yaml b/reference/counterexamples/buildings/building-part-bad-name.yaml index 8587e84f0..30ef581d8 100644 --- a/reference/counterexamples/buildings/building-part-bad-name.yaml +++ b/reference/counterexamples/buildings/building-part-bad-name.yaml @@ -30,3 +30,6 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/reference/counterexamples/places/bad-empty-emails.yaml b/reference/counterexamples/places/bad-empty-emails.yaml index 765034436..739eae145 100644 --- a/reference/counterexamples/places/bad-empty-emails.yaml +++ b/reference/counterexamples/places/bad-empty-emails.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/counterexamples/places/bad-empty-phones.yaml b/reference/counterexamples/places/bad-empty-phones.yaml index ea48419cc..cb9540a58 100644 --- a/reference/counterexamples/places/bad-empty-phones.yaml +++ b/reference/counterexamples/places/bad-empty-phones.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/counterexamples/places/bad-empty-socials.yaml b/reference/counterexamples/places/bad-empty-socials.yaml index 3f45d54cf..2fd559d6c 100644 --- a/reference/counterexamples/places/bad-empty-socials.yaml +++ b/reference/counterexamples/places/bad-empty-socials.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/counterexamples/places/bad-empty-websites.yaml b/reference/counterexamples/places/bad-empty-websites.yaml index 0a28806eb..168d0eba3 100644 --- a/reference/counterexamples/places/bad-empty-websites.yaml +++ b/reference/counterexamples/places/bad-empty-websites.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/counterexamples/places/bad-operating-status.yaml b/reference/counterexamples/places/bad-operating-status.yaml index 83888870a..0db30451b 100644 --- a/reference/counterexamples/places/bad-operating-status.yaml +++ b/reference/counterexamples/places/bad-operating-status.yaml @@ -33,9 +33,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: "2087-08-23" record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: abc record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/counterexamples/transportation/segment/bad-source-between.yaml b/reference/counterexamples/transportation/segment/bad-source-between.yaml index 0df4f0b75..fcd6f7e40 100644 --- a/reference/counterexamples/transportation/segment/bad-source-between.yaml +++ b/reference/counterexamples/transportation/segment/bad-source-between.yaml @@ -21,4 +21,7 @@ properties: - record_id: w123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: abc between: [] diff --git a/reference/examples/base/bathymetry-example.yaml b/reference/examples/base/bathymetry-example.yaml index ecc5f6b77..e5bc6c8e3 100644 --- a/reference/examples/base/bathymetry-example.yaml +++ b/reference/examples/base/bathymetry-example.yaml @@ -16,4 +16,7 @@ properties: - record_id: x123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: abc version: 0 diff --git a/reference/examples/base/infrastructure-example.yaml b/reference/examples/base/infrastructure-example.yaml index 006a23384..4abb93300 100644 --- a/reference/examples/base/infrastructure-example.yaml +++ b/reference/examples/base/infrastructure-example.yaml @@ -18,4 +18,7 @@ properties: - property: "" record_id: w556368546@3 dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/reference/examples/base/infrastructure-height-example.yaml b/reference/examples/base/infrastructure-height-example.yaml index 68aacf8f7..8c3c0619a 100644 --- a/reference/examples/base/infrastructure-height-example.yaml +++ b/reference/examples/base/infrastructure-height-example.yaml @@ -16,4 +16,7 @@ properties: - property: "" record_id: n10707323715@5 dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/reference/examples/base/land-cover-example.yaml b/reference/examples/base/land-cover-example.yaml index c2c6cabcc..7cc01975d 100644 --- a/reference/examples/base/land-cover-example.yaml +++ b/reference/examples/base/land-cover-example.yaml @@ -16,4 +16,7 @@ properties: - record_id: x123 property: "" dataset: some source + provider: some_provider + resource: some_resource + version: abc version: 0 diff --git a/reference/examples/base/land-sand-example.yaml b/reference/examples/base/land-sand-example.yaml index b816f4971..bf47cc470 100644 --- a/reference/examples/base/land-sand-example.yaml +++ b/reference/examples/base/land-sand-example.yaml @@ -18,4 +18,7 @@ properties: - record_id: w407753930@3 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/reference/examples/base/land-use-example.yaml b/reference/examples/base/land-use-example.yaml index b1e6cbb97..3ded74457 100644 --- a/reference/examples/base/land-use-example.yaml +++ b/reference/examples/base/land-use-example.yaml @@ -19,4 +19,7 @@ properties: - record_id: w509487233@1 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" version: 0 diff --git a/reference/examples/base/water-body-disputed.yaml b/reference/examples/base/water-body-disputed.yaml index 1adb9283d..ebf260ca9 100644 --- a/reference/examples/base/water-body-disputed.yaml +++ b/reference/examples/base/water-body-disputed.yaml @@ -31,6 +31,9 @@ properties: - record_id: w1234567 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" is_salt: false is_intermittent: false version: 0 diff --git a/reference/examples/base/water-river-example.yaml b/reference/examples/base/water-river-example.yaml index d4587b7f2..ac2f1c4da 100644 --- a/reference/examples/base/water-river-example.yaml +++ b/reference/examples/base/water-river-example.yaml @@ -17,6 +17,9 @@ properties: - record_id: w54320702@1 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" is_salt: false is_intermittent: false version: 0 diff --git a/reference/examples/base/water-river-with-wikidata.yaml b/reference/examples/base/water-river-with-wikidata.yaml index 4278e77ab..71814dae4 100644 --- a/reference/examples/base/water-river-with-wikidata.yaml +++ b/reference/examples/base/water-river-with-wikidata.yaml @@ -17,5 +17,8 @@ properties: - record_id: w353912370@4 property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" wikidata: Q7420045 version: 0 diff --git a/reference/examples/buildings/basic-sources.yaml b/reference/examples/buildings/basic-sources.yaml index 91eed889b..10b641731 100644 --- a/reference/examples/buildings/basic-sources.yaml +++ b/reference/examples/buildings/basic-sources.yaml @@ -14,6 +14,9 @@ properties: version: 1 sources: - dataset: MyGreatDataset + provider: overture + resource: soccer-stadiums + version: "2087-08-23" property: "/geometry" update_time: '2024-04-26T23:55:01-08:00' confidence: 0.3 diff --git a/reference/examples/buildings/building-part-basic.yaml b/reference/examples/buildings/building-part-basic.yaml index 9f776bef5..fc98ecb7e 100644 --- a/reference/examples/buildings/building-part-basic.yaml +++ b/reference/examples/buildings/building-part-basic.yaml @@ -31,5 +31,11 @@ properties: sources: - property: "" dataset: microsoftMLBuildings + provider: microsoft + resource: ml-buildings + version: abc - property: /properties/height dataset: metaLidarExtractions + provider: meta + resource: lidar-extractions + version: "2087-08-23" diff --git a/reference/examples/buildings/building-part-name.yaml b/reference/examples/buildings/building-part-name.yaml index 749e2fb3a..7c472f7dc 100644 --- a/reference/examples/buildings/building-part-name.yaml +++ b/reference/examples/buildings/building-part-name.yaml @@ -30,3 +30,6 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/reference/examples/buildings/building-polygon.yaml b/reference/examples/buildings/building-polygon.yaml index 1698db857..6fe9ebb2e 100644 --- a/reference/examples/buildings/building-polygon.yaml +++ b/reference/examples/buildings/building-polygon.yaml @@ -27,8 +27,14 @@ properties: is_underground: false sources: - property: "" - dataset: microsoftMLBuildings, + dataset: microsoftMLBuildings + provider: microsoft + resource: ml-buildings + version: abc confidence: 1 - property: /properties/height - dataset: metaLidarExtractions, + dataset: metaLidarExtractions + provider: meta + resource: lidar-extractions + version: "2087-08-23" confidence: 0.95 diff --git a/reference/examples/buildings/empire-state-building.json b/reference/examples/buildings/empire-state-building.json index 298e26292..7b0d1305c 100644 --- a/reference/examples/buildings/empire-state-building.json +++ b/reference/examples/buildings/empire-state-building.json @@ -20,6 +20,9 @@ { "property": "", "dataset": "OpenStreetMap", + "provider": "osm", + "resource": "planet", + "version": "2099-05-18T10:30:00Z", "record_id": "w34633854@71" } ], diff --git a/reference/examples/buildings/license-basic.yaml b/reference/examples/buildings/license-basic.yaml index e26753171..7f835d782 100644 --- a/reference/examples/buildings/license-basic.yaml +++ b/reference/examples/buildings/license-basic.yaml @@ -11,6 +11,9 @@ properties: version: 1 sources: - dataset: MyGreatDataset + provider: overture + resource: soccer-stadiums + version: "2087-08-23" property: "/geometry" update_time: '2024-04-26T23:55:01-08:00' confidence: 0.3 diff --git a/reference/examples/buildings/osm/outline.yaml b/reference/examples/buildings/osm/outline.yaml index a5855efe2..3f27cfdf0 100644 --- a/reference/examples/buildings/osm/outline.yaml +++ b/reference/examples/buildings/osm/outline.yaml @@ -29,3 +29,6 @@ properties: sources: - property: '' dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/reference/examples/buildings/osm/part1.yaml b/reference/examples/buildings/osm/part1.yaml index 759082fcd..7f84e9986 100644 --- a/reference/examples/buildings/osm/part1.yaml +++ b/reference/examples/buildings/osm/part1.yaml @@ -27,3 +27,6 @@ properties: sources: - property: '' dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/reference/examples/buildings/osm/part2.yaml b/reference/examples/buildings/osm/part2.yaml index be2ff39b1..49152ab9e 100644 --- a/reference/examples/buildings/osm/part2.yaml +++ b/reference/examples/buildings/osm/part2.yaml @@ -27,3 +27,6 @@ properties: sources: - property: '' dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" diff --git a/reference/examples/divisions/division/capital_of.yaml b/reference/examples/divisions/division/capital_of.yaml index f6709f226..951566a2e 100644 --- a/reference/examples/divisions/division/capital_of.yaml +++ b/reference/examples/divisions/division/capital_of.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: N6968827.V76 country: SI hierarchies: diff --git a/reference/examples/divisions/division/class.yaml b/reference/examples/divisions/division/class.yaml index cdf920092..335c465e7 100644 --- a/reference/examples/divisions/division/class.yaml +++ b/reference/examples/divisions/division/class.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: N21040334 country: DK hierarchies: diff --git a/reference/examples/divisions/division/dependency.yaml b/reference/examples/divisions/division/dependency.yaml index 98292a535..80f01cee5 100644 --- a/reference/examples/divisions/division/dependency.yaml +++ b/reference/examples/divisions/division/dependency.yaml @@ -25,6 +25,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R4422604.V41 country: PR region: US-PR diff --git a/reference/examples/divisions/division/multiple_capital_division.yaml b/reference/examples/divisions/division/multiple_capital_division.yaml index 0e8e890be..3aeefd066 100644 --- a/reference/examples/divisions/division/multiple_capital_division.yaml +++ b/reference/examples/divisions/division/multiple_capital_division.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R223407.V254 country: PL region: PL-04 diff --git a/reference/examples/divisions/division/population.yaml b/reference/examples/divisions/division/population.yaml index d1044f221..13e5d3295 100644 --- a/reference/examples/divisions/division/population.yaml +++ b/reference/examples/divisions/division/population.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R68841.V267 country: CA region: CA-ON diff --git a/reference/examples/divisions/division/prominence.yaml b/reference/examples/divisions/division/prominence.yaml index 5986e201c..5839a8fa7 100644 --- a/reference/examples/divisions/division/prominence.yaml +++ b/reference/examples/divisions/division/prominence.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: N21040334 country: DK hierarchies: diff --git a/reference/examples/divisions/division/region.yaml b/reference/examples/divisions/division/region.yaml index c38bbfb42..0516f28f7 100644 --- a/reference/examples/divisions/division/region.yaml +++ b/reference/examples/divisions/division/region.yaml @@ -16,6 +16,9 @@ properties: sources: - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: R61320.V468 country: US region: US-NY diff --git a/reference/examples/places/place-no-emails-phones-socials-websites.yaml b/reference/examples/places/place-no-emails-phones-socials-websites.yaml index e1aafb250..ddb27e8a6 100644 --- a/reference/examples/places/place-no-emails-phones-socials-websites.yaml +++ b/reference/examples/places/place-no-emails-phones-socials-websites.yaml @@ -26,9 +26,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: abc record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: "2087-08-23" record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/examples/places/place-with-operating-status.yaml b/reference/examples/places/place-with-operating-status.yaml index 145b40560..a07270b23 100644 --- a/reference/examples/places/place-with-operating-status.yaml +++ b/reference/examples/places/place-with-operating-status.yaml @@ -34,9 +34,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: abc record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: "2087-08-23" record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/examples/places/place.yaml b/reference/examples/places/place.yaml index 66dd59e97..c9ebec086 100644 --- a/reference/examples/places/place.yaml +++ b/reference/examples/places/place.yaml @@ -35,9 +35,15 @@ properties: sources: - property: "" dataset: metaPlaces + provider: meta + resource: places + version: abc record_id: "10101" - property: "/properties/brand" dataset: msftPlaces + provider: microsoft + resource: places + version: "2087-08-23" record_id: "10df72b8" names: primary: My Sweet POI diff --git a/reference/examples/transportation/segment/road/road-with-lr-sources.yaml b/reference/examples/transportation/segment/road/road-with-lr-sources.yaml index 3591eebc9..d9b89c9c1 100644 --- a/reference/examples/transportation/segment/road/road-with-lr-sources.yaml +++ b/reference/examples/transportation/segment/road/road-with-lr-sources.yaml @@ -20,12 +20,18 @@ properties: sources: - property: "/names/primary" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2099-05-18T10:30:00Z" record_id: w12345@1 between: - 0 - 0.5 - property: "" dataset: OpenStreetMap + provider: osm + resource: planet + version: "2097-08-12T11:20:00Z" record_id: w67890@1 between: - 0.5 diff --git a/schema/defs.yaml b/schema/defs.yaml index a20de9047..c5b88daf3 100644 --- a/schema/defs.yaml +++ b/schema/defs.yaml @@ -260,15 +260,14 @@ description: Common schema definitions shared by all themes enum: [left, right] sourcePropertyItem: description: >- - An object storing the source for a specificed property. The property + An object storing the source for a specified property. The property is a reference to the property element within this Feature, and will be referenced using JSON Pointer Notation RFC 6901 - (https://datatracker.ietf.org/doc/rfc6901/). The source dataset for - that referenced property will be specified in the overture list of - approved sources from the Overture Data Working Group that contains - the relevant metadata for that dataset including license source organization. + (https://datatracker.ietf.org/doc/rfc6901/). Source identity includes + a backward-compatible dataset identifier plus provider, resource, and + version values that together identify a specific source snapshot. type: object - required: [property, dataset] + required: [property, dataset, provider, resource, version] allOf: - { "$ref": "#/$defs/propertyContainers/geometricRangeScopeContainer" } unevaluatedProperties: false @@ -277,6 +276,20 @@ description: Common schema definitions shared by all themes type: string dataset: type: string + description: >- + Dataset identifier retained for backward compatibility. + provider: + type: string + description: The entity that produced the source data, for example meta, esri, microsoft, etc. + minLength: 1 + resource: + type: string + description: The subject or data type produced by the provider, for example buildings, division-names, planet, etc. + minLength: 1 + version: + type: string + description: Sortable source snapshot identifier, for example 2026-02-13, 5.3, A5692, etc. + minLength: 1 license: type: string description: >- @@ -296,10 +309,10 @@ description: Common schema definitions shared by all themes description: >- The array of source information for the properties of a given feature, with each entry being a source object which - lists the property in JSON Pointer notation and the dataset - that specific value came from. All features must have a root - level source which is the default source if a specific - property's source is not specified. + lists the property in JSON Pointer notation and source + identifiers for where that value came from. All features + must have a root level source which is the default source + if a specific property's source is not specified. type: array items: {"$ref" : "#/$defs/propertyDefinitions/sourcePropertyItem"} minItems: 1 From 963fa5ecc32359611e86640296fbcaf6cbbe015f Mon Sep 17 00:00:00 2001 From: ericgodwin Date: Mon, 18 May 2026 20:02:07 -0700 Subject: [PATCH 2/2] Made the new fields optional and added additional tests Signed-off-by: ericgodwin --- .../tests/address_baseline_schema.json | 11 ++--- .../tests/bathymetry_baseline_schema.json | 11 ++--- .../tests/infrastructure_baseline_schema.json | 11 ++--- .../tests/land_baseline_schema.json | 11 ++--- .../tests/land_cover_baseline_schema.json | 11 ++--- .../tests/land_use_baseline_schema.json | 11 ++--- .../tests/water_baseline_schema.json | 11 ++--- .../tests/building_baseline_schema.json | 11 ++--- .../tests/building_part_baseline_schema.json | 11 ++--- .../src/overture/schema/common/sources.py | 48 ++++++++----------- .../tests/test_models.py | 23 ++++++++- .../tests/division_area_baseline_schema.json | 11 ++--- .../tests/division_baseline_schema.json | 11 ++--- .../division_boundary_baseline_schema.json | 11 ++--- .../tests/place_baseline_schema.json | 11 ++--- .../tests/connector_baseline_schema.json | 11 ++--- .../tests/segment_baseline_schema.json | 11 ++--- schema/defs.yaml | 7 +-- 18 files changed, 105 insertions(+), 138 deletions(-) diff --git a/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json b/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json index 2fc45e2b0..8e510b259 100644 --- a/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json +++ b/packages/overture-schema-addresses-theme/tests/address_baseline_schema.json @@ -55,7 +55,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -66,7 +66,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -78,7 +78,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -86,10 +86,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json b/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json index 19e017134..157363d32 100644 --- a/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/bathymetry_baseline_schema.json @@ -76,7 +76,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -87,7 +87,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -99,7 +99,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -107,10 +107,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json b/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json index 92d0a5417..9c4ecdfc1 100644 --- a/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/infrastructure_baseline_schema.json @@ -385,7 +385,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -396,7 +396,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -408,7 +408,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -416,10 +416,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/land_baseline_schema.json b/packages/overture-schema-base-theme/tests/land_baseline_schema.json index 924bbf87b..35b70979f 100644 --- a/packages/overture-schema-base-theme/tests/land_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/land_baseline_schema.json @@ -258,7 +258,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -269,7 +269,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -281,7 +281,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -289,10 +289,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json b/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json index 166375aba..68b7bc733 100644 --- a/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/land_cover_baseline_schema.json @@ -93,7 +93,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -104,7 +104,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -116,7 +116,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -124,10 +124,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json b/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json index 79fdef60a..7a3377a1e 100644 --- a/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/land_use_baseline_schema.json @@ -336,7 +336,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -347,7 +347,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -359,7 +359,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -367,10 +367,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-base-theme/tests/water_baseline_schema.json b/packages/overture-schema-base-theme/tests/water_baseline_schema.json index d2ec0deb4..17b8f999a 100644 --- a/packages/overture-schema-base-theme/tests/water_baseline_schema.json +++ b/packages/overture-schema-base-theme/tests/water_baseline_schema.json @@ -189,7 +189,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -200,7 +200,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -212,7 +212,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -220,10 +220,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json b/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json index c10df38ff..96a754214 100644 --- a/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json +++ b/packages/overture-schema-buildings-theme/tests/building_baseline_schema.json @@ -372,7 +372,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -383,7 +383,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -395,7 +395,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -403,10 +403,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json b/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json index ce4ffa082..0c635ed9a 100644 --- a/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json +++ b/packages/overture-schema-buildings-theme/tests/building_part_baseline_schema.json @@ -258,7 +258,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -269,7 +269,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -281,7 +281,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -289,10 +289,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-common/src/overture/schema/common/sources.py b/packages/overture-schema-common/src/overture/schema/common/sources.py index b8795bf3f..1539fb9fc 100644 --- a/packages/overture-schema-common/src/overture/schema/common/sources.py +++ b/packages/overture-schema-common/src/overture/schema/common/sources.py @@ -12,6 +12,7 @@ from overture.schema.common.types import ConfidenceScore from overture.schema.system.field_constraint import UniqueItemsConstraint from overture.schema.system.model_constraint import no_extra_fields +from overture.schema.system.optionality import Omitable from overture.schema.system.string import JsonPointer, StrippedString @@ -44,36 +45,25 @@ class SourceItem(BaseModel): Dataset identifier retained for backward compatibility. """).strip() ) - provider: Annotated[ - str, - Field( - min_length=1, - description=textwrap.dedent(""" - Name of the entity that produced the source data. - """).strip(), - ), - ] - resource: Annotated[ - str, - Field( - min_length=1, - description=textwrap.dedent(""" - Subject or data type produced by the provider. - """).strip(), - ), - ] - version: Annotated[ - str, - Field( - min_length=1, - description=textwrap.dedent(""" - Sortable source snapshot identifier, such as a date, number, or release label. - """).strip(), - ), - ] - - # Optional + provider: Omitable[str] = Field( + min_length=1, + description=textwrap.dedent(""" + Optional name of the entity that produced the source data. + """).strip(), + ) + resource: Omitable[str] = Field( + min_length=1, + description=textwrap.dedent(""" + Optional subject or data type produced by the provider. + """).strip(), + ) + version: Omitable[str] = Field( + min_length=1, + description=textwrap.dedent(""" + Optional sortable source snapshot identifier, such as a date, number, or release label. + """).strip(), + ) license: Annotated[ StrippedString | None, Field( diff --git a/packages/overture-schema-common/tests/test_models.py b/packages/overture-schema-common/tests/test_models.py index a56578473..619785064 100644 --- a/packages/overture-schema-common/tests/test_models.py +++ b/packages/overture-schema-common/tests/test_models.py @@ -5,11 +5,13 @@ import pytest from deepdiff import DeepDiff from overture.schema.common.models import OvertureFeature +from overture.schema.common.sources import SourceItem from overture.schema.system.json_schema import GenerateOmitNullableOptionalJsonSchema from overture.schema.system.primitive import ( BBox, Geometry, ) +from pydantic import ValidationError from shapely.geometry import LineString, Point @@ -71,7 +73,7 @@ def test_feature_json_schema() -> None: }, "confidence": {"maximum": 1.0, "minimum": 0.0, "type": "number"}, }, - "required": ["property", "dataset", "provider", "resource", "version"], + "required": ["property", "dataset"], "type": "object", } }, @@ -513,3 +515,22 @@ def test_feature_validate_json( ) assert feature == validated + + +def test_source_item_provider_resource_version_omittable() -> None: + """provider, resource, and version can be omitted; absent fields excluded from JSON.""" + item = SourceItem(property="", dataset="osm") + dumped = json.loads(item.model_dump_json(exclude_unset=True)) + assert "provider" not in dumped + assert "resource" not in dumped + assert "version" not in dumped + + +def test_source_item_provider_resource_version_not_nullable() -> None: + """provider, resource, and version cannot be set to null.""" + with pytest.raises(ValidationError): + SourceItem(property="", dataset="osm", provider=None) + with pytest.raises(ValidationError): + SourceItem(property="", dataset="osm", resource=None) + with pytest.raises(ValidationError): + SourceItem(property="", dataset="osm", version=None) diff --git a/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json b/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json index 4367b6cd6..5f1af4081 100644 --- a/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json +++ b/packages/overture-schema-divisions-theme/tests/division_area_baseline_schema.json @@ -217,7 +217,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -228,7 +228,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -240,7 +240,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -248,10 +248,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json b/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json index 74225bd20..5e6d06935 100644 --- a/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json +++ b/packages/overture-schema-divisions-theme/tests/division_baseline_schema.json @@ -320,7 +320,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -331,7 +331,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -343,7 +343,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -351,10 +351,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json b/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json index f9e096dfc..60334749a 100644 --- a/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json +++ b/packages/overture-schema-divisions-theme/tests/division_boundary_baseline_schema.json @@ -107,7 +107,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -118,7 +118,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -130,7 +130,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -138,10 +138,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-places-theme/tests/place_baseline_schema.json b/packages/overture-schema-places-theme/tests/place_baseline_schema.json index 874f5e88c..dc160493e 100644 --- a/packages/overture-schema-places-theme/tests/place_baseline_schema.json +++ b/packages/overture-schema-places-theme/tests/place_baseline_schema.json @@ -284,7 +284,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -295,7 +295,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -307,7 +307,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -315,10 +315,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json b/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json index 99b708275..476052b2e 100644 --- a/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json +++ b/packages/overture-schema-transportation-theme/tests/connector_baseline_schema.json @@ -40,7 +40,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -51,7 +51,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -63,7 +63,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -71,10 +71,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json b/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json index e916c2a2b..7cf7eae68 100644 --- a/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json +++ b/packages/overture-schema-transportation-theme/tests/segment_baseline_schema.json @@ -1166,7 +1166,7 @@ "type": "string" }, "provider": { - "description": "Name of the entity that produced the source data.", + "description": "Optional name of the entity that produced the source data.", "minLength": 1, "title": "Provider", "type": "string" @@ -1177,7 +1177,7 @@ "type": "string" }, "resource": { - "description": "Subject or data type produced by the provider.", + "description": "Optional subject or data type produced by the provider.", "minLength": 1, "title": "Resource", "type": "string" @@ -1189,7 +1189,7 @@ "type": "string" }, "version": { - "description": "Sortable source snapshot identifier, such as a date, number, or release label.", + "description": "Optional sortable source snapshot identifier, such as a date, number, or release label.", "minLength": 1, "title": "Version", "type": "string" @@ -1197,10 +1197,7 @@ }, "required": [ "property", - "dataset", - "provider", - "resource", - "version" + "dataset" ], "title": "SourceItem", "type": "object" diff --git a/schema/defs.yaml b/schema/defs.yaml index c5b88daf3..00e6edd28 100644 --- a/schema/defs.yaml +++ b/schema/defs.yaml @@ -264,10 +264,11 @@ description: Common schema definitions shared by all themes is a reference to the property element within this Feature, and will be referenced using JSON Pointer Notation RFC 6901 (https://datatracker.ietf.org/doc/rfc6901/). Source identity includes - a backward-compatible dataset identifier plus provider, resource, and - version values that together identify a specific source snapshot. + a backward-compatible dataset identifier plus optional provider, + resource, and version values that together can identify a specific + source snapshot. type: object - required: [property, dataset, provider, resource, version] + required: [property, dataset] allOf: - { "$ref": "#/$defs/propertyContainers/geometricRangeScopeContainer" } unevaluatedProperties: false