# 日本語 Compaq OpenVMS
日本語ライブラリ 利用者の手引き

前へ | 次へ | 目次 | 索引

# 第 5 章
かな漢字変換ライブラリ

かな漢字変換ライブラリ とは，かな漢字変換を行うライブラリ・ルーチン群です。

同一の機能をもったルーチンが JLB$xxxxx と JSY$xxxxx の2種類あり， JLB$xxxxx はディスクリプタ形式で文字列の受け渡しを行うなど， VMS 標準のインターフェイスになっています。

この章では，かな漢字変換ライブラリの次の項目について説明します。

> かな漢字変換ライブラリ・ルーチン一覧
> 複文節変換ルーチン
> 単語単位変換ルーチン
> かな漢字変換辞書
> 注意事項および制限事項

# 5.1 かな漢字変換ライブラリ・ルーチン一覧

複文節変換ルーチン

複文節かな漢字変換を行うルーチン群です。

JLB$CNV_OPEN_DICTIONARY | 辞書のオープン
JSY$CNV_OPEN_DICTIONARY | 辞書のオープン
JLB$CNV_CLOSE_DICTIONARY | 辞書のクローズ
JSY$CNV_CLOSE_DICTIONARY | 辞書のクローズ
JLB$CNV_CONVERT | かな漢字変換
JSY$CNV_CONVERT | かな漢字変換
JLB$CNV_ROM_CONVERT | ローマ字漢字変換
JLB$CNV_GET_KANJI | 漢字文字列要求
JSY$CNV_GET_KANJI | 漢字文字列要求
JLB$CNV_NEXT_WORD | 自立語次候補
JSY$CNV_NEXT_WORD | 自立語次候補
JLB$CNV_PREV_WORD | 自立語前候補
JSY$CNV_PREV_WORD | 自立語前候補
JLB$CNV_GET_CLAUSE | 文節位置情報
JSY$CNV_GET_CLAUSE | 文節位置情報
JSY$CNV_GET_PHONETIC_CLAUSE | 読み文字列位置情報
JLB$CNV_SHORTEN_CLAUSE | 文節縮小
JSY$CNV_SHORTEN_CLAUSE | 文節縮小
JLB$CNV_EXTEND_CLAUSE | 文節伸張
JSY$CNV_EXTEND_CLAUSE | 文節伸張
JLB$CNV_CLAUSE_HIRAGANA | 文節ひらがな変換
JSY$CNV_CLAUSE_HIRAGANA | 文節ひらがな変換
JLB$CNV_CLAUSE_KATAKANA | 文節カタカナ変換
JSY$CNV_CLAUSE_KATAKANA | 文節カタカナ変換
JLB$CNV_CLAUSE_FULL | 文節全角変換
JSY$CNV_CLAUSE_FULL | 文節全角変換
JLB$CNV_CLAUSE_HALF | 文節半角変換
JSY$CNV_CLAUSE_HALF | 文節半角変換
JLB$CNV_CLAUSE_SYMBOL | 文節記号変換
JSY$CNV_CLAUSE_SYMBOL | 文節記号変換
JLB$CNV_CLAUSE_NOCONVERT | 文節無変換
JSY$CNV_CLAUSE_NOCONVERT | 文節無変換
JLB$CNV_CLAUSE_DELETE | 自立語削除
JSY$CNV_CLAUSE_DELETE | 自立語削除
JLB$CNV_LEARN | 変換確定と学習
JSY$CNV_LEARN | 変換確定と学習
JLB$CNV_REGISTER_WORD | 単語登録
JSY$CNV_REGISTER_WORD | 単語登録
JLB$CNV_DELETE_WORD | 単語削除
JSY$CNV_DELETE_WORD | 単語削除
JLB$CNV_IO_ERROR | 辞書 I/O エラー詳細情報
JSY$CNV_IO_ERROR | 辞書 I/O エラー詳細情報

単語単位変換ルーチン

単語単位でかな漢字変換を行うルーチン群です。

JLB$TRA_DICINI | 辞書のオープン
JSY$TRA_DICINI | 辞書のオープン
JLB$TRA_DICCLS | 辞書のクローズ
JSY$TRA_DICCLS | 辞書のクローズ
JLB$ENT_TANGO | 単語登録
JSY$ENT_TANGO | 単語登録
JLB$DEL_TANGO | 単語削除
JSY$DEL_TANGO | 単語削除
JLB$TRA_ROM_TANGO | ローマ字・かな単語変換
JLB$TRA_KANA_TANGO | かな単語変換
JSY$TRA_KANA_TANGO | かな単語変換
JLB$TRA_TANGO_NEXT | 単語次候補
JSY$TRA_TANGO_NEXT | 単語次候補
JLB$TRA_TANGO_PREV | 単語前候補
JSY$TRA_TANGO_PREV | 単語前候補
JLB$TRA_TANGO_DONE | 単語候補の決定
JSY$TRA_TANGO_DONE | 単語候補の決定

# 5.2 複文節変換ルーチン

複文節変換ルーチンは，複文節かな漢字変換を行うルーチン群です。

複文節かな漢字変換の各ルーチン (JLB$CNV_xxxxx および JSY$CNV_xxxxx) は，その戻り値として変換のステータスを返します。ディレクトリ JSY$LIBRARY 内に，FORTRAN，PASCAL，PL/I，C，MACRO，BLISS の各言語用にステータスをシンボル定義したファイルがあります。ファイル名はそれぞれ以下のとおりです。

JSYDEF.FOR | FORTRAN
JSYDEF.H | C
JSYDEF.MAR | MACRO
JSYDEF.R32 | BLISS(REQUIRE)
JSYDEF.L32 | BLISS(LIBRARY)

複文節かな漢字変換ルーチンは次のような手順で呼び出すことができます。

JLB$CNV_OPEN_DICTIONARY， JSY$CNV_OPEN_DICTIONARY

> 辞書のオープン
> かな漢字変換用システム辞書および個人辞書をオープンします。文節学習辞書が存在するときは，その内容をメモリ中に読み込みます。ただし，論理名 JSY$KOJIN_MODE に "3" (個人辞書を使用しない)が定義されているときは，個人辞書および文節学習辞書をオープンしません。文節学習の詳細は 第 5.4 節 「かな漢字変換辞書」を参照してください。

＜形式＞

> status = JLB$CNV_OPEN_DICTIONARY

＜引数＞

> なし

＜形式＞

> status = JSY$CNV_OPEN_DICTIONARY

＜引数＞

> なし

＜戻り値＞

status | SS$_NORMAL | 正常終了
| JSY$_NOTDICFIL | システム辞書または個人辞書のフォーマットが誤っている。JLB$CNV_IO_ERROR またはJSY$CNV_IO_ERROR ルーチンを呼び出せば，システム辞書か個人辞書かの判定ができる。
| JSY$_RMSERR | 辞書 I/O の最中に RMS のエラーが起きた。 JLB$CNV_IO_ERROR または JSY$CNV_IO_ERROR ルーチンを呼び出せば，エラーの詳細がわかる。
| JSY$_CNVINTERR | 変換ルーチンの内部エラー(ダイナミック・メモリ不足 )が起きた。

JLB$CNV_CLOSE_DICTIONARY， JSY$CNV_CLOSE_DICTIONARY

> 辞書のクローズ
> かな漢字変換用システム辞書および個人辞書をクローズし，文節学習データを文節学習辞書に書き込みます。文節学習の詳細は 第 5.4 節 「かな漢字変換辞書」を参照してください。

＜形式＞

> status = JLB$CNV_CLOSE_DICTIONARY

＜引数＞

> なし

＜形式＞

> status = JSY$CNV_CLOSE_DICTIONARY

＜引数＞

> なし

＜戻り値＞

status | SS$_NORMAL | 正常終了

JLB$CNV_CONVERT， JSY$CNV_CONVERT

> かな漢字変換
> 新しい読みで変換を開始します。読み文字列の内，全角ひらがな，半角・全角の数字部分を漢字文字列に変換し，変換ルーチンの内部バッファに格納します。変換した漢字文字列は JLB$CNV_GET_KANJI または JSY$CNV_GET_KANJI ルーチンによりユーザに返します。入力文字列中の全角ひらがな，半角・全角の数字以外の文字は，そのまま漢字文字列に組み込まれます。

＜形式＞

> status = JLB$CNV_CONVERT ( yomi-str )

＜引数＞

yomi-str
JLB usage | 変換対象(読み)文字列
type | 文字列データ
access | 入力のみ
mechanism | Descriptor渡し

＜形式＞

> status = JSY$CNV_CONVERT ( yomi-str, yomi-len )

＜引数＞

yomi-str
JSY usage | 変換対象(読み)文字列
type | 文字列データ
access | 入力のみ
michanism | Reference渡し
yomi-len
JSY usage | 変換対象文字列の長さ(バイト長)
type | Longword
access | 入力のみ
michanism | Value渡し

＜戻り値＞

status | SS$_NORMAL | 正常終了
| JSY$_CANNOTCNV | 変換できない。
|  | 読み文字列が正しくない。あるいは，語句が辞書に登録されていない。
| JSY$_CNVINTERR | 変換ルーチンの内部エラーが起きた。
| JSY$_DICNOTOPN | 辞書がオープンされていない。
| JSY$_PHONTOOLNG | 読み文字列が長すぎる。
|  | 506 バイト(全角ひらがな 253 文字分)以下を指定すること。
| JSY$_RMSERR | 辞書 I/O の最中に RMS のエラーが起きた。
|  | JLB$CNV_IO_ERROR またはJSY$CNV_IO_ERROR ルーチンを呼び出せば，エラーの詳細がわかる。

JLB$CNV_ROM_CONVERT

> ローマ字漢字変換
> 新しい読みで変換を開始します。ローマ字の読み文字列をひらがな変換 (JLB$TRA_ROM_KANA)した後，漢字文字列に変換し，変換ルーチンの内部バッファに格納します。変換後の漢字文字列は JLB$CNV_GET_KANJI または JSY$CNV_GET_KANJI ルーチンによりユーザに返します。入力文字列中にローマ字以外の文字がある場合，全角ひらがなと数字は漢字変換されますが，それ以外の文字はそのまま漢字文字列に組み込まれます。

＜形式＞

> status = JLB$CNV_ROM_CONVERT ( yomi-str )

＜引数＞

yomi-str
JLB usage | 変換対象(読み)文字列
type | 文字列データ
access | 入力のみ
michanism | Descriptor渡し

＜戻り値＞

status | SS$_NORMAL | 正常終了
| JSY$_CANNOTCNV | 変換できない。
|  | 読み文字列が正しくない。あるいは，語句が辞書に登録されていない。
| JSY$_CNVINTERR | 変換ルーチンの内部エラーが起きた。
| JSY$_DICNOTOPN | 辞書がオープンされていない。
| JSY$_PHONTOOLNG | 読み文字列が長すぎる。
|  | 全角ひらがな換算で 253 文字分以下を指定すること。
| JSY$_RMSERR | 辞書 I/O の最中に RMS のエラーが起きた。
|  | JLB$CNV_IO_ERROR または JSY$CNV_IO_ERROR ルーチンを呼び出せば，エラーの詳細がわかる。

JLB$CNV_GET_KANJI， JSY$CNV_GET_KANJI

> 漢字文字列要求ルーチン
> JLB$CNV_CONVERT，JLB$CNV_NEXT_WORD，JLB$CNV_PREV_WORD などが作った変換結果，すなわち，現在変換ルーチンの内部バッファに格納されている漢字文字列(変換後文字列)を返します。

＜形式＞

> status = JLB$CNV_GET_KANJI ( kanji-str, clause-no [, out-len] )

＜引数＞

kanji-str
JLB usage | 変換結果(漢字文字列)出力領域
type | 文字列データ
access | 出力のみ
michanism | Descriptor渡し
clause-no
JLB usage | 変換結果文字列を構成する文節の数
type | Longword
access | 出力のみ
michanism | Reference渡し
out-len
JLB usage | 変換結果の長さ(バイト長)
type | Word (Unsigned)
access | 出力のみ
michanism | Reference渡し

＜形式＞

> status = JSY$CNV_GET_KANJI ( kanji-str, kanji-len, out-len, clause-no )

＜引数＞

kanji-str
JSY usage | 変換結果(漢字文字列)出力領域
type | 文字列データ
access | 出力のみ
michanism | Value渡し
kanji-len
JSY usage | 変換結果出力領域の長さ(バイト長)
type | Longword
access | 入力のみ
michanism | Value渡し
out-len
JSY usage | 変換結果の長さ(バイト長)
type | Longword
access | 出力のみ
michanism | Reference渡し
clause-no
JSY usage | 変換結果文字列を構成する文節の数
type | Longword
access | 出力のみ
michanism | Reference渡し

＜戻り値＞

status | SS$_NORMAL | 正常終了
| JSY$_INVCALL | ルーチンの呼び出し順序が正しくない。
|  | 変換開始ルーチンを呼び出した後に呼び出すこと。
| JSY$_STRTRU | 出力文字列の切り捨てが行われた。

JLB$CNV_NEXT_WORD， JSY$CNV_NEXT_WORD

> 自立語次候補ルーチン
> 引数で指定された文節の自立語の次候補を採用して，新しい漢字文字列を作り，変換ルーチンの内部バッファに格納します。JLB$CNV_GET_KANJI または JSY$CNV_GET_KANJI ルーチンにより新しい漢字文字列を返します。漢字文字列の文節の数と区切りは変化しません。また，最後の候補のときに次候補が要求されると，JSY$_ROUNDK のステータスで，先頭の候補を返します。

＜形式＞

> status = JLB$CNV_NEXT_WORD ( clause-no )

＜引数＞

clause-no
JLB usage | 次候補漢字列を要求する文節の番号
type | Longword
access | 入力のみ
mechanism | Reference渡し
| 1以上JLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

＜形式＞

> status = JSY$CNV_NEXT_WORD ( clause-no )

＜引数＞

clause-no
JSY usage | 次候補漢字列を要求する文節の番号
type | Longword
access | 入力のみ
mechanism | Value渡し
| 1以上JLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

＜戻り値＞

status | SS$_NORMAL | 正常終了
| JSY$_ROUNDK | 先頭の候補に戻った。(正常終了)
| JSY$_CNVINTERR | 変換ルーチンの内部エラーが起きた。
| JSY$_INVCALL | ルーチンの呼び出し順序が正しくない。
|  | 変換開始ルーチンを呼び出した後に呼び出すこと。
| JSY$_INVCLSNUM | 文節番号の指定が正しくない。
| JSY$_RMSERR | 辞書I/Oの最中にRMSのエラーが起きた。
|  | JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERRORルーチンを呼び出せば，エラーの詳細がわかる。

前へ | 次へ | 目次 | 索引