(57)【特許請求の範囲】
【請求項１】
アドレスの指定により取得可能なハイパーメディアデータのバージョンを管理するバージョン管理装置であって、
指定されたアドレスのハイパーメディアデータを取得するデータ取得手段と、
前記データ取得手段により取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出するアドレス抽出手段と、
前記ハイパーメディアデータをアンカーから辿って次々にデータを取得していくときの起点となる起点アドレス及び前記アドレス抽出手段により抽出されたアドレスを記憶するアドレス記憶手段と、
アドレス単位で指定可能なデータ取得対象及びデータ取得タイミングに関する指定条件を記憶する指定条件記憶手段と、
前記アドレス記憶手段に記憶されているアドレスから、前記指定条件記憶手段に記憶された前記指定条件に基づいてアドレスを選択すること、及び該選択したアドレスを前記データ取得手段に指定することを繰り返し行うアドレス選択手段と、
前記データ取得手段により取得されたデータを該データのアドレスと該データのバージョンを示すバージョン情報とを付加して記憶するデータ記憶手段と、
前記データ記憶手段からユーザにより指定されたバージョンのデータを取り出すバージョン管理制御手段とを備えたことを特徴とするバージョン管理装置。
【請求項２】
前記アドレス記憶手段は、前記記憶するアドレスに該アドレスで指定されるデータの取得に関するアドレス付加情報を付加して記憶し、
前記アドレス選択手段は、さらに前記アドレス付加情報を参照して前記アドレス記憶手段から前記一つのアドレスを選択することを特徴とする請求項１に記載のバージョン管理装置。
【請求項３】
アドレスの指定により取得可能なハイパーメディアデータのバージョンを管理するバージョン管理装置であって、
指定されたアドレスのハイパーメディアデータを取得するデータ取得手段と、
前記データ取得手段により取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出するアドレス抽出手段と、
アドレス単位で指定可能なデータ取得対象及びデータ取得タイミングに関する指定条件を記憶する指定条件記憶手段と、
前記ハイパーメディアデータをアンカーから辿って次々にデータを取得していくときの起点となる起点アドレス及び前記アドレス抽出手段により抽出されかつ前記指定条件記憶手段に記憶された前記指定条件に基づいて選択されたアドレスを記憶するアドレス記憶手段と、
前記アドレス記憶手段に記憶されているアドレスから一つのアドレスを選択すること、及び該選択したアドレスを前記データ取得手段に指定することを繰り返し行うアドレス選択手段と、
前記データ取得手段により取得されたデータを該データのアドレスと該データのバージョンを示すバージョン情報とを付加して記憶するデータ記憶手段と、
外部からの検索キーとなる単語を含む検索要求を受け、前記単語を含むデータのアドレスを取得し、前記データ記憶手段に記憶されている該アドレスのデータを検索する検索サービス手段と、
前記データ記憶手段からユーザにより指定されたバージョンのデータを取り出すバージョン管理制御手段とを備えたことを特徴とするバージョン管理装置。
【請求項４】
外部からの検索キーとなる単語を含む検索要求を受け、前記単語を含むデータのアドレスを取得し、前記データ記憶手段に記憶されている該アドレスのデータを検索する検索サービス手段をさらに備えたことを特徴とする請求項１または２のいずれか１項に記載のバージョン管理装置。
【請求項５】
アドレスの指定により取得可能なハイパーメディアデータのバージョンを管理するバージョン管理方法であって、
データ取得手段によって、指定されたアドレスのハイパーメディアデータを取得する取得ステップと、
アドレス抽出手段によって、前記取得ステップにより取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出する抽出ステップと、
指定条件記憶手段によって、アドレス単位で指定可能なデータ取得対象及びデータ取得タイミングに関する指定条件を記憶する指定条件記憶ステップと、
アドレス記憶手段によって、前記ハイパーメディアデータをアンカーから辿って次々にデータを取得していくときの起点となる起点アドレス及び前記抽出ステップにより抽出されたアドレスを記憶するアドレス記憶ステップと、
アドレス選択手段によって、前記アドレス記憶手段に記憶されているアドレスから、前記指定条件記憶手段に記憶された前記指定条件に基づいてアドレスを選択すること、及び該選択したアドレスを前記データ取得手段に指定することを繰り返し行うステップと、
データ記憶手段によって、前記取得ステップにより取得されたデータを該データのアドレス及び該データのバージョンを示すバージョン情報と共に記憶するステップと、
検索サービス手段によって、外部からの検索キーとなる単語を含む検索要求を受け、前記単語を含むデータのアドレスを取得し、前記データ記憶手段に記憶されている該アドレスのデータを検索するステップと、
バージョン管理制御手段によって、前記データ記憶手段からユーザにより指定されたバージョンのデータを取り出すステップとを備えたことを特徴とするバージョン管理方法。
【請求項６】
アドレスの指定により取得可能なハイパーメディアデータのバージョンを管理するバージョン管理方法であって、
データ取得手段によって、指定されたアドレスのハイパーメディアデータを取得する取得ステップと、
指定条件記憶手段によって、アドレス単位で指定可能なデータ取得対象及びデータ取得タイミングに関する指定条件を記憶する指定条件記憶ステップと、
アドレス抽出手段によって、前記取得ステップにより取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出する抽出ステップと、
アドレス記憶手段によって、前記ハイパーメディアデータをアンカーから辿って次々にデータを取得していくときの起点となる起点アドレス及び前記アドレス抽出手段により抽出されかつ前記指定条件記憶手段に記憶された前記指定条件に基づいて選択されたアドレスを記憶するアドレス記憶ステップと、
アドレス選択手段によって、前記アドレス記憶手段に記憶されているアドレスから一つのアドレスを選択すること、及び該選択したアドレスを前記データ取得ステップに指定することを繰り返し行うステップと、
データ記憶手段によって、前記取得ステップにより取得されたデータを該データのアドレス及び該データのバージョンを示すバージョン情報と共に記憶するステップと、
バージョン管理制御手段によって、前記データ記憶手段からユーザにより指定されたバージョンのデータを取り出すステップを備えたことを特徴とするバージョン管理方法。
【請求項７】
検索サービス手段によって、外部からの検索キーとなる単語を含む検索要求を受け、前記単語を含むデータのアドレスを取得し、前記データ記憶手段に記憶されている該アドレスのデータを検索するステップをさらに備えたことを特徴とする請求項６に記載のバージョン管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アドレスの指定により取得可能なハイパーメディアデータのバージョンを管理するバージョン管理装置及びバージョン管理方法に関する。
【０００２】
【従来の技術】
一般にデータは作成された後、更新されたり削除されたりするため、過去のバージョンを記憶させ、後で取り出したり、新バージョンと比較したりするバージョン管理が行われてきた。そして、従来のバージョン管理ツールでは、管理の対象となる個々のデータをあらかじめ指定しておく必要があった。
【０００３】
ところで、データの個数が多かったり、それらがネットワークを介して分散していたり、さらには複数の人によってデータの追加、削除、更新が行われたりすると、個々のデータの状態を把握することが難しくなる。従って、結果的に管理したい個々のデータを指定することが難しくなり、バージョン管理ができなくなるという問題点があった。特に、ハイパーメディアデータのバージョン管理においては、各ハイパーメディアデータについて単に一般的なデータと同様の管理の仕方を行うバージョン管理ツールがあるだけで、ハイパーメディアであることの特性を利用してバージョンを管理するものは存在しなかった。
【０００４】
一方、多数のデータの中から必要なデータを捜し出すには、全データを対象として検索を行うことが有効である。ハイパーメディアの大規模なものについては、例えばインターネットにおけるＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）上のハイパーメディアデータを対象とした検索サービスがすでに存在する。しかしながら、このような検索サービスはデータの比較的新しい唯一のバージョンのみを対象としており、過去のバージョンをも対象とする検索サービスは存在しなかった。
【０００５】
【発明が解決しようとする課題】
従来はハイパーメディアデータのバージョン管理を行う場合でも、個々のデータを指定する必要があり、データ数が多いときなどはバージョン管理が困難になるという問題があった。
【０００６】
また、ハイパーメディアデータを対象とした検索において、過去のバージョンを対象とした検索ができないという問題もあった。
本発明は、上記事情を考慮してなされたものであり、バージョン管理の対象とすべき個々のハイパーメディアデータすべてを指定することを必要とせず、最低限の指定のみで、各データを取得し夫々のデータのバージョンを管理するバージョン管理装置及びバージョン管理方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明（請求項１）は、アドレスの指定により取得可能なハイパーメディアデータのバージョンを取得し管理するバージョン管理装置であって、指定されたアドレスのハイパーメディアデータの取得を試行するデータ取得手段と、このデータ取得手段により取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出するアドレス抽出手段と、少なくとも前記アドレス抽出手段により抽出されたアドレスを記憶するアドレス記憶手段と、このアドレス記憶手段からアドレスを選択し、該アドレスで指定されるデータの取得を前記データ取得手段に指示することを、繰り返し行うアドレス選択手段と、前記データ取得手段により取得されたデータまたは該データを加工したものに、該データのアドレスと、該データのバージョンに関するバージョン情報とを付加して記憶するデータ記憶手段とを備えたことを特徴とする。
【０００８】
本発明（請求項２）は、請求項１に記載のバージョン管理装置において、前記アドレス記憶手段には、前記アドレスに該アドレスで指定されるデータの取得の試行に関するアドレス付加情報を付加して記憶し、前記アドレス選択手段は、前記アドレス付加情報を参照して前記アドレス記憶手段からアドレスを選択することを特徴とする。
【０００９】
本発明（請求項３）は、請求項１に記載のバージョン管理装置において、ユーザからの要求に応じて前記データ記憶手段に記憶されているデータを検索する検索サービス手段をさらに備えたことを特徴とする。
【００１０】
本発明（請求項４）は、請求項１に記載のバージョン管理装置において、ユーザからの要求に応じて前記データ記憶手段から指定されたバージョンのデータを取り出すバージョン管理制御手段をさらに備えたことを特徴とする。
【００１１】
また、本発明は、請求項１に記載のバージョン管理装置において、前記バージョン情報は、データの取得時刻、データの記憶時刻、データのサイズおよび同一アドレスのものについて何回目に記憶されたかを示すバージョン番号の少なくとも１つを含むようにしても良い。
【００１２】
本発明（請求項５）は、請求項１に記載のバージョン管理装置において、アドレス単位で指定可能な、データ取得試行対象およびデータ取得試行タイミングの少なくとも一方に関する指定条件を記憶する指定条件記憶手段をさらに備え、前記アドレス選択手段は、前記指定条件記憶手段に記憶された前記指定条件に基づいて、前記アドレス記憶手段からアドレスを選択することを特徴とする。
【００１３】
前記指定条件は、例えば、データの取得を開始するアドレスである起点アドレス、アドレスで指定されるデータの取得予定時間または取得時間間隔、データを取得するアドレスの範囲などである。
【００１４】
アドレスで指定されるデータの取得予定時間をもとにしてアドレスを選択する場合、例えば、現在時刻を参照し、取得予定時間となったアドレスを選択する。また、アドレスで指定されるデータの取得時間間隔をもとにする場合、例えば、該アドレスに付加された前記アドレス付加情報から前回に取得した時刻を調べ、これと現在時刻とを比べることにより、該当するに至ったアドレスを選択する。また、例えば、前記アドレス記憶手段に記憶されているアドレスであっても、アドレスデータを取得するアドレスの範囲に該当しないものは選択しない。
【００１５】
本発明（請求項６）は、請求項５に記載のバージョン管理装置において、前記アドレス抽出手段により抽出されたアドレスのうち、前記指定条件記憶手段に記憶された前記指定条件に基づいて選択したアドレスのみを前記アドレス記憶手段に記憶させることを特徴とする。
【００１６】
また、本発明は、前記データ記憶手段は、すでに記憶されているデータと同一アドレスのデータを記憶するときに、旧データを他の記憶されているデータにより再現できる形に加工するかまたはそのままの状態で保存しておき、新しいデータを追加して記憶するようにしても良い。
【００１７】
また、本発明は、前記データ記憶手段は、すでに記憶されているデータと同一アドレスのデータを記憶するときに、新データを記憶する代わりに、旧データ（直前のバージョン）と新データとの差分を記憶するようにしても良い。
【００１８】
また、本発明は、前記データ記憶手段は、すでに記憶されているデータと同一アドレスのデータを記憶するときに、旧データ（直前のバージョン）を新データとの差分に置き換えて記憶し直し、新データを追加して記憶するようにしても良い。
【００１９】
また、本発明は、前記検索サービス手段は、ユーザから指定された時刻範囲のデータを対象として検索を行うようにしても良い。
本発明（請求項７）は、アドレスの指定により取得可能なハイパーメディアデータのバージョンを取得し管理するバージョン管理方法であって、選択されたアドレスのハイパーメディアデータの取得を試行し、取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出し、抽出されたアドレスを記憶するとともに、取得されたデータまたは該データを加工したものに、該データのアドレスと、該データのバージョンに関するバージョン情報とを付加して記憶し、記憶された前記アドレスのうち所定の選択条件を満たすものを選択して、該アドレスで指定されるデータの取得を指示することを、繰り返し行うことを特徴とする。
【００２０】
本発明によれば、取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスにより指し示されるハイパーメディアデータを抽出して連鎖的に取得対象としていくので、バージョン管理すべきハイパーメディアデータのアドレスすべてを指定することなく、一部のアドレスを指定するだけで、次々にハイパーメディアデータを取得することができるとともに、所定のタイミングで繰り返し各ハイパーメディアデータを取得することができ、また、各タイミングで取得された各ハイパーメディアデータについてのバージョン管理が可能となる。
【００２１】
これにより、各ハイパーメディアデータについて様々なバージョンの検索が可能となる。
なお、以上の各装置に係る発明は、方法に係る説明としても成立する。
【００２２】
ところで、上記の発明は、相当する処理を実行させるためのプログラムを格納した記憶媒体としても成立する。
例えば、本発明は、選択されたアドレスのハイパーメディアデータの取得を試行させ、取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスを抽出させ、抽出されたアドレスを記憶させるとともに、取得されたデータまたは該データを加工したものに、該データのアドレスと、該データのバージョンに関するバージョン情報とを付加して記憶させ、記憶された前記アドレスのうち所定の選択条件を満たすものを選択させて、該アドレスで指定されるデータの取得を指示させるようにコンピュータを制御するためのプログラムを格納したコンピュータ読取可能な記録媒体である。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
まず、本実施形態で用いる語句について説明する。
「ハイパーメディアデータ」とは、データ自身の中に他のデータまたは自分自身のデータを指すアドレスが０または１以上埋め込まれているデータである。また、このように埋め込まれたアドレスを「アンカー」と呼ぶ。
【００２４】
なお、アンカーが０であるハイパーメディアデータは、他からは参照されるが、自身はリンクの終点に位置するハイパーメディアデータである。
また、一般にデータは作成、更新、削除が行われることで、時間的に変化する。ここで、データのある時間的瞬間の状態夫々をバージョンと呼ぶ。そして、あるデータについて、いくつかのバージョンを記憶し、また指定された古いバージョンを取り出し、あるいは古いバージョンに戻すなど、バージョンに関する種々の操作を行うことを「バージョン管理」と呼ぶ。
【００２５】
図１に、本発明の一実施形態に係るバージョン管理装置の基本的な構成を示す。
本バージョン管理装置は、データ取得部１０１、アドレス抽出部１０２、アドレス記憶部１０３、アドレス選択部１０４、指定条件記憶部１０５、データ記憶部１０６、バージョン管理制御部１０７を備えている。
【００２６】
データ取得部１０１は、ハイパーメディアデータ群から、指定されたアドレスに対応するデータを取得する。
アドレス抽出部１０２は、データ取得部１０１で取得されたデータからアンカーとして埋め込まれているアドレスを抽出し、そのアドレスの中から指定条件記憶部１０５に記憶されている指定条件を満たすものを選択し、選択されたアドレスをアドレス記憶部１０３に記憶させる。
【００２７】
アドレス記憶部１０３は、アドレスおよびアドレスで指定されたデータを取得した時刻などのアドレス付加情報を記憶する。
アドレス選択部１０４は、アドレス記憶部１０３に記憶されるアドレスから次にデータを取得するアドレスを選択する。アドレスの選択は、指定条件記憶部１０５に関係する指定条件がある場合は、該指定条件に基づいて行われ、指定条件がない場合は、アドレス付加情報などを利用して選択する。
【００２８】
指定条件記憶部１０５は、あるアドレスのデータ取得時間間隔や取得するアドレスの範囲などの条件である指定条件を記憶する。
データ記憶部１０６は、データ取得部１０１により取得したデータまたはそのデータを加工したデータ、および対応するアドレスを、そのデータの取得時刻などのバージョン情報を付加して記憶する。
【００２９】
バージョン管理制御部１０７は、データ記憶部１０６に記憶されている情報を使って、指定されたバージョンのデータを取り出すなどのバージョン管理にかかわる制御を行う。
【００３０】
本実施形態では、以下のような手順により処理を行う。
まず、アドレス記憶部１０３に起点アドレスを記憶させる。起点アドレスは、ハイパーメディアデータをアンカーから辿って次々にデータを取得していくときの起点となるアドレスである。従来のバージョン管理装置ではすべてのアドレスを指定しなければならないが、本実施形態では起点アドレスのみを指定すれば良い。なお、起点アドレスとしては、１つのアドレスを設定しても良いし、複数のアドレスを設定しても良い。
【００３１】
次に、アドレス選択部１０４が、アドレス記憶部１０３に記憶されているアドレスから１つを選択する。選択にあたっては、指定条件記憶部１０５に記憶されている指定条件が参照される。例えば、まだ一度もデータを取得していないアドレスや以前に取得した時刻が古いものなどを優先的に選択する方法もある。
【００３２】
次に、アドレス選択部１０４において選択されたアドレスで指定されるハイパーメディアデータの取得を、データ取得部１０１が行う。
取得されたデータは、アドレス抽出部１０２によりアンカーとして埋め込まれているアドレスが抽出され、抽出されたアドレスの中から指定条件記憶部１０５に記憶される指定条件を参照して記憶されるべきアドレスを選択し、アドレス記憶部１０３に記憶させる。
【００３３】
一方、該取得されたデータはそのままの形で、または加工された後、データの取得時刻などのバージョン情報を付加してデータ記憶部１０６に記憶させる。このとき、過去のバージョンは無変更のままか、または他の保存されているデータから再構成可能な形に加工される。
【００３４】
以降、アドレス選択部１０４によるアドレスの選択に戻り、データの取得等が繰り返される。
以上の手続により、本実施形態では、管理すべきハイパーメディアデータすべてを指定することなく、一部のアドレスを指定するだけで次々にデータを取得して各バージョンを保存し、バージョン管理を行うことが可能になる。
【００３５】
また、図１には示されていないが、本実施形態では、検索サービス部を持つ場合がある。検索サービス部は、データ記憶部１０６に記憶されるデータを対象として検索する機能を持つ。これにより、様々なバージョンのデータを検索することが可能となる。例えば、ＷＷＷで代表される大規模ハイパーメディア系の過去のバージョンまで含めた検索が可能となる。
【００３６】
以下、本実施形態についてより詳しく説明する。
なお、以下では、本発明の一実施形態として、ハイパーメディアデータのバージョン管理を行うバージョン管理装置を例にとり、特にハイパーメディアデータの取得および検索サービスを中心に説明する。
【００３７】
前述のようにハイパーメディアデータとは、データ自身の中に他のデータまたは自分自身のデータを指すアドレス（アンカー）が０または１以上埋め込まれているデータである。
【００３８】
ハイパーメディアデータの例としては、インターネット上に展開されるＷＷＷがあげられる。この場合、ハイパーメディアデータ群は、ＷＷＷにおいて各サーバに分散されているハイパーメディアデータの集まりであり、各データのアドレスは、例えば、ネットワーク中でサーバを特定する情報と、そのサーバ内でデータを特定する情報から構成される。
【００３９】
前述のように、一般に、これらデータは、作成された後、更新あるいは削除により変化して行く。そこで、過去のデータを保存しておき、後に過去のデータを取り出したり、どのように変化したかを調べたりするバージョン管理を行うことが有効となる。
【００４０】
本実施形態のバージョン管理装置は、概要としては、ハイパーメディアデータに埋め込まれているアドレスを次々に辿りながら、対応するハイパーメディアデータを取得し、そのデータにバージョン情報を付加して保存したものを使ってバージョン管理を行う。このため、管理したいハイパーメディアデータをあらかじめすべて指定する必要がなく、最低限の指定をしておけば、後は自動的にデータの取得を行い、保存を行う。これは、全データを把握し切れていないときなどに特に有効である。
【００４１】
また、本実施形態におけるもう１つの特徴として、検索サービス装置を用いることによりこれらの保存された様々なバージョンのデータを対象として検索を行うことが可能である点があげられる。これにより、例えばハイパーメディア群においてはすでに失われてしまった過去のバージョンから検索を行うことが可能となる。
【００４２】
図１は、本実施形態におけるバージョン管理装置の基本的な構成を示す図である。
本バージョン管理装置は、データ取得部１０１、アドレス抽出部１０２、アドレス記憶部１０３、アドレス選択部１０４、指定条件記憶部１０５、データ記憶部１０６、バージョン管理制御部１０７を備えている。
【００４３】
データ取得部１０１は、分散して存在するハイパーメディアデータ群から、指定されたアドレスに対応するデータを取得する。
アドレス抽出部１０２は、データ取得部１０１で取得されたデータからアンカーとして埋め込まれているアドレスを抽出し、アドレス記憶部１０３に記憶させる。ただし、抽出されたアドレスを必ずしもすべて記憶させるわけではなく、指定条件記憶部１０５に記憶された指定条件をもとに、記憶されるアドレスを選択する。
【００４４】
アドレス記憶部１０３は、アドレスおよびアドレス付加情報を記憶する。アドレス付加情報とは、データを取得したかを表すフラグや、データを取得した時刻など、アドレスに関係する情報のことである。
【００４５】
アドレス選択部１０４は、アドレス記憶部１０３に記憶されるアドレスから次にデータを取得するアドレスを選択する。アドレスの選択は、指定条件記憶部１０５に指定条件がある場合は、該指定条件に基づいて行われる。指定条件がない場合は、まだデータを取得していないアドレスや、以前のデータの取得時刻が最も古いアドレスなどが優先して選択される。
【００４６】
指定条件記憶部１０５は、あるアドレスのデータ取得時間間隔や取得するアドレスのグループなどの指定条件を記憶する。
データ記憶部１０６は、データ取得部１０１により取得したデータまたはそのデータを加工したデータ、および対応するアドレスを、バージョン情報を付加して記憶する。バージョン情報とは、そのデータを取得した時刻や同一アドレスのときは何度目に記録されたかを表すバージョン番号などの情報である。
【００４７】
なお、本実施形態では、新たにデータを追加するとき、旧データ（新データの直前のバージョンのもの）を新データと旧データとの差分に置き換え、新データをそのままの形で追加して記憶するものとする（すなわち、旧データに関しては加工していることになる）。
【００４８】
なお、上記の代わりに、各バージョンのデータを加工せずにそのまま記憶する方法、あるいは新データの方を差分化して記憶する方法、データを圧縮して記憶する方法など、種々の方法に変更することも可能である。また、用途によっては、必ずしも元のデータを再現できるように保存しておく必要はない。例えば、保存したデータを検索のみに使うのであれば、検索に都合の良い形に加工して記憶させておけば良い。
【００４９】
データ管理制御部１０７は、データ記憶部１０６に記憶される情報を使って、指定されたバージョンのデータを取す。その際、上記のように差分や圧縮の技術を用いる場合、２つのバージョンのデータを比較して差分を取り、あるいは指定されたバージョンのデータを復元するなど、バージョン管理にかかわる制御を行う。なお、データ管理制御部１０７における制御は、従来のバージョン管理技術（ＵＮＩＸにおけるＳＣＣＳやＲＣＳなど）と基本的には同様であるので、ここでの詳細な説明は省略する。
【００５０】
次に、バージョン管理装置内の各記憶部における記憶構造を詳しく説明する。
まず、アドレス記憶部１０３における記憶構造について説明する。
図２に、アドレス記憶部１０３における記憶構造の一例を示す。
【００５１】
本実施形態では、図２のように、アドレス（５０１）およびアドレス付加情報（取得状態（５０２）、取得時刻（５０３）、取得所要時間（５０４）、エラー番号（５０５）を１単位とし、リスト構造で管理する。
【００５２】
ここで、アドレス（図中５０１）とは、ハイパーメディアデータを指し示すアドレスそのものである。
取得状態（図中５０２）とは、アドレスに対応するデータの取得に関する状態であり、「未取得」「取得成功」「取得失敗」の３状態のいずれかが記憶される。
【００５３】
「未取得」とは、まだそのアドレスに対応するデータの取得が試行されていない状態である。
「取得成功」とは、最後に行なったデータ取得が成功したことを示す。このとき、取得時刻（図中５０３）にはデータを取得した時刻が、取得所要時間（図中５０４）にはデータを取得するのに要した時間が記憶される。
【００５４】
「取得失敗」とは、最後に行なったデータ取得が失敗したことを示す。このとき、失敗した理由がエラー番号（図中５０５）として記録される。失敗の理由としては、（１）タイムアウト、（２）そのアドレスに対応するデータが存在しなかった、（３）セキュリティー上の理由などでデータの取得が許可されなかった、などがあり、それぞれが対応するエラー番号を持つ。このとき、取得時刻（図中５０３）には取得を試みた時刻が、取得所要時間（図中５０４）には取得を試みてから失敗の反応が返ってくるまでの時間が記録される。
【００５５】
なお、ここまでは取得状態として直前の状態のみを記憶しているが、アドレス選択部１０４などでさらに細かな選択の調整をするときは、もっと以前の状態も併せて記録しておけば、それを利用することも可能となる。
【００５６】
また、本実施形態では、アドレス記憶部１０３における記憶構造としてリスト構造を採用しているが、ハッシュ構造などに置き換えてアクセスの効率を上げることも可能である。
【００５７】
次に、指定条件記憶部１０５における記憶構造を説明する。
指定条件記憶部１０５では、テキストとして指定条件を記憶する。テキストである理由は、指定条件は管理者など人間が直接扱う可能性が大きいためである。なお、テキスト以外の記録構造ももちろん可能である。
【００５８】
図３に、指定条件記憶部１０５における記憶構造の一例を示す。
起点アドレスとは、ハイパーメディアデータをアンカーから辿って次々にデータを取得していくときの起点となるアドレスである。起点アドレスは一般的に複数のアドレスであり（もちろん、１つのアドレスでも構わない）、処理の最初にアドレス記憶部１０３に記憶される。
【００５９】
ここで、「取得予定時刻」とは、あるアドレスで指し示されるデータを取得する時刻を既定する。時刻の他に曜日などの指定もでき、例えば「毎週水曜日の３時に取得せよ」などといった指定を実現するための記述が可能である。なお、取得予定時刻はアドレスの範囲について規定することが可能である。
【００６０】
アドレス範囲とは、取得対象とするアドレスの範囲を表すものであり、１つのアドレス、または複数のアドレスを、［，］で区切って並べたもの、または「アドレス１−アドレス２」のように、［−］を使って直接範囲を指定したもの、またはこれらを組み合わせて指定することができる。また、その他に、［ａｎｄ］、［ｏｒ］、［ｎｏｔ］などを使った論理演算、および［*］、［？］などを使ったワイルドカード指定を用いることも可能である。アドレス範囲を表す式の解釈は、従来の構文解析技術を使うことが可能である。
【００６１】
「取得時間間隔」とは、あるアドレスについて、対応するデータが取得されてから次に取得されるまでの時間間隔を指定する。取得時間間隔はアドレス範囲に対して指定することができる。
【００６２】
「取得アドレス範囲」とは、あるアドレスの範囲を指定したものである。すなわち、ここに記述されていない範囲のアドレスは取得されない。なお、この欄がなかったときは、本実施形態においては全アドレスを取得対象とするものとする。
【００６３】
次に、データ記憶部１０６における記憶構造について説明する。
図４は、データ記憶部１０６における記憶構造の一例を示す。
各バージョンのデータはアドレスごとにファイルに分けられて記録される。
【００６４】
ファイル名は、例えば一部にアドレス名を含むなど、アドレスから一意に対応付けられるものとする。例えば、図中７０１のように、アドレスｎのデータのファイル名を、アドレスｎファイルとする。
【００６５】
各ファイルには、まずアドレス（図中７１１）が記憶され、次に各バージョンに対応する情報が並ぶ。各バージョンは、バージョン情報（取得時刻（７１２）、記憶時刻（７１３）、サイズ（７１４）、タイプ（７１５）、バージョン番号（７１６）、コメントサイズ（７１７）、コメント（７１８））とデータ部（差分フラグ（７１９）、差分データサイズ（７２０）、差分データ（７２１））を持つ。
【００６６】
「取得時刻」とは、対応するバージョンのデータがデータ取得部１０１に取得された時刻を表す。
「記憶時刻」とは、対応するバージョンにおける各情報がデータ記憶部１０６に記憶された時刻を表す。記憶時刻は、一般に、取得時刻に近い時刻となる。
【００６７】
「サイズ」とは、対応するバージョンのデータの実サイズを表す。
「タイプ」とは、対応するバージョンにおけるデータのタイプを表す。タイプには、例えばテキスト、静止画、音声、動画などがある。当初テキストだったものが後で静止画に変わるなど、バージョンによってタイプは変化する可能性があるため、各バージョンごとにタイプを記憶できるようにしている。
【００６８】
「バージョン番号」とは、対応するバージョンに一意に付けられた番号である。特に指定しない限り、バージョンを追加するごとに１ずつ増加するものとする。
【００６９】
「コメントサイズ」とは、コメントのサイズを表す。
「コメント」とは、対応するバージョンに関するコメントであり、任意のコメントを挿入することができる。
【００７０】
「差分フラグ」とは、対応するバージョンの記憶されるデータが差分化されているか否かを表すフラグである。本実施形態では、通常は、対応するアドレスの最後のバージョンを除いて差分フラグはＯＮ（差分化される）である。また、このフラグにより差分化するかどうかを指定することも可能である。
【００７１】
「差分データサイズ」とは、差分化されたデータのサイズである。
「差分データ」とは、データ本体を記憶する部分である。本実施形態では、差分フラグがＯＮのときは次のバージョンとの差分をとったデータが記憶され、差分フラグがＯＦＦのときはそのままのデータが記憶される。本実施形態では、対応するアドレスの最後のバージョンのデータは、必ず差分化されていないデータが記憶される。
【００７２】
なお、データが現実に更新された時刻を知り得る場合には、バージョン情報に更新された時刻を含めても良い。
以下では、本実施形態のバージョン管理装置におけるデータ取得処理の流れについて説明する。
【００７３】
図５は、本バージョン管理装置の処理の流れを示すフローチャートである。
最初にステップＳ１で全体の初期化を行う。例えば、記憶されている情報をクリアする。
【００７４】
次に、ステップＳ２でアドレス記憶部１０３に起点アドレスを記憶させる。前述したように起点アドレスとは、ハイパーメディアデータを順に辿ってデータを取得するとき、起点となるアドレスのことである。起点アドレス記憶時は、アドレス付加情報である取得状態を「未取得」にする。
【００７５】
次のステップＳ３からはループ処理に入る。
ステップＳ３では、アドレス選択部１０４が次に取得すべきデータのアドレスをアドレス記憶部１０３から選択する。
【００７６】
この選択にあたって、指定条件記憶部１５に記憶されている情報を参照する。例えば、アドレス記憶部１０３にアドレスＡが記憶されていたとしても、指定条件記憶部１０５に記憶される取得アドレス範囲にアドレスＡが含まれていないときは、アドレスＡは選択されない。また、指定条件記憶部１０５に、アドレスＢの取得時間間隔が１時間であると指定されていて、アドレス記憶部１０３に記憶されるアドレスＢの以前の取得時刻が現在から１時間より前であったとき、アドレスＢが優先して選択する。
【００７７】
また、例えば、あるアドレスについて、取得予定時刻と取得時間間隔の両方で指定がなされているような場合は、いずれか一方でも条件を満たせば選択する方法、両方の条件を満たした場合に選択する方法、予め定めた方を優先適用し、他方を無視する方法などが考えられる。
【００７８】
なお、指定条件記憶部１０５に特に指定がないときは、まだデータを取得していないアドレスや、以前に行われたデータの取得時間が最も古いアドレスなどが優先して選択される。
【００７９】
また、取得状態が「取得失敗」であり、取得を試みた時刻が最近だった場合などは、そのアドレスを選択されにくいようにしても良い。
ステップＳ４では、ステップＳ３におけるアドレスの選択が成功したか否かを判断する。アドレスの選択に失敗した場合は、指定条件記憶部１０５の指定条件に対して、アドレス記憶部１０３に記憶されているアドレスがすべて選択不可能の状態である。例えば、すべてのアドレスがまだ取得予定時刻に達していない状態などがそれに該当する。そのような場合は、選択可能状態になるまで待機する（ステップＳ５）。
【００８０】
ステップＳ３でのアドレスの選択に成功した場合、ステップＳ６では、選択されたアドレスに対応するデータをデータ取得部１０１により取得する。
ステップＳ７では、データの取得が成功したか否かを判断する。
【００８１】
データの取得に失敗したときは、後でアドレス選択の一条件として利用するために、アドレス記憶部１０３でそのアドレスの取得状態を「取得失敗」とし、失敗理由をエラー番号として書き込む（ステップＳ８）。そして、ステップＳ３に戻る。
【００８２】
一方、ステップＳ３でのデータの取得に成功したときは、ステップＳ９に進む。
ステップＳ９では、アドレス記憶部１０３において、対応するアドレスのアドレス付加情報を更新する。具体的には、取得状態を「取得成功」とし、その他にデータ取得時刻、データ取得所要時間などを記憶させる。
【００８３】
次のステップＳ１０では、ステップＳ６で取得したデータを、バージョン情報を付加してデータ記憶部１６に記憶する。なお、前述したように本実施形態では、前バージョンのデータを現バージョンのデータとの差分で置き換えて、現バージョンのデータをそのまま記憶させている。ここで、差分の計算自体は、従来の技術（ＵＮＩＸにおけるｄｉｆｆコマンドなど）を用いることで可能である。なお、前のバージョンのデータとの差分がなかったとき、すなわち変化がなかったときは、取得時間等のバージョン情報は記憶させるが、バージョン番号は変化させないものとする。
【００８４】
次のステップＳ１１では、ステップＳ６で取得したデータにアンカーとして埋め込まれているアドレスを抽出し、指定条件記憶部１０５に記憶される指定条件を参照して、抽出されたアドレスのうちから該指定条件を満足するものを選択し、選択されたアドレスをアドレス記憶部１０３に記憶させる。例えば、指定条件記憶部１０５に取得アドレス範囲が記憶されていたときは、抽出されたアドレスの中からその範囲に含まれるアドレスのみを選択し、アドレス記憶部１０３に記憶させる。指定条件記憶部１０５に特に関係する指定条件がないときは、そのまますべてを記憶させる。なお、記憶させるにあたって対応するアドレスの取得状態を「未取得」とする。また、アドレス記憶部１０３に同一のアドレスがすでに記憶されているときは、該アドレスについては新たに変更等は行わない。
【００８５】
この後、ステップＳ３に戻り、ループ処理を繰り返す。
以上が各ハイパーメディアデータを取得し、バージョンを付加して記憶させるための手続である。
【００８６】
以上のように本実施形態によれば、取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスにより指し示されるハイパーメディアデータを抽出して連鎖的に取得対象としていくので、バージョン管理すべきハイパーメディアデータのアドレスすべてを指定することなく一部のアドレスを指定するだけで次々にハイパーメディアデータを取得することができるとともに、所定のタイミングで繰り返し各ハイパーメディアデータを取得することができ、各タイミングで取得された各ハイパーメディアデータについてのバージョン管理が可能となる。
【００８７】
これにより、各ハイパーメディアデータについて様々なバージョンの検索が可能となる。
次に、図１のバージョン管理装置に付加する検索サービス装置の一実施形態について説明する。
【００８８】
本実施形態では、テキストデータを検索の対象として説明するが、本発明はテキストデータに限定されず、例えば、静止画や音声など他のメディアデータについてパターンマッチング法など従来の技術を利用して検索対象にすることも可能である。
【００８９】
本実施形態では、検索の前段階として、各バージョンのテキストデータからそれに含まれる単語を抽出し、データベース化を行う。そして、検索サービスでは、検索キーとなる単語やバージョン番号の範囲や更新日の範囲などの指定を受け、これらをもとに検索データベースとの間でマッチングを行い、その結果を検索結果とする。
【００９０】
図６は、本実施形態に係る検索サービス装置の構成を示す図である。
本検索部サービス装置は、検索データベース作成部２０２、検索データベース記憶部２０３、検索制御部２０４を備えている。
【００９１】
図６中のデータ記憶部は、図１に示したデータ記憶部１０６である。
検索データベース作成部２０２は、データ記憶部１０６に記憶されるデータから検索用のデータベースを作成する。
【００９２】
検索データベース記憶部２０３は、検索用データベースを記憶する。
検索制御部２０４は、図示しない検索式入力部から入力された検索式に基づき、検索データベース記憶部２０３に記憶されるデータベースを参照して検索を行う。
【００９３】
次に、検索データベース記憶部２０３における記憶構造について説明する。
図７に、検索データベース記憶部２０３における記憶構造の一例を示す。
本実施形態の検索データベースは、単語をキーとしてその単語を含むデータのアドレスとバージョンに関する配列を引く、ハッシュ構造になっている。
【００９４】
図７において、単語（８０１）をキーにして、アドレス（８１１）とバージョン番号（８１２）と付加情報（８１３）を要素とする配列を引く。
アドレスとは、その単語を含むデータのアドレスである。
【００９５】
「バージョン番号」とは、対応するアドレスの中のバージョンを表す番号であり、図４中のバージョン番号７１６に対応している。
「付加情報」とは、最低限必要な検索結果であるアドレスとバージョン番号に加える、付加的な情報を提供するものであり、例えば、更新時刻やそのバージョンのコメントなどである。なお、付加情報に更新時刻を含める場合、現実の更新時刻がわからなければ、前述の取得時刻あるいは記憶時刻で代用しても良い。
【００９６】
次に、本実施形態の検索サービス装置における処理の流れについて説明する。本検索サービス装置においては、大きく２つの処理が存在する。１つは、検索データベースを作成する処理で、もう１つは、実際に検索を行う処理である。
【００９７】
まず、検索データベースの作成について説明する。
検索データベース作成部２０２は、データ記憶部１０６に記憶される各バージョンのデータからメディアのタイプを参照することでテキストデータを選択し、そのデータに対して形態素解析を行う。ここで、形態素解析とは文章をそれを構成する単語に分解することであり、機械翻訳に利用されるなどすでに従来技術として良く知られている。次に、検索データベース作成部２０２は、形態素解析結果に含まれる全単語を抽出し、各単語が含まれるデータに対応するアドレス、バージョン番号、および付加情報を、データ記憶部１０６から参照して検索データベース記憶部２０３に記憶させる。これにより検索データベースが作成される。
【００９８】
次に、外部からの検索要求対応の処理を説明する。
外部からの検索要求は、検索制御部２０４によって処理される。検索要求は、検索キーとなる単語およびバージョン番号の範囲、更新日時の範囲などを検索制御部２０４に与えることでなされる。検索制御部２０４は、検索要求を受けると、まず検索要求に含まれる単語に関して、その単語を含むデータのアドレス、バージョン情報、および付加情報を検索データベース記憶部２０３から取得する。次に、取得した情報から検索要求に含まれるバージョン番号の範囲または更新日時の範囲に該当するものを選択し、それを検索結果として要求元に送る。
【００９９】
以下では、図１の構成と図６の構成を備えるバージョン管理装置の一例と、その利用例について説明する。
図８に、図１の構成と図６の構成を備えるバージョン管理装置２の構成を示す。
【０１００】
本バージョン管理装置２は、バージョン記憶部１０、バージョン管理制御部２０、検索部３０を備えている。
バージョン記憶部１０は、図１のデータ取得部１０１、アドレス抽出部１０２、アドレス記憶部１０３、アドレス選択部１０４、指定条件記憶部１０５、データ記憶部１０６を有する。
【０１０１】
バージョン記憶部１０は、既に説明したような手順で、ハイパーメディアデータ群（図中４）からデータを取得し、バージョン情報を付加してデータ記憶部１０６に記憶する。
【０１０２】
ここで、ハイパーメディアデータ群とは、各データがアドレス付けされたハイパーメディアデータの集合である。例としてはインターネット上のＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）がある。各ハイパーメディアデータは、一般にネットワークを介して分散して配置されている。
【０１０３】
バージョン管理制御部２０は、図１のバージョン管理制御部１０７を有する。バージョン管理制御部２０は、既に説明したような手順で、ユーザの要求により過去のバージョンを取り出したり、異なるバージョン間での比較を行うなど、データのバージョンを管理する。
【０１０４】
検索部３０は、図６の検索データベース作成部２０２、検索データベース記憶部２０３、検索制御部２０４を有する。
検索部３０は、既に説明したような手順で、データ記憶部１０６に記憶されたバージョン情報からデータベースを構成し、ユーザの要求により検索を行う。
【０１０５】
ユーザは、通常、ユーザ端末８から取得したいハイパーメディアデータのアドレスをデータ取得部６に指定することで、ハイパーメディアデータ群から該当データを取得することができる（図８中ａ）。これは、従来の取得方法であり、ハイパーメディアデータは時間的に変化していることから、最新のバージョンのみを取得することができる。
【０１０６】
本実施形態では、ハイパーメディアデータの様々なバージョンを記憶していることから、過去のバージョンを取り出したり、検索したりすることが可能となる。
【０１０７】
本実施形態では、検索部３０自身がハイパーメディアデータと同様なアドレスを持ってるものとする（検索部３０を１つのサーバ装置として扱う）。ユーザは、ユーザ端末８を用いて、検索キーや検索対象となるバージョンなどを検索部３０のアドレスに付加し、データ取得部６に指定する。すると、検索部３０が検索を行い、ユーザはその結果を取得することができる（図８中ｂ）。
【０１０８】
また、本実施形態では、バージョン管理制御部２０自身もハイパーメディアデータと同様なアドレスを持ってるものとする（バージョン管理制御部２０を１つのサーバ装置として扱う）。ユーザは、ユーザ端末８を用いて、取得したいバージョンをバージョン管理制御部２０のアドレスに付加してデータ取得部６に指定することで、そのバージョンのデータを取得することができる（図８中ｃ）。これにより、現在のハイパーメディアデータを閲覧するのと同様に過去のバージョンのデータを閲覧することが可能となる。
【０１０９】
バージョンの指定方法としては、明示的にバージョン番号を指定する方法の他に、日時またはその範囲を指定する方法がある。後者の場合、バージョン管理装置では、指定された日時またはその範囲に該当するデータを提供する。なお、日時で指定された場合、指定された日時と同じ更新時刻（あるいは取得時刻または記憶時刻）の情報を持つものだけではなく、（１）指定された日時以前で最も新しい取得時刻または記憶時刻を持つものも提供する、（２）指定された日時以降で最も古い取得時刻または記憶時刻を持つものも提供する、あるいは（３）上記の（１）と（２）を両方提供するようにしても良い。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１１０】
【発明の効果】
本発明によれば、取得されたハイパーメディアデータにアンカーとして埋め込まれているアドレスにより指し示されるハイパーメディアデータを抽出して連鎖的に取得対象としていくので、バージョン管理すべきハイパーメディアデータのアドレスすべてを指定することなく一部のアドレスを指定するだけで次々にハイパーメディアデータを取得することができるとともに、所定のタイミングで繰り返し各ハイパーメディアデータを取得することができ、各タイミングで取得された各ハイパーメディアデータについてのバージョン管理が可能となる。
これにより、各ハイパーメディアデータについて様々なバージョンの検索が可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るバージョン管理装置の基本構成を示す図
【図２】アドレス記憶部における記憶構造の一例を示す図
【図３】指定条件記憶部における記憶構造の一例を示す図
【図４】データ記憶部における記憶構造の一例を示す図
【図５】同実施の形態における処理の流れを示すフローチャートである。処理の流れ図
【図６】検索サービス装置の構成例を示す図
【図７】検索データベース記憶部における記憶構造の一例を示す図
【図８】同実施の形態に係るバージョン管理装置の構成例を示す図
【符号の説明】
２…バージョン管理装置
４…ハイパーメディアデータ群
８…ユーザ端末
１０…バージョン記憶部
２０…バージョン管理制御部
３０…検索部
１０１…データ取得部
１０２…アドレス抽出部
１０３…アドレス記憶部
１０４…アドレス選択部
１０５…指定条件記憶部
１０６…データ記憶部
１０７…バージョン管理制御部
２０２…検索データベース作成部
２０３…検索データベース記憶部
２０４…検索制御部
【図１】
0003761982.tif 000002
【図２】
0003761982.tif 000003
【図３】
0003761982.tif 000004
【図４】
0003761982.tif 000005
【図５】
0003761982.tif 000006
【図６】
0003761982.tif 000007
【図７】
0003761982.tif 000008
【図８】
0003761982.tif 000009