我有多个资源,例如A, B, C。
我想知道这些资源是否存在于我的数据库中。
这是其中之一的查询示例:
ASK { <http://fkg.iust.ac.ir/resource/A> ?p ?o }
Run Code Online (Sandbox Code Playgroud)
该查询返回true或false。
最好使用一个查询,而我需要获得2列resource&existing。
这是我的示例响应:
---------------------------------------------------
| resource | existing |
|========================|========================|
| :A | true |
|------------------------|------------------------|
| :B | false |
|------------------------|------------------------|
| :C | true |
---------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我知道ASK和UNION,但是如何将它们放在一起作为本示例?
查询:
PREFIX : <http://fkg.iust.ac.ir/resource/>
SELECT ?resource (EXISTS { ?resource ?p ?o } AS ?existing) {
VALUES ?resource { :A :B :C }
}
Run Code Online (Sandbox Code Playgroud)
测试数据:
<http://fkg.iust.ac.ir/resource/A> a _:dummy.
<http://fkg.iust.ac.ir/resource/C> a _:dummy.
Run Code Online (Sandbox Code Playgroud)
结果:
-----------------------
| resource | existing |
=======================
| :A | true |
| :B | false |
| :C | true |
-----------------------
Run Code Online (Sandbox Code Playgroud)
SELECT代替ASKVALUESEXISTS就像一个迷你ASK查询,可以嵌入到表达式中SELECT (expression AS ?variable)表格将mini-的结果绑定ASK到变量?existingASK书面原始查询会检查是否有以该节点为主题的三元组。为了完整起见,可能还需要检查对象的位置:
(EXISTS { ?resource ?p ?o } || EXISTS { ?s ?p ?resource })
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |