3 漢籍リポジトリの使い方

研究者から研究者への電子テキスト

概要

漢籍リポジトリのテキストはウェブサイトgithub.comの@kanripoユーザーアカウントの中に維持されている。これはテキストのその他の用途すべてに使われる素材であり、そこにあるテキストは誰でも自由に利用できる。ここではこのリポジトリを利用するために使われるソフトウェアについて論じる。 これまで使ってきた漢籍リポジトリという用語はGitHub上でアクセスできるようにしたテキストを指す名称である。技術に詳しい読者には、GitHubをバックエンドのようなものと理解してもらうことができる。技術に詳しくない読者は、図書館の司書が読者から指定された本を取りに行く書庫のようなものだと思ってもらえばよい。ほとんどのユーザーはこれらのテキストに「司書」としてではなく「読者」としてアクセスするので、ここで紹介する見地のほとんどは読者のそれである。しかしながら、研究者たちは読者であるだけでなく、著者でもある。そしてまた、本は公的な図書館で使われているだけでなく、購入され個人的な蔵書として保管されてもいる。それで、この境界線はそう思われているほど固定していない。 更に、読者はさまざまな方法を使って漢籍リポジトリのテキストを利用できる。再び本の喩えを使うならば、テキストは図書館の「閲覧室」で読むこともできれば、図書館から借り出して「書斎」に持ち帰ることもできる。また自ら所有する本を「閲覧室」に持ち込むなど、読者は目的やコンテキストに合わせて、これらの用途を切り替えることができる この章において「書庫」はGitHub上のリポジトリに対応し、「閲覧室」はkanripo.orgにおけるウェブアプリケーションに、「書斎」はテキストを所有しそれに手を加えることを可能にする マンドク というソフトウェア・アプリケーションに対応する。

Kanripo.org

このように、「閲覧室」はブラウザをウェブアドレスhttp://www.kanripo.org/ に指定することでアクセスできるウェブアプリケーションである。図1のようなホームページが表示される。

krp01-top.png

図 1:「閲覧室」という愛称を持つ漢リポウェブサイトのスタートページ

このページから「書庫」に保管されているテキストにアクセスするには3通りの方法がある:

  • (1)目録の閲覧
  • (2)題名で検索
  • (3)テキスト内を検索

目録の閲覧

実質的にはテキストのリスト1 にすぎないものを目録と呼ぶのは少々行き過ぎた表現かもしれない。

krp02-catalog.png

図 2: 目録の最初のページ

2の目録のトップページ(ホームページの「目録」をクリックすると現れるページ)には、左側に目次、右側に(黄の背景で)内容範囲が表示される。まず、目録のトップレベルの見出し(部 、KR1からKR6)と第二レベルの見出し(類、KR1aからKR6v)は表示される、現在、全85項目から成っている。ユーザーはこれらのシリアル番号をクリックすることでこの目録の対応セクションに即座にアクセスし、内容を閲覧できる。

また、トップレベルの見出しは左側にも掲載されており、各セクションへの素早く簡単なアクセスを常に提供している。主となる分類は前に概説した通り、このリポジトリの構造に従っている。ほとんどのユーザーは、少なくとも最初のうちは、コレクションの他の並べ方によりなじんでいるので、このレポジトリの主なコレクションを左側(漢リポ分類の下)に異なる分類法で提供している。題名をクリックすることで特定の目録のリストを表示できる。シリアル番号は特定のコレクションの番号で、事実上リポジトリの部分集合、すなわちコレクションに含まれるすべてのテキストリストを一覧で表示している。これらのシリアル番号は目録ページにテキストを並べるためだけのもので、他のすべてのページでは漢籍リポジトリで使用している「KR」で始まるシリアル番号のみを表示している。

一つの例として、「道藏輯要」をクリックすると図3のような画面が表示される。これはテキストの題名を示しており、その後にテキストの出所の王朝、そして主な著者(あるいは、テキストの種類により、代表者)が続く。これは、例えば、JY0032「太上洞玄靈寶無量度人上品經法-南宋-陳春榮」のエントリーに見ることができる。ここで提供されている情報はほとんどが伝統的な目録法に基づいた最良の推定である。目録の仕事が進むにつれ、これも最新情報に更新され、更新理由も含めたすべての詳細が目録中で提供されることになる。「太上洞玄靈寶無量度人上品經法」「南宋」「陳春榮」という異なる部分はハイフン(「-」)で区切られている。何らかの理由で王朝や名前が不明な場合、JY019「太上中道妙法蓮花經- -」の場合のように、不明部分は飛ばし、ハイフンのみを単独で表示する。

krp02a-dzjy.png

図 3: 道藏輯要のリストの冒頭

3に示されているように、テキスト、この場合はJY019、をクリックするとテキストのランディングページが表示される。

krp02b-landing.png

図 4:KR5h0001 太上中道妙法蓮花經のランディングページ

このJY019の場合はたまたまKR5h0001番、つまりKR5h續道藏セクションの一番目のテキストである。このページは閲覧可能なバージョンや目次も含めたテキストの概要を表示している。長いテキストについて、その内部区分の詳細な概要がない場合、ここには卷が一つ一つ列挙される。このリポジトリでは、卷が基本単位となり、そこにテキストが保管され、またアクセスされる。前書きや序文など一番目の卷の前のコンテンツはすべて「0」で終わる番号のファイルに置かれる。(技術的な理由から、このような先行するコンテンツがない場合にもこのファイルは存在する)

テキストを読み始めるには、ただリスト中の巻の「1」をクリックすればよく、図2のような画面が表示される。他のバージョンが指定されていないかぎり、このクリックでテキストのmasterバージョンが開けられる。前にも説明した通り、これが最新で最もよく整理されたバージョンである。これは必ずしも一つの特定のドキュメンタリー版を代表しておらず、それよりも漢籍リポジトリの編集者によって編集されたテキストであることを意味する。他のバージョンにはページの左上、白背景上にあるリンクからアクセスできる。ここでの場合、五つのバージョンがある。正統道藏の2バージョン、道藏輯要の2版(これらの4版が「ドキュメンタリー」版)、そして道藏輯要のもう一つの版、つまり京都での道藏輯要プロジェクトの一環として作成された句読点をつけた版である(この最後の版は解釈版)。ページの左下には目次があり、ここでの場合、ただテキスト10卷のそれぞれの番号が示されているだけである。

krp02c-kr5h0001-001.png

図 5:テキストKR5h0001太上中道妙法蓮花經の第一juanの冒頭

黄の背景部分は読むべきテキストを表示している。改行は選択した版のそれを踏襲しており、改頁についても同様で、 「第1巻、第1ページの表」を意味する001-001aのパターンに従って表示されている。厳密なパターンはそれぞれの版により異なるが、常に「テキスト内の小単位」(この場合は巻)、ページ番号とそのページの区分を示す文字あるいはそれに相当するものの順に従っている。ページ番号の隣りには木版印刷ページの小さな画像であるアイコンがあり、それはそのデジタルテキストが対応する実際のページのデジタルファクシミリを伴っていることを示している。ページ番号をクリックすると図3のような画面が表示される。

krp02d-kr5h0001-img1.png

図 6: KR5h0001の涵芬樓版1ページ目のファクシミリを付したテキストの表示

ここで画面の右側にはリクエストしたページのデジタルファクシミリが表示され、左側には先ほどと同じテキストが表示される。ファクシミリのサイズは、表示を拡大するには「+」、縮小するには「–」と画像の上のボタンを使って調整できる。表示はまた、「–」ボタンの右にあるスライダーを使って調整できる。⟲をクリックすると表示がそのデフォルトサイズに戻る。この右側にはドロップダウンメニューがあり、現在表示されているバージョンの名前を示している。ここでの場合、【正統道藏・ 涵芬樓版】である。この版名をクリックすることでユーザーは、(それが提供されている場合には)異なるバージョンを選択できる(図4)。ドロップダウンメニューの左と右にある「<」と「>」のボタンはそれぞれ前のファクシミリページと次のファクシミリページを表示するのに使うことができる。「X」をクリックするとデジタルファクシミリが非表示になり、よって画面が以前の状態に戻る。

krp02d-kr5h0001-img2.png

図 7: KR5h0001のオリジナル道藏輯要版のファクシミリを付したテキストの表示

検索

題名で検索

漢リポには題名検索とテキスト検索という2種類の検索がある。題名検索はテキストを言及するのに使われた、王朝や著者も含めた文字列すべてを検索する。題名検索の結果として目録から該当する題名が表示される。このテキストは、上記の目録を閲覧する項で説明したようにしてアクセスできる。

テキスト内を検索

右側の検索フィールドは全文検索のための検索用語を入力するのに使われる。現時点では、単純検索のみをサポートしているが、より洗練されたメソッドが利用可能となるであろう。全文検索の結果の例が図8に示されている。

krp-search-qijing.png

図 8:「七經」の全文検索、1ページ目

赤の背景を持つトップ部分には結果のサマリー、具体的には一致結果の合計数および現ページに表示されている一致結果の数(ここでの場合「1から20まで」)が表示される。黄の背景を持つ画面のメイン部分には、いわゆる「文脈付き索引」(KWIC)フォーマットを使って、この検索結果の最初の20の詳細が表示される。各検索結果について、そのテキスト番号、題名(時として切り詰められている)、テキスト内での位置が表示される。この部分はハイパーリンクになっており、これをクリックすると、その指定した位置で検索した用語がハイライトされたテキストが開く。三つ目の項目は一致箇所の抜粋で、それには検索語の前部分の決まった文字数(この例では3文字)と後ろ部分の数文字も含まれる。この行の長さは決められており、ここでの場合、検索語も含めて10文字である。ここに表示された行は一致箇所を探すのに内部で使われたインデックスととてもよく似ている。これを知っておくことは有用である。というのは、10文字以上の文字列の検索は何の結果も出さないということだからである。実際のところ、検索語の長さは2文字から5、6文字までであることが推奨されている。1文字だけを検索することはシステムによって却下される。サーバーをオーバーロードしがちだからだ。

この検索機能は漢リポのために特に作られたインデックスに基づいている。このインデックスを作成するのに、全ての版本が持つ文字がインデックスに導入された。 マスター版以外の検索結果には該当する行の最後に「異本」の表示がある。これに加えて、小さな文字で注釈として印刷されているテキストの部分は、本文のシーケンスの外にある別の文字シーケンスとみなされる。注釈の中から引き出された検索結果はそのインデックス表示に「夾註」の印が付けられている。

検索は研究の中核をなす。なぜなら、それは新しい資料を探すのに使われるだけでなく、コレクションが代表する文化的伝統をよりよく理解するための分析ツールとしての役目も果たすからだ。資料を望むように提示するために検索の精度を高める方法が主に二つある:(1)並び替え順序、すなわち、結果がユーザーに提示される特定の方法を変える;また(2)当面の目的に合った部分集合からの検索結果のみを表示するフィルターを適用する。

並び替え順序を変える

結果ページの白の背景を持つトップ左部分には、並び替え順序を以下のいずれかに変えることのできるリンクがある:

  • テキスト番号順:これは検索結果をテキスト番号順に並べ替える。この番号付けは伝統的な分類を踏襲しているので、実質的にこれは密接に関連しているとみなされているテキストを一緒に並べることになる。
  • 年代順:ここでの年代はテキストの大部分が作成された年代とする。テキストに年代を付けることはとても複雑な作業で、多くの場合、相反する見解が存在する。ここではすべてのテキストをリストにして並べるという解決法を使った。このリストのテキストの順番は並べ替えを決定するのに使われる3
  • 検索語順:これは、他の並べ替え順序が指定されていない時、デフォルトとして表示される並び替え順序である。ハイライトされた検索語に続く文字に従って、ただ検索結果を並べるだけのことである。これは、理想的には、康熙字典の部首/画数に基づいた順序付けを使った辞書式の順序でなければならない。しかしながら、技術的な理由で、並び替えが基礎としている基底文字コードがいくつかのブロックごとに定義されており、継続してではないことから、これはおおよそでしか達成されていない。またこれに加えて、文字コードセットにはなく、それで画像として表示されるいくつかの異体文字が、その位置にある他の文字よりも先に並べられる。
  • 検索語の前の字で:この場合、(前の場合と同じ制約に準じている)順序は、検索語から逆に数えて、そのすぐ前の文字を基にしている。

画面の左側でこれらの更に下にある、いくつかのセクションにグループ分けされた他のリンクはすべて、結果を特定の部分に絞り込むためのフィルターの役目を果たす:

  • 朝代(王朝)は結果を王朝別にし、最も頻度の高い検索結果を列挙する。数字はそれぞれの王朝の検索ヒット数である。
  • 部(セクション)は結果を漢リポの分類別にし、それによって最も検索結果の多い部分はどれかの手っ取り早い概観を提供する。
  • 部/類(サブセクション)は結果を類別にする。最も頻度の高い検索結果を上から六つ列挙する。簡単に位置付けできるよう参考とするために、該当類の上位の部名も含まれている。
  • 文献(テキスト)は最も頻度の高い検索結果を持つ上位六つのテキストを、その検索ヒット数と共に表示する。

検索結果によるテキストリスト

このKWICディスプレイに加えて、検索結果はまったく異なる方法、テキストによる方法でも表示できる。この表示は、赤の背景を持つ部分の右側にある「テキスト毎まとめて表示」をクリックすることで作動させることができる。すると結果が、最も検索結果数の多いテキストの順に表示されるが、上記した通り、この順序は左のリンクを使うことで変えることができる。

より高度な用法の準備

これまでに説明してきた資料とのインタラクションは、何の準備もなく漢リポのウェブサイトにアクセスしたユーザーでも可能なたぐいのものである。 より高度な用法のために、多くのウェブサイトは個別の設定やデータがセッション間でも保持されるようにアカウントにサインアップする選択を提供している。kanripo.orgウェブサイトはそれ自体ではアカウントを維持しないが、その代わり、ユーザーにgithub.comウェブサイトのアカウントを使ってログインすることを求める。一時的なデータがサイトを使っている間キャッシュされることはあるが、どのようなユーザーの情報もkanripo.orgに永久保管されることはない。この目的のためにGitHubを使うことには二つの主な利点がある:(1)ユーザーが自らのデータをこのウェブサイトから独立して透明な形で所有しコントロールすることを可能にする;また(2)リポジトリ自体がGitHubによってホストされているので、この目的のためにGitHubアカウントを使うことは、設定やデータを関連する他のサイトと共有させる最も論理的な方法である。(複数のウェブサイトやサービスが漢籍リポジトリへのアクセスを提供できることに留意すること)

GitHubはアメリカに拠点を置く営利会社である。日本支社もあるが、今までのところウェブサイトは英語のみで提供されている。アカウント内のデータが制限なしのパブリック・アクセスを提供しているのであれば、そのアカウントは無料である。プライベートのリポジトリを持つことも可能であるが、それには利用料金が課せられるアカウントが必要とされる。 アカウントを作成するのはとても簡単である。ただhttps://github.com/ にアクセスし、指示に従うだけのことである4。漢籍リポジトリで使うためには、無料のアカウントで十分である。

krp-github-authorize-application.png

図 9:GitHubからの認証リクエスト

ひとたびアカウントを準備すれば、あとはkanripo.orgから、どのページでもトップ右側に表示されている赤の背景を持つ「サインイン」リンクを使ってアクセスできる。この漢リポ上のリンクを初めてクリックする時、GitHubにすでにログインしている状態ならば、GitHubは漢リポからのアクセスを認証するよう要求してくる。これは、漢リポがユーザーに代わってGitHubとインタラクションするために必要なことである。この認証は、ウェブ間のインタラクションを可能にする現在のところ最も安全で安定した方法とされているOAuth2プロトコールを使って実行される(図5)。このページを見てもらえばわかる通り、漢リポに与えるべき許可はとても明確で、パブリックとプライベートのリポジトリへのアクセスのみである。漢リポはユーザーのアカウントに関連した他のどの情報にもアクセスできない。また、これは重要なポイントだが、必要であればGitHubのあなたのアカウントからいつでもこの認証を取り消すことができる。GitHubページ上の緑の「Authorize application」ボタンをクリックすると、漢リポウェブサイトに戻る。これと同時に、漢リポはGitHubからこれら二つのウェブサイトの更なるインタラクションを認証するトークンを受け取る。 漢リポがこのトークンで最初に行う事柄の一つは、ユーザーのGitHubアカウントにKR-Workspaceという名前で新しいリポジトリを作ることである。漢リポ上で作業する間に作成するデータを保存するために、漢リポはこのリポジトリを使う(図10参照)。こうしてデータを自分のGitHubアカウント下に持つことは、(適切な認証を持つことを条件として)ユーザーがこのデータに直接、あるいはソフトウェ・アアプリケーションを通じてアクセスすることを可能にする。

krp-krptest-workspace.png

図 10:krptestユーザーのワークスペース

ひとたびログインをすれば、この「Login」ボタンが変わって、あなたのGitHubユーザー名が表示される。このボタンをクリックすると、あなたのアカウント情報をまとめたプロファイルページが表示される。(ここで示されているように、これはkanripo.org上に表示されるが、データは実のところGitHubにあるあなたのワークスペースに存在する)

漢籍リポジトリの高度な用法

GitHubとの連携によって、ユーザーとその仕事についての情報をアクセス間にも保持することを可能にし、またいくつかの設定をカスタマイズすることを許可する。更に、特に興味のあるテキストをユーザーのアカウントにコピーし(GitHub用語では「to fork a repository(リポジトリをフォークする)」)、そこで編集することも可能にする。kanripo.orgは、ユーザーのテキストが存在する時には、@kanripoアカウントの標準テキストよりそちらを優先して使う賢さを持ち合わせている。この方法を使い、例えば、ユーザーは誤字の訂正をし、それを漢籍リポジトリの編集者に報告できる。これがどのように行われるかは後で説明する。 ウェブブラウザーには、追加のソフトウェアをインストールする必要なく即座に利用でき、誰にでもなじみがあるという利点があるが、限界もある。ブラウザー上でテキストを編集すること、また読むことでさえ、それが長時間になると面倒になる。この目的のために、マンドクと呼ばれる特化されたソフトウェアが開発された。これについても後で紹介する。

kanripo.org

ログインしたユーザーに提供されているkanripo.orgウェブサイトの機能をいくつかここで紹介する。一つ目はユーザーが特に興味のあるテキストリストを簡単に集めることを可能にする。二つ目は上記した「年代順」機能をカスタマイズする方法を示す。

テキストリスト

多くの場合、専門性の高い研究課題は、とりわけ検索が必要な幾つかの特定のテキストに焦点を絞ることになる。検索を行ないテキストリストが作成されると、図11に示されるように、結果の画面のトップ部分に追加の一行が表示される。

krp-save-result-list.png

図 11:テキストリストの保存が可能になった

これを見てもらえばわかる通り、この検索で作成されたテキストリストのためのファイル名として、現在の検索語がすでに提案されている。もちろん、これは他のどんな名前に変えることもできる。リスト中のすべてのテキストにはそれぞれチェックボックスがあり、それらはデフォルトとして「未選択」になっているが、左にある「選択を切り替え」をクリックすることですべてのテキストを「選択」に切り替えることができる。「テキストリストの保存」ボタンは選択されたテキストリストをGitHub上のKR-Workspaceに保存する。(GitHub用語では、リストが「added(追加された)」そして「committed(コミットされた)」)。しかしながら、kanripo.org上の検索フィルターとしてリストを使うためには、それがロードされていなければならない。これは「テキストリストを即座にロードする」を選択することで実行できる。リストが即座に、あるいはサイトへの次のアクセスでロードされなければ、図10に示されるように、このテキストリストはユーザーのプロファイルからもロードできる。ここでは、いくつかの提供されているテキストリストが見られ、その内の一つはロードもされている。図12にフィルター付き検索の結果が示されている。

krp-filter-yaunshi.png

図 12: 全唐を検索し、その内の元始というリストにあるテキストのみを表示

「年代順」にリストを変更

すでに説明した通り、「年代順」機能は、特定のあらかじめ決められた順序に整理されたテキストリストに従って、テキストを効率的に並び替える。このリストはプロファイルページの「年代順」を選択することで検査できる。これがGitHubサイトで編集するためのファイルを開き、この時、必要であれば並び替え順序を変えることができる。このページの一番下にある緑の「Commit changes(変更をコミットする)」ボタンをクリックしてこの変更を保存することを忘れてはならない。それ以降、このユーザーの検索結果は変更されたファイルに従って、その順序で並び替えられることになる。

テキストをフォークする

上記した通り、漢籍リポジトリから興味のあるテキストを「借り出」して、それらを個人の「図書館」にコピーすることが可能である。この行為は、その場所から道が二つの異なる方向へと向かっている分岐点という意味で、テキストの「フォーク(fork)」として知られている。テキストを「フォーク」することで、そのテキストは漢籍リポジトリにもいまだ残存するので、ユーザーはそれとは独立してテキストを編集できる。これは、テキストに新しいバージョンを加えるというブランチ作成とは概念的に異なる。フォークすることですべてのブランチの完全なコピーを作ることになる。それはすべてのブランチの状態のスナップショットを取り込み、それらをそれぞれの元の位置と共に記録する。これは重要なポイントだが、フォークはGitHubシステムに特有なアクションである。フォーク後、この新しいテキストはGitHub上のユーザーのアカウントで編集できる。kanripo.orgウェブサイトに表示されたテキストは「GitHub」とレベル付けされたリンクを持つ。このリンクがGitHub上の対応ページに直通しており、そこでテキストはフォークされる。テキストがすでにフォークされている場合、リンクはその代わりにそのページを編集モードにする。それゆえに、このリンクは例えばユーザーがテキストの訂正を行ないたい時に使うことができる。

「クローン(clone)」と呼ばれる、テキストをコピーするまた別の方法もある。この場合、テキストはクローンが開始されたローカルマシンにコピーされる。GitHub上の@kanripoアカウントにあるテキストも、ユーザーアカウントにあるテキストの「フォーク」も、両方ともクローンすることができる。後者の場合、ユーザーはローカルで作ったアップデートをそれらのオンラインアカウントのテキストバージョンへと「プッシュ(push)」することもできる。@kanripoアカウントのテキストは、プッシュすることが許可されていないので、ユーザーアカウントから直接アップデートできないことに留意すること。変更を漢籍リポジトリへとプッシュすることを望むユーザーは、テキストをフォークし、その後で「プルリクエスト(pull request)」と呼ばれる異なる手段を使わなければならない。この手段については後ほど説明する。プルリクエストに必要な条件はフォークが存在することであり、それゆえに、プルリクエストを行ないたいユーザーはまずテキストをフォークする必要がある。

マンドク

クロースリーディングや翻訳といった、集中的にかつ長時間にわたりテキストを扱う時にはマンドクの使用を勧める。このアプリケーションはユーザーが興味のあるテキストをダウンロードし、それらをオフラインで(インターネットに接続していない間も)編集することを可能にする。 マンドクはその基盤として、30年以上も開発が継続されており、たいへん洗練されたテキストエディターであるEmacsを使っている。これらを説明する概念や専門用語のいくつかは現在のソフトウェアより前にさかのぼるもので、なじみのないものかもしれない。 ここではマンドクをウインドウズやMac OS X、Linuxにインストールする方法を説明する。そしてこのプログラムのいくつかの機能について概要を述べる。 要件:

  • すべてのプラットフォームに対して、インストールのプロセスとソフトウェアアップデートのためのgitとpythonが必要。またプログラムを実行するのにEmacsが必要なのはもちろんのことである。
  • 使用できるネットワークコネクション。
  • インストールのための約400MBのディスクスペース5

インストール6

ウインドウズ

マイクロソフト ウィンドウズのオペレーティングシステムを使っているコンピューターにマンドクをインストール方法は三つある:

  • (1)必要なファイルやプログラムすべてを含む「バンドル」を使用する。
  • (2)すべてのコンポーネントを別々にインストールし、Emacsのためのマンドクのパッケージを手動で加える。
  • (3)gnupackのディストリビューション7 をインストールし、Linuxの適切な指示に従って進める。

まだEmacsになじみのないユーザーには一つ目の方法を勧める。すでにEmacsの比較的最近のバージョン(24.4以降を推奨)を持っているユーザーは、二つ目の方法が最適である。三つ目の方法は日本語や中国語で働くのに最適な環境を提供するが、他のWindowsプログラムとのファイル交換にはかなり高度な専門知識が必要とされる。それでこの手のディストリビューションになじみのないユーザーには勧めない。ここでは主に一つ目の方法について論じる。 マンドクを使い始めるのに必要なファイルすべての入ったディストリビューション「バンドル」はマンドクのウェブサイトから入手できる。

ウィンドウズ用インストールバンドルをインストールする

ウィンドウズ用バンドルはウィンドウズ 8と10上でテストされている。このバンドルはウィンドウズの以前のバージョンでも動作するかもしれないが、テストはしていない。以下のマンドクバンドルに含まれているEmacsアプリケーションはNTemacsプロジェクト (ntemacs) からの24.5バージョンである。このバージョンは中国語や日本語の入力メソッドで動作することが確認されている。

krp-win-install1.png

図 13:krpフォルダーをC:ドライブへ移動する

  1. マンドクバンドルは、必要なファイルのダウンロードやアップデートに使われるgitプログラムのバージョンを含んでいる。
  2. マンドクのインストールバンドルmandoku-2016-03.zip(200MB)をダウンロードする。
  3. アーカイブファイルをダブルクリックし、図8に示されているように、展開したkrpフォルダーをあなたのコンピューターのルートディレクトリ、例えばC:やD:に移動する。フォルダーをUSBメモリや外付けハードディスクに移動させることもできる。ユーザーフォルダーにコピーしてはならない。そこでは正しく動作しないかもしれないからである。
  4. krpフォルダーの中でbinフォルダーへナビゲートし、その後、動作環境を設定しEmacsを起動するバッチファイルである「start-mandoku」ファイルをクリックする。このファイルはデスクトップに置かれたショートカットからアクセスすることもできる。これで次回もまた簡単にファイルを見つけることができる。このようなショートカットを作成するには「start-mandoku」ファイルを右クリックし、「送る」を選択、そして、「デスクトップ (ショートカットの作成)」を選択する。そうすれば、次回からEmacs(とマンドク)をスタートするためにこのショートカットを使うことができる。あるいは、簡単にアクセスするために、このショートカットをタスクバーにピン留めすることもできる。

マンドクをMac OS Xにインストールする

Mac OS X 10.9以降の入っているコンピューターにインストールバンドルは必要ない。このオペレーティングシステムの標準インストールにEmacs以外はすべて入っているからである。マンドクをインストールするにはEmacsのバージョン24.4以降を使うこと。(macemacs から入手できる千葉大学の山本光晴によるパッチを含むバージョンを推奨する。このバージョンはUnicodeの全範囲をサポートしているからである)。このリンクからzipアーカイブをダウンロードし、ダウンロードしたファイルをクリックして展開し、そのファイルEmacsをあなたのアプリケーションフォルダーにドラッグするだけである。

Emacsをインストールしたなら、今度はマンドクのパッケージをインストールしアクティベートする必要がある。これはさまざまな方法で行うことができるが、ここではその内の二つを概説する。どちらでもやりやすいと思う方を使って欲しい。

  • マンドクをアクティベートする:方法1

    マンドクをアクティベートする一つの簡単な方法は、mdactiv のテキストファイルをダウンロードし、それをEmacsで開け、それからメニュー項目「Emacs Lisp」を開けて「Evaluate Buffer」をクリックして実行することである。するとEmacsはマンドクとそれが必要とする他のパッケージすべてをインストールし始める。

  • マンドクをアクティベートする:方法2

    Emacsを開けて「scratch」バッファを見つける。このバッファはバッファメニューには入っていないかもしれないが、バッファメニューの「List all buffers」から入手できるバッファリストには常に入っている。*scratch*バッファに入ったら、以下のコードをコピーし、そこにペーストする:

    次に、カーソルをこのバッファの一番最後、最後のとじカッコ「)」の後ろに持って行き、「Control-x」続いて「Control-e」を押す。これでうまく進むはずである。Emacsはマンドクと必要な他のパッケージをインストールする。

Linuxコンピューターにマンドクをインストールする

マンドクを使うためにはEmacsのバージョン24.4以降をインストールする必要がある。どのようにしてそれを行うかはシステムによって異なる。通常、このタスクのために使うパッケージマネージャーがあるはずである8

十分に新しいバージョンのEmacsをインストールしたなら、Mac OS Xのコンピューター用に上記した詳細に従って方法1か方法2を使い、マンドクパッケージを加える。

MacintoshかLinux上でマンドクを初めて起動する

Windows用のバンドルでは、プログラムが起動するとマンドクが自動的に起動するようにEmacsは設定されている。しかし、その他のシステムでは、マンドクはユーザーが起動しなければならない。初めてマンドクを使いはじめる時には、目録を表示するよう手動でマンドクに求めなければならない。これは「M-x」とタイプすることで実行できる。(Mac OS Xではこの「M」は通常「command」キーに対応するが、環境設定によっては「option」か「alt」キーであることもある。Emacs のアプリケーションウィンドウの下部に「M-x」が出るまでそれぞれのキーを「x」と同時に押すことを勧める)。ひとたびキーを離すとEmacs ウィンドウの下部にプロンプトが現れる。これはミニバッファと呼ばれる。このプロンプトに「mandoku-show-catalog」とタイプし、「Enter」キーを押す。これでマンドクパッケージが初期化される。このプロセスはまた、次回も目録が即座にロードされることを確実にする。これで再びこのプロセスを踏む必要がなくなる。 するとマンドクは、漢籍リポジトリの使用に関連したファイルをどこに置きたいか聞いてくる。これはほとんどがテキストであるが、他のデータファイルもある。テキストで働いている間に作成したデータなどである。プログラムはデフォルトのロケーションとして「~/krp」、すなわちホームディレクトリの「krp」フォルダーを提案してくる。「Enter」を押してこれを受け入れることもできれば、異なるパスを指定することもできる。これ以降のプロセスはすべてのシステムで同じで、それは次の項で説明する。

GitHubに接続しworkspaceをインストールする

しばらくの間、Emacsはオペレーションに必要な他のパッケージのダウンロードとインストールを続ける。これらのアクティビティの進行を報告するメッセージがスクリーンに現れる。そして最終的にダウンロードとインストールが終了すると、EmacsはGitHubに接続し、そこからあなたのworkspaceを(それが存在する場合)ダウンロードする。

この時、EmacsはあなたのGitHubユーザー名とパスワードを聞いてくる。これはGitHubサイトにあなたの認証「トークン」を作ることを求めるために使われる。このトークンは保管され、あなたの使用する特定のコンピューターからのそれ以降のアクセスに使われる。パスワードは一度入力するだけでよく、それは保管されず、トークンが保管されることに留意すること。この起動プロセスには少々時間がかかるかもしれないが、これは初回のみ必要なだけである。今の段階ではGitHubにログインしたくなければ、このステップを省略し、すぐにマンドクを使い始めてもよい。後になって漢籍リポジトリからローカルコンピューターで使用するためにテキストをダウンロードする時には、あなたのGitHub信用情報を使う必要が出てくる。

コンピューター上のkrpフォルダーのレイアウト

マンドクは通常、そのオペレーションの間に作成され、編集され、ダウンロードされたファイルのすべてをkrpという名前を持つフォルダー階層に保存する。Windowsでは、これは一般的にルートディレクトリーに置かれるが、他のシステムでは通常、ユーザーのホームディレクトリーに置かれる。この節ではこのフォルダーのレイアウトと意味を説明する。

Table 1: The folders in krp - 図# krp の中のフォルダー
name edit description 備考
KR-Gaiji part List of non-system characters 外字表と画像
KR-Workspace yes Workspace shared with website ワークスペース、ウエブサイトと共用
images no Facsimile images デジタル・ファクシミリ
index no Index for local files ローカル・テキストのインデックス
meta part Catalog files 目録
system no Some files used by mandoku マンドクのシステムファイル
temp yes Temporary files, can be deleted occasionally 臨時的な物、削除可能
text yes Texts downloaded for local use KRからコピーされたテキスト
work yes Additional files not from KR ユーザーのファイル
bin no Windows only: Emacs, git, python and other programs ウィンドウズのみ:Emacs、gitなど

表1はkrpフォルダーの中に置かれているフォルダーの典型的なリストを短い説明と共に示している。2列目「edit」にはこれらのフォルダーの状態(編集可能か、そうであればその程度)が表示されている。システムだけが使用するためのフォルダーがいくつかあり、ユーザーはそれらのコンテンツを直接編集してはならない。ファイルを図らずも削除してしまったり破損したりすることで発生する問題を防ぐためである。それゆえに、「edit」は「no」に設定してある。他のフォルダーはシステムが使うファイルと必要であればユーザーが編集できるファイルの両方を含んでいる。metaとKR-Gaijiフォルダーがその例である。 ユーザーは通常、KR-Workspaceやtext、workの中のいくつかの、あるいはすべてのファイルを編集する。KR-WorkspaceはGitHub上にある同じ名前のフォルダーのコピーであり、通常、これら二つは同期している9。textは、漢籍リポジトリからダウンロードされたテキストファイルが保管される場所である。このフォルダーに含まれるテキストは、ユーザーが必要に応じて編集できる。一方、workは、システムに提供するために、ユーザーが自らのファイルを置くことのできるフォルダーである。これはオンライン資料の中で解説されている高度な用法である。

マンドクの活用

マンドクはエディターEmacsの機能性を拡張するパッケージである。これは、マンドクを使っている間、Emacsの主要機能すべて、およびユーザーがインストールしたその他の拡張機能、これらのすべてを利用できるということである。総じて、たいへんパワフルなシステムを自由に使うことを可能にする。マンドクを使うことは最初は難しげに思えるかもしれないし、Emacsでのやり方に慣れるのにも時間がかかるが、時間と労力をかけるに必ず値する。しかしながら、ここはEmacsの概要を紹介する場所ではないので、以下ではマンドクが提供している主な機能をいくつか紹介するに留める。

krp-mandoku-read.png

図 14:一時的な場所でブラウズするために開けられたテキスト

閲覧

マンドクは、ユーザーがウェブサイト上で行うようにリポジトリの内容をブラウズすることを可能にする。これは目録10から「漢籍リポジトリ」のリンクをクリックするか、あるいはカーソルをこの語句を構成する下線の付いた青文字に置いて「Enter」キーを押すことで簡単に実行できる。これにより目録中の6部分類が表示される。そしてこれらのリンクのどれか一つをアクティベートすることで、目録中の望みの小区分を表示できる。図9に示されているように、テキストのリストが表示され、そこから読みたいテキストにアクセスできる。

これは重要なポイントだが、テキストのブラウズを可能にするために、テキストはサーバーから一時的な場所にダウンロードされている。テキストを読むためには、それがユーザーのプライベートなローカルライブラリにダウンロードされ、そこで提供されていなければならない。これが図9に示されているテキストの2行目の意味である。「このファイルを編集しないでください。編集したい場合には、Control-c dを押してまずそれをダウンロードしてください」

github-fork-remote.png

図 15:テキストKR5h0001のクローン、フォーク、リモート追加後の状況

ファイルをダウンロードするには次の指示にしたがうこと。「Control」キーと「c」キーを同時に押し、両方を離し、それから「d」を押す。これがダウンロードのプロセスを開始させる。この時点で、あなたのGitHub信用情報(ユーザー名とパスワード)が必要とされる。これらを以前すでに入力している場合、ここでは何も入力する必要はない。あなたのGitHubアカウントにアクセスする認証のトークンはすでに作成されているからである。

ダウンロードが完了すると、マンドクは「Fork repository and add remote?(リポジトリをフォークし、リモートを追加しますか?)」と聞いてくる。上で説明したように、「フォーク」はGitHub用語でGitHubユーザーアカウントにあるテキストをコピー(「クローン」)することである。この問いに「yes」と答えたなら、フォークが作成され、このフォークされたテキストのリファレンスがクローンされたテキストに追加される。このようなリファレンスは「リモート」と呼ばれる。「Yes」と答えると図10に図解されるような状況になる。これでテキストは全部で三つ存在することになる。一つ目はユーザー@kanripoが所有し、二つ目は現在のユーザー(ここでの場合は@cwittern)が所有する。これらのコピーは両方ともGitHub上、すなわち「cloud」の中に位置する。三つ目のコピーは現在のユーザー、cwitternのコンピューター上にある。テキストがそこからクローンされたという場所は、通常、「Origin」と名付けられたリモートレファレンスとして記録される。上記の問いに「yes」と答えるとフォークが作成され、今度は「cwittern」の名前の下に別のリモートを生み出される。つまり、GitHubユーザーの名前がこの場合リモートの名前となる。問いへの答えが「no」であった場合、フォークは作成されず、何のリモートも追加されない。それで、GitHub上の@cwitternのユーザーアカウントの中のテキストは存在せず、テキストは2コピーのみとなる。

krp-magit-show-refs.png

図 16:KR5h0001のテキスト(上半分) とMagitブランチマネージャーでのリファレンス(下半分)

この状況はまたマンドクの中からも確認できる。マンドクと一緒にインストールされたEmacsパッケージMagitはgitと対話するのに使われる。これは「Control-x」続いて「g」を押すことでアクティベートするように設定されている。(これはオーバービュースクリーンを表示する)。「y」を押すと、今度はブランチマネージャーを表示する11。新しくダウンロードしたテキストを読んでいる間にMagitが呼び出されると、図16のようなディスプレイが現れる。見てもらえばわかる通り、リモートに利用可能なブランチすべてが表示される。カーソルキーはそれをヴューするためにいずれかのブランチに移動するのに使うことができる。それはこのブランチのテキストを取得し表示する。

題名で検索

特別のファンクションキー「F7」を題名検索のために設定している。このキーを押すとスクリーンの下部にプロンプトが表示される:「Mandoku | Search for title containing: 」。ここに文字を入力して「Enter」を押せばよい。入力した文字を含む全ての題名の検索が実行される。表示される題名のリストはウェブサイト上のものと同じで、王朝や著者の名前も同様に含まれている。

カーソルを特定の題名に移動させ「Enter」を押すことで検索結果に表示された題名リストから望むものを選択できる。あるいは、マウスを使って題名をクリックしてもよい。

krp-mandoku-taiping.png

図 17: 太平經のマンドクインデックス

テキスト内を検索

「F6」を押すことで特定した文字列の全文検索が開始される。このコマンドは、テキストを読んでいて、ある用語をそのテキスト内で検索したい時に使うよう意図されている。このコマンドはカーソルの位置から始めて6文字を取り、プロンプト「Search for: 」の後ろに表示する。必要であればこの検索列は編集できる。その後、「Enter」を押すことで検索を開始する。

用語「太平經」の例において結果として出て来る表示は、図11に示されるように、ウェブサイト上のそれと似ている。この場合、406の検索結果がある。「location」はリンクになっており、テキストを表示するためにアクティベートできる。デフォルトとしてEmacsは1ページに2,000まで検索結果を表示する。

gitの「コミット、プッシュ、プル」についてのとても短い速成コース

gitソフトウェアはあなたのコンピューター上のテキストのブランチやバージョンを把握するのに使われている。これはまたGitHubの舞台裏でも働いている。これを使っている時にはいくつかの簡単なルールに従うことが重要である。

コミット

ファイルが編集されコンピューターに保存されると、gitはこの変更についての報告を受ける必要がある。このアクションは「このファイルをコミットする」と呼ばれる。このアクションの結果、現在の状態がgitの内部データベースに保存され、それが後でまた取得されるのに使われる。上記した通り、これで別のブランチに変えることが可能になる。Magit(レポジトリからダウンロードしたどのテキストからも「Control-x」続いて「g」を押すことでアクティベートする)において、これは「c」を押すことで開始できる。するとどのように進めるかの指示を記したポップアップウィンドウが表示される。

プッシュ

変更が行われた後、まだその現在の状態では、変更されたファイルはローカルコンピューターでのみ入手可能である。すべての関連したフォルダー(git用語で「リモート」)は、そこでも変更されたファイルが入手できるように、この変更について知らせを受ける必要がある。このアクションがリモートへの「プッシュ」と呼ばれる。Magitにおいて、これは「p」を押し、その後の指示に従うことで実行される。リモートとブランチを選択する必要があるが、通常、デフォルトで大丈夫である。結果として、変更がリモートのリポジトリ、例えばGitHubユーザーアカウントの接続されたフォルダー上にも現れる。

プル

プルはプッシュの逆である。これは、現在表示されているブランチに取り入れるべき変更があるかを確認するために、接続しているリモートフォルダーをチェックする。Magitにおいてプルを開始するには「F」キーを使う。

複雑すぎ? 全部を自動化

これがちょっと複雑で難しすぎるように聞こえても大丈夫。マンドクにはあなたのためにこれらすべてを自動化する設定がある。マンドクメニューでこの設定をオンにしたりオフにしたりできる。これは、定期的に、すべての関連ファイルを、それが必要であればリモートにプッシュし、またリモートから変更をプルする。インターネットに接続していなければ、後で再び接続した時に行われる。この機能はまた、GitHubユーザーアカウントからそのユーザーのすべてのテキストを(それがまだダウンロードされていなければ)自動的に取得する。これはほとんどの場合機能するが、それでも何かがうまく行かなくなる状況もあり得る。そのような場合、少なくとも何が起こっていて何がありうる原因か少しでも知っておくことは有用である。疑問があるなら、マンドクユーザーのメーリングリスト12に行き、そこから質問できる。

1
実のところ、それぞれのテキストについての詳細な情報を含んだ正当な目録も存在する。それは現在のところ「書庫」の kr-catalog においてのみ入手可能であるが、将来的には「閲覧室」に更に統合していく予定である。
2
入手可能なところでは、当該プロジェクトのシリアル番号が使われている。そのような番号が入手できない場合、道藏輯要のように、広く使用されている別の番号付け方法を適用している。この場合、「道藏輯要プロジェクト」で使用されたシリアル番号である。
3
これが重要なことである研究課題もあるので、個別のニーズに合わせてこのリストを適合できるようにした。これはより高度な用法の一つで、これに関しては後ほど説明する。
4
このサイトにはサインアップの手順が日本語で説明されている:gitja
5
場合によっては、USBメモリなどリムーバブルメディアに入れたポータブル版が使われることもある。
6
これらのインストールの指示はオンラインでも提供されている(mandoku-install )。オンラインの指示は最新で、また必要事項へのリンクも付いているので、このプログラムをインストールする時にはこのページにアクセスすることを勧める。
7
これはcygwinとその他Emacsも含めた補助的なソフトウェアをインストールする。そうすることで本質的にはLinuxやMac OS Xに似たオペレーティング環境を提供する。gnupackは gnupack で提供されている。必ず「development」版を使うこと。
8
すべての UbuntuシステムやすべてのLinux MintバージョンなどDebianを基盤とする多くのシステムにはデフォルトとしてかなり古いバージョンのEmacsが付いてくる。このようなシステムを使っている場合、公開されているtarballやGitレポジトリからEmacsを組み立てることを勧める。まずbuild-essentialパッケージをインストールし、それから「sudo apt-get build-dep emacs24」コマンドを発行することでそれを準備できる。この全プロセスは、例えば emacs24ub で説明されている。この方法はUbuntuのより新しいバージョンにも有効である。
9
どのようにしてこれがなされているかの説明は以下の「コミット、プッシュ、プル」を参照。
10
目録が見当たらない場合、それを表示する方法がいくつかある。まず「バッファ」メニューの中の「mandoku-catalog.txt」というエントリーを見る。あるいは、メニューの中に「マンドク」項目があるなら、「Browse->Show catalog」を使う。そうでなければ、最も簡単な方法は、上記「マンドクを初めて起動する」で説明した方法、つまりM-x mandoku-show-catalogを使う。
11
最も重要なコマンドの入っているMagitのヘルプスクリーンは「?」キーを押すことで呼び出せる。「Control-h」「 i」でEmacsのマニュアルを表示でき、そこにMagitのものも含まれている。
12
このメーリングリストはすべてのユーザーに開放されており、マンドクや漢リポの利用に関するあらゆる質問をすることができる。このグループの場所は次の通り: krgroup

参考文献