SAT大蔵経DBで仏典を読みながらJapan Knowledgeの仏教語大辞典を簡単に引けるようになりました

今回は、SAT大蔵経データベースJapan Knowledgeが連携して便利になった、という話です。

前置きが長いので、前置きを飛ばしてとりあえずどうなったか知りたい人は、下の方にある「ここから具体的な解説です」というところから見てください。

2008年から、SAT大蔵経データベースでは、「本文をドラッグすると英語の仏教語辞典を引いて意味を英語で表示する」という機能を提供していました。これはチャールズ・ミュラー先生のDigital Dictionary of BuddhismDDBの見出し語と意味のデータ(ついでにピンイン表記も)のデータをいただいたことで実現したサービスでした。これは英語圏の方々には大変喜ばれているだけでなく、英語で仏教のことを書いたり話したりしなければならない世界中の(日本も含む)方々からも好評を博している機能なのですが(一方で、あれのせいで学生がちゃんと辞書を引かなくなったと怒っている米国の大学の先生もおられるそうですが)、しかし、せっかく日本で作っているのに日本語の意味を表示できないのはなんとも残念なことでした。

一方で、有料コンテンツとの連携ということもSAT大蔵経DBでは課題の一つでした。というのは、これまで、SAT大蔵経DBは基本的にフリーのコンテンツを集めたり連携したりしてサービス提供をしてきました。しかしながら、著作権保護期間中の有料コンテンツの中には素晴らしいものがたくさんあります。そもそも優良なコンテンツを作成するには費用が発生することが多いので、利用者が個別に支払った費用がコンテンツの作成に回るという仕組みもまた、捨てがたいものがあります。そこで、フリーのデータベースでありながら、適切な対価を支払えば有料コンテンツも使える、ということが実現できないだろうか、それも、学術データベースの文脈から取り組めないだろうか、ということは、プロジェクトの中でもずっと検討されてきたことの一つでした。

ここでの問題の一つは、学術データベースプロジェクトが課金システムを運用できるか、さらには、課金を要するコンテンツを適切に管理できるか、ということでした。20年前ならいざ知らず、現在のその種の業務の要求水準からすると、それはさすがに手を出すには大き過ぎる課題であり、やむを得ずペンディングとなっていたのでした。

そこに、降って湧いたように登場したのが、Japan Knowledgeでの『仏教語大辞典』搭載の話でした。機関契約だけでなく個人契約サービスも提供しており、国内だけでなく、世界中の大学・大学図書館をはじめ、各地にたくさんの契約機関とユーザを抱えているJapan Knowledgeが、SAT大蔵経DBと関係の深いコンテンツを提供し始める、という話をうかがったとき、これは良い機会だ、ということで、さっそくSAT大蔵経DBとの連携の話になりました。ありがたいことに、見出し語と日本語ふりがなのデータと個々の見出し語のURLのリストをいただけることになりましたので、上記のDDBの検索機能をほぼそのまま援用して、SAT大蔵経DBに組み込んでしまいました。その結果、下記のようになりました。

ここから具体的な解説です。

1.まず、右下の小さなウインドウに注目してください。これが今回新規追加されたJapan Knowledge用ウインドウです。

2.では、まず、お経を一つ、開いてみましょう。一番最初のものを開いてみます。


3.次に、どこでもいいのでテキストをドラッグしてみましょう。そうすると、右下の小さなウインドウに仏教語大辞典の見出し語検索結果がリストされます。(ここでは、見出し語を最長一致で検索しています。さらに、その際に、異体字での検索も行っております)

4.リストされた見出し語をクリックしてみましょう。そうすると、ポップアップウインドウが開いて、仏教語大辞典の説明が表示されます。
(ただし、Japan Knowledgeの機関契約か、パーソナル+Rの個人契約をしている必要があります。それから、パーソナル契約のログインをしていない状態でアクセスした場合は最初の表示画面は機関契約向け画面になりますので、機関契約アクセスでない場合はパーソナル契約のログイン画面に行ってログインしてください

以上です。兎にも角にも、日本語で意味が出るようになったのは一つの大きな前進かと思っております。

これは、フリーのコンテンツと有料コンテンツを有機的に組み合わせてより良い学術デジタルアーカイブを作成・提供していくための実験の一つです。他にも、うまく組み合わせられそうな有料コンテンツがあれば、ぜひ取り組んでいきたいと、個人的には考えております。特に、有料コンテンツを作っておられる皆様は、ぜひ前向きにご検討ください。


ちなみにSAT大蔵経DBは、これ以外にも色々な機能を提供しておりまして、下記のタブから、関連する書誌情報+CiNiiの論文PDFを引いたり、英訳対応コーパスを検索したり、単語の登場頻度を見たり、文字の情報を確認したり…と、色々な機能が提供されておりますので、興味があるかたはクリックして開いて、試してみてください。

日本の古典籍のオープンデータ! その2

前回の続きである。

あれもこれもしながら合間にちょこちょこっとやっているので、なんとも微妙なシステムを公開してしまっていて大変恐縮なのだが、

今夜は、示した頁に付与されたタグを表示する時に、同じタグを付与されている別な本/頁へのリンクをリストするだけでなく、さらに、別な本/頁のサムネイル画像まで表示した上で、サムネイル画像をクリックするとその画像がまんなかに表示されるようにしてみた。これによって、タグ付けの意義と課題がよりいっそう見えやすくなるのではないかと思っているところである。

たとえば、下記のURLでは「頼朝」をみてみると、文字だけの頁にも「頼朝」のタグがついている。文字だけの頁だと、どこに「頼朝」の文字列があるのか探すのが結構難しかったりして、やはり画像中の座標情報をとってもらえたらと思ったところである。

http://www2.dhii.jp/nijl_opendata/NIJL0018/099-0014/11

また、「頼朝」は「よりとも」や「源 頼朝」など、色々な表記のタグがあるようで、シソーラスの必要性を改めて感じたところである。

あるいは、下記URLの「一条院」は色々な本にタグつけされているようで、これもなかなか面白い。

http://www2.dhii.jp/nijl_opendata/NIJL0032/110_0619/31

それから、当然のことだが、『寛政武鑑』は異版にそれぞれ割と細かくタグをつけているので、サムネイル画像一覧は結構便利だろう。

http://www2.dhii.jp/nijl_opendata/NIJL0302/MIT-Y01201-143/4

また、さらに、サムネイル画像をクリックすると中央の画像が切り替わるという機能もつけておいたので、それぞれのサムネイル画像をクリックしていくと、パラパラ漫画的に違いがわかるのでこれはこれでちょっと面白い。別ウインドウで開いて詳細に比較してみたければ、頁番号を右クリックして別ウインドウで開いていただくとよい。

というような機能を今夜はつけていたわけだが、昨晩のブログ記事の続きは…眠いのでまた今度。

日本の古典籍のオープンデータ! その1

日本の古典籍の本格的なオープンデータが公開されたのは今月の上旬。今回の場合、何が本格的かと言えば、その画像の圧倒的な容量である。下記のサイトをご覧いただけば一目瞭然だが、26GBだの30GBだのといったファイルがHTTPでダウンロードできるようになっているのである。
http://www.nii.ac.jp/dsc/idr/nijl/nijl_list.html
もちろん、そんなサイズのファイルをHTTPでダウンロードさせるというNIIの豪気さにも圧倒されるが、P2Pセキュリティポリシー等で禁止している機関もNIIにはぶら下がっているそうだし、anonymous FTPというのもFTPのポートを閉じているところがあるかもしれないと思うと、なんでもHTTPという昨今の情勢をNIIが後押しするようなことも色々な事情から致し方ないことなのだろうかとも思う。

 さて、そんなどうでもいい感想はともかく、とりあえず350点もの日本の古典籍の画像+書誌データ+解題+タグがCC BY-SAで公開されるというのは大変に感動的なことであって、これはぜひ活用せねば…と思って見てみようと思ったら、とりあえず見てみる、というのがなかなか困難な状況であることに気がついた。(というか一目瞭然だが)。

 そこで、とりあえず公開されているデータを一通りざっと見えるようにしてみようかと思うに至った。(ここまで、公開データのサイトを見てから数分で考えたこと)。

 そこで、作ってみたのが「国文研データセット簡易Web閲覧」というサイトである。とりあえず、OpenSeaDragonで画像をぬるぬると拡大縮小できたりとか、サムネイル一覧をざっくり見たりとか、付与された解説やタグが見えるようにしたりとか、タグによる頁間のリンクを張って関連頁をたどれるようにしてみたりとか、見栄えは気にせず、とにかく内容を確認できるようにしている。

 特に、「タグ-頁画像対応リスト」と「タグリスト」は色々活用できると思うので、このままローカルに保存して色々いじっていただいたりするのもよいと思う。特に、「歴史的典籍オープンデータワークショップ」に参加してみようと思っている人は、ぜひ、予習に活用していただきたい。

 というわけで、上記のサイトを作るためにやったことを少しずつ書いていくつもりである。まずはデータのダウンロードである。wgetで一括ダウンロード。容量が大変だが、これは待っていればいいのでOKである。たしか1日で終わったような気がする。

 次に、zipファイルを戻す作業。これも基本的には一括作業。元々tcsh使いだったこともあり、知識が断片的なのでcsh系で
$ tcsh
$ foreach f (*.zip)
> unzip $f
> end

ということをして、あとはひたすら待ち。これも結構時間がかかった。

さて、次に、ビューワやサムネイル一覧のための画像加工をしなければならない。まずサムネイル一覧のための画像加工だが、これもまたcsh系で、サーバに入っているImageMagickを使って(この種の操作は10年前からまったく進歩していないのだが)、
$ tcsh
$ foreach f (*/*.jpg)
> convert -resize 200x $f $f:rs.jpg
> end

とやって、どんどんサムネイル画像を作成していくのである。これもあとはひたすら待ち。

次に、画像ビューア、OpenSeaDragonで表示するためのピラミッドタイル画像の作成。このタイル画像作成のツール色々なものが公開されているが、今回はDZIでpythonのものをダウンロードして、用意したディレクトリを全部読み込んでこのスクリプトを実行していくスクリプトを書いて、あとはひたすら待ち。atコマンドで動かしたが、結局この作業に1週間以上かかった。

というわけで、ピラミッド画像作成が終わったところで、いよいよOpenSeaDragonを使ったサイトの作成に入ったわけだが、それはまた次回に。

JATS-Con Asiaに参加できなくて残念です:JATS/XMLとJ-Stageについての質問

JATS-Con Asia ミーティングという、ユーザ目線で大変興味のあるイベントが、しかも都内で開催されるというのに、別な国際会議が松江で開催されるというので泣く泣く参加を断念した。今は松江にいる。

泣きそうになるほど残念だった理由は、J-Stageに論文を登載する作業の際に改めて直面した「スペースの扱いの問題」についてどれくらい業界で認知されているのか、ということをおかがいしたかったからである。XMLに詳しい人たちにとっては既知のことだと思われるのだが、単語間が空白で区切られている表記体系と区切られていない表記体系との間では、改行・空白・タブなどの扱いを微妙に変更しなければならない、という件である。

かいつまんで言えば、英語だとテクストデータが改行されている場合、改行は単語の切れ目とみなして1つ空白を入れようということになりがちである。タブも同様である(これを仮に「分かち書きタイプ」としておく)。しかし、たとえば日本語では、そもそも空白を文章の中で使う機会が少ないということもあり、改行されている場合であっても、単語の切れ目である可能性は高くないので(これを仮に「非分かち書きタイプ」としておく)、とりあえず改行等が入っていても無視して、明示的に空白が入っている場合はそれを処理や表示に反映させようということになりやすい。

実際の所、J-Stageでは、(私が使ってみた限りでは:やり方が悪かったのかもしれないが)、メタデータ登載の際に、英語・日本語をlangで指定できるようになっているにも関わらず、英語を指定した場合でも、明示的な空白が入っていない限りは、改行の扱いは「非分かち書きタイプ」だった。私が使っているXMLエディタの設定の問題もあるかもしれないが、デフォルトでは「分かち書きタイプ」を前提として処理が行われるため、結果として、「表示・処理の際には空白として扱われることを前提としている改行が削除されて単語間がつながってしまう」という状況になっていた。単にCSSの書き方の問題だと思うので技術的には深刻な問題ではないのだが、J-Stageのような大規模システムでこういう仕様になってしまっていると、せっかくの効率化の効果が十分に発揮されないのではないかという気がした。もちろん、非分かち書きタイプにあわせて分かち書きタイプの処理方法を変えていくという手もあるかもしれないが、それはたとえばUnicodeが広まったからといってすべてのソフトウェア開発者が多バイト文字の処理に前向きに取り組んでくれるのかという微妙な問題と似たような感じで、やはり後々に微妙な問題となっていくのではという気もしないでもないが、XMLの場合はlang属性でとりあえずデータ側で切り替えができるので、処理系の方でlang属性を見て処理を切り替えてもらえるとありがたいなと思っている。なお、そこら辺のことについて、JATSに深く関わっているMulberry Technologiesの方々や、先日、日本にご招待したWendell Piezさんとお話をする機会もあったのだが、東アジアは大変だよね、ということで、まあ自分たちの問題は自分たちで解決しなければならないのだなという思いを新たにしたところである。

この点について、非分かち書きタイプのテクストが多い東アジアでは最近はどういう風に考えているのか、どう対応しているのか、そういう中でJ-Stageの仕様はどういう位置づけになるのか(普通なのか、ちょっと作り込み損なったのか、今後改善する予定があるのか、それとも分かち書きタイプの書き方を変える方向を目指しているのか、というような)、ということをおうかがいしたかったのだが、残念ながら、参加できなかったのでとりあえずここに書いてみることにしたのであった。

人文学に役立ちそうなプログラミングの勉強会(中級編)

ここしばらく、TEI/XMLの勉強会を全国各地で開催してきましたが、そろそろ次の一歩に進んでみようかと思います。題して「人文学に役立ちそうなプログラミングの勉強会」です。

といっても、「次の一歩」というほど今までの勉強会を踏まえたものになるかどうかわかりませんが、とりあえず今回は試しとして、一つは

https://sites.google.com/site/opuoageijutsu/link/1

の検索システムの解説&こういうものを簡単に作れるようになるための基礎知識(?)の習得、を目指したいと思います。(この検索システム、たとえば「沖展」などのキーワードで検索してみてください。)

この検索システムは、jQuery UI、とd3.jsを組み合わせたもので、検索結果をグラフ表示したりできます。あとは、CSVファイルを読み出してキーワードの共起情報を集めるという単純なものです。こういう単純なものをどうやって簡単に作るのか、といった辺りの話をしつつ、実際に作ってみながら、色々試してみたいと思います。

それからもう一つ、『走れメロス』のTEI/XMLファイルを作ってみたので、これを使って何かしてみてもらいたいなと思っています。これはDOM操作と上記の仕組みを組み合わせて色々できるのではないかという話です。一応、2日間開催の予定です。

というようなことで、これまでの、そこそこきちんとスケジューリングされた勉強会とは打って変わった、ぬるくてもやもやとしたオーガナイズされてない感じの勉強会になると思います。それでも興味がある、という人は、下記の要項をご覧いただいた上で、ツィッターで @knagasaki 、もしくは dhworkshop_at_dhii.jp (_at_を@に置き換えてください)までメッセージをください。定員は8名までとしますので、先着順ということでお願いいたします。

「人文学に役立ちそうなプログラミングの勉強会」
日時:2015年7月23日、24日(10:00〜18:00くらい。適宜休憩あり)
場所:一般財団法人人文情報学研究所 http://www.dhii.jp/access.html
参加費:無料
持ってくるもの:Unix系OSApachePHPが稼働して無線LAN接続可能なノートパソコン。Windowsの場合はVMware等のバーチャル環境でLinuxを動かしていただくことになります。HDD/SSDの空き容量を10GB以上用意してください。

奮ってご参加ください、というほどでもないのですが、しかし、やる気がないとついてこれないと思いますので、その旨、よろしくお願いいたします。

セキュリティがかかってなくてテキストが埋め込まれているPDF群からテキストを一括して抜き出す

セキュリティがかかってなくてテキストが埋め込まれているPDF群からテキストを一括して抜き出す(Windows - Cygwin編)

はじめに

Windows - Cygwin編、としているのは、単に、OSとしてUnix系をなんとかするという大仕事をせずに、Windowsからあまり離れずになんとかしよう、という目論見です。Macなら多分、ターミナルを使えばすぐにできることではないかと思います。

なぜわざわざUnix系コマンドを使うことを奨励するかと言いますと、Unix系コマンドは、テキスト処理のコマンドが豊富だから、ということがあります。字数をカウントしたり、行数をカウントしたり、ちょっとしたテキスト検索をしたり…と、色々なコマンドが用意されていて、ググれば色々な処理方法が見つかります。本当はVMware PlayerをインストールしてLinux (CentOSUbuntuなど)をインストールしていただた方がなおよいのですが、ここはまあ、まずは入り口ということでCygwinで。Cygwinは、かいつまんで言うと、Windows上でUnix系コマンドを使えるようにするソフトウェア(環境)です。

Cygwinのインストール(+パッケージの追加)

Cygwinのインストールは http://cygwin.com/install.html を見てください。日本語の解説もたくさんのWebページに載っていますので、適宜参照してください。ただ、注意していただきたいのは、今回のミッションのために、インストール時に少し工夫していただく必要があります。インストール時に、2つのパッケージの追加インストールを指定する必要があるのです。一つは「tcsh」もう一つは「poppler」です。インストール時にパッケージの確認をする画面が出てきます。そこで検索窓が上部にありますので、tcshとpopplerを検索して、それぞれ「skip」となっているところをクリックしてください。そうすると、Skipとなっていたところがバージョン名表示などに変わると思います。そうしましたら、先に進んでください。インストールが終了すれば、準備は完了です。

フォルダ/ディレクトリの確認と作業用ディレクトリの作成

Cygwinを立ち上げましょう。なんの変哲もない、コマンドプロンプトのようなものが開きます。ここでまずは
$ pwd
という風に入力してEnterキーを押してみてください。現在のディレクトリが表示されます。私の場合は /home/nagasaki となりました。

このウインドウはそのままにしておいて、次に、普通にWindowsのフォルダを開いてインストール時に設定したトップディレクトリ(ルートディレクトリ)に行ってみましょう。デフォルトだと、多分、C:\cygwin ではないかと思います。この場合、C:を開いて、cygwin フォルダを開いてください。そうしますといくつかのフォルダがあって、上記で表示された「home」というのがあると思います。それを開くと、上記で確認した「nagasaki」にあたる部分(人によって名前は違うはずです)の名前がついたフォルダがありますので、これを開いてみましょう。これが、上記で開いているディレクトリと対応しているフォルダです。ここで「pdf」というフォルダを作成してみましょう。

次に、Cygwinのウインドウ(コマンドプロンプトのようなもの)に戻って、「ls」としてみましょう。そうすると、上記で作成した「pdf」というのが表示されるはずです。作業ディレクトリをここに移動しましょう。
$ cd pdf
としてください。(=cd pdfと入力してEnterキーを押す。)そうすると、作業ディレクトリが「pdf」に移動しました。ここで、
$ ls
としてください。今はここにファイルが一つもありませんので、何も表示されないと思います。

PDFファイルの準備

さて、次に、お目当てのpdfファイル群をこの「pdf」フォルダにコピーしましょう。Windowsのフォルダの方でコピー&貼り付けすればOKです。

貼り付けしたら、Cygwinのウインドウに戻って、もう一度
$ ls
としてください。そうすると、今貼り付けたファイル群の各ファイル名がリストされるはずです。リストされなかったら、この時点で何か間違えているので戻って確認してみましょう。

テキストデータの一括抜き出し処理

さて、いよいよ、pdfファイル群からのテキストデータの一括抜き出しです。Cygwinにて、下記のコマンドを入力してみてください。
$ tcsh
$ foreach f (*.pdf)
$ pdftotext $f $f:r.txt
$ end

しばらく待つと、同じフォルダにテキストファイルが一つずつ生成されているはずです。中身を確認してみて内容が期待通りか確認してみてください。

終わりに

ちなみに、この作業は、一度Cygwin環境を用意できれば、あとは少しのコマンドを打つだけで済みますので、とにかく一度やってしまえば次からはかなり楽なはずです。

というわけで、頑張ってみてください。

SAT大蔵経テキストデータベース研究会 公開ワークショップ

SAT大蔵経テキストデータベース研究会

「仏教研究におけるデジタル技術の現在 〜SAT DBの具体的な活用手法について」
日時:2015年5月22日(金) 16:30〜18:00

場所:京都大学教育学部・第7演習室

    (吉田キャンパス本部構内・総合研究2号館B1F)

講師:永崎研宣(一般財団法人人文情報学研究所/SAT大蔵経テキストデータベース委員会)

概要

SAT2012の機能紹介とその後に追加された幾つかの新機能、及び、現在のSATの取り組みについてご紹介します。すでによくご存じという方でも、SATに対するご要望等がありましたらぜひこの機会に直接お知らせください。

ご参加に際して持ってきていただきたいもの

インターネット接続可能なノートパソコンをお持ちくださると色々便利かと思います。ただし、必須ではありません。なお、電源とインターネット接続は開催者側ではご用意できませんのでご注意ください。