Socket
Socket
Sign inDemoInstall

sparqlalgebrajs

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sparqlalgebrajs - npm Package Compare versions

Comparing version 2.3.2 to 2.4.0

15

bin/sparqlalgebrajs.js

@@ -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:

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc