Dan BrickleyがIRCで紹介しているのを見て、Historical Event Markup and Linking (HEML) projectというものを初めて知った。歴史上のいろいろな出来事を独自のXMLで記述して、それをベースにSVGを使って年表や地図を表示するというもので、なんと安土桃山から明治までの日本の情報もある。Danとしては、これをRDFicalやgeoinfoを使って記述すれば、もっと可能性が広がるというわけだ。
HEMLのマーク付けはなかなか細かい。たとえば、織田信長という歴史上の「イベント」を記述している部分を取りだしてみると、次のような具合だ。
(例)
<Event id="e4"> <EventLabelSet><Label xml:lang="ja">安土桃山時代</Label></EventLabelSet> <Classification> <KeywordClassificationSet id="takeover"> <Label xml:lang="ja">織田信長</Label> </KeywordClassificationSet> </Classification> <Chronology> <DateRange> <StartingDate><XMLSchemaGYear>1559</XMLSchemaGYear></StartingDate> <EndingDate><XMLSchemaGYear>1603</XMLSchemaGYear></EndingDate> </DateRange> </Chronology> <Location id="Japan"> <LocationLabelSet><Label xml:lang="ja">日本</Label></LocationLabelSet> <Latitude hours="35" minutes="41"/> <Longitude hours="139" minutes="46"/> </Location> <Participants> <PersonWithRole> ... </PersonWithRole> </Participants> <References> <Evidences> ... </Evidences> </References> </Event>
かなり複雑だが、HEMLを作成するためのツールも提供されているようなので、それはたいした問題ではないのだろう。XHTMLと混在させて、普通のウェブ文書内にこの「歴史的イベント情報」を埋め込むことも考えられているようだ。
語彙がしっかり定義されているので、少々工夫すれば、DanがいうようにRDFとして記述することもそれほど難しくないだろう。ちょっと強引にやってみると、次のような感じかな(デフォルト名前空間=HEML)。
(例)
<Event rdf:nodeID="e4"> <dc:title xml:lang="ja">安土桃山時代</dc:title> <classification> <KeywordClassificationSet rdf:nodeID="takeover"> <label xml:lang="ja">織田信長</label> </KeywordClassificationSet> </classification> <chronology> <DateRange> <startingDate rdf:datatype="&xsd;gYear">1559</startingDate> <endingDate rdf:datatype="&xsd;gYear">1603</endingDate> </DateRange> </chronology> <i:location> <Location rdf:nodeID="Japan"> <label xml:lang="ja">日本</label> <geo:lat>35.683</geo:lat> <geo:long>139.767</geo:long> </Location> </i:location> ... </Event>
同じような意味ならもっと一般的なDublin CoreやRDFicalで置き換えることもできるだろうが、HEMLの語彙を使っておく方が、HEMLプロジェクトのSVGツールなどと連動しやすいかも知れない。きちんとした対応ルールがあれば変換は簡単だから、いろんな歴史的事象を手頃な語彙でマーク付けしてみると、面白いことができそうだ。
関連メモ:
- HEMLとRDFicalの実験 (2004-03-24)