如何为DBpedia创建一个小型SPARQL查询?
我是SPARQL的初学者,我想知道如何从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
选择不同的职业{
职业猫头鹰:职业
}
所以我创建这个查询是为了得到麦当娜的职业,对吗?在这种情况下,麦当娜,但它可能是其他任何东西
我尝试了这个查询,但我认为这是错误的:
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 .
}