- From: Hanke, Thomas <thomas.hanke@iwm.fraunhofer.de>
- Date: Tue, 12 May 2026 16:33:19 +0000
- To: "semantic-web@w3.org" <semantic-web@w3.org>
- Message-ID: <FR0P281MB16909B91F2A14CB92948C21CDB392@FR0P281MB1690.DEUP281.PROD.OUTLOOK.COM>
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