如何使用SPARQL在DBPedia中的消歧/查询子资源中捕获正确的资源?

如何使用SPARQL在DBPedia中的消歧/查询子资源中捕获正确的资源?,sparql,rdf,wikipedia,dbpedia,disambiguation,Sparql,Rdf,Wikipedia,Dbpedia,Disambiguation,我有一个Youtube音乐视频的标题,我需要从DBPedia收集其他信息,如专辑、艺术家、发布日期等。我还想从DBPedia获取所有这些实体的“摘要”。我已经使用Musicbrainz在标题中区分了歌曲和艺术家,它的效果相当好,除了少数情况 然而,我的主要问题是:当我把这首歌传递给DBPedia时(使用带有resource/{song}的查询),有时我没有得到答案,因为{song}会导致歧义消除。示例:resource/It's_My_Life有11种消歧方法,其中6种是歌曲。我需要“这是我的生

我有一个Youtube音乐视频的标题,我需要从DBPedia收集其他信息,如专辑、艺术家、发布日期等。我还想从DBPedia获取所有这些实体的“摘要”。我已经使用Musicbrainz在标题中区分了歌曲和艺术家,它的效果相当好,除了少数情况

然而,我的主要问题是:当我把这首歌传递给DBPedia时(使用带有resource/{song}的查询),有时我没有得到答案,因为{song}会导致歧义消除。示例:resource/It's_My_Life有11种消歧方法,其中6种是歌曲。我需要“这是我的生活”(Bon_Jovi_song)的资源。我怎样才能告诉DBPedia我需要某位艺术家的“音乐作品”类型的资源

我用SPARQL尝试了很多方法,但是我总是得到一个空的结果,我不知道我做错了什么。到目前为止,我只能得到每一个消歧的抽象,但是我不能得到消歧子资源的特定属性(比如抽象)

SELECT ?x ?y WHERE {
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates ?x .
    ?x dbo:abstract ?y .
}
选择?x?y,其中{
dbo:WikiPageDismobilizes?x
?x rdfs:类型?y。
}

但结果总是空的。我应该如何询问资源的子资源?有人能帮我吗?

解决方案,摘自@AKSW的评论--

选择?x?y
哪里
{ 

你的第二个查询是空的,因为它是错误的。我不知道你想得到什么,但它不是一个属性。
?x rdf:type dbo:MusicalArtist
会更有意义。但即使如此,为什么它的类型应该是
dbo:MusicalArtist
?它显然只是类型
dbo:MusicalWork
?无论如何,一个工作查询:
SELECT?x?y WHERE{@AKSW是的,我知道这个查询是错误的,但我不知道如何正确地继续。我在那里错误地输入了'dbo:Musicalarist',因为我忘了考虑到并非所有的消歧都是MusicalWork类型。对不起,SPARQL对我来说还是相当混乱,我很抱歉。你的查询很有效,我非常感谢你。我会研究它,这样我就可以了可以更好地理解SPARQL的工作原理。谢谢。很高兴它现在可以工作了。是的,SPARQL有时会让人困惑
SELECT ?x ?y WHERE {
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates ?x .
    ?x dbo:MusicalArtist ?y .
    { SELECT ?z WHERE { 
        ?y dbo:abstract ?z}
    }
}
SELECT ?x ?y WHERE {
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates ?x
    ?x rdfs:type ?y .
}
SELECT ?x ?y 
WHERE
  { 
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates  ?x              . 
    ?x                                          rdf:type                   dbo:MusicalWork . 
    ?x                                          dbo:abstract               ?y              . 
    FILTER ( LANGMATCHES ( LANG (?y), 'en' ) ) 
  }