From 6c837488e9306f603256b5d2b8b7b2b4be31bab0 Mon Sep 17 00:00:00 2001 From: bramjanssen Date: Fri, 5 Dec 2025 08:59:30 +0100 Subject: [PATCH 1/3] fix: added provider link to records --- ...ous_rangeland_biomass-country-mosaick.json | 6 ++ .../records/wind_turbine_detection.json | 6 ++ .../records/eurac_pv_farm_detection.json | 6 ++ .../terradue/gep_bas/records/gep_bas.json | 6 ++ .../terradue/gep_ost/records/gep_ost.json | 6 ++ .../terradue/sar_coin/records/sar_coin.json | 6 ++ .../records/snap_insar_sentinel1_iw_slc.json | 6 ++ .../bap_composite/records/bap_composite.json | 6 ++ .../vito/biopar/records/biopar.json | 6 ++ .../fusets_mogpr/records/fusets_mogpr.json | 6 ++ .../records/max_ndvi_composite.json | 6 ++ .../records/parcel_delineation.json | 8 ++- .../records/random_forest_firemapping.json | 6 ++ .../records/sentinel1_stats.json | 6 ++ .../records/variabilitymap.json | 6 ++ .../records/worldcereal_crop_extent.json | 6 ++ .../records/worldcereal_crop_type.json | 6 ++ .../records/worldcover_statistics.json | 6 ++ .../records/wac_inference_africa.json | 6 ++ schemas/record.json | 70 ++++++++++++++----- 20 files changed, 168 insertions(+), 18 deletions(-) diff --git a/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json b/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json index 87ee0471..a4018ad1 100644 --- a/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json +++ b/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json @@ -94,6 +94,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/openeo_platform.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "DHI", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/dhi/record.json" + }, { "rel": "webapp", "type": "text/html", diff --git a/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json b/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json index 5c799881..74c75637 100644 --- a/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json +++ b/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json @@ -96,6 +96,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/openeo_platform.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "DHI", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/dhi/record.json" + }, { "rel": "webapp", "type": "text/html", diff --git a/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json b/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json index 3f3e3638..e1f3d552 100644 --- a/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json +++ b/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json @@ -115,6 +115,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "Eurac Research", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/eurac/record.json" + }, { "rel": "webapp", "type": "text/html", diff --git a/algorithm_catalog/terradue/gep_bas/records/gep_bas.json b/algorithm_catalog/terradue/gep_bas/records/gep_bas.json index b9cb10d0..03558753 100644 --- a/algorithm_catalog/terradue/gep_bas/records/gep_bas.json +++ b/algorithm_catalog/terradue/gep_bas/records/gep_bas.json @@ -97,6 +97,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "Terradue", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + }, { "rel": "service", "type": "application/json", diff --git a/algorithm_catalog/terradue/gep_ost/records/gep_ost.json b/algorithm_catalog/terradue/gep_ost/records/gep_ost.json index a40e2fee..87eb58e4 100644 --- a/algorithm_catalog/terradue/gep_ost/records/gep_ost.json +++ b/algorithm_catalog/terradue/gep_ost/records/gep_ost.json @@ -95,6 +95,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "Terradue", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + }, { "rel": "service", "type": "application/json", diff --git a/algorithm_catalog/terradue/sar_coin/records/sar_coin.json b/algorithm_catalog/terradue/sar_coin/records/sar_coin.json index 1e76fc5b..70221f65 100644 --- a/algorithm_catalog/terradue/sar_coin/records/sar_coin.json +++ b/algorithm_catalog/terradue/sar_coin/records/sar_coin.json @@ -96,6 +96,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "Terradue", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + }, { "rel": "service", "type": "application/json", diff --git a/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json b/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json index 4b283546..9d01e0ed 100644 --- a/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json +++ b/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json @@ -96,6 +96,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "Terradue", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + }, { "rel": "service", "type": "application/json", diff --git a/algorithm_catalog/vito/bap_composite/records/bap_composite.json b/algorithm_catalog/vito/bap_composite/records/bap_composite.json index 00502dc7..a739ee75 100644 --- a/algorithm_catalog/vito/bap_composite/records/bap_composite.json +++ b/algorithm_catalog/vito/bap_composite/records/bap_composite.json @@ -107,6 +107,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "example-output", "type": "application/json", diff --git a/algorithm_catalog/vito/biopar/records/biopar.json b/algorithm_catalog/vito/biopar/records/biopar.json index f7f0cb13..559fe718 100644 --- a/algorithm_catalog/vito/biopar/records/biopar.json +++ b/algorithm_catalog/vito/biopar/records/biopar.json @@ -124,6 +124,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "example-output", "type": "image/tif", diff --git a/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json b/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json index ce0b87e3..1e8b553f 100644 --- a/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json +++ b/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json @@ -135,6 +135,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "about", "type": "text/html", diff --git a/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json b/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json index 28381db1..913507f6 100644 --- a/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json +++ b/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json @@ -112,6 +112,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "example-output", "type": "application/json", diff --git a/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json b/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json index d29dc439..05b6cad2 100644 --- a/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json +++ b/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json @@ -111,6 +111,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "webapp", "type": "text/html", @@ -142,4 +148,4 @@ "href": "https://raw.githubusercontent.com/Open-EO/openeo-community-examples/refs/heads/main/python/ParcelDelineation/Parcel%20delineation.ipynb" } ] -} +} \ No newline at end of file diff --git a/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json b/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json index 709fb292..5daff4a8 100644 --- a/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json +++ b/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json @@ -107,6 +107,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "example-output", "type": "image/tif", diff --git a/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json b/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json index e20285b5..23e5080d 100644 --- a/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json +++ b/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json @@ -110,6 +110,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "example-output", "type": "application/netcdf", diff --git a/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json b/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json index ecc6f398..bbe74961 100644 --- a/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json +++ b/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json @@ -128,6 +128,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "example-output", "type": "application/netcdf", diff --git a/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json b/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json index 2e1aefeb..86bd708b 100644 --- a/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json +++ b/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json @@ -117,6 +117,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "about", "type": "text/html", diff --git a/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json b/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json index 018bc764..6ac269f0 100644 --- a/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json +++ b/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json @@ -115,6 +115,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "about", "type": "text/html", diff --git a/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json b/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json index 334334d9..d7f28061 100644 --- a/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json +++ b/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json @@ -94,6 +94,12 @@ "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" }, + { + "rel": "provider", + "type": "application/json", + "title": "VITO", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + }, { "rel": "webapp", "type": "text/html", diff --git a/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json b/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json index 1b611d67..190d9110 100644 --- a/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json +++ b/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json @@ -107,6 +107,12 @@ "type": "application/json", "title": "CDSE openEO federation", "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + }, + { + "rel": "provider", + "type": "application/json", + "title": "Wageningen University & Research", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/wur/record.json" } ] } \ No newline at end of file diff --git a/schemas/record.json b/schemas/record.json index b1b56186..6d121040 100644 --- a/schemas/record.json +++ b/schemas/record.json @@ -448,6 +448,7 @@ "description": "The type or semantics of the relation.", "enum": [ "platform", + "provider", "application", "service", "example-output", @@ -483,25 +484,50 @@ "title", "href" ], - "if": { - "properties": { - "rel": { - "const": "platform" - } - } - }, - "then": { - "properties": { - "href": { - "type": "string", - "description": "Platform record URI (must point into platform_catalog).", - "pattern": "^https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/[^\\s]+\\.json$" + "allOf": [ + { + "if": { + "properties": { + "rel": { + "const": "platform" + } + } + }, + "then": { + "properties": { + "href": { + "type": "string", + "description": "Platform record URI (must point into platform_catalog).", + "pattern": "^https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/[^\\s]+\\.json$" + } + }, + "required": [ + "href" + ] } }, - "required": [ - "href" - ] - } + { + "if": { + "properties": { + "rel": { + "const": "provider" + } + } + }, + "then": { + "properties": { + "href": { + "type": "string", + "description": "Provider record URI (must point into platform_catalog).", + "pattern": "^https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/[A-Za-z_-]+/record\\.json$" + } + }, + "required": [ + "href" + ] + } + } + ] }, "minItems": 3, "allOf": [ @@ -525,6 +551,16 @@ } } }, + { + "contains": { + "type": "object", + "properties": { + "rel": { + "const": "provider" + } + } + } + }, { "contains": { "type": "object", From 216676680cb0e12bce04dee86e5cabd4d4c56aaa Mon Sep 17 00:00:00 2001 From: bramjanssen Date: Fri, 5 Dec 2025 09:24:26 +0100 Subject: [PATCH 2/3] fix(#274): made provider and platform paths relative --- .../RAMONA-herbaceous_rangeland_biomass-country-mosaick.json | 4 ++-- .../dhi/wind_turbine/records/wind_turbine_detection.json | 4 ++-- .../records/eurac_pv_farm_detection.json | 4 ++-- algorithm_catalog/terradue/gep_bas/records/gep_bas.json | 4 ++-- algorithm_catalog/terradue/gep_ost/records/gep_ost.json | 4 ++-- algorithm_catalog/terradue/sar_coin/records/sar_coin.json | 4 ++-- .../records/snap_insar_sentinel1_iw_slc.json | 4 ++-- .../vito/bap_composite/records/bap_composite.json | 4 ++-- algorithm_catalog/vito/biopar/records/biopar.json | 4 ++-- algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json | 4 ++-- .../vito/max_ndvi_composite/records/max_ndvi_composite.json | 4 ++-- .../vito/parcel_delineation/records/parcel_delineation.json | 4 ++-- .../records/random_forest_firemapping.json | 4 ++-- .../vito/sentinel1_stats/records/sentinel1_stats.json | 4 ++-- .../vito/variabilitymap/records/variabilitymap.json | 4 ++-- .../records/worldcereal_crop_extent.json | 4 ++-- .../worldcereal_crop_type/records/worldcereal_crop_type.json | 4 ++-- .../worldcover_statistics/records/worldcover_statistics.json | 4 ++-- .../worldagrocommodities/records/wac_inference_africa.json | 4 ++-- schemas/record.json | 4 ++-- 20 files changed, 40 insertions(+), 40 deletions(-) diff --git a/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json b/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json index a4018ad1..cf02635f 100644 --- a/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json +++ b/algorithm_catalog/dhi/RAMONA-herbaceous_rangeland_biomass-country-mosaick/records/RAMONA-herbaceous_rangeland_biomass-country-mosaick.json @@ -92,13 +92,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/openeo_platform.json" + "href": "../../../../platform_catalog/openeo_platform.json" }, { "rel": "provider", "type": "application/json", "title": "DHI", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/dhi/record.json" + "href": "../../record.json" }, { "rel": "webapp", diff --git a/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json b/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json index 74c75637..269a857f 100644 --- a/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json +++ b/algorithm_catalog/dhi/wind_turbine/records/wind_turbine_detection.json @@ -94,13 +94,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/openeo_platform.json" + "href": "../../../../platform_catalog/openeo_platform.json" }, { "rel": "provider", "type": "application/json", "title": "DHI", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/dhi/record.json" + "href": "../../record.json" }, { "rel": "webapp", diff --git a/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json b/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json index e1f3d552..bf92dc62 100644 --- a/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json +++ b/algorithm_catalog/eurac/eurac_pv_farm_detection/records/eurac_pv_farm_detection.json @@ -113,13 +113,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "Eurac Research", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/eurac/record.json" + "href": "../../record.json" }, { "rel": "webapp", diff --git a/algorithm_catalog/terradue/gep_bas/records/gep_bas.json b/algorithm_catalog/terradue/gep_bas/records/gep_bas.json index 03558753..fa42c226 100644 --- a/algorithm_catalog/terradue/gep_bas/records/gep_bas.json +++ b/algorithm_catalog/terradue/gep_bas/records/gep_bas.json @@ -95,13 +95,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" + "href": "../../../../platform_catalog/gep.json" }, { "rel": "provider", "type": "application/json", "title": "Terradue", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + "href": "../../record.json" }, { "rel": "service", diff --git a/algorithm_catalog/terradue/gep_ost/records/gep_ost.json b/algorithm_catalog/terradue/gep_ost/records/gep_ost.json index 87eb58e4..1057be1d 100644 --- a/algorithm_catalog/terradue/gep_ost/records/gep_ost.json +++ b/algorithm_catalog/terradue/gep_ost/records/gep_ost.json @@ -93,13 +93,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" + "href": "../../../../platform_catalog/gep.json" }, { "rel": "provider", "type": "application/json", "title": "Terradue", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + "href": "../../record.json" }, { "rel": "service", diff --git a/algorithm_catalog/terradue/sar_coin/records/sar_coin.json b/algorithm_catalog/terradue/sar_coin/records/sar_coin.json index 70221f65..b4f22fca 100644 --- a/algorithm_catalog/terradue/sar_coin/records/sar_coin.json +++ b/algorithm_catalog/terradue/sar_coin/records/sar_coin.json @@ -94,13 +94,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" + "href": "../../../../platform_catalog/gep.json" }, { "rel": "provider", "type": "application/json", "title": "Terradue", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + "href": "../../record.json" }, { "rel": "service", diff --git a/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json b/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json index 9d01e0ed..c91bc929 100644 --- a/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json +++ b/algorithm_catalog/terradue/snap_insar_sentinel1_iw_slc/records/snap_insar_sentinel1_iw_slc.json @@ -94,13 +94,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/gep.json" + "href": "../../../../platform_catalog/gep.json" }, { "rel": "provider", "type": "application/json", "title": "Terradue", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/terradue/record.json" + "href": "../../record.json" }, { "rel": "service", diff --git a/algorithm_catalog/vito/bap_composite/records/bap_composite.json b/algorithm_catalog/vito/bap_composite/records/bap_composite.json index a739ee75..22fe51f2 100644 --- a/algorithm_catalog/vito/bap_composite/records/bap_composite.json +++ b/algorithm_catalog/vito/bap_composite/records/bap_composite.json @@ -105,13 +105,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "example-output", diff --git a/algorithm_catalog/vito/biopar/records/biopar.json b/algorithm_catalog/vito/biopar/records/biopar.json index 559fe718..987c2233 100644 --- a/algorithm_catalog/vito/biopar/records/biopar.json +++ b/algorithm_catalog/vito/biopar/records/biopar.json @@ -122,13 +122,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "example-output", diff --git a/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json b/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json index 1e8b553f..b14fbc74 100644 --- a/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json +++ b/algorithm_catalog/vito/fusets_mogpr/records/fusets_mogpr.json @@ -133,13 +133,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "about", diff --git a/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json b/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json index 913507f6..a43f60a1 100644 --- a/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json +++ b/algorithm_catalog/vito/max_ndvi_composite/records/max_ndvi_composite.json @@ -110,13 +110,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "example-output", diff --git a/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json b/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json index 05b6cad2..afeede37 100644 --- a/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json +++ b/algorithm_catalog/vito/parcel_delineation/records/parcel_delineation.json @@ -109,13 +109,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "webapp", diff --git a/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json b/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json index 5daff4a8..1f318a1b 100644 --- a/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json +++ b/algorithm_catalog/vito/random_forest_firemapping/records/random_forest_firemapping.json @@ -105,13 +105,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "example-output", diff --git a/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json b/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json index 23e5080d..c031574e 100644 --- a/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json +++ b/algorithm_catalog/vito/sentinel1_stats/records/sentinel1_stats.json @@ -108,13 +108,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "example-output", diff --git a/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json b/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json index bbe74961..41193099 100644 --- a/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json +++ b/algorithm_catalog/vito/variabilitymap/records/variabilitymap.json @@ -126,13 +126,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "example-output", diff --git a/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json b/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json index 86bd708b..ebbc6e8b 100644 --- a/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json +++ b/algorithm_catalog/vito/worldcereal_crop_extent/records/worldcereal_crop_extent.json @@ -115,13 +115,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "about", diff --git a/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json b/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json index 6ac269f0..f81e3cd0 100644 --- a/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json +++ b/algorithm_catalog/vito/worldcereal_crop_type/records/worldcereal_crop_type.json @@ -113,13 +113,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "about", diff --git a/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json b/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json index d7f28061..7a9b6fe9 100644 --- a/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json +++ b/algorithm_catalog/vito/worldcover_statistics/records/worldcover_statistics.json @@ -92,13 +92,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "VITO", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/vito/record.json" + "href": "../../record.json" }, { "rel": "webapp", diff --git a/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json b/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json index 190d9110..5d95544b 100644 --- a/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json +++ b/algorithm_catalog/wur/worldagrocommodities/records/wac_inference_africa.json @@ -106,13 +106,13 @@ "rel": "platform", "type": "application/json", "title": "CDSE openEO federation", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/cdse_openeo_federation.json" + "href": "../../../../platform_catalog/cdse_openeo_federation.json" }, { "rel": "provider", "type": "application/json", "title": "Wageningen University & Research", - "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/wur/record.json" + "href": "../../record.json" } ] } \ No newline at end of file diff --git a/schemas/record.json b/schemas/record.json index 6d121040..ebd7ba8f 100644 --- a/schemas/record.json +++ b/schemas/record.json @@ -498,7 +498,7 @@ "href": { "type": "string", "description": "Platform record URI (must point into platform_catalog).", - "pattern": "^https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/platform_catalog/[^\\s]+\\.json$" + "pattern": "^(?:\\.\\.\/){4}platform_catalog/[^\\s]+\\.json$" } }, "required": [ @@ -519,7 +519,7 @@ "href": { "type": "string", "description": "Provider record URI (must point into platform_catalog).", - "pattern": "^https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalogue/[A-Za-z_-]+/record\\.json$" + "pattern": "^(?:\\.\\.\/){2}record\\.json$" } }, "required": [ From 6d00a10c5e4ee494b393cf07c49fcbf63c8aa60d Mon Sep 17 00:00:00 2001 From: bramjanssen Date: Fri, 5 Dec 2025 09:35:23 +0100 Subject: [PATCH 3/3] docs: added links to the platform and provider --- docs/catalogue.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/catalogue.md b/docs/catalogue.md index cc0e5265..6c009edc 100644 --- a/docs/catalogue.md +++ b/docs/catalogue.md @@ -25,6 +25,25 @@ Onboarding your service to the APEx Algorithm Services Catalogue is a straightfo 2. Fork the current repository and add your record file to `algorithm_catalog///records/.json`. You can create the necessary subdirectories if they do not already exist. 3. Once your record is ready, submit a pull request to this repository. The APEx team will review your submission and, upon approval, your service will be added to the APEx Algorithm Services Catalogue. +# Providers and Platforms + +To ensure the proper contribution of the services that are part of the APEx Algorithm Services Catalogue, it is essential to include information about the service provider and the hosting platform within the record. + +## Provider Information + +### Creating a new Provider Record +If you are creating a new folder in the `algorithm_catalog` directory for your service, make sure to include a `record.json` file within that folder. This OGC API Record should contain all the necessary information about the service provider, such as the provider's name, description, and contact details, and a link to the website and logo. You can refer to an existing provider folder in the repository as a template for creating your own. + +### Linking the Service to the Provider +It is also important to link the service record to the provider record. This can be achieved by adding an entry in the `links` section of the service record, where the `rel` property is set to `provider` and the `href` contains the relative path to the provider's record file (`../../record.json`). + +## Hosting Platform Information + +### Creating a new Platform Record +If you are integrating a service record that is hosted on an APEx-compliant platform that is not yet represented in the repository, you will need to create a new `.json` file within the `platform_catalog` directory. This new file contains all the necessary information about the hosting platform, such as its name, description, contact details, website link, and logo. You can refer to an existing platform file in the repository as a template for creating your own. + +### Linking the Service to the Hosting Platform +To link the service record to the hosting platform record, add an entry in the `links` section of the service record. Set the `rel` property to `platform` and the `href` to the relative path of the platform's record file (`../../../../platform_catalog/.json`). # Record Mapping The following sections demonstrate how the various sections from the record are connected to the information displayed in the APEx Algorithm Service Catalogue.