docs:README 拨 jsonld 官方正式形(产品名冠首/API 总览/错误面/设计边界/测试验证分包跑法/许可证无背书声明)+moon.mod 补 readme 指针(发版门 mod-fields) Co-Authored-By: Claude Code noreply@anthropic.com
docs:README 拨 jsonld 官方正式形(产品名冠首/API 总览/错误面/设计边界/测试验证分包跑法/许可证无背书声明)+moon.mod 补 readme 指针(发版门 mod-fields)
Co-Authored-By: Claude Code noreply@anthropic.com
thy1016/moonrdfs 是一个用 MoonBit 编写的 RDF 数据集存储库:实现 owned 词项字典(RDF 1.2,含三元组词项嵌套)、三元组/四元组双面索引、 BGP 图模式匹配连接核与 BGP 执行器,提供内存核与 RocksDB 物理面两种 后端——两者同吃一份连接逻辑(单连接核),并有差分对拍门锁定行为一致。 查询语言的降阶适配器不在本库范围内:本库不依赖任何查询语言模块, 只锁 pattern 自持的匹配面。
thy1016/moonrdfs
exec_bgp
exec_bgp_quads
domain/index_layout.toml
of_name
choose_triple_index_pos
choose_quad_index_pos
pub(open) trait TripleEngine
QuadEngine
exec_bgp_on
exec_bgp_quads_on
QuadPattern
QuadBgp
limit?
RdfStoreError
of_face
确保环境中已安装 MoonBit 工具链,然后在模块根目录:
moon add thy1016/moonrdfs
模块源码正式地址:gitlink https://gitlink.org.cn/thy7/mbt.rdfs;工作区 多模块场景可直接以本地树路径引用。
再在用到它的包的 moon.pkg import 块中按需添加 "thy1016/moonrdfs/core"(@core)与 "thy1016/moonrdfs/store" (@store),代码内以前缀使用。rocks 包为 native 门 + C FFI 基础设施(链接面 -lrocksdb),仅链接了 rocksdb 的宿主消费。
moon.pkg
import
"thy1016/moonrdfs/core"
@core
"thy1016/moonrdfs/store"
@store
rocks
-lrocksdb
内存 Dataset:上料 → BGP 匹配 → 规范形行读出:
let ds = @store.MemoryDataset::new() let _ = ds.insert(@core.Triple::{ s: @core.Term::Iri("http://example/s"), p: @core.Term::Iri("http://example/p"), o: @core.Term::Literal("v", None, None), }) let rows = ds.exec_bgp(@core.Bgp::{ patterns: [ @core.TriplePattern::{ s: @core.PatternTerm::Var("s"), p: @core.PatternTerm::Fixed(@core.Term::Iri("http://example/p")), o: @core.PatternTerm::Var("o"), }, ], }) // rows : Array[Map[String, @core.Term]]——变元名 → 规范形词项
命名图面(图变元与主谓宾同权连接;解行 = 变元绑定表,定词槽不入行):
let _ = ds.insert_quad(@core.Quad::{ s: @core.Term::Iri("http://example/s"), p: @core.Term::Iri("http://example/p"), o: @core.Term::Iri("http://example/o"), g: @core.Named(@core.Term::Iri("http://example/g")), }) let qbgp = @core.QuadBgp::{ patterns: [ @core.QuadPattern::{ g: @core.PatternTerm::Var("g"), s: @core.PatternTerm::Var("x"), p: @core.PatternTerm::Fixed(@core.Term::Iri("http://example/p")), o: @core.PatternTerm::Var("o"), }, ], } let qrows = ds.exec_bgp_quads(qbgp) // 图变元 ?g 解出 Named 图名词项
物理面(RocksDB,排布走缺省策略表):
let rs = @rocks.RocksStore::open( path="/tmp/rdfs-db", triple_layout=@core.default_triple_layout(), quad_layout=@core.default_quad_layout(), ) // 与内存核同一份连接核;同料对拍门保证两店逐位同形 rs.close()
Term
TermDictionary
TriplePattern
Bgp
plan_bgp
plan_quad_bgp
TripleIndexSpec
QuadIndexSpec
default_*_layout
load_index_layout
MemoryDataset
MemoryDataset::exec_bgp
MemoryStore
QuadStore
TripleEngine
RocksStore
spec.name
PolicyRejected
Corrupt
ExternalFailed
TripleTerm
定位与契约的完整说明见 spec.md。
spec.md
moon test -p core moon test -p store moon test -p rocks --target native
门读数(2026-11-03):core 22 / store 24 / rocks 14,合计 60。 注意 rocks 包为 native 门包,裸 moon test 会静默跳过——必须 --target native 分包跑(0 读数 ≠ 包绿)。差分对拍门同料两店 (内存核 vs 物理面)逐 API 按规范形行集判定,quad-BGP 束行集节 含跨案图变元连接钉值。
moon test
--target native
版本沿革见 CHANGELOG.md。
CHANGELOG.md
本项目代码采用 Apache License 2.0(见 LICENSE)。实现为 clean-room 自研:参考的只有上游系统的公开分层思想,未复制任何代码; 上文套件通过计数是本项目自测结果,不代表任何第三方认证或背书。
LICENSE
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MoonRDFS
thy1016/moonrdfs是一个用 MoonBit 编写的 RDF 数据集存储库:实现 owned 词项字典(RDF 1.2,含三元组词项嵌套)、三元组/四元组双面索引、 BGP 图模式匹配连接核与 BGP 执行器,提供内存核与 RocksDB 物理面两种 后端——两者同吃一份连接逻辑(单连接核),并有差分对拍门锁定行为一致。 查询语言的降阶适配器不在本库范围内:本库不依赖任何查询语言模块, 只锁 pattern 自持的匹配面。特性
exec_bgp/exec_bgp_quads上料与匹配面。domain/index_layout.toml), 词→规格of_name,择径choose_triple_index_pos/choose_quad_index_pos完美前缀;物理面 CF 族随排布数据——换排布 = 换表,零代码改动。pub(open) trait TripleEngine/QuadEngine,exec_bgp_on/exec_bgp_quads_on单真源);同料两店全 API 对拍门按规范形行集判定。QuadPattern/QuadBgp(g/s/p/o 四槽,图变元 与主谓宾同权进连接序);数据集分账——默认图走exec_bgp(三元组 侧),命名图走exec_bgp_quads(四元组侧)。limit?上界参数,禁无界流。RdfStoreError政策/完整性/外部三分,of_face统一翻译口——不污染调用方错误语义。安装
确保环境中已安装 MoonBit 工具链,然后在模块根目录:
模块源码正式地址:gitlink https://gitlink.org.cn/thy7/mbt.rdfs;工作区 多模块场景可直接以本地树路径引用。
再在用到它的包的
moon.pkgimport块中按需添加"thy1016/moonrdfs/core"(@core)与"thy1016/moonrdfs/store"(@store),代码内以前缀使用。rocks包为 native 门 + C FFI 基础设施(链接面-lrocksdb),仅链接了 rocksdb 的宿主消费。快速上手
内存 Dataset:上料 → BGP 匹配 → 规范形行读出:
命名图面(图变元与主谓宾同权连接;解行 = 变元绑定表,定词槽不入行):
物理面(RocksDB,排布走缺省策略表):
API 总览
Term/TermDictionaryTriplePattern/BgpQuadPattern/QuadBgpplan_bgp/plan_quad_bgpchoose_triple_index_pos/choose_quad_index_posTripleIndexSpec/QuadIndexSpecof_name词→规格;缺省排布default_*_layout)load_index_layoutdomain/index_layout.toml策略表解析(新键可选/未知键忽略)MemoryDatasetMemoryDataset::exec_bgp/exec_bgp_quadsMemoryStore/QuadStoreexec_bgp_on/exec_bgp_quads_onTripleEngine/QuadEngine喂料口)RocksStorespec.name;键 = id 定长 8B 大端;TT 自描述编码)RdfStoreErrorPolicyRejected/Corrupt/ExternalFailed设计边界
TripleTerm词项嵌套已支持。定位与契约的完整说明见
spec.md。测试与验证
门读数(2026-11-03):core 22 / store 24 / rocks 14,合计 60。 注意
rocks包为 native 门包,裸moon test会静默跳过——必须--target native分包跑(0 读数 ≠ 包绿)。差分对拍门同料两店 (内存核 vs 物理面)逐 API 按规范形行集判定,quad-BGP 束行集节 含跨案图变元连接钉值。版本沿革见
CHANGELOG.md。许可证
本项目代码采用 Apache License 2.0(见
LICENSE)。实现为 clean-room 自研:参考的只有上游系统的公开分层思想,未复制任何代码; 上文套件通过计数是本项目自测结果,不代表任何第三方认证或背书。