#owl #语义网 #RDF #WASM #数据结构 #Node.js #底层

owlish

带有WASM支持和turtle解析的OWL 2实现

61个版本 (25个破坏性版本)

0.28.0 2023年7月5日
0.26.0 2023年5月17日
0.24.0 2023年3月24日
0.19.1 2022年12月22日
0.4.2 2022年7月18日

#1141 in 网页编程

Download history 3/week @ 2024-03-08 1/week @ 2024-03-15 146/week @ 2024-03-29 63/week @ 2024-04-05

每月195次下载

MIT/Apache

1MB
12K SLoC

owlish

github crates.io docs.rs npmjs.com

此库提供OWL2数据结构,允许您构建和操作本体。

OWL2模型基于函数式语法。例如,函数

ClassAssertion( :Person :Mary )

表示为类似的元组结构

pub struct ClassAssertion(pub(crate) ClassConstructor, pub(crate) IndividualIRI);

用法

owlish提供两个API

  1. 基于函数语法的OWL的低级表示
    • 这导出在 owlish::owl::*
  2. 一个概念性API,它连接了OWL数据的相关类型。
    • 待定

用法(Node.js)

要在Node.js环境中初始化模块,建议目前通过fs API加载WASM模块,并将其显式传递给初始化函数。

示例

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)

开发人员工具

构建

cargo build

测试

cargo test

运行基准测试

cargo bench

提交和版本发布

此crate使用约定提交在主分支更新时自动创建版本发布。此外,CHANGELOG.md也将自动生成。

依赖关系

~17MB
~308K SLoC