Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sj_close(3J) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sj2(1)

sj2dic(1)

SJ2LIB(3J)  —  NEWS-OS Programmer’s Manual

名称

sj_open, sj_close, sj_getkan, sj_douoncnt, sj_gakusyuu, sj_touroku, sj_syoukyo, sj_getalpha, sj_getcode, sj_getromaji, sj_set_romajitbl, sj_clear_romajitbl − かな漢字変換ライブラリ

形式

sj_open(usrdic)
char ∗usrdic;                   /∗ input  ∗/
 sj_close()

sj_getkan(yomi, bun)
unsigned char ∗yomi;            /∗ input  ∗/
struct bunsetu ∗bun;            /∗ output ∗/

sj_douoncnt(yomi)
unsigned char ∗yomi;            /∗ input  ∗/

sj_getdouon(yomi, dou)
unsigned char ∗yomi;            /∗ input  ∗/
struct douon ∗dou;              /∗ output ∗/

sj_gakusyuu(id)
struct studyrec ∗id;            /∗ input  ∗/

sj_touroku(yomi, kanji, code)
unsigned char ∗yomi;            /∗ input  ∗/
unsigned char ∗kanji;           /∗ input  ∗/
unsigned char code;             /∗ input  ∗/

sj_syoukyo(yomi, kanji)
unsigned char ∗yomi;            /∗ input  ∗/
unsigned char ∗kanji;           /∗ input  ∗/

sj_getalpha(alpha, out)
unsigned char ∗alpha;           /∗ input  ∗/
unsigned char ∗out;             /∗ output ∗/

sj_getcode(kana, out, flag)
unsigned char ∗kana;            /∗ input  ∗/
unsigned char ∗out;             /∗ output ∗/
int flag;                       /∗ input  ∗/

sj_getromaji(roma, kana)
unsigned char roma;             /∗ input  ∗/
unsigned char ∗kana;            /∗ output ∗/

sj_set_romajitbl(tbl, num)
struct romaji ∗∗tbl;            /∗ input  ∗/
int num                         /∗ input  ∗/

sj_clear_romajitbl()

解説

辞書の使用開始

 sj_open(usrdic)
char  ∗usrdic;  /∗ ユーザ辞書ファイル名へのポインタ ∗/

メイン辞書である "/usr/sony/dict/sj2main.dic" をリードオンリーで、 また usrdic により指定されたユーザ辞書をリード/ライトでオープンします。 usrdic が NULL の場合には "/usr/sony/dict/sj2usr.dic" をオープンしに行きます。 メイン辞書とユーザ辞書の両方をオープンできたときには 0 を、 どちらか一方でもオープンできなかったときには 0 以外の エラーステータスを返します。 この関数は、かな漢字変換を開始する以前に必ず呼ばなければなりません。 エラーステータスの詳細は以下のとおりです。
 

0x01メイン辞書はすでにオープンされています。
0x02メイン辞書のオープンに失敗した。
0x04メイン辞書が不正です。メイン辞書はオープンされていない。
0x10ユーザ辞書はすでにオープンされています。
0x20ユーザ辞書のオープンに失敗した。
0x40ユーザ辞書が不正です。ユーザ辞書はオープンされていない。

 
エラーステータスには、これらのうち少なくとも 1 ビットが立っています。
 

辞書の使用終了
 sj_close()

 

sj_open によりオープンされたメイン辞書とユーザ辞書をクローズします。メ イン辞書とユーザ辞書の両方をクローズできたときには 0 を、どちらか一 方でもクローズできなかったときには 0 以外のエラーステータスを返します。 この関数は、かな漢字変換ルーチンの使用を終えるときに呼ばなければ なりませんりません。 エラーステータスの詳細は以下のとおりです。
 

0x01メイン辞書はすでにクローズされています。
0x10ユーザ辞書はすでにクローズされています。

 
エラーステータスには、これらうち少なくとも 1 ビットが立っています。
 

文章一括変換
 sj_getkan(yomi, bun)
unsigned char   ∗yomi;  /∗ 読み文字列へのポインタ ∗/
struct bunsetu  ∗bun;   /∗ 文節構造体へのポインタ ∗/

 

与えられた読みを文章一括変換し、その結果を返します。struct bunsetu bun[] には各文節に関する情報がセットされ、文節数がリターン値となります。 struct bunsetu は、 <sj2lib.h> で宣言されており以下のような構造です。
 

struct bunsetu {
        int             srclen;         /∗ 読みの長さ       ∗/
        int             destlen;        /∗ 漢字の長さ       ∗/
        unsigned char   ∗srcstr;        /∗ 読みへのポインタ ∗/
        unsigned char   ∗deststr;       /∗ 漢字へのポインタ ∗/
};

 

読みとして与えられる文字列は、半角コードで構成されていることが原則ですが、 シフト JIS 文字列が混じっていてもよい。 ただしその際には、シフト JIS 文字列は漢字に変換されることはありません。 読み文字列はナルで終了していなければいけません。 最大でも 511 バイトを越えてはなりません。 越えた場合は、何もせずに文節数として 0 が返されます。 struct bunsetu bun[] の実体は、 ユーザプログラム側で取らなければなりません。 読みおよび漢字の実体は、ライブラリ側の次のエリアに保存されています。
 

unsigned charyomiout[512];
unsigned charkanjiout[1024];

 

同音意義語数の取得
 sj_douoncnt(yomi)
unsigned char∗yomi;/∗ 読み文字列へのポインタ ∗/

 

与えられた読みを文節変換し、同音意義語数を返します。 読みとして与えられる文字列は、半角コードで構成されていることが原則ですが、 シフト JIS 文字列が混じっていても構いません。 ただしその際には、シフト JIS 文字列は漢字に変換されることはありません。 読み文字列はナルで終了していなければなりません。 最大でも 32 バイトを越えてはなりません。 変換した結果、読み文字列で 1 文節が構成されなかったときには、 同音語数は 0 となります。
 

同音意義語の取得
 sj_getdouon(yomi, dou)
unsigned char∗yomi;/∗ 読み文字列へのポインタ ∗/
struct douon∗dou;/∗ 同音意義語構造体へのポインタ ∗/

 

与えられた読みを文節変換し、同音意義語を与えられた構造体にセットす るとともに、リターン値として同音意義語数を返します。struct douon dou[] には同音意義語に関する情報がセットされる。struct douon は、 <sj2lib.h> で宣言されており、以下のような構造です。
 

struct douon {
        unsigned char    ddata[128];  /∗ 同音意義語のデータ ∗/
        int              dlen;        /∗ 同音意義語の長さ   ∗/
        struct studyrec  dcid;        /∗ 学習のためのデータ ∗/
};

 

読みとして与えられる文字列は、半角コードで構成されていることが原則ですが、 シフト JIS 文字列が混じっていても構いません。 ただしその際には、シフト JIS 文字列は漢字に変換されることはありません。 読み文字列はナルで終了していなければなりません。 最大でも 32 バイトを越えてはなりません。 変換した結果、読み文字列で 1 文節が構成されなかったときには、 同音語数は 0 となります。 struct douon dou[] の実体はユーザプログラム側で取らなければなりません。 ddata はナルで終了する文字列です。
 

文節学習
 sj_gakusyuu(id)
struct studyrec  ∗id;  /∗ 学習のためのデータへのポインタ  ∗/

 

sj_getdouon により得られた dcid を受け取り、文節学習を行います。正常 に学習できたときには 0 を、学習できなかったときには 0 以外を返します。
 

辞書登録
 sj_touroku(yomi, kanji, code)
unsigned char  ∗yomi;   /∗ 読み文字列へのポインタ ∗/
unsigned char  ∗kanji;  /∗ 漢字文字列へのポインタ ∗/
unsigned char  code;    /∗ 品詞コード             ∗/

 

読み文字列、漢字文字列、品詞コードを受け取ることにより、指定された 漢字をユーザ辞書に登録します。登録できたときには 0 を、登録できなかっ たときには 0 以外のエラーステータスを返します。エラーステータスの 詳細は以下のとおりです。
 

0x80辞書が他のプロセスにロックされています。
0x20同音語ブロックがあふれました。
0x10文法情報が不正です。
0x08漢字文字列が不正です。
0x04読み文字列が不正です。
0x02登録しようとした語はすでに存在しています。
0x01これ以上登録できません。

 
エラーステータスには、少なくともこれらのうち 1 ビットが立っています。
 
読みは半角コードで構成され、かつナルで終了していなければなりません。 またその長さは、最大でも 32 文字を越えてはなりません。 漢字は原則としてシフト JIS コードで構成され、 かつナルで終了していなければなりません。 またその長さは、最大でも 64 文字を越えてはなりません。 漢字には半角コードを含ませることも可能ですが、その際にも 全体が 64 文字 を越えてはなりません。品詞コードは、以下のとおりです。
 

0x01    普通名詞                0x0F    形容動詞
0x02    人名詞(姓)            0x10    サ変動詞
0x03    地名詞                  0x11    ザ変動詞
0x04    代名詞                  0x12    一段動詞
0x05    人名詞(名)            0x13    カ行五段動詞
0x06    県/区名                0x14    ガ行五段動詞
0x07    数詞                    0x15    サ行五段動詞
0x08    接頭語                  0x16    タ行五段動詞
0x09    接尾語                  0x17    ナ行五段動詞
0x0A    助数詞                  0x18    バ行五段動詞
0x0B    副詞                    0x19    マ行五段動詞
0x0C    接続詞                  0x1A    ラ行五段動詞
0x0D    連体詞                  0x1B    ワ行五段動詞
0x0E    形容詞                  0x1C    単漢字

 

辞書削除
 sj_syoukyo(yomi, kanji)
unsigned char  ∗yomi;   /∗ 読み文字列へのポインタ ∗/
unsigned char  ∗kanji;  /∗ 漢字文字列へのポインタ ∗/

 

sj_touroku によりユーザ辞書に登録された漢字を削除します。削除でき たときには 0 を、削除できなかったときには 0 以外のエラーステータスを返します。 エラーステータスの詳細は以下のとおりです。
 

0x80辞書が他のプロセスにロックされています。
0x08漢字文字列が不正です。
0x04読み文字列が不正です。
0x01削除しようとした語は存在しません。

 

読みは半角コードで構成され、かつナルで終了していなければなりません。 またその長さは、最大でも 32 文字を越えてはなりません。 漢字は原則としてシフト JIS コードで構成され、かつナルで 終了していなければなりません。 またその長さは、最大でも 64 文字を越えてはなりません。 漢字には半角コードを含ませることも可能ですが、 その際にも全体が 64 文字を越えてはなりません。
 

全角アルファベット変換
 sj_getalpha(alpha, out)
unsigned char ∗alpha;  /∗ 半角アルファベットへのポインタ  ∗/
unsigned char ∗out;    /∗ 全角アルファベットへのポインタ  ∗/

 

与えられた半角アルファベットを全角アルファベットに変換します。 out[] の実体はユーザプログラム側で取らなければなりません。 out[] は、NULL ターミネートされて出力されます。
 

全角カタカナ/ひらがな変換
 sj_getcode(kana, out, flag)
unsigned char ∗kana;  /∗ 半角カタカナへのポインタ      ∗/
unsigned char ∗out;   /∗ 全角文字へのポインタ          ∗/
int flag;             /∗ カタカナ/ひらがな指定フラグ  ∗/

 

与えられた半角カタカナ文字列を、全角カタカナあるいは全角ひらがなに 変換します。 out[] の実体はユーザプログラム側で取らなければなりません。 out[] は、NULL ターミネートされて出力されます。 flag には、 <sj2lib.h> に定義されている次のどちらかを指定します。
 

#define HIRAGANA0
#define KATAKANA1

 

ローマ字かな変換
 sj_getromaji(roma, kana)
unsigned char  roma;   /∗ 半角アルファベット       ∗/
unsigned char  ∗kana;  /∗ 半角カタカナへのポインタ ∗/

 

与えられた半角アルファベットの roma を 1 文字ずつ内部バッファに入 れてゆき、変換可能ならば、半角カタカナコードへ変換します。 内部バッファの大きさは 15 文字です。 変換できた場合には、変換された内部バッファの文字数を返します。 変換できなければ、0 を返します。 また、変換した場合には、変換された内部バッファの文字は クリアされ、変換されなかった分が内部バッファに残ります。 内部バッファを強制的にクリアするためには、NULL を roma に入れます。 このとき、内部バッファの内容が kana にはいります。 kana[] の実体は、ユーザプログラム側で取らなければなりません。 sj_getromaji の処理できる最大出力文字数は 255 文字です。 内部のローマ字検索テーブルには、全角片仮名が登録されています。 sj_getromaji は、これを半角片仮名に変換して出力します。 全角片仮名は、次のエリアに保存されています。
 

unsigned charz_kana_buf[512];

 

ユーザ定義ローマ字綴りの設定
 sj_set_romajitbl(tbl, num)
struct romaji  ∗∗tbl;  /∗ ローマ字綴り構造体ポインタへのポインタ ∗/
int num;               /∗ 定義数 ∗/

 

与えられたユーザ定義ローマ字綴りのテーブルをセットします。 sj_getromaji は、まずこの設定されたテーブルを検索し、なければデフォルトの テーブルを検索します。テーブルが設定されていなければ、 sj_getromaji は、デフォルトのテーブルのみを検索します。 デフォルトのテーブルについては、SJ2 の取扱説明を参照のこと。 struct romaji は、 <sj2lib.h> に定義されている 次のような構造体です。
 

struct romaji {
        unsigned char  ∗tuduri; /∗ ローマ字綴りへのポインタ  ∗/
        unsigned char  ∗kana;    /∗ 全角カタカナへのポインタ  ∗/
};

 

tuduri は、ローマ字の綴りをあらわす半角アスキーコード文字列 へのポインタです。 kana は、その綴りに対応する全角カタカナ文字列へのポインタです。 sj_getromaji は、検索した全角カタカナを、半角カタカナにして出力します。 tbl には、この構造体へのポインタの配列を渡します。 num には、定義する個数を渡します。
 

ユーザ定義ローマ字綴りの解除
 sj_clear_romajitbl()

 

sj_set_romajitbl で設定されていた、ローマ字綴りテーブルを解除します。
 

関連ファイル

/usr/sony/bin/sj2 日本語入力フロントエンドプロセッサ

/usr/sony/dict/sj2main.dic
かな漢字変換メイン辞書

/usr/sony/dict/sj2usr.dic.org
かな漢字変換ユーザ辞書 オリジナル

/usr/sony/dict/sj2usr.dic デフォルトかな漢字変換ユーザ辞書

/usr/sony/include/sj2lib.h かな漢字変換ライブラリ用インクルードファイル

/usr/sony/lib/libsj2lib.a かな漢字変換ライブラリ

/usr/sony/demo/sj2/∗ かな漢字変換ライブラリ 使用法サンプル

関連事項

sj2(1), sj2dic(1)

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026