SPARQL中如何仅获取BGP查询结果里的IRI/URI?
如何在SPARQL中仅检索BGP结果里的IRI类型值
嘿,这个需求挺常见的,在SPARQL里要筛选出仅为IRI类型的?o结果,只需要用内置的isIRI()函数搭配FILTER子句就行,直接给你改好的查询:
SELECT ?s ?o WHERE { ?s ?p ?o . FILTER(isIRI(?o)) } LIMIT 100
简单解释下:
isIRI(?o)会检查变量?o绑定的值是否是IRI(也就是我们常说的URI,SPARQL标准里用IRI作为更通用的术语),返回布尔值FILTER子句会只保留满足条件的结果,这样最终返回的?o就全是IRI类型了
额外提一句:如果你看到有些老代码用isURI(),其实它和isIRI()在大部分场景下效果一致,但IRI是W3C推荐的标准术语,所以更建议用isIRI()。
要是你还想排除其他类型(比如空白节点、字面量),这个过滤条件已经帮你搞定了——它只会留下符合IRI格式的资源标识符。
内容的提问来源于stack exchange,提问作者Kuzeko
相关产品推荐
相关产品推荐

