<全体システムの例>
図1に、本発明に係る情報処理装置の一実施形態である文書サービスシステム100を含んだ文書利用のための全体システムを例示する。
この例では、文書サービスシステム100は、ある会社の社内ネットワーク40に接続されている。社内ネットワーク40には、設計書管理システム10や社内規定管理システム20のように、社内の各種文書を管理するための1以上の文書管理システムが接続されている。また社内ネットワーク40には、ユーザが操作するパーソナルコンピュータ等のクライアント30が接続されている。
インターネット50上には、法令管理システム60や「XX」技術の標準文書を管理するXX標準管理システム70等の、各種の文書管理システムが存在する。社内ネットワーク40上の文書サービスシステム100やクライアント30等の装置は、それらインターネット50上の文書管理システムが持つ文書にアクセス可能である。
文書サービスシステム100は、設計書管理システム10等の社内の文書管理システム内の文書に関係する他文書に変更があった場合に、その文書に関してその他文書の変更に対応したサービス(例えば関係者へのその変更の通知)を提供する。
図2に例示するように、会社内のあるユーザが、ある製品の設計書Aを作成して設計書管理システム10に登録し、保守している場合を考える。製品は、各種の法令や各種の社内規定を満たすように設計される必要があるため、設計書Aもそれら法令や社内規定等といった他の文書を参照しながら作成される。例えば、設計書Aは、法令管理システム60の法令DB62に登録されている道路運送車両法と、社内規定管理システム20の社内規定DB22に登録されている完成検査実施規定とを参照して作成されている。法令DB62内の各法令も社内規定DB22内の各規定も、改正に追従して随時更新されている。
道路運送車両法と完成検査実施規定が改正されると、設計書Aの内容を更新する必要が出てくる場合があるが、必ず更新が必要とは限らない。例えば、法令等の改正された部分が、設計書Aの内容が依拠している部分と異なる場合には、設計書Aの内容の更新は不要である。
また、設計書Aが法令のある部分に依拠して作成されているとしても、その依拠の仕方は様々である。例えば、設計書A内に法令の一節がそのままコピーする形で引用されている場合もあれば、法令の関係箇所を確認しつつ設計書A内のある部分を記載しただけで両者間に用語の一致が見られる程度にすぎない場合もある。前者の場合は、法令のその一節が改正されるのに応じて、設計書A内の引用箇所を修正する必要性は高い。これに対して、後者の場合、法令の関係箇所の改正に応じた設計書A側での対応の必要度合いは、前者の場合より低い。
そこで本実施形態の文書サービスシステム100は、この設計書Aの管理担当者等の文書の関与者に対して、その文書に関係する他文書の変更に応じてその文書を変更する必要があるかどうか判断する作業を支援する等のサービスを提供する。
ここで、「文書」とは、何らかのデータ形式のデータであり、そのデータ形式は特に限定されない。例えば、文書は、テキストデータ形式のデータであってもよいし、PDF形式等の各種の文書ファイル形式のであってもよい。また文書は、様々なイメージデータ形式の画像データであってもよいし、動画データであってもよいし、HTML(Hypertext Markup Language)形式やXML(eXtensible Markup Language)形式等のような構造化文書形式のデータであってもよい。
またこの明細書では、文書にとっての「関与者」とは、その文書の内容の保守に関与している個人又はユーザグループである。関与者は、例えば、その文書の内容の保守の担当者であってもよいし、その担当者に対してその保守の実行を促す役割のものであってもよい。例えば、文書を作成したユーザや文書を更新したユーザが、関与者の代表例である。また、文書が複数の文書要素から構成され、文書要素ごとに関与者が設定されている場合もあり得る。
<ハードウエア構成の例>
文書サービスシステム100は、コンピュータにそのシステムの機能を表すプログラムを実行させることにより実現される。
ここで、文書サービスシステム100のベースとなるコンピュータは、例えば、図3に示すように、ハードウエアとして、プロセッサ102、ランダムアクセスメモリ(RAM)等のメモリ(主記憶装置)104、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)等の補助記憶装置106を制御するコントローラ、各種の入出力装置108とのインタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース110等が、例えばバス112等のデータ伝送路を介して接続された回路構成を有する。文書サービスシステム100の各機能の処理内容が記述されたプログラムが、ネットワーク等を経由してコンピュータにインストールされ、補助記憶装置106に保存される。補助記憶装置106に記憶されたプログラムが、プロセッサ102によりメモリ104を用いて実行されることにより、文書サービスシステム100の各機能が実現される。
ここでプロセッサ102とは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、 ASIC:Application Specific Integrated Circuit、 FPGA:Field Programmable Gate Array、 プログラマブル論理デバイス、等)を含むものである。
また、プロセッサ102の動作は、1つのプロセッサ102によってなすのみでなく、物理的に離れた位置に存在する複数のプロセッサ102が協働してなすものであってもよい。また、プロセッサ102の各動作は、以下の実施形態において説明する順序のみに限定されるものではなく、適宜に変更してもよい。
なお、設計書管理システム10、社内規定管理システム20、クライアント30等の他の装置も、文書サービスシステム100と同様、コンピュータをベースとして構成されている。
<データベース構築>
図4〜図8を参照して、文書サービスシステム100がサービス提供のために用いるデータベースの構築処理の例を説明する。このデータベースは、文書サービスシステム100が備える補助記憶装置106内に構築される。
文書サービスシステム100は、設計書管理システム10、社内規定管理システム20、法令管理システム60等、社内外の所定の文書管理システムを例えば定期的に巡回し、それら各文書管理システムに登録されている文書群を取得して解析する。この場合、文書サービスシステム100は、通知された情報を解析する。図4に示す手順は、文書サービスシステム100が、いずれかの文書管理システムから1つの文書を取得(S10)したときに実行する処理を示している。
この場合、文書サービスシステム100のプロセッサ102は、取得した文書の構造を解析することにより、その文書を文書要素の単位に分割する(S12)。構造解析は、例えば、文書をHTML(HyperText Markup Language)形式に変換する処理により行う。HTML変換のための多種多様なツールが存在しており、S12では、その文書のファイル形式にあったツールを用いればよい。または、文書内容から見出しや、章、節、段落等の構造を認識する既存技術を用いて構造解析を行ってもよい。また、取得した文書が既にXML形式等の構造化文書である場合は、S12は省略してもよい。
次にプロセッサ102は、S10で取得した文書と同一の文書のデータがデータベース内に登録されているか否かを判定する(S14)。ここで言う「同一」とは、文書の内容全体が同一ということではなく、文書同士が同一の識別情報を持つということである。文書の識別情報のことを文書IDと呼ぶ。S14では、取得した文書の同じ文書IDを持つ文書の情報がデータベース内にあるか否かを判定する。
文書IDとしては、例えば、その文書の取得元の文書管理システム(例えば社内規定管理システム20や法令管理システム60)の識別情報と、その文書管理システムでのその文書の識別情報との組合せを用いてもよい。例えば、文書管理システム内にあるその文書のURL(Uniform Resource Locator)をその文書の文書IDとする等である。
S14の判定結果がNoの場合、S10で取得した文書は、プロセッサ102が初めて出会った文書である。この場合、プロセッサ102は、S10で取得した文書の情報と、S12の構造解析により得られた各文書要素の情報をデータベースに登録する(S16)。
次にプロセッサ102は、それら文書要素ごとに、データベース内に登録された他の文書要素との間での内容の類似度を計算し、得られた類似度をデータベースに登録する(S17)。文書要素同士の内容の類似度は、例えば、それら個々の文書要素に含まれる文字列をベクトル化し、得られた文書要素のベクトル同士の類似度合いを公知の手法(例えばコサイン類似度)で計算することで求めればよい。文書要素の文字列をベクトル化する方法としては、TF−IDF(Term Frequency−Inverse Document Frequency)やdoc2vec等の既存の手法を用いればよい。
ここで、S12で求めた文書要素との類似度を求める相手である「他の文書要素」は、典型的には、データベースに登録されている他の文書の文書要素である。ただし、これに限らず、S12で求めた文書要素同士の間の類似度を更に計算してもよい。
次にプロセッサ102は、S10で取得した文書と、データベースに登録されている他の文書との間の類似度を計算し、計算結果の類似度をデータベースに登録する(S18)。例えば、S12の構造解析において得られる文書内の章、節の見出しの文字列をその出現順に並べてマージした文字列を、その文書の特徴を示す文字列とし、その文字列をベクトル化する。このようにして得られた文書の特徴を示す文字列のベクトル同士の類似度を、それら文書間の類似度として求める。なお、文書間の類似度の計算方式はこれに限らない。この他に、例えば、文書内の文書要素(例えば章、節、段落)が構成するツリー構造をその文書の特徴とし、その特徴同士の類似度を、文書間の類似度としてもよい。
S14の判定結果がYesの場合、S10で取得した文書のデータは、文書サービスシステム100のデータベース内に登録されている。この場合、プロセッサ102は、S10で取得した文書、及びS12で求めた各文書要素が、データベース内に登録されている文書及び文書要素から変更されているか否かを調べる(S20)。このステップでは、例えば、S12で求めた文書要素ごとに、その文書要素の内容(すなわち文字列)を、データベース内の同じ文書要素(すなわち識別情報が同じ文書要素)の内容と比較し、両者が一致すればその文書要素は変更なし、不一致ならばその文書要素は変更有りと判定する。また、S12で求めた文書要素と同じ文書要素がデータベース内にない場合や、データベース内にある文書要素と同じ文書要素がS12の構造解析結果にない場合も、その文書要素に変更がある場合の例である。そして、いずれか1以上の文書要素について変更有りと判定された場合は文書全体について変更があるということであり、変更有りと判定された文書要素が1つもなければ文書全体について変更がないということである。
プロセッサ102は、S20で文書、文書要素についての変更を検出したかどうかを判定し(S22)、変更を検出した場合は、検出した変更の情報をデータベースに反映する(S24)。例えば、ある文書要素の内容が変更されていた場合、データベース内のその文書要素の内容を、その変更後の内容に更新する。変更が検出されなかった文書要素については、データベースに登録されている情報は変更不要である。また、文書内の文書要素の変更が検出された場合、データベース内のその文書の更新日時等の情報を変更する。
またプロセッサ102は、S20で内容の変更が検出された文書要素について、データベース内の他の文書要素との間での内容の類似度を計算する。そして、データベースに登録されている、それら文書要素間の類似度の値を、その計算により得られた値へと更新する(S26)。なお、S20で検出された文書要素がデータベース内にない新規の文書要素である場合は、その文書要素とデータベース内の他の文書要素との類似度を計算し、その類似度をデータベースに登録する。また、データベース内にある文書要素がなくなったことがS20で検出された場合は、そのなくなった文書要素と他の文書要素との類似度の情報をデータベースから削除してもよい。なお、変更が検出されなかった文書要素については、S26の処理は行わない。
また、プロセッサ102は、S10で取得した文書とデータベース内の他の文書との類似度を、S18の場合と同様に計算し、データベース内の該文書と他の文書との類似度をその計算結果に応じて更新する(S28)。
図5〜図8を参照して、文書サービスシステム100内のデータベースに登録される情報の例を説明する。
図5に、データベースに登録されている2つの文書200及び210の、HTML化による構造解析結果の情報を例示する。文書200は、H1要素(例えば当該文書のタイトル)を子の文書要素(以下、子要素と呼ぶ)として持ち、そのH1要素は子要素として2つのH2要素を持ち、それらH2要素はそれぞれ2つ及び1つのH3要素を子要素として持つ。このように文書200の構造情報は、図示のツリー構造により表現される。文書及び各文書要素にはそれぞれ一意な識別情報が割り当てられている。データベースには、文書の構造情報として、その文書の識別情報に対応付けて、図示のツリー構造を表現するデータが登録される。
また、データベースには、文書200及び210のそれぞれについてのプロパティデータ(「文書プロパティ」と呼ぶ)と、個々の文書要素についてのプロパティデータ(「要素プロパティ」と呼ぶ)が登録される。
また、文書200と文書210との間の、文書間の類似度が計算され、データベースに登録される。また、この文書要素同士の間の内容の類似度が計算され、データベースに登録される。
図6は、データベースに登録されている文書プロパティのデータ構造の一例を示す。図6に例示した文書の文書プロパティには、該文書の文書ID、文書名、文書特徴、作成者、作成日時、最終更新者、更新日時、取得日時、格納場所の各項目が含まれる。文書名は、例えば該文書のファイル名である。また、文書特徴は、該文書の特徴を示すデータであり、例えば前述した該文書内の章、節の見出しの文字列をその出現順に並べてマージした文字列がその一例である。またこの文字列をベクトル化したものを文書特徴として用いてもよい。作成者は、該文書を最初に作成したユーザのユーザIDを示し、作成日時はその作成の日時を示す。また最終更新者は、該文書を最後に更新したユーザのユーザIDを示し、更新日時はその更新の日時を示す。これら作成者、作成日時、最終更新者、更新日時の情報は、例えば、その文書のファイルの属性データから取得すればよい。また、取得日時は、プロセッサ102が、社内規定管理システム20や法令管理システム60等の文書管理システムから該文書を最後に取得した日時を示す。格納場所は、該文書が元々格納されていた文書管理システムを特定する情報(例えばその文書管理システムのURL)である。
前述した図4の手順のS18及びS26では、このような文書プロパティの情報と、S12で求めた該文書のツリー構造の情報をデータベースに登録する。
図7は、データベースに登録されている要素プロパティのデータ構造の一例を示す。図7に例示した文書要素の要素プロパティには、該文書要素の要素ID、要素名、要素内容、内容特徴、作成者、作成日時、最終更新者、更新日時、取得日時、格納場所の各項目が含まれる。要素IDは、該文書要素の識別情報である。例えば、該文書要素が含まれている文書の文書IDと、該文書内で該文書要素に一意に割り当てた番号との組を、要素IDとしてもよい。要素名は、該文書要素の名前である。例えば、該文書要素が見出しを含む場合はその見出しを要素名としてもよい。また該文書要素が見出しを含まない場合は、該文書要素の先頭の所定文字数の文字列を要素名としてもよい。要素内容は、該文書要素の内容のデータである。例えば該文書要素がテキストであれば、要素内容はそのテキストの文字列である。要素特徴は、該文書要素の特徴を示すデータであり、例えば前述した該文書要素の文字列をベクトル化したものである。作成者は、該文書を最初に作成したユーザのユーザIDを示し、作成日時はその作成の日時を示す。元の文書のファイル(又はこれを管理している文書管理システム)が、文書要素単位で作成者や作成日時の情報を有している場合は、それらの情報が要素プロパティの作成者及び作成日時の項目に登録される。元の文書のファイルが、文書単位での作成者及び作成日時しか持たない通常のケースでは、該文書に含まれる文書要素の要素プロパティの作成者及び作成日時には、該文書の作成者及び作成日時が登録される。
最終更新者は、該文書要素を最後に更新したユーザのユーザIDを示し、更新日時はその更新の日時を示す。元の文書のファイル(又はこれを管理している文書管理システム)が、文書要素単位で最終更新者や更新日時の情報を有している場合は、それらの情報が要素プロパティの最終更新者及び更新日時の項目に登録される。元の文書のファイルが、文書単位での最終更新者や更新日時しか持たない通常のケースでは、該文書に含まれる文書要素の要素プロパティの最終更新者や更新日時の項目には、該文書要素の内容が変更されたことを検知したときの文書の最終更新者や更新日時の値が登録される。なお、文書要素の内容が変更されたか否かは、S12で得た文書要素の要素内容又は内容特徴と、これと同じ要素IDを持つデータベース内の文書要素の要素内容又は内容特徴とを比較することで判定すればよい。
また、取得日時は、プロセッサ102が、該文書要素を最後に取得した日時である。この取得日時は、該文書要素が含まれる文書の取得日時と同じである。格納場所は、該文書要素が元々格納されていた文書管理システムを特定する情報であり、該文書要素が含まれる文書の格納場所と同じである。
前述した図4の手順のS16では、このような要素プロパティの各項目の情報をデータベースに登録する。またS24では、変更が検知された文書要素の要素プロパティの各項目の値を、その変更の内容に応じた値に更新する。
なお、文書が外部(例えば社内ネットワーク40の外)の文書管理システムから取得されたものである場合、その文書については図6及び図7に例示した文書プロパティ及び要素プロパティのうちの全ての項目の情報が取得できない場合がある。そのような項目は空値とするか、又は他の情報に基づき文書サービスシステム100が求めた値を設定する。例えば、法令管理システム60から取得した文書については、作成者、作成日時、最終更新者、更新日時の情報が、その文書又は法令管理システム60から入手できないことが考えられる。その場合、作成者、作成日時、最終更新者の項目は空値としておいてもよい。また、取得した文書内の文書要素に図4の手順のS20で変更を検知した場合、文書サービスシステム100は、その文書要素及びその文書の更新日時に、その取得の日時を設定すればよい。
図6及び図7に例示した文書プロパティ及び要素プロパティの項目群はあくまで一例に過ぎない。文書プロパティ及び要素プロパティは、図示した項目の全てを含んでいる必要はないし、また図示していない項目を含んでいてもよい。
図8に、データベースに登録されている文書要素同士の関係情報を例示する。図8に例示した関係情報は、2つの文書要素の要素IDのペアに対応付けて、それら2つの文書要素の内容の類似度の値と、その値から判定されるそれら文書要素同士の関係の種類とを含んでいる。この例では、文書要素同士の関係の種類を、文書要素同士の内容の類似度の大きさに応じていくつかに分類している。例えば、文書要素同士の内容の類似度が0.95(すなわち95%)以上の場合は、それら文書要素同士の関係の種類を「引用」と名付ける。また、文書要素同士の内容の類似度が0.80以上0.95未満の場合の関係の種類を「類似」と名付け、0.60以上0.80未満の場合の関係の種類を「参照」と名付ける。また、類似度が0.60未満場合は、それら2つの文書要素は無関係と判断する。
また、図8では省略したが、類似度や関係の種類を判定した日時を更に関係情報に登録してもよい。
図4の手順のS17及びS26では、文書要素同士の類似度と、その類似度に対応する関係の種類を判定し、それらの値を図8に例示した関係情報に登録する。
なお、図8に例示した関係情報はあくまで例示的なものにすぎない。関係情報としては、類似度は含むが関係の種類を含まないものを用いてもよいし、その逆に類似度は含まないが関係の種類は含むものを用いてもよい。
<文書サービスシステムが提供するサービス>
構築されたデータベースを用いて文書サービスシステム100が提供するサービスの例を説明する。
図9に、文書サービスシステム100がユーザに提供する情報提供画面300を例示する。この情報提供画面300は、ユーザから指定された文書320の中で変更があった文書要素322及び324に関係がある文書要素332及び342の情報を提供する。その情報は、それら文書320や文書要素322,324,332,342の関係のグラフ310の形で提供される。
なお、この情報提供画面300には、変更があった文書要素322及び324に関係がある全ての文書要素が示されるのではなく、そのうちそのユーザが関与者(例えばその文書要素の作成又は更新を行った者等)である文書要素のみが表示される。そのユーザが関与者である文書要素は、文書要素322及び324の変更に応じた変更作業をそのユーザが行うものと期待されるので、そのユーザにその文書要素の情報を提供するのである。これに対して、ユーザが関与者でない文書要素は、そのユーザに対して情報提供しても、そのユーザが修正等の対応作業を行えない可能性が高いので、情報提供を行わない。
なお、ここでは文書要素の関与者として、文書要素の要素プロパティに含まれる作成者又は更新者を例示したが、この他に、その文書要素又はその文書要素の含む文書に対して編集権限を持っているユーザやユーザグループを、その文書要素の関与者としてもよい。
図示例では、ユーザから指定された文書は「サービス品質保証ガイド」という文書名の文書であり、そのうち「規定第7項」という要素名の文書要素322と、「規定第11項」という要素名の文書要素324とが、変更があった文書要素として検出されている。文書要素に変更があったかどうかは、例えば現在から所定長さ(例えば1ヶ月)だけ遡る期間内にその文書要素が更新されているか否かにより判定すればよい。すなわち、文書要素の最終更新日時がその期間内であれば「変更があった」と判定し、最終更新日時がその期間より前であれば、「変更はなかった」と判定すればよい。なお、その期間の長さをユーザが指定できるようにしてもよい。また、その期間の始期と終期の両方をユーザが指定できるようにしてもよい。情報提供画面300の右下の「期間」の指定欄は、このために用いられる。
また図示例では、変更があった文書要素322に対して「参照」の関係を持つ文書要素332が見つかっている。この文書要素332は、「ファミリー動作環境.docx」という文書名の文書330に属する文書要素であり、「3.動作仕様」という要素名を持つ。また、変更があった文書要素324に対して「参照」の関係を持つ文書要素342が見つかっている。この文書要素342は、「品質点検結果報告書.xlsx」という文書名の文書340に属する文書要素であり、「4.実施対象」という要素名を持つ。
また図示例では、文書320の文書要素群のうち、互いに「類似」の関係にある文書要素326及び328が示されている。
グラフ310には、それら文書320、330、340を示すノード群と、文書要素322〜328、332、342を示すノード群と、それらノード間の関係を示すエッジ群が示される。各エッジの近くには、そのエッジが示す関係の種類を示す文字列が表示されている。例えば、文書要素322、332間の関係を示すエッジには「参照」という文字列が、文書要素326、328間の関係を示すエッジには「類似」という文字列が示されている。また、例えば、文書要素322から文書320へと延びる矢印状のエッジには、「親」という文字列が示されている。これは文書320は文書要素322からみてツリー構造上の親であることを示す。
グラフ310のうち、変更があった文書320及び文書要素322、324のノードは、変更があったことを表す特別な表示態様で強調表示されている。
また、変更のあった文書要素322、324と関係がある文書要素332、342と、この文書要素332、342の親である文書330、340のノードも、別の表示態様で強調表示されている。図示例では、文書要素322、332間の関係と、文書要素324、342間の関係は共に「参照」なので、文書要素332と文書要素342の強調表示の表示態様は同じである。これに対して、仮にそれら2つの関係の種類が異なる場合には、文書要素332と文書要素342の強調表示の表示態様は異なったものとなる。例えば、後述する図13に示すように、変更された文書要素324に対して「引用」関係を持つ文書要素352のノードは、「参照」関係よりも目立つ表示態様で表示する。「参照」よりも「引用」の方が両文書要素間の内容の類似度がはるかに高いので、変更された文書要素に対応して内容を修正する必要性は、「引用」の方がはるかに高いと考えられるからである。
図9に示す情報提供画面300を作成する処理手順の例を、図10に示す。
図10の手順では、文書サービスシステム100のプロセッサ102は、クライアント30に対して検索条件等を入力するための入力画面を例えばウェブページの形態で提供し、ユーザから検索条件等の入力を受け付ける(S30)。次にプロセッサ102は、入力された検索条件に合致する文書をデータベース内から検索し(S32)、検索結果の文書のリストを示す画面をクライアント30に提供し、ユーザから注目文書の選択を受け付ける(S34)。図9は、注目文書として文書320「サービス品質保証ガイド」をユーザが選択した場合の例である。
次にプロセッサ102は、ユーザから選択された注目文書に属する各文書要素の要素プロパティを調べることで、所定期間内に変更があった文書要素を特定し、変更があった文書要素の有無を判定する(S36)。注目文書内に変更があった文書要素がない場合は、プロセッサ102は、その旨を示す画面を生成し、クライアント30に表示させる(S38)。
S36の判定結果がYesの場合、プロセッサ102は、特定した変更ありの文書要素に関係のある文書要素をデータベース内の関係情報(図8参照)から求め、求めた文書要素のうちそのユーザが関与者である文書要素を抽出する(S40)。この抽出は、求めた文書要素の要素プロパティを参照して行えばよい。そして、プロセッサ102は、S36で求めた変更のあった文書要素とその文書要素が属する文書、及びS40で抽出した文書要素とその文書要素が属する文書の関係を示すグラフ310を生成する。そして、そのグラフ310を含む情報提供画面300をクライアント30に提供する(S42)。プロセッサ102は、グラフ310に表示する各文書要素のノードの表示形態を、該文書要素の変更の有無や、該文書要素と変更のあった文書要素との関係の種類に応じて決定する。
図11に、文書サービスシステム100がユーザに提供する情報提供画面300の別の例を示す。
図11に示すグラフ310では、注目文書320内の変更があった文書要素322、324に関係のある、該ユーザが関与者である文書要素332、342のうち、その変更の後に内容に変更が加えられていない文書要素332が強調表示されている。これに対し、変更があった文書要素324に関係する文書要素342は、その変更の後に内容が変更済みなので、強調表示はされていない。
文書要素322が変更されると、これに応じてその文書要素322に関係がある文書要素を変更する必要があるか確認し、必要ならば変更を行うこととなる。そこで、変更のあった文書要素と関係する文書要素のうち、未変更のものを強調表示することにより、ユーザに確認を促すのである。
図11に示す情報提供画面300を作成する処理手順の例を、図12に示す。図12の手順のうち、図10の手順と同様の処理を行うステップには同一符号を付し、説明を省略する。
図12の手順では、プロセッサ102は、S40で抽出した文書要素が、対応する変更された文書要素の変更の後に変更されているか否かを判定する(S50)。例えば、判定対象の文書要素の最終更新日時が、対応する変更された文書要素の最終更新日時より後であれば、S50では変更済みと判定され、そうでなければS50では未変更と判定される。図10の例でいえば、文書要素332の最終更新日時は、対応する変更のあった文書要素322の最終更新日時より前なので、文書要素332は未変更と判定される。
プロセッサ102は、グラフ310を生成すると共に、そのグラフ310のうち、S50で未変更と判定された文書要素のノードを、未変更の旨を知らせるための特別な表示態様で強調表示する。そして、そのグラフ310を含む情報提供画面300をクライアント30に提供する(S42A)。
ユーザは、クライアント30に表示されるその情報提供画面300上で、変更があった文書要素322と、強調表示された未変更の文書要素332のノードとを選択する。これに応じて、文書サービスシステム100のプロセッサ102は、それら選択された文書要素の最新の内容を表示する画面を、クライアント30に提供する。ユーザは、その画面でそれら各文書要素の内容を確認し、文書要素332の内容に変更が必要か判断する。そして、文書要素332の変更が必要と判断すると、ユーザは、その文書要素332の内容に必要な変更を加える。この変更に応じて、プロセッサ102は、データベース内の文書要素332の要素プロパティ(図7参照)の要素内容や内容特徴を変更する。また、プロセッサ102は、その要素プロパティ内の格納場所の情報を用いて、その文書要素332が属する文書を管理している文書管理システムにアクセスし、その文書のオリジナルにおける文書要素332に対応する部分に、その変更を反映する。
なお、文書要素に変更があった後、その文書要素に関係のある文書要素をその変更に応じて変更するかをユーザが確認した結果、変更不要と判断する場合もある。この場合、後者の文書要素の内容は変更されていないが、必要な確認は済んでいるので、グラフ310において強調表示すると、無駄な確認をユーザに求めてしまうことになる。そこで、文書サービスシステム100のプロセッサ102は、情報提供画面300上で選択された文書要素の内容を表示する画面にて、その内容の編集を受け付けるだけでなく、その内容の確認の有無の指定を受け付ける。そして、ユーザから確認ありの指定があれば、その文書要素の最終更新日時を、その指定がなされた時刻に変更する。これにより、その後の情報提供画面300で、その文書要素が未変更として強調表示されることはない。
図13に、文書サービスシステム100がユーザに提供する情報提供画面300の更に別の例を示す。
図13に示すグラフ310には、図9に示したノード群に加え、変更があった文書要素322に関係のある、該ユーザが関与者である別の文書要素352と、その文書要素352の親である文書350(文書名「機能仕様書.xlsx」)のノードが表示されている。文書要素352は、変更があった文書要素324に対して「引用」の関係を持っている。すなわち、文書要素352の内容は、文書要素324の内容と同一であるか又は非常に近い。他の文書要素342も同じ文書要素324に関係を持つが、その関係は「引用」よりも文書要素の内容同士の類似度がかなり低い「参照」である。このため、文書要素352のノードは、「引用」の関係を表す表示態様で強調表示されており、この表示態様は「参照」の関係を表す表示態様よりも目立ちやすい態様である。
また、この例では、文書サービスシステム100は、変更があった文書要素322に対して「引用」関係を持つ文書要素352を検出した場合、その文書要素352の内容を、変更があった文書要素322の内容に合わせて更新する。すなわち、例えば、文書要素352に対して変更後の文書要素322の内容を上書きする。
この更新は、文書サービスシステム100のデータベース内の文書要素352の要素内容(図7参照)に対して行う。更に、その文書要素352を含む文書350を管理している文書管理システム(図示省略)内の、その文書350のオリジナルのデータに対しても同様の更新を実行する。
また、この更新は、文書サービスシステム100が、ユーザの確認を待たずに自動的に実行してもよい。また、別の例として、その更新を行うか否かの確認をユーザに求め、更新を行う旨の指示をユーザから得た場合に、文書サービスシステム100がその更新を実行してもよい。
図13の例における文書サービスシステム100の処理手順の例を、図14に示す。図12の手順のうち、図10の手順と同様の処理を行うステップには同一符号を付し、説明を省略する。
図14の手順では、プロセッサ102は、S40で抽出した文書要素の中に、変更のあった文書要素(変更要素と呼ぶ)に対して「引用」関係を持つ文書要素(対象要素と呼ぶ)があるかどうか調べる。対象要素があれば、文書サービスシステム100内のデータベースのその対象要素の要素内容、及びその対象要素を含む文書を管理している文書管理システム内のその文書を、その変更要素の変更後の内容に合わせて更新する(S55)。この更新にともない、そのデータベース内のその対象要素の要素プロパティの内容特徴、最終更新者、更新日時等、及び、その対象要素を含む文書の文書プロパティ(図6参照)の文書特徴、最終更新者、更新日時等も更新される。
なお、プロセッサ102は、対象要素の更新を実行するか否かを問い合わせる画面をクライアント30に提供し、その画面に対して実行する旨を示す指示がユーザからあった場合に、S55を実行してもよい。その画面に対して更新を実行しない旨の指示がユーザから入力された場合には、プロセッサ102は、S55を実行しない。
また、プロセッサ102は、グラフ310を生成すると共に、そのグラフ310のうち、変更があった文書要素に対して「引用」関係を持つ文書要素のノードを、「引用」を示す特別の表示態様で強調表示する。そして、そのグラフ310を含む情報提供画面300をクライアント30に提供する(S42B)。
以上では、情報提供画面300について図9、図11、図13に示す3つの例を別々に示したが、それら3つの例の表示制御を組み合わせてもよい。例えば、変更があった文書要素に対して関係を持つ文書要素をその関係の種類に応じた表示態様で表示すると共に、後者の文書要素が前者の変更後に未変更であれば、未変更の旨を示す強調表示を後者に追加する。
図15に、文書サービスシステム100がユーザに提供する情報提供画面300内のグラフ310の別の例を示す。
図15に示したグラフ310は、図9に示したグラフ310に対して、文書要素334、文書要素A,B,C,D,X,Yの各ノードを追加し、文書要素322と334との関係を「参照」から「類似」に変更したものである。上述のように「類似」は「参照」よりも、文書要素同士の内容の類似度が高い。
文書要素334(要素名「4.動作環境」)は、文書330内の文書要素であり、文書320内の変更のあった文書要素322に対して「引用」関係を持っている。文書要素A,B,Cは、その文書要素334に対してそれぞれ「引用」、「類似」、「参照」の関係を持っている。また、文書要素Dは、文書要素Aに対して「引用」の関係を持っている。
また、文書要素X,Yは、文書要素332に対してそれぞれ「引用」、「類似」の関係を持っている。
このように、図15のグラフ310には、変更のあった文書要素322に対して直接の関係を持たない文書要素A,B,C,D,X,Yも表示される。変更のあった文書要素に対して直接の関係を持たない文書要素の表示の制御について、以下に説明する。
ここで、以下の説明では、ユーザが指定した文書内で変更のあった文書要素を変更要素と呼び、この変更要素に対して直接の関係を持つ文書要素を一次要素と呼ぶ。また、一次要素に対して関係を持つ要素を二次要素と呼び、二次要素に対して関係を持つ文書要素を三次要素と呼ぶ。図15の例では、文書要素322及び324は変更要素であり、文書要素332,334及び342は一次要素である。また、文書要素A,B,C,X,Yは二次要素であり、文書要素Dは三次要素である。二次要素及び三次要素は、変更要素に対して直接の関係を持たない。また、以下の説明では、変更要素と一次要素との関係を一次関係と、一次要素と二次要素の関係を二次関係、二次要素と三次要素の関係を三次関係と呼ぶ。一般化すると、(n−1)次要素とn次要素との関係がn次関係である(nは1以上の整数)。ただし、この場合、変更要素は0次要素である。
まず、文書サービスシステム100のプロセッサ102は、グラフ310に含める、すなわち表示する、二次関係の種類を、対応する一次関係の種類に応じて制限する。すなわち、一次関係の種類が「強い」ほど、対応する二次関係のうちグラフ310に含めるものの種類を多くする。また、「弱い」関係ほど、グラフ310に含まれにくくする。一次関係は、種類によらずグラフ310に含められるが、二次関係は、対応する一次関係の種類に応じて限定された種類のみがグラフ310に含められる。これまでに例示した「引用」、「類似」、「参照」の3つの種類の関係では、「引用」が最も強く、その次が「類似」であり、最も弱いのが「参照」である。この強弱関係は、それら各種類の関係をなす文書要素同士の内容類似度の大小関係を反映している。
図15の例では、一次関係が「引用」であれば3種類全ての二次関係を表示し、一次関係が「類似」であれば「引用」と「類似」の2種類の二次関係のみを表示し、一次関係が「参照」であれば「引用」という1種類の二次関係のみを表示している。
例えば、変更要素322に対して「引用」という一次関係を持つ一次要素334については、「引用」(すなわち二次要素Aとの関係)、「類似」(すなわち二次要素Bとの関係)、「参照」(すなわち二次要素Cとの関係)の全ての種類の二次関係が表示されている。
これに対して、変更要素322に対して「類似」という一次関係を持つ一次要素332については、「引用」(すなわち二次要素Xとの関係)、「類似」(すなわち二次要素Yとの関係)という2種類の二次関係が表示されるのみである。仮に、一次要素332に対して「参照」という種類の二次関係を持つ二次要素が存在していたとしても、その二次関係及び二次要素はグラフ310には表示されない。
また、変更要素324に対して「参照」という一次関係を持つ一次要素342については、二次関係及び二次要素はグラフ310に表示されていない。変更要素に「参照」の一次関係を持つ一次要素については、最も強い「引用」の種類の二次関係は表示可能であるが、図15の例では、一次要素342に対して「引用」の二次関係を持つ二次要素は存在しないので、表示されないのである。仮に一次要素342に「類似」や「参照」の関係を持つ二次要素が存在しても、それはグラフ310には表示されない。
また、プロセッサ102は、グラフ310に含めるn次関係のnの上限値を、一次関係の種類に応じて決定してもよい。
図15の例では、文書要素322と334との「引用」の一次関係から延びる関係については、最大三次までの関係をグラフ310に含めている。これに対して、「引用」より弱い「類似」の一次関係から延びる関係については、最大二次までしかグラフ310に含めない。文書要素322と332との一次関係は「類似」なので、仮に一次要素332に関係する二次要素Xに対して、「引用」等の強い三次関係を持つ三次要素が存在していたとしても、その三次関係及び三次要素はグラフ310には表示されない。
また、図15の例では、S32で検索した文書内の変更があった文書要素に関係がある文書要素であっても、変更があった文書要素と同じ文書(すなわち検索した文書)に含まれる文書要素については、ユーザに提供するグラフ310中に表示していない。検索した文書又はその中の文書要素に対して、そのユーザが編集権限を持っているとは限らないからである。ただし、変更があった文書要素に関係がある文書要素ごとに、そのユーザが編集権限を持っているかどうかを確認し、編集権限持っている場合には、変更があった文書要素と同じ文書内の文書要素であっても、グラフ310に表示するようにしてもよい。
<サービスの別の例>
以上に示した例では、文書サービスシステム100は、文書要素の変更を検知した時点では単にそれをデータベースに記録するのみであった。その変更の情報がユーザに提供されるのは、ユーザがその文書要素を含む文書を指定し、これに応じてその文書に対する情報提供画面300がそのユーザに提供された時点である。
これに対する別の例として、以下では、文書サービスシステム100が、ある文書要素の内容が変更されたことを検知した場合に、その文書要素に関係を持つ他の文書要素の関与者に対して通知する処理を説明する。
この処理の手順の一例を図16に示す。図16の手順は、図4に示した手順におけるS28の後に続くステップ群を示している。
図16の手順では、プロセッサ102は、S22(図4参照)で変更があった文書要素を検出した場合、その文書要素に対して関係を持っている文書要素群をデータベース内の関係情報(図8参照)から抽出する(S60)。そして、プロセッサ102は、抽出した文書要素ごとに、その文書要素の関与者の情報をデータベースから求め、その関与者に対して、その変更を知らせる通知を、その関係の種類に応じた通知方式で実行する(S62)。関与者への通知の方式には、例えば関与者が文書サービスシステム100にログインした際に表示するポータルページ上の通知欄に表示する方式や、文書サービスシステム100がその関与者に提供する情報提供画面300等の画面に対してポップアップ画面としてその変更を知らせるメッセージを表示する方式、関与者が文書サービスシステム100に登録している該関与者の電子メールアドレスに対して電子メールで送信する方式等、複数の方式がある。通知欄の表示は、関与者が文書サービスシステム100にログインしない限り表示されないのに対して、電子メールでの通知は関与者が文書サービスシステム100にログインしていない期間でも関与者に届くので、電子メールの方が関与者にとって目立ちやすい。S62では、その関係の種類が強いほど、関与者にとって目立ちやすい方式の通知を行う。例えば、その関係の種類が「参照」及び「類似」であれば、関与者のポータルページ上の通知欄への表示のみを行うのに対し、その関係の種類がそれらより強い「引用」であれば、その通知欄への表示に加え、関与者に対して電子メールによる通知を行う。
以上に説明した実施形態はあくまで例示的なものにすぎず、本発明の範囲内で様々な変形があり得る。
例えば、上記実施形態では、文書要素同士の関係の種類を、それら文書要素の内容の類似度に応じて定めたが、これは一例に過ぎない。
例えば、文書要素を作成又は更新したユーザが、その文書要素に関係を持つ他の文書要素とその関係の種類を文書サービスシステム100に登録してもよい。
また、ユーザに文書編集の機能を提供する装置(例えばクライアント30が提供する文書編集アプリケーション)が、ユーザが文書要素を編集中に行った操作に応じて、文書要素間の関係を判定し、文書サービスシステム100に登録してもよい。例えば、ユーザが、装置の画面上に開いた文書A内の文書要素aを、コピー&ペースト操作により、その画面上に開いた別の文書B内の文書要素bにコピーした場合、その装置は、文書要素bが文書要素aに対して「引用」の種類の関係を持つと判定する。そして、その「引用」関係を文書サービスシステム100に登録する。また、例えば、装置は、ユーザが画面上に開いた文書要素cを編集中に、その画面上に別の文書要素dが開かれていた(ただし、文書要素dからcに対してコピー&ペーストは行われなかった)場合、文書要素cが文書要素dに対して「参照」の関係を持つと判定する。
<文書要素間の関係付けの実施形態>
以上に説明した例では、文書要素間の関係付け(すなわちそれら両者の関係の種類の判定)の方式として、それら文書要素の内容同士の類似度に基づいて関係の種類を判定する方式を主として説明した。
以下では、文書要素間の関係付けの別の方式を説明する。この方式では、文書要素の変化に着目する。すなわち、この方式では、文書要素の新旧2つのバージョン間の差分をその文書要素の特徴の1つと捉え、文書要素同士の関係を差分同士の類似度に基づいて判定する。以下では、ある文書要素Aの新旧2バージョン間の差分と、別の文書要素Bの新旧2バージョン間の差分と、の類似度のことを、差分類似度と呼ぶ。
文書要素同士の関係は、差分類似度のみに基づいて判定してもよいし、上述した文書要素の内容同士の類似度と差分類似度との両方に基づいて判定してもよい。また文書要素同士の関係の判定に、それら文書要素の属性を反映させてもよい。
また文書要素間の関係の種類の判定の材料として用いる文書要素の属性には、一つの例では、その文書要素を含む文書の属性をそのまま流用する。文書要素の属性として流用する文書の属性には、格納場所、作成者、作成日時、最終更新者、更新日時、取得日時、その文書に対して人が付与した検索用のタグ、等がある。
また、文書要素に固有の属性を文書要素間の関係の判定の材料として用いてもよい。例えば、文書要素ごとにその作成や更新の履歴を管理するシステムであれば、文書要素の作成者、作成日時、更新日時、最終更新者等の属性を記録することができる。
関係の判定に用いる属性は、1つであってもよいし複数の組合せ(例えば格納場所と作成者の組合せ)であってもよい。
文書要素同士の関係の種類には、例えば、引用、類似、参照といったものがある。関係の種類は、システムのユーザが自由に定義可能である。また、文書要素同士の間に関係が無いことを、それら文書要素同士の関係の種類(例えば「無関係」と名付けられる種類)の1つとして定義してもよい。
以下では、文書要素同士の関係の種類を、AI(人工知能)を用いて判定する方式の例を説明する。このAI(図示省略)は、文書サービスシステム100(図1参照)に内蔵されるか、又は文書サービスシステム100と通信可能な装置に内蔵される。このAIの実装方式は特に限定されない。ニューラルネットワーク、サポートベクターマシン等の回帰方式、決定木等の木を用いる方式等、公知のいずれの機械学習方式を用いてよい。このAIは、ソフトウエアとして構成されるものでも、ハードウエア回路として構成されるものでも、ハードウエア回路とソフトウエアの組合せとして構成されるものでもよい。
図17に、このAIに文書要素間の関係の種類の判定を機械学習させる処理手順の例を示す。以下では、文書サービスシステム100のプロセッサ102がこの処理手順を実行するものとして説明する。しかしこれはあくまで一例に過ぎず、AIを学習させるための学習システムがこの処理手順を実行してもよい。この場合、学習済みのAIを文書サービスシステム100が利用する。
この処理手順では、プロセッサ102は、学習用のサンプルデータを取得する(S70)。サンプルデータには、2つの文書要素の各々について新旧2つのバージョンのデータと、付随情報とが含まれる。付随情報は、それら2つの文書要素の各々の属性と、それら文書要素同士の関係の種類の情報と、を含む。この関係の種類の情報は、AIを学習させる際に教師データとして用いるものであり、例えば人間が予めその2つの文書要素のペアに対して設定しておく。このようなサンプルデータを多数用意しておき、それら多数のサンプルデータに対して図17の処理を繰り返す。
次にプロセッサ102は、そのサンプルデータに含まれる各文書要素につき、当該文書要素の新旧バージョンの差分を求める(S72)。ここで求める差分は、文書要素の旧バージョンと新バージョンとの間で変化した部分の、旧バージョンでの内容と新バージョンでの内容とのペアである。求められた差分データ、すなわち旧バージョンでの内容と新バージョンでの内容とのペアは、当該文書要素のIDと対応づけて、メモリ104又は補助記憶装置106(以下「メモリ104等」という)に記憶される。
文書要素内で変化した部分が数値である場合、プロセッサ102は、自然言語解析によりその変化した部分、すなわちその数値、が示す意味を特定し、その意味を、差分データである数値のペアと対応付けてメモリ104等に記憶させてもよい。文書要素内の数値の近傍には、その数値の意味を表す単語やフレーズが存在する場合が多いので、自然言語解析により、その数値に関係する単語やフレーズを特定し、その単語やフレーズの意味を、その数値の意味として特定すればよい。
例えば、図18には、「テスト計画書.docx」というファイル名の文書内のある文書要素のバージョン1とバージョン2の内容が示されている。これら両バージョン間では、メチルメルカプタンの基準値の下限の数値「0.01」が「0.004」に変わり、上限値の数値「0.10」が「0.01」に変わっている。したがって、それら両バージョン間の差分データは、旧バージョンの「0.01」と新バージョンの「0.004」とのペアと、旧バージョンの「0.10」と新バージョンの「0.01」とのペアと、の2つのペアである。プロセッサ102は、これら2つのペアを差分データとしてメモリ104等に記憶させる。また、バージョン1の数値「0.01」とバージョン2の数値「0.004」の前後には、「メチルメルカプタン」、「基準値」及び「以上」という単語がある。この文脈から、プロセッサ102は、自然言語解析により、それら数値「0.01」及び「0.004」が「メチルメルカプタンの基準値の下限」を示す数値であるという意味を持つと判定し、その意味をそれら数値のペアに対応付けてメモリ104等に記憶させる。同様に、プロセッサ102は、旧バージョンの「0.10」と新バージョンの「0.01」とのペアの意味が「メチルメルカプタンの基準値の上限」であることを自然言語解析により求め、その意味をそのペアに対応付けてメモリ104等に記憶させる。
また図18の右側に示される文書「テスト結果.xlsx」内のある文書要素は表である。この表のバージョン1とバージョン2の間では、メチルメルカプタンの欄の数値の下限が「0.01」から「0.004」に変わり、上限が「0.10」から「0.01」に変わっている。プロセッサ102は、表の行及び列の見出しを解析することで、この表が基準値を示していること、及び1、2、及び3行目の項目がそれぞれアンモニア、メチルメルカプタン、硫化水素の基準値を示していることを認識する。また、各項目の値の欄内には、2つの数値の間に「〜」が示されているので、プロセッサ102は、「〜」の左側の数値が基準値の下限、右側の数値が基準値の上限を示しているものと認識する。プロセッサ102は、その表のバージョン1と2の間の差分データとして、メチルメルカプタンの基準値の下限が「0.01」から「0.004」に変わったという情報と、同基準値の上限が「0.10」から「0.01」に変わったという情報を求める。
図17の説明に戻ると、次にプロセッサ102は、それら2つの文書要素の内容同士の類似度(すなわち内容類似度)を計算する(S74)。S74では、プロセッサ102は、例えば、それら2つの文書要素それぞれの新旧2つのバージョンのうち、特定の一方(例えば新しい方)同士の内容類似度を計算する。また別の例として、旧バージョン同士の内容類似度と、新バージョン同士の内容類似度との両方を計算し、それら2つの内容類似度に基づいて、それら2つの文書要素の内容類似度を決定してもよい。例えば、旧バージョン同士の内容類似度と、新バージョン同士の内容類似度との平均値、或いは新バージョン側を重視した重み付け平均値等を、それら2つの文章要素の内容類似度として求める。なお、内容類似度は、上述した文書要素同士のコサイン類似度を求める手法、等の従来手法を用いて求めればよい。
次にプロセッサ102は、それら2つの文書要素のうちの一方についてS72で求めた差分と、他方についてS72で求めた差分と、の間の類似度(以下この類似度を差分類似度と呼ぶ)を計算する(S76)。差分類似度は、例えば、内容類似度と同様の方法で求めればよい。
また、図18に例示する2つの文書要素のバージョン1と2の間の差分類似度は、例えば以下のように計算する。この例では、2つの文書要素のそれぞれの差分データには、新旧の数値のペアがそれぞれ2つずつ含まれる。プロセッサ102は、同じ意味を持つペア同士の類似度を計算し、2つのペアのそれぞれについての類似度を総合する(例えば平均値を取る)ことにより、それら2つの文章要素同士の差分類似度を求める。より具体的には、文書「テスト計画書.docx」の文書要素と文書「テスト結果.xlsx」の文書要素との間で、メチルメルカプタンの基準値の下限の数値の新旧のペア同士の類似度、及び上限の数値の新旧のペア同士の類似度を求める。メチルメルカプタンの基準値の下限の数値の新旧のペアは、それら2つの文書間で完全に一致しているので、類似度は100%である。同様に、同基準値の上限の数値の新旧のペアの、それら2文書間での類似度も100%となる。それら2つの文書要素間の差分類似度は、それら2つの類似度の例えば平均である100%と計算される。
図18の例は、同じ意味を持つ数値の2バージョン間での差分を表す数値ペアが、2つの文書要素間で一致する場合であった。これに対して、それらペア同士が2つの文書要素間で一致しない場合には、プロセッサ102は、例えば文書要素間での旧バージョンの数値同士の近さ、新バージョンの数値同士の近さから、それらペア同士の類似度を計算する。この類似度の計算には、例えば、数値同士の差が小さいほど類似度が高くなる関数を用いる。この関数では、数値同士の差が0であれば類似度が100%であり、数値同士の差が大きくなるほど類似度は低くなる。ある新旧の数値のペア同士の類似度は、旧バージョンの数値同士の差に対応する類似度と、新バージョンの数値同士の差に対応する類似度とを総合する(例えば平均を取る)ことにより求めればよい。2つの文書要素間の差分を示す差分データに複数の新旧ペアが含まれている場合は、プロセッサ102は、それらペアごとに上述の方法で求めた類似度をそれら複数のペアについて総合したもの(例えば平均値)を、それら文書要素間の差分類似度として求める。
次にプロセッサ102は、S74で求めた2つの文書要素の内容類似度、S76で求めた差分類似度、及び、それら各文書要素の所定の1以上の属性を入力データとしてAIに入力する。またそのとき、プロセッサ102は、それら2つの文書要素同士の関係の種類を示す情報を教師データとしてAIに与える。それら各文書要素の属性と、関係の種類の情報は、S70で取得した付随情報に含まれている。プロセッサ102は、それら入力データと教師データをAIに与えることにより、そのAIを学習させる(S78)。
用意した多数のサンプルデータのそれぞれについてS72〜S78のステップを実行することにより、AIは、内容類似度、差分類似度、及び各文書要素の属性からなる入力データを入力すると、文書要素同士の関係の種類を出力するよう学習する。
次に、学習済みのAIを用いて文書要素間の関係の種類を求める処理手順の一例を、図19を参照して説明する。この処理手順は、文書サービスシステム100のプロセッサ102が実行する。この処理手順は、図4に示したデーベース構築及び保守の手順におけるS26の詳細な処理の例である。図4のS26では、文書要素同士の内容類似度を計算し、その内容類似度から関係の種類を求めた。これに対して、図19の手順では、内容類似度、差分類似度、及び各文書要素の属性に基づき、文書要素間の関係の種類を判定する。またこの判定には学習済みのAIを用いる。
図19の手順では、プロセッサ102は、注目文書(すなわち図4のS10で取得した文書)内の文書要素ごとに、S80〜S92の処理を実行する。このS80〜S92の処理の対象である文書要素のことを、以下では注目要素と呼ぶ。
プロセッサ102は、取得した注目要素の内容(これは注目要素の内容のこの時点での最新バージョンである)と、その注目要素の直前のバージョンの内容と、の差分データを求める(S80)。差分データのデータ内容やその求め方は、図17の手順の説明において示したものと同様でよい。この手順は、図4の手順のS26の処理の一例なので、注目要素には今回変更が見つかっている。したがって、注目要素の直前のバージョンの内容は、文書サービスシステム100のデータベース内に記憶されている、その変更の前のその注目要素の内容である。
ここで、文書サービスシステム100は、注目要素について少なくとも前回に取得した内容をデータベースに記憶しているものとする。また、文書サービスシステム100は、注目要素について、過去の各回に取得した内容の情報を記憶していてもよい。これら各回に取得した内容は、その取得を実行した日時の情報と対応付けて記憶してもよい。また、注目要素について、過去の各回に取得した内容を全て記憶する代わりに、そのうち前回から変化があったときの内容のみを記憶するようにしてもよい。以上、注目要素について説明したが、文書サービスシステム100は、対象となる全ての文書の全ての文書要素について、同様に、前回の内容、又は過去の複数回の内容を記憶しているものとする。
次にプロセッサ102は、データベース内の文書要素(以下、相手要素と呼ぶ)ごとに、S82〜S92の処理を実行する。この処理では、注目要素と相手要素との関係の種類を求めてデータベースに登録する。
より詳しくは、プロセッサ102は、まず相手要素の最新バージョンとその1つ前のバージョンの内容の差分データを求める(S82)。最新バージョンは、データベースに記憶されているその相手要素の最新の内容であり、1つ前のバージョンは、その最新の内容からみて変化のある直近の内容であり、これもデータベースに記憶されているものとする。差分データの求め方は、注目要素の場合と同様である。
次にプロセッサ102は、注目要素と相手要素との内容類似度を計算する(S84)。この内容類似度の計算は、図17の手順のS74の場合と同じ方法でよい。
またプロセッサ102は、注目要素についてS80で求めた差分データと、相手要素についてS82で求めた差分データと、の間の類似度、すなわち差分類似度、を計算する(S86)。この差分類似度の計算は、図17の手順のS76の場合と同じ方法でよい。
次にプロセッサ102は、S84で計算した内容類似度、S86で計算した差分類似度、注目要素の所定の1以上の属性と、相手要素の所定の1以上の属性とを、学習済みのAIに入力する(S88)。この入力に応じて、AIは、注目要素と相手要素の関係の種類の情報を出力する。
次にプロセッサ102は、AIから出力した関係の種類が、「無関係」以外であるか否かを判定する(S90)。この判定の結果がYesの場合、プロセッサ102は、データベース内の関係情報に、注目要素と相手要素の関係の種類として、そのAIが出力した値を登録する(S92)。これにより、データベース内の関係情報の値が、そのAIが出力した値へと更新される。ここでの関係情報は、図8に例示したものとは異なり、類似度の欄は含んでいなくてよい。S90の判定結果がNoの場合、プロセッサ102は、S92をスキップするか、或いは関係情報に対して、注目要素と相手要素の関係の種類として、無関係を示す値を登録する。
以上では、図19の手順が図4の手順のS26の詳細な手順であるとして説明したが、図4の手順とは無関係に、入力された2つの文書要素に対して図19の手順を実行することも可能である。
以上に説明したように、この実施形態では、注目要素と相手要素との関係の判定において、それら要素の2つのバージョン間の差分類似度を考慮に入れる。差分類似度が高いほど、それら2つの要素の関係は強いと判断される。似た変化を示す文書要素同士は、関係が強いと考えられるからである。
図18の例では、文書「テスト計画書.docx」の文書要素はテキストデータであるのに対し、文書「テスト結果.xlsx」の文書要素は表形式のデータである。形式の違いはあるが、それら2つの文書要素が表している情報内容はかなり近い。しかし、形式の違いのため、それら文書要素同士の内容類似度は、さほど高い値にはならない。このため、内容類似度のみから又は内容類似度と文書要素の属性とからそれら2つの文書要素の関係の種類を判定する場合、その関係の種類はあまり強いものとはならない。
これに対し、それら2つの文書要素のバージョン1と2の間の差分同士の類似度、すなわち差分類似度は、非常に高い値となる。このため、差分類似度を考慮に入れて判定したそれら文書要素同士の関係の種類は、差分類似度を考慮しない場合よりも強い関係を示すものとなり、それら2つの文書要素の情報内容同士の本来の関係に近い
図20は、図18における右側の文書「テスト結果.xlsx」の文書要素が英語表記に変わった場合の例を示す。図20の右側の文書要素は、言語以外は図18の右側の文書要素とまったく同じである。したがって、図20の左右2つの文書要素が示す情報内容は非常に近い。しかし、言語の相違から、右側の文書要素と左側の文書「テスト計画書.docx」の文書要素(これは日本語表記)との間の内容類似度は低い値となる。したがって、内容類似度のみからは、それら2つの文書要素間に強い関係があるとは判定されない。
これに対し、バージョン1と2の間の差分はそれら2つの文書要素の間で一致しているので、それら2つの文書要素の差分類似度は非常に高い値となる。したがって、内容類似度に加えて差分類似度も考慮に入れることにより、差分類似度を用いない場合よりも、それら2つの文書要素の間に強い関係があると判定される。
ここで、差分データを求める際、バージョン間で差分のある箇所の意味を特定するために、プロセッサ102は、辞書を参照してもよい。例えば、図20の右側の文書要素内の差分箇所の項目名「Methyl mercaptan」は、辞書を参照することで「メチルメルカプタン」と同じ意味を持つことが分かる。これにより、左側の文書要素の旧バージョンの値「0.10」と新バージョンの値「0.01」との差分と、右側の文書要素の旧バージョンの値「0.10」と新バージョンの値「0.01」との差分と、が同じ「メチルメルカプタン」に関するものとして互いに対応付けられる。
図18、図20の例は、バージョン間で数値に変更があった場合の例であった.これに対し、図21は、バージョン間で追記があった場合の例を示す。図21に示す例の左右の2つの文書要素のバージョン1は、図20の例の場合と同じであるのに対し、バージョン2には、図20の例に対して「(NH3)」という追記が加えられている。
この例では、プロセッサ102は、左側のバージョン間の差分として、「アンモニアの」から「アンモニア(NH3)の」への変化を更に検出し、左側のバージョン間の差分として、「Ammonia」から「Ammonia(NH3)」への変化を更に検出する。左右の文書要素で同じ追記がなされているので、この差分同士の類似度は高い。他の数値の差分も左右の文書要素間で一致しているので、左右の文書要素間の全体的な差分類似度は非常に高い値となる。
図18、図20及び図21の例は、バージョン間でテキストデータの差分がある場合の例であった。しかし、本実施形態では、テキストデータ以外の形式のデータの差分も対象とする。
図22に示す例では、左側の文書「計画書.docx」の文書要素は、「図1」というキャプションのついた図であり、右側の文書「報告書.xlsx」の文書要素は、図とテキストを含んでいる。左側の文書要素のバージョン2には、バージョン1には存在しなかったハート型のマークが追加されている。また右側の文書要素のバージョン1と2との間では、テキスト部分には変化はないが、図には、ハート型のマークが追加されたという変化がある。したがって、左側の文書要素と右側の文書要素のそれぞれのバージョン1と2の間の差分は、どちらも、バージョン1では図柄が存在しない場所(図中では「Null」と表記)に、ハート型のマークが追加されたというものである。したがって、それら2つの文書要素間の差分類似度は極めて高い値となる。
このように図形データ形式の文書要素についてもバージョン間の差分を求めることができ、文書要素間の差分類似度を求めることができる。したがって、図形データ形式の文書要素についても、図19に示した本実施形態の処理手順が適用可能である。
次に、図23を参照して、学習済みのAIを用いて文書要素間の関係の種類を求める処理手順の別の例を説明する。
この手順では、プロセッサ102は、ユーザの端末から、例えばネットワーク経由で、注目要素の指定を受け付ける(S100)。S100の処理では、例えば図10に示したS30〜S34のステップ群と同様にユーザから文書の選択を受け付け、選択された文書内の文書要素群の中からユーザに注目要素の指定を受け付ける。
次にプロセッサ102は、ユーザから期間の指定を受け付ける(S102)。S102では、例えば、図9に例示した情報提供画面300の右下の「期間」と題された欄において、その期間の始期と終期の指定を受け付けてもよい。始期と終期は、例えば日付や日時で指定される。S102で指定された期間を指定期間と呼ぶ。
次にプロセッサ102は、指定期間内の注目要素の最新バージョンと最古のバージョンを特定し、それら両バージョン間の差分データを求める(S104)。この例では、文書サービスシステム100のデータベースには、該システムが文書要素を取得するごとに、その文書要素の内容等の情報が、その取得の日時に対応付けて保存されている。S104では、プロセッサ102は、データベース内のその注目要素の各取得時点での内容のうち、その期間の始期に最も近い時点のバージョン(すなわち最古のバージョン)と終期に最も近い時点のバージョン(すなわち最新バージョン)を特定する。
次にプロセッサ102は、データベース内の文書要素(以下、相手要素と呼ぶ)ごとに、S106〜S108の処理を実行する。
すなわちプロセッサ102は、指定期間内の相手要素の最新バージョンと最古のバージョンを特定し、それら両バージョン間の差分データを求める(S106)。次にプロセッサ102は、図19の手順のステップ群S84〜S92と同様の処理を実行する(S108)。ここで、S108(特にそのうちの図19のS84に相当する処理)の中で求める注目要素と相手要素の内容類似度は、それら両要素の指定期間内の最新バージョン同士の内容の類似度である。S108の処理により、注目要素と相手要素との間の関係の種類が求められる。
S106〜S108の処理をデータベース中の全ての文書要素について繰り返すことにより、注目要素とデータベース中の他の各文書要素との間の、S102で指定された期間における内容類似度と差分類似度とを考慮した関係の種類が求められる。
この後プロセッサ102は、これまでのステップ群により求めた注目要素と他の各文書要素の関係の種類の情報に基づき、注目要素と他の文書要素群との関係を示すグラフを生成し、生成したグラフを含む情報提供画面をユーザの端末に提供する(S110)。提供するグラフ及び情報提供画面は、図9に例示したものと同様のものである。
以上に説明したように、図23の例では、ユーザから注目要素及び指定期間の指定を受け付け、指定期間内の最新と最古のバージョン間での差分(すなわち変化)を考慮に入れて、注目要素と他の文書要素との関係の種類が求められる。
図23の例では、文書要素の内容同士の差分をとる指定期間を、始期と終期の日付等の組合せで指定したが、別の例もある。
例えば、設計書管理システム10等の文書管理システムが、文書についてのワークフローを管理するサービスを提供している場合、指定期間の始期と終期をワークフローの段階で指定できるようにしてもよい。
例えば、設計書管理システム10では、設計書作成のワークフローを、初稿作成、一次承認、最終承認という一連の3つの段階で管理しているとする。設計部門のあるスタッフが設計書管理システム10上である製品の設計書の初稿を作成し、登録すると、その設計書についての初稿作成の段階が完了し、その初稿が設計書管理システム10に保存される。その設計書に対して一次承認を与える権限を持つ一次承認権限者(例えばその製品の設計チームのリーダー)がその初稿をチェックし、不備がある場合には、担当スタッフに修正を指示したり、自ら初稿に修正を入れたりする。修正等により一次承認権限者が納得する設計書ができた場合、一次承認権限者は、設計書管理システム10に対して、その設計書に対する一次承認の登録を行う。これにより、その設計書についての一次承認の段階が完了し、設計書管理システム10には、その設計書の一次承認済み原稿が保存される。次に、その設計書に対して最終承認を与える権限を持つ最終承認権限者(例えば設計部門の長)が一次承認済み原稿をチェックし、不備がある場合には、一次承認を行った者に修正を指示する。この指示に応じた修正により最終承認権限者が納得する設計書ができた場合、最終承認権限者は、設計書管理システム10に対して、その設計書に対する最終承認の登録を行う。これにより、その設計書についての最終承認の段階が完了し、設計書管理システム10には、その設計書の完成原稿が保存される。設計書管理システム10は、その完成原稿が、その設計書の正式文書として管理する。
このように、設計書管理システム10には、文書の各バージョン(すなわち初稿、一次承認原稿、完成原稿)は、ワークフローの段階に対応付けて保存されている。そこで、プロセッサ102は、設計書管理システム10に管理されている文書中の文書要素については、図23の手順のS102にて、期間の始期と終期を、そのワークフロー内の段階の形で受け付けることもできる。例えば、ある設計書内のある文書要素が注目要素として指定された場合、S102では、例えば、始期を一次承認段階とし終期を最終承認段階とする指定期間の指定を受け付けることが可能である。この場合、その指定期間内の注目要素の最古のバージョンは、一次承認済み原稿内のその注目要素の内容であり、最新のバージョンは完成原稿内のその注目要素の内容である。
相手要素が同じ設計書管理システム10内の文書の文書要素である場合、図23の手順のS106で相手要素についての指定期間は、注目要素の場合と同じワークフロー上での始期の段階と終期の段階の組である。例えば、注目要素について一次承認を始期とし最終承認を終期とする指定期間が指定された場合、S106では、相手要素の一次承認済み原稿内のその相手要素の内容、完成原稿内のその相手要素の内容との差分を求める。
また、相手要素を含む文書を管理している文書管理システムが、設計書管理システム10とは異なるワークフローを用いるものである場合や、ワークフローを用いないものである場合もある。このような場合、S106での相手要素についての指定期間には、注目要素についての指定期間の始期と終期の段階を適用できない。そこで、プロセッサ102は、注目要素に対して指定された指定期間の始期及び終期の各段階の日付又は日時を求め、それら2つの日付で表される期間を相手要素についてのS106での指定期間としてもよい。なお、文書管理システムには、各文書について各段階の処理が実行された時点の日付等の情報が登録されているものとする。
以上の例では、指定期間内の最新のバージョンと最古のバージョンの差分をとったが、最新と最古に限らず、指定期間内の任意の2つのバージョン(すなわち指定期間内に生成された第1バージョンと第2バージョン)の差分をとってもよい。そして、2つの文書要素についてそれぞれ求めた差分に基づいて、それら両文書要素の関係を判定してもよい。
次に、図24を参照して、学習済みのAIを用いて文書要素間の関係の種類を求める処理手順の更に別の例を説明する。図24の手順のうち、図23の手順の場合と同様の処理を行うステップには同一符号を付し、重複する説明を省略する。
この手順では、プロセッサ102は、S100でユーザの端末から注目要素の指定を受け付けると共に、ユーザから注目時点の指定を受け付ける(S122)。例えば、ユーザは、注目文書が更新された時点の日付(例えば改正法の施行日)や日時を、注目時点として指定する。
次にプロセッサ102は、注目要素の、注目時点の直前のバージョンと直後のバージョンを特定し、それら両バージョンの内容同士の差分データを求める(S124)。次にプロセッサ102は、データベース内の文書要素(以下、相手要素と呼ぶ)ごとに、S126及びS108の処理を実行する。すなわちプロセッサ102は、相手要素の、注目時点の直前のバージョンと直後のバージョンを特定し、それら両バージョンの内容同士の差分データを求める(S126)。そしてプロセッサ102は、図19の手順のステップ群S84〜S92と同様の処理を実行(S108)することにより、注目要素と相手要素との間の関係の種類を求める。
プロセッサ102は、S126及びS108の繰り返し処理を完了した後、図23の手順と同様、注目要素と他の文書要素群との関係を示すグラフを生成し、生成したグラフを含む情報提供画面をユーザの端末に提供する(S110)。
図24の手順のS122では、注目時点の指定を、日付や日時の代わりに、注目要素が属する文書の、ワークフロー上での段階の形で受け付けてもよい。この場合、S124では、ユーザが指定した段階の前と後の注目要素のバージョン同士の差分を求める。例えば、図23に関して説明した設計書管理システム10のワークフローの例において、注目時点として一次承認段階が指定された場合、S124では、初稿と一次承認済み原稿との間で、その注目要素の内容の差分を求める。また、相手要素が同じワークフローに従う文書内の文書要素である場合は、S126では、注目要素に対して注目時点として指定されたのと同じワークフローの段階の前後の相手文書のバージョン間の差分を求める。また、相手要素が同じワークフローに従わない文書内の文書要素である場合、プロセッサ102は、注目要素についてその注目時点の段階が実行された日付等を特定し、S126では、相手要素のその日付等の直前と直後のバージョン間の差分を求めればよい。
図24の例では、ユーザが明示的に注目時点を指定したが、この代わりに、ユーザが注目要素を選択すると、プロセッサ102が、その注目要素の内容が最後に変更された時点(すなわち最新の変更時点)を特定し、この時点を注目時点として自動的に決定してもよい。また、注目要素の内容が変更された時点のリストをユーザに提示し、そのリストからユーザに注目時点を選択させてもよい。
以上に説明した実施形態において、文書要素は、文書を構成する要素のことである。ここで、文書管理システムが管理する個々の文書を構成要素とするより大きな単位の文書が存在してもよい。この場合、前者の個々の文書は、後者の大きな単位の文書にとっての文書要素である。例えば、ハイパーリンクで結びつけられた複数の文書から構成されるハイパーテキストを大きな単位の文書と捉えた場合、それら複数の文書はそのハイパーテキストから見ると文書要素に当たる。
以上、文書要素間の関係付けのための仕組みの実施形態を説明したが、以上に説明した実施形態はあくまで例示的なものにすぎない。本発明の範囲内で様々な変形例が考えられる。
例えば、図19、図23及び図24に例示した処理手順では、文書要素間の関係の種類を、AIを用いて判定したが、AIの代わりにアルゴリズムを用いて判定を行ってもよい。このとき用いるアルゴリズムは、内容類似度、差分類似度、及び2つの文書要素の属性の組合せから、それら2つの文書要素間の関係の種類を判定する手順を規定するものである。
また、文章要素間の関係の種類の判定に、内容類似度、差分類似度、及び2つの文書要素の属性の全てを用いる必要はない。例えば、内容類似度と差分類似度の組から関係の種類を判定する例も考えられる。また、差分類似度のみから関係の種類を判定する例や、差分類似度と文書要素の属性との組から関係の種類を判定する例も考えられる。