🔖

DHCフォーマットの中身を確認する

2024/06/16に公開

概要

Digital HumanitiesやThe Japanese Association for Digital Humanities (JADH)の年次大会では、以下のdhconvalidatorというツールを使い、DOCXやODT形式のファイルを、DHCファイルに変換して提出することが多いです。

https://github.com/ADHO/dhconvalidator

今回は、このフォーマットを理解するための備忘録です。

内容を確認する

DHCファイルは以下のように説明されています。

This is essentially a ZIP archive containing their original OCT/DOCX file, an HTML rendering and an XML-TEI rendering, plus a folder with the image files, properly renamed).

(機械翻訳)これは基本的に、元のOCT/DOCXファイル、HTMLレンダリング、XML-TEIレンダリングを含むZIPアーカイブであり、適切に名前が付けられた画像ファイルのフォルダも含まれています。

したがって、上記のdhconvalidatorを使って作成された.dhc形式のファイルについて、展開してみます。

unzip nakamura.dhc

結果、以下のようにファイルが展開されました。

入力元のdocxに加えて、TEIに変換されたXMLファイル、およびHTMLファイルが含まれていました。HTMLファイルは以下のようにブラウザで表示されます。

共著者や他者が作成したDHCファイルの内容を確認するには、上記のように展開の上、HTMLファイルを確認するのがよさそうです。

(参考)変換の仕組み

以下のように説明されています。

The DHConvalidator works together with the conference management tool ConfTool and uses TEIGarage (formerly known as OxGarage) to do the bulk conversion.

(機械翻訳)DHConvalidatorは、会議管理ツールのConfToolと一緒に動作し、大量の変換を行うためにTEIGarage(旧称OxGarage)を使用します。

TEIGarageについては、以下で簡単に触れています。

https://zenn.dev/nakamura196/articles/f1df6a46f2ddf6

DHConvalidatorでは、以下のファイルで変換が行われているようでした。

https://github.com/ADHO/dhconvalidator/blob/master/src/main/java/org/adho/dhconvalidator/conversion/Converter.java

以下で、docx(or odt)からxmlへの変換が行われているようでした。

    // do the OxGarage conversion
    OxGarageConversionClient oxGarageConversionClient =
        new OxGarageConversionClient(oxGarageBaseURL);
    String xmlFileName = computedFilename + ".xml";
    ZipResult zipResult =
        new ZipResult(
            oxGarageConversionClient.convert(
                convertedInputData,
                toTeiConversionPath,
                toTeiConversionPath.getDefaultProperties()),
            xmlFileName);

続けて、以下の箇所で、XMLからHTMLへの変換が行われているようでした。

    // do the conversion to HTML via OxGarage
    Document xHtmlDoc =
        oxGarageConversionClient.convertToDocument(
            conversionResultDocBuffer.toByteArray(),
            ConversionPath.TEI_TO_XHTML,
            ConversionPath.TEI_TO_XHTML.getDefaultProperties());

TEI/XMLのエコシステムの上に成り立っていることが確認できました。

まとめ

DHCフォーマットやDHConvalidator, TEIGarageなどの理解に向けて、参考になりましたら幸いです。

Discussion