2011-06-03 70 views
3

我遇到了DBpedia SPARQL端点的问题,因为诸如标签rdf:type之类的属性属性没有储存在端点中。所以当我运行这个查询时:DBpedia SPARQL和谓词连接

SELECT * 
WHERE{ 
    <http://dbpedia.org/ontology/Place> ?predicat ?object . 
    OPTIONAL{?predicat rdfs:label ?label} 
} 

我对标签没有任何要求。

如果有人有任何想法解决这个问题,这将是非常有益的。

+0

你真的想获得一个类的属性的标签吗?如果您在示例中尊重谓词URL,就可以找到它们,例如[link](http://www.w3.org/2000/01/rdf-schema#label),但它们不是很有趣。 rdf-schema#标签的标签是“label”,例如... – 2011-06-04 00:54:14

+0

是的,这是我想要的 – cyr 2011-06-06 11:59:25

+0

@glennmcdonald:我不同意谓语标签并不有趣的说法,特别是它们不那么有趣比任何其他标签。毕竟,人们可能会争辩说,标签通常并不像英语标签[http://dbpedia.org/ontology/Town'](http://dbpedia.org/ontology/Town)(不是谓词)简直就是*镇*。另一方面,用作谓词的['http://dbpedia.org/ontology/wikiPageExternalLink'](http://dbpedia.org/ontology/wikiPageExternalLink)'的标签是相当丰富的*链接从Wikipage到外部页面*。 – 2013-11-13 14:53:53

回答

2

因为SPARQL端点没有它们,所以无法从DBpedia获取真实标签。但是你可以使用属性URI的本地名称。所以,对于rdfs:subClassOf你会得到“subClassOf”。这比没有好。这可以使用Virtuoso(非标准)bif:regexp_replace函数完成。

SELECT DISTINCT (bif:regexp_replace(STR(?p), "^.*[/#]", "") AS ?label) WHERE { 
    <http://dbpedia.org/ontology/Place> ?p ?o . 
} 
0

我不认为有SPARQL解决方案。 Dbpedia没有你想要的数据,并且我无法在W3C找到该RDF的SPARQL端点。我不认为Virtuoso dbpedia端点支持联合,即使我们确实找到了W3C的SPARQL端点。

很高兴在任何这些问题上被证明是错误的。