以通用方式查询jena中RDF模型的最佳方法是什么? (sparql或使用集合和迭代器)

时间:2012-04-30 12:26:19

标签: java rdf semantic-web jena

我想为我编译的RDF模型创建一个轻微的通用查询接口。

我必须访问我的数据:

1-使用内置的jena itertors / statemetns / resrources / etc ....

2 - 创建一些SPARQL

但是为了创建SPARQL或RDQL,我必须将我的SPARQL变量绑定到java变量,因为在我的SPARQL中,我可以有多种变量,我不知道如何使它变得通用。

那么使RDF查询接口通用的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

使用SPARQL,而不是RDQL。今天的大多数系统都实现了W3C标准的SPARQL。使用SPARQL,就像在SQL中一样,您可以使用*绑定三重模式中出现的所有变量。例如:

SELECT * WHERE {
   ?s a :Person .
   ?s :name ?name .
   ?s :birthdate ?birthdate .
}

大多数SPARQL客户端库允许您获取所有变量。例如,在Jena ARQ中,您会发现QuerySolution有一个方法Iterator<String> varNames(),此方法将返回所有变量名称。您可以遍历这些并使用同一类中的方法get来检索行值。

SPARQL的巨大优势在于,由于它是标准,因此您可以使用遵循规范的不同三元组商店。