Skip to content

Commit 90ed29e

Browse files
authored
Prevent duplicate prefixes when executing query (#163)
Closes #149
1 parent 258339c commit 90ed29e

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
"n3": "^1.16.2",
7676
"rdf-string": "^1.6.1",
7777
"relative-to-absolute-iri": "^1.0.6",
78+
"sparqljs": "^3.7.3",
7879
"string-replace-loader": "^3.1.0",
7980
"webpack": "^5.69.0",
8081
"webpack-cli": "^4.9.2",

src/ldf-client-ui.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/*! @license MIT ©2014–2016 Ruben Verborgh, Ghent University – imec */
22
// jQuery widget for Triple Pattern Fragments query execution
33

4+
var SparqlParser = require('sparqljs').Parser;
5+
var SparqlGenerator = require('sparqljs').Generator;
46
// This exports the webpacked jQuery.
57
window.jQuery = require('../deps/jquery-2.1.0.js');
68
var N3 = require('n3');
@@ -730,12 +732,14 @@ if (typeof global.process === 'undefined')
730732
return { type: type, value: datasource };
731733
}),
732734
};
733-
var prefixesString = '';
735+
736+
let query = this.$queryTextsIndexed[this.options.queryFormat].val();
734737
if (this.options.queryFormat === 'sparql') {
735-
for (var prefix in this.options.prefixes)
736-
prefixesString += 'PREFIX ' + prefix + ': <' + this.options.prefixes[prefix] + '>\n';
738+
// Add pre-defined prefixes to query and remove duplicates
739+
const parsedQuery = new SparqlParser({ prefixes:this.options.prefixes, sparqlStar: true }).parse(query);
740+
query = new SparqlGenerator({}).stringify(parsedQuery);
737741
}
738-
var query = prefixesString + this.$queryTextsIndexed[this.options.queryFormat].val();
742+
739743
this._queryWorker.postMessage({
740744
type: 'query',
741745
query: query,

yarn.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -8388,7 +8388,7 @@ sparqlalgebrajs@^4.3.7, sparqlalgebrajs@^4.3.8:
83888388
rdf-terms "^1.10.0"
83898389
sparqljs "^3.7.1"
83908390

8391-
sparqljs@^3.0.0:
8391+
sparqljs@^3.0.0, sparqljs@^3.7.3:
83928392
version "3.7.3"
83938393
resolved "https://registry.yarnpkg.com/sparqljs/-/sparqljs-3.7.3.tgz#075821d51ef4954284e36569503fe5558cfb71b0"
83948394
integrity sha512-FQfHUhfwn5PD9WH6xPU7DhFfXMgqK/XoDrYDVxz/grhw66Il0OjRg3JBgwuEvwHnQt7oSTiKWEiCZCPNaUbqgg==

0 commit comments

Comments
 (0)