🦁

テキストマークアップツール「CATMA」の使い方

2022/11/10に公開

概要

テキストマークアップツールの一つである「CATMA」の入門的な使い方を紹介します。

https://catma.de/

アノテーションの結果はTEIフォーマットでエクスポートできるため、他のシステムでも活用可能な相互運用性の高いデータを作成できると思われます。また実験的な段階とのことですが、JSON APIも提供されています。これを使うことで、アノテーションはCATMAで行い、その結果をAPIを経由して、他のシステムで利用する、という構成も考えられます。

上記は未検証の内容を含む、一部発展的な取組みになりますが、本記事では、CATMAの基本的な使い方を備忘録として残します。

使い方

以下にアクセスして、「Sign Up」を行います。Googleのアカウントでログインするとスムーズかと思います。

https://app.catma.de/catma/

ログイン後の画面は以下です。

プロジェクトの作成

「Create New Project」から新しいプロジェクトを作成します。

ドキュメントの登録

以下のように、「+」ボタンを押して、「Add Document」を行います。

今回は以下のような単純なtxtファイルを試します。

example.txt
私の名前は中村覚です。

その後の選択肢は基本的にそのままでOKですが、以下のように、言語は「Japanisch」にしておくとよいかもしれません。

以下のように、exampleというドキュメントと、example Default Annotaitonsというアノテーションを保存するためのコレクションが作成されます。

タグセットの作成

次に、タグセットを作成します。左のメニューから「Tags」を選択して、画面右上の「+」ボタン、「Add Tagset」を選択します。

今回は「はじめてのタグセット」という名前をタグセットを作成しました。さらに、画面右上の「+」ボタンから、「Add Tag」を選択します。

そして、以下のように、タグの追加対象となるタグセットを選択して、今回は、「persName」というタグを追加してみます。「プロパティ」などを追加設定できますが、今回はスキップします。

アノテーション

左のメニューから、「Annotate」に移動して、以下のように、アノテーション対象のドキュメントとして「example」、タグセットとして「はじめてのタグセット」を選択します。

アノテーション付与対象の選択し、画面右から付与対象のタグを選択します。先のタグの追加画面で設定した色の下線が引かれます。

エクスポート

左のメニューから、「Project」に戻り、「example Default Annotations」を選択して、メニューアイコンから「Export Documents & Collections」を選択します。

zipファイルがダウンロードされ、元テキストであるtxtファイルと、アノテーション結果を格納したxmlファイルが展開されます。

xmlファイルは以下のようなTEIのフォーマットで出力されます。<encodingDesc>に使用したタグ、具体的にはpersNameが示されます。

また、<body>以下に、何文字目から何文字目に対して、どのタグが付与されているか、という情報が格納されます。

<TEI xmlns="http://www.tei-c.org/ns/1.0" xml:lang="en">
    <teiHeader>
        <fileDesc>
...
        </fileDesc>
        <encodingDesc>
            <fsdDecl xml:id="T_876E9B9F-B41D-4DD7-B54A-A225A75A8F50" n="はじめてのタグセット b51b9866b96ff38f059b7b5b38b8383dfc53f27c">
                <fsDecl xml:id="CATMA_BDA41946-07EF-403E-BDE9-D2E60C48D093" n="2022-11-10T02:05:19.000+0100" type="CATMA_BDA41946-07EF-403E-BDE9-D2E60C48D093">
                    <fsDescr>persName</fsDescr>
                    ...
                </fsDecl>
            </fsdDecl>
        </encodingDesc>
    </teiHeader>
    <text>
        <body>
            <ab type="catma">
                <ptr target="D_FB58A2B3-EC15-42B8-8DAC-E9A28B3D1FDC#char=0,5" type="inclusion"/>
                <seg ana="#CATMA_E1AE48BF-903B-451B-8723-FAD8FD182CFE">
                    <ptr target="D_FB58A2B3-EC15-42B8-8DAC-E9A28B3D1FDC#char=5,8" type="inclusion"/>
                </seg>
                <ptr target="D_FB58A2B3-EC15-42B8-8DAC-E9A28B3D1FDC#char=8,13" type="inclusion"/>
            </ab>
        </body>
        <fs xml:id="CATMA_E1AE48BF-903B-451B-8723-FAD8FD182CFE" type="CATMA_BDA41946-07EF-403E-BDE9-D2E60C48D093">
            ...
        </fs>
    </text>
</TEI>

上記の構造化データを使って、さまざまな活用ができそうです。

JSON API

プロジェクトの画面右上のメニューから、「Share project resources」を選択します。

「Enable」にすることで、JSON APIが有効になります。

結果、以下のようなJSONにアクセスすることができ、中村覚という文字列に対して、persNameというタグが付与されていることを確認できます。

{
  "exportDocuments": [
    {
      "annotations": [
        {
          "endOffset": 8,
          "id": "CATMA_E1AE48BF-903B-451B-8723-FAD8FD182CFE",
          "phrase": "中村覚",
          "properties": [
            
          ],
          "sourceDocumentId": "D_FB58A2B3-EC15-42B8-8DAC-E9A28B3D1FDC",
          "startOffset": 5,
          "tagId": "CATMA_BDA41946-07EF-403E-BDE9-D2E60C48D093",
          "tagName": "persName"
        }
      ],
      "sourceDocument": {
        "bodyUrl": "https://app.catma.de/catma/api/pre/beta/catma_8394b1dd-c46a-45c5-a57f-1762722157ff/doc/d_fb58a2b3-ec15-42b8-8dac-e9a28b3d1fdc",
        "crc32bChecksum": "4ae29eb9",
        "id": "D_FB58A2B3-EC15-42B8-8DAC-E9A28B3D1FDC",
        "size": 35,
        "title": "example"
      },
      "tags": [
        {
          "colour": "#dd79df",
          "id": "CATMA_BDA41946-07EF-403E-BDE9-D2E60C48D093",
          "name": "persName",
          "parentId": "",
          "properties": [
            
          ]
        }
      ]
    }
  ],
  "exportId": "E_A814CD0C-1867-454A-8BAA-44355B93E35E"
}

実験的なサービスではありますが、外部システムとの連携などに活用できそうです。

まとめ

CATMAの基本的な使い方について説明しました。

今回はtxtファイルを登録しましたが、TEIでマークアップ済みのxmlファイルを登録することもできます。

参考になりましたら幸いです。

Discussion