Context is a configuration object that hosts LDkit settings for various of its components.

The only mandatory property of the context is to specify a RDF datasource. The minimum example of such context is the following:

import { type Context } from "ldkit";

const context: Context = {
  sources: ["https://example.com/sparql"],

The Context structure accepted by LDkit is derived from the RDF/JS Query specification and made compatible with Comunica context, for maximizing ease of adoption. Therefore, if you use Comunica as a query engine with LDkit, chances are you do not have to to any changes.

LDkit context properties

Key Type Description
sources string[] or IDataSource[] List of RDF sources. The default query engine included in LDkit accepts only a single source, and it must be a SPARQL endpoint.
fetch typeof fetch Custom fetch function.
language string Preferred data language - for cases when you query multilingual data.
graph string (experimental) IRI of a graph to constrain - if you want to query data stored in a particular named graph.

Setting default context

Context needs to be passed to a data Lens as a parameter, and there are two ways how to handle that. Either you can pass the context directly as an argument when creating the Lens, or you can set a context as a default one. If there is a default context, then the Lens will use that context, if you do not provide one directly.

import { type Context, createLens, setDefaultContext } from "ldkit";

const context: Context = {
  sources: ["https://example.com/sparql"],
  language: "en",


const customContext: Context = {
  language: "cs",

const firstResource = createLens(FirstSchema); // will use the default context
const secondResource = createLens(SecondSchema, customContext); // will use custom context