ちょっとしたメモ

既存のクラス定義を生かしたメタデータ

新しく公開した「Metadata in XHTML - XSLTによる抽出」は、汎用的なメタデータ埋め込み方法としてclass="dc.date"といった接頭辞付きクラス指定を提案していますが、すでにclass="date"のような形で意味を考慮したクラスを独自に採用してきている場合、これらをわざわざ接頭辞付きに書き改める必要はありません。この意味に対応するXSLTをローカルに定義すれば、(汎用性はないものの)RDF生成という点では同等です。

特定のクラス指定の時にそれに対応するプロパティを生成するテンプレートは、次のようなものになるでしょう。

(例)

<xsl:template match="*[@class]">
 <xsl:choose>
  <xsl:when test="@class='date'">
   <dc:date><xsl:value-of select="."/></dc:date>
  </xsl:when>
  <xsl:when test="@class='...'">
   <some:property><xsl:value-of select="."/></some:property>
  </xsl:when>
  ...
 </xsl:choose>
</xsl:template>

dc:などの語彙の名前空間は、XSLT側で宣言しておいてください。

接頭辞付き属性の手法は、新しい語彙を使いたくなったときでも、XHTML文書でlink要素による名前空間マップを行うだけでよく、XSLTは変更する必要がありません。独自クラス方式は、語彙を追加する時には上例のテンプレートにそのクラスに対応するルールを追加していくことになります。折衷案としては、既存のクラスについては固定的なテンプレートを用意しておき、今後の追加は接頭辞付きクラスで対応できるような複合型XSLTを使うという方法もあるでしょう。

要は、できるだけ無理なく、普段の延長でメタデータ付与できるようにしようという考えですから、それぞれのサイトの事情に合わせて、いちばんやりやすい方法を選んでもらえるといいと思います。

関連メモ: