HIMIKO Editor for Imageの使い方(基礎編)


先日、ROIS-DS人文学オープンデータ共同利用センター(CODH)のホームページからHIMIKO Editor for Imageという、IIIF画像をアノテーションし、そのアノテーションデータ同士の意味的な関係性をRDF知識グラフとして記述するためのツールを試験的に公開しました。

codh.rois.ac.jp

ただ、ツールを開くだけでは使い方がよくわからないと思うので、このブログで、Editorの使い方をご紹介しようと思います。

まずEditorを開くと、このような画面が表示されます。

HIMIKO Editor for ImageはIIIF準拠の画像を中心にデータを構築するため、まずはIIIF画像データを読み込みます。データ読み込みは、画面右上の「Manifest URL」入力欄にIIIF ManifestのURLを貼り付け、「表示」ボタンをクリックします。

すると、以下のように画像が表示されるはずです。(画像は国立国会図書館デジタルコレクションより)

IIIF Manifestを読み込んで画像表示

画像が表示されたら、まずはこの画像にアノテーションを付与していきます。画像ビューアの部分にはOpenseadragonを利用していますが、あわせてAnnotoriousのアノテーション機能も実装しているため、画像上でShiftを押しながらドラッグすることで、以下のように領域選択を行うことができます。

選択された領域は画像上に矩形で表示されます。この矩形をクリックで選択すると、以下のように黄色枠表示になりますので、この状態で、ビューア上部の「フォームを表示」をクリックし、データ入力フォームを開きます。(*必ず、矩形領域をクリックして選択状態にしてからフォームを表示してください。未選択のままフォームからデータを入力するとエラーになります)

矩形領域選択(左)とデータ入力フォーム(右)

ここで表示されるフォームはデータ作成用のフォームですので、選択した部分に描かれている事物のタイプを選択し、「データ入力へ」をクリックします。すると、「詳細データの入力」というフォームに移動しますので、そこでコメントや外部データといった、アノテーションデータに紐付けるべき関連情報(入力可能な関連情報項目は、前画面で選択したタイプによって変化します)を入力します。必要な情報を入力したうえで、「作成」をクリックすると、画像のアノテーションデータが作成されます。実際にアノテーションデータが作成されたかどうかを確認したい場合には、Editorの左下にある「グラフデータを表示」をクリックしてみてください。以下のようなJSONデータが表示され、作成した画像アノテーションデータは"curations"というオブジェクトに格納されているはずです。以下のデータは、データタイプに「Person」、関連情報として「石川五右衛門」というコメントを入力した例です。

画像アノテーションを格納するJSONデータ例

このように、まずは画像に描かれている事物について、その領域を選択し、アノテーションデータを作成していきます。

さて、HIMIKO Editorの特長は、単にアノテーションを行うのみでなく、アノテーション同士をデータとして接続し、上の画像の例でいえば「石川五右衛門が刀を持っている」というような意味内容、知識をデータとして記述できる点にあります。次に、この知識グラフの記述プロセスを紹介します。

Editorの左側はグラフ・エディタとなっており、ノードやエッジを描画していくことで、RDFデータを生成できるようになっています。

それでは実際に、「石川五右衛門が刀を持っている」という知識を表現するグラフデータを作成していきましょう。まず、Editor左上に並んでいるボタンから、「ファクトイドを追加」をクリックします。ファクトイドとは、何らかの出来事や状況、関係性といった「現象」そのものを表すデータの単位だと思ってください。つまりここでは、「石川五右衛門が刀を持っている」という状況自体が一つのデータ項目として記述されることになります。「ファクトイドを追加」をクリックすると、以下のようなノードデータ生成フォーム、続いて関連情報入力フォームが表示されるので、ここで必要項目を選択・入力し、「作成」をクリックします。すると、空白であったビューア部分に新たなノードが出現します。

データ入力画面(左)と生成されたファクトイド・ノード

これで、一つの状況を表すデータが生成されたことになります。次に、この状況に関与するヒトやモノの情報を紐付けていきます。まずは、ヒトやモノを表すデータを作成しましょう。Editor左上の「エンティティを追加」をクリックし、新たなデータ入力フォームを開きます。エンティティとは文字通り、ヒトや場所、モノといった、個物に対応するデータ項目を指します。以下のようなデータ入力フォームが現れるので、ファクトイドと同様、必要事項を選択・入力し、「作成」をクリックします。これにより、ビューア部分にエンティティを表すノードが追加で表示されるはずです。

エンティティデータ入力画面(左)と生成されたノード(右)

ここで再度、「グラフデータを表示」をクリックしてみましょう。先ほどの"curations"に加えて、"nodes"オブジェクトにも新たにいま作ったデータが追加されているはずです。

ノードデータが追加された「グラフデータ」

次に、作成したファクトイドやエンティティのデータを互いに接続していきます。ノード同士を接続するには、対象となる二つのノードの組みを選択した上で、「エッジを追加」をクリックします。今回の例では、「石川五右衛門が刀を握る」というファクトイドを接続元、「石川五右衛門」というエンティティを接続先にしたいので、ファクトイドノード → エンティティノードという順でノードをクリックし、選択状態にします(選択状態になると、黄色の枠線が現れます)。二つのノードが選択された状態で「エッジを追加」をクリックすると、以下のようなデータ入力フォームが現れるので、必要項目を入力して「作成」します。すると、二つのノードがエッジで結ばれ、その関係性が表示されるようになります。

エッジデータ入力画面(左)と接続されたノード(右)

ここでは、ファクトイドとして表現される現象の「主語subject」として「石川五右衛門」というエンティティが紐づけられていることがわかるでしょう。同様に、「刀」を表すエンティティデータを作成し、ファクトイドと紐づけます。最終的に描画されるグラフは以下のようになるはずです。また、「グラフデータ」の"edges"にもデータが追加されます。

最終的なグラフ描画(左)と「グラフデータ」のエッジ記述(右)

ここまでで、知識グラフの構築が一通り完了しました。ただし、この段階では先ほどの画像アノテーションと、グラフエディタ側で作成したファクトイドやエンティティのデータは接続されていませんので、最後に両者を接続してみます。

この作業はそれほど難しくなく、画像ビューア側で接続したい矩形領域、グラフエディタ側で対応するデータノードをそれぞれ選択(両者とも選択されると黄色枠表示になる)し、エディタ上部の「画像とリンク」をクリックするだけです。例えば以下では、「刀」というモノを表すエンティティデータと、刀を描いた部分を選択した画像アノテーションデータをそれぞれ選択し、リンクしようとしています。

「刀」の画像とエンティティデータの接続例

以上の作業で作成された画像アノテーションデータとファクトイド・エンティティデータ、および両者の接続情報は、グラフエディタ上部の「JSONファイルをダウンロード」「TURTLEファイルをダウンロード」から、JSONとTurtleの二つの形式で出力することができます。Linked Dataとして利用する場合にはTurtleでダウンロードし、いずれかのトリプルストアにアップロードすることで、SPARQLによる検索や可視化も直ちに可能になるでしょう。試しに、ダウンロードしたTurtleデータをそのまま神崎正英先生の可視化ツールで表示したものが以下のグラフです。

石川五右衛門が刀を持っている」を表すRDFデータの可視化例

このように、画像アノテーションデータを含む複雑なRDFデータの作成を支援するHIMIKO Editor for Imageは、単なる画像のアノテーションにとどまらず、そこに描かれたヒトやモノの関係性といった「知識」の構造化をも可能にするツールということができます。

本記事では、HIMIKO Editor for Imageの本当に基本的な操作の部分を説明しました。これだけでも、画像のアノテーションや知識グラフデータの構築をすぐに始めることができますが、限界もあります。それは、画像アノテーションやノード作成の際に表示されるデータ入力フォームにおいて選択できるデータのタイプや入力項目がデフォルトで提供されるものに限られる、という点です。

じつはHIMIKO Editor for Imageはこの点についてもカスタマイズ機能を提供しており、ユーザが自由に入力項目や選択項目を設定して、データを構築することができます。そのため次の記事では、このカスタマイズ機能の操作方法について詳しく説明したいと思います。