Skip to content

field33/owlish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
github actions
Jul 5, 2023
7651248 · Jul 5, 2023
Jun 27, 2023
Nov 22, 2022
Jul 5, 2023
Jul 5, 2023
Sep 19, 2022
Jul 5, 2023
Jul 5, 2023
Jul 5, 2023
Jul 12, 2022
Jul 12, 2022
Feb 21, 2023
Sep 13, 2022
May 11, 2022
May 17, 2023
May 3, 2023
Aug 8, 2022

Repository files navigation

owlish

github crates.io docs.rs npmjs.com

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:

  1. A low level representation of OWL based on functional syntax
    • This is exported in owlish::owl::*
  2. 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.