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