DBpedia SPARQL查询ID3标记的歌曲信息

DBpedia SPARQL查询ID3标记的歌曲信息,sparql,dbpedia,id3,Sparql,Dbpedia,Id3,我正在尝试正确标记我所有的音乐。我已经通过musicbrainz picard和MediaGo重复了我的音乐,但仍然有一些歌曲没有标记或部分标记。 我遇到了DBpedia和SPARQL。现在我想问SPARQL的问题是, “向我展示2010-2015年期间的所有音乐专辑,包括专辑艺术家、专辑中的所有标题、发行年份和封面艺术” 起初,我尝试了以下查询,但我无法理解它为什么没有显示所有的相册。我搜索了“混合理论”,但它并不存在 PREFIX dbpedia0: <http://dbpedia.o

我正在尝试正确标记我所有的音乐。我已经通过musicbrainz picard和MediaGo重复了我的音乐,但仍然有一些歌曲没有标记或部分标记。 我遇到了DBpedia和SPARQL。现在我想问SPARQL的问题是, “向我展示2010-2015年期间的所有音乐专辑,包括专辑艺术家、专辑中的所有标题、发行年份和封面艺术” 起初,我尝试了以下查询,但我无法理解它为什么没有显示所有的相册。我搜索了“混合理论”,但它并不存在

PREFIX dbpedia0: <http://dbpedia.org/ontology/>
SELECT ?album ?album_name WHERE {
?album a dbpedia0:Album .
?album dbpedia2:name ?album_name .
}
前缀dbpedia0:
选择?相册?相册名称,其中{
?相册a:0:相册。
?唱片集DB2:名称?唱片集名称。
}
我还想稍后搜索专辑/电影音乐信息,特别是在印度电影类


请将我引向正确的方向。

使用DBpedia,首先需要定义要提取的实例类型。在此特定示例中,您正在查找相册,因此:

?album a dbpedia-owl:Album .
然后,您需要查找属于此相册的属性。正如您所命名的,您正在寻找:

rdfs:label
dbpedia-owl:artist
dbpedia-owl:genre
dbpedia-owl:releaseDate
dbpprop:title
最后,你想过滤你的专辑名称,只包含英文(或任何你想要的语言)标签。此外,您的发布日期也有限制

SELECT distinct *
WHERE {
    ?album a dbpedia-owl:Album .
    ?album rdfs:label ?albumName.
    ?album dbpedia-owl:artist ?Artist.
Optional{
    ?album dbpedia-owl:genre ?genre.
    ?album dbpedia-owl:releaseDate ?date.
    ?album dbpprop:title ?title.
}
Filter ( 
    lang(?albumName)='en' && 
    xsd:dateTime(?date) >= '2010-01-01T00:00:00Z'^^xsd:dateTime)
}
我将一些变量放在可选项中的原因是,如果有一个相册DBpedia不包含这些信息,它仍然会显示出来

下一个查询也需要遵循相同的逻辑。例如,如果您正在查找特定的相册,则可以使用此查询并获取相册的其他限制

SELECT distinct * WHERE { 
    ?album a dbpedia-owl:Album.
Filter( ?album=dbpedia:Hybrid_Theory)
}

很好的开始!!干净易懂!!感谢您的正确解释。我用
filter(lang(?albumName)='en'和&xsd:dateTime(?date)>='1990-01-01T00:00:00Z'^^xsd:dateTime)}
编辑了过滤器块,以查看专辑混合理论(1999/2000年发布),但我在查询输出中没有找到这张专辑。我浏览了dbpedia.org/page/Hybrid_理论,看到艺术家和标签的存在。我在这里遗漏了什么吗?即使是我也无法通过以下查询看到Hybrid Theory专辑,
SELECT distinct*WHERE{?album a dbpedia owl:album.}
Eventhough在
rdf:type
下有属性
dbpedia owl:Album
,这是否回答了您的问题?您的主要查询解决了我的问题,但我认为可能存在一些问题
dbpedia
,因为它找不到一些(例如混合理论)专辑,即使该专辑存在于
dbpedia
数据库中。即使是对混合_理论的特定查询也会导致空值。所以我不知道问题是出在
dbpedia
还是查询脚本上。如果问题出在
dbpedia
上,我将把这条线索作为答案,然后再问另一个问题。因此,请自己运行脚本以找出问题并分享原因。我不确定您的意思,如果您将
?album=dbpedia:Hybrid_Theory
添加到我编写的主查询的筛选器中,它将找到它。当找不到记录时,我能想到的唯一原因是其中一个主要变量(例如“album”、“albumName”或“Artister”)不存在,因此查询将忽略它们。