SPARQL
SELECT ?c0 ?l0
WHERE
{
?c0 rdf:type <XXXX>.
OPTIONAL
{
?c0 rdfs:label ?l0.
}
}
显示两列
c0
和l0
。有什么办法只显示一列c0
,但以?l0
的内容作为?c0
的标题?结果看起来像选择?co as ... 最佳答案
如果我对您的理解正确,则可以使用 coalesce 来执行此操作,该返回其第一个不受错误限制的参数。首先,这是一些数据,其中有一个带有标签“Dog” 的:dog 类和一个没有标签的:cat 类:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix : <http://example.org/> .
:dog a rdfs:Class ;
rdfs:label "Dog" .
:cat a rdfs:Class .
这是查询和结果:
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select (coalesce(?label,?class) as ?co) where {
?class a rdfs:Class
optional {
?class rdfs:label ?label
}
}
----------------------------
| co |
============================
| <http://example.org/cat> |
| "Dog" |
----------------------------