通过 SPARQL 查询检查多个资源是否存在
Check multiple resources exist or not via SPARQL query
我有多个资源,例如 A, B, C
。
我想知道这些资源是否存在于我的数据库中。
以下是其中一个的查询示例:
ASK { <http://fkg.iust.ac.ir/resource/A> ?p ?o }
这个查询 returns true
或 false
.
最好使用一个查询,我需要得到2列,resource
& existing
。
这是我的示例回复:
---------------------------------------------------
| resource | existing |
|========================|========================|
| :A | true |
|------------------------|------------------------|
| :B | false |
|------------------------|------------------------|
| :C | true |
---------------------------------------------------
我知道 ASK
和 UNION
,但我怎样才能将它们放在一起用于此示例?
查询:
PREFIX : <http://fkg.iust.ac.ir/resource/>
SELECT ?resource (EXISTS { ?resource ?p ?o } AS ?existing) {
VALUES ?resource { :A :B :C }
}
测试数据:
<http://fkg.iust.ac.ir/resource/A> a _:dummy.
<http://fkg.iust.ac.ir/resource/C> a _:dummy.
结果:
-----------------------
| resource | existing |
=======================
| :A | true |
| :B | false |
| :C | true |
-----------------------
- 要获得表格结果,请使用
SELECT
而不是 ASK
- 要获取已知资源列表的多个解决方案,请使用
VALUES
EXISTS
就像一个迷你 ASK
查询,可以嵌入表达式
- 使用
SELECT (expression AS ?variable)
形式将mini-ASK
的结果绑定到变量?existing
- 警告:答案取决于您所说的“资源存在”是什么意思。在 RDF 图中,节点不会显式地创建和删除,但它们的存在仅仅是因为在三元组中被使用。编写的原始
ASK
查询检查是否存在任何以该节点为主题的三元组。为了完整起见,可能还需要检查对象位置:
(EXISTS { ?resource ?p ?o } || EXISTS { ?s ?p ?resource })
我有多个资源,例如 A, B, C
。
我想知道这些资源是否存在于我的数据库中。
以下是其中一个的查询示例:
ASK { <http://fkg.iust.ac.ir/resource/A> ?p ?o }
这个查询 returns true
或 false
.
最好使用一个查询,我需要得到2列,resource
& existing
。
这是我的示例回复:
---------------------------------------------------
| resource | existing |
|========================|========================|
| :A | true |
|------------------------|------------------------|
| :B | false |
|------------------------|------------------------|
| :C | true |
---------------------------------------------------
我知道 ASK
和 UNION
,但我怎样才能将它们放在一起用于此示例?
查询:
PREFIX : <http://fkg.iust.ac.ir/resource/>
SELECT ?resource (EXISTS { ?resource ?p ?o } AS ?existing) {
VALUES ?resource { :A :B :C }
}
测试数据:
<http://fkg.iust.ac.ir/resource/A> a _:dummy.
<http://fkg.iust.ac.ir/resource/C> a _:dummy.
结果:
-----------------------
| resource | existing |
=======================
| :A | true |
| :B | false |
| :C | true |
-----------------------
- 要获得表格结果,请使用
SELECT
而不是ASK
- 要获取已知资源列表的多个解决方案,请使用
VALUES
EXISTS
就像一个迷你ASK
查询,可以嵌入表达式- 使用
SELECT (expression AS ?variable)
形式将mini-ASK
的结果绑定到变量?existing
- 警告:答案取决于您所说的“资源存在”是什么意思。在 RDF 图中,节点不会显式地创建和删除,但它们的存在仅仅是因为在三元组中被使用。编写的原始
ASK
查询检查是否存在任何以该节点为主题的三元组。为了完整起见,可能还需要检查对象位置:(EXISTS { ?resource ?p ?o } || EXISTS { ?s ?p ?resource })