我正在寻找一种方法来独立于编程语言或集合的种类来定义集合上的查询。是否有一种通用的查询语言,用于独立于编程语言的任意集?
具体,这将是一个语言定义和像Java,C++,Python的等
正如评论我不寻找一个数据库或一组代表性的任何实现,但共同的语言实现只有通过定义才能查询元素来自例如一个std::set/vector
Python set()
或任何可以看作一个集合的线性结构。
一个接近的例子就像jLinq,但没有绑定到JSON或JavaScript,并有一个良好定义的字符串表示。
当然,如果不知道数据结构的类型,您将不得不为每个问题和每种编程语言实现任何条件过滤器,但是构造查询字符串的方式以及如何评估它们将是明确的,您不必编写解析器。
所以想什么,我在Java或C++写的是一样的东西
q = query()
.created_after("14.03.2010")
.and(contains("hello")
.or(contains("hallo")))
.sort("caption")
或作为字符串写入:
"(created_after("14.03.2010") and (contains("hello") or contains("hallo"))) sort("caption")"
(这不是经过深思熟虑 - 只是为了说明什么一个接口可能看起来像)
不同问题的一个很好的例子是JSON或XML:清晰的语言定义和任何平台或编程语言的解析器/工具。
那么,一个数据库?几乎有十亿美元的产业和几个主要的开源项目解决了这个问题的许多变化。 – delnan
不,我不是在寻找一个数据库,而是寻找一个通用集的标准查询语言(而不是数据库中的表和字段) – frans
为什么你不能将这些集建模为表并编写SQL查询? – delnan