@lde/pipeline-void 0.28.13 → 0.28.14

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":"uriSpaceTransform.d.ts","sourceRoot":"","sources":["../src/uriSpaceTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgBzC;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,GAC9C,aAAa,CAAC,eAAe,CAAC,CAGhC"}
1
+ {"version":3,"file":"uriSpaceTransform.d.ts","sourceRoot":"","sources":["../src/uriSpaceTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgBzC;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,GAC9C,aAAa,CAAC,eAAe,CAAC,CAGhC"}
@@ -1,5 +1,6 @@
1
+ import { hashSuffix, skolemIri } from '@lde/dataset';
1
2
  import { DataFactory } from 'n3';
2
- const { namedNode, quad, literal, blankNode } = DataFactory;
3
+ const { namedNode, quad, literal } = DataFactory;
3
4
  const RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
4
5
  const VOID = 'http://rdfs.org/ns/void#';
5
6
  const XSD = 'http://www.w3.org/2001/XMLSchema#';
@@ -57,10 +58,16 @@ async function* aggregateUriSpaces(quads, datasetIri, uriSpaces) {
57
58
  }
58
59
  }
59
60
  }
60
- // Emit aggregated Linkset quads.
61
+ // Emit aggregated Linkset quads. The linkset is a deterministic IRI keyed on
62
+ // (dataset, URI space), not a blank node: this transform's output is merged
63
+ // into the dataset's graph alongside other stages', where blank-node labels
64
+ // are not unique across stage outputs and would collapse distinct linksets
65
+ // into one node (see issue #352). The `.well-known/void#linkset-<hash>` shape
66
+ // mirrors the IRI the object-uri-space.rq CONSTRUCT already mints upstream.
61
67
  const datasetNode = namedNode(datasetIri);
62
- for (const [, { count, metadata }] of aggregated) {
63
- const linksetNode = blankNode();
68
+ const linksetBase = `${datasetIri}/.well-known/void#linkset`;
69
+ for (const [uriSpace, { count, metadata }] of aggregated) {
70
+ const linksetNode = namedNode(skolemIri(linksetBase, hashSuffix(uriSpace)));
64
71
  const targetDatasetNode = metadata[0].subject;
65
72
  yield quad(linksetNode, rdfType, voidLinkset);
66
73
  yield quad(linksetNode, voidSubjectsTarget, datasetNode);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lde/pipeline-void",
3
- "version": "0.28.13",
3
+ "version": "0.28.14",
4
4
  "description": "VOiD (Vocabulary of Interlinked Datasets) statistical analysis for RDF datasets",
5
5
  "repository": {
6
6
  "url": "git+https://github.com/ldelements/lde.git",
@@ -32,7 +32,7 @@
32
32
  "tslib": "^2.3.0"
33
33
  },
34
34
  "peerDependencies": {
35
- "@lde/dataset": "0.7.6",
36
- "@lde/pipeline": "0.30.13"
35
+ "@lde/dataset": "0.7.7",
36
+ "@lde/pipeline": "0.30.14"
37
37
  }
38
38
  }