UNPKG

data-pipeline-information-system-sparql

Version:

Sparql function to query/update RDF through SPARQL 1.1

28 lines (24 loc) 1.19 kB
import sparqljs from 'sparqljs' import SparqlTask from '../Core/SparqlTask' import { groupBy, jsonRepresentation } from './_select' // import {jsonRepresentation as js2} from './_select' import DefinitionPattern from './DefinitionPattern' export function generate(this: DefinitionPattern, reference: string) { let model = SparqlTask.sparqlObjects[reference]; // model.prefixes let parser = new sparqljs.Parser(model.prefixes); // console.log(jsonRepresentation(reference, reference, [], true)); let _parsed = parser.parse(`SELECT ${jsonRepresentation(reference, reference, [], true)} WHERE { ${model.coreDefinition} } GROUP BY ${groupBy(reference)}`); this.query = <sparqljs.SelectQuery>_parsed; model.attributes.filter(attribute => attribute.reference) .forEach((attribute) => { let subDef = new DefinitionPattern(attribute.reference) // Link between outter and nested this.subQuery[attribute.name] = subDef; }) this.primaryKey = model.primaryKey; this.query.prefixes = model.prefixes || {}; } export default generate; // let query: sparqljs.SparqlQuery = new sparqljs.SparqlQuery; // query.type