询问 SPARQL 资源是否存在

Pet*_*ter 5 sparql dbpedia

检查 SPARQL 资源是否存在的好方法是什么?我正在寻找相当于触发 HTTP GET 请求以http://dbpedia.org/resource/Game_of_Thrones检查 HTTP 状态代码,但我想用 SPARQL 查询来做。

我想过这样的事情:

ASK {<http://dbpedia.org/resource/Game_of_Thrones> a <http://dbpedia.org/resource/>} 
Run Code Online (Sandbox Code Playgroud)

我确定有一个很好的方法可以做到这一点,但我找不到。

注意:我不想检查特定三元组的存在。我只想知道资源是否存在。

Sta*_*lin 5

SPARQL 是一种 RDF 查询语言。RDF 三元组由主语、谓语和宾语组成。

您只需要检查 URI 是否存在于这些位置中的任何一个,使用UNIONas 分离。

ASK {
    VALUES (?r) { (dbr:Game_of_Thrones) }
        { ?r ?p ?o }
        UNION
        { ?s ?r ?o }
        UNION
        { ?s ?p ?r }
    } 
Run Code Online (Sandbox Code Playgroud)

虽然SPARQL规范不会允许[]在谓语位置,DBpedia的(即,服务DBpedia的端点炫技服务器)明白这一点:

ASK {
    VALUES (?r) { (dbr:Game_of_Thrones) }
        { ?r [] [] }
        UNION
        { [] ?r [] }
        UNION
        { [] [] ?r }
    } 
Run Code Online (Sandbox Code Playgroud)

  • PS 严格来说,URI 也可以是命名图 URI…… (2认同)