我目前正在使用 Brackit[1] 和 [2] 改进 JSON 查询功能,这是一个带有附加数组和“记录”的 XQuery 引擎。我现在基本上遵循与 JSONiq 使用相同的 XDM,但遗憾的是我不是 XQuery 专家。我想我或多或少地从 Sebastian 那里接手了这个项目,特别是添加了时间增强功能。
Brackit=>
对记录/对象使用取消引用运算符来获取名称的值。
此外,它[[expr()]]
用于数组索引查找,我想就像纯 JSONiq 规范一样。
我确定您有充分的理由改为执行动态函数调用,因此我可能不得不更改它。但是,我认为取消引用运算符可能适用于所有情况,我认为这是一种更好的语法。
我认为这个愿景非常棒,可以为半结构化数据提供一个经过验证的优化用于数据存储的查询编译器:http ://wwwlgis.informatik.uni-kl.de/cms/dbis/projects/brackit/mission/
Brackit 的决定性功能之一可能是面向集合处理的 FLOWR 表达式的流水线化。
亲切的问候
约翰内斯
[1] https://github.com/sirixdb/brackit
[2] http://wwwlgis.informatik.uni-kl.de/cms/fileadmin/publications/2013/Dissertation-Baechle.pdf