JSONiq:Java实现作为库?



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

它们中的大多数是独立部署,例如Zorba,VXQuery等,旨在查询基于JSON的数据库或处理大型JSON文档。

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

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

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

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

Rumble(Spark)
  • - 支持JSONiq核心语言(JSON友好的语法),还可以从Spark支持的任何文件系统(S3,HDFS,本地文件系统等)读取类似JSON的格式(Parquet,Avro,CSV,ROOT等)。Rumble还通过Java API公开其功能,并可作为Maven依赖项使用。
  • VXQuery (Hyracks) -- 支持 XQuery 的 JSONiq 扩展

最新更新