如何形成dbPedia iSPARQL查询(对于维基百科内容)

时间:2013-05-23 18:11:28

标签: sparql wikipedia dbpedia wikipedia-api

说我需要从维基百科中获取有关所有山脉的内容。我的目标是显示初始段落和相应文章中的图像(例如Monte RosaVincent Pyramid

我开始了解dbpedia,并且通过一些研究发现它直接向wiki数据库提供实时查询。

我有两个问题:

1 - 我发现如何制定查询很困难。我不能玩iSPARQL。我尝试了以下查询,但它抛出错误说无效的xml。

SELECT DISTINCT ?Mountain FROM <http://dbpedia.org> WHERE {
  [] rdf:type ?Mountain 
}

2 - 我的要求是仅显示至少有1张图像的山脉(我也需要显示此图像)。现在我上面列出的那些有图像,但我怎么能确定?另外,看看这两个例子,我看到许多字段在维基文章中有所不同 - 因此对于将来的扩展,可能很难获取它们。

我只想拒绝那些没有足够数据或描述的人。

如何根据存在的图片过滤掉山脉?

更新

我更正的查询,解决了我的第一个问题:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT ?name ?description
WHERE {
?name rdf:type <http://dbpedia.org/ontology/Mountain>;
dbpedia-owl:abstract ?description .
}

1 个答案:

答案 0 :(得分:3)

您还可以使用SPARQL endpoint查询dbpedia(比iSPARQL更不像花哨)。要了解有关要编写的查询的更多信息,请查看DBpedia's datasets page。这里的例子展示了如何根据维基百科类别选择页面。要选择Wikipedia Mountains category中的资源,您可以使用以下查询:

select ?mountain where {
  ?mountain a dbpedia-owl:Mountain .
}

SPARQL Results

掌握了这些链接之后,您可以在Web浏览器中查看它们并查看与它们相关的数据。例如,Mount Everest的页面显示了许多属性。要将结果限制为具有图像的页面,您可能会对dbpedia-owl:thumbnail属性感兴趣,或者可能更好foaf:depiction。对于介绍性段落,您可能需要类似dbpedia-owl:abstract的内容。使用这些,我们可以从以前增强查询。以下查询使用抽象和描述在Stratovolcanoes类别中查找事物。由于StackOverflow是一个英语网站,我将这些摘要限制为英文版。

select * where {
  ?mountain a dbpedia-owl:Mountain ;
            dbpedia-owl:abstract ?abstract ;
            foaf:depiction ?depiction .
  FILTER(langMatches(lang(?abstract),"EN"))
}
LIMIT 10

SPARQL Results