我正在语义网中做项目,我使用 SPARQL 来查询 rdf 数据。我在netbeans中使用java,我的问题是我的程序运行,输入rdf文件并且执行查询,但是不考虑查询的WHERE区域。 (即)我得到一个空表作为输出
您能否告诉我有关JAVA中的SPARQL语法从rdf文件中检索所有姓名、电话号码的任何建议
最佳答案
“不考虑我的查询的 WHERE 区域。(即,我得到一个空表作为输出”
我怀疑没有考虑 WHERE
子句。空表表明 a) 您没有数据或 b) 您的查询没有匹配项。
检索所有姓名和电话号码取决于所使用的词汇,但迄今为止最常见的是 foaf :
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name, ?number
WHERE
{
?person foaf:name ?name .
?person foaf:phone ?number .
}
我们需要更多信息,因此这里有一些通用建议:
- 尝试
SELECT * WHERE { ?s ?p ?o }
。这样有结果吗?如果没有,请尝试... - 尝试
SELECT * WHERE { graph ?g { ?s ?p ?o } }
。这样有结果吗?
如果两者都不起作用,您的数据可能有问题。如果只有第二个得到结果,则说明您正在查询图表。
这将使您对以任何方式加载的内容有一个很好的了解。如果看起来不错:
- 删除
WHERE
子句中的一个元素。 - 如果仍然没有结果,请转到 1。
- 如果您得到结果,则表明您的查询存在问题。
您还可以尝试用变量替换术语。以这种方式工作可能有助于追踪哪些元素导致查询失败。
关于java - 如何使用java通过sparql搜索rdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7246099/