16. A method for selecting a next song comprising: extracting, by a computing device, song sequence data from a plurality of published recommendation sources based on at least a subset of the contents of a dictionary; generating, by the computing device, a song graph, the song graph comprising a plurality of song nodes, each song node representing a song and at least a subset of the song nodes sharing an edge with at least one other song node, each such edge representing sequence relationships from the extracted song sequence data; and, selecting, by the computing device, a next song to be presented to a listener by: receiving a first song; selecting as an input node the song node corresponding to the received song; selecting a next song node by performing a random walk from the input node to a song node sharing an edge with the input node; and, selecting as the next song the song associated with the selected next song node.
16. A method for selecting a next song comprising: extracting, by a computing device, song sequence data from a plurality of published recommendation sources based on at least a subset of the contents of a dictionary; generating, by the computing device, a song graph, the song graph comprising a plurality of song nodes, each song node representing a song and at least a subset of the song nodes sharing an edge with at least one other song node, each such edge representing sequence relationships from the extracted song sequence data; and, selecting, by the computing device, a next song to be presented to a listener by: receiving a first song; selecting as an input node the song node corresponding to the received song; selecting a next song node by performing a random walk from the input node to a song node sharing an edge with the input node; and, selecting as the next song the song associated with the selected next song node. 17. The method of claim 16 , each song node comprising metadata, each edge comprising a weight, and the random walk comprising a weighted random walk, the weighting provided by the weight of each edge associated with the input node.