61 releases (25 breaking)
0.28.0 | Jul 5, 2023 |
---|---|
0.26.0 | May 17, 2023 |
0.24.0 | Mar 24, 2023 |
0.19.1 | Dec 22, 2022 |
0.4.2 | Jul 18, 2022 |
#1437 in Web programming
195 downloads per month
1MB
12K
SLoC
owlish
This library provides OWL2 datastructures that allow you to build and work with ontologies.
The OWL2 model is based on functional style syntax. E.g. the function
ClassAssertion( :Person :Mary )
Is represented as a similar tuple struct
pub struct ClassAssertion(pub(crate) ClassConstructor, pub(crate) IndividualIRI);
Usage
owlish provides two APIs:
- A low level representation of OWL based on functional syntax
- This is exported in
owlish::owl::*
- This is exported in
- A conceptional api that concatenates OWL data for relevant types.
- TBD
Usage (Node.js)
To initialize the module in a Node.js environment, it is currently recommend to load the WASM module via the fs
API and
pass it explicitly to the initialization function.
Example:
import path from 'path';
import { readFile } from 'fs/promises';
import { fileURLToPath } from 'url';
// The next two lines are only required if running the Node script as an ESM module
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Load .wasm file from the package
const owlishWasm = await readFile(path.join(__dirname, "../node_modules/owlish/owlish_bg.wasm"));
// Initialize module, after executing this line, all functions from `owlish` can be used like normal.
await owlish(owlishWasm)
Dev stuff
Build:
cargo build
Test:
cargo test
Run benchmark tests:
cargo bench
Commits and Releases
This crate uses convenentional commits to create automated releases whenever the main branch is updated. In addition the CHANGELOG.md is automatically generated.
Dependencies
~18MB
~313K SLoC