You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DBpedia端点SPARQL查询中基于指定releaseDate添加过滤条件的方法

改造方案

你可以通过参数绑定+日期过滤的方式完成需求,同时优化了原查询中GROUP BY包含?releaseDate又对该字段做max聚合的逻辑冲突问题,改造后的查询如下:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct
?song
(replace(?song_label ,"en","","") as ?song_label )
(replace(?album_name_l ,"en","","") as ?album_name_l )
(replace(?artist_l ,"en","","") as ?artist_l )
(max(?releaseDate) as ?releaseDate)
(GROUP_CONCAT( distinct ?genre_l;SEPARATOR=",") AS ?genre_l)
(GROUP_CONCAT(?recordLabel_l;SEPARATOR=",") AS ?recordLabel_l)
where
{
?song a dbo:Single .
?song rdfs:label ?song_label.

?song dbo:album ?album_name.
?album_name rdfs:label ?album_name_l.

?song dbo:artist ?artist.
?artist rdfs:label ?artist_l.

?song dbo:genre ?genre.
?genre rdfs:label ?genre_l.

?song dbo:recordLabel ?recordLabel.
?recordLabel rdfs:label ?recordLabel_l.

?song dbo:releaseDate ?releaseDate.

FILTER(langMatches(lang(?song_label),"en")).
FILTER(langMatches(lang(?album_name_l),"en")).
FILTER(langMatches(lang(?artist_l),"en")).
FILTER(langMatches(lang(?genre_l),"en")).
FILTER(langMatches(lang(?recordLabel_l),"en")).

# 参数配置区,直接修改下方两个值即可
BIND( 'Drake' AS ?target_artist)
BIND( '2010-01-01'^^xsd:date AS ?min_release_date)

FILTER (strstarts(lcase(str(?artist_l)), lcase(str(?target_artist))))
# 日期过滤规则
FILTER (?releaseDate >= ?min_release_date)
}
# 移除了group by中的?releaseDate,匹配max聚合逻辑
group by ?song ?song_label ?album_name_l ?artist_l

使用说明

  • 更换查询艺术家:直接修改?target_artist对应的字符串即可
  • 调整日期过滤阈值:直接修改?min_release_date对应的日期值即可,无需改动其他逻辑
  • 不需要日期过滤时,删除?min_release_date对应的BIND行和日期FILTER行即可

内容的提问来源于stack exchange,提问作者Enrico Collu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:42:01