@lde/sparql-qlever 0.8.6 → 0.9.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.
- package/dist/importer.d.ts +1 -0
- package/dist/importer.d.ts.map +1 -1
- package/dist/importer.js +13 -4
- package/package.json +2 -2
package/dist/importer.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare class Importer implements ImporterInterface {
|
|
|
26
26
|
import(dataset: Dataset): Promise<NotSupported | ImportSuccessful | ImportFailed>;
|
|
27
27
|
private doImport;
|
|
28
28
|
private fileFormatFromMimeType;
|
|
29
|
+
private parseTripleCount;
|
|
29
30
|
private index;
|
|
30
31
|
}
|
|
31
32
|
//# sourceMappingURL=importer.d.ts.map
|
package/dist/importer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,UAAU,EAEX,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAU9C,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE;QACd,qBAAqB,EAAE,OAAO,CAAC;QAC/B,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,aAAa,CAAC;gBAEV,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,OAAO;IAU5D,MAAM,CACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAC;YAiC5C,QAAQ;
|
|
1
|
+
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,UAAU,EAEX,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAU9C,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE;QACd,qBAAqB,EAAE,OAAO,CAAC;QAC/B,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,aAAa,CAAC;gBAEV,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,OAAO;IAU5D,MAAM,CACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAC;YAiC5C,QAAQ;IAatB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,gBAAgB;YAQV,KAAK;CAuBpB"}
|
package/dist/importer.js
CHANGED
|
@@ -57,8 +57,9 @@ export class Importer {
|
|
|
57
57
|
}
|
|
58
58
|
async doImport(distribution) {
|
|
59
59
|
const localFile = await this.downloader.download(distribution);
|
|
60
|
-
await this.index(localFile, this.fileFormatFromMimeType(distribution.mimeType));
|
|
61
|
-
|
|
60
|
+
const logs = await this.index(localFile, this.fileFormatFromMimeType(distribution.mimeType));
|
|
61
|
+
const tripleCount = this.parseTripleCount(logs);
|
|
62
|
+
return new ImportSuccessful(distribution, undefined, tripleCount);
|
|
62
63
|
}
|
|
63
64
|
fileFormatFromMimeType(mimeType) {
|
|
64
65
|
const format = supportedFormats.get(mimeType);
|
|
@@ -67,6 +68,13 @@ export class Importer {
|
|
|
67
68
|
}
|
|
68
69
|
return format;
|
|
69
70
|
}
|
|
71
|
+
parseTripleCount(logs) {
|
|
72
|
+
// Extract num-triples.normal from the metadata JSON that the index
|
|
73
|
+
// command cats to stdout. Use a regex rather than JSON.parse because
|
|
74
|
+
// Docker log multiplexing prepends binary frame headers to each chunk.
|
|
75
|
+
const match = logs.match(/"num-triples":\{[^}]*"normal":(\d+)/);
|
|
76
|
+
return match ? Number(match[1]) : undefined;
|
|
77
|
+
}
|
|
70
78
|
async index(file, format) {
|
|
71
79
|
const workingDir = dirname(file);
|
|
72
80
|
const settingsFile = 'index.settings.json';
|
|
@@ -77,7 +85,8 @@ export class Importer {
|
|
|
77
85
|
: this.qleverOptions;
|
|
78
86
|
await writeFile(`${workingDir}/${settingsFile}`, JSON.stringify(settings));
|
|
79
87
|
// TODO: write index to named volume instead of bind mount for better performance.
|
|
80
|
-
const
|
|
81
|
-
await this.taskRunner.
|
|
88
|
+
const metadataFile = `${this.indexName}.meta-data.json`;
|
|
89
|
+
const indexTask = await this.taskRunner.run(`(zcat '${basename(file)}' 2>/dev/null || cat '${basename(file)}') | qlever-index -i ${this.indexName} -s ${settingsFile} -F ${format} -f - && cat ${metadataFile}`);
|
|
90
|
+
return await this.taskRunner.wait(indexTask);
|
|
82
91
|
}
|
|
83
92
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lde/sparql-qlever",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "git+https://github.com/ldelements/lde.git",
|
|
6
6
|
"directory": "packages/sparql-qlever"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@lde/dataset": "0.7.1",
|
|
27
27
|
"@lde/distribution-downloader": "0.5.1",
|
|
28
|
-
"@lde/sparql-importer": "0.
|
|
28
|
+
"@lde/sparql-importer": "0.4.0",
|
|
29
29
|
"@lde/sparql-server": "0.4.10",
|
|
30
30
|
"@lde/task-runner": "0.2.10",
|
|
31
31
|
"@lde/task-runner-docker": "0.2.11",
|