如何在SPARQL中按url前缀过滤查询结果?

时间:2019-07-06 11:02:03

标签: sparql dbpedia

这是我的查询

PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?p ?x
WHERE
{ 
  dbr:Australia ?p ?x 
}

结果中只需要URI。 xp的格式应为http://dbpedia.org/resource/somethinghttp://dbpedia.org/property/something。请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:0)

This将获得what you're asking for-

PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?p ?x
WHERE
{ 
  dbr:Australia ?p ?x 
  FILTER ( STRSTARTS ( STR ( ?p ), "http://dbpedia.org/property/" ) )
  FILTER ( STRSTARTS ( STR ( ?x ), "http://dbpedia.org/resource/" ) )
}
ORDER BY ?p ?x

results中的the following可能会更好,尽管它并没有将所有URI限制为您想要的两个前缀。请注意,DBpedia数据集的下一次更新(现在在the DBpedia-Live endpoint上部分可见)将更改许多数据,并且http://dbpedia.org/property/将不再是澳大利亚大多数属性/谓词的前缀-

PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?p ?x
WHERE
{ 
  dbr:Australia ?p ?x 
  FILTER ( ISURI ( ?p ) )
  FILTER ( ISURI ( ?x ) )
}
ORDER BY ?p ?x