# BaseX-ja - An implementation of Japanese lexer to BaseX

## これは何？

「BaseX」は非常に優れたXMLデータベースで、公式サイトのアナウンスによれば、 近々発表される W3C XQuery 3.0 Recommendation の機能をすでに提供しており、また、W3C XQuery Full Text 1.0 および、Update Facility Extensions の機能を完全に実装しています。 国際化の対応についても、格納するXML文書についてはもちろんのこと、インターフェースにおいても、サーバが返すメッセージやGUIツールのメニューなど、ほとんどの部分が各国語対応されていますが、 残念なことに、XQuery Full Text における字句解析機能は英語とドイツ語にしか対応していません。

このプログラムは、日本語形態素解析による単語の切り出しが可能になるように、「Igo - Java形態素解析器」を利用して、BaseXの全文検索機能を拡張したものです。

## 前準備

### (1) 必要なものを用意する

- BaseX-ja（このプログラム）
- Igo
- mecab-ipadic

### (2) 日本語辞書を生成する

Igo の BuildDic コマンドを使って、日本語辞書を生成します。

    $ java -cp igo-0.4.2.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

※詳細についてはIgoの公式サイトをご確認ください。

### (3) 日本語辞書を配置する

生成された ipadic/ をホームディレクトリ（System.getProperty("user.dir") で示される場所）にコピーします。

    $ cp -R ipadic /home/user-name

BaseX-jaは、まずクラスパス内で辞書をサーチし、もしなければホームディレクトリにあるものと見なします。

## 使ってみる

BaseXそのものの使い方やAPIについては、こちらをご覧いただくとして、 ここでは、手っ取り早く日本語全文検索機能を体験していただくために、BaseXGUI を使った一連の手順についてご紹介いたします。

(1) 日本語で記述された整形式のXML文書を用意します

(2) BaseXGUIの起動

    $ java -Dfile.encoding=utf-8 -cp igo-0.4.2.jar;BaseX-ja.jar org.basex.BaseXGUI

(3) データベースを作成します

1. BaseXGUI のメニューから［データベース］→［新規...］
2. 一般タブの「XML文書の保存」に用意した日本語XMLファイルを指定
3. 「データベースの名前」に任意の名前を指定
4. 全文タブの「全文インデックス」をチェック
5. 「言語」をチェックして、Japanese を選択
6. ［OK］ボタンを押す

(4) XQuery Full Text を試してみる

    //* [text() contains text '単語']

## 注意点など

### (1) 日本語特有の問題

BaseX-ja では、半角英数と全角英数は同一のものとして扱います

"ガンダムRX-78" に対しては "ガンダムＲＸ－７８" でもヒットします

ひらがなとカタカナは区別されます

"ガンダム" に対しては "がんだむ" ではヒットしません

### (2) 全文検索オプションについて

BaseX-ja では、現在のところ、英文に関わる以下のものについて動作を確認しています。

- Stemming Option
- Case Option

## リリースノート

2011.6.20 |  | Ver.6.3.3-1 |  | 初版公開

## ライセンス

BSD License (本家に準じます）
詳しい内容については、ソースコードに同梱されている license.txt を参照ください。

なお、使用する辞書のライセンスに関しては、辞書配布元のそれに準じます。

## 連絡先

バグに関する報告などは、こちらからお願いします

なお、BaseX-ja の日本語関連拡張は、私が独自に行ったものですので、この部分に関する質問などをBaseX プロジェクトチームに対して行ったとしても彼らは一切これを関知していません。 また逆に、BaseX由来の動作に関する質問は、私の方ではあまり詳しく答えられません。 そのようなものについては、こちらから行うとよいでしょう。

Last modified: Mon Jun 20 16:46:11 JST 2011

INDEX

- これは何？
- 前準備
  - (1) 必要なものを用意する
  - (2) 日本語辞書を生成する
  - (3) 日本語辞書を配置する
- 使ってみる
- 注意点など
  - (1) 日本語特有の問題
  - (2) 全文検索オプションについて
- リリースノート
- ライセンス
- 連絡先