npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lde/pipeline-void

v0.26.14

Published

VOiD (Vocabulary of Interlinked Datasets) statistical analysis for RDF datasets

Readme

Pipeline VoID

Extensions to @lde/pipeline for VoID (Vocabulary of Interlinked Datasets) statistical analysis of RDF datasets.

Stage factories

voidStages(options?)

Returns all VoID stages in their recommended execution order. The ordering is optimised for cache warming: classPartitions() runs before the per-class stages, so the ?s a ?class pattern is already cached on the SPARQL endpoint when the heavier per-class queries execute — preventing 504 timeouts on cold caches.

Accepts an optional VoidStagesOptions object:

| Option | Default | Description | | ---------------- | ------- | --------------------------------------------------------------------- | | timeout | 60 000 | SPARQL query timeout in milliseconds | | batchSize | 10 | Maximum class bindings per executor call (per-class stages only) | | maxConcurrency | 10 | Maximum concurrent in-flight executor batches (per-class stages only) | | perClass | — | Override per-class iteration for all five per-class stages | | uriSpaces | — | When provided, includes the object URI space stage | | vocabularies | — | Additional vocabulary namespace URIs to detect beyond the built-in defaults |

import { voidStages } from '@lde/pipeline-void';
import { Pipeline, SparqlUpdateWriter, provenancePlugin } from '@lde/pipeline';

const stages = await voidStages({ uriSpaces: uriSpaceMap });

await new Pipeline({
  datasetSelector: selector,
  stages,
  plugins: [provenancePlugin()],
  writers: new SparqlUpdateWriter({
    endpoint: new URL('http://localhost:7200/repositories/lde/statements'),
  }),
}).run();

Individual stage factories

Global and domain-specific factories accept VoidStageOptions (timeout) and return Promise<Stage>. Per-class factories accept PerClassVoidStageOptions (timeout, batchSize, maxConcurrency, perClass) — they default perClass to true; set it to false to run them as monolithic queries instead.

Global stages (one CONSTRUCT query per dataset):

| Factory | Query | | ----------------------- | ------------------------------------------------------------------------------- | | classPartitions() | class-partition.rq — Classes with entity counts | | countDatatypes() | datatypes.rq — Dataset-level datatypes | | countObjectLiterals() | object-literals.rq — Literal object counts | | countObjectUris() | object-uris.rq — URI object counts | | countProperties() | properties.rq — Distinct properties | | countSubjects() | subjects.rq — Distinct subjects | | countTriples() | triples.rq — Total triple count | | detectLicenses() | licenses.rq — License detection | | subjectUriSpaces() | subject-uri-space.rq — Subject URI namespaces |

Per-class stages (iterated with a class selector):

| Factory | Query | | ------------------------- | ------------------------------------------------------------------------------------------------------------------ | | classPropertySubjects() | class-properties-subjects.rq — Properties per class (subject counts) | | classPropertyObjects() | class-properties-objects.rq — Properties per class (object counts) | | perClassDatatypes() | class-property-datatypes.rq — Per-class datatype partitions | | perClassLanguages() | class-property-languages.rq — Per-class language tags | | perClassObjectClasses() | class-property-object-classes.rq — Per-class object class partitions |

Domain-specific stages:

| Factory | Description | | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | | detectVocabularies() | entity-properties.rq — Entity properties with automatic void:vocabulary detection. Accepts DetectVocabulariesOptions with an optional vocabularies array to extend the built-in defaults. | | uriSpaces(uriSpaceMap) | object-uri-space.rq — Object URI namespace linksets, aggregated against a provided URI space map |

Executor decorators

  • VocabularyExecutor — Wraps an executor; detects known vocabulary namespace prefixes in void:property quads and appends void:vocabulary triples. The built-in defaults are exported as defaultVocabularies (sourced from @zazuko/prefixes).
  • UriSpaceExecutor — Wraps an executor; consumes void:Linkset quads, matches each void:objectsTarget against configured URI space prefixes using startsWith, and aggregates triple counts per matched space. Emits void:objectsTarget pointing to the target dataset IRI (taken from the metadata quad subjects), not the raw prefix. Unmatched linksets are discarded.