以下、本発明を実施するための最良の形態について図面を用いて説明する。
(第1の実施形態)
図1は、本発明の実施の形態に係るシステム構成例を示す図である。
図1において、クライアントPC101、画像形成装置103、WebアプリケーションサーバーPC105、ユーザー管理サービスサーバーPC104、文書管理サービスサーバーPC106は、ネットワーク110を介して接続されている。図1において、クライアントPC101は、複数台接続されていても構わない。ネットワーク110は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線等のいずれであり、またこれらの組み合わせにより実現される、いわゆる通信ネットワークである。
ネットワーク110は、データの送受信が可能であればよく、有線、無線どちらでも構わない。また、様々な企業などにより、クライアントPC101は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、タブレット端末等から成るが、プログラムの実行環境が内蔵されたスマートフォンであってもよい。クライアントPC101では、各種アプリケーションやプリンタードライバー等のプログラムを実行する環境が内蔵されている。
103は画像形成装置であって、プリンター機能、FAX機能、コピー機能、スキャナ機能、ファイル送信機能等を備える。105はWebアプリケーションサーバーPCであり、本実施形態に係る文書管理システム(ファイル管理システム)のWebアプリケーションを提供している。また、本システムにアクセスするユーザーの情報を管理するユーザー管理サービスサーバーPC104と、文書を保存/管理する機能を有する文書管理サービスサーバーPC106がある。
ここで、WebアプリケーションサーバーPC105、ユーザー管理サービスサーバーPC104、文書管理サービスサーバーPC106は、別々に配置されている構成としているが、1つのPCにおいて構成されても構わない。また、文書管理サービスサーバーPCが備える振り分け機能は別サーバーの機能として構成されても構わない。
また、ユーザーがクライアントPC101を操作する構成としているが、3つのサーバーPCのいずれか、または全てと同じPCで操作しても構わない。
なお、実施形態に係る文書管理システムは、クライアントPCのブラウザーを介してアクセスする構成としている。しかし、図示しない専用のクライアントアプリケーションをクライアントPC101に配置し、それを操作する構成であっても構わない。この場合、WebアプリケーションサーバーPC105ではなく、文書管理サービスサーバーPC106と専用クライアントアプリケーションが通信する構成でも構わない。
図2は、クライアントPCのハードウェア構成の一例を示している。図2に示されるハードウェア構成図は一般的な情報処理装置のハードウェア構成図に相当するものとし、本実施形態のPCには一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU202は、HDD205に格納されているアプリケーションプログラム、OS等を実行し、RAM203にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ROM204は、基本I/Oプログラム等の各種データを記憶する。RAM203は、CPU202の主メモリ、ワークエリア等として機能する。HDD205は、大容量メモリとして機能する外部記憶装置であり、アプリケーションやWebブラウザー等のアプリケーションプログラム、OS、関連プログラム等を格納している。ディスプレイ206は、キーボード207から入力したコマンド等を表示したりするものである。インターフェース208は、外部装置I/Fであり、プリンター、USB機器、周辺機器を接続する。キーボード/マウス207は、ユーザーからの指示入力を受け付ける。システムバス201は、クライアント端末101内の各コンポーネントを接続するバスである。ネットワークインターフェースカード(NIC)209は、インターフェース208、ネットワーク110を介して外部装置とのデータのやり取りを行う。
なお、上記コンピューターの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM204、RAM203、HDD205などで変更することも可能である。本実施例中で特に明記しない場合は、フローチャートの各ステップなどの処理は、ROM204等に記憶されているプログラムをRAM203等にロードし、CPU202で実行することによって実現されるものとする。
図2を用いて、クライアントPC101のハードウェア構成の一例を説明した。なお、各種サーバー104乃至106のハードウェア構成では、上述した201乃至205、208、209が少なくとも含まれる。
図3は、図1に示した画像形成装置103内のハードウェア構成を説明する図である。なお、本実施形態は、スキャナ機能と、プリンター機能と、そしてFAX機能を有する複合機(MFP(Multi−Function Peripheral))の例を示す。
図3において、301はI/Oで、ネットワーク(LAN)104などの通信媒介を介してクライアントPC101と接続している。I/O301は複数の接続形態に対応するために複数個搭載されていてもよい。このI/O301を通して、画像形成装置103は、デバイスIDやスキャンイメージを情報処理装置100に渡す。またクライアントPC101より、各種の制御コマンドを受けて処理を行う。I/F制御部302は、画像形成装置103に搭載されているスキャナ(不図示)やプリンタ(不図示)やまたはFAX(不図示)などの処理系に関してデバイスIDを発行する制御をおこなっている。RAM303は、一次記憶装置で、I/O301で取得した制御コマンドなどの外部データや、スキャナエンジン313で読み取られたイメージを格納するに使用される。さらに、RAM303は、プリンタコントローラ310で展開されたプリンタエンジン306に渡される前にイメージの格納などに使用される。
RAM303の割り当て管理はRAM制御部304が行っている。画像データ調歩回路305は、プリンタコントローラ310やスキャナエンジン313によって取り込まれたRAM制御部304に展開されたイメージをプリンタエンジン306の回転にあわせて出力する装置である。プリンタエンジン306は紙などの出力メディアにイメージを現像する装置である。メインコントローラ308は、エンジンI/F307によりプリンタエンジン306の各種制御を行う。また、メインコントローラ308は、制御の要のモジュールであり、スキャナコントローラ309やプリンタコントローラ310やFAXコントローラ311にI/O301経由でクライアントPC101より受け取る制御言語の適切な振り分け処理を行う。さらに、メインコントローラ308は、それぞれのコントローラやUI312からの支持をうけてプリンタエンジン306やスキャナエンジン313の制御を行う。メインコントローラ308と各種コントローラの間の制御インターフェースを統一することにより、一つの周辺機器に複数種類の制御コマンドを処理可能な拡張ボードが搭載可能になる。また現在搭載されている拡張コントローラのデバイスIDを各コントローラより取得し管理するのもメインコントローラの役割である。
スキャナコントローラ309はクライアントPC101より受けたスキャン制御コマンドをメインコントローラ308が解釈可能な内部実行命令に分解する。またスキャナエンジン313で読み取ったイメージをスキャン制御コマンドに変更する。プリンタコントローラ310はクライアントPC101より受けたページ記述言語をメインコントローラ308が解釈可能なページ記述言語の展開イメージなどを含む内部実行命令に分解する。展開イメージはプリンタエンジンまで運ばれ、用紙などの出力メディアに印刷される。FAXコントローラ311は、クライアントPC101より受けたFAX制御言語をイメージに展開し不図示の公衆回線、又はインターネットを介して他のFAX装置やIP−FAXへ転送する。UIは、メインコントローラ308の各種設定や、スキャナ機能やプリンター機能や、そしてFAX機能を直接画像形成装置103で実行する際に、ユーザーによる指示の入出力手段として使用される。スキャナエンジン313はメインコントローラ308の指示により光学装置を用いて印刷されたイメージを読み取り、電気信号に変換してメインコントローラ308に受け渡す。
図4は、文書管理システムのソフトウェア構成例を示す図である。図4では、WebアプリケーションサーバーPC105、ユーザー管理サービスサーバーPC104、及び文書管理サービスサーバーPC106内のソフトウェア構成を示している。なお、メイン制御部404は、本発明の実施形態に係る文書管理システムの全体を制御し、後述する各部に対する指示、管理を行う。
データ送受信部403は、前記クライアントPC101および前記画像形成装置103においてユーザーがブラウザーを介して出した命令を受け取り、メイン制御部404より指示を受けた結果を、クライアントPC101に返答する。
セッション記憶部405は、クライアントPC101および画像形成装置103においてユーザーがブラウザーを介して本文書管理システムにアクセスしてから、同一ユーザーからのアクセスであることを示すためのセッション情報を生成する。更に、ユーザーが本文書管理システムへのアクセスをやめる(ログアウト)、または自動タイムアウトなどでセッションが切れるまでの間、繰り返し使用する各種情報をセッション情報と関連付けて保持する。
Web UI生成部406は、メイン制御部404より指示を受け、状況に応じたWeb UI(HTML)を生成する。ここで、Web UI生成部が生成するWeb UIは、HTMLだけに限定するものではなく、JavaScript(登録商標)などのスクリプト言語が埋まっていても構わない。
次に、ユーザー情報処理部401は、メイン制御部404からの指示に従い、ユーザー情報記憶部402に保存されている本文書管理システムにアクセス可能なユーザー、及びユーザー設定情報(UI設定情報を含む)の抽出、設定などの処理を行う。ここでユーザー管理に関して本文書管理システム独自の管理ではなく既知の技術であるActive Directory、LDAPなどとユーザー情報処理部401が連携し、ユーザー情報記憶部402においてはユーザー設定情報のみを保存しても構わない。
次に、文書情報処理部409は、メイン制御部404からの指示に従い、文書情報記憶部410に保存されている文書の実体、及びインデックス情報を含む文書属性の登録、保存、抽出、編集などの操作を行う。一時作業領域に格納した文書や一時作業領域内に設定されるインデックスの情報も文書情報記憶部410に保存される。文書振り分け処理部407では、文書振り分け条件記憶部408に保存されている振り分け条件を基にデバイスから登録する文書に対して格納先やプロパティの設定をするための振り分け処理を実行する。
図5は、クライアントPC101で動作する文書管理アプリケーション500のソフトウェア構成の一例を示す図である。クライアントPC101にインストールされた文書管理アプリケーション500は、HDD205に記憶されており、文書管理システム実行時にRAM203及びROM204に展開され、CPU202にて計算処理を行って動作するアプリケーションである。文書管理アプリケーション500は、ライブラリーを管理する機能、ライブラリー内のファイルを一覧表示する機能、フォルダーの作成、ファイルの移動や削除等のファイル管理を行う機能を保持している。また、後述する文書編集アプリケーション600で、文書管理アプリケーション500で管理するライブラリー内のファイルを開き、編集することができる。
文書管理アプリケーション500は、出力管理部501、ファイル管理部502、ファイル取得部503、入力管理部504、画面表示管理部505、ライブラリー管理部506、検索要求部507から構成される。
出力管理部501は、入力デバイス207の操作に応じてファイル管理部502がファイル操作を行い、WebアプリケーションサーバーPC105に対してファイルの移動等が指示された場合に出力処理を行う。具体的には、WebアプリケーションサーバーPC105以外のデバイスからファイルを移動した際にWebアプリケーションサーバーPC105に対して対象ファイルを転送するといったものが出力処理である。
ファイル管理部502は、フォルダーやファイルの作成、削除、移動等のファイルの操作、アクセス権の変更等をクライアントPC101、WebアプリケーションサーバーPC105のファイルシステムに対して行う。ファイル取得部503はWebアプリケーションサーバーPC105のファイルを受け取り、ファイル管理部502がクライアントPC101のHDD205に保存する。
入力管理部504は、画面表示管理部505により表示された文書管理アプリケーション500のUIを介して、ユーザーによる入力デバイス207の操作を検知し、ユーザーの操作情報を取得する。画面表示管理部505は、文書管理アプリケーション500のUIの一例として示す図7のようなUIの表示等の画面表示制御を行う。
ライブラリー管理部506は、文書管理アプリケーションが登録しているライブラリーの管理を行う。登録しているライブラリーの情報はHDD205に格納されている。検索要求部507は、入力デバイス207の操作によって検索が行われたときにOSやシステムに検索要求を行う。OSやシステムによる検索結果を検索要求部507が受け取ると、画面表示管理部に検索結果の表示指示を行い、結果の表示を行う。
図6は、クライアントPC101で動作する文書編集アプリケーション600のソフトウェア構成の一例を示す図である。文書編集アプリケーション600は、外部メモリ206に記憶されており、文書編集システム実行時にRAM203及びROM204に展開され、CPU202にて計算処理を行って動作するアプリケーションである。
文書編集アプリケーション600は、文書データに対して印刷設定や文書構造の設定や、文書データが保持するページへアノテーション追加などが可能で、出力管理部602、編集部603、入力管理部604、表示部605、から構成される。
出力管理部602は、編集部603で編集し保存した文書を、画像形成装置103に対して出力処理を行う。具体的には、プリンタコントローラ310から用紙へ印刷、ファクスコントローラー311からFAX送信といったものが出力処理である。
編集部603は、文書に対して編集や保存処理などを行う。ここでいう編集とは、単一ページへの編集であるアノテーション機能、印刷設定、文書構造、付加印刷設定、オリジナル文書の追加や削除が含まれる。文書編集アプリケーションは、編集したデータを文書編集アプリケーション独自のファイル形式であるバインダー文書(拡張子はiwb)として保存することができる。また、編集したデータのうち文書データのみを汎用的なファイル形式(たとえばPDF(Portable Document Format))で保存することができる(以後PDF文書(拡張子pdf)とは汎用的なファイル形式のことを示すこととする)。文書編集アプリケーションは前述したバインダー文書とPDF文書の2種類のファイル形式の文書を編集し、それぞれのファイル形式で保存することが可能である。
入力管理部604は、表示部605により表示された文書編集アプリケーション600のUIを介して、ユーザーによる入力デバイス207の操作を検知し、ユーザーの操作情報を取得する。表示部605は、文書編集アプリケーション600のUIの一例として示す図8のようなUIの表示等の画面表示制御を行う。
図7は、文書管理アプリケーションのユーザーインタフェースの一例を示している。図7(a)で、700は文書管理アプリケーション500のメイン画面である。メイン画面700は主なUIコンポーネントとして、リボン710、クイックアクセスツールバー720、アドレスバー730、ライブラリーペイン740、ファイルリストペイン750、プレビューペイン760によって構成される。
リボン710は、用途ごとに分類される複数のタブから構成され、タブにはその用途に適する機能のボタンなどのコントロールを配置できる。これにより、すばやくユーザーの望む機能へアクセスできる。1つのタブは複数のグループで構成でき、1つのグループには複数のコントロールを配置できる。タブやグループはアプリケーションの既定として予め用意されているものが存在し、さらにユーザーの好みの構成で作成したタブやグループも追加できる。図7では、文書管理アプリケーション500のメイン画面700のリボン構成が、既定のタブである“ホーム”、“ファクス”、“印刷”タブ411で構成される例を示している。タブ以外に“ファイル”と書かれたファイルメニュー701があり、ファイルメニュー701を選択するとファイルの保存や印刷等を行うための機能が表示される。また、“ホーム”タブが選択され、“ホーム”タブの既定グループである“クリップボード”、“開く”、“PDFの操作”グループで構成されている状態を示している。
クイックアクセスツールバー720は、タブやグループによる分類はないが機能のボタンなどのコントロールを配置でき、リボン710同様ユーザーの望む機能へすばやくアクセスできる。よく利用する機能を配置しておくことでアプリケーションを使用する上での操作性を向上できる。
アドレスバー730はファイルリストペイン750で現在表示している文書の格納場所のURL(Uniform Resource Locator)情報を表示、またはURLの文字列を731に入力することで指定の格納場所を表示できる。また、732に検索キーワードを入力し、検索ボタン733を押下することで、現在開かれているフォルダー内で検索を行うことができる。このとき図9で説明する検索ダイアログ900が開かれ、検索結果が表示される。
ライブラリーペイン740には、ローカルドライブ上のフォルダーやネットワーク上のフォルダー等の外部の格納場所をライブラリーとして登録でき、ライブラリー内の文書やフォルダーを閲覧・操作できる。図7では、ライブラリーとしてローカルドライブ上のフォルダーを示すローカルフォルダー741が登録されている。ローカルフォルダー741には、“ローカルフォルダー01”、“ローカルフォルダー02”が含まれる。また、文書管理サービスサーバーPC106上のフォルダーを示すDSフォルダー742が登録されており、“DSフォルダー01”が展開され、下位の“01”フォルダーが選択されている状態を示す。DSフォルダー742には“DSフォルダー01”、“DSフォルダー02”が含まれる。
ファイルリストペイン750は前述のライブラリー内の文書やフォルダーの情報をリスト形式やサムネイルの形式で表示できる。リスト表示では名前やファイルの種類、サイズ、更新日時等の文書やフォルダーの属性情報を表示できる。また、ファイルリストペイン750上で文書またはフォルダーを選択してコピーや削除等の各種の操作を実行できる。図7では、ライブラリーペイン740で選択されている“DSフォルダー01”ライブラリー下の“01”フォルダー内の文書がリスト表示され、“ドキュメント−B”が選択されている状態を示す。プレビューペイン760はファイルリストペイン750で選択された文書のプレビューを表示する。
ファイルリストペイン750で、ファイルを右クリックすると、図7(b)で示す画面UIが表示される。770は、対象の文書を1ページずつに分割するためのメニューボタンである。ファイルの分割については、第2の実施形態で説明する。
780は、プロパティの編集のためのメニューボタンである。780を選択すると、ファイルの属性情報の設定画面が表示されて、ユーザーはファイルに対してインデックスを登録することができる。
図8は、文書編集アプリケーションのユーザーインタフェースの一例を示している。図8では、文書編集アプリケーション600のメイン画面800のリボン構成が、既定のタブである“印刷設定”、“アノテーション”タブで構成される例を示している。また、“アノテーション”タブが選択され、“アノテーション”タブの既定グループである“オブジェクト”、“スタンプ”、“検索”グループで構成されている状態を示している。テキストなどの注釈を入力するためのコントロールが集められた“オブジェクト”グループには、テキストのボタン801、テキストボックスのボタン802、インデックスアノテーションのボタン803がある。これらは文書に対して、テキスト、テキストボックス、インデックスアノテーションを、アノテーションとして追加することができる。インデックスアノテーションのボタン803は、アノテーションの入力と共にインデックスの登録を行うための入力領域を提供するボタンである。つまり、ボタン803によって、文書に対して付加されるアノテーションの情報としての文字列を、その付加と同時にインデックスとして登録することができる特別なアノテーションを扱えるようになる。
スタンプ804は文書に対して、アノテーションとして文字列の書かれたスタンプを押すことができる。日付スタンプ805は文書に現在時刻が記載されたスタンプを押すことができる。テキスト検索806は任意な文字列をキーに対象の文書に含まれる文字列と注釈の中から検索を行うことができる。クイックアクセスツールバーは、図8においては文書を開く807及び文書を保存する808の機能を持つコントロールが配置されている。
809は、アノテーション編集状態の文書表示領域であり、文書をページ単位で表示する。また、アノテーションの追加、選択、移動など各種編集操作を行う領域でもある。
810は、インデックス登録したいアノテーションを入力するための領域である。810は、ボタン803を選択した後に表示される。図8では、AAA123456という文字列が入力されていることを示している。このように、ユーザーがファイルにアノテーションを付加する指示を行うことが可能なファイル編集画面上で、ユーザーは、領域810に入力したアノテーションの情報を所定のインデックス項目と対応付けて登録することができる。
811は、アノテーションの設定表示領域であり、文書表示領域809で選択されているアノテーションの属性情報などを表示する。例えば、インデックスアノテーションを選択した場合、テキストボックスのフォント情報などが表示され、設定表示領域811からフォント情報を変更することも可能である。
812は、810がインデックスアノテーションのときにのみ表示される設定であり、アノテーションに追加した文字列(値)を文書のどのインデックス(項目)に追加するかを指定する。812でインデックスを直接入力(新規インデックスを作成することもできる)したり、ドロップダウンを開いてインデックスの一覧から選択することで指定したりすることでユーザー任意の項目を設定できる。インデックス一覧に表示されるインデックスは、例えば、対象文書に追加されているインデックスや、文書編集アプリケーション600を使用して過去に追加したインデックスの履歴でも良い。過去に追加した履歴をリストとする場合は、設定ファイルとしてHDD205に保存することで実現する。設定ファイルの保存形式の一例としてExtensible Markup Language(XML)形式で保存する例を示す(保存形式は一般的なテキスト形式の保存でも良く特にXMLに限定されるものではない)。また、812に表示する初期値は固定のインデックスや、前回使用したインデックスとしても良い。インデックスアノテーションは、例えば関連インデックス812を管理番号とし、810に管理番号を入力しておくと、管理番号のみで検索を行うことができるため、アノテーションで検索を行うよりも検索速度が速いという特徴がある。
図13は、文書管理サービスサーバーPC106の文書情報記憶部410に保存されている文書の文書属性を管理するためのテーブル構成の一例を示している。
図13の1300は、文書の文書属性を管理するためのテーブルであり、文書情報記憶部410に保存されている各文書の属性情報を管理している。属性情報のうち1301は基本プロパティであり、全文書共通で持っている属性である。1302は基本プロパティ1301のうちの注釈テキストのことである。注釈テキスト1302はPDFなどのアノテーションを付けられる文書に追加したすべてのアノテーション文字列を管理している。1つの文書に複数のアノテーションが付加されている場合は、各アノテーションの文字列をカンマなどの特定の文字で区切ることで管理している。
1303は拡張プロパティであり、WebアプリケーションサーバーPC105を通じて追加した属性のことである。また、インデックスアノテーションのボタン803を押下し、インデックスアノテーションを追加することでも拡張プロパティの追加、編集を行うことができる。図13では現在“管理番号”“電話番号”“メッセージ”が拡張プロパティとして登録されており、新たに“日付”などの拡張プロパティを、WebアプリケーションサーバーPC105を通じて登録すると、拡張プロパティ1303に“日付”が追加される。
図14は、文書保存処理の流れの一例を示すフローチャートである。本処理は、文書管理アプリケーション500や文書編集アプリケーション600で文書を編集、アノテーションの編集等を行い、編集した文書を文書管理システム(104〜106)に保存する際の処理である。
S1401で、文書管理アプリケーション500の入力管理部504が保存の実行を受け付けると、ファイル管理部502が保存対象の文書のアノテーションの有無をチェックする。アノテーションがある場合はS1402の処理に移行し、アノテーションがない場合はS1405の処理に移行する。
S1402で、ファイル管理部502が保存対象の文書のインデックスアノテーションの有無をチェックする。文書編集アプリケーション600は、文書編集中に追加されたインデックスアノテーションのリストをRAM203で編集中のみ管理しており、インデックスアノテーションの有無は、前記リストの情報を参照して判断している。インデックスアノテーションがある場合はS1403の処理に移行し、インデックスアノテーションがない場合はS1404の処理に移行する。
S1403で、文書管理アプリケーション500の出力管理部501が、RAM203に記憶されている追加されたインデックスアノテーションのリストを基にWEBアプリケーションサーバーPC105のメイン制御部404にインデックスの登録指示を行う。登録されたインデックス(項目と値の情報)は拡張プロパティ1303として文書の文書属性を管理するためのテーブル1300に追加される。
S1404で、文書管理アプリケーション500の出力管理部501が、WEBアプリケーションサーバーPC105のメイン制御部404に、文書に含まれるすべてのアノテーション文字列をまとめてインデックスの登録指示を行う。複数のアノテーションのアノテーション文字列をカンマ区切りで連結し、注釈テキスト1302に追加される。
S1405で、文書管理アプリケーション500の出力管理部501がWEBアプリケーションサーバーPC105のメイン制御部404に文書の保存指示を行い、文書を保存する。
図9は、文書管理アプリケーション500から開くことのできる検索ダイアログUIの一例である。検索ダイアログ900は検索を行うためのダイアログで簡易検索901と詳細検索902を行うことができる。
検索ダイアログ900は、検索ボタン733を押下することで開かれる。検索ダイアログ900は簡易検索901を押下すると簡易検索を行うための表示(不図示)になり、詳細検索902を押下すると詳細検索を行うための表示になる。検索ダイアログ900は詳細検索902が選択されている状態である。簡易検索901を選択している場合は、検索場所と検索キーワードを入力し、検索実行ボタンを押すことで検索を行うことができる。または、732に検索キーワードを入力し、検索ボタン733を押下することで、ライブラリーペイン740で現在選択しているライブラリーを検索場所として検索を実行することができる。詳細検索902を選択している場合は、検索場所903、検索対象904、条件式905(1つ以上)入力することで検索ボタン908を実行できるようになり、検索ボタン908を押下することで、検索結果910が表示される。検索場所903は検索を行うパスを直接入力する、ドロップダウンを開き検索場所の履歴を選択する、参照ボタンでダイアログを開き検索場所を選択するなどの方法で指定することができる。
検索対象904は検索対象をフォルダー、ファイル、フォルダーとファイル両方を検索対象にするかを選択することができる。条件式905は、プロパティ、条件、検索キーワードを入力することで検索の条件を指定することができる。条件式のプロパティの選択肢にはファイル名や注釈テキストなどのデフォルト項目や、インデックスアノテーション追加時に指定したインデックスなどがある。条件式905には条件式の追加ボタン906を押下することで条件を追加することができる。条件式905に複数の条件式が書かれている場合は条件式の関係907でAND検索かOR検索を指定することができる。908は検索ボタンで押下することで検索を実行することができる。909はクリアボタンで、押下することで検索対象904、条件式905、条件式の関係907を初期状態に戻すことができる。検索結果910は検索ボタン908を押下したことによって行われた検索結果を表示する領域である。
これにより、インデックスアノテーションを追加や編集を行った時にインデックスの登録、編集も行うことができるようになる。また、検索に利用したいアノテーションをアノテーション文字列からの検索ではなく、インデックスアノテーションとして登録したときの812で指定したインデックスに限定し検索を行える。そのため、登録文書が多く、アノテーションの量が多い場合でも検索時のパフォーマンス向上及びインデックス登録、編集の簡略化が可能となる。
(第2の実施形態)
第1の実施形態では、インデックスアノテーションに文字列810を入力し、関連付けるインデックス812を指定することで、1300の拡張プロパティ1303にインデックスを追加している。この方法で追加した場合、複数ページで構成される文書を、ページ単位で分割、削除した場合に、インデックスアノテーションが含まれるページが属する文書にのみインデックスを残す必要がある。なぜなら、インデックスはインデックスアノテーションがあるページに紐付いているからである。しかし、文書のページ分割、ページ削除を行い作成された文書からインデックスを再生成するとインデックスアノテーションとして追加されていないWebアプリケーションサーバーPCに直接アクセスし、編集された通常のインデックスは消えてしまう。
本実施例は、インデックスアノテーションが追加されている文書をページ単位で分割や削除を行った場合にインデックスの更新を行うもので、図10を用いて、文書をページ単位で分割、削除したときのインデックスを更新する方法についての例を説明する。なお、特に明示していない構成及び処理は、すべて第1実施形態と同じものとする。
S1001では、文書管理アプリケーション500の入力管理部504が受け付けた操作がページ分割であるかページ削除であるかを判定している。ページ分割である場合はS1005の処理に移行し、ページ削除の場合はS1002の処理に移行する。
S1002では、ファイル管理部502が文書から削除対象となる一部のページの削除処理を行っている。この時、削除するページに含まれているインデックスアノテーションを抽出し、リスト化したインデックスアノテーション情報を作成している。
S1003では、S1002で作成したインデックスアノテーション情報に、インデックスアノテーションが含まれているかを判定している。インデックスアノテーションが含まれている場合はS1004の処理に移行し、含まれていない場合はS1008に移行する。
S1004では、WebアプリケーションサーバーPC105のメイン制御部404がインデックスの削除指示を文書管理アプリケーション500から受け取り、インデックスの削除を行っている。削除するインデックスはS1002で作成したインデックスアノテーション情報に含まれるインデックスである。
S1005では、ファイル管理部502が指示を受けた分割結果となるように、分割後の新しい文書(新しく作成された文書のプロパティ情報やインデックス情報は元の文書のまま)を作成している。例えば、ユーザーは図7(b)で示した770のメニューボタンを選択して、文書を1ページずつに分割することができる。例えば、分割前は5ページだった文書を1ページずつに分割する場合は、各ページを1文書とし、分割後に5つの文書を新規で作成している。この時、分割後の各文書に対し、自身以外の他の文書に含まれるインデックスアノテーションを抽出し、リスト化したインデックスアノテーション情報を作成している。なお、文書を分割する方法としては、770のメニューボタン以外の方法であってもよい。
S1006では、S1005で作成したインデックスアノテーション情報に、インデックスアノテーションが含まれているかを判定している。インデックスアノテーションが含まれている場合はS1007の処理に移行し、含まれていない場合はS1008に移行する。
S1007では、WebアプリケーションサーバーPC105のメイン制御部404がインデックスの削除指示を文書管理アプリケーション500から受け取り、インデックスの削除を行っている。削除するインデックスはS1005で作成したインデックスアノテーション情報に含まれるインデックスである。
S1008では、ファイル管理部502が文書のページ分割、ページ削除後の文書にアノテーションが含まれているかを判定している。アノテーションが含まれている場合はS1009へ移行し、アノテーションが含まれていない場合はS1010へ移行する。
S1009では、ファイル管理部502が文書に含まれるアノテーションを取得し、WebアプリケーションサーバーPC105のメイン制御部404に登録されているアノテーション文字列のインデックスの登録内容を更新している。
S1010では、ファイル管理部502が文書のページ分割、ページ削除をすることによって変わってしまったファイル名やページ数などのプロパティ情報を最新の状態に更新している。
S1011では、ファイル管理部502がS1001でページ分割だと判定していた場合に、WebアプリケーションサーバーPC105のメイン制御部404に元文書の削除を依頼し、文書の削除を行っている。
これにより、WebアプリケーションサーバーPCに直接アクセスし、編集された通常のインデックスは消えずに、インデックスアノテーションに対応するインデックスのみを更新できるようになった。
(第3の実施形態)
第1の実施形態では、インデックスアノテーションを追加するときに812に表示されるインデックスの初期値は固定値や前回値としている。しかし、数種類のインデックスアノテーションを順番に追加するようなユースケースを想定した場合に、ユーザーは毎回812のインデックスの種類を変更する必要があり、手間となる。本実施例は、インデックスアノテーション追加時にユーザーが選択するインデックスの種類を予測し、決定するもので、図11、図12を用いて、インデックスの種類を予測する方法についての例を説明する。なお、特に明示していない構成及び処理は、すべて第1実施形態と同じものとする。
図11は、文書編集アプリケーション600で追加したインデックスアノテーションの情報を記憶するためのデータ構造の一例を示す図である。図11は文書編集アプリケーション600での編集情報を学習ファイルとしてHDD205に保存することで、次回以降、文書編集アプリケーション600でインデックスアノテーション追加時にインデックス812を予測するために使用できる。
1100はインデックスアノテーションの情報を記憶するためのファイルであり、インデックスアノテーション追加時のインデックスの種類を予測するために使用される。1101は追加したインデックスアノテーションの情報で、それぞれが過去に追加した1回分のインデックアノテーションの情報に相当する。
1102はインデックスアノテーションを追加した文書が格納されているフォルダーのパスの定義を示す。パスが変更された場合、1102に記載されているパスも更新する。予測に利用するインデックスアノテーションの情報を現在編集中の文書を格納しているフォルダー以下のものに限定する場合に使用される。予測に利用するインデックスアノテーションの条件は、例えば、システム設定などによって、すべて、パス、日付、ファイル名など切り替えることができる。
1103はインデックスアノテーションを追加した時間の定義を示す。図11では日付としているが、日付と時間が書かれていても良い。予測に利用するインデックスアノテーションの情報を過去何日などに限定する場合や、追加時間によって優先度を決定する際に使用される。
1104はインデックスアノテーションを追加した文書のファイル名の定義を示す。予測に利用するインデックスアノテーションの情報をファイル名に含まれる文字列に限定する場合などに使用される。ファイル名が変更された場合、1104に記載されているファイル名も更新する。
1105、1106はそれぞれ、インデックスアノテーションを追加した場所のX座標、Y座標の定義を示す。この時の座標とは、文書編集アプリケーション600が編集中の文書から取得してきた座標のことである。インデックスアノテーションを追加するときの座標がX座標1105、Y座標1106付近にある場合は優先的にインデックス1108が選択される。編集中のインデックスアノテーションのX座標をX、Y座標をY、X座標1105をX’、Y座標1106をY’としたとき、
((X−X’)^2+(Y−Y’)^2)^1/2
の値(距離)が小さい程近いと判断される。
1107はインデックスアノテーションで追加した文字列のフォーマットの定義を示す。インデックスアノテーション入力中を監視し、1107のフォーマットに該当しなくなった場合は、別のインデックスに切り替える。
1108は、インデックスアノテーションを追加したときに指定したインデックスの定義を示す。1101〜1107から、最適なインデックスアノテーションの情報であると判断された場合にインデックスは1108に設定する。
図12は、図11のインデックスアノテーションの情報を使い、インデックスを決定する処理に係るフローチャートの一例を示す図である。文書編集アプリケーション600のインデックスアノテーションのボタン803を押下することで処理は開始される。
S1201では、文書編集アプリケーション600の編集部603が入力管理部604からインデックスアノテーションを追加する座標を受け取っている。
S1202では編集部603がHDD205に保存されているインデックスアノテーションの情報1100を読み込んでいる。1102〜1104の情報を使って、システム設定で設定されているフィルタリング条件で、インデックスアノテーションの情報のフィルタリングを行い、該当するインデックスアノテーションの情報のみを抽出する。さらに、インデックスアノテーションの情報の座標(1105、1106)が有効範囲内に存在するかによってフィルタリングを行う。有効範囲とは、例えばS1201で受け取った座標との距離が固定値以内であることなどとしても良い。座標によりフィルタリングしたインデックスアノテーションの情報をリスト化し、RAM203に記憶しておく。
S1203は、編集部603がS1202でリスト化したインデックスアノテーション情報を、追加した位置から近い順にソートしている。このとき、例えば使用頻度順にソートするなどソートする基準を変えても良い。
S1204では、S1203の結果1番近いと判断されたインデックスアノテーション情報のインデックス1108を表示部605がUIの812に表示している。このとき、S1204でのソートの基準が使用頻度であった場合は、使用頻度が1番高いインデックスアノテーションの情報を使用する。
S1205では、入力管理部604がインデックスアノテーションの終了指示を受け取った場合に処理を終了している。終了指示を受け付けるまでは、インデックスアノテーションへの入力を監視し、入力された場合にS1206の処理へ移行する。
S1206では、入力管理部604が文字の入力を受け付け、表示部605に描画の更新指示を送っている。
S1207では、編集部603がインデックスアノテーション810に入力されている文字列に該当しないフォーマットのインデックスアノテーション情報をS1202で作成したインデックスアノテーション情報リストから除外している。
S1208では、S1207で更新した結果、インデックスアノテーション情報リストに当インデックスアノテーション情報がなくなっているかを判定している。インデックスアノテーション情報が残っている場合は表示部605にインデックス812に表示するインデックスの更新指示を送った後S1205に移行する。
インデックスアノテーション情報が残っていない場合はS1209の処理に移行する。
S1209では、編集部603がインデックスアノテーション情報リストを初期値に戻し、表示部605にインデックス812に表示するインデックスの更新指示を送っている。
これにより、インデックス812に表示するインデックスを過去のインデックスアノテーションの入力情報から予測するため、ユーザーが望むインデックスの種類を自動で選択することが可能となった。また、同一フォーマットの資料が同じフォルダーにまとまっていた場合に、インデックスアノテーションの情報をパスでフィルタリングすることで、さらに予測の精度を上げることが可能である。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1つ以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の1つである。また、そのプログラムは、ネットワークまたは各種記憶媒体を介してシステムあるいは装置に供給され、そのシステムあるいは装置の1つ以上のコンピューター(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の1つとして、さらにそのプログラム自体、あるいは当プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。