如何使用sparql查询dbpedia.org

时间:2017-05-24 14:19:51

标签: sparql opendata

我在OpenData中非常新,并尝试在SPARQL中编写查询。

我的目标是获取以下一组标准的数据:   - 类别:Home_automation   - 从类型" Thing"中选择所有项目   - "中至少有一个条目是"的产品。   - 有一个带有德语描述的图片网址

我尝试了以下内容:

PREFIX cat:  <http://dbpedia.org/resource/Category:>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT *
WHERE {
  cat:Home_automation skos:broader ?x
}

但现在我不知道如何将其他过滤器添加到where子句中。 我试图用更广泛的用户:...来获取物品,但我认为这是错误的方向。

我用https://dbpedia.org/sparql

测试了查询

结果应为:

|         (label)          | (url) 
|--------------------------|-----------------------------------
|"Kurzzeitwecker"@de       | urls to the picture of the device 
|"Staubsauger"@de          | -||-
|"Waschmaschine"@de        | -||-
|"Geschirrspülmaschine"@de | -||-

有人有一些提示吗?

更新:新查询:

PREFIX cat: <http://dbpedia.org/resource/Category:>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?s ?label WHERE {
  ?s ?p cat:Home_automation .
  ?s rdf:type owl:Thing .
  ?s rdfs:label ?label
  FILTER (LANG(?label)='de')
}
order by ?p

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你想要什么。您必须首先了解dbpedia包含的确切相关信息以及它们的结构。

但是,您可以尝试发现所涉及的cat:Home_automation类型的关系,因此,您可能更清楚地了解自己想要的内容。

我建议从通用查询开始,指定cat:Home_automation在dbpedia中的发生方式,然后,您可能会更具体,并提出进一步的查询。

一个查询,列出cat:Home_automation为主题的三元组:

PREFIX cat:  <http://dbpedia.org/resource/Category:>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?p ?o WHERE {
   cat:Home_automation ?p ?o  
}
order by ?p

用于列出cat:Home_automation为对象的三元组的查询:

PREFIX cat:  <http://dbpedia.org/resource/Category:>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?s ?p WHERE {
   ?s ?p cat:Home_automation 
}
order by ?p

检查结果,查看您感兴趣的内容,然后继续进一步查询。