Détail du package

sparql-http-client

rdf-ext70kMIT3.0.1

Simplified SPARQL HTTP request client

sparql, http, rdf

readme

sparql-http-client

build status npm version

SPARQL client for easier handling of SPARQL Queries and Graph Store requests. The SPARQL Protocol is used for SPARQL Queries and SPARQL Updates. The SPARQL Graph Store Protocol is used to manage Named Graphs.

It provides client implementations in different flavors. The default client comes with an interface for streams, the simple client is closer to fetch, and the parsing client wraps the results directly into RDF/JS DatasetCore objects or arrays.

Usage

The example below shows how to use the client to run a SELECT query against the Wikidata endpoint. Check the documentation for more details.

import SparqlClient from 'sparql-http-client'

const endpointUrl = 'https://query.wikidata.org/sparql'
const query = `
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>

SELECT ?value WHERE {
  wd:Q243 p:P2048 ?height.

  ?height pq:P518 wd:Q24192182;
    ps:P2048 ?value .
}`

const client = new SparqlClient({ endpointUrl })
const stream = client.query.select(query)

stream.on('data', row => {
  for (const [key, value] of Object.entries(row)) {
    console.log(`${key}: ${value.value} (${value.termType})`)
  }
})

stream.on('error', err => {
  console.error(err)
})

changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[3.0.0] - 2024-02-18

Added

  • ESM support
  • exports for all classes in the index.js package entrypoint

Changed

  • options like endpointUrl, user, and password are attached to the client object, allowing creating new client instances from existing instances
  • methods that return a Readable stream objects are sync
  • updated dependencies

Removed

  • CommonJS support
  • BaseClient and Endpoint class
  • automatic request splitting for Graph Store uploads