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)


