DBpedia SPARQL 查询 ID3 标签的歌曲信息
DBpedia SPARQL query for song information for ID3 tag
我正在尝试正确标记我所有的音乐。我已经通过 musicbrainz picard 和 MediaGo 迭代了我的音乐,但仍然有些歌曲没有标记或部分标记。
我遇到了 DBpedia 和 SPARQL。现在我想问 SPARQL 的查询是,
" 显示 2010-2015 之间的所有音乐专辑,它是专辑艺术家、专辑中的所有标题、类型、发行年份和封面艺术"
起初我尝试了以下查询,但我无法理解它是如何不显示所有专辑的。我搜索了 "Hybrid Theory" 那里没有。
PREFIX dbpedia0: <http://dbpedia.org/ontology/>
SELECT ?album ?album_name WHERE {
?album a dbpedia0:Album .
?album dbpedia2:name ?album_name .
}
我也想稍后搜索 album/film 音乐信息,具体在 Cinema_of_India class.
请指引我正确的方向。
使用 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)
}
我把一些变量放在optional中的原因是,如果DBpedia没有包含这些信息的相册,它仍然会显示。
你下一个查询,也需要遵循同样的逻辑。例如,如果您要查找特定的相册,您可以使用此查询并获取相册的其他限制。
SELECT distinct * WHERE {
?album a dbpedia-owl:Album.
Filter( ?album=dbpedia:Hybrid_Theory)
}
我正在尝试正确标记我所有的音乐。我已经通过 musicbrainz picard 和 MediaGo 迭代了我的音乐,但仍然有些歌曲没有标记或部分标记。 我遇到了 DBpedia 和 SPARQL。现在我想问 SPARQL 的查询是, " 显示 2010-2015 之间的所有音乐专辑,它是专辑艺术家、专辑中的所有标题、类型、发行年份和封面艺术" 起初我尝试了以下查询,但我无法理解它是如何不显示所有专辑的。我搜索了 "Hybrid Theory" 那里没有。
PREFIX dbpedia0: <http://dbpedia.org/ontology/>
SELECT ?album ?album_name WHERE {
?album a dbpedia0:Album .
?album dbpedia2:name ?album_name .
}
我也想稍后搜索 album/film 音乐信息,具体在 Cinema_of_India class.
请指引我正确的方向。
使用 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)
}
我把一些变量放在optional中的原因是,如果DBpedia没有包含这些信息的相册,它仍然会显示。
你下一个查询,也需要遵循同样的逻辑。例如,如果您要查找特定的相册,您可以使用此查询并获取相册的其他限制。
SELECT distinct * WHERE {
?album a dbpedia-owl:Album.
Filter( ?album=dbpedia:Hybrid_Theory)
}