我在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
答案 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
检查结果,查看您感兴趣的内容,然后继续进一步查询。