@netwerk-digitaal-erfgoed/network-of-terms-catalog 10.17.0 → 10.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/catalog/datasets/canon-van-limburg.jsonld +83 -0
  2. package/catalog/datasets/geonames-nl-be-de.jsonld +2 -2
  3. package/catalog/datasets/geonames.jsonld +2 -2
  4. package/catalog/datasets/picot-gebeurtenistypen.jsonld +81 -0
  5. package/catalog/datasets/vrouwenthesaurus.jsonld +67 -0
  6. package/catalog/publishers.jsonld +31 -1
  7. package/catalog/queries/lookup/canon-van-limburg.rq +52 -0
  8. package/catalog/queries/lookup/eurovoc.rq +0 -1
  9. package/catalog/queries/lookup/goudatijdmachine-straten.rq +3 -2
  10. package/catalog/queries/lookup/muziekschatten-klassiekewerken.rq +0 -3
  11. package/catalog/queries/lookup/muziekschatten-onderwerpen.rq +0 -2
  12. package/catalog/queries/lookup/muziekschatten-personen.rq +0 -1
  13. package/catalog/queries/lookup/rijksmonumenten.rq +0 -4
  14. package/catalog/queries/lookup/rtf-personen.rq +0 -2
  15. package/catalog/queries/lookup/uitvoeringsmedium.rq +0 -1
  16. package/catalog/queries/lookup/wikidata.rq +0 -2
  17. package/catalog/queries/lookup/wo2thesaurus.rq +8 -2
  18. package/catalog/queries/search/aat-materials.rq +6 -8
  19. package/catalog/queries/search/aat-processes-and-techniques.rq +6 -8
  20. package/catalog/queries/search/aat-styles-and-periods.rq +7 -9
  21. package/catalog/queries/search/aat.rq +6 -8
  22. package/catalog/queries/search/abr.rq +1 -1
  23. package/catalog/queries/search/adamlink-adressen.rq +0 -1
  24. package/catalog/queries/search/adamlink-straten.rq +0 -1
  25. package/catalog/queries/search/brinkman.rq +0 -1
  26. package/catalog/queries/search/canon-van-limburg.rq +54 -0
  27. package/catalog/queries/search/geonames.rq +1 -1
  28. package/catalog/queries/search/muziekschatten-klassiekewerken.rq +0 -4
  29. package/catalog/queries/search/muziekschatten-onderwerpen.rq +0 -1
  30. package/catalog/queries/search/mw-personengroepen.rq +0 -1
  31. package/catalog/queries/search/nmvw.rq +0 -1
  32. package/catalog/queries/search/rijksmonumenten.rq +0 -4
  33. package/catalog/queries/search/rtf-personen.rq +1 -3
  34. package/catalog/queries/search/stcn-drukkers.rq +0 -1
  35. package/catalog/queries/search/wo2thesaurus.rq +7 -2
  36. package/dist/getCatalog.d.ts.map +1 -1
  37. package/dist/getCatalog.js +2 -17
  38. package/package.json +7 -9
@@ -0,0 +1,83 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@id": "https://www.canonvannederland.nl#nieuwe-canon-van-limburg",
4
+ "@type": "Dataset",
5
+ "name": [
6
+ {
7
+ "@language": "en",
8
+ "@value": "Canon van Limburg"
9
+ },
10
+ {
11
+ "@language": "nl",
12
+ "@value": "Canon van Limburg"
13
+ }
14
+ ],
15
+ "genre": [
16
+ {
17
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Gebeurtenissen"
18
+ },
19
+ {
20
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Personen"
21
+ },
22
+ {
23
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Periodes"
24
+ },
25
+ {
26
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Locaties"
27
+ },
28
+ {
29
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Activiteiten"
30
+ }
31
+ ],
32
+ "creator": [
33
+ {
34
+ "@id": "https://lgog.nl"
35
+ }
36
+ ],
37
+ "url": [
38
+ "https://www.canonvannederland.nl/id/"
39
+ ],
40
+ "mainEntityOfPage": [
41
+ "https://www.canonvannederland.nl/nl/limburg/limburg-nieuw/colofon"
42
+ ],
43
+ "description": [
44
+ {
45
+ "@language": "en",
46
+ "@value": "Windows from 'de Nieuwe Canon van Limburg'. This source also contains the periods from the Canon of the Netherlands."
47
+ },
48
+ {
49
+ "@language": "nl",
50
+ "@value": "Vensters uit de Nieuwe Canon van Limburg. Deze bron bevat tevens de tijdvakken uit de Canon van Nederland."
51
+ }
52
+ ],
53
+ "inLanguage": "nl",
54
+ "distribution": [
55
+ {
56
+ "@id": "https://triplestore.linkedopenlimburg.nl/repositories/canon",
57
+ "@type": "DataDownload",
58
+ "contentUrl": "https://triplestore.linkedopenlimburg.nl/repositories/canon",
59
+ "encodingFormat": "application/sparql-query",
60
+ "potentialAction": [
61
+ {
62
+ "@type": "SearchAction",
63
+ "query": "file://../queries/search/canon-van-limburg.rq"
64
+ },
65
+ {
66
+ "@type": "FindAction",
67
+ "query": "file://../queries/lookup/canon-van-limburg.rq"
68
+ },
69
+ {
70
+ "@type": "Action",
71
+ "target": {
72
+ "@type": "EntryPoint",
73
+ "actionApplication": {
74
+ "@id": "https://reconciliation-api.github.io/specs/latest/",
75
+ "@type": "SoftwareApplication"
76
+ },
77
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}"
78
+ }
79
+ }
80
+ ]
81
+ }
82
+ ]
83
+ }
@@ -37,9 +37,9 @@
37
37
  "inLanguage": "en",
38
38
  "distribution": [
39
39
  {
40
- "@id": "https://demo.netwerkdigitaalerfgoed.nl/geonames#nl-be-de",
40
+ "@id": "https://geonames.netwerkdigitaalerfgoed.nl#nl-be-de",
41
41
  "@type": "DataDownload",
42
- "contentUrl": "https://demo.netwerkdigitaalerfgoed.nl/geonames/sparql",
42
+ "contentUrl": "https://geonames.netwerkdigitaalerfgoed.nl/sparql",
43
43
  "encodingFormat": "application/sparql-query",
44
44
  "potentialAction": [
45
45
  {
@@ -37,9 +37,9 @@
37
37
  "inLanguage": "en",
38
38
  "distribution": [
39
39
  {
40
- "@id": "https://demo.netwerkdigitaalerfgoed.nl/geonames",
40
+ "@id": "https://geonames.netwerkdigitaalerfgoed.nl",
41
41
  "@type": "DataDownload",
42
- "contentUrl": "https://demo.netwerkdigitaalerfgoed.nl/geonames/sparql",
42
+ "contentUrl": "https://geonames.netwerkdigitaalerfgoed.nl/sparql",
43
43
  "encodingFormat": "application/sparql-query",
44
44
  "potentialAction": [
45
45
  {
@@ -0,0 +1,81 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@id": "https://terms.personsincontext.org/ThesaurusHistorischePersoonsgegevens/73",
4
+ "@type": "Dataset",
5
+ "name": [
6
+ {
7
+ "@language": "en",
8
+ "@value": "Thesaurus Historische Persoonsgegevens - eventtypes"
9
+ },
10
+ {
11
+ "@language": "nl",
12
+ "@value": "Thesaurus Historische Persoonsgegevens - gebeurtenistypen"
13
+ }
14
+ ],
15
+ "alternateName": [
16
+ {
17
+ "@language": "en",
18
+ "@value": "PiCoT - eventtypes"
19
+ },
20
+ {
21
+ "@language": "nl",
22
+ "@value": "PiCoT - gebeurtenistypen"
23
+ }
24
+ ],
25
+ "genre": [
26
+ {
27
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Actoren-en-organismen"
28
+ }
29
+ ],
30
+ "creator": [
31
+ {
32
+ "@id": "https://www.cbg.nl"
33
+ }
34
+ ],
35
+ "url": [
36
+ "https://terms.personsincontext.org/ThesaurusHistorischePersoonsgegevens/"
37
+ ],
38
+ "mainEntityOfPage": [
39
+ "https://terms.personsincontext.org/ThesaurusHistorischePersoonsgegevens"
40
+ ],
41
+ "description": [
42
+ {
43
+ "@language": "en",
44
+ "@value": "Standardized terms for the role that a person can have in the source. Part of the Persons in Context standard"
45
+ },
46
+ {
47
+ "@language": "nl",
48
+ "@value": "Gestandaardiseerde termen voor de rol die die persoon kan hebben op de bron. Onderdeel van de Persons in Context-standaard"
49
+ }
50
+ ],
51
+ "inLanguage": "nl",
52
+ "distribution": [
53
+ {
54
+ "@id": "https://terms.personsincontext.org/PoolParty/sparql/ThesaurusHistorischePersoonsgegevens#events",
55
+ "@type": "DataDownload",
56
+ "contentUrl": "https://terms.personsincontext.org/PoolParty/sparql/ThesaurusHistorischePersoonsgegevens",
57
+ "encodingFormat": "application/sparql-query",
58
+ "potentialAction": [
59
+ {
60
+ "@type": "SearchAction",
61
+ "query": "file://../queries/search/picot.rq"
62
+ },
63
+ {
64
+ "@type": "FindAction",
65
+ "query": "file://../queries/lookup/poolparty.rq"
66
+ },
67
+ {
68
+ "@type": "Action",
69
+ "target": {
70
+ "@type": "EntryPoint",
71
+ "actionApplication": {
72
+ "@id": "https://reconciliation-api.github.io/specs/latest/",
73
+ "@type": "SoftwareApplication"
74
+ },
75
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}"
76
+ }
77
+ }
78
+ ]
79
+ }
80
+ ]
81
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@id": "https://vrouwenthesaurus.org",
4
+ "@type": "Dataset",
5
+ "name": [
6
+ {
7
+ "@language": "en",
8
+ "@value": "Women’s Thesaurus"
9
+ },
10
+ {
11
+ "@language": "nl",
12
+ "@value": "Vrouwenthesaurus"
13
+ }
14
+ ],
15
+ "genre": [
16
+ {
17
+ "@id": "https://data.cultureelerfgoed.nl/termennetwerk/onderwerpen/Abstracte-begrippen"
18
+ }
19
+ ],
20
+ "creator": [
21
+ {
22
+ "@id": "https://atria.nl"
23
+ }
24
+ ],
25
+ "url": ["https://vrouwenthesaurus.org/conceptid/"],
26
+ "mainEntityOfPage": ["https://vrouwenthesaurus.org/conceptid.html"],
27
+ "description": [
28
+ {
29
+ "@language": "en",
30
+ "@value": "Concepts for describing information about the position and experiences of women in all their diversity, emancipation, and women’s history."
31
+ },
32
+ {
33
+ "@language": "nl",
34
+ "@value": "Onderwerpen voor het beschrijven van informatie over de positie van vrouwen in al hun diversiteit, emancipatie en vrouwengeschiedenis."
35
+ }
36
+ ],
37
+ "inLanguage": ["en", "nl"],
38
+ "distribution": [
39
+ {
40
+ "@id": "https://vrouwenthesaurus.org/PoolParty/sparql/conceptid",
41
+ "@type": "DataDownload",
42
+ "contentUrl": "https://vrouwenthesaurus.org/PoolParty/sparql/conceptid",
43
+ "encodingFormat": "application/sparql-query",
44
+ "potentialAction": [
45
+ {
46
+ "@type": "SearchAction",
47
+ "query": "file://../queries/search/poolparty.rq"
48
+ },
49
+ {
50
+ "@type": "FindAction",
51
+ "query": "file://../queries/lookup/poolparty.rq"
52
+ },
53
+ {
54
+ "@type": "Action",
55
+ "target": {
56
+ "@type": "EntryPoint",
57
+ "actionApplication": {
58
+ "@id": "https://reconciliation-api.github.io/specs/latest/",
59
+ "@type": "SoftwareApplication"
60
+ },
61
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{dataset}"
62
+ }
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ }
@@ -46,6 +46,21 @@
46
46
  ],
47
47
  "alternateName": "Westerbork"
48
48
  },
49
+ {
50
+ "@id": "https://atria.nl",
51
+ "@type": "Organization",
52
+ "name": [
53
+ {
54
+ "@language": "nl",
55
+ "@value": "Atria – kennisinstituut voor emancipatie en vrouwengeschiedenis"
56
+ },
57
+ {
58
+ "@language": "en",
59
+ "@value": "Atria – institute on gender equality and women’s history"
60
+ }
61
+ ],
62
+ "alternateName": "Atria"
63
+ },
49
64
  {
50
65
  "@id": "https://www.niod.nl",
51
66
  "@type": "Organization",
@@ -312,6 +327,21 @@
312
327
  }
313
328
  ],
314
329
  "alternateName": "Tresoar"
330
+ },
331
+ {
332
+ "@id": "https://lgog.nl",
333
+ "@type": "Organization",
334
+ "name": [
335
+ {
336
+ "@language": "en",
337
+ "@value": "Limburg Historical and Archeological Society"
338
+ },
339
+ {
340
+ "@language": "nl",
341
+ "@value": "Limburgs Geschied- en Oudheidkundig Genootschap"
342
+ }
343
+ ],
344
+ "alternateName": "LGOG"
315
345
  }
316
346
  ]
317
- }
347
+ }
@@ -0,0 +1,52 @@
1
+ PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
2
+
3
+ CONSTRUCT {
4
+ ?uri a skos:Concept ;
5
+ skos:prefLabel ?prefLabel ;
6
+ skos:altLabel ?altLabel ;
7
+ skos:scopeNote ?scopeNote ;
8
+ skos:exactMatch ?exactMatch_uri ;
9
+ skos:broader ?broader_uri ;
10
+ skos:narrower ?narrower_uri ;
11
+ skos:related ?related_uri ;
12
+ skos:seeAlso ?seeAlso_uri .
13
+ ?exactMatch_uri skos:prefLabel ?exactMatch_prefLabel .
14
+ ?broader_uri skos:prefLabel ?broader_prefLabel .
15
+ ?narrower_uri skos:prefLabel ?narrower_prefLabel .
16
+ ?related_uri skos:prefLabel ?related_prefLabel .
17
+ ?seeAlso_uri skos:prefLabel ?seeAlso_prefLabel .
18
+ }
19
+ WHERE {
20
+ GRAPH <https://canonvanlimburg.limburgcollectie.nl> {
21
+ SELECT * WHERE {
22
+ VALUES ?uri { ?uris }
23
+
24
+ ?uri a skos:Concept ;
25
+ skos:prefLabel ?prefLabel ;
26
+ skos:altLabel ?altLabel .
27
+
28
+ OPTIONAL { ?uri skos:scopeNote ?scopeNote }
29
+ OPTIONAL {
30
+ ?uri skos:exactMatch ?exactMatch_uri .
31
+ OPTIONAL { ?exactMatch_uri skos:prefLabel ?exactMatch_prefLabel }
32
+ }
33
+ OPTIONAL {
34
+ ?uri skos:broader ?broader_uri .
35
+ OPTIONAL { ?broader_uri skos:prefLabel ?broader_prefLabel }
36
+ }
37
+ OPTIONAL {
38
+ ?uri skos:narrower ?narrower_uri .
39
+ OPTIONAL { ?narrower_uri skos:prefLabel ?narrower_prefLabel }
40
+ }
41
+ OPTIONAL {
42
+ ?uri skos:related ?related_uri .
43
+ OPTIONAL { ?related_uri skos:prefLabel ?related_prefLabel }
44
+ }
45
+ OPTIONAL {
46
+ ?uri skos:seeAlso ?seeAlso_uri .
47
+ OPTIONAL { ?seeAlso_uri skos:prefLabel ?seeAlso_prefLabel }
48
+ }
49
+
50
+ }
51
+ }
52
+ }
@@ -1,4 +1,3 @@
1
- PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
2
1
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
3
2
 
4
3
  CONSTRUCT {
@@ -4,6 +4,7 @@ PREFIX gtm: <https://www.goudatijdmachine.nl/def#>
4
4
  PREFIX hg: <http://rdf.histograph.io/>
5
5
  PREFIX owl: <http://www.w3.org/2002/07/owl#>
6
6
  PREFIX omeka: <http://omeka.org/s/vocabs/o#>
7
+
7
8
  CONSTRUCT {
8
9
  ?uri a skos:Concept ;
9
10
  skos:prefLabel ?prefLabel ;
@@ -25,7 +26,7 @@ CONSTRUCT {
25
26
  ?uri sdo:alternateName ?altLabel
26
27
  }
27
28
  BIND ( CONCAT( IF ( EXISTS {
28
- ?uri omeka:item_set <https://n2t.net/ark:/60537/bd75pg>
29
+ ?uri omeka:item_set <https://n2t.net/ark:/60537/bd75pg>
29
30
  }, "Verdwenen straat", "Straat" )," in Gouda") AS ?scopeNote )
30
31
  OPTIONAL {
31
32
  ?uri hg:absorbedBy|hg:absorbed ?related_uri .
@@ -39,4 +40,4 @@ CONSTRUCT {
39
40
  FILTER(?exactMatch_uri != ?uri)
40
41
  }
41
42
  }
42
- LIMIT 100
43
+ LIMIT 100
@@ -1,8 +1,5 @@
1
- PREFIX owl: <http://www.w3.org/2002/07/owl#>
2
1
  PREFIX rdaw: <http://rdaregistry.info/Elements/w/>
3
- PREFIX schema: <http://schema.org/>
4
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
- PREFIX som: <https://data.muziekschatten.nl/som/>
6
3
 
7
4
  CONSTRUCT {
8
5
  ?uri a skos:Concept;
@@ -1,5 +1,3 @@
1
- PREFIX owl: <http://www.w3.org/2002/07/owl#>
2
- PREFIX rdaw: <http://rdaregistry.info/Elements/w/>
3
1
  PREFIX schema: <http://schema.org/>
4
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
3
  PREFIX som: <https://data.muziekschatten.nl/som/>
@@ -1,5 +1,4 @@
1
1
  PREFIX owl: <http://www.w3.org/2002/07/owl#>
2
- PREFIX rdaw: <http://rdaregistry.info/Elements/w/>
3
2
  PREFIX schema: <http://schema.org/>
4
3
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
4
  PREFIX som: <https://data.muziekschatten.nl/som/>
@@ -1,9 +1,5 @@
1
- PREFIX ceo: <https://linkeddata.cultureelerfgoed.nl/def/ceo#>
2
- PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3
1
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4
- PREFIX ceosp: <https://linkeddata.cultureelerfgoed.nl/def/ceosp/>
5
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
6
- PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
7
3
  PREFIX schema: <https://schema.org/>
8
4
 
9
5
  CONSTRUCT {
@@ -1,5 +1,3 @@
1
- PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2
- PREFIX schema: <https://schema.org/>
3
1
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
4
2
 
5
3
  CONSTRUCT {
@@ -1,5 +1,4 @@
1
1
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
2
- PREFIX som: <https://data.muziekschatten.nl/som/>
3
2
 
4
3
  CONSTRUCT {
5
4
  ?uri a skos:Concept;
@@ -1,7 +1,5 @@
1
- PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2
1
  PREFIX schema: <http://schema.org/>
3
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
4
- PREFIX wdt: <http://www.wikidata.org/prop/direct/>
5
3
 
6
4
  CONSTRUCT {
7
5
  ?uri a skos:Concept ;
@@ -22,9 +22,15 @@ WHERE {
22
22
  ?uri a skos:Concept .
23
23
 
24
24
  # Exclude terms from the 'Technische Lijsten', a concept scheme with terms that should only be used by NOB
25
+ # Include terms that are both in "Technische lijsten" and other conceptScheme's
25
26
  FILTER NOT EXISTS {
26
- ?uri skos:inScheme <https://data.niod.nl/WO2_Thesaurus/11183>
27
- }
27
+ ?uri skos:inScheme <https://data.niod.nl/WO2_Thesaurus/11183> .
28
+ FILTER NOT EXISTS {
29
+ ?uri skos:inScheme ?otherScheme .
30
+ FILTER(?otherScheme != <https://data.niod.nl/WO2_Thesaurus/11183>)
31
+ }
32
+ }
33
+
28
34
  OPTIONAL {
29
35
  ?uri skos:prefLabel ?prefLabel .
30
36
  FILTER(LANG(?prefLabel) = "nl")
@@ -27,6 +27,12 @@ WHERE {
27
27
  aat:300388277 # English
28
28
  }
29
29
 
30
+ # Pre-filter by language BEFORE the expensive subquery (based on Comunica query optimization).
31
+ ?uri skosxl:prefLabel [
32
+ dcterms:language ?language ; # Faster than FILTER(langMatches(...)): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
33
+ skosxl:literalForm ?prefLabel
34
+ ]
35
+
30
36
  {
31
37
  SELECT DISTINCT ?uri WHERE {
32
38
  ?uri luc:term ?query ;
@@ -36,17 +42,9 @@ WHERE {
36
42
  ?type rdfs:subClassOf gvp:Subject .
37
43
  FILTER (?type != gvp:Subject) .
38
44
  FILTER NOT EXISTS { ?uri a gvp:GuideTerm }
39
- ?uri skosxl:prefLabel [
40
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
41
- skosxl:literalForm ?prefLabel
42
- ]
43
45
  }
44
46
  #LIMIT#
45
47
  }
46
- ?uri skosxl:prefLabel [
47
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
48
- skosxl:literalForm ?prefLabel
49
- ]
50
48
  OPTIONAL {
51
49
  ?uri skosxl:altLabel [
52
50
  dcterms:language ?language ;
@@ -27,6 +27,12 @@ WHERE {
27
27
  aat:300388277 # English
28
28
  }
29
29
 
30
+ # Pre-filter by language BEFORE the expensive subquery (based on Comunica query optimization).
31
+ ?uri skosxl:prefLabel [
32
+ dcterms:language ?language ; # Faster than FILTER(langMatches(...)): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
33
+ skosxl:literalForm ?prefLabel
34
+ ]
35
+
30
36
  {
31
37
  SELECT DISTINCT ?uri WHERE {
32
38
  ?uri luc:term ?query ;
@@ -36,17 +42,9 @@ WHERE {
36
42
  ?type rdfs:subClassOf gvp:Subject .
37
43
  FILTER (?type != gvp:Subject) .
38
44
  FILTER NOT EXISTS { ?uri a gvp:GuideTerm }
39
- ?uri skosxl:prefLabel [
40
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
41
- skosxl:literalForm ?prefLabel
42
- ]
43
45
  }
44
46
  #LIMIT#
45
47
  }
46
- ?uri skosxl:prefLabel [
47
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
48
- skosxl:literalForm ?prefLabel
49
- ]
50
48
  OPTIONAL {
51
49
  ?uri skosxl:altLabel [
52
50
  dcterms:language ?language ;
@@ -27,26 +27,24 @@ WHERE {
27
27
  aat:300388277 # English
28
28
  }
29
29
 
30
+ # Pre-filter by language BEFORE the expensive subquery (based on Comunica query optimization).
31
+ ?uri skosxl:prefLabel [
32
+ dcterms:language ?language ; # Faster than FILTER(langMatches(...)): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
33
+ skosxl:literalForm ?prefLabel
34
+ ]
35
+
30
36
  {
31
37
  SELECT DISTINCT ?uri WHERE {
32
38
  ?uri luc:term ?query ;
33
39
  a ?type ;
34
40
  void:inDataset <http://vocab.getty.edu/dataset/aat> ;
35
- gvp:broaderPreferred+ <http://vocab.getty.edu/aat/300015646> . # limit results to the "styles and periodes hierarchy name (300015646)"
41
+ gvp:broaderPreferred+ <http://vocab.getty.edu/aat/300015646> . # limit results to the "styles and periods hierarchy name (300015646)"
36
42
  ?type rdfs:subClassOf gvp:Subject .
37
43
  FILTER (?type != gvp:Subject) .
38
44
  FILTER NOT EXISTS { ?uri a gvp:GuideTerm }
39
- ?uri skosxl:prefLabel [
40
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
41
- skosxl:literalForm ?prefLabel
42
- ]
43
45
  }
44
46
  #LIMIT#
45
47
  }
46
- ?uri skosxl:prefLabel [
47
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
48
- skosxl:literalForm ?prefLabel
49
- ]
50
48
  OPTIONAL {
51
49
  ?uri skosxl:altLabel [
52
50
  dcterms:language ?language ;
@@ -27,6 +27,12 @@ WHERE {
27
27
  aat:300388277 # English
28
28
  }
29
29
 
30
+ # Pre-filter by language BEFORE the expensive subquery (based on Comunica query optimization).
31
+ ?uri skosxl:prefLabel [
32
+ dcterms:language ?language ; # Faster than FILTER(langMatches(...)): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
33
+ skosxl:literalForm ?prefLabel
34
+ ]
35
+
30
36
  {
31
37
  SELECT DISTINCT ?uri WHERE {
32
38
  ?uri luc:term ?query ;
@@ -35,17 +41,9 @@ WHERE {
35
41
  ?type rdfs:subClassOf gvp:Subject .
36
42
  FILTER (?type != gvp:Subject) .
37
43
  FILTER NOT EXISTS { ?uri a gvp:GuideTerm }
38
- ?uri skosxl:prefLabel [
39
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
40
- skosxl:literalForm ?prefLabel
41
- ]
42
44
  }
43
45
  #LIMIT#
44
46
  }
45
- ?uri skosxl:prefLabel [
46
- dcterms:language ?language ; # Faster than FILTER(langMatches(...): https://vocab.getty.edu/queries#Find_Terms_by_Language_Tag
47
- skosxl:literalForm ?prefLabel
48
- ]
49
47
  OPTIONAL {
50
48
  ?uri skosxl:altLabel [
51
49
  dcterms:language ?language ;
@@ -24,7 +24,7 @@ WHERE {
24
24
 
25
25
  VALUES ?predicate { skos:prefLabel skos:altLabel skos:hiddenLabel }
26
26
 
27
- FILTER(CONTAINS(LCASE(?label), LCASE(?query)))
27
+ FILTER(CONTAINS(LCASE(?label), LCASE(?query)) || CONTAINS(LCASE(STR(?uri)), LCASE(?query)))
28
28
 
29
29
  }
30
30
  #LIMIT#
@@ -1,6 +1,5 @@
1
1
  PREFIX hg: <http://rdf.histograph.io/>
2
2
  PREFIX owl: <http://www.w3.org/2002/07/owl#>
3
- PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
4
3
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
4
  PREFIX roar: <https://w3id.org/roar#>
6
5
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
@@ -1,6 +1,5 @@
1
1
  PREFIX hg: <http://rdf.histograph.io/>
2
2
  PREFIX owl: <http://www.w3.org/2002/07/owl#>
3
- PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
4
3
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
4
 
6
5
  CONSTRUCT {
@@ -1,6 +1,5 @@
1
1
  # Do not remove this prefix - KB data uses old version of SKOS
2
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
3
- PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
4
3
 
5
4
  CONSTRUCT {
6
5
  ?uri a skos:Concept ;
@@ -0,0 +1,54 @@
1
+ PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
2
+
3
+ CONSTRUCT {
4
+ ?uri a skos:Concept ;
5
+ skos:prefLabel ?prefLabel ;
6
+ skos:altLabel ?altLabel ;
7
+ skos:scopeNote ?scopeNote ;
8
+ skos:exactMatch ?exactMatch_uri ;
9
+ skos:broader ?broader_uri ;
10
+ skos:narrower ?narrower_uri ;
11
+ skos:related ?related_uri ;
12
+ skos:seeAlso ?seeAlso_uri .
13
+ ?exactMatch_uri skos:prefLabel ?exactMatch_prefLabel .
14
+ ?broader_uri skos:prefLabel ?broader_prefLabel .
15
+ ?narrower_uri skos:prefLabel ?narrower_prefLabel .
16
+ ?related_uri skos:prefLabel ?related_prefLabel .
17
+ ?seeAlso_uri skos:prefLabel ?seeAlso_prefLabel .
18
+ }
19
+ WHERE {
20
+ GRAPH <https://canonvanlimburg.limburgcollectie.nl> {
21
+ {
22
+ SELECT ?uri ?prefLabel ?altLabel WHERE {
23
+ ?uri a skos:Concept ;
24
+ skos:prefLabel ?prefLabel ;
25
+ skos:altLabel ?altLabel .
26
+
27
+ FILTER(CONTAINS(LCASE(?prefLabel), LCASE(?query)) || CONTAINS(LCASE(?altLabel), LCASE(?query)))
28
+ }
29
+ #LIMIT#
30
+ }
31
+
32
+ OPTIONAL { ?uri skos:scopeNote ?scopeNote }
33
+ OPTIONAL {
34
+ ?uri skos:exactMatch ?exactMatch_uri .
35
+ OPTIONAL { ?exactMatch_uri skos:prefLabel ?exactMatch_prefLabel }
36
+ }
37
+ OPTIONAL {
38
+ ?uri skos:broader ?broader_uri .
39
+ OPTIONAL { ?broader_uri skos:prefLabel ?broader_prefLabel }
40
+ }
41
+ OPTIONAL {
42
+ ?uri skos:narrower ?narrower_uri .
43
+ OPTIONAL { ?narrower_uri skos:prefLabel ?narrower_prefLabel }
44
+ }
45
+ OPTIONAL {
46
+ ?uri skos:related ?related_uri .
47
+ OPTIONAL { ?related_uri skos:prefLabel ?related_prefLabel }
48
+ }
49
+ OPTIONAL {
50
+ ?uri skos:seeAlso ?seeAlso_uri .
51
+ OPTIONAL { ?seeAlso_uri skos:prefLabel ?seeAlso_prefLabel }
52
+ }
53
+ }
54
+ }
@@ -17,7 +17,7 @@ WHERE {
17
17
  SELECT ?uri (MAX(?sc) as ?score) WHERE {
18
18
  (?uri ?sc) text:query (gn:name gn:alternateName ?query) .
19
19
  ?uri a gn:Feature ;
20
- gn:featureClass ?featureClass ;
20
+ gn:featureClass ?featureClass .
21
21
  # Limit results to places (P), localities (L), administrative levels (A) and water surfaces (H).
22
22
  VALUES ?featureClass { gn:P gn:L gn:A gn:H }
23
23
  }
@@ -1,10 +1,6 @@
1
- PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
2
- PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3
1
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4
2
  PREFIX rdaw: <http://rdaregistry.info/Elements/w/>
5
3
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
6
- PREFIX schema: <http://schema.org/>
7
- PREFIX som: <https://data.muziekschatten.nl/som/>
8
4
 
9
5
  CONSTRUCT {
10
6
  ?uri a skos:Concept;
@@ -1,4 +1,3 @@
1
- PREFIX owl: <http://www.w3.org/2002/07/owl#>
2
1
  PREFIX schema: <http://schema.org/>
3
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
4
3
  PREFIX som: <https://data.muziekschatten.nl/som/>
@@ -1,5 +1,4 @@
1
1
  PREFIX owl: <http://www.w3.org/2002/07/owl#>
2
- PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
3
2
  PREFIX schema: <http://schema.org/>
4
3
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
4
 
@@ -1,4 +1,3 @@
1
- #PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
2
1
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
3
2
 
4
3
  CONSTRUCT {
@@ -1,9 +1,5 @@
1
- PREFIX ceo: <https://linkeddata.cultureelerfgoed.nl/def/ceo#>
2
- PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3
1
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4
- PREFIX ceosp: <https://linkeddata.cultureelerfgoed.nl/def/ceosp/>
5
2
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
6
- PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
7
3
  PREFIX schema: <https://schema.org/>
8
4
 
9
5
  CONSTRUCT {
@@ -1,5 +1,3 @@
1
- PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2
- PREFIX schema: <https://schema.org/>
3
1
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
4
2
 
5
3
  CONSTRUCT {
@@ -19,7 +17,7 @@ WHERE {
19
17
  OPTIONAL { ?uri skos:scopeNote ?scopeNote }
20
18
  OPTIONAL { ?uri skos:exactMatch ?exactMatch_uri }
21
19
 
22
- FILTER(CONTAINS(LCASE(?prefLabel), LCASE(?query)) || CONTAINS(LCASE(?altlabel), LCASE(?query)))
20
+ FILTER(CONTAINS(LCASE(?prefLabel), LCASE(?query)) || CONTAINS(LCASE(?altLabel), LCASE(?query)))
23
21
  }
24
22
  }
25
23
  }
@@ -1,7 +1,6 @@
1
1
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2
2
  PREFIX schema: <http://schema.org/>
3
3
  PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
4
- PREFIX void: <http://rdfs.org/ns/void#>
5
4
 
6
5
  CONSTRUCT {
7
6
  ?uri a skos:Concept ;
@@ -16,14 +16,19 @@ WHERE {
16
16
  {
17
17
  SELECT ?uri WHERE {
18
18
  ?uri ?predicate ?label .
19
- # Exclude terms from the 'Technische Lijsten', a concept scheme with terms that should only be used by NOB
19
+ # Exclude terms that are *only* in 'Technische Lijsten', but keep terms that are also in other schemes
20
20
  FILTER NOT EXISTS {
21
- ?uri skos:inScheme <https://data.niod.nl/WO2_Thesaurus/11183>
21
+ ?uri skos:inScheme <https://data.niod.nl/WO2_Thesaurus/11183> .
22
+ FILTER NOT EXISTS {
23
+ ?uri skos:inScheme ?otherScheme .
24
+ FILTER(?otherScheme != <https://data.niod.nl/WO2_Thesaurus/11183>)
25
+ }
22
26
  }
23
27
  VALUES ?predicate { skos:prefLabel skos:altLabel }
24
28
  FILTER(LANG(?label) = "nl")
25
29
  FILTER(CONTAINS(LCASE(?label), LCASE(?query)))
26
30
  }
31
+
27
32
  #LIMIT#
28
33
  }
29
34
  OPTIONAL {
@@ -1 +1 @@
1
- {"version":3,"file":"getCatalog.d.ts","sourceRoot":"","sources":["../src/getCatalog.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EAMR,MAAM,kDAAkD,CAAC;AAI1D,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAOpC,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhE;AA0FD,wBAAsB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CA6DlE"}
1
+ {"version":3,"file":"getCatalog.d.ts","sourceRoot":"","sources":["../src/getCatalog.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EAMR,MAAM,kDAAkD,CAAC;AAI1D,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAKpC,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhE;AA0FD,wBAAsB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CA8DlE"}
@@ -8,8 +8,6 @@ import { fileURLToPath } from 'url';
8
8
  import { ldkit, rdf, schema } from 'ldkit/namespaces';
9
9
  import { createLens } from 'ldkit';
10
10
  import { dirname, join } from 'node:path';
11
- import { KeysRdfParseJsonLd } from '@comunica/context-entries';
12
- import { FetchDocumentLoader } from 'jsonld-context-parser';
13
11
  import { RdfStore } from 'rdf-stores';
14
12
  export async function getCatalog(path) {
15
13
  const directory = (path ?? fileURLToPath(new URL('../catalog', import.meta.url))).replace(/\\/g, '/'); // Windows compatibility.
@@ -105,7 +103,8 @@ const engine = new QueryEngine();
105
103
  export async function fromStore(store) {
106
104
  const lens = createLens(catalogSchema, {
107
105
  sources: [store],
108
- engine,
106
+ // Cast needed: rdf-parse uses Comunica v4 types, incompatible with v5.
107
+ engine: engine,
109
108
  distinctConstruct: true,
110
109
  });
111
110
  const datasets = await lens.find();
@@ -139,7 +138,6 @@ async function fromFiles(directory) {
139
138
  function fromFile(file) {
140
139
  return rdfParser
141
140
  .parse(fs.createReadStream(file), {
142
- [KeysRdfParseJsonLd.documentLoader.name]: documentLoader,
143
141
  path: file,
144
142
  })
145
143
  .pipe(new InlineFiles(file))
@@ -180,16 +178,3 @@ class SubstituteCredentialsFromEnvironmentVariables extends Transform {
180
178
  callback();
181
179
  }
182
180
  }
183
- /**
184
- * TODO: https://github.com/comunica/comunica/issues/1635
185
- */
186
- class CachingDocumentLoader extends FetchDocumentLoader {
187
- cache = {};
188
- async load(url) {
189
- if (this.cache[url]) {
190
- return this.cache[url];
191
- }
192
- return (this.cache[url] = await super.load(url));
193
- }
194
- }
195
- const documentLoader = new CachingDocumentLoader();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netwerk-digitaal-erfgoed/network-of-terms-catalog",
3
- "version": "10.17.0",
3
+ "version": "10.17.2",
4
4
  "description": "Catalog of Network of Terms datasets",
5
5
  "keywords": [
6
6
  "nde"
@@ -34,22 +34,20 @@
34
34
  "!**/*.tsbuildinfo"
35
35
  ],
36
36
  "dependencies": {
37
- "@comunica/context-entries": "^4.4.1",
38
- "@comunica/query-sparql": "^4.3.0",
39
- "@comunica/query-sparql-rdfjs": "^4.3.0",
37
+ "@comunica/query-sparql": "^5.1.2",
38
+ "@comunica/query-sparql-rdfjs": "^5.1.2",
40
39
  "@netwerk-digitaal-erfgoed/network-of-terms-query": "*",
41
40
  "@rdfjs/types": "^2.0.1",
42
41
  "globby": "^14.0.2",
43
- "jsonld-context-parser": "^2.4.0",
44
42
  "ldkit": "^2.5.1",
45
- "memoize": "^10.0.0",
46
- "rdf-parse": "^4.0.0",
43
+ "memoize": "^10.2.0",
44
+ "rdf-parse": "^5.0.0",
47
45
  "rdf-stores": "^2.1.1",
48
46
  "tslib": "^2.3.0"
49
47
  },
50
48
  "devDependencies": {
51
- "@comunica/types": "^4.2.0",
52
- "@types/n3": "^1.24.2",
49
+ "@comunica/types": "^5.1.0",
50
+ "@types/n3": "^1.26.1",
53
51
  "@types/rdf-ext": "^2.5.2",
54
52
  "jsonld-streaming-parser": "^5.0.0",
55
53
  "rdf-ext": "^2.6.0",