构建探戈资源管理器 Tango Explorer
Wikidata 中存储了多种主题的相关信息,包括音乐在内。它提供了一个 SPARQL 端点来查询该数据。
用 SPARQL 获取有关探戈歌曲的信息,构建一个可供查询的 Dataset。
加载 GraphStore,引入用于处理 Wikidata vocabulary 的工具。
引入各种定义相关实体("tango" 下列出的歌曲)的子查询,及要获取的数据(作曲家,作词家,音频)。
将各个查询组合在一起,将可能不存在的部分标记为可选(例如,并非所有歌曲都有歌词)。
一首歌可能有多个作曲家、作词人或录音,这意味着同一首歌曲可能出现在多个行中,各有不同的作曲家、作词人或音频。使用聚合 (SPARQLAggregate) 通过以下方式汇聚结果:按 "song" 或 "audio" 分组,这意味着大多数情况下每首歌曲有一条结果,但如果每首歌曲有多个音频样例,则将它们单独列出。用 group_concat 聚合函数将作曲家和作词者组合在一起,用 ";" 作为分隔符。
编写带有聚合函数的查询并执行。
制作一个 Dataset (去掉 RDFString 封装,语言标签是无用的)。
Dataset 有丰富的查询语言。当应用于一系列参数时,每个参数都被视为应用于相应级别的“查询运算符”。在第一个例子中,在第一级 (All),“什么都不做”,然后在第二级提取 "songLabel" 和 "composers"。
Select "composers" 含有 Gardel 的行,然后显示 "songLabel" 和 "lyricists"。
查找有一条 "audio" 的歌曲,添加一个列,使您可以在浏览器中打开歌曲。