我正在尝试编写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")
}
答案 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,如上所述搜索。)