UNPKG

data-pipeline-information-system-sparql

Version:

Sparql function to query/update RDF through SPARQL 1.1

52 lines (42 loc) 1.3 kB
import jsonpointer from 'json-pointer' const delimiter = '_'; export function jsPointerToBinding(jsPointer: string) { return jsPointer.replace('/', '?').replace(/\//g, delimiter) } export function pointer(path: string[]) { return jsonpointer.compile(path); } export function binding(path: string[]) { return '?' + path.join(delimiter); } // TODO // Better define an uri export function isUri(str: string) { return (str.search('/') !== -1) && (str.search('\\?') === -1); } // TODO // Better define a binding export function isBinding(str: string) { return (str.search('\\?') === 0) && (str.search(':') === -1) } // TODO // Better define a prefix export function isPrefixed(str: string) { return (str.search('^[a-z0-9_]*:.*[^\.:]$') !== -1) && !isUri(str) } export function parseValue(str: string) { if (isPrefixed(str)) { return str; } else if (isUri(str)) { return '<'+str+'>' } else { return '"' + str +'"' } } // <https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex> export function escapeRegExp(str: string) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string } export function pathToBinding(path: string[]) { return '?' + path.join(delimiter); }