如何在没有解析器的情况下创建和填充`SparqlQuery`对象?

时间:2013-02-22 17:57:51

标签: sparql dotnetrdf

我正在尝试使用SparqlQuery class建模SPARQL查询。

看起来我可以使用RootGraphPattern property属性来指定要在我的查询结果中遵守的三重模式。

不幸的是,到目前为止,我无法创建SparqlQuery类的实例,因为its constructors are not publicly accessible并且该类已被密封。同样,query type只能被检索,但不能设置。是否有任何具有晦涩名称的工厂方法可以创建该类的实例?

论坛帖子,就像documentation on the topic根据SparqlQueryParser类的查询字符串专门生成SparqlQuery个实例一样。但是,我还没有一个查询字符串,我正在尝试避免连接字符串以构建我的查询,因为有一个面向对象的API可用,它允许我以OO方式构造我的查询而不是从字符串开始。

因此,我的问题是:如何在不使用初始查询字符串和SPARQL解析器的情况下实例化SparqlQuery

1 个答案:

答案 0 :(得分:1)

现在你不能,大多数SparqlQuery被故意封印,因为许多属性和相关类如GraphPattern代表AST,当我们最初设计这个类时我们不想要人们有意/无意地以创建破坏查询的方式修改AST。

在工作中有一个fluent-query分支,最终将提供一个用于构建查询的Fluent API,但其背后的开发人员目前正在休假一个月,我暂时没有看到任何活动。您可以查看Fluent Query wiki以了解此API的一些示例。

如果这对您来说是一项重要功能,我们可以将其推向优先事项,但作为一个开源项目,我们受到小型开发团队有限资源的严重限制。

我们可能会将我们目前所拥有的内容集成到1.0.0版本中,但我们最近的发布重点是修复错误和稳定性,以使1.0.0成为稳定的生产就绪版本,引入一个新的,相对未经测试的功能有点反对这个。此外,API尚未覆盖所有SPARQL,因此不完整且可能不稳定。