日本語 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_DICTIONARYJSY$CNV_CLOSE_DICTIONARY

辞書のクローズ

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

<形式>

status = JLB$CNV_CLOSE_DICTIONARY

<引数>

なし

<形式>

status = JSY$CNV_CLOSE_DICTIONARY

<引数>

なし

<戻り値>

    status SS$_NORMAL 正常終了

JLB$CNV_CONVERTJSY$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_KANJIJSY$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_WORDJSY$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ルーチンを呼び出せば,エラーの詳細がわかる。


前へ 次へ 目次 索引