From 290886fc880c74d67f73dfde5832cf8128674bd7 Mon Sep 17 00:00:00 2001 From: David de Boer Date: Mon, 23 Sep 2024 14:40:37 +0200 Subject: [PATCH] feat: Apply to reconciliation API --- jest.config.js | 2 +- .../catalog/datasets/aat-materials.jsonld | 2 +- .../aat-processes-and-techniques.jsonld | 2 +- .../datasets/aat-styles-and-periods.jsonld | 2 +- .../catalog/datasets/aat.jsonld | 2 +- .../catalog/datasets/abr.jsonld | 2 +- .../catalog/datasets/adamlink-adressen.jsonld | 2 +- .../catalog/datasets/adamlink-straten.jsonld | 2 +- .../datasets/brabantse-gebouwen.jsonld | 2 +- .../catalog/datasets/brinkman.jsonld | 2 +- .../catalog/datasets/cht-materials.jsonld | 2 +- .../datasets/cht-styles-and-periods.jsonld | 2 +- .../catalog/datasets/cht.jsonld | 2 +- .../catalog/datasets/eurovoc.jsonld | 2 +- .../catalog/datasets/geonames.jsonld | 2 +- .../datasets/goudatijdmachine-straten.jsonld | 2 +- .../datasets/gtaa-classificatie.jsonld | 2 +- .../catalog/datasets/gtaa-genres.jsonld | 2 +- .../datasets/gtaa-geografische-namen.jsonld | 2 +- .../catalog/datasets/gtaa-namen.jsonld | 2 +- .../datasets/gtaa-onderwerpen-beng.jsonld | 2 +- .../catalog/datasets/gtaa-onderwerpen.jsonld | 2 +- .../datasets/gtaa-persoonsnamen.jsonld | 2 +- .../catalog/datasets/homosaurus.jsonld | 2 +- .../catalog/datasets/iconclass.jsonld | 2 +- .../catalog/datasets/ied.jsonld | 2 +- .../datasets/koloniaal-verleden.jsonld | 2 +- .../muziekschatten-klassieke-werken.jsonld | 2 +- .../muziekschatten-onderwerpen.jsonld | 2 +- .../datasets/muziekschatten-personen.jsonld | 2 +- .../catalog/datasets/mw-genresstijlen.jsonld | 2 +- .../datasets/mw-personengroepen.jsonld | 2 +- .../catalog/datasets/nmvw.jsonld | 2 +- .../catalog/datasets/nta.jsonld | 2 +- .../catalog/datasets/rijksmonumenten.jsonld | 2 +- .../catalog/datasets/rkdartists.jsonld | 2 +- .../catalog/datasets/stcn-drukkers.jsonld | 2 +- .../catalog/datasets/uitvoeringsmedium.jsonld | 2 +- .../catalog/datasets/wo2biografie.jsonld | 2 +- .../catalog/datasets/wo2thesaurus.jsonld | 2 +- packages/network-of-terms-graphql/README.md | 4 +-- .../network-of-terms-query/src/catalog.ts | 9 +++-- .../src/distributions.ts | 4 +-- .../src/manifest.ts | 8 ++--- .../src/query.ts | 4 +-- .../src/server.ts | 10 +++--- .../test/server.test.ts | 33 ++++++++++++++++--- 47 files changed, 89 insertions(+), 63 deletions(-) diff --git a/jest.config.js b/jest.config.js index 5a4c5b25a..66195a4c7 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,7 +12,7 @@ export default { global: { lines: 91.4, statements: 91.4, - branches: 95.45, + branches: 95.46, functions: 92.62, }, }, diff --git a/packages/network-of-terms-catalog/catalog/datasets/aat-materials.jsonld b/packages/network-of-terms-catalog/catalog/datasets/aat-materials.jsonld index ff1433cea..81273333f 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/aat-materials.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/aat-materials.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/aat-processes-and-techniques.jsonld b/packages/network-of-terms-catalog/catalog/datasets/aat-processes-and-techniques.jsonld index 638b8ebf0..a4c11c218 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/aat-processes-and-techniques.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/aat-processes-and-techniques.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/aat-styles-and-periods.jsonld b/packages/network-of-terms-catalog/catalog/datasets/aat-styles-and-periods.jsonld index 6a2b55070..b4c0574fe 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/aat-styles-and-periods.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/aat-styles-and-periods.jsonld @@ -63,7 +63,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/aat.jsonld b/packages/network-of-terms-catalog/catalog/datasets/aat.jsonld index 582a129d1..9d9d77f07 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/aat.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/aat.jsonld @@ -81,7 +81,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/abr.jsonld b/packages/network-of-terms-catalog/catalog/datasets/abr.jsonld index 5f658f91a..12728656b 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/abr.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/abr.jsonld @@ -72,7 +72,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/adamlink-adressen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/adamlink-adressen.jsonld index f0c0748d5..ad78e1b5e 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/adamlink-adressen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/adamlink-adressen.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/adamlink-straten.jsonld b/packages/network-of-terms-catalog/catalog/datasets/adamlink-straten.jsonld index a2a6ddf58..ef69c6572 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/adamlink-straten.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/adamlink-straten.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/brabantse-gebouwen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/brabantse-gebouwen.jsonld index dee0cb3c1..43cf85875 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/brabantse-gebouwen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/brabantse-gebouwen.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/brinkman.jsonld b/packages/network-of-terms-catalog/catalog/datasets/brinkman.jsonld index 4f45c6753..d8f532c26 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/brinkman.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/brinkman.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/cht-materials.jsonld b/packages/network-of-terms-catalog/catalog/datasets/cht-materials.jsonld index 7b11577ac..50596f0d5 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/cht-materials.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/cht-materials.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/cht-styles-and-periods.jsonld b/packages/network-of-terms-catalog/catalog/datasets/cht-styles-and-periods.jsonld index f52e21b68..7de4874d0 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/cht-styles-and-periods.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/cht-styles-and-periods.jsonld @@ -63,7 +63,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/cht.jsonld b/packages/network-of-terms-catalog/catalog/datasets/cht.jsonld index 3a218c6ac..925ddc5df 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/cht.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/cht.jsonld @@ -84,7 +84,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/eurovoc.jsonld b/packages/network-of-terms-catalog/catalog/datasets/eurovoc.jsonld index 1a994c868..631ff00de 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/eurovoc.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/eurovoc.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/geonames.jsonld b/packages/network-of-terms-catalog/catalog/datasets/geonames.jsonld index df06909c9..1da926b96 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/geonames.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/geonames.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/goudatijdmachine-straten.jsonld b/packages/network-of-terms-catalog/catalog/datasets/goudatijdmachine-straten.jsonld index 9a9a112cb..ebd0fdb92 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/goudatijdmachine-straten.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/goudatijdmachine-straten.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-classificatie.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-classificatie.jsonld index b6afa4f27..6ffc979b9 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-classificatie.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-classificatie.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-genres.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-genres.jsonld index 02b032293..9947ef11f 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-genres.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-genres.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-geografische-namen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-geografische-namen.jsonld index c2b36c2a4..3151b447b 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-geografische-namen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-geografische-namen.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-namen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-namen.jsonld index 9e91f7932..a2e4d3ec4 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-namen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-namen.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen-beng.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen-beng.jsonld index 4a3c52f5d..f14600258 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen-beng.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen-beng.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen.jsonld index 09eaf3b7f..65b9c72d1 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-onderwerpen.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/gtaa-persoonsnamen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/gtaa-persoonsnamen.jsonld index 88b70e75e..336e7e520 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/gtaa-persoonsnamen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/gtaa-persoonsnamen.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/homosaurus.jsonld b/packages/network-of-terms-catalog/catalog/datasets/homosaurus.jsonld index a45ed902b..c8d8f1b39 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/homosaurus.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/homosaurus.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/iconclass.jsonld b/packages/network-of-terms-catalog/catalog/datasets/iconclass.jsonld index 265dc84f0..e3619aeae 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/iconclass.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/iconclass.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/ied.jsonld b/packages/network-of-terms-catalog/catalog/datasets/ied.jsonld index 047b5b1f0..7d0a928d1 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/ied.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/ied.jsonld @@ -69,7 +69,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/koloniaal-verleden.jsonld b/packages/network-of-terms-catalog/catalog/datasets/koloniaal-verleden.jsonld index e6ef20914..0fae62cda 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/koloniaal-verleden.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/koloniaal-verleden.jsonld @@ -66,7 +66,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-klassieke-werken.jsonld b/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-klassieke-werken.jsonld index 5ee8e6c79..a2d96605c 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-klassieke-werken.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-klassieke-werken.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-onderwerpen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-onderwerpen.jsonld index ffff789cc..80995fdbb 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-onderwerpen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-onderwerpen.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-personen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-personen.jsonld index 190e6712b..9aa580c25 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-personen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/muziekschatten-personen.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/mw-genresstijlen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/mw-genresstijlen.jsonld index e91306056..de53f5a95 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/mw-genresstijlen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/mw-genresstijlen.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/mw-personengroepen.jsonld b/packages/network-of-terms-catalog/catalog/datasets/mw-personengroepen.jsonld index 4d41513fa..04d849693 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/mw-personengroepen.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/mw-personengroepen.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/nmvw.jsonld b/packages/network-of-terms-catalog/catalog/datasets/nmvw.jsonld index dbc4e8b71..7b0e16351 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/nmvw.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/nmvw.jsonld @@ -66,7 +66,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/nta.jsonld b/packages/network-of-terms-catalog/catalog/datasets/nta.jsonld index 7e688eb5f..44c16dfbe 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/nta.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/nta.jsonld @@ -60,7 +60,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/rijksmonumenten.jsonld b/packages/network-of-terms-catalog/catalog/datasets/rijksmonumenten.jsonld index aa8790ac6..5a7627e67 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/rijksmonumenten.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/rijksmonumenten.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/rkdartists.jsonld b/packages/network-of-terms-catalog/catalog/datasets/rkdartists.jsonld index 15e91bca2..e1588560c 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/rkdartists.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/rkdartists.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/stcn-drukkers.jsonld b/packages/network-of-terms-catalog/catalog/datasets/stcn-drukkers.jsonld index 8c8e3f119..9091e7fbf 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/stcn-drukkers.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/stcn-drukkers.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/uitvoeringsmedium.jsonld b/packages/network-of-terms-catalog/catalog/datasets/uitvoeringsmedium.jsonld index 4bec452f7..1412a4dc5 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/uitvoeringsmedium.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/uitvoeringsmedium.jsonld @@ -57,7 +57,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/wo2biografie.jsonld b/packages/network-of-terms-catalog/catalog/datasets/wo2biografie.jsonld index 985f9abd6..8a3b94ce3 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/wo2biografie.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/wo2biografie.jsonld @@ -54,7 +54,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-catalog/catalog/datasets/wo2thesaurus.jsonld b/packages/network-of-terms-catalog/catalog/datasets/wo2thesaurus.jsonld index 355c14d67..5d5f6cd97 100644 --- a/packages/network-of-terms-catalog/catalog/datasets/wo2thesaurus.jsonld +++ b/packages/network-of-terms-catalog/catalog/datasets/wo2thesaurus.jsonld @@ -63,7 +63,7 @@ "@id": "https://reconciliation-api.github.io/specs/latest/", "@type": "SoftwareApplication" }, - "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}" + "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}" } } ] diff --git a/packages/network-of-terms-graphql/README.md b/packages/network-of-terms-graphql/README.md index beea01283..62dde501d 100644 --- a/packages/network-of-terms-graphql/README.md +++ b/packages/network-of-terms-graphql/README.md @@ -91,7 +91,7 @@ query Sources { # Query Cultuurhistorische Thesaurus (CHT) query { terms( - sources: ["https://data.cultureelerfgoed.nl/PoolParty/sparql/term/id/cht"], + sources: ["https://data.cultureelerfgoed.nl/term/id/cht"], query: "fiets" ) { source { @@ -146,7 +146,7 @@ query { # Query RKDartists and NTA simultaneously query { terms( - sources: ["https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql", "http://data.bibliotheken.nl/thesp/sparql"], + sources: ["https://data.rkd.nl/rkdartists", "http://data.bibliotheken.nl/id/dataset/persons"], query: "Gogh" ) { source { diff --git a/packages/network-of-terms-query/src/catalog.ts b/packages/network-of-terms-query/src/catalog.ts index e3a098200..5944c8f8d 100644 --- a/packages/network-of-terms-query/src/catalog.ts +++ b/packages/network-of-terms-query/src/catalog.ts @@ -3,9 +3,14 @@ import {URL} from 'url'; export class Catalog { constructor(readonly datasets: ReadonlyArray) {} + /** + * Get dataset by IRI, accepting distribution IRIs too for BC. + */ public getDatasetByIri(iri: IRI): Dataset | undefined { - return this.datasets.find( - dataset => dataset.iri.toString() === iri.toString() + return ( + this.datasets.find( + dataset => dataset.iri.toString() === iri.toString() + ) ?? this.getDatasetByDistributionIri(iri) ); } diff --git a/packages/network-of-terms-query/src/distributions.ts b/packages/network-of-terms-query/src/distributions.ts index bc4ab1849..9437b14fb 100644 --- a/packages/network-of-terms-query/src/distributions.ts +++ b/packages/network-of-terms-query/src/distributions.ts @@ -53,9 +53,7 @@ export class DistributionsService { async query(options: QueryOptions): Promise { const args = Joi.attempt(options, schemaQuery); this.logger.info(`Preparing to query source "${args.source}"...`); - const dataset = - this.catalog.getDatasetByIri(args.source) ?? - this.catalog.getDatasetByDistributionIri(args.source); + const dataset = this.catalog.getDatasetByIri(args.source); if (dataset === undefined) { throw Error(`Source with URI "${args.source}" not found`); } diff --git a/packages/network-of-terms-reconciliation/src/manifest.ts b/packages/network-of-terms-reconciliation/src/manifest.ts index 5e30c0bbf..4fc156960 100644 --- a/packages/network-of-terms-reconciliation/src/manifest.ts +++ b/packages/network-of-terms-reconciliation/src/manifest.ts @@ -38,16 +38,14 @@ export class ServiceManifest { } export function findManifest( - distributionIri: IRI, + dataset: IRI, catalog: Catalog, root: string ): ServiceManifest | undefined { - const source = catalog.getDatasetByDistributionIri(distributionIri); + const source = catalog.getDatasetByIri(dataset); if ( source && - source - .getDistributionByIri(distributionIri) - ?.hasFeature(FeatureType.RECONCILIATION) + source.getSparqlDistribution()?.hasFeature(FeatureType.RECONCILIATION) ) { return new ServiceManifest(source.name, source.iri, root); } diff --git a/packages/network-of-terms-reconciliation/src/query.ts b/packages/network-of-terms-reconciliation/src/query.ts index 208e34236..27ff1de1d 100644 --- a/packages/network-of-terms-reconciliation/src/query.ts +++ b/packages/network-of-terms-reconciliation/src/query.ts @@ -14,12 +14,12 @@ import {score} from './score.js'; * We may want to make this smarter by batching queries and acting on Timeout responses. */ export async function reconciliationQuery( - distributionIri: IRI, + datasetIri: IRI, query: ReconciliationQueryBatch, catalog: Catalog, queryTermsService: QueryTermsService ): Promise { - const dataset = catalog.getDatasetByDistributionIri(distributionIri)!; + const dataset = catalog.getDatasetByIri(datasetIri)!; const distribution = dataset.distributions[0]; return Object.entries(query).reduce( diff --git a/packages/network-of-terms-reconciliation/src/server.ts b/packages/network-of-terms-reconciliation/src/server.ts index 789b8bfe3..9e73f2e3f 100644 --- a/packages/network-of-terms-reconciliation/src/server.ts +++ b/packages/network-of-terms-reconciliation/src/server.ts @@ -51,8 +51,8 @@ export async function server( }); server.get<{Params: {'*': string}}>('/reconcile/*', (request, reply) => { - const distributionIri = new IRI(request.params['*']); - const manifest = findManifest(distributionIri, catalog, request.root); + const dataset = new IRI(request.params['*']); + const manifest = findManifest(dataset, catalog, request.root); if (manifest === undefined) { reply.code(404).send(); return; @@ -89,8 +89,8 @@ export async function server( ); return; } - const distributionIri = new IRI(request.params['*']); - const manifest = findManifest(distributionIri, catalog, request.root); + const dataset = new IRI(request.params['*']); + const manifest = findManifest(dataset, catalog, request.root); if (manifest === undefined) { reply.code(404).send(); return; @@ -98,7 +98,7 @@ export async function server( reply.send( await reconciliationQuery( - distributionIri, + dataset, request.body as ReconciliationQueryBatch, catalog, queryTermsService diff --git a/packages/network-of-terms-reconciliation/test/server.test.ts b/packages/network-of-terms-reconciliation/test/server.test.ts index c385bd388..7c03c434a 100644 --- a/packages/network-of-terms-reconciliation/test/server.test.ts +++ b/packages/network-of-terms-reconciliation/test/server.test.ts @@ -29,6 +29,14 @@ describe('Server', () => { }); it('returns reconciliation service manifest', async () => { + const response = await httpServer.inject({ + method: 'GET', + url: '/reconcile/https://data.rkd.nl/rkdartists', + }); + expect(response.statusCode).toEqual(200); + }); + + it('returns reconciliation service manifest with backwards compatible distribution URI', async () => { const response = await httpServer.inject({ method: 'GET', url: '/reconcile/https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql', @@ -52,7 +60,7 @@ describe('Server', () => { it('responds to successful reconciliation API requests', async () => { const response = await reconciliationQuery( - 'https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql' + 'https://data.rkd.nl/rkdartists' ); expect(response.statusCode).toEqual(200); const results = JSON.parse(response.body); @@ -78,9 +86,26 @@ describe('Server', () => { expect(results.q3.result).toEqual([]); // No results. }); + it('responds to successful reconciliation API request with backwards compatible distribution URI', async () => { + const response = await reconciliationQuery( + 'https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql' + ); + expect(response.statusCode).toEqual(200); + const results = JSON.parse(response.body); + + expect(results.q1.result).toEqual([ + { + id: 'https://example.com/resources/artwork', + name: 'Nachtwacht', + score: 100, + description: 'Nachtwacht alt', + }, + ]); + }); + it('limits reconciliation API results', async () => { const response = await reconciliationQuery( - 'https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql', + 'https://data.rkd.nl/rkdartists', { q1: { query: 'art', @@ -99,7 +124,7 @@ describe('Server', () => { it('validates reconciliation requests', async () => { const response = await reconciliationQuery( - 'https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql', + 'https://data.rkd.nl/rkdartists', { q1: { query: 'art', @@ -137,7 +162,7 @@ describe('Server', () => { // This is what OpenRefine currently expects. const response2 = await dataExtensionQuery( - '/reconcile/https://data.netwerkdigitaalerfgoed.nl/rkd/rkdartists/sparql/extend' + '/reconcile/https://data.rkd.nl/rkdartists/extend' ); expect(response2.statusCode).toEqual(200); const results2 = JSON.parse(response.body);