我想为我编译的RDF模型创建一个轻微的通用查询接口。
我必须访问我的数据:
1-使用内置的jena itertors / statemetns / resrources / etc ....
2 - 创建一些SPARQL
但是为了创建SPARQL或RDQL,我必须将我的SPARQL变量绑定到java变量,因为在我的SPARQL中,我可以有多种变量,我不知道如何使它变得通用。
那么使RDF查询接口通用的最佳方法是什么?
答案 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的巨大优势在于,由于它是标准,因此您可以使用遵循规范的不同三元组商店。