From 9e8dac288c1706c407ad71accfb8ad95b6ef146f Mon Sep 17 00:00:00 2001 From: rschalkrce Date: Sun, 2 Feb 2025 02:18:25 +0000 Subject: [PATCH] Automated backup of SPARQL queries --- LDV/missingscopenote01.rq | 55 ++++++++++++++++++++++++++++++++++++++ LDV/missingscopenote02.rq | 51 +++++++++++++++++++++++++++++++++++ LDV/missingscopenote03.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/missingscopenote04.rq | 56 +++++++++++++++++++++++++++++++++++++++ LDV/missingscopenote05.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/missingscopenote06.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/missingscopenote07.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/missingscopenote08.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/missingscopenote09.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/missingscopenote10.rq | 54 +++++++++++++++++++++++++++++++++++++ LDV/topTerm.rq | 34 ++++++++++++++++++++++++ 11 files changed, 574 insertions(+) create mode 100644 LDV/missingscopenote01.rq create mode 100644 LDV/missingscopenote02.rq create mode 100644 LDV/missingscopenote03.rq create mode 100644 LDV/missingscopenote04.rq create mode 100644 LDV/missingscopenote05.rq create mode 100644 LDV/missingscopenote06.rq create mode 100644 LDV/missingscopenote07.rq create mode 100644 LDV/missingscopenote08.rq create mode 100644 LDV/missingscopenote09.rq create mode 100644 LDV/missingscopenote10.rq create mode 100644 LDV/topTerm.rq diff --git a/LDV/missingscopenote01.rq b/LDV/missingscopenote01.rq new file mode 100644 index 0000000..6c2e0f7 --- /dev/null +++ b/LDV/missingscopenote01.rq @@ -0,0 +1,55 @@ +#+ name: missingscopenote01 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag1 + ?prefLabelLaag2 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag1 + ?prefLabelLaag2 + (IF(BOUND(?objectScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach Layer 2 and Layer 3: + + skos:narrower ?object . + + skos:prefLabel ?prefLabelLaag1 . + FILTER(LANG(?prefLabelLaag1) = "nl") + + + + ?object skos:prefLabel ?prefLabelLaag2 . + FILTER(LANG(?prefLabelLaag2) = "nl") + + + + # Optional scopeNote on the Layer 3 term: + OPTIONAL { + ?object skos:scopeNote ?objectScopeNote . + FILTER(LANG(?objectScopeNote) = "nl") + } + + # Use skos:narrower+ to get all descendant terms of ?object1 and only bind those without a Dutch scopeNote: + OPTIONAL { + ?object skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag1 ?prefLabelLaag2 ?objectScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote02.rq b/LDV/missingscopenote02.rq new file mode 100644 index 0000000..c217c5b --- /dev/null +++ b/LDV/missingscopenote02.rq @@ -0,0 +1,51 @@ +#+ name: missingscopenote02 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag2 + ?prefLabelLaag3 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag2 + ?prefLabelLaag3 + (IF(BOUND(?object1ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach Layer 2 and Layer 3: + + skos:narrower ?object . + ?object skos:prefLabel ?prefLabelLaag2 . + FILTER(LANG(?prefLabelLaag2) = "nl") + + ?object skos:narrower ?object1 . + ?object1 skos:prefLabel ?prefLabelLaag3 . + FILTER(LANG(?prefLabelLaag3) = "nl") + + # Optional scopeNote on the Layer 3 term: + OPTIONAL { + ?object1 skos:scopeNote ?object1ScopeNote . + FILTER(LANG(?object1ScopeNote) = "nl") + } + + # Use skos:narrower+ to get all descendant terms of ?object1 and only bind those without a Dutch scopeNote: + OPTIONAL { + ?object1 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag2 ?prefLabelLaag3 ?object1ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote03.rq b/LDV/missingscopenote03.rq new file mode 100644 index 0000000..3714da9 --- /dev/null +++ b/LDV/missingscopenote03.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote03 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag3 + ?prefLabelLaag4 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag3 + ?prefLabelLaag4 + (IF(BOUND(?object2ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach Layer 3 and Layer 4 concepts: + + skos:narrower/skos:narrower ?object1 . + + ?object1 skos:prefLabel ?prefLabelLaag3 . + FILTER(LANG(?prefLabelLaag3) = "nl") + + ?object1 skos:narrower ?object2 . + + ?object2 skos:prefLabel ?prefLabelLaag4 . + FILTER(LANG(?prefLabelLaag4) = "nl") + + # Optional scopeNote at Layer 4: + OPTIONAL { + ?object2 skos:scopeNote ?object2ScopeNote . + FILTER(LANG(?object2ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object2 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object2 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag3 ?prefLabelLaag4 ?object2ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote04.rq b/LDV/missingscopenote04.rq new file mode 100644 index 0000000..13652bb --- /dev/null +++ b/LDV/missingscopenote04.rq @@ -0,0 +1,56 @@ +#+ name: missingscopenote04 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag4 + ?prefLabelLaag5 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) # 0 if no results + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag4 + ?prefLabelLaag5 + (IF(BOUND(?object3ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 4 concept: + + skos:narrower/skos:narrower/skos:narrower ?object2 . + + ?object2 skos:prefLabel ?prefLabelLaag4 . + FILTER(LANG(?prefLabelLaag4) = "nl") + + # Get the Layer 5 term: + ?object2 skos:narrower ?object3 . + ?object3 skos:prefLabel ?prefLabelLaag5 . + FILTER(LANG(?prefLabelLaag5) = "nl") + + # Optionally get the scopeNote at Layer 5: + OPTIONAL { + ?object3 skos:scopeNote ?object3ScopeNote . + FILTER(LANG(?object3ScopeNote) = "nl") + } + + # Retrieve all descendant terms (using skos:narrower+) of ?object3 that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object3 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?anyScopeNote . + FILTER(LANG(?anyScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY + ?prefLabelLaag4 + ?prefLabelLaag5 + ?object3ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote05.rq b/LDV/missingscopenote05.rq new file mode 100644 index 0000000..aee26cb --- /dev/null +++ b/LDV/missingscopenote05.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote05 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag5 + ?prefLabelLaag6 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag5 + ?prefLabelLaag6 + (IF(BOUND(?object4ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 6 concept: + + skos:narrower/skos:narrower/skos:narrower/skos:narrower ?object3 . + + ?object3 skos:prefLabel ?prefLabelLaag5 . + FILTER(LANG(?prefLabelLaag5) = "nl") + + ?object3 skos:narrower ?object4 . + + ?object4 skos:prefLabel ?prefLabelLaag6 . + FILTER(LANG(?prefLabelLaag6) = "nl") + + # Optional: Get the scopeNote for the Layer 6 term: + OPTIONAL { + ?object4 skos:scopeNote ?object4ScopeNote . + FILTER(LANG(?object4ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object4 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object4 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag5 ?prefLabelLaag6 ?object4ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote06.rq b/LDV/missingscopenote06.rq new file mode 100644 index 0000000..6eb3f25 --- /dev/null +++ b/LDV/missingscopenote06.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote06 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag6 + ?prefLabelLaag7 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag6 + ?prefLabelLaag7 + (IF(BOUND(?object5ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 6 concept: + + skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower ?object4 . + + ?object4 skos:prefLabel ?prefLabelLaag6 . + FILTER(LANG(?prefLabelLaag6) = "nl") + + ?object4 skos:narrower ?object5 . + + ?object5 skos:prefLabel ?prefLabelLaag7 . + FILTER(LANG(?prefLabelLaag7) = "nl") + + # Optional: Get the scopeNote for the Layer 6 term: + OPTIONAL { + ?object5 skos:scopeNote ?object5ScopeNote . + FILTER(LANG(?object5ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object4 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object5 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag6 ?prefLabelLaag7 ?object5ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote07.rq b/LDV/missingscopenote07.rq new file mode 100644 index 0000000..c502c22 --- /dev/null +++ b/LDV/missingscopenote07.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote07 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag7 + ?prefLabelLaag8 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag7 + ?prefLabelLaag8 + (IF(BOUND(?object6ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 6 concept: + + skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower ?object5 . + + ?object5 skos:prefLabel ?prefLabelLaag7 . + FILTER(LANG(?prefLabelLaag7) = "nl") + + ?object5 skos:narrower ?object6 . + + ?object6 skos:prefLabel ?prefLabelLaag8 . + FILTER(LANG(?prefLabelLaag8) = "nl") + + # Optional: Get the scopeNote for the Layer 6 term: + OPTIONAL { + ?object6 skos:scopeNote ?object6ScopeNote . + FILTER(LANG(?object6ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object4 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object6 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag7 ?prefLabelLaag8 ?object6ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote08.rq b/LDV/missingscopenote08.rq new file mode 100644 index 0000000..2e59221 --- /dev/null +++ b/LDV/missingscopenote08.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote08 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag8 + ?prefLabelLaag9 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag8 + ?prefLabelLaag9 + (IF(BOUND(?object7ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 6 concept: + + skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower ?object6 . + + ?object6 skos:prefLabel ?prefLabelLaag8 . + FILTER(LANG(?prefLabelLaag8) = "nl") + + ?object6 skos:narrower ?object7 . + + ?object7 skos:prefLabel ?prefLabelLaag9 . + FILTER(LANG(?prefLabelLaag9) = "nl") + + # Optional: Get the scopeNote for the Layer 6 term: + OPTIONAL { + ?object7 skos:scopeNote ?object7ScopeNote . + FILTER(LANG(?object7ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object4 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object7 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag8 ?prefLabelLaag9 ?object7ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote09.rq b/LDV/missingscopenote09.rq new file mode 100644 index 0000000..8ef71bb --- /dev/null +++ b/LDV/missingscopenote09.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote09 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag9 + ?prefLabelLaag10 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag9 + ?prefLabelLaag10 + (IF(BOUND(?object8ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 6 concept: + + skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower ?object7 . + + ?object7 skos:prefLabel ?prefLabelLaag9 . + FILTER(LANG(?prefLabelLaag9) = "nl") + + ?object7 skos:narrower ?object8 . + + ?object8 skos:prefLabel ?prefLabelLaag10 . + FILTER(LANG(?prefLabelLaag10) = "nl") + + # Optional: Get the scopeNote for the Layer 6 term: + OPTIONAL { + ?object8 skos:scopeNote ?object8ScopeNote . + FILTER(LANG(?object8ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object4 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object8 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag9 ?prefLabelLaag10 ?object8ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/missingscopenote10.rq b/LDV/missingscopenote10.rq new file mode 100644 index 0000000..0dff91e --- /dev/null +++ b/LDV/missingscopenote10.rq @@ -0,0 +1,54 @@ +#+ name: missingscopenote10 +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +PREFIX skos: + +SELECT DISTINCT + ?prefLabelLaag10 + ?prefLabelLaag11 + ?mistEigenScopeNote + (COALESCE(?aantalNarrowerScopeNote, 0) AS ?aantalNarrowerZonderScopeNote) + (IF(COALESCE(?aantalNarrowerScopeNote, 0) > 0, "ja ->", "") AS ?uitklappen) +WHERE { + { + SELECT DISTINCT + ?prefLabelLaag10 + ?prefLabelLaag11 + (IF(BOUND(?object9ScopeNote), "nee"@nl, "ja, mist scopeNote"@nl) AS ?mistEigenScopeNote) + (COUNT(DISTINCT ?narrowerTermNoScope) AS ?aantalNarrowerScopeNote) + WHERE { + SERVICE { + # Triple path to reach the Layer 6 concept: + + skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower/skos:narrower ?object8 . + + ?object8 skos:prefLabel ?prefLabelLaag10 . + FILTER(LANG(?prefLabelLaag10) = "nl") + + ?object8 skos:narrower ?object9 . + + ?object9 skos:prefLabel ?prefLabelLaag11 . + FILTER(LANG(?prefLabelLaag11) = "nl") + + # Optional: Get the scopeNote for the Layer 6 term: + OPTIONAL { + ?object9 skos:scopeNote ?object9ScopeNote . + FILTER(LANG(?object9ScopeNote) = "nl") + } + + # Retrieve all descendant terms of ?object4 (using skos:narrower+) + # that do NOT have a Dutch scopeNote: + OPTIONAL { + ?object9 skos:narrower+ ?narrowerTerm . + FILTER NOT EXISTS { + ?narrowerTerm skos:scopeNote ?narrowerTermScopeNote . + FILTER(LANG(?narrowerTermScopeNote) = "nl") + } + BIND(?narrowerTerm AS ?narrowerTermNoScope) + } + } + } + GROUP BY ?prefLabelLaag10 ?prefLabelLaag11 ?object9ScopeNote + ORDER BY DESC(?aantalNarrowerScopeNote) + } +} diff --git a/LDV/topTerm.rq b/LDV/topTerm.rq new file mode 100644 index 0000000..dd9a7fa --- /dev/null +++ b/LDV/topTerm.rq @@ -0,0 +1,34 @@ +#+ name: topTerm +#+ endpoint: https://api.linkeddata.cultureelerfgoed.nl/datasets/rce/Cultuurhistorische-Thesaurus-CHT/sparql + +#query van Joop +PREFIX skos: + +SELECT ?topTermLabel (COUNT(?concept) AS ?countWithoutScopeNote) WHERE { + SERVICE { + # Zoek de topTerm van het concept + ?concept a skos:Concept. + ?concept skos:prefLabel ?prefLabel. + ?concept skos:broader* ?topTerm. + FILTER(?topTerm = ) + + # Filter om alleen Nederlandse prefLabels te krijgen + FILTER(LANG(?prefLabel) = "nl") + + # Filter om alleen concepten zonder scopeNote op te halen + FILTER NOT EXISTS { + ?concept skos:scopeNote ?scopeNote. + } + + # Haal het label van de topTerm op + ?topTerm skos:prefLabel ?topTermLabel. + FILTER(LANG(?topTermLabel) = "nl") + + # Filter om alleen topTerms te selecteren (geen bredere term) + FILTER NOT EXISTS { + ?topTerm skos:broader ?broaderTerm. + } +} + } +GROUP BY ?topTermLabel +ORDER BY DESC(?countWithoutScopeNote) \ No newline at end of file