【问题标题】:Manipulating RDF in Jena在耶拿操作 RDF
【发布时间】:2011-12-02 22:48:49
【问题描述】:
目前,我发现在从文件加载模型后,我可以在 rdf 中使用 Jena 中的模型(模型)语法进行查询,如果我应用 sparql 查询,它会给我相同的输出。所以,我想知道,没有 sparql 是不是一个好方法?虽然我已经用一个小的 rdf 文件对其进行了测试。我也想知道如果我使用 Virtuoso 我可以在没有 sparql 的情况下使用模型语法进行操作吗?
提前致谢。
【问题讨论】:
标签:
semantics
rdf
sparql
jena
virtuoso
【解决方案1】:
我不太确定我是否理解您的问题。如果我可以解释一下,我想你是在问:
是否可以使用 Jena Model API 而不是使用
SPARQL?如果后端商店是 Virtuoso 有区别吗?
假设这是对问题的正确表述,那么第一部分肯定是肯定的:您可以通过 Model 和 OntModel API 操作 RDF 数据。事实上,我想说这就是大多数 Jena 用户所做的事情,尤其是对于小型查询或更新。我个人发现直接使用 API 会更简洁,直到复杂程度达到一定程度。之后,如果我用 SPARQL 表达查询,我的代码会更清晰、更简洁。显然,情况会产生影响:如果您同时使用本地存储和远程 SPARQL 端点(发送查询字符串是您唯一的选择),那么您可能会发现始终使用 SPARQL 的一致性使您的代码更清晰。
关于 Virtuoso,我没有任何直接的经验可以提供。据我所知,Virtuoso Jena Provider 使用 Virtuoso 存储作为存储层完全实现了Model API 的功能。直接 API 或使用 SPARQL 查询是否会给您带来性能优势,您应该根据您的数据和典型查询模式进行基准测试。