[ANN] rdf-reasoner-konclude 0.1.0 — OWL-DL tableau reasoning in browsers and Node.js (npm, WebAssembly)

Semantic Web Interest Group,

I am pleased to announce rdf-reasoner-konclude 0.1.0, an npm package that
brings full OWL-DL tableau reasoning to browsers and Node.js via WebAssembly.

  https://www.npmjs.com/package/rdf-reasoner-konclude
  https://github.com/ThHanke/rdf-reasoner-konclude

To the best of my knowledge this is the first and currently only npm-published
OWL-DL reasoner that runs natively in browser Web Workers and Node.js without
a Java runtime or server-side component.


WHAT IT IS
----------

The package wraps the Konclude OWL-DL tableau reasoning kernel
(University of Ulm, Liebig et al., 2014) compiled to WebAssembly via
Emscripten. Qt has been removed and replaced with std:: shims; pthreads
are retained to support Konclude's KPSet parallel classifier.

Supported expressivity: SROIQ (OWL 2 DL / OWL-DL). Classification,
instance retrieval, and consistency checking are exposed.


QUICK START
-----------

  npm install rdf-reasoner-konclude n3

  import { RdfReasoner, INFERRED_GRAPH_IRI } from 'rdf-reasoner-konclude';
  import { Store, Parser } from 'n3';

  const store = new Store();
  // ... load your ontology into store ...

  const reasoner = new RdfReasoner();
  await reasoner.ready;
  await reasoner.reason(store);

  const inferred = store.getQuads(null, null, null, INFERRED_GRAPH_IRI);

No Worker setup required under Node.js 18+. The package uses the "node"
export condition to install a worker_threads shim automatically.

The full API uses RDF.js Quad types (Iterable<Quad> in, Quad[] out, or
N3.js Store in-place mutation).


PERFORMANCE (Linux, 8 cores)
-----------------------------

  LUBM schema (SHI, 307 triples):           ~266 ms total (35 ms native)
  GALEN (SHIF, 30 817 triples):             ~941 ms total (225 ms native)
  Roberts family (SROIQ, 3 866 triples):  ~2 603 ms total (1 801 ms native)

"Total" includes NTriples serialization round-trip across the JS/WASM
boundary. The WASM classify step alone is within 1.4×–7.3× of the native
Konclude binary.


BROWSER REQUIREMENTS
--------------------

pthreads require SharedArrayBuffer. Pages must be cross-origin isolated:

  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Embedder-Policy: require-corp


LANDSCAPE NOTE
--------------

Existing browser-compatible RDF reasoning packages (hylar-core, eyereasoner,
comunica-feature-reasoning) cover OWL 2 RL, N3 rules, or RDFS. This package
targets the full OWL-DL profile (SROIQ) which requires tableau reasoning and,
to my knowledge, has not previously been available as an npm package.


LICENCE
-------

TypeScript wrapper: LGPL-3.0-or-later.
WASM binary: Konclude kernel, © University of Ulm, LGPLv3.
Complete source including all modifications:
  https://github.com/ThHanke/rdf-reasoner-konclude


REFERENCE
---------

Liebig, T., Jaeger, M., Möller, R., & Möller, B. (2014).
Konclude: System Description.
Web Semantics, 27–28, 78–85. doi:10.1016/j.websem.2014.06.003


Feedback and issue reports are welcome on GitHub.

Thomas Hanke


--
Dr.-Ing. Thomas Hanke
Scientific IT
Fraunhofer Institut for Mechanics of Materials IWM
Wöhlerstraße 11 | 79108 Freiburg
Phone +49 761 5142-593| Fax +49 761 5142-510
thomas.hanke@iwm.fraunhofer.de<mailto:thomas.hanke@iwm.fraunhofer.de> | www..iwm.fraunhofer.de<http://www.iwm.fraunhofer.de/>

Received on Tuesday, 12 May 2026 16:55:18 UTC