sparql - 如何使用 SPARQL 在 DBPedia 中的消歧/询问子资源中捕获正确的资源?
问题描述
我有一个 Youtube 音乐视频的标题,我需要从 DBPedia 收集其他信息,如专辑、艺术家、发布日期等。我还想从 DBPedia 获取所有这些实体的“摘要”。我已经使用 Musicbrainz 来区分标题中的歌曲和艺术家,并且效果很好,除了少数情况。
但是我的主要问题是:当我通过歌曲询问 DBPedia(使用资源/{song} 查询)时,有时我没有得到任何答案,因为 {song} 会导致歧义。示例:resource/It's_My_Life 有 11 个消歧,其中 6 个是歌曲。我需要资源“It's_My_Life_(Bon_Jovi_song)”。我如何告诉 DBPedia 我需要某个艺术家的“MusicalWork”类型的资源?
我尝试了很多方法来使用 SPARQL 做到这一点,但我总是得到一个空的结果,我不知道我做错了什么。到目前为止,我只能获得每个消歧的摘要,但我无法获得消歧子资源的特定属性(如摘要)。
SELECT ?x ?y WHERE {
<http://dbpedia.org/resource/It's_My_Life> dbo:wikiPageDisambiguates ?x .
?x dbo:abstract ?y .
}
我似乎不能去父亲比这。我试过:
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 .
}
但结果总是空的。我应该如何询问资源的子资源?谁能帮我?
解决方案
解决方案,来自@AKSW 的评论——
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' ) )
}
推荐阅读
- xcode - React Native 中的 RCTImage 问题
- kotlin - 如何在 Kotlin 中有效地创建具有一定长度和相同值的字符串
- python - 连接来自 2 个列表的 n 位置的字符串
- assembly - 寄存器和汇编语言
- javascript - onmouseover 不能使用绝对位置
- python - Python - DM 一个用户 Discord Bot
- php - WordPress:在两个菜单项之间插入字符
- html - 为什么 href 链接没有重定向到正确的目标?
- html - bootstrap 4 混合可折叠和不可折叠的导航元素
- javascript - 调用时间密集型函数后,单击事件在 Firefox 移动设备上停止工作