serials_hold_validator.pm は国立情報学研究所のNACSIS-CATに雑誌所蔵を登録する前に、書式が正しいかどうかをチェックするPython3モジュールです。雑誌所蔵の記載形式が正しいかどうかのチェックと、具体的にどの箇所で問題が発生したかの情報を返します。
次の入力データを
3-4,5-6+
33-44-55,6
4.5(4-6),6(1-2-3),8
66-44,77,90-(aa)
14(1,2-
7),8
88(19).44-55a
*
100-200;30-40+
100.3;4-5(4-5);5,6()
5()-6()
44(10-11,13(10-11)
12(14)13-14,15(2-4),16-29
1(14
2)1-2)
次のとおりチェックします。
- レコード先頭の0はエラーなしを、1はエラーありを示してます。
- 雑誌所蔵中のエラー箇所はタグでタグ付けしています。
0 3-4,5-6+
1 <Ng>33-44-55</Ng>,6
1 <Ng>4.5(4-6)</Ng>,6(<Ng>1-2-3</Ng>),8
1 66-44,77,<Ng>90-(aa)</Ng>
1 <Ng>14(1,2-</Ng>
1 <Ng>7)</Ng>,8
1 <Ng>88(19).44-55a</Ng>
0 *
0 100-200;30-40+
1 <Ng>100.3</Ng>;<Ng>4-5(4-5)</Ng>;5,6()
0 5()-6()
1 44(10-11,<Ng>13(10-11</Ng>)
1 <Ng>12(14)13-14,15(2-4),16-29</Ng>
1 <Ng>1(14</Ng>
1 <Ng>2)1-2)</Ng>
次のとおりsample.pyのあとに入力ファイルを続けて指定してください。 入力は雑誌所蔵を改行区切りでリスト可したテキストファイルです。 入力の具体例はtestinput.txtをご参照ください。
python sample.py 入力ファイル
雑誌所蔵の形式チェック機能を自作のスクリプトに呼び出して使うことができます。 具体例として、sample.py もご参考にしてください。
serials_hold_validator.pyを作るPythonスクリプトと同じディレクトリに(フォルダ)配置します。 ご自身のPythonスクリプトで、import文で関数serials_hold_validatorを使えるようにします。 以下の例ではshv.serials_hold_validator()でserials_hold_validator関数を呼び出せるようにしています。 serials_hold_validator関数の引数には解析対象の1雑誌所蔵データを入れます。
import serials_hold_validator as shv
code, checked = shv.serials_hold_validator('3-10,12()-14(),15-16-17+')
print(code, checked)
関数の戻り値について説明します。
- codeはエラーの有無を返します。0であればエラーなし、1であればエラーありです。
- checkedは入力の雑誌所蔵をタグでエラー箇所にタグ付けし返します。
いち大学図書館関係者として作成したもので、国立情報学研究所の事業との関係はありません。 もし、このツールでエラーがでなくとも、NACSIS-CATでエラーにならないことを保証するものではないことはご承知ください。 また、チェックが完全ではない可能性もあります。
- 2023.3.27 バグフィックス
- 2023.3.28 数値()-数値() のパターンを正しいものとして処理
- 2023.3.28 "12(14)13-14,15(2-4),16-29"のようなパターンでの不具合に対処