3

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

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

我什么都没有?标签。

如果有人有任何想法来解决这个问题,那将非常有帮助。

4

2 回答 2

2

您无法从 DBpedia 获得真正的标签,因为 SPARQL 端点没有它们。但是您可以使用属性 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 .
}
于 2011-06-09T10:07:33.090 回答
0

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

很高兴在这些方面被证明是错误的。

于 2011-06-08T16:29:25.890 回答