UNPKG

@comake/skl-js-engine

Version:

Standard Knowledge Language Javascript Engine

69 lines 2.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SparqlEndpointQueryExecutor = void 0; const sparql_http_client_1 = __importDefault(require("sparql-http-client")); const sparqljs_1 = require("sparqljs"); class SparqlEndpointQueryExecutor { constructor(options) { this.sparqlClient = new sparql_http_client_1.default({ endpointUrl: options.endpointUrl, updateUrl: options.updateUrl ?? options.endpointUrl, }); this.sparqlGenerator = new sparqljs_1.Generator(); } async executeSparqlSelectAndGetData(query) { const generatedQuery = this.sparqlGenerator.stringify(query); return this.executeSparqlSelectAndGetDataRaw(generatedQuery); } async executeSparqlSelectAndGetDataRaw(query) { const stream = await this.sparqlClient.query.select(query, { operation: 'postUrlencoded' }); return new Promise((resolve, reject) => { const data = []; stream.on('data', (row) => { data.push(row); }); stream.on('end', () => { resolve(data); }); stream.on('error', (error) => { reject(error); }); }); } async executeSparqlConstructAndGetDataRaw(query) { return await this.executeSparqlSelectAndGetDataRaw(query); } async executeSparqlUpdate(query) { const generatedQuery = this.sparqlGenerator.stringify(query); await this.executeRawSparqlUpdate(generatedQuery); } async executeRawSparqlUpdate(query) { await this.sparqlClient.query.update(query); } async executeAskQueryAndGetResponse(query) { const generatedQuery = this.sparqlGenerator.stringify(query); return await this.sparqlClient.query.ask(generatedQuery); } async executeSelectCountAndGetResponse(query) { const generatedQuery = this.sparqlGenerator.stringify(query); const stream = await this.sparqlClient.query.select(generatedQuery, { operation: 'postUrlencoded' }); return new Promise((resolve, reject) => { let countValue; stream.on('data', (row) => { const { count } = row; countValue = Number.parseInt(count.value, 10); }); stream.on('end', () => { resolve(countValue); }); stream.on('error', (error) => { reject(error); }); }); } } exports.SparqlEndpointQueryExecutor = SparqlEndpointQueryExecutor; //# sourceMappingURL=SparqlEndpointQueryExecutor.js.map