如何将类标签显示为类的列名称?

问题描述:

的SPARQL如何将类标签显示为类的列名称?

SELECT ?c0 ?l0 
WHERE 
{ 
    ?c0 rdf:type <XXXX>. 
    OPTIONAL 
    { 
    ?c0 rdfs:label ?l0. 
    } 
} 

示出了两列c0l0。任何方式只显示一列c0,但?l0的内容作为?c0的标题?其结果会是什么样子选择?Co为 ...

+0

如果'?l0'有很多值会发生什么?您编写查询的方式,每个'?c0'可能至少有一个不同的'?l0'值。 – 2014-09-30 07:01:49

+1

可能相关[answers.semanticweb.com上的问题](http://answers.semanticweb.com/questions/15445/how-to-set-the-label-of-a-column-nameheader-as-in-sparql )。 – 2014-09-30 07:26:28

+2

'select?co {?x a 。可选{?x rdfs:label?co}}'?这听起来像你只是想(i)为标签使用不同的变量(简单)和(ii)不选择绑定到事物(易)的变量。这个问题还有别的吗? – 2014-09-30 11:39:32

如果我理解正确的话,你可以用聚结,它返回它的第一个非误差界争论做到这一点。首先,这里的一些数据,其中有一类:狗与标签“狗”,和一类:猫它没有标签:

@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"     | 
----------------------------