sparql如何计算变量对

时间:2016-07-06 13:09:28

标签: sparql

我有以下查询来获取类的实例及其标签/名称。我想算一下有多少总结果。但是,我不知道如何制定count声明。

select ?s ?l {
   ?s a <http://dbpedia.org/ontology/Ship> . 
   {?s <http://www.w3.org/2000/01/rdf-schema#label> ?l}
   union
   {?s <http://xmlns.com/foaf/0.1/name> ?l} 
}

我试过了

select ?s ?l (count (?s) as ?count) {
   ?s a <http://dbpedia.org/ontology/Ship> . 
   {?s <http://www.w3.org/2000/01/rdf-schema#label> ?l}
   union 
   {?s <http://xmlns.com/foaf/0.1/name> ?l} 
}

但是这给了每个对的计数,而我需要知道有多少对?或者我可能根本不应该使用count?如上所述,我需要知道的是查询返回的总结果数(无论服务器的硬限制如何,例如,DBPedia为每个查询返回最多50000个结果)。

有什么建议吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

要计算匹配数,请使用

SELECT (COUNT(*) AS ?count)
WHERE {
   ?s <http://www.w3.org/2000/01/rdf-schema#label> | <http://xmlns.com/foaf/0.1/name> ?l .
}

注意我使用属性路径&#34;或&#34; (|)获得属性的并集。