---
Title: PurRDF: RDF 1.2 Toolkit
Subtitle: One RDF engine, one behavior, every language
Type: Software toolkit
Order: 30
DOI: 10.67342/pkg8gpp4no/v1
Date: 2026-07-01
Updated: 2026-09-02
Version: 1
WorkId: pkg8gpp4no
PublicationVersion: 1
PackageVersion: 1.0.0
License: MIT OR Apache-2.0
FullDocumentUrl: /purrdf/
CanonicalUrl: https://blackcatinformatics.ca/purrdf/
SourceUrl: https://github.com/Blackcat-Informatics/purrdf
CitationUrl: /purrdf/cite.csl.json
Summary: PurRDF is Blackcat Informatics' RDF 1.2 toolkit, at 1.0 under full semantic versioning: one from-scratch Rust engine carried byte for byte into Python, WebAssembly/JavaScript, and C, covering native codecs, RDFC-1.0 canonicalization, SPARQL 1.1/1.2 with governed execution, SHACL, ShEx 2.1, entailment regimes through OWL 2 DL, deterministic full-text search, float-free GeoSPARQL 1.1, embedding nearest-neighbour search, and GTS graph transport.
---

# PurRDF

PurRDF is Blackcat Informatics' RDF 1.2 toolkit. It is implemented once, as a
from-scratch Rust engine with no optional Cargo features, and carried verbatim
into Python, WebAssembly/JavaScript, and C, so that a graph moved from a Rust
service to a Python pipeline to a browser keeps the same meaning and the same
query answers. Every published crate builds for `wasm32-unknown-unknown`.

Version 1.0.0, released 2026-09-02, is the first release under full semantic
versioning: from 1.0.0 a breaking change bumps the major version, a minor bump
is additive, and a patch bump is bugfix-only. The suite ships one lockstep
version across crates.io, PyPI, and npm through tag-driven Trusted Publishing,
with build-provenance attestations and an SPDX SBOM on every package. The C ABI
(`purrdf.h`) is versioned separately and remains 0.x.

## What it provides

- An immutable, value-interned RDF 1.2 dataset model with triple terms,
  reifiers, and base-direction literals; a content-addressed pack container;
  and paged datasets with fallible views.
- Native codecs for Turtle, TriG, N-Triples, N-Quads, RDF/XML, TriX,
  HexTuples, JSON-LD (star), and YAML-LD, plus a JSON-LD 1.1 context lens and
  one RFC 3986 base-resolution layer shared by every codec and engine.
- W3C RDFC-1.0 dataset canonicalization, the `purrdf-rdfc12` profile for
  RDF 1.2 constructs, and a review-friendly canonical Turtle rendering.
- A SPARQL 1.1/1.2 parser, algebra, and multiset evaluator with full Update,
  property paths, the `VERSION` declaration, `LATERAL`, SEP-0002 temporal
  arithmetic, SEP-0007 `EXISTS` semantics, SEP-0009 composite datatypes,
  caller-keyed extension seams, and governed execution with certified partial
  answers.
- Deterministic full-text search with exact fixed-point BM25 ranking, exact
  float-free GeoSPARQL 1.1, and embedding nearest-neighbour search over the
  PURREMB companion format, each answered from SPARQL in-process so an RDF
  project no longer needs a PostgreSQL instance beside its triple store.
- SHACL validation (Core, SHACL-SPARQL, and SHACL-AF including SHACL Rules),
  ShEx 2.1 validation, and schema lanes from SHACL to JSON Schema, OpenAPI,
  Pydantic, LinkML, TypeScript, and GraphQL.
- Entailment regimes (RDF, RDFS, OWL 2 RL, D, an OWL 2 Direct-Semantics
  tableau, and RIF-Core) that return a reasoning report with every closure,
  plus OWL 2 DL reasoning services with checkable certificates.
- Deterministic graph, tabular, and research-object projections, RDF 1.2
  visualization, and the GTS single-file, content-addressed, append-only graph
  transport.

Behavior is gated by the W3C SPARQL, SHACL, shexTest, OWL 2, and RDFC-1.0
conformance suites and by frozen cross-language GTS vectors.

## Publication Identity

| Field | Value |
| --- | --- |
| Title | PurRDF: RDF 1.2 Toolkit |
| DOI | `10.67342/pkg8gpp4no/v1` |
| BII publication version | `1` |
| Package version | `1.0.0` |
| Publication date | `2026-07-01` |
| Latest package release | `2026-09-02` |
| Publisher | Blackcat Informatics Inc. |
| Source repository | `https://github.com/Blackcat-Informatics/purrdf` |
| Citation metadata | `https://blackcatinformatics.ca/purrdf/cite.csl.json` |
| License | `MIT OR Apache-2.0` |

## Distribution

| Runtime | Package | Install |
| --- | --- | --- |
| Rust | `purrdf` | `cargo add purrdf` |
| Python | `purrdf` | `pip install purrdf` |
| JavaScript / WebAssembly | `@blackcatinformatics/purrdf` | `npm i @blackcatinformatics/purrdf` |
| C | `libpurrdf` | `make capi-build` from the source checkout |

The canonical BII project/publication page is `/purrdf/`. Documentation lives
in The PurRDF Book at `https://blackcat-informatics.github.io/purrdf/` and the
API reference at `https://docs.rs/purrdf`.
