Wolfram 语言

构建探戈资源管理器 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" 的歌曲,添加一个列,使您可以在浏览器中打开歌曲。

相关范例

de en es fr ja ko pt-br