如何为DBpedia创建一个小型SPARQL查询?

如何为DBpedia创建一个小型SPARQL查询?,sparql,dbpedia,Sparql,Dbpedia,我是SPARQL的初学者,我想知道如何从DBpedia在SPARQL中创建这个小查询: 问题是:获取事物的主题(人名、组织…) 选择不同的职业{ 职业猫头鹰:职业 } 所以我创建这个查询是为了得到麦当娜的职业,对吗?在这种情况下,麦当娜,但它可能是其他任何东西 我尝试了这个查询,但我认为这是错误的: SELECT DISTINCT ?occupation WHERE { ?s <http://www.w3.org/2000/01/rdf-schema#label> 'Ma

我是SPARQL的初学者,我想知道如何从DBpedia在SPARQL中创建这个小查询:

问题是:获取事物的主题(人名、组织…)

选择不同的职业{
职业猫头鹰:职业
} 
所以我创建这个查询是为了得到麦当娜的职业,对吗?在这种情况下,麦当娜,但它可能是其他任何东西

我尝试了这个查询,但我认为这是错误的:

SELECT DISTINCT  ?occupation WHERE { 
  ?s <http://www.w3.org/2000/01/rdf-schema#label> 'Madonna'@en .
  ?s dbpedia-owl:occupation ?occupation
}
选择不同的职业,其中{
“麦当娜”@en。
?s dbpedia猫头鹰:职业?职业
}
我也试过了,我认为这是正确的:

PREFIX res: <http://dbpedia.org/resource/>
SELECT DISTINCT ?string 
WHERE {
  res:Tom_Cruise dbpprop:occupation ?string .
}
前缀res:
选择不同的字符串
在哪里{
res:Tom_Cruise dbpprop:职业?字符串。
}

它适用于
Tom_Cruise
,但不适用于
Madonna
barack_Obama

像您这样的查询是一个好的开始:

PREFIX res: <http://dbpedia.org/resource/>
SELECT DISTINCT ?string 
WHERE {
  res:Tom_Cruise dbpprop:occupation ?string .
}

现在,你提到了

例如,它适用于汤姆克鲁斯,但不适用于麦当娜或巴拉克奥巴马

DBpedia中的所有数据都公开供您浏览。如果您想了解为什么没有关于
Madonna
的结果,请注意
dbpedia:Madonna
是浏览器中该页面的简写。从该页面上列出的属性中,您将看到它是一个重定向页面(实际上,如果您转到相应的Wikipedia文章,您将看到相同的内容)。你想要IRI。不幸的是,由于括号的原因,您不能直接在SPARQL查询中编写,因此必须编写

select distinct ?string where {
  <http://dbpedia.org/resource/Madonna_(entertainer)> dbpprop:occupation ?string .
}

关于StackOverflow,这里已经有很多例子了。例如,如果您搜索,您将发现236个标记的问题。要了解您感兴趣的事物类型的数据类型,请访问DBpedia页面获取该事物,例如,您将看到可用的数据类型。我已经编写了我希望DBpedia返回的事物。事实上,我需要一个话题。这件事可能是人、组织。。。它通常是一个命名实体。因此,用户可以编写一个麦当娜的例子,因此我必须创建一个查询,返回dbpedia中麦当娜的主题,即“艺术家”。麦当娜的数据可以在上看到。你的意思是你想要dcterms:subject属性的值(虽然有一堆,但没有一个是简单的“艺术家”)还是rdf:type属性的值(同样,有一堆,但dbpedia owl:Artist是其中一个值)?在这个问题中,你还要求“人名,组织”,这不是真正的“事物的主题”。看看我在前面的评论中提到的麦当娜页面。如果您可以准确地选择要从查询中获取的信息(但请通过更新问题,而不是在评论中回复),那么问题将更加清晰,提供有效答案也会更加容易。是否有任何解决方案使其自动化?我的意思是我如何知道我是否必须使用麦当娜或麦当娜(艺人)?知道麦当娜的页面存在:我如何通过sparql查询做到这一点?
select distinct ?string where {
  dbpedia:Tom_Cruise dbpprop:occupation ?string .
}
select distinct ?string where {
  <http://dbpedia.org/resource/Madonna_(entertainer)> dbpprop:occupation ?string .
}
select distinct ?string where {
  dbpedia:Barack_Obama (dbpedia-owl:office|dbpedia-owl:profession) ?string .
}