如何使用sparql查询dbpedia.org

如何使用sparql查询dbpedia.org,sparql,opendata,Sparql,Opendata,我是OpenData的新手,尝试用SPARQL编写查询 我的目标是获取以下一组标准的数据: -类别:家庭自动化 -从类型“Thing”中选择所有项目 -“是的产品”中至少有一个条目 -有一个带有德语描述的图片url 我尝试了以下方法: PREFIX cat: <http://dbpedia.org/resource/Category:> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT * WHERE

我是OpenData的新手,尝试用SPARQL编写查询

我的目标是获取以下一组标准的数据: -类别:家庭自动化 -从类型“Thing”中选择所有项目 -“是的产品”中至少有一个条目 -有一个带有德语描述的图片url

我尝试了以下方法:

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
}
有人有一些建议吗

更新:新查询:

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
前缀cat:
前缀rdf:
前缀owl:
前缀rdfs:
选择“s”标签的位置{
标准普尔类别:家庭自动化。
?s rdf:type owl:Thing。
?s rdfs:标签?标签
过滤器(LANG(?label)='de')
}
点菜人

不清楚您想要什么。您必须首先知道dbpedia包含哪些确切的相关信息以及它们的结构

但是,您可以尝试发现涉及哪些类型的关系
cat:Home\u automation
,这样,您就可以更好地了解自己想要什么

我建议从一般查询开始,指定如何在dbpedia中实现
cat:Home\u automation
,然后,您可以更具体地提出进一步的查询

列出三元组的查询,其中
cat:Home\u 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

检查结果,看看你感兴趣的是什么,然后继续进一步询问。

是的,这是我的问题。这是大学的练习,我们团队中没有人知道如何解决这项任务。我已经在上面添加了所需的结果。您的第二个查询看起来很好,我如何过滤?s以便只获得“Thing”类型的条目?谢谢你的帮助。试了几次后,a得到了正确的结果。感谢您以“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
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