java - 如何使用java通过sparql搜索rdf?

标签 java rdf sparql

我正在语义网中做项目,我使用 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 .
}

我们需要更多信息,因此这里有一些通用建议:

  1. 尝试 SELECT * WHERE { ?s ?p ?o }。这样有结果吗?如果没有,请尝试...
  2. 尝试 SELECT * WHERE { graph ?g { ?s ?p ?o } }。这样有结果吗?

如果两者都不起作用,您的数据可能有问题。如果只有第二个得到结果,则说明您正在查询图表。

这将使您对以任何方式加载的内容有一个很好的了解。如果看起来不错:

  1. 删除 WHERE 子句中的一个元素。
  2. 如果仍然没有结果,请转到 1。
  3. 如果您得到结果,则表明您的查询存在问题。

您还可以尝试用变量替换术语。以这种方式工作可能有助于追踪哪些元素导致查询失败。

关于java - 如何使用java通过sparql搜索rdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7246099/

相关文章:

java - 通过 Jena 启用 SPARQL 请求的推理?

java - 如何保留N个最高值?

java.lang.NoClassDefFoundError : com/google/common/base/internal/Finalizer$ShutDown (wrong name: com/google/common/base/internal/Finalizer)

rdf - DatatypeProperty、ObjectProperty 和 FunctionalProperty 之间有什么区别,我应该在什么时候使用它们?

graph - 如何通过终端下载freebase dump?

Sparql - 按字母顺序排序的问题

java - 不能在 Java 中使用多个 Scanner 对象

Java 使用正则表达式

java - 如何将 gzipped rdf 文件加载到 rdf4j 存储库?

SPARQL 中的 boolean 检查,检查语句是否存在