1

我是 OpenData 的新手,并尝试在 SPARQL 中编写查询。

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

我尝试了以下方法:

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
4

1 回答 1

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

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

于 2017-05-24T17:59:07.700 回答