2009-01-19 98 views
8

當談到按流派對音樂進行分類時,我發現維基百科擁有比大多數其他數據源更有趣的流派信息。從維基百科檢索音樂藝術家數據?

我似乎記得一個數據庫,它收集了維基百科的這類信息,並使它更容易訪問,但我今天無法谷歌任何東西。

如果我試圖檢索這些數據,我有什麼選擇?有沒有像我描述的或我需要去屏幕抓取?

回答

2

我發現了當我發佈我的問題時我在想什麼。 Infochimps保留來自維基百科的信息框的集合,例如音樂藝術家的this one。這不是我想要的,因爲它只能作爲下載。

在我看的時候,我發現如何訪問XML format中的文章,使用unrendered wiki標記。顯然,它在維基百科服務器上更容易,但我不確定是否更容易解析。

11

您應該看看Freebase(請參閱,例如,其musical artists table)。如果你選擇維基百科,那麼你應該下載一個database dump

實施例比較遊離鹼和Wikipedia的體裁列表用於頻帶Radiohead的:

  • Freebase:另類搖滾,藝術搖滾,電子音樂,漸進搖滾,電子,和實驗岩石。
  • Wikipedia:替代搖滾,電子和實驗搖滾。

編輯:更重要的是,我已經包括使用MJT,JavaScript框架設計中游離鹼的工作示例。將其複製粘貼到文件中,使用瀏覽器打開,輸入藝術家的名字,然後查看Freebase爲他們製作的類型。

不太重要,我已將示例和默認值更改爲Radiohead。 =)

<html> 
<head> 
    <script type="text/javascript" src="http://mjtemplate.org/dist/mjt-0.6/mjt.js"></script> 
</head> 
<body onload="mjt.run()"> 
<pre mjt.script=""> 
var name = mjt.urlquery.name ? mjt.urlquery.name : 'Radiohead'; 
</pre> 
<div mjt.task="q"> 
mjt.freebase.MqlRead([{ 
    type: '/music/artist', 
    name: { 
    value:name, 
    lang:{name:{value:'English'}} 
    }, 
    genre: [{ 
    name: { 
     value:null, 
     lang:{name:{value:'English'}}} 
    }] 
}]) 
</div> 

<form method="get" action=""> 
<input type="text" name="name" value="$name" /> 
<input type="submit" value="search" /> 
</form> 

<table mjt.for="topic in q.result"> 
    <tr mjt.for="(var rowi = 0; rowi &lt; topic.genre.length; rowi++)"> 
    <td><pre mjt.script="">var gname = topic.genre[rowi].name;</pre>$gname.value</td> 
    </tr> 
</table> 
</body></html> 

您很可能會使用其他語言,但希望您可以輕鬆地翻譯上述查詢。

+0

爲freebase +1,可能是最好的來源,除了標籤/藝術家本身。 – UnkwnTech 2009-01-19 04:12:48

+0

Freebase看起來不錯。我會進一步調查。謝謝! – Kenny 2009-01-19 04:24:05

7

MusicBrainz(http://musicbrainz.org/)可能是你想要的,而不是維基百科。這是一個製作音樂元數據(作曲家姓名,專輯名稱,曲目名稱,該曲目上的長號手名稱等)的免費許可的高質量收藏的項目。他們開發了一個非常棒的數據庫,一個詳細的數據庫模式,用於使元數據準確一致的全面樣式準則,可以將元數據插入到音樂數據文件標籤中的應用軟件以及可以使用這些數據的API。所有免費提供和協作編輯。

MusicBrainz元數據的一個弱點是音樂類型。這是因爲它存在這樣一個棘手的問題:一個人的「放克」是另一個人的「流行音樂」。