@netwerk-digitaal-erfgoed/network-of-terms-catalog 5.10.0 → 6.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAO9B,OAAO,EACL,OAAO,EAMR,MAAM,kDAAkD,CAAC;AAG1D,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAQvD;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqEpE;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAIvE;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAU/D"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAO9B,OAAO,EACL,OAAO,EAOR,MAAM,kDAAkD,CAAC;AAK1D,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAQvD;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAuFpE;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAIvE;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAU/D"}
package/build/catalog.js CHANGED
@@ -5,8 +5,10 @@ import { Transform } from 'stream';
5
5
  import { dirname, resolve } from 'path';
6
6
  import { globby } from 'globby';
7
7
  import { storeStream } from 'rdf-store-stream';
8
- import { Catalog, Dataset, Feature, IRI, Organization, SparqlDistribution, } from '@netwerk-digitaal-erfgoed/network-of-terms-query';
8
+ import { Catalog, Dataset, Feature, FeatureType, IRI, Organization, SparqlDistribution, } from '@netwerk-digitaal-erfgoed/network-of-terms-query';
9
9
  import { fileURLToPath } from 'url';
10
+ import { DataFactory } from 'rdf-data-factory';
11
+ import { BindingsFactory } from '@comunica/bindings-factory';
10
12
  export async function defaultCatalog() {
11
13
  const directory = resolve(dirname(fileURLToPath(import.meta.url)), '../', 'catalog/');
12
14
  const store = await fromFiles(directory);
@@ -14,10 +16,10 @@ export async function defaultCatalog() {
14
16
  }
15
17
  export async function fromStore(store) {
16
18
  // Collect all properties for SELECT and GROUP BY so we can flatten the schema:url values into a single value.
17
- const properties = '?dataset ?name ?creator ?creatorName ?creatorAlternateName ?distribution ?endpointUrl ?searchQuery ?lookupQuery ?alternateName';
19
+ const properties = '?dataset ?name ?creator ?creatorName ?creatorAlternateName ?distribution ?endpointUrl ?searchQuery ?lookupQuery ?reconciliationUrlTemplate ?alternateName';
18
20
  const query = `
19
21
  PREFIX schema: <http://schema.org/>
20
- SELECT ${properties} (GROUP_CONCAT(?url) as ?url) (COALESCE(GROUP_CONCAT(?features), "") as ?features) WHERE {
22
+ SELECT ${properties} (GROUP_CONCAT(?url) as ?url) WHERE {
21
23
  ?dataset a schema:Dataset ;
22
24
  schema:name ?name ;
23
25
  schema:creator ?creator ;
@@ -31,12 +33,19 @@ export async function fromStore(store) {
31
33
  schema:potentialAction
32
34
  [a schema:SearchAction ; schema:query ?searchQuery ] ,
33
35
  [a schema:FindAction ; schema:query ?lookupQuery ] .
34
- OPTIONAL { ?distribution schema:potentialAction [ schema:target [ schema:actionApplication ?features ] ]. }
36
+ OPTIONAL {
37
+ ?distribution schema:potentialAction/schema:target ?entryPoint .
38
+ ?entryPoint schema:actionApplication ?reconciliationIri ;
39
+ schema:urlTemplate ?reconciliationUrlTemplate .
40
+ }
35
41
  }
36
42
  GROUP BY ${properties}
37
43
  ORDER BY LCASE(?name)`;
38
44
  const bindingsStream = await new QueryEngine().queryBindings(query, {
39
45
  sources: store,
46
+ initialBindings: bindingsFactory.fromRecord({
47
+ reconciliationIri: dataFactory.namedNode(FeatureType.RECONCILIATION),
48
+ }),
40
49
  });
41
50
  const promise = new Promise((resolve, reject) => {
42
51
  const datasets = [];
@@ -48,10 +57,15 @@ export async function fromStore(store) {
48
57
  .map((url) => new IRI(url)), [
49
58
  new Organization(new IRI(bindings.get('creator').value), bindings.get('creatorName').value, bindings.get('creatorAlternateName').value),
50
59
  ], [
51
- new SparqlDistribution(new IRI(bindings.get('distribution').value), new IRI(bindings.get('endpointUrl').value), bindings.get('searchQuery').value, bindings.get('lookupQuery').value, bindings
52
- .get('features')
53
- .value.split(' ')
54
- .filter((feature) => Object.values(Feature).includes(feature))),
60
+ new SparqlDistribution(new IRI(bindings.get('distribution').value), new IRI(bindings.get('endpointUrl').value), bindings.get('searchQuery').value, bindings.get('lookupQuery').value, [
61
+ ...(bindings.has('reconciliationUrlTemplate')
62
+ ? [
63
+ new Feature(FeatureType.RECONCILIATION, new URL(bindings
64
+ .get('reconciliationUrlTemplate')
65
+ .value.replace('{distribution}', bindings.get('distribution').value))),
66
+ ]
67
+ : []),
68
+ ]),
55
69
  ], (_a = bindings.get('alternateName')) === null || _a === void 0 ? void 0 : _a.value));
56
70
  });
57
71
  bindingsStream.on('end', () => resolve(datasets));
@@ -113,4 +127,6 @@ class SubstituteCredentialsFromEnvironmentVariables extends Transform {
113
127
  callback();
114
128
  }
115
129
  }
130
+ const dataFactory = new DataFactory();
131
+ const bindingsFactory = new BindingsFactory(dataFactory);
116
132
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,8 @@
44
44
  "actionApplication": {
45
45
  "@id": "https://reconciliation-api.github.io/specs/latest/",
46
46
  "@type": "SoftwareApplication"
47
- }
47
+ },
48
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
48
49
  }
49
50
  }
50
51
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -44,7 +44,8 @@
44
44
  "actionApplication": {
45
45
  "@id": "https://reconciliation-api.github.io/specs/latest/",
46
46
  "@type": "SoftwareApplication"
47
- }
47
+ },
48
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
48
49
  }
49
50
  }
50
51
  ]
@@ -44,7 +44,8 @@
44
44
  "actionApplication": {
45
45
  "@id": "https://reconciliation-api.github.io/specs/latest/",
46
46
  "@type": "SoftwareApplication"
47
- }
47
+ },
48
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
48
49
  }
49
50
  }
50
51
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -44,7 +44,8 @@
44
44
  "actionApplication": {
45
45
  "@id": "https://reconciliation-api.github.io/specs/latest/",
46
46
  "@type": "SoftwareApplication"
47
- }
47
+ },
48
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
48
49
  }
49
50
  }
50
51
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -38,7 +38,8 @@
38
38
  "actionApplication": {
39
39
  "@id": "https://reconciliation-api.github.io/specs/latest/",
40
40
  "@type": "SoftwareApplication"
41
- }
41
+ },
42
+ "urlTemplate": "https://termennetwerk-api.netwerkdigitaalerfgoed.nl/reconcile/{distribution}"
42
43
  }
43
44
  }
44
45
  ]
@@ -5,43 +5,37 @@ PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
5
5
  PREFIX wikibase: <http://wikiba.se/ontology#>
6
6
  PREFIX wdt: <http://www.wikidata.org/prop/direct/>
7
7
  PREFIX wd: <http://www.wikidata.org/entity/>
8
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
8
9
 
9
10
  CONSTRUCT {
10
- # Wikidata seems to have a problem with the short syntax for construct queries
11
- # so always use full syntax: "?s ?p ?o ." else you end up with an empty result list!
12
- ?item a skos:Concept .
13
- ?item skos:prefLabel ?streetName .
14
- ?item skos:altLabel ?fullName .
15
- ?item skos:altLabel ?altLabel .
16
- ?item skos:scopeNote ?description .
11
+ ?item a skos:Concept ;
12
+ skos:prefLabel ?streetName ;
13
+ skos:altLabel ?altLabel ;
14
+ skos:scopeNote ?description .
17
15
  }
18
16
  WHERE {
19
17
  SERVICE wikibase:mwapi {
20
18
  bd:serviceParam wikibase:endpoint "www.wikidata.org" .
21
- # The search seems to be done with a "starts with" function,
22
- # where by default the English pref and alt labels are searched.
23
- # Setting the required language to something else than "en"
24
- # results in an additional search in the pref and alt labels for this language.
25
- bd:serviceParam wikibase:api "EntitySearch" .
19
+ bd:serviceParam wikibase:api "Search" .
26
20
  bd:serviceParam mwapi:language "nl" .
27
- bd:serviceParam mwapi:search ?query .
28
- ?item wikibase:apiOutputItem mwapi:item .
21
+ bd:serviceParam mwapi:srsearch ?query .
22
+ ?item wikibase:apiOutputItem mwapi:title .
29
23
  }
30
24
  {
31
- # select Streets
32
- ?item wdt:P31 wd:Q79007
25
+ # select Streets
26
+ ?item wdt:P31 wd:Q79007
33
27
  }
34
- UNION
28
+ UNION
35
29
  {
36
- # select Squares
37
- ?item wdt:P31 wd:Q174782
30
+ # select Squares
31
+ ?item wdt:P31 wd:Q174782
38
32
  }
39
33
  ?item wdt:P17 wd:Q55 .
40
34
  ?item wdt:P131 ?administration .
41
35
  OPTIONAL {
42
- ?item wdt:P276 ?location .
43
- ?location rdfs:label ?locationName .
44
- FILTER LANGMATCHES(LANG(?locationName),"nl")
36
+ ?item wdt:P276 ?location .
37
+ ?location rdfs:label ?locationName .
38
+ FILTER LANGMATCHES(LANG(?locationName),"nl")
45
39
  }
46
40
  OPTIONAL {
47
41
  ?item schema:description ?description
@@ -55,14 +49,17 @@ WHERE {
55
49
  ?administration rdfs:label ?administrationName .
56
50
  FILTER LANGMATCHES(LANG(?streetName),"nl")
57
51
  FILTER LANGMATCHES(LANG(?administrationName),"nl")
58
- FILTER (STRSTARTS(LCASE(?streetName),LCASE(?query))||STRSTARTS(LCASE(?altLabel),LCASE(?query)))
52
+
53
+ # Some streets come with altLabel ‘Street name (Place name)’. For those that don’t, construct the altLabel manually.
59
54
  BIND(
60
- IF(
61
- BOUND(?locationName),
62
- CONCAT(?streetName," (",?locationName,")"),
63
- CONCAT(?streetName," (",?administrationName,")")
64
- )
65
- as ?fullName
55
+ COALESCE(
56
+ ?altLabel,
57
+ IF(
58
+ BOUND(?locationName),
59
+ CONCAT(?streetName," (",?locationName,")"),
60
+ CONCAT(?streetName," (",?administrationName,")")
61
+ )
62
+ ) as ?altLabel
66
63
  )
67
64
  }
68
- LIMIT 1000
65
+ LIMIT 1000
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netwerk-digitaal-erfgoed/network-of-terms-catalog",
3
- "version": "5.10.0",
3
+ "version": "6.0.0",
4
4
  "type": "module",
5
5
  "description": "Catalog of Network of Terms datasets",
6
6
  "repository": {
@@ -43,8 +43,9 @@
43
43
  },
44
44
  "homepage": "https://github.com/netwerk-digitaal-erfgoed/network-of-terms-catalog#readme",
45
45
  "dependencies": {
46
+ "@comunica/bindings-factory": "^2.2.0",
46
47
  "@comunica/query-sparql-rdfjs": "^2.0.6",
47
- "@netwerk-digitaal-erfgoed/network-of-terms-query": "1.4.0",
48
+ "@netwerk-digitaal-erfgoed/network-of-terms-query": "2.0.0",
48
49
  "globby": "^13.1.1",
49
50
  "rdf-js": "^4.0.2",
50
51
  "rdf-parse": "^2.0.0",