@lde/pipeline-void 0.2.27 → 0.2.28

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,6 +1,5 @@
1
- import { Distribution } from '@lde/dataset';
2
1
  import { Stage } from '@lde/pipeline';
3
- export declare function createDatatypeStage(distribution: Distribution): Promise<Stage>;
4
- export declare function createLanguageStage(distribution: Distribution): Promise<Stage>;
5
- export declare function createObjectClassStage(distribution: Distribution): Promise<Stage>;
2
+ export declare function createDatatypeStage(): Promise<Stage>;
3
+ export declare function createLanguageStage(): Promise<Stage>;
4
+ export declare function createObjectClassStage(): Promise<Stage>;
6
5
  //# sourceMappingURL=perClassAnalyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"perClassAnalyzer.d.ts","sourceRoot":"","sources":["../src/perClassAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,KAAK,EAIN,MAAM,eAAe,CAAC;AAkDvB,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,KAAK,CAAC,CAEhB"}
1
+ {"version":3,"file":"perClassAnalyzer.d.ts","sourceRoot":"","sources":["../src/perClassAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAIN,MAAM,eAAe,CAAC;AA4CvB,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC,CAEpD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC,CAEpD;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC,CAEvD"}
@@ -6,41 +6,40 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
6
6
  * Create a Stage that first selects classes from the endpoint,
7
7
  * then runs a per-class CONSTRUCT query with `?class` bound via VALUES.
8
8
  *
9
- * Replaces the legacy `PerClassAnalyzer` two-phase loop with streaming.
9
+ * The selector is a factory that receives the runtime distribution,
10
+ * so no distribution is needed at construction time.
10
11
  */
11
- async function createPerClassStage(queryFilename, distribution) {
12
+ async function createPerClassStage(queryFilename) {
12
13
  const rawQuery = await readQueryFile(resolve(__dirname, 'queries', queryFilename));
13
- // Pre-process #subjectFilter# before the query is parsed as SPARQL.
14
- const subjectFilter = distribution.subjectFilter ?? '';
15
- const query = rawQuery.replace('#subjectFilter#', subjectFilter);
16
- // Build the selector SELECT query (same substitution for subjectFilter).
17
- const fromClause = distribution.namedGraph
18
- ? `FROM <${distribution.namedGraph}>`
19
- : '';
20
- const selectorQuery = [
21
- 'SELECT DISTINCT ?class',
22
- fromClause,
23
- `WHERE { ${subjectFilter} ?s a ?class . }`,
24
- 'LIMIT 1000',
25
- ].join('\n');
26
- const selector = new SparqlSelector({
27
- query: selectorQuery,
28
- endpoint: distribution.accessUrl,
29
- pageSize: 1000,
30
- });
31
- const executor = new SparqlConstructExecutor({ query });
14
+ const executor = new SparqlConstructExecutor({ query: rawQuery });
32
15
  return new Stage({
33
16
  name: queryFilename,
34
- selector,
17
+ selector: (distribution) => {
18
+ const subjectFilter = distribution.subjectFilter ?? '';
19
+ const fromClause = distribution.namedGraph
20
+ ? `FROM <${distribution.namedGraph}>`
21
+ : '';
22
+ const selectorQuery = [
23
+ 'SELECT DISTINCT ?class',
24
+ fromClause,
25
+ `WHERE { ${subjectFilter} ?s a ?class . }`,
26
+ 'LIMIT 1000',
27
+ ].join('\n');
28
+ return new SparqlSelector({
29
+ query: selectorQuery,
30
+ endpoint: distribution.accessUrl,
31
+ pageSize: 1000,
32
+ });
33
+ },
35
34
  executors: executor,
36
35
  });
37
36
  }
38
- export function createDatatypeStage(distribution) {
39
- return createPerClassStage('class-property-datatypes.rq', distribution);
37
+ export function createDatatypeStage() {
38
+ return createPerClassStage('class-property-datatypes.rq');
40
39
  }
41
- export function createLanguageStage(distribution) {
42
- return createPerClassStage('class-property-languages.rq', distribution);
40
+ export function createLanguageStage() {
41
+ return createPerClassStage('class-property-languages.rq');
43
42
  }
44
- export function createObjectClassStage(distribution) {
45
- return createPerClassStage('class-property-object-classes.rq', distribution);
43
+ export function createObjectClassStage() {
44
+ return createPerClassStage('class-property-object-classes.rq');
46
45
  }
@@ -1,10 +1,9 @@
1
- import { Distribution } from '@lde/dataset';
2
1
  import { Stage } from '@lde/pipeline';
3
2
  /**
4
3
  * Create a Stage that executes a SPARQL CONSTRUCT query from the queries directory.
5
4
  *
6
- * Pre-processes `#subjectFilter#` before the query is parsed as SPARQL;
5
+ * `#subjectFilter#` is handled at runtime by the executor;
7
6
  * `?dataset` and `FROM <graph>` are handled at the AST level by the executor.
8
7
  */
9
- export declare function createQueryStage(filename: string, distribution: Distribution): Promise<Stage>;
8
+ export declare function createQueryStage(filename: string): Promise<Stage>;
10
9
  //# sourceMappingURL=sparqlQueryAnalyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sparqlQueryAnalyzer.d.ts","sourceRoot":"","sources":["../src/sparqlQueryAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,KAAK,EAA0C,MAAM,eAAe,CAAC;AAM9E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,KAAK,CAAC,CAShB"}
1
+ {"version":3,"file":"sparqlQueryAnalyzer.d.ts","sourceRoot":"","sources":["../src/sparqlQueryAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA0C,MAAM,eAAe,CAAC;AAM9E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAKvE"}
@@ -5,13 +5,11 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
5
5
  /**
6
6
  * Create a Stage that executes a SPARQL CONSTRUCT query from the queries directory.
7
7
  *
8
- * Pre-processes `#subjectFilter#` before the query is parsed as SPARQL;
8
+ * `#subjectFilter#` is handled at runtime by the executor;
9
9
  * `?dataset` and `FROM <graph>` are handled at the AST level by the executor.
10
10
  */
11
- export async function createQueryStage(filename, distribution) {
11
+ export async function createQueryStage(filename) {
12
12
  const rawQuery = await readQueryFile(resolve(__dirname, 'queries', filename));
13
- const subjectFilter = distribution.subjectFilter ?? '';
14
- const query = rawQuery.replace('#subjectFilter#', subjectFilter);
15
- const executor = new SparqlConstructExecutor({ query });
13
+ const executor = new SparqlConstructExecutor({ query: rawQuery });
16
14
  return new Stage({ name: filename, executors: executor });
17
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lde/pipeline-void",
3
- "version": "0.2.27",
3
+ "version": "0.2.28",
4
4
  "description": "VOiD (Vocabulary of Interlinked Datasets) statistical analysis for RDF datasets",
5
5
  "repository": {
6
6
  "url": "https://github.com/ldengine/lde",
@@ -24,8 +24,7 @@
24
24
  "!**/*.tsbuildinfo"
25
25
  ],
26
26
  "dependencies": {
27
- "@lde/dataset": "0.6.9",
28
- "@lde/pipeline": "0.6.25",
27
+ "@lde/pipeline": "0.6.26",
29
28
  "@rdfjs/types": "^2.0.1",
30
29
  "n3": "^1.17.0",
31
30
  "tslib": "^2.3.0"