使用SPARQL Insert语句构建应用程序逻辑?

时间:2017-10-11 15:44:14

标签: sparql

我正在与一个使用RDF三元组的项目的小团队合作。我们正在构建的应用程序将RDF数据加载到Ontotext Graph-DB存储库中,然后使用一组规则来操作数据。有一段时间我们使用RDF4J与数据库交互,但发现性能很慢,因为我们的工作流程涉及将相关数据拉到本地机器上,进行操作,然后将其发送回数据库服务器。

我们很快发现,通过向我们的数据库服务器发送一系列顺序SPARQL Insert语句,我们可以在很短的时间内执行相同的任务。我们现在发送图形模式并创建新的图形模式,而不是在JVM范围内循环遍历数据。由于现在所有操作都是通过发送“指令”而不是数据来实现的,因此我们可以避免在本地计算机和服务器之间来回传递数据的网络开销。

但是,我们也注意到这种方法的一些缺点。 SPARQL显然是非模块化的,因为我们将Insert语句硬编码为Scala字符串。因此,我们发现,为了在OOP范例中添加容易的功能,我们必须创建全新的语句。

我想听听社区是否有人曾尝试使用SPARQL作为应用程序逻辑的来源,以及结果如何。这是一种经过验证的真实方法,还是通常不属于SPARQL的正常用例?除了字面串联字符串之外,我们是否可以使用SPARQL更像Object-Oriented语言?是否还有其他技术我们可能没有听说过可以有效和模块化地与三元库进行交互?

0 个答案:

没有答案