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

如何在SPARQL中按url前缀过滤查询结果?,sparql,dbpedia,Sparql,Dbpedia,这是我的疑问 PREFIX dbr: <http://dbpedia.org/resource/> SELECT ?p ?x WHERE { dbr:Australia ?p ?x } 前缀dbr: 选择?p?x 哪里 { dbr:澳大利亚?p?x } 我只需要结果中的URIx和p的格式应为http://dbpedia.org/resource/something和http://dbpedia.org/property/something。请帮我检查一下。会有麻烦的-

这是我的疑问

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

SELECT ?p ?x
WHERE
{ 
  dbr:Australia ?p ?x 
}
前缀dbr:
选择?p?x
哪里
{ 
dbr:澳大利亚?p?x
}
我只需要结果中的URI
x
p
的格式应为
http://dbpedia.org/resource/something
http://dbpedia.org/property/something
。请帮我检查一下。

会有麻烦的--


过滤器(strstarts(str(?p),”http://dbpedia.org/property/)
-类似于
?x
过滤正则表达式(?p,“dbpedia.org/property”)过滤正则表达式(?x,“dbpedia.org/resource”)
非常感谢@TallTed
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
PREFIX dbr: <http://dbpedia.org/resource/>

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