如何按属性类型值查询dbpedia,

时间:2014-12-23 01:15:28

标签: rdf sparql semantic-web dbpedia

我正在尝试编写SPARQL查询以检索链接到Wikipedia上的邻域的所有页面。一个例子是 http://live.dbpedia.org/page/Carter_Crest,_Edmonton 。属性类型为 http://dbpedia.org/property/settlementType ,其中 settlementType 应为“邻居”,其他选项为模板:infobox_settlement 即可。到目前为止,我已尝试过以下内容:

SELECT ?property ?hasValue ?isValueOf
WHERE {
  { <http://dbpedia.org/ontology/Settlement> ?property ?hasValue }
  UNION
  { ?isValueOf ?property <http://dbpedia.org/ontology/Settlement> }
}

SELECT ?class ?label
WHERE {
  ?class rdf:type owl:Place.
  ?class rdfs:label ?label. 
  FILTER(lang(?label) = "Neighbourhood")
}

1 个答案:

答案 0 :(得分:1)

<http://dbpedia.org/ontology/Settlement>类型 Settlement的IRI。任何特定的解决方案,例如Carter Crest,Edmonton,都是该类型的实例

写作

<http://dbpedia.org/ontology/Settlement> ?property ?hasValue

您要查找链接到类型 Settlement的属性,而不是它的任何实例。您要查找的是与Settlement类型的任意对象链接的任何属性:

?someObject ?property ?hasValue.
?someObject a <http://dbpedia.org/ontology/Settlement>.

在您的第二个查询中,您当前正在检索的是owl:Place类型的任何实例,其文本描述等于Neighbourhood(这听起来像一个类型,而不是特定的东西)。

但是,您可能希望检索类型的标签等于Neighbourhood的实例。 (实际上,你可能实际上并不想这样做;那就是猜测标记为Neighbourhood的类型就是你想要的。如果你知道的话具体类型IRI,如上所述搜索。)