ちょっとしたメモ

演奏会の宣伝とメタデータ

この週末は通算14時間も演奏会の練習があって非常にハードだった。そういうわけで、今日はその演奏会の宣伝モード。せっかくなので、ここから演奏会のメタデータも抽出できるようにしてみようと思うわけだが、この場合、目的語をリソースとするタイプのプロパティでは記述が難しい。XHTML本文埋め込み型メタデータのためには、リテラル型のプロパティの方が重宝する。

今日の午前中は、 4月29日三鷹芸術センターで行う アンサンブル花火第6回定期演奏会の練習。 曲目はモーツァルト交響曲第41番「ジュピター」と、 プロコフィエフ交響曲第1番「古典」で、 指揮は金子建志。 ジュピターは念願の挑戦で、弾けば弾くほど面白い。プロコフィエフは超絶技巧の曲で、ゲスト管楽器の活躍が素晴らしい。

午後は 4月17日すみだトリフォニーで行う オーケストラ・ディマンシュ第19回演奏会の練習だ。 こちらの曲目はバーンスタイン「ウェスト・サイド・ストーリー」と、 コルンゴルト交響曲嬰へ長調で、 指揮は金山隆夫。 ウェスト・サイドはリズムについていくのが大変だし、コルンゴルトは頭痛がするほど複雑だが、どちらも演奏効果抜群で聴き映えがする。

この紹介からGRDDLRDFを抽出してみると、アンサンブル花火のパラグラフからは次のようなメタデータができる(恒久ページ下部のGRDDLリンクでRDF生成可能。W3CのXSLTサービスが動いていない場合は同じ内容のテストページからの生成をお試し下さい。)。

(例)

<m:Concert>
 <dc:date>2004-04-29</dc:date>
 <i:location>三鷹芸術センター</i:location>
 <m:performer rdf:resource="http://kanzaki.com/music/hanabi/" rdfs:label="アンサンブル花火"/>
 <dc:title>第6回定期演奏会</dc:title>
 <m:conductorName>金子建志</m:conductorName>
 <m:programLine>モーツァルト交響曲第41番「ジュピター」</m:programLine>
 <m:programLine>プロコフィエフ交響曲第1番「古典」</m:programLine>
</m:Concert>

コンサートや作品を記述するためのMusic Vocabularyでは、リソースとして意味が明確で構造化した記述をするために、もともとは次のような形を考えていた。

(例)

<m:Concert>
 ...
 <m:performer>
  <wn:Ensemble foaf:name="アンサンブル花火"/>
 </m:performer>
 <m:conductor>
  <wn:Conductor foaf:name="金子 建志"/>
 </m:conductor>
 <m:program>
  <wn:Symphony>
   <dc:title>交響曲第1番 ニ長調</dc:title>
   <m:composer foaf:name="プロコフィエフ"/>
  </wn:Symphony>
 </m:program>
 <m:program>
  <wn:Symphony>
   <dc:title>交響曲第41番 ハ長調</dc:title>
   <m:opus>K.551</m:opus>
   <m:composer foaf:name="モーツァルト"/>
  </wn:Symphony>
 </music:program>
 ...
</m:Concert>

こうすると、プロパティの目的をクラスとして明確に表現できるし、曲や作曲家についての関連情報を追加したり参照することもできる。また、メタデータを収集してデータベースに登録することを考えると、作曲者と曲名をひとまとめにするより、それぞれを別のフィールドで扱える方が応用範囲が広くなるだろう。

しかし、XHTMLの文章からこうした構造化されたメタデータを抽出するのは、不可能ではないにしても、相当手の込んだマーク付けが必要になって、“簡単にメタデータを付与する”という趣旨からはかなり遠のいてしまう。

そこでMusic Vocabularyには、conductor, programなどのリソース型プロパティに対応するconductorName, programLineといったリテラル型プロパティを追加定義し、シンプルな記述や抽出ができるようにしてみた。厳密さと簡単さのバランスは語彙設計上の難しいところで、こういう二重構造の定義がよいのかどうかまだ確信は持てない。それでも、そもそもメタデータが出てこなければ話が始まらないわけで、少なくとも今の段階ではリテラル型プロパティの役割はまだまだ大きいという感じがする。

関連メモ: