0

我一直在开发一种包含查询语言的实现,它的文档非常有限,并且没有可用作指南的参考实现。包含语言查询树结构中是否存在树模式,语法如下:

A CONTAINS B CONTAINS ((C contains A) AND (C CONTAINS D))

A、B、C 和 D 是树节点的类型,或者从更通用的角度来看,它们是节点的标签。A CONTAINS B 表示 A 在树中某处下方有一个子 B。

实现需要返回使用上述语句查询的树实例的所有匹配子树(表示部分定义的树)。它还需要考虑模式出现的组合,例如,在上面的查询中,如果 C 在其下方有 2 个 A 实例,则 C-A1 与 CD 和 C-A2 与 CD 是两个不同的匹配项等。

我已经设计了自己的解决方案,但是我没有任何可以用作参考的东西,或者在我的代码旁边的回归测试中更好,以确保我的实现始终如一且正确地运行。

最棘手的一点是查询语言中的逻辑运算符。我将研究使用 XML 作为参考实现的 XQuery(目前不确定它是否可以做我想做的事情),但我也很想听听其他选项。开源会很棒,但即使是专有工具也能胜任。支持这种类型查询的图形数据库,也许是一些带有 RDF 的语义工具等?

4

1 回答 1

1

我尝试使用 XQuery(Zorba 实现)进行概念验证:

http://www.zorba-xquery.com/html/demo#f63nK4ICLH22

我希望这有帮助。

于 2012-08-22T15:33:57.627 回答