sparqlalgebrajs
Advanced tools
Comparing version 2.3.2 to 2.4.0
@@ -9,4 +9,4 @@ #! /usr/bin/env node | ||
const args = minimist(process.argv.slice(2), { | ||
boolean: ['q', 'r'], | ||
alias: { q: 'quads', r: 'reverse' } | ||
boolean: ['q', 'r', 's'], | ||
alias: { q: 'quads', r: 'reverse', s: 'strict' } | ||
}); | ||
@@ -16,13 +16,14 @@ if (args.h || args.help || args._.length !== 1) { | ||
console.error('options:'); | ||
console.error(' -h --help : Show this output.'); | ||
console.error(' -q --quads : Apply GRAPH statements to convert triples to quads.'); | ||
console.error(' -r --reverse : Convert algebra to SPARQL.'); | ||
console.error(' -h --help : Show this output.'); | ||
console.error(' -q --quads : Apply GRAPH statements to convert triples to quads.'); | ||
console.error(' -r --reverse : Convert algebra to SPARQL.'); | ||
console.error(' -s --strict : Only allow parsing of pure SPARQL.'); | ||
process.exit((args.h || args.help) ? 0 : 1); | ||
} | ||
if (args.r || args.reverse) { | ||
console.log(sparql_1.toSparql(JSON.parse(args._[0]))); | ||
console.log(sparql_1.toSparql(JSON.parse(args._[0]), { sparqlStar: !args.s })); | ||
} | ||
else { | ||
console.log(JSON.stringify(util_1.default.objectify(sparqlAlgebra_1.default(args._[0], { quads: args.q })), null, 2)); | ||
console.log(JSON.stringify(util_1.default.objectify(sparqlAlgebra_1.default(args._[0], { quads: args.q, sparqlStar: !args.s })), null, 2)); | ||
} | ||
//# sourceMappingURL=sparqlalgebrajs.js.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Util = exports.toSparqlJs = exports.toSparql = exports.Factory = exports.Algebra = exports.translate = void 0; | ||
const sparqlAlgebra_1 = require("./lib/sparqlAlgebra"); | ||
@@ -10,6 +11,6 @@ exports.translate = sparqlAlgebra_1.default; | ||
const sparql_1 = require("./lib/sparql"); | ||
exports.toSparql = sparql_1.toSparql; | ||
exports.toSparqlJs = sparql_1.toSparqlJs; | ||
Object.defineProperty(exports, "toSparql", { enumerable: true, get: function () { return sparql_1.toSparql; } }); | ||
Object.defineProperty(exports, "toSparqlJs", { enumerable: true, get: function () { return sparql_1.toSparqlJs; } }); | ||
const util_1 = require("./lib/util"); | ||
exports.Util = util_1.default; | ||
//# sourceMappingURL=index.js.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.expressionTypes = exports.types = void 0; | ||
// TODO: add aggregates? | ||
@@ -4,0 +5,0 @@ // TODO: can't find a way to use these values as string types in the interfaces |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const DataFactory = require("@rdfjs/data-model"); | ||
const rdf_data_factory_1 = require("rdf-data-factory"); | ||
const rdf_string_1 = require("rdf-string"); | ||
@@ -8,3 +8,3 @@ const Wildcard = require('sparqljs').Wildcard; | ||
constructor(dataFactory) { | ||
this.dataFactory = dataFactory || DataFactory; | ||
this.dataFactory = dataFactory || new rdf_data_factory_1.DataFactory(); | ||
this.stringType = this.createTerm('http://www.w3.org/2001/XMLSchema#string'); | ||
@@ -11,0 +11,0 @@ } |
import * as Algebra from './algebra'; | ||
export declare function toSparql(op: Algebra.Operation): string; | ||
export declare function toSparql(op: Algebra.Operation, options?: {}): string; | ||
export declare function toSparqlJs(op: Algebra.Operation): any; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.toSparqlJs = exports.toSparql = void 0; | ||
const Algebra = require("./algebra"); | ||
@@ -13,4 +14,4 @@ const factory_1 = require("./factory"); | ||
const factory = new factory_1.default(); | ||
function toSparql(op) { | ||
let generator = new SparqlGenerator(); | ||
function toSparql(op, options = {}) { | ||
let generator = new SparqlGenerator(options); | ||
return generator.stringify(toSparqlJs(op)); | ||
@@ -17,0 +18,0 @@ } |
@@ -21,2 +21,3 @@ import * as Algebra from './algebra'; | ||
blankToVariable?: boolean; | ||
sparqlStar?: boolean; | ||
}): Algebra.Operation; |
@@ -145,3 +145,3 @@ "use strict"; | ||
function translateExpression(exp) { | ||
if (util_1.default.isTerm(exp)) | ||
if (util_1.default.isTerm(exp) || exp.termType === 'Quad') | ||
return factory.createTermExpression(exp); | ||
@@ -148,0 +148,0 @@ if (util_1.default.isWildcard(exp)) |
@@ -26,2 +26,20 @@ "use strict"; | ||
} | ||
function recurseTerm(quad) { | ||
if (quad.subject.termType === 'Variable') | ||
addVariable(quad.subject); | ||
if (quad.predicate.termType === 'Variable') | ||
addVariable(quad.predicate); | ||
if (quad.object.termType === 'Variable') | ||
addVariable(quad.object); | ||
if (quad.graph.termType === 'Variable') | ||
addVariable(quad.graph); | ||
if (quad.subject.termType === 'Quad') | ||
recurseTerm(quad.subject); | ||
if (quad.predicate.termType === 'Quad') | ||
recurseTerm(quad.predicate); | ||
if (quad.object.termType === 'Quad') | ||
recurseTerm(quad.object); | ||
if (quad.graph.termType === 'Quad') | ||
recurseTerm(quad.graph); | ||
} | ||
// https://www.w3.org/TR/sparql11-query/#variableScope | ||
@@ -61,2 +79,8 @@ Util.recurseOperation(op, { | ||
addVariable(path.graph); | ||
if (path.subject.termType === 'Quad') | ||
recurseTerm(path.subject); | ||
if (path.object.termType === 'Quad') | ||
recurseTerm(path.object); | ||
if (path.graph.termType === 'Quad') | ||
recurseTerm(path.graph); | ||
return true; | ||
@@ -66,10 +90,3 @@ }, | ||
let pattern = op; | ||
if (pattern.subject.termType === 'Variable') | ||
addVariable(pattern.subject); | ||
if (pattern.predicate.termType === 'Variable') | ||
addVariable(pattern.predicate); | ||
if (pattern.object.termType === 'Variable') | ||
addVariable(pattern.object); | ||
if (pattern.graph.termType === 'Variable') | ||
addVariable(pattern.graph); | ||
recurseTerm(pattern); | ||
return true; | ||
@@ -412,3 +429,3 @@ }, | ||
return factory.createCopy(copy.source, copy.destination); | ||
default: throw new Error('Unknown Operation type ' + result.type); | ||
default: throw new Error('Unknown Operation type ' + result); | ||
} | ||
@@ -462,3 +479,3 @@ } | ||
static isTerm(term) { | ||
return term.termType !== undefined && term.termType !== 'Wildcard'; | ||
return term.termType !== undefined && term.termType !== 'Quad' && term.termType !== 'Wildcard'; | ||
} | ||
@@ -465,0 +482,0 @@ static isWildcard(term) { |
{ | ||
"name": "sparqlalgebrajs", | ||
"version": "2.3.2", | ||
"version": "2.4.0", | ||
"description": "Convert SPARQL to SPARQL algebra", | ||
@@ -13,6 +13,6 @@ "author": "Joachim Van Herwegen", | ||
"dependencies": { | ||
"@rdfjs/data-model": "^1.1.2", | ||
"fast-deep-equal": "^3.1.1", | ||
"minimist": "^1.2.5", | ||
"rdf-string": "^1.3.1", | ||
"rdf-data-factory": "^1.0.0", | ||
"rdf-string": "^1.5.0", | ||
"sparqljs": "^3.1.1" | ||
@@ -25,3 +25,3 @@ }, | ||
"@types/node": "^13.9.1", | ||
"@types/rdf-js": "^3.0.0", | ||
"@types/rdf-js": "^4.0.0", | ||
"chai": "^4.2.0", | ||
@@ -31,4 +31,4 @@ "mocha": "^8.0.0", | ||
"pre-commit": "^1.2.2", | ||
"ts-node": "^8.6.2", | ||
"typescript": "^3.8.3" | ||
"ts-node": "^9.0.0", | ||
"typescript": "^4.0.0" | ||
}, | ||
@@ -35,0 +35,0 @@ "scripts": { |
@@ -85,2 +85,6 @@ # SPARQL to SPARQL Algebra converter | ||
#### SPARQL* | ||
[SPARQL*](https://blog.liu.se/olafhartig/2019/01/10/position-statement-rdf-star-and-sparql-star/) queries can be parsed by setting `sparqlStar` to true in the `translate` options. | ||
#### VALUES | ||
@@ -87,0 +91,0 @@ For the VALUES block we return the following output: |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
105159
2501
139
+ Addedrdf-data-factory@^1.0.0
- Removed@rdfjs/data-model@^1.1.2
- Removed@rdfjs/data-model@1.3.4(transitive)
Updatedrdf-string@^1.5.0