我想为我编译的 RDF 模型创建一个轻微的通用查询接口。
我必须访问我的数据:
1-使用内置的耶拿迭代器/状态/资源/等....
2-创建一些 SPARQL
但是为了创建 SPARQL 或 RDQL,我必须调用将我的 SPARQL 变量绑定到 java 变量,因为在我的 SPARQL 中我可以有多种变量,我不知道如何使其通用。
那么使 RDF 查询接口通用化的最佳方法是什么?
我想为我编译的 RDF 模型创建一个轻微的通用查询接口。
我必须访问我的数据:
1-使用内置的耶拿迭代器/状态/资源/等....
2-创建一些 SPARQL
但是为了创建 SPARQL 或 RDQL,我必须调用将我的 SPARQL 变量绑定到 java 变量,因为在我的 SPARQL 中我可以有多种变量,我不知道如何使其通用。
那么使 RDF 查询接口通用化的最佳方法是什么?
使用 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 的巨大优势在于,由于它是一个标准,您可以使用遵循规范的不同三元组存储。