[ 前のページ ] [ 次のページ ] [ 目次 ] | [ 索引 ] [ DOC Home ]


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

単語単位変換ルーチン

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

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()         辞書のオープン

     読みの入力

     JLB$CNV_CONVERT(...)              かな漢字変換(変換開始)

           JLB$CNV_GET_KANJI(...)      変換結果の要求(変換処理)

           JLB$CNV_NEXT_WORD(...)      自立語次候補
        または
           JLB$CNV_PREV_WORD(...)      自立語前候補
        または
           JLB$CNV_SHORTEN_CLAUSE(...) 文節縮小
        または
           JLB$CNV_EXTEND_CLAUSE(...)  文節拡大
              ・
              ・
              ・
     JLB$CNV_LEARN()                   変換確定(学習機能)

     単語の出力

     JLB$CNV_CLOSE_DICTIONARY()        辞書のクローズ

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
 JSYusage :変換対象文字列の長さ(バイト長)
 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ルーチンを呼び出せば,エラーの詳細がわかる。

JLB$CNV_PREV_WORD

JSY$CNV_PREV_WORD

自立語前候補ルーチン

引数で指定された文節の自立語の前候補を採用して,新しい漢字文字列を作り, 変換ルーチンの内部バッファに格納します。JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンにより新しい漢字文字列を返します。 漢字文字列の文節の数と区切りは変化しません。

<形式>

status = JLB$CNV_PREV_WORD ( clause-no )

<引数>

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

<形式>

status = JSY$CNV_PREV_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$_ CNVINTERR 変換ルーチンの内部エラーが起きた。
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_RMSERR 辞書I/Oの最中にRMSのエラーが起きた。
JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERRORルーチンを呼び出せば,エラーの詳細がわかる。

JLB$CNV_GET_CLAUSE

JSY$CNV_GET_CLAUSE

文節位置情報ルーチン

引数で指定した文節の各種情報を返します。

<形式>

status = JLB$CNV_GET_CLAUSE ( clause-no, offset, length, flag )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。
offset
 JLB usage :指定した文節の位置
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  指定した文節の位置情報をJLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIで返った漢字文字列の先頭からのオフセット(バイト単位)で返す。
length
 JLB usage :文節の長さ(バイト長)
 type :Word (Unsigned)
 access :入力のみ
 mechanism :Reference渡し
flag
 JLB usage :変換情報
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  値は常に1 ( V4.5より,この引数の内容は意味を持ちません)。

<形式>

status = JSY$CNV_GET_CLAUSE ( clause-no, offset, length, flag )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。
offset
 JSY usage :指定した文節の位置
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  指定した文節の位置情報をJLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIで返った漢字文字列の先頭からのオフセット(バイト単位)で返す。
length
 JSY usage :文節の長さ(バイト長)
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
flag
 JSY usage :変換情報
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  値は常に1 ( V4.5より,この引数の内容は意味を持ちません)。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。

JSY$CNV_GET_PHONETIC_CLAUSE

文節に対応する入力文字列の位置情報ルーチン

引数で指定した文節に対応する入力文字列の位置情報を返します。 指定した文節の読みが得られます。

<形式>

status = JSY$CNV_GET_PHONETIC_CLAUSE ( clause-no, offset, length )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。
offset
 JSY usage :指定した文節に対応する入力文字列の位置
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  JLB$CNV_CONVERTまたはJSY$CNV_CONVERTルーチンに引き渡した読み文字列の先頭からのオフセット(バイト単位)で返す。
  JLB$CNV_ ROM_CONVERTまたはJSY$CNV_ROM_CONVERT ルーチンを使用していた場合は,引き渡したローマ字列をかな変換した (JLB$TRA_ROM_KANA)結果を,入力文字列とみなし, このかな文字列の先頭からのオフセット(バイト単位)で返す。
length
 JSY usage :読み文字列の長さ(バイト長)
 type :Longword
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。

JLB$CNV_SHORTEN_CLAUSE

JSY$CNV_SHORTEN_CLAUSE

文節縮小ルーチン

引数で指定された文節の長さ縮小し,文法解析をやり直して新しい 漢字文字列を作ります。指定された文節以降の文節は, 長さや区切りが変わることもあります。JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンにより,新しい漢字文字列を返します。

<形式>

status = JLB$CNV_SHORTEN_CLAUSE ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_SHORTEN_CLAUSE ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_CANNOTCNV 文節を縮小すると変換ができない。
JSY$_ CNVINTERR 変換ルーチンの内部エラーが起きた。
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_RMSERR 辞書I/Oの最中にRMSのエラーが起きた。
JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERROR ルーチンを呼び出せば,エラーの詳細がわかる。

JLB$CNV_EXTEND_CLAUSE

JSY$CNV_EXTEND_CLAUSE

文節長伸長ルーチン

引数で指定された文節の長さを長くします。すでに文節が縮小されていたときは, 直前の文節の長さに戻します。指定された文節以降の文節は, 長さや区切りが変わることもあります。JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンにより新しい漢字文字列を返します。

<形式>

status = JLB$CNV_EXTEND_CLAUSE ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_EXTEND_CLAUSE ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_CANNOTCNV 文節を縮小すると変換ができない。
JSY$_ CNVINTERR 変換ルーチンの内部エラーが起きた。
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_RMSERR 辞書I/Oの最中にRMSのエラーが起きた。
JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERRORルーチンを呼び出せば,エラーの詳細がわかる。

JLB$CNV_CLAUSE_HIRAGANA

JSY$CNV_CLAUSE_HIRAGANA

文節ひらがな変換ルーチン

指定された文節の自立語をひらがなに変換します。 変換結果は変換ルーチンの内部バッファに格納し,JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンによりユーザに返します。

<形式>

status = JLB$CNV_CLAUSE_HIRAGANA ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_HIRAGANA ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。

JLB$CNV_CLAUSE_KATAKANA

JSY$CNV_CLAUSE_KATAKANA


文節カタカナ変換ルーチン
指定された文節をカタカナに変換します。このルーチンが一回目に呼ばれたときは, 文節の自立語のみをカタカナに変換し,2回目に呼ばれたときは文節全体をカタカナ変換します。 変換結果は変換ルーチンの内部バッファに格納し, JLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIルーチンによりユーザに返します。

たとえば,"ねこにこばん"を漢字変換すると最初は"猫に/小判" ( /は文節の区切り)となります。ここで第一文節を文節カタカナ変換すると "ネコに/小判"となり,再度第一文節を文節カタカナ変換すると "ネコニ/小判"となります。

<形式>

status = JLB$CNV_CLAUSE_KATAKANA ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_KATAKANA ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出しが正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定順序が正しくない。
JSY$_CNVINTERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_CLAUSE_FULL

JSY$CNV_CLAUSE_FULL

文節全角変換ルーチン

指定された文節を全角文字に変換します。変換結果は変換ルーチンの 内部バッファに格納し,JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンによりユーザに返します。

<形式>

status = JLB$CNV_CLAUSE_FULL ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_FULL ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_CNVINTERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_CLAUSE_HALF

JSY$CNV_CLAUSE_HALF

文節半角変換ルーチン

指定された文節を半角文字に変換します。 変換結果は変換ルーチンの内部バッファに格納し,JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンによりユーザに返します。

<形式>

status = JLB$CNV_CLAUSE_HALF ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_HALF ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_CLAUSE_SYMBOL

JSY$CNV_CLAUSE_SYMBOL

文節記号変換ルーチン

指定された文節を特殊記号に変換します。 変換結果は変換ルーチンの内部バッファに格納し,JLB$CNV_GET_KANJIまたは JSY$CNV_GET_KANJIルーチンによりユーザに返します。

<形式>

status = JLB$CNV_CLAUSE_SYMBOL ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_SYMBOL ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_CLAUSE_NOCONVERT

JSY$CNV_CLAUSE_NOCONVERT

文節無変換ルーチン

指定された文節の読み文字列をそのまま漢字文字列に組み込みます。 ただし,最初にJLB$TRA_ROM_CONVERTまたはJSY$TRA_ROM_CONVERTルーチンが使用されていた場合は, ローマ字をひらがな変換した結果を漢字文字列に組み込みます。 結果は変換ルーチンの内部バッファに格納し, JLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIルーチンによりユーザに返します。

<形式>

status = JLB$CNV_CLAUSE_NOCONVERT ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_NOCONVERT ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_CLAUSE_DELETE

JSY$CNV_CLAUSE_DELETE

自立語削除ルーチン

指定された文節の自立語を個人辞書から削除します。この後, JLB$CNV_GET_KANJIまたはJSY$CNV_GET_KANJIで漢字文字列を得た場合, 削除した自立語部分には読みの長さ分,半角の@ (単価記号)が入れられます。

<形式>

status = JLB$CNV_CLAUSE_DELETE ( clause-no )

<引数>

clause-no
 JLB usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Reference渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<形式>

status = JSY$CNV_CLAUSE_DELETE ( clause-no )

<引数>

clause-no
 JSY usage :文節番号
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  1以上JLB$CNV_GET_ KANJIまたはJSY$CNV_GET_KANJIルーチンで返った文節数以下を指定する。

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_INVCLSNUM 文節番号の指定が正しくない。
JSY$_RMSERR 辞書I/Oの最中にRMSのエラーが起きた。
JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERRORルーチンを呼び出せば,エラーの詳細がわかる。
JSY$_WRDNOTFND 削除しようとした語句が個人辞書に存在しない。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_LEARN

JSY$CNV_LEARN

変換確定ルーチン

変換を終了し,変換漢字列内の単語を個人辞書に学習します。また, メモリ中の文節学習データの更新を行います。 ただし,文節学習データの文節学習辞書への書き込みは行われません。 個人辞書への学習および文節学習の詳細は 第5.4節「かな漢字変換辞書」を参照してください。

<形式>

status = JLB$CNV_LEARN

<引数>

なし

<形式>

status = JSY$CNV_LEARN

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ INDEXFULL 個人辞書ファイルにこれ以上単語を登録できない。 個人辞書編集ユーティリティで,辞書を再構成するするか, または論理名JSY$KOJINに新しいファイルを割り当てること。
個人辞書に登録可能な単語数については, 第5.4節「かな漢字変換辞書」を参照のこと。
JSY$_INVCALL ルーチンの呼び出し順序が正しくない。
変換開始ルーチンを呼び出した後に呼び出すこと。
JSY$_RMSERR 辞書I/Oの最中にRMSのエラーが起きた。 JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERRORルーチンを呼び出せば, エラーの詳細がわかる。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_REGISTER_WORD

JSY$CNV_REGISTER_WORD

単語登録ルーチン

個人辞書にユーザ定義の単語を登録します。

<形式>

status = JLB$CNV_REGISTER_WORD ( yomi-str, kanji-str )

<引数>

yomi-str
 JLB usage :登録する単語の読み
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
  全角ひらがなで16文字以内を指定する。 ただし,濁点・半濁点も1文字として数える。
kanji- str
 JLB usage :登録する単語の文字列
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
  80バイト(漢字40文字分)以内を指定する。
  文字列内には全角・半角の各種文字を含めることができる。

<形式>

status = JSY$CNV_REGISTER_WORD ( yomi-str, yomi-len, kanji-str, kanji-len )

<引数>

yomi-str
 JSY usage :登録する単語の読みを格納している文字列
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
  全角ひらがなで16文字以内を指定する。 ただし,濁点・半濁点も1文字として数える。
yomi-len
 JSY usage :読み文字列の長さ(バイト長)
 type :Longword
 access :入力のみ
 mechanism :Value渡し
  全角ひらがなで16文字以内を指定する。 ただし,濁点・半濁点も1文字として数える。
kanji-str
 JSY usage :登録する単語の文字列
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
  80バイト(漢字40文字分)以内を指定する。
  文字列内には全角・半角の各種文字を含めることができる。
kanji-len
 JSY usage :単語の文字列の長さ(バイト長)
 type :Longword
 access :入力のみ
 mechanism :Value渡し

<戻り値>

status SS$_NORMAL 正常終了
SS$_ DICNOTOPN 辞書がオープンされていない。
JSY$_INDEXFULL 個人辞書ファイルにこれ以上単語を登録できない。 個人辞書編集ユーティリティで,辞書を再構成するするか, または論理名JSY$KOJINに新しいファイルを割り当てること。
個人辞書に登録可能な単語数については, 第5.4節「かな漢字変換辞書」を参照のこと。
JSY$_INVPHONSTR 指定した読みが正しくない。
読み文字列は全角ひらがなでなければならない。
JSY$_PHONTOOLNG 指定した読み文字列が長すぎる。
辞書に登録する1つの語句に対して全角ひらがなで 16文字以下でなければならない。ただし,濁点・半濁点も1文字として数える。
JSY$_ RMSERR 辞書I/Oの最中にRMSのエラーが起きた。 JLB$CNV_IO_ERRORまたはJSY$CNV_IO_ERRORルーチンを呼び出せば,エラーの詳細がわかる。
JSY$_WRDTOOLNG 登録しようとした単語の文字列が長すぎる。単語の文字列は80バイト (漢字40文字分)以下でなければならない。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_DELETE_WORD

JSY$CNV_DELETE_WORD

単語削除ルーチン

指定された単語を個人辞書から削除します。

<形式>

status = JLB$CNV_DELETE_WORD ( yomi-str, kanji-str )

<引数>

yomi-str
 JLB usage :削除する単語の読み
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
  全角ひらがなで16文字以内を指定する。 ただし,濁点・半濁点も1文字として数える。
kanji- str
 JLB usage :削除する単語の文字列
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し

<形式>

status = JSY$CNV_DELETE_WORD ( yomi-str, yomi-len, kanji-str, kanji-len )

<引数>

yomi-str
 JSY usage :削除する単語の読みを格納している文字列
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
  全角ひらがなで16文字以内を指定する。 ただし,濁点・半濁点も1文字として数える。
yomi-len
 JSY usage :読み文字列の長さ(バイト長)
 type :Longword
 access :入力のみ
 mechanism :Value渡し
kanji-str
 JSY usage :削除する単語の文字列
 type :文字列データ
 access :入力のみ
 mechanism :Value渡し
kanji- len
 JSYusage :読み文字列の長さ(バイト長)
 type :Longword
 access :入力のみ
 mechanism :Value渡し

<戻り値>

status SS$_NORMAL 正常終了
SS$_DICNOTOPN 辞書がオープンされていない。
JSY$_INVPHONSTR
指定した読みが正しくない。
読み文字列は全角ひらがなでなければならない。
JSY$_ PHONTOOLNG
指定した読み文字列が長すぎる。 全角ひらがなで16文字以下でなければならない。 ただし,濁点・半濁点も1文字として数える。
JSY$_RMSERR 辞書I/Oの最中にRMSのエラーが起きた。 JLB$CNV_IO_ERRORまたはJSY$CNV_ IO_ERRORルーチンを呼び出せば, エラーの詳細がわかる。
JSY$_WRDNOTFND
削除しようとした語句が個人辞書に存在しない。
JSY$_WRDTOOLNG
削除しようとした単語の文字列が長すぎる。 単語の文字列は80バイト(漢字40文字分)以下でなければならない。
JSY$_CNVINIERR 変換ルーチンの内部エラーが起きた。

JLB$CNV_IO_ERROR

JSY$CNV_IO_ERROR

辞書I/Oステータス・ルーチン

直前のJLB$CNV_xxxxxxまたはJSY$CNV_xxxxxx呼び出しにより発生した辞書 I/Oエラーの詳細情報を返します。JLB$CNV_xxxxxxおよび JSY$CNV_xxxxxxルーチンでは辞書I/Oエラーが発生した場合, JSY$_RMSERRのステータスを返します。その場合にこのルーチンを呼び出すことにより, 詳細なエラー情報を知ることができます。エラーが発生していないときはrms-stsに RMS$_NORMALのステータスがセットされますが,辞書のファイル名などは不定です。

<形式>

status = JLB$CNV_IO_ERROR ( file-name, dic-type, rms-sts, rms-stv, name-len )

<引数>

file-name
 JLB usage :ファイル名の格納領域
 type :文字列データ
 access :出力のみ
 mechanism :Descriptor渡し
  エラーの発生したファイルの名前が返る。
dic-type
 JLB usage :辞書の種類
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  1 = システム辞書
  2 = 個人辞書
rms- sts
 JLB usage :RMSステータス1
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
rms-stv
 JLB usage :RMSステータス2
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
name-len
 JLB usage :ファイル名の長さ
 type :Word (Unsigned)
 access :出力のみ
 mechanism :Reference渡し

<形式>

status = JSY$CNV_IO_ERROR ( file-name, file-len, name-len, dic-type, rms-sts, )

<引数>

file-name
 JSY usage :ファイル名の格納領域
 type :文字列データ
 access :出力のみ
 mechanism :Reference渡し
  エラーの発生したファイルの名前が返る。
file-len
 JSY usage :ファイル名格納領域のサイズ
 type :Longword
 access :入力のみ
 mechanism :Value渡し
name-len
 JSY usage :ファイル名の長さ
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
dic-type
 JSY usage :辞書の種類
 type :Longword
 access :出力のみ
 mechanism :Reference渡し
  1 = システム辞書
  2 = 個人辞書
rms-sts
 JSY usage :RMSステータス
 type :2 Longword
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status SS$_NORMAL 正常終了
JSY$_ STRTRU 出力文字列の切り捨てが行われた。

5.3 単語単位変換ルーチン

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

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

             JLB$TRA_DICINI                  辞書のオープン

             読みの入力

             JLB$TRA_ROM_KANA                ローマ字かな変換
             JLB$TRA_KANA_TANGO(...)         かな単語変換

           または
             JLB$TRA_ROM_TANGO(...)          ローマ字単語変換

                  JLB$TRA_TANGO_NEXT(...)    単語次候補

                または
                  JLB$TRA_TANGO_PREV(...)    単語前候補

                または
                  JLB$DEL_TANGO              単語削除

             JLB$TRA_TANGO_DONE              単語の決定(学習)

             単語の出力

             JLB$TRA_DICCLS                  辞書のクローズ

JLB$TRA_DICINI

JSY$TRA_DICINI

辞書のオープン

単語辞書および個人辞書をオープンします。

<形式>

status = JLB$TRA_DICINI

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了

<形式>

status = JSY$TRA_DICINI

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了
0 変換ルーチンの内部エラーが起きた。


注意

RMSのエラーが発生した時は, そのRMSステータスを用い,ルーチン内部でLIB$STOPを実行して終了します。


JLB$TRA_DICCLS

JSY$TRA_DICCLS

辞書のクローズ

単語辞書および個人辞書をクローズします。

<形式>

status = JLB$TRA_DICCLS

<引数>

なし

<形式>

status = JSY$TRA_DICCLS

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了

JLB$ENT_TANGO

JSY$ENT_TANGO

単語登録

新しい単語を個人辞書に登録します。 読み文字列は全角ひらがなまたは全角カタカナで16文字以内でなければなりません。 ただし,濁点/半濁点も1文字として数えます。 単語文字列は最長80バイト(漢字40文字分)まで登録できます。

<形式>

status = JLB$ENT_TANGO ( kana-str, tango-str )

<引数>

kana-str
 JLB usage :読み文字列(全角ひらがな/全角カタカナ)
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
tango-str
 JLB usage :登録する単語文字列
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し

<形式>

status = JSY$ENT_TANGO ( kana-str, kana-len, tango-str, tango-len )

<引数>

kana-str
 JSY usage :読み文字列(全角ひらがな/全角カタカナ)
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
kana-len
 JSYusage :読み文字列のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し
tango-str
 JSY usage :登録する単語文字列
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
tango-len
 JSY usage :登録する単語文字列のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し

<戻り値>

status SS$_NORMAL 正常終了
0 単語が登録されなかった

JLB$DEL_TANGO

JSY$DEL_TANGO

単語削除

個人辞書から単語を削除します。 このルーチンは「かな単語変換ルーチン」と共に使用します。 削除しようとする単語に変換した時点で,このルーチンを呼び出し,単語を削除します。

<形式>

status = JLB$DEL_TANGO

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了

<形式>

status = JSY$DEL_TANGO

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了
0 ユーザ登録の単語ではない

JLB$TRA_ROM_TANGO

ローマ字・かな単語変換

単語の読みから漢字に変換します。変換前文字列に対しローマ字/かな変換を行い, 最初の全角ひらがな/カタカナの部分のみを変換対象とし,それ以外の部分は, そのまま,変換した単語の前後に結合します。続けてJLB$TRA_TANGO_NEXTまたは JLB$TRA_TANGO_PREVを呼び出す場合は, 変換前文字列として同じものを渡さなければなりません。

<形式>

status = JLB$TRA_ROM_TANGO ( tango-str, yomi-str [, tango-len] )

<引数>

tango-str
 JLB usage :変換後文字列
 type :文字列データ
 access :出力のみ
 mechanism :Descriptor渡し
yomi-str
 JLB usage :変換前文字列
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
tango-len
 JLB usage :変換結果のバイト長
 type :Word (Unsigned)
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status SS$_NORMAL 正常終了
0 単語が登録されていない

JLB$TRA_KANA_TANGO

JSY$TRA_KANA_TANGO

かな単語変換

単語の読みから漢字に変換します。変換前文字列の最初の 全角ひらがな/カタカナの部分のみを変換対象とし,それ以外の部分はそのまま, 変換した単語の前後に結合します。続けてJLB$TRA_TANGO_NEXTまたは JLB$TRA_TANGO_PREVを呼び出す場合は, 変換前文字列として同じものを渡さなければなりません。

<形式>

status = JLB$TRA_KANA_TANGO ( tango-str, kana-str [, tango-len] )

<引数>

tango-str
 JLB usage :変換後文字列
 type :文字列データ
 access :出力のみ
 mechanism :Descriptor渡し
kana-str
 JLB usage :変換前文字列(読みの部分は全角ひらがな/全角カタカナ)
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
tango-len
 JLB usage :変換結果のバイト長
 type :Word (Unsigned)
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status SS$_NORMAL 正常終了
0 単語が登録されていない

<形式>

status = JSY$TRA_KANA_TANGO ( src-str, src-len, dst-str, dst-len, out-len )

<引数>

src-str
 JSY usage :変換対象文字列
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
src-len
 JSY usage :変換対象文字列のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し
dst-str
 JSY usage :変換結果出力領域
 type :文字列データ
 access :出力のみ
 mechanism :Reference渡し
dst-len
 JSY usage :変換結果出力領域のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し
out-len
 JSY usage :変換結果のバイト長
 type :Longword
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status 1 正常終了
0 出力結果の切り捨てが行われた
または,変換ルーチンの内部エラーが起きた

JLB$TRA_TANGO_NEXT

JSY$TRA_TANGO_NEXT

単語次候補

単語の次候補を求めます。あらかじめ,JLB$TRA_KANA_TANGOまたは JLB$TRA_ROM_TANGOが呼び出されている必要があり, 変換前文字列は同じものでなければなりません。すべての候補が一巡した後は, 最初の候補に戻ります。

<形式>

status = JLB$TRA_TANGO_NEXT ( tango-str, yomi-str [, tango-len] )

<引数>

tango-str
 JLB usage :変換後文字列
 type :文字列データ
 access :出力のみ
 mechanism :Descriptor渡し
yomi-str
 JLB usage :変換前文字列
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
tango-len
 JLB usage :変換結果のバイト長
 type :Word (Unsigned)
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status SS$_NORMAL 正常終了
0 変換ルーチンの内部エラーが起きた

<形式>

status = JSY$TRA_TANGO_NEXT ( src-str, src-len, dst-str, dst-lenout-len )

<引数>

src-str
 JSY usage :変換対象文字列
 type :文字列データ
 access :入力のみ
 mechanism :Refernce渡し
src-len
 JSY usage :変換対象文字列のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し
dst-str
 JSY usage :変換結果出力領域
 type :文字列データ
 access :出力のみ
 mechanism :Reference渡し
dst-len
 JSY usage :変換結果出力領域のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し
dst-str
 JSY usage :変換結果出力領域
 type :Longword
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status 1 正常終了
0 出力結果の切り捨てが行われた
または,変換ルーチンの内部エラーが起きた

JLB$TRA_TANGO_PREV

JSY$TRA_TANGO_PREV

単語前候補

単語の前候補を求めます。あらかじめ,JLB$TRA_KANA_TANGOまたは JLB$TRA_ROM_TANGOが呼び出されている必要があり, 変換前文字列は同じものでなければなりません。 すべての候補が一巡した後は,最初の候補に戻ります。

<形式>

status = JLB$TRA_TANGO_PREV ( tango-str, yomi-str [, tango-len] )

<引数>

tango-str
 JLB usage :変換後文字列
 type :文字列データ
 access :出力のみ
 mechanism :Descriptor渡し
yomi-str
 JLB usage :変換前文字列
 type :文字列データ
 access :入力のみ
 mechanism :Descriptor渡し
tango-len
 JLB usage :変換結果のバイト長
 type :Word (Unsigned)
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status SS$_NORMAL 正常終了
0 変換ルーチンの内部エラーが起きた

<形式>

status = JSY$TRA_TANGO_PREV ( src-str, src-len, dst-dst-len, out-len )

<引数>

src-str
 JSY usage :変換対象文字列
 type :文字列データ
 access :入力のみ
 mechanism :Reference渡し
src-len
 JSY usage :変換前文字列
 type :Longword
 access :入力のみ
 mechanism :Value渡し
dst-str
 JSY usage :変換結果出力領域
 type :文字列データ
 access :出力のみ
 mechanism :Reference渡し
dst-len
 JSY usage :変換結果出力領域のバイト長
 type :Longword
 access :入力のみ
 mechanism :Value渡し
out-len
 JSY usage :変換結果のバイト長
 type :Longword
 access :出力のみ
 mechanism :Reference渡し

<戻り値>

status 1 正常終了
0 出力結果の切り捨てが行われた
または,変換ルーチンの内部エラーが起きた

JLB$TRA_TANGO_DONE

JSY$TRA_TANGO_DONE

単語候補の決定

単語候補の決定を行い,学習機能により次回の変換時に最初に現れるようにします。 これを呼び出さずに別の読みによる単語変換を行った場合は, 学習機能は働きません。

<形式>

status = JLB$TRA_TANGO_DONE

<引数>

なし

<形式>

status = JSY$TRA_TANGO_DONE

<引数>

なし

<戻り値>

status SS$_NORMAL 正常終了
0 変換ルーチンの内部エラーが起きた

5.4 かな漢字変換辞書

かな漢字変換は,システム辞書,個人辞書と文節学習辞書の3つを用いて行われます。 この節では,システム辞書, 個人辞書および文節学習辞書の使用方法などについて説明します。

5.4.1 システム辞書

システム辞書は通常システムに1つ存在し,すべてのプロセスが共有します。 省略時設定のファイル名は,JSY$DICTIONARY:JSYTANGO.JISHOです。 この辞書には約10万語の単語,地名,氏名などが登録されています。論理名 JSY$TANGOが定義されている場合は,そのファイルをシステム辞書として使用します。 システム辞書は参照のみ可能で,その内容を変更することはできません。

5.4.2 個人辞書と文節学習辞書

プロセス単位で使用する個人辞書には2つの種類があります。1つは, ユーザが使用した単語の使用順や単語登録の情報を保存するもの,もう1つは, かな漢字変換における文節の区切りや自立語,付属語の組み合わせなど, 文節に関連する情報を保存するものです。通常,前者を個人辞書, 後者を文節学習辞書と呼びます。 1つのプロセスは1つの個人辞書と1つの文節学習辞書を使用します。 複数のプロセスが,同時に1つの個人辞書と1つの文節学習辞書を共有して使用することが可能です。

  1. 個人辞書

    個人辞書の省略時設定のファイル名はSYS$LOGIN:JSYKOJIN.JISHOです。論理名 JSY$KOJINが定義されている場合は,そのファイルを個人辞書として扱います。ただし, ネットワーク上の別ノードにある個人辞書へのアクセスはできません。 個人辞書が存在しない場合は,辞書オープン・ルーチンが自動的に作成します。 かな漢字変換ルーチンは個人辞書の単語をシステム辞書の単語に優先して使用します。

    この辞書には,ユーザの使用した単語が使用順に登録されます。また, 日本語エディタなどを使用中に単語登録を行った場合にも,この辞書に登録されます。 個人辞書編集ユーティリティを用いて, 個人辞書を参照・追加・変更することもできます。

    個人辞書への単語の登録には次の方法があります。

    個人辞書から単語を削除するには次の方法があります。

  2. 文節学習辞書

    論理名JSY$LEARNが定義されていない場合は,SYS$LOGIN:JSY$LEARN .DATが使用されます。 ただし,ネットワーク上の別ノードにある文節学習辞書へのアクセスはできません。 文節学習辞書が存在しない場合は, 辞書オープン・ルーチンが自動的に作成します。この辞書には, かな漢字変換における候補選択で最後に選ばれた単語が自立語と 付属語とからなるとき,付属語も含む文節の情報を保存し, 再使用するために用います。また,同じ読みに対して複数の文節区切りが可能な場合, 文節の区切り方の情報もこの辞書に学習します。

    例えば,「きしゃのきしゃがきしゃできしゃした」を, 次候補・文節移動などを使って正しい文章に変換します。

         貴社の/記者が/汽車で/帰社した/
    

    次回からは,上記の文章が1回で正しく変換されます。

    文節学習辞書に文節学習データが書き込まれるのは,JLB$CNV_CLOSE_ DICTIONARY またはJSY$CNV_CLOSE_DICTIONARYルーチンが呼ばれたときです。 JLB$CNV_LEARNまたはJSY$CNV_LEARNルーチンが呼ばれた時点では, メモリ中のデータの更新が行われるだけで文節学習辞書への書き込みは行われません。

5.4.3 個人辞書の使用モードの選択

個人辞書の使用モードを,論理名JSY$KOJIN_MODEの値で指定することができます。 特に指定しない場合には0(共有モード)になります。

5.4.4 個人辞書の学習モードの選択

個人辞書の使用モードが“共有モード”または“学習モード”の場合, JLB$CNV_LEARNおよびJSY$CNV_LEARNルーチンは, 漢字変換した単語と1度漢字変換した後に文節ひらがな・カタカナ変換した単語を個人辞書に学習します。 またJLB$CNV_CLOSE_DICTIONARYおよびJSY$CNV_CLOSE_ DICTIONARYルーチンは, 文節学習結果を文節学習辞書に保存します。論理名JSY$KOJIN_LEARNは, このうち文節ひらがな・カタカナ変換した単語の学習モードと文節学習のモードを制御します。

以下のいずれのモードの場合も,漢字変換された単語は学習します。

5.4.5 個人辞書の単語数

個人辞書に登録できる単語数には一部制限があります。

1つの読みに対して複数の表記が個人辞書に存在するとき, この読みに対して割り当てられる個人辞書のデータ・ブロックの最大は4ブロック(2048バイト)です。 したがって,同じ読みをもつ単語の登録数には限りがあります。 しかし,読みの長さ,各々単語の表記の長さ, 文法情報の数と組み合わせにより,登録可能な単語の数は変化します。 以下におおよその目安を説明します。

         読みの長さ : x 文字  (例 : しゃいん → 4文字)
         表記の平均の長さ : y 文字  (例 : 佐々木一郎,田中浩二郎... → 平均5文字)
         各々の表記の文法情報の平均数 : z 個    (例 : 人名 → 1個)
    
         このとき,同一読みの登録可能な単語数の目安は,
    
                 2048 − x − 1
                ────────   で表わされます。
                  2y + z + 3
    
         例の場合は,
         (2048 − 4 − 1) ÷ (2 × 5 + 1 + 3) = 145.9...
         となり,約145語登録できるという目安が得られます。
    


注意

1つの表記が複数の文法情報を持つとき,その文法情報の組み合わせによっては, 文法情報データが縮小されて登録されることもあります。


5.5 注意事項および制限事項

かな漢字変換ルーチンを使用するときの注意事項および制限事項について説明します。

5.5.1 変換の開始と終了

かな漢字変換ルーチン群は,同時に2つ以上の読みを対象として変換を進行することはできません。 変換開始ルーチンが呼び出された時点から新しい読み文字列による変換を開始します。 また,学習機能ルーチンや単語登録/削除ルーチンを呼び出した後, 再びかな漢字変換を行う場合は,変換開始ルーチンを呼び出し,読みを指定する必要があります。

5.5.2 複文節変換と単語単位変換の混用

1つの実行イメージで複文節変換(JLB$CNV_xxxxxxおよびJSY$CNV_xxxxxx) と単語単位変換(JLB$TRA_xxxxxxおよびJSY$TRA_xxxxxx) の両方のルーチンを使用する場合は次のような注意が必要です。

ある読みによるかな漢字変換が進行している間の変換処理(次候補要求など) および学習機能は,変換を開始したルーチンにより, 複文節変換あるいは単語単位変換のどちらかのルーチンを統一して使用しなければなりません。 たとえば,複文節変換の JLB$CNV_CONVERTルーチンにより変換を開始した場合,次候補要求には必ず JLB$CNV_NEXT_WORDルーチンを呼び出し,また,学習機能を働かせるためには JLB$CNV_LEARNルーチンを呼び出さなければなりません。同様に,単語単位変換の JLB$TRA_KANA_TANGOルーチンにより変換を開始した場合には,次候補要求ルーチンとして JLB$TRA_TANGO_NEXTルーチンを,学習機能を働かせるには JLB$TRA_TANGO_ DONEルーチンを呼び出さなければなりません。

1つの読みによる変換の進行中に複文節かな漢字変換ルーチン群 (JLB$CNV_xxxxxxxまたはJSY$CNV_xxxxxx )と単語単位かな漢字変換ルーチン群 (JLB$TRA_xxxxxxまたは JSY$TRA_xxxxxx)を混用した場合の結果については保証されません。

5.5.3 個人辞書を共用した場合の変換結果

日本語OpenVMS AXPでは,複数のプロセスで個人辞書を共有することが可能になっていますが, この場合,学習結果はJSY$CNV_LEARNまたは JLB$CNV_LEARNが呼ばれた時点で個人辞書に反映されます。したがって, プロセスAで学習した単語と同じものをプロセスBがその直後に再学習した場合など, プロセスAから見た場合に直前の学習結果が反映されていないように見える場合があります。 これは,日本語エディタなどのリカバリ機能を持つユーティリティに対して影響があります。

5.5.4 辞書アクセス時のエラー

複数のプロセスから同時に1つの個人辞書を共有している場合, 個人辞書に対して書き込みが行われている間は他のプロセスからはアクセスできません。 したがって,かな漢字変換ライブラリ内部では,辞書が解放されるのを最大3秒間だけ待ちます。 その間に個人辞書が解放されれば通常どおり変換可能です。 しかし時間内に辞書が解放されなかった場合,JSY$_RMSERRを返します。この場合, 関数jsy$cnv_io_errorまたはjlb$cnv_io_errorを呼び出せばRMS$_FLKが得られ, 上記の事態が起きたことの確認ができます。個人辞書がロックされるのは, 次の6つの関数です。

jsy$cnv_open_dictionary  jlb$cnv_open_dictionary    辞書のオープン
jsy$cnv_convert         jlb$cnv_convert              かな漢字変換
jsy$cnv_clause_delete    jlb$cnv_clause_delete      自立語削除
jsy$cnv_register_word    jlb$cnv_register_word      単語登録
jsy$cnv_delete_word      jlb$cnv_delete_word        単語削除
jsy$cnv_learn           jlb$cnv_learn                変換確定と学習

個人辞書が存在している場合は,jsy$cnv_open_dictionayとjsy$cnv_ convert, jsy$cnv_open_dictionayおよびjsy$cnv_convert,あるいは jsy$cnv_convertどうしは互いに,同時に辞書アクセスができます。


[ 前のページ ] [ 次のページ ] [ 目次 ] | [ 索引 ] [ DOC Home ]