SPARQL
SELECT ?c0 ?l0
WHERE
{
?c0 rdf:type <XXXX>.
OPTIONAL
{
?c0 rdfs:label ?l0.
}
}
显示两列c0
和l0
。是否只能显示一列c0
,但?l0
的内容是?c0
的标题?结果看起来像 select?co ...
答案 0 :(得分:3)
如果我理解正确,您可以使用 coalesce 执行此操作,这将返回其第一个非错误绑定参数。首先,这里有一些数据,其中有一个:dog ,标签为&#34; Dog&#34; ,一个类 :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" |
----------------------------