図1は貸出用資料管理システムKSの全体的な構成の例を示す図である。図2は管理サーバ1のハードウェア構成の例を示す図である。図3は管理サーバ1の機能的構成の例を示す図である。
図1に示すように、貸出用資料管理システムKSは、管理サーバ1、複数台の司書用端末装置2、複数台の利用者用端末装置3、および通信回線4などを有する。
管理サーバ1と各司書用端末装置2および各利用者用端末装置3とは、通信回線4を介して接続されている。通信回線4として、いわゆるLocal Area Network(LAN)回線、公衆回線、専用線、またはインターネットなどが用いられる。
貸出用資料管理システムKSは、利用者へ貸し出す資料の情報を管理するシステムである。以下、資料として、図書、雑誌、およびAV(audio-visual)ソフトなどを貸し出す図書館Xにおいて使用される貸出用資料管理システムKSを例に、説明する。
管理サーバ1は、図2に示すように、Central Processing Unit(CPU)10a、Random Access Memory(RAM)10b、Read Only Memory(ROM)10c、ハードディスク10d、Network Interface Card(NIC)10e、グラフィックカード10f、およびUniversal Serial Bus(USB)インタフェース10gのほか種々のハードウェアを有する。また、管理サーバ1には、ディスプレイ1D、キーボード1K、およびマウス1Mが繋がれている。
NIC10eは、司書用端末装置2および利用者用端末装置3と通信を行うための装置である。
グラフィックカード10fは、CPU10aからの指令に基づいて描画を行い、ディスプレイ1Dへ映像(動画像)の信号を出力する。
USBインタフェース10hは、USB機器と通信するために用いられるが、本実施形態では特に、オペレータ(操作者)がキーボード1Kまたはマウス1Mに対して入力した情報を取得するために用いられる。
ハードディスク10dには、図3に示す演算開始時期監視部101、同一資料予約抽出部102、資料特性値算出部103、利用者種別特性値算出部104、利用者実績特性値算出部105、順番進行日数予測部106、貸出日数予測部107、予約待ち日数算出部108、予約検索処理部109、利用者データ記憶部121、資料データ記憶部122、予約データ記憶部123、貸出返却データ記憶部124、および補正用データ記憶部125などの機能を実現するためのプログラムおよびデータがインストールされている。これらのプログラムおよびデータは、必要に応じてRAM10bにロードされ、CPU10aによってプログラムが実行される。
司書用端末装置2は、図書館Xの図書館司書が使用する端末装置である。司書用端末装置2として、パーソナルコンピュータまたはワークステーションなどが用いられる。図書館司書は、司書用端末装置2を操作することによって、資料の貸出し、返却、および予約などの手続を行うことができる。
利用者用端末装置3は、図書館Xの利用者が使用する端末装置である。利用者用端末装置3として、パーソナルコンピュータ、ワークステーション、スマートフォン、または携帯電話端末などが用いられる。利用者は、利用者用端末装置3を操作することによって、資料の予約の状況を確認することができる。また、通信回線4としてインターネットが用いられている場合は、利用者は、図書館Xの外(例えば、自宅)からでも資料の予約の状況を確認することができる。
なお、管理サーバ1は、司書用端末装置2および利用者用端末装置3に対する情報を、ウェブページによって提供すればよい。したがって、管理サーバ1には、ウェブサーバの機能が備わっている。また、管理サーバ1は、司書用端末装置2および利用者用端末装置3からの情報の取得を、CGI(Common Gateway Interface)によって行えばよい。したがって、管理サーバ1には、CGIの機能が備わっている。
オペレータは、ウェブブラウザおよび通信の機能が備わった1台の装置を、司書用端末装置2としても利用者用端末装置3としても用いることができる。管理サーバ1は、ログインしたオペレータに応じてオペレータに対するアクセス権を変更することによって、装置を司書用端末装置2として機能させたり利用者用端末装置3として機能させたりすることができる。
利用者は、図書館Xで資料を借りるためには、予め図書館Xの会員にならなければならない。会員になるために、利用者は、特定の資格(条件)を有していなければならない。例えば、図書館Xが位置する市区町村に在住し、通勤し、または通学する者のほか、この市区町村が帰省先である者でなければ、会員になることができない。利用者は、会員になると、ユニークな利用者コードが与えられる。
図4は利用者種別テーブルTL11の例を示す図である。図5は利用者実績テーブルTL12の例を示す図である。図6は資料マスタTL21の例を示す図である。図7は資料状況テーブルTL22の例を示す図である。図8は資料予約テーブルTL31の例を示す図である。図9は資料貸出テーブルTL41の例を示す図である。図10は資料種別補正係数テーブルTM11の例を示す図である。図11は図書分類補正係数テーブルTM21、雑誌分類補正係数テーブルTM22、およびAVソフト分類補正係数テーブルTM23の例を示す図である。図12は区分補正係数テーブルTM31の例を示す図である。図13は図書ボリューム補正係数テーブルTM41、雑誌ボリューム補正係数テーブルTM42、およびAVソフトボリューム補正係数テーブルTM43の例を示す図である。図14は在勤在住補正係数テーブルTN11の例を示す図である。図15は距離補正係数テーブルTN21の例を示す図である。図16は職業補正係数テーブルTN31の例を示す図である。図17は性別補正係数テーブルTN41の例を示す図である。図18は年齢補正係数テーブルTN51の例を示す図である。図19は貸出冊数補正係数テーブルTP11、平均貸出日数補正係数テーブルTP21、延滞回数補正係数テーブルTP31、平均延滞日数補正係数テーブルTP41、および平均取置日数補正係数テーブルTP51の例を示す図である。
次に、図3に示す管理サーバ1の各部の機能および管理サーバ1が使用するデータなどについて詳細に説明する。
利用者データ記憶部121は、図書館Xの利用者に関するデータを記憶している。具体的には、利用者データ記憶部121は、利用者種別テーブルTL11および利用者実績テーブルTL12を記憶している。
利用者種別テーブルTL11には、図4に示すように、1人の利用者につき利用者種別データDT11が1つずつ格納されている。
ある利用者の利用者種別データDT11において、「利用者コード」は、その利用者の利用者コードである。「在勤在住」は、その利用者が会員であるために有する資格(条件)である。
「距離」は、その利用者の自宅から図書館Xまでの距離である。「職業」は、その利用者の職業である。「性別」は、その利用者の性別である。ただし、その利用者が個人でない場合などは、性別は「不明」である。「生年月日」は、その利用者の生年月日である。
以上の各フィールドのデータは、その利用者が図書館Xの会員になる際に、図書館司書が司書用端末装置2を操作することによって入力される。入力されたデータは、司書用端末装置2から管理サーバ1へ転送される。利用者データ記憶部121は、入力されたデータを含む利用者種別データDT11を生成し、利用者種別テーブルTL11に格納する。
「年齢」は、その利用者の年齢であって、現在の日付およびその利用者の生年月日に基づいて算出される。
利用者データ記憶部121は、毎日、所定の時刻(例えば、午前0時)に、バッチ処理などによって、各利用者の利用者種別データDT11に示される年齢を必要に応じて更新する。
一方、利用者実績テーブルTL12には、図5に示すように、1人の利用者につき利用者実績データDT12が1つずつ格納されている。
ある利用者の利用者実績データDT12において、「利用者コード」は、その利用者の利用者コードである。「貸出冊数」は、その利用者が過去に図書館Xから借りた資料の全冊数である。なお、本実施形態では、AVソフトも「1冊」、「2冊」、…と数えるものとする。「平均貸出日数」は、その利用者に対する、資料1冊当たりの過去の平均の貸出の日数である。「延滞回数」は、その利用者が過去に資料を期限までに返却しなかった(つまり、延滞した)回数である。「平均延滞日数」は、その利用者の、資料1冊当たりの延滞の平均の日数である。「平均取置日数」は、その利用者の、資料1冊当たりの平均の取置日数である。なお、「取置日数」とは、予約した資料を借りるのが可能になった日から資料を借りた日までの日数を意味する。
利用者データ記憶部121は、利用者が新たに会員になると、その利用者の利用者実績データDT12を生成し、利用者実績テーブルTL12に格納する。生成時は、利用者実績データDT12には、その利用者の利用者コードのみが示され、それ以外のフィールドの値はすべて「0」である。
そして、その後、利用者データ記憶部121は、その利用者が資料を借りたり返却したりするごとに、その利用者の利用者実績データDT12の「利用者コード」以外の各フィールドの値を適宜、更新する。また、「利用者コード」以外の各フィールドの値は、後述する資料予約テーブルTL31(図8参照)および資料貸出テーブルTL41(図9参照)に基づいて求めることができる。
資料データ記憶部122は、図書館Xが利用者に貸し出すことができる資料に関するデータを記憶している。具体的には、資料データ記憶部122は、資料マスタTL21および資料状況テーブルTL22を記憶している。なお、資料のタイトルごとに、ユニークな資料コードが与えられている。
資料マスタTL21には、図6に示すように、1つのタイトルにつき資料種別データDT21が1つずつ格納されている。
あるタイトルの資料種別データDT21において、「資料コード」は、そのタイトルの資料コードである。「資料名」は、そのタイトルを表す文字列である。つまり、その資料が図書であれば書籍名であり、雑誌であれば雑誌名であり、AVソフトであればソフト名である。
「著者」は、そのタイトルの資料を著作した著者の名前である。著者の名前の代わりに編集者、監修者、または監督などの名前が示される場合もある。
「資料種別」は、そのタイトルの資料の、媒体としての種類を示す。上述の通り、図書館Xでは、資料として図書、雑誌、およびAVソフトが取り扱われる。よって、「資料種別」には、図書、雑誌、およびAVソフトのうちのいずれかが示される。「分類」は、そのタイトルの資料に記載されるコンテンツのジャンルを示す。「区分」は、そのタイトルの資料の対象などを示す。
「ページ数/再生時間」は、そのタイトルの資料のコンテンツの量を示す。そのタイトルの資料が図書または雑誌である場合は、ページ数を示し、AVソフトである場合は、再生時間を示す。「所蔵数」は、図書館Xが所蔵する、そのタイトルの資料の冊数である。つまり、そのタイトルの資料は、所蔵数と同数の利用者に対して同時に貸出し可能である。「受入日」は、そのタイトルの資料が図書館Xに受け入れられた日付を示す。
なお、資料種別、分類、および区分は、それぞれ、資料をグループ分けするための大グループ、中グループ、および小グループであるとも、言える。
利用者データ記憶部121は、新たなタイトルの資料が図書館Xに受け入れられるごとに、そのタイトルの資料種別データDT21を生成し、資料マスタTL21に格納する。資料種別データDT21の各フィールドのデータは、図書館司書によって入力される。
一方、資料状況テーブルTL22には、図7に示すように、1つのタイトルにつき資料状況データDT22が1つずつ格納されている。
ある資料の資料状況データDT22において、「資料コード」は、そのタイトルの資料コードである。「貸出可能冊数」は、現在、そのタイトルの資料を予約なしで利用者が借りることができる冊数である。「予約数」は、そのタイトルの資料の現在の予約待ちの数である。
資料データ記憶部122は、新たなタイトルの資料が図書館Xに受け入れられるごとに、そのタイトルの資料状況データDT22を生成し、資料状況テーブルTL22に格納する。生成時は、資料状況データDT22には、そのタイトルの資料コードのみが示され、それ以外のフィールドの値はすべて「0」である。
そして、その後、資料データ記憶部122は、そのタイトルの資料が貸し出され、返却され、または予約されるごとに、そのタイトルの資料状況データDT22の「資料コード」以外の各フィールドの値を適宜、更新する。また、「資料コード」以外の各フィールドの値は、後述する資料予約テーブルTL31(図8参照)および資料貸出テーブルTL41(図9参照)に基づいて求めることができる。
予約データ記憶部123は、資料の予約に関するデータを記憶している。具体的には、予約データ記憶部123は、資料予約テーブルTL31を記憶している。
資料予約テーブルTL31には、図8に示すように、1回の予約ごとに資料予約データDT31が1つずつ格納されている。
予約データ記憶部123は、利用者が予約を行うごとに、この予約に対してユニークな予約コードを発行する。そして、次のようなデータを含む資料予約データDT31を生成する。
ある予約の資料予約データDT31において、「予約コード」は、その予約の予約コードを示す。「資料コード」は、その予約に係る資料のタイトルの資料コードである。「利用者コード」は、その予約を行った利用者の利用者コードである。「予約受付日」は、図書館Xがその予約を受け付けた日付である。これらのフィールドのデータは、その予約の際に、図書館司書または利用者によって入力される。
「貸出可能日」は、その予約に係る資料をその利用者に対して貸し出すことができるようになった日付である。「貸出日」は、その予約に係る資料がその利用者に対して貸し出された日付である。「返却日」は、その予約の順番が回ってきて利用者に資料が貸し出され、その後にその資料が返却された日付である。これらのフィールドは、予約の時点では、何も示さない。その後、予約データ記憶部123は、その利用者へのその資料の貸出しの順番が回ってきた日を「貸出可能日」のフィールドに書き込む。また、その利用者へその資料が貸し出された日を「貸出日」のフィールドに書き込む。また、その資料がその利用者から返却された日を「返却日」のフィールドに書き込む。
なお、資料の貸出しは、予約を先に行った利用者から順に貸し出される。よって、資料予約テーブルTL31は、貸出しの順番を示しているとも、言える。
貸出返却データ記憶部124は、資料の貸出しに関するデータを記憶している。具体的には、貸出返却データ記憶部124は、資料貸出テーブルTL41を記憶している。
資料貸出テーブルTL41には、図9に示すように、1回の貸出しごとに資料貸出データDT41が1つずつ格納されている。
貸出返却データ記憶部124は、利用者への資料の貸出しが行われるごとに、この貸出しに対してユニークな貸出コードを発行する。そして、次のようなデータを含む資料貸出データDT41を生成する。
ある貸出しの資料貸出データDT41において、「貸出コード」は、その貸出しの貸出コードを示す。「資料コード」は、貸し出された資料のタイトルの資料コードである。「利用者コード」は、貸出し先である利用者の利用者コードである。「貸出日」は、貸出しが行われた日付である。これらのフィールドのデータは、その貸出しの際に、図書館司書によって入力される。
「返却日」は、貸し出された資料が返却された日付であって、貸出しの時点では何も示されない。その後、貸出返却データ記憶部124は、資料が返却された日を「返却日」のフィールドに書き込む。
ところで、図書館Xは、利用者が1冊の資料を借りることができる期間を定めている。以下、この期間を「貸出基準日数K」と記載する。ほとんどの利用者が規則を守ることに鑑みれば、1人の利用者が1冊の資料を借りる期間は貸出基準日数Kに近いと、推定される。図書館Xでは、貸出基準日数Kとして「14日」が定められているものとする。
しかし、貸出基準日数Kよりも短い期間しか借りない傾向を有する利用者も存在すれば、貸出基準日数Kよりも長い期間借りる(つまり、延滞する)傾向を有する利用者も存在する。また、貸出基準日数Kよりも短い期間しか借りられない傾向を有する資料も存在すれば、貸出基準日数Kよりも長い期間借りられる傾向を有する使用も存在する。
補正用データ記憶部125は、資料の属性および利用者の属性ごとに、貸出しの期間についての上述のような傾向を表すデータを記憶している。これらのデータは、予約した資料が借りられるようになるまでの日数(以下、「予約待ち日数W」と記載する。)を予測するために用いられる。さらに、補正用データ記憶部125は、利用者の過去の実績に応じて予約待ち日数Wを予測するためのデータを記憶している。
具体的には、補正用データ記憶部125は、次に順次説明する様々なテーブルを記憶している。
資料種別補正係数テーブルTM11には、図10に示すように、媒体の種類(資料種別)ごとの補正係数Laが格納されている。
「補正係数」は、貸出基準日数Kを資料または利用者に合わせて補正するために用いられる。貸出基準日数Kと等しい期間、利用者へ貸し出される(または、利用者が借りる)傾向がある属性に対しては、補正係数として「1.0」が設定される。貸出基準日数Kよりも短い期間、利用者へ貸し出される(または、利用者が借りる)傾向がある属性に対しては、補正係数として、1.0未満の係数が設定される。ただし、補正係数に0以下の値が設定されることは、ない。貸出基準日数Kよりも長い期間、利用者へ貸し出される(または、利用者が借りる)傾向がある属性に対しては、補正係数として、1.0よりも大きい係数が設定される。補正係数は、貸出しの期間が短い傾向にある属性のものほど小さく設定され、長い傾向にある属性のものほど大きく設定される。
資料種別補正係数テーブルTM11のほか、図11〜図13に示す各テーブルには、資料の種々の属性の補正係数が格納されている。
図書分類補正係数テーブルTM21には、図11(A)に示すように、図書の分類ごとの補正係数Lbが格納されている。なお、本実施形態では、図書の分類として、日本十進分類法に定められる分類が用いられる。
雑誌分類補正係数テーブルTM22には、図11(B)に示すように、雑誌の分類ごとの補正係数Lbが格納されている。
AVソフト分類補正係数テーブルTM23には、図11(C)に示すように、AVソフトの分類ごとの補正係数Lbが格納されている。
区分補正係数テーブルTM31には、図12に示すように、図書および雑誌の区分ごとの補正係数Lcが格納されている。なお、本実施形態では、図書および雑誌で共通の区分が用いられる。図書および雑誌のそれぞれについて、別々に補正係数Lcを設定してもよい。また、本実施形態では、AVソフトは、すべて「AV」という区分に属する。そこで、AVソフトの区分の補正係数Lcは、一律の値(本実施形態では、「1.0」)に定められている。AVソフトを複数の区分にグループ分けする場合は、図書および雑誌の場合と同様に、区分ごとに補正係数Lcを設定してもよい。
図書ボリューム補正係数テーブルTM41には、図13(A)に示すように、図書のページ数ごとの補正係数Ldが格納されている。
雑誌ボリューム補正係数テーブルTM42には、図13(B)に示すように、雑誌のページ数ごとの補正係数Ldが格納されている。
AVソフトボリューム補正係数テーブルTM43には、図13(C)に示すように、AVソフトの再生時間ごとの補正係数Ldが格納されている。
図14〜図18に示す各テーブルには、利用者の種々の属性の補正係数が格納されている。
在勤在住補正係数テーブルTN11には、図14に示すように、会員になるための資格(在勤、在住などの条件)ごとの補正係数Raが格納されている。
距離補正係数テーブルTN21には、図15に示すように、図書館Xから自宅までの距離ごとの補正係数Rbが格納されている。
職業補正係数テーブルTN31には、図16に示すように、職業ごとの補正係数Rcが格納されている。
性別補正係数テーブルTN41には、図17に示すように、性別ごとの補正係数Rdが格納されている。なお、図17において、各性別の補正係数Rdはすべて同じであるが、それぞれ異なるように設定してもよい。
年齢補正係数テーブルTN51には、図18に示すように、年齢毎の補正係数Reが格納されている。
次に説明する図19(A)〜図19(E)の各テーブルには、利用者の実績ごとの補正係数が格納されている。
貸出冊数補正係数テーブルTP11には、図19(A)に示すように、貸出冊数ごとの補正係数Jaが格納されている。
平均貸出日数補正係数テーブルTP21には、図19(B)に示すように、平均貸出日数ごとの補正係数Jbが格納されている。
延滞回数補正係数テーブルTP31には、図19(C)に示すように、延滞回数ごとの補正係数Jcが格納されている。
平均延滞日数補正係数テーブルTP41には、図19(D)に示すように、平均延滞日数ごとの補正係数Jdが格納されている。
平均取置日数補正係数テーブルTP51には、図19(E)に示すように、平均取置日数ごとの補正係数Jeが格納されている。
そのほか、補正用データ記憶部125は、全体補正用テーブルTQ11、TQ21、TQ31を記憶している。これらのテーブルについては、後に説明する。
図20は抽出された資料予約データDT31の例を示す図である。図21は全体補正用テーブルTQ11、TQ21、TQ31の例を示す図である。図22は予測された予約待ち日数Wの例を示す図である。図23は検索結果画面50の例を示す図である。
図3の演算開始時期監視部101ないし予約待ち日数算出部108は、資料の予約待ち日数Wを予測するための処理を次のように行う。
演算開始時期監視部101は、予約待ち日数Wの予測を開始するタイミングを監視する。予測は、例えば、日付が変わった(毎日午前0時を過ぎた)タイミング、資料の所蔵数に増減があったタイミング、資料が返却されたタイミング、資料が貸し出されたタイミング、および予約の増減(新たな予約の発生または既存の予約のキャンセル)があったタイミングなど、予約待ち日数Wが変化し得るタイミングに実行される。そこで、演算開始時期監視部101は、これらのタイミングが訪れたか否かを監視する。
日付が変わったことは、管理サーバ1に内蔵されている時計をチェックすることによって、監視することができる。資料の所蔵数の増減は、資料マスタTL21(図6参照)の変化をチェックすることによって、監視することができる。資料の貸出しおよび返却は、資料貸出テーブルTL41(図9参照)の変化をチェックすることによって、監視することができる。予約の増減は、資料予約テーブルTL31(図8参照)の変化をチェックすることによって、監視することができる。
同一資料予約抽出部102は、同一の資料の予約の資料予約データDT31を資料予約テーブルTL31から抽出する。例えば、ある資料の予約が1つキャンセルされたことが演算開始時期監視部101によって検知された場合は、その資料の他の予約を抽出する。ただし、「返却日」に日付が示される資料予約データDT31は、抽出の対象外とする。この資料予約データDT31に係る予約は、予約待ち日数Wの算出に何ら関係しないからである。
以下、「S000001」という資料コード(図6参照)を有する資料S1の各予約の予約待ち日数Wを算出する場合を適宜例に挙げながら、説明する。また、資料S1の資料予約データDT31として、図20に示す3つの資料予約データDT31(DT31a、DT31b、DT31c)が抽出されたものとする。
資料特性値算出部103は、資料の補正値Lを、その資料の資料種別データDT21に示される属性に基づいて次のように算出する。
資料種別データDT21には、図6で説明した通り、資料の種々の属性が示されている。資料特性値算出部103は、資料種別データDT21に示される各属性と資料種別補正係数テーブルTM11(図10参照)などのテーブルとを照合することによって、補正係数La〜Ldを選出する。
具体的には、資料特性値算出部103は、資料種別データDT21に示される資料種別と資料種別補正係数テーブルTM11とを照合することによって、その資料種別に対応する補正係数Laを選出する。
さらに、資料特性値算出部103は、その資料が図書である場合は、資料種別データDT21に示される分類と図書分類補正係数テーブルTM21(図11(A)参照)とを照合することによって、その分類に対応する補正係数Lbを選出する。同様に、その資料が雑誌である場合は、資料種別データDT21に示される分類と雑誌分類補正係数テーブルTM22(図11(B)参照)とを照合することによって、その分類に対応する補正係数Lbを選出する。または、その資料がAVソフトである場合は、資料種別データDT21に示される分類とAVソフト分類補正係数テーブルTM23(図11(C)参照)とを照合することによって、その分類に対応する補正係数Lbを選出する。
同様に、資料特性値算出部103は、資料種別データDT21に示される区分に対応する補正係数Lcを区分補正係数テーブルTM31(図12参照)から選出する。ただし、AVソフトの場合は、一律に補正係数Lcが決まっているので、それを選出する。また、資料種別データDT21に示されるページ数または再生時間に対応する補正係数Ldを、その資料の資料種別のテーブルから選出する。つまり、補正係数Ldを、図書の場合は図書ボリューム補正係数テーブルTM41から選出し、雑誌の場合は雑誌ボリューム補正係数テーブルTM42から選出し、AVソフトの場合はAVソフトボリューム補正係数テーブルTM43から選出する(図13参照)。
そして、資料特性値算出部103は、次の(1)式の演算を行うことによって、補正値Lを算出する。つまり、選出した補正係数La〜補正係数Ldを掛け合わせることによって、補正値Lを算出する。
L=La×Lb×Lc×Ld … (1)
資料S1は、図6の「S000001」という資料コードを示す資料種別データDT21から分かるように、資料種別が「図書」であり、分類が「歴史」であり、区分が「郷土」であり、ページ数が「120頁」である。よって、資料特性値算出部103は、資料S1の補正値Lとして、
L=1.0×1.2×1.0×0.4=0.48
を算出する。
なお、資料特性値算出部103は、小数点第3位以下を四捨五入する。後述する補正値Rおよび補正値Jなどの各値も同様に四捨五入される。
利用者種別特性値算出部104は、同一資料予約抽出部102によって抽出された資料予約データDT31それぞれの予約を行った利用者ごとの補正値Rを、利用者ごとの利用者種別データDT11に示される属性に基づいて次のように算出する。以下、抽出された資料予約データDT31の予約を行った利用者を「予約者」と記載する。また、予約を行った順に「1人目の予約者」、「2人目の予約者」、…などと区別して記載することがある。
利用者種別特性値算出部104は、資料特性値算出部103による補正値Lの算出の場合と同様に、まず、資料予約データDT31に示される各属性と在勤在住補正係数テーブルTN11(図14参照)などのテーブルとを照合することによって、補正係数Ra〜Rdを選出する。
具体的には、利用者種別特性値算出部104は、利用者種別データDT11に示される在勤在住に対応する補正係数Ra、距離に対応する補正係数Rb、職業に対応する補正係数Rc、性別に対応する補正係数Rd、および年齢に対応する補正係数Reを、それぞれ、在勤在住補正係数テーブルTN11、距離補正係数テーブルTN21、職業補正係数テーブルTN31、性別補正係数テーブルTN41、および年齢補正係数テーブルTN51(図14〜図18参照)から選出する。
そして、利用者種別特性値算出部104は、次の(2)式の演算を行うことによって、補正値Rを算出する。つまり、選出した補正係数Ra〜補正係数Rdを掛け合わせることによって、補正値Rを算出する。
R=Ra×Rb×Rc×Rd×Re … (2)
資料予約データDT31a(図20参照)の予約を行った利用者(予約者)は、「A012345」という利用者コードを有する。この利用者コードを示す利用者種別データDT11は、図4に示す一番上の利用者種別データDT11である。資料特性値算出部103は、この利用者種別データDT11に基づいてこの予約者の補正値Rとして、
R=1.2×1.1×1.0×1.0×1.1≒1.45
を算出する。残りの2人の予約者それぞれの補正値Rも同様の方法によって、
R=1.2×0.9×0.9×1.0×1.1≒1.07
および
R=0.8×0.6×0.9×1.0×1.1≒0.48
と算出する。
以下、資料予約データDT31aの予約者の補正値R、資料予約データDT31bの予約者の補正値R、および資料予約データDT31cの予約者の補正値Rを、それぞれ、「補正値Ry1」、「補正値Ry2」、および「補正値Ry3」と区別して記載することがある。よって、本例では、Ry1=1.45、Ry2=1.07、Ry3=0.48、である。後述する補正値Jも同様に、1〜3人目の利用者ごとに区別して記載することがある。
利用者実績特性値算出部105は、予約者ごとの補正値Jを、予約者ごとの利用者実績データDT12に示される実績に基づいて次のように算出する。
利用者実績特性値算出部105は、資料特性値算出部103による補正値Lの算出の場合などと同様に、まず、利用者実績データDT12に示される各実績と貸出冊数補正係数テーブルTP11(図19参照)などのテーブルとを照合することによって、補正係数Ja〜Jeを選出する。
具体的には、利用者実績特性値算出部105は、利用者実績データDT12に示される貸出冊数に対応する補正係数Ja、平均貸出日数に対応する補正係数Jb、延滞回数に対応する補正係数Jc、平均延滞日数に対応する補正係数Jd、および平均取置日数に対応する補正係数Jeを、それぞれ、貸出冊数補正係数テーブルTP11、平均貸出日数補正係数テーブルTP21、延滞回数補正係数テーブルTP31、平均延滞日数補正係数テーブルTP41、および平均取置日数補正係数テーブルTP51から選出する。
利用者実績特性値算出部105は、図5に示す一番上の利用者実績データDT12に基づいて、「A012345」という利用者コードを有する予約者の補正値J(補正値Jy1)として、
Jy1=1.0×0.8×1.1×1.0×1.3≒1.14
を算出する。残りの2人の予約者それぞれの補正値J(補正値Jy2、Jy3)も同様の方法によって、
Jy2=0.9×1.0×0.9×1.0×1.5≒1.22
および
Jy3=1.0×0.7×1.5×1.9×1.0≒2.00
と算出する。
上述の通り、補正値Lは、補正係数La〜補正係数Ldを掛け合わせることによって算出される。補正係数La〜補正係数Ldは、属性ごとの、資料の貸出しの期間の長短の特性を表している。したがって、補正値Lは、資料の、貸出しの期間の長短についての総合的な(全体的な)特性を表していると、言える。
図書館Xでは、補正値Lが取り得る範囲を6つのランクに分割している。そして、タンクごとに異なる全体補正値LWを定義している。
補正値Rおよび補正値Jも、同様である。つまり、補正値Rが取り得る値の範囲を6つのランクに分割し、補正値Jが取り得る値の範囲を6つのランクに分割している。そして、ランクごとに異なる全体補正値RW、全体補正値JWが定義されている。
前述の通り、補正用データ記憶部125は、全体補正用テーブルTQ11、TQ21、およびTQ31を記憶している。
全体補正用テーブルTQ11には、図21(A)のように、補正値Lのランクごとの全体補正値LWが示されている。全体補正用テーブルTQ21には、図21(B)のように、補正値Rのランクごとの全体補正値RWが示されている。全体補正用テーブルTQ31には、図21(C)のように、補正値Jのランクごとの全体補正値JWが示されている。
順番進行日数予測部106は、予約の順番がある予約者から次の予約者へ進む平均の日数(以下、「順番進行日数Da」と記載する。)を次のように予測する。
順番進行日数予測部106は、予約に係る資料の全体補正値LWを、その資料の補正値Rと全体補正用テーブルTQ11(図21(A)参照)とを照合することによって、決定する。資料S1の例の場合は、上述の通り、その資料の補正値Lは、「0.48」である。この値は、「L3」のランクに該当する。よって、順番進行日数予測部106は、資料S1の全体補正値LWを「0.50」に決定する。
そして、順番進行日数予測部106は、決定した全体補正値LWを用いて、次の(3)式に基づいて順番進行日数Daを算出する。
Da=貸出基準日数K×全体補正値LW/所蔵数 … (3)
資料S1の所蔵数は、資料S1の資料種別データDT21(図6参照)に基づいて「2」であると、分かる。よって、順番進行日数予測部106は、資料S1の順番進行日数Daとして、14×0.50/2=3.50、を算出する。
貸出日数予測部107は、予約に係る資料がそれぞれの予約者へ貸し出される日数を次のように予測する。なお、以下、この日数を「個別貸出日数Db」と記載する。
貸出日数予測部107は、予約者ごとの全体補正値RWを、各予約者の補正値Rと全体補正用テーブルTQ21(図21(B)参照)とを照合することによって、決定する。1人目の予約者の補正値Rつまり補正値Ry1は、上述の通り、「1.45」である。よって、貸出日数予測部107は、1人目の予約者の全体補正値RWを「1.25」に決定する。同様に、2人目の予約者の全体補正値RWおよび3人目の予約書の全体補正値RWを、それぞれ、「1.00」および「0.50」に決定する。
貸出日数予測部107は、同様に、予約者ごとの全体補正値JWを、各予約者の補正値Jと全体補正用テーブルTQ31(図21(C)参照)とを照合することによって、決定する。これにより、1〜3人目の予約者の全体補正値JWは、順に「1.25」、「1.25」、および「2.00」に決定される。
以下、1〜3人目の予約者の全体補正値RWを順に「全体補正値RW1」、「全体補正値RW2」、および「全体補正値RW3」と区別して記載する。同様に、1〜3人目の予約者の全体補正値JWを順に「全体補正値JW1」、「全体補正値JW2」、および「全体補正値JW3」と区別して記載する。
そして、貸出日数予測部107は、次の(4)式に基づいて、各予約者の個別貸出日数Dbを算出する。
Dbi=順番進行日数Da×全体補正値RWi×全体補正値JWi … (4)
ただし、iは、自然数である。Dbiは、i人目の予約者の個別貸出日数Dbである。
予約待ち日数算出部108は、予約者それぞれの予約待ち日数Wを算出する。さらに、利用者が今、新たに予約を行った場合の、予約待ち日数Wを算出する。
図20に示したように、少なくとも1人目の予約者に対しては、既に資料が貸し出されている。このような予約者の予約待ち日数Wを算出する必要は、ない。
そこで、予約待ち日数算出部108は、同一資料予約抽出部102によって抽出された資料予約データDT31に貸出日が未だ記録されていない予約の予約者に対して、予約待ち日数Wを算出する。
貸出日数予測部107は、まず、現在、予約に係る資料を借りている利用者へその資料を貸し出してから経過した日数を算出する。以下、この日数を「貸出経過日数Dc」と記載する。貸出経過日数Dcは、現在の日付およびその利用者の資料予約データDT31(図6参照)または資料貸出データDT41(図9参照)に示される貸出日に基づいて算出することができる。予約に係る資料の所蔵数が複数であり、複数の利用者へ現在貸し出されている場合は、それぞれの利用者へ貸し出してから経過した日数の平均値を貸出経過日数Dcとして算出すればよい。
そして、貸出日数予測部107は、次の(5)式を用いて、各予約者の予約待ち日数Wを算出する。
ただし、Wkは、k人目の予約者の予約待ち日数Wである。
例えば、予測を行う日付が2010年1月28日である場合において、資料S1の2人目の予約者の予約待ち日数W2は、
W2=Db1−Dc≒5.47−1=4.47
となる。なお、Db1は、貸出日数予測部107が(4)式を用いて、3.50×1.25×1.25、を演算することによって、算出されている。また、貸出経過日数Dcは、予測を行う日付および資料予約データDT31aに示される貸出日より「1日」であることが、分かる。
また、3人目の予約者の予約待ち日数W3は、
W3=Db1+Db2−Dc=5.47+4.38−1=8.85
となる。なお、Db2は、貸出日数予測部107が(4)式を用いて、3.50×1.00×1.25、を演算することによって、算出されている。
また、今から資料S1の予約を行おうとする利用者(つまり、4人目の予約者になろうとする利用者)の予約待ち日数W4は、
W4=Db1+Db2+Db3−Dc=5.47+4.38+3.50−1=12.35
となる。なお、Db3は、貸出日数予測部107が(4)式を用いて、3.50×0.50×2.00、を演算することによって、算出されている。
予約待ち日数算出部108によって算出(予測)された、各タイトルの、各予約者および今から予約を行おうとする利用者の予約待ち日数Wは、図22に示すように、予測結果データ記憶部126に記憶される。なお、前回に算出(予測)した予約待ち日数Wは、予測結果データ記憶部126から削除される。
予約検索処理部109は、司書用端末装置2または利用者用端末装置3からの問合せに応じて、予約待ち日数Wを予測結果データ記憶部126から検索する。予約待ち日数Wは、特定の予約者のものであってもよいし、これから予約を行おうとする利用者のものであってもよい。そのほか、資料名、著者、貸出可能冊数、所蔵数、および予約数などを各テーブルから検索する(図6、図7、図8参照)。そして、予約検索処理部109は、検索結果をウェブページとして提供する。すると、司書用端末装置2または利用者用端末装置3は、図23のような検索結果画面50を表示する。
図24は管理サーバ1の全体的な処理の流れの例を説明するフローチャートである。次に、予約待ち日数Wの予測などの処理の全体的な流れを、図24に示すフローチャートを参照しながら説明する。
管理サーバ1は、予測のタイミングが来たことを検知すると(図24の#11でYes)、予約待ち日数Wを予測するための処理を行う(#12〜#18)。以下、資料S1についての予約待ち日数Wの予測を行う場合を例に、説明する。
管理サーバ1は、資料S1の予約の資料予約データDT31(図20参照)を抽出する(#12)。抽出の処理と並行してまたは前後して、管理サーバ1は、資料S1の属性に基づいて資料S1の補正値Lを算出し、その補正値Lのランクに応じた全体補正値LWを選出する(#13)。
資料予約データDT31が抽出されたら、管理サーバ1は、資料S1の予約を行った利用者つまり予約者を各資料予約データDT31に基づいて特定し、各予約者の補正値Rおよび補正値Jを算出し、その補正値Rのランクに応じた全体補正値RWおよびその補正値Jに応じた全体補正値JWを選出する(#14、#15)。全体補正値RWおよび全体補正値JWを選出する順序は、問わない。
管理サーバ1は、図書館Xの貸出基準日数K、資料S1の全体補正値LWおよび所蔵数、および各利用者の全体補正値RWおよび全体補正値JWに基づいて、各利用者の個別貸出日数Dbを算出(予測)する(#16)。そして、管理サーバ1は、各予約者への貸出しの順番が回ってくるまでの日数、つまり、予約待ち日数Wを算出(予測)し(#17)、記憶する(#18)。
または、管理サーバ1は、司書用端末装置2または利用者用端末装置3から予約待ち日数Wの検索の要求を受けると(#19でYes)、要求に合った予約待ち日数Wなどを検索し(#22)、検索結果を返信する(#21)。
本実施形態によると、予約した資料の貸出しの順番が回ってくる時期を従来よりも正確に予測することができる。
図25は全体補正用テーブルTQ41、TQ42、TQ43の例を示す図である。本実施形態では、資料の全体補正値LWとして、資料種別、分類、区分、およびボリューム(ページ数または再生時間)の各属性に基づいて求めた全体補正値(図21(A)参照)を用いたが、それ以外の全体補正値を用いてもよい。
例えば、図21(A)に示す全体補正用テーブルTQ11に基づいて求められる全体補正値の代わりに、資料が図書館Xに受け入れられてから経過した日数に基づいて求められる全体補正値を用いてもよい。この場合は、図25(A)に示すような全体補正用テーブルTQ41に基づいて全体補正値を求めればよい。または、図21(A)に示す全体補正用テーブルTQ11に基づいて求められる全体補正値と図25(A)全体補正用テーブルTQ41に基づいて求められる全体補正値とを組み合わせて用いてもよい。例えば、ある利用者の全体補正値RWと全体補正値JWとを掛け合わせたように、両全体補正値を掛け合わせて用いてもよい。
または、資料を読んだと推測される人数(いわゆる、ベストリーダ、ベストセラーの度合い)に基づいて求められる全体補正値を用いてもよい。つまり、例えば、ブックストアでの資料の人気度(例えば、売上の順位)または図書館での資料の人気度(例えば、貸出回数の順位)に基づいて求められる全体補正値を用いてもよい。この場合は、図25(B)に示すような全体補正用テーブルTQ42に基づいて全体補正値を求めればよい。
または、図書館での予約の数(いわゆる、ベストリクエストの度合い)に基づいて求められる全体補正値を用いてもよい。この場合は、図25(C)に示すような全体補正用テーブルTQ43に基づいて全体補正値を求めればよい。
全体補正用テーブルTQ11、TQ41、TQ42、およびTQ43に基づいてそれぞれに求められる全体補正値をどのように組み合わせるかは、図書館Xの利用者の傾向などに応じて、適宜設定することができる。
本実施形態では、利用者が個人である場合を例に説明したが、利用者が団体である場合にも、本発明を適用することができる。この場合は、例えば、個人および団体ごとに、補正係数Laなどの補正係数を設定したり、参照する属性を選択したりして、個人および団体それぞれの個別貸出日数Dbを予測すればよい。
予約者が他の図書館で資料を受け取り返却する場合がある。そこで、そのような予約者がいる場合は、予約待ち日数Wを算出する際に、資料が図書館Xと他の図書館との間を往復する日数を加算してもよい。
その他、貸出用資料管理システムKS、管理サーバ1の全体または各部の構成、処理内容、処理順序、テーブルの構成などは、本発明の趣旨に沿って適宜変更することができる。