Sparql —— SPARQL 查询解析与求值引擎(词法状态机 + 8 簇分簇解析 + Pratt 表达式 + 代数转换与执行;W3C rdf-tests 桶门+桥装审计线)
moon add thy1016/sparqllet store = @core.Store::new()
store.add("http://example.org/alice", "http://xmlns.com/foaf/0.1/name", "Alice")
store.add_typed(
"http://example.org/alice", "http://xmlns.com/foaf/0.1/age", "31", "",
"http://www.w3.org/2001/XMLSchema#integer", "",
)
let query =
#|PREFIX foaf: <http://xmlns.com/foaf/0.1/>
#|SELECT ?name WHERE {
#| ?a foaf:age ?age .
#| FILTER(?age > 30)
#| ?a foaf:name ?name .
#|}
match @core.eval_query(query_bytes[:], store) {
@core.EvalOk(solutions) =>
for sol in solutions {
println(sol.get("name")) // => Some("Alice")
}
@core.EvalBool(b) => println(b) // ASK 形
@core.EvalGraph(triples) => /* CONSTRUCT 形:逐三元组 */
@core.EvalFail(span, reason) => println("fail @\{span.start}: \{reason}")
}let (store, warnings) = @bridge.store_from_trig(trig_bytes)moon run cmd/demo --target native| 包 | 内容 |
|---|---|
| thy1016/sparql/core | 手写层:token 型 / 事件适配 / 分簇解析 / Pratt / 代数 / 求值引擎 |
| thy1016/sparql/gen | 生成物包(kindgen 输出落点,禁手编;三产物逐字节黄金门住生成器侧) |
| thy1016/sparql/bridge | moonttl 真解析器 × sparql Store 连通件(store_from_trig) |
| domain/ | 契约字表(TOML,人类维护面;词表 = 数据) |
| cmd/demo | 全链自证可运行示例(DEMO:PASS) |
| 入口 | 作用 |
|---|---|
| @core.eval_query(query_bytes, store) | 查询一行入口:EvalOut 三臂——解集(EvalOk)/ ASK 布尔(EvalBool)/ CONSTRUCT 图(EvalGraph) |
| @core.eval_update(bytes, store) | Update 解析门(UpdateOk / UpdateFail) |
| @core.dump_op(op, indent) | 代数树 dump(调试与 golden 钉) |
| @core.Store | 内存三元组账:add / add_typed / add_graph(_typed) / remove_* / clear_default / drop_graph |
| @core.StoreTriple | 账面行:s / p / o / lang / datatype / kind 六槽 |
| @bridge.store_from_trig(bytes, base?) | TriG 字节 → (Store, warnings)(moonttl 真解析器装载) |
moon test --target native| 面 | 读数 |
|---|---|
| W3C 套件门(sparql10 / sparql11 / sparql12 三代,bucket+pin,deferred 146 逐条举证) | 0 failed,桶闭包钉死 |
| 桥装审计线(bridge 真解析器 × 官方查询 × 官方结果件,十门) | 475 / 475 |
| 语法门(syntax-query 95 .rq,26 负例) | 25 / 25 桶清零 |
| 单元与端到端电池(解析 / 代数 / 求值 / Update 解析门) | 106 / 106 |
Install
Download zipSparql —— SPARQL 查询解析与求值引擎(词法状态机 + 8 簇分簇解析 + Pratt 表达式 + 代数转换与执行;W3C rdf-tests 桶门+桥装审计线)