JSONiq:Java 作为库实现?

JSONiq: Java implementation as library?

查看 JSONiq 规范 (www.jsoniq.org) 的实现。

大部分都是单机部署。例如Zorba、VXQuery 等,旨在查询基于 JSON 的数据库或处理大型 JSON 文档。

我很惊讶地发现所有实现都在尝试解决此类问题,而没有将 JSONiq 执行模块化为库。它应该很像 Apache Lucene(库)到 Apache Solr(Search Server+Rest API)和其他索引解决方案。

是否有可用的 java 库(类似于用于 XQuery 的 Saxon),它可以嵌入到 java 应用程序中并可以执行定义为 . xq 或 .xquery 文件? 或者如何扩展 Saxon 以解析和执行 JSONiq 规范?

JSONiq 是一种类似 XQuery 的语言,用于处理 JSON。它的大部分好想法都被合并到 XQuery 3.1 中,但是是以集成 XML 和 JSON 数据模型的方式。我不认为 JSONiq 提供 XQuery 3.1 中没有的任何功能,而且它不是开放标准,因此在 Saxon 中实现它没有什么意义。

目前 Java 中有两个已发布的 JSONiq 实现,它们都可以从 HDFS 或本地文件系统读取数据,并在多个 cores/machines 上并行处理大量数据:

  • Rumble (Spark) -- 支持JSONiq核心语言(JSON-友好语法),也可以读取JSON-like格式(Parquet, Avro、CSV、ROOT、...)来自 Spark 支持的任何文件系统(S3、HDFS、本地文件系统,...)。 Rumble 还通过 Java API 公开其功能,并作为 Maven 依赖项提供。
  • VXQuery (Hyracks) -- 支持 XQueryJSONiq 扩展