无法在DBPedia上执行特定的SPARQL查询:/

Sae*_*aew 2 sparql dbpedia

例如,在此站点上,执行第一个SPARQL查询并创建非常相似的内容:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX p: <http://dbpedia.org/property/>
SELECT *
WHERE {
    ?name p:name <http://dbpedia.org/resource/Olivier_Theyskens> .
}
Run Code Online (Sandbox Code Playgroud)

尝试执行它:这里

我没有结果.但是,请将查询修改为以下内容:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX p: <http://dbpedia.org/property/>
SELECT *
WHERE {
    ?name p:name ?otherthing.
}
Run Code Online (Sandbox Code Playgroud)

我得到了结果,即使它们不是我想要的结果.

为什么第一个查询不起作用 - 我做错了什么?:/

Tal*_*Ted 6

在这种情况下,我认为这是因为您向后订购了查询语句.

DBpedia资源(<http://dbpedia.org/resource/Olivier_Theyskens>)是EntitySubject(?s),property(p:name)是AttributePredicate(?p),该property(?name)的值是Value或Object(?o).

SPARQL期望所有语句都是{ ?s ?p ?o },但是你的语句似乎写成{ ?o ?p ?s }......

总结一下,如果你试试这个查询 -

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX p: <http://dbpedia.org/property/>
SELECT *
WHERE 
  {
    <http://dbpedia.org/resource/Olivier_Theyskens>  p:name  ?name  .
  }
Run Code Online (Sandbox Code Playgroud)

- 你会得到我认为你想要的结果.