(57)【要約】【課題】複数の識別子に関連するデータの可視化処理を効率化する。【解決手段】記憶部１１は、出力するデータ項目１５ｂを示す出力定義文と、指定される識別子を示すパラメータ１３ａを用いて当該指定される識別子とデータ項目１５ｂとの間の関係を記載した検索条件文と、を含むクエリテンプレート１３を記憶する。処理部１２は、複数の識別子が指定された場合に、取り得る値の範囲が当該複数の識別子の集合である変数１４ａを定義してパラメータ１３ａを変数１４ａに置換すると共に、変数１４ａの値に応じたデータ項目１５ａを出力定義文に追加することで、クエリ１４を生成する。処理部１２は、クエリ１４に基づいて検索されたデータ項目１５ａ，１５ｂを含む検索結果データ１５を取得し、検索結果データ１５を視覚的情報１６に変換して表示させる。【選択図】図１
2018124728.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
出力する１以上のデータ項目を示す出力定義文と、指定される識別子を示すパラメータを用いて前記指定される識別子と前記１以上のデータ項目との間の関係を記載した検索条件文と、を含むクエリテンプレートを取得し、
複数の識別子が指定された場合に、取り得る値の範囲が前記複数の識別子の集合である変数を前記検索条件文の中に定義して前記パラメータを前記変数に置換すると共に、前記変数の値に応じた他のデータ項目を前記出力定義文に追加することで、前記クエリテンプレートと前記複数の識別子とに基づくクエリを生成し、
前記クエリに基づいて検索された前記１以上のデータ項目と前記他のデータ項目とを含む検索結果データを取得し、前記検索結果データを視覚的情報に変換して表示させる、
処理を実行させる表示プログラム。
【請求項２】
前記コンピュータに更に、
指定された識別子の個数を判定し、
単一の識別子が指定された場合、前記パラメータを前記単一の識別子に置換することで、前記クエリテンプレートと前記単一の識別子とに基づく他のクエリを生成する、
処理を実行させる請求項１記載の表示プログラム。
【請求項３】
前記クエリテンプレートは、前記検索条件文に適合する複数のデータレコードをグループ化して前記出力定義文とマッチングすることを示すグループ定義文を更に含み、
前記クエリの生成では、前記変数の値が異なるデータレコードは異なるグループに分類されるように前記グループ定義文を修正する、
請求項１記載の表示プログラム。
【請求項４】
前記検索結果データから変換される前記視覚的情報は、前記複数の識別子に対応する複数のグラフが重ね合わされた単一のグラフである、
請求項１記載の表示プログラム。
【請求項５】
コンピュータが実行する表示方法であって、
出力する１以上のデータ項目を示す出力定義文と、指定される識別子を示すパラメータを用いて前記指定される識別子と前記１以上のデータ項目との間の関係を記載した検索条件文と、を含むクエリテンプレートを取得し、
複数の識別子が指定された場合に、取り得る値の範囲が前記複数の識別子の集合である変数を前記検索条件文の中に定義して前記パラメータを前記変数に置換すると共に、前記変数の値に応じた他のデータ項目を前記出力定義文に追加することで、前記クエリテンプレートと前記複数の識別子とに基づくクエリを生成し、
前記クエリに基づいて検索された前記１以上のデータ項目と前記他のデータ項目とを含む検索結果データを取得し、前記検索結果データを視覚的情報に変換して表示させる、
表示方法。
【請求項６】
出力する１以上のデータ項目を示す出力定義文と、指定される識別子を示すパラメータを用いて前記指定される識別子と前記１以上のデータ項目との間の関係を記載した検索条件文と、を含むクエリテンプレートを記憶する記憶部と、
複数の識別子が指定された場合に、取り得る値の範囲が前記複数の識別子の集合である変数を前記検索条件文の中に定義して前記パラメータを前記変数に置換すると共に、前記変数の値に応じた他のデータ項目を前記出力定義文に追加することで、前記クエリテンプレートと前記複数の識別子とに基づくクエリを生成し、前記クエリに基づいて検索された前記１以上のデータ項目と前記他のデータ項目とを含む検索結果データを取得し、前記検索結果データを視覚的情報に変換して表示させる処理部と、
を有する表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は表示プログラム、表示方法および表示装置に関する。
【背景技術】
【０００２】
ユーザが閲覧するＷｅｂページを動的に生成する技術として、ダイナミックパブリッシングと呼ばれる技術がある。ダイナミックパブリッシングは、ダイナミックセマンティックパブリッシング、動的配信システム、データ駆動型コンテンツサービスなど様々な名称で呼ばれることがある。ダイナミックパブリッシングでは、最終的な表示画面を静的ファイルとして保持するのではなく、テンプレートを用意しておき、それに指定された具体的なデータを適用することで、グラフやピンを埋め込んだ地図、データを埋め込んだ一覧表などの表示画面を動的に生成することができる。このために、ユーザの要求に応じてデータベースから関連するデータを抽出し、抽出したデータを可視化する仕組みが構築される。
【０００３】
ダイナミックパブリッシングを実現するプログラムの少なくとも一部は、Ｗｅｂページを表示するクライアント上で実行されることがある。例えば、クライアントは、Ｗｅｂサーバからプログラムファイル（スクリプトファイルなど）をダウンロードする。プログラムファイルには、データファイルの中からユーザの入力に応じたデータを検索する検索モジュールや、検索されたデータを加工して可視化コンテンツを生成する可視化モジュールなどが含まれる。クライアントは、ユーザの入力に応じてプログラムモジュールを呼び出して、必要なデータを検索して取り出し、そのデータを使って可視化コンテンツを動的に生成する。生成された可視化コンテンツはレンダリングされてＷｅｂページとして表示される。
【０００４】
なお、無線端末に対してマルチメディア機能を提供するパブリッシングシステムが提案されている。提案のパブリッシングシステムでは、サーバがシーン記述データに基づいてアプリケーションデータを動的に生成して無線端末に送信する。アプリケーションデータは、コンテンツデータ、レイアウトデータおよび制御ロジックデータを含む。無線端末は、イベントに応答して、受信したアプリケーションデータを用いて表示を制御する。
【０００５】
また、Ｗｅｂサイトの階層構造に基づいて動的にナビゲーションリンクを生成する統合ナビゲーションシステムが提案されている。
また、メモリコピーの処理コストを低減させるＷｅｂアプリケーションサーバが提案されている。提案のＷｅｂアプリケーションサーバは、スクリプトプログラムを実行しているとき、他のファイルのデータを埋め込む命令を検出する。当該命令を検出すると、Ｗｅｂアプリケーションサーバは、その段階では当該他のファイルのデータを読み込まずに当該他のファイルの識別情報を記録しておく。Ｗｅｂアプリケーションサーバは、スクリプトプログラムによって生成されたＨＴＭＬ（HyperText Markup Language）ファイルと併せて、上記の識別情報が示す他のファイルをクライアントに送信する。
【０００６】
また、複数のデータベースを仮想的に統合した仮想データベースの機能をクライアントに対して提供する仮想データベースシステムが提案されている。提案の仮想データベースシステムは、クライアントから認識される仮想データベースのスキーマと、複数のデータベースのスキーマと、両者を変換するマッピングルールとを記憶する。仮想データベースシステムは、クライアントから受信した仮想クエリを、マッピングルールに基づいて複数のデータベースに対するクエリに変換し、それら複数のデータベースに送信する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００３／０５２６２６号
【特許文献２】特開２００６−１０７４２９号公報
【特許文献３】特開２００９−２８９１５３号公報
【特許文献４】特開２０１４−２４１０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
典型的なダイナミックパブリッシングでは、ユーザが１つのデータ要素（エンティティと呼ぶことがある）の識別子を指定する。すると、検索モジュールが当該１つの識別子に関連するデータを検索し、可視化モジュールが当該１つの識別子に対応する可視化コンテンツを生成する。例えば、データファイルに都市と年度と人口の関係が記載されているとする。この場合に、ユーザが「東京」の識別子を指定すると、東京の各年度の人口が検索されて東京の人口変化を示すグラフが生成される。また、ユーザが「大阪」の識別子を指定すると、大阪の各年度の人口が検索されて大阪の人口変化を示すグラフが生成される。
【０００９】
ここで、ユーザは複数の識別子に関連するデータを視覚的に比較したいことがある。このとき、複数の識別子に対応する複数の可視化コンテンツを並べて表示するよりも、これら複数の可視化コンテンツが統合された単一の可視化コンテンツを表示する方が好ましいことがある。例えば、東京の人口変化を示すグラフと大阪の人口変化を示すグラフと名古屋の人口変化を示すグラフの３つを並べて表示するよりも、東京と大阪と名古屋の３都市の人口変化を重ねて表した単一のグラフを表示した方が好ましいことがある。
【００１０】
しかし、ユーザが指定する識別子の組み合わせや識別子の個数には様々なバリエーションが考えられる。よって、ユーザが複数の識別子を指定する場合において、どのようにすれば単一の可視化コンテンツを生成する仕組みを効率的に実現できるかが問題となる。
【００１１】
１つの方法としては、ユーザが指定した個々の識別子毎に検索モジュールを呼び出して複数の識別子に対応する複数の検索結果を取得し、それら複数の検索結果を統合して可視化モジュールに入力するデータを生成する方法が考えられる。しかしながら、この方法では、検索モジュールの呼び出し回数の増加や検索結果の事後的な統合によってデータ抽出の負荷が高くなり遅延時間が大きくなるおそれがある。
【００１２】
１つの側面では、本発明は、複数の識別子に関連するデータの可視化処理を効率化する表示プログラム、表示方法および表示装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
１つの態様では、コンピュータに以下の処理を実行させる表示プログラムが提供される。出力する１以上のデータ項目を示す出力定義文と、指定される識別子を示すパラメータを用いて指定される識別子と１以上のデータ項目との間の関係を記載した検索条件文と、を含むクエリテンプレートを取得する。複数の識別子が指定された場合に、取り得る値の範囲が複数の識別子の集合である変数を検索条件文の中に定義してパラメータを変数に置換すると共に、変数の値に応じた他のデータ項目を出力定義文に追加することで、クエリテンプレートと複数の識別子とに基づくクエリを生成する。クエリに基づいて検索された１以上のデータ項目と他のデータ項目とを含む検索結果データを取得し、検索結果データを視覚的情報に変換して表示させる。
【００１４】
また、１つの態様では、コンピュータが実行する表示方法が提供される。また、１つの態様では、記憶部と処理部とを有する表示装置が提供される。
【発明の効果】
【００１５】
１つの側面では、複数の識別子に関連するデータの可視化処理が効率化される。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の表示装置の例を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】クライアント装置のハードウェア例を示すブロック図である。
【図４】クライアント装置の機能例を示すブロック図である。
【図５】ＲＤＦデータを表すグラフ例を示す図である。
【図６】ＲＤＦデータの記載例を示す図である。
【図７】クエリテンプレートの例を示す図である。
【図８】第１のクエリおよび第１の検索結果の例を示す図である。
【図９】第２のクエリおよび第２の検索結果の例を示す図である。
【図１０】検索結果を可視化したグラフの表示例を示す図である。
【図１１】動的可視化の手順例を示すフローチャートである。
【図１２】動的可視化の手順例を示すフローチャート（続き）である。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１８】
図１は、第１の実施の形態の表示装置の例を示す図である。
第１の実施の形態の表示装置１０は、テキストデータなどの非図形的データからグラフや地図などの図形的データを可視化結果として動的に生成して表示させる。表示装置１０は、ユーザが操作する端末装置であってもよいし、端末装置からの要求に応じて図形的データを生成して端末装置に送信するサーバ装置であってもよい。
【００１９】
表示装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の記憶装置、または、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性の記憶装置である。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリに記憶されたプログラムを実行する。例えば、プロセッサは表示プログラムを実行する。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００２０】
記憶部１１は、クエリテンプレート１３を記憶する。クエリテンプレート１３は、可視化に使用するデータをデータベースから検索するクエリ（検索要求文）を生成するためのテンプレート（雛形）である。クエリテンプレート１３は、１つの識別子に着目して当該１つの識別子に関連するデータを検索することを想定して作成されている。
【００２１】
クエリテンプレート１３は、出力定義文と検索条件文とを含む。出力定義文は、出力する１以上のデータ項目を定義する。図１の例では、変数「？ｖａｌｕｅ」を用いてデータ項目１５ｂが定義されている。検索条件文は、指定される１つの識別子を示すパラメータ１３ａ（引数）を用いて、当該指定される識別子と出力定義文に定義されたデータ項目１５ｂとの間の関係を記載している。検索条件部は、データ項目１５ｂに該当するデータの条件を示していると言うこともできる。パラメータ１３ａは、指定される識別子を埋め込むべき位置に「％ＵＲＩ％」などの所定の文字列として表記されている。図１の例では、指定される識別子と「ｅｘ：ｈａｓＶａｌｕｅ」という関係をもつデータが変数「？ｖａｌｕｅ」の値としてデータベースから抽出されることになる。
【００２２】
処理部１２は、１以上の識別子を受け付ける。受け付ける識別子は、データベース内のデータ単位を識別するものであり、例えば、ＵＲＩ（Uniform Resource Identifier）やＩＲＩ（Internationalized Resource Identifier）である。識別子は、例えば、ユーザから指定される。１以上の識別子を受け付けることは、当該１以上の識別子に関連するデータをデータベースから検索して可視化する要求を受け付けることに相当する。
【００２３】
１つの識別子のみを受け付けた場合、処理部１２は、クエリテンプレート１３のパラメータ１３ａを当該１つの識別子に置換したクエリを生成すればよい。これにより、検索条件は「＜ｕｒｉ＞  ｅｘ：ｈａｓＶａｌｕｅ  ？ｖａｌｕｅ」のようになる。処理部１２は、このクエリに基づいて、指定された１つの識別子に関する検索結果データを取得することができる。データベースのデータは、例えば、ＲＤＦ（Resource Description Framework）に従って記述されている。クエリは、例えば、ＳＰＡＲＱＬ（SPARQL Protocol and RDF Query Language）によって記述される。処理部１２は、１つの識別子に関する検索結果データを、当該１つの識別子に関するグラフなどの視覚的情報に変換して表示させることができる。一方、複数の識別子を受け付けた場合、処理部１２は、クエリテンプレート１３をそのまま使用しても複数の識別子に関連するデータを１回で検索することはできない。そこで、処理部１２は、以下のようにしてクエリ１４を生成する。
【００２４】
処理部１２は、クエリテンプレート１３と指定された複数の識別子とに基づいてクエリ１４を生成する。このとき、処理部１２は、取り得る値の範囲が複数の識別子の集合となるような変数１４ａを、クエリ１４の検索条件文の中に定義する。図１の例では、「＜ｕｒｉ１＞」と「＜ｕｒｉ２＞」と「＜ｕｒｉ３＞」の３つの識別子の何れかを取る新たな変数「？ｕｒｉ」が定義されている。変数１４ａの名称は、クエリテンプレート１３の中で使用されていない名称であればよい。また、処理部１２は、検索条件文の中のパラメータ１３ａを変数１４ａに置換する。例えば、処理部１２は、３つの識別子が指定されると、「ＶＡＬＵＥＳ（？ｕｒｉ）｛（％ＵＲＩ１％）（％ＵＲＩ２％）（％ＵＲＩ３％）｝のように、取り得る値が３つ存在する変数「？ｕｒｉ」を定義する。また、処理部１２は、この変数を用いて、検索条件を「？ｕｒｉ  ｅｘ：ｈａｓＶａｌｕｅ  ？ｖａｌｕｅ」のように変更する。処理部１２は、「％ＵＲＩ１％」と「％ＵＲＩ２％」と「％ＵＲＩ３％」を具体的な識別子に置換することで、クエリ１４を生成できる。
【００２５】
また、処理部１２は、出力されるデータが複数の識別子のうちの何れの識別子に関するデータであるか判別できるように、変数１４ａの値に応じたデータ項目１５ａが検索結果に含まれるよう変数を出力定義文に追加する。データ項目１５ａとして出力する値は、識別子自体でもよいし当該識別子と所定の関係をもつ値でもよい。すなわち、出力定義文に追加する変数は、指定された識別子を示す変数「？ｕｒｉ」でもよいし、「？ｕｒｉ」に依存する別の変数でもよい。
【００２６】
処理部１２は、クエリ１４に基づいて検索結果データ１５を取得する。検索結果データ１５は、クエリ１４が示す検索条件に適合する複数のレコードを含み、各レコードはデータ項目１５ａ，１５ｂを含む。検索結果データ１５は、論理的にはテーブル構造をもつ。処理部１２は、例えば、クエリ１４に適合するレコードをデータベースから抽出する。データベースは表示装置１０が有していてもよいし表示装置１０の外部に存在してもよい。
【００２７】
検索結果データ１５は、複数の識別子に関連するデータを別個に検索した場合に得られる複数の検索結果データを統合したものに相当する。例えば、検索結果データ１５は、（ｕｒｉ１，１０），（ｕｒｉ２，２０），（ｕｒｉ３，３０）という３つのレコードを含む。１つ目のレコードの「１０」は、クエリテンプレート１３のパラメータ１３ａに「＜ｕｒｉ１＞」を代入することで検索されるデータである。２つ目のレコードの「２０」は、クエリテンプレート１３のパラメータ１３ａに「＜ｕｒｉ２＞」を代入することで検索されるデータである。３つ目のレコードの「３０」は、クエリテンプレート１３のパラメータ１３ａに「＜ｕｒｉ３＞」を代入することで検索されるデータである。
【００２８】
処理部１２は、検索結果データ１５を視覚的情報１６に変換して表示させる。視覚的情報１６は、グラフや地図など図形的要素を含む可視化コンテンツである。例えば、視覚的情報１６は、複数の識別子に対応する複数の折れ線や複数の棒など、複数の識別子に対応する複数の図形的要素を含む。視覚的情報１６は、複数の識別子に関連するデータを別個に可視化した場合に得られる複数の可視化結果を重ね合わせたものに相当する。検索結果データ１５は複数の識別子に関するデータを区別可能な形式で含んでいるため、処理部１２は、複数の識別子の可視化結果を重ね合わせた単一のグラフや単一の地図などを検索結果データ１５から生成することが可能である。
【００２９】
第１の実施の形態の表示装置１０によれば、複数の識別子が指定された場合、取り得る値の範囲が識別子の集合である変数１４ａが定義されてパラメータ１３ａが変数１４ａに置換されると共に、変数１４ａの値に応じたデータ項目１５ａが出力定義文に追加される。このようにして生成されたクエリ１４に基づいて検索された検索結果データ１５が取得され、検索結果データ１５が視覚的情報１６に変換されて表示される。
【００３０】
これにより、単一のグラフや単一の地図などの単一の可視化結果が表示され、複数のグラフや複数の地図などの複数の可視化結果を単純に並べて表示する場合と比べて、複数の識別子の間のデータの比較が容易となる。また、単一の識別子用のクエリテンプレート１３から複数の識別子に対応したクエリ１４が生成される。これにより、クエリ１４を１回実行することで可視化に用いる全てのデータをデータベースから抽出することが可能となり、識別子毎にクエリを実行しなくてよく、検索回数を削減できる。また、事後的に検索結果を統合しなくてよい。よって、検索の負荷を軽減することができる。
【００３１】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００３２】
第２の実施の形態の情報処理システムは、ダイナミックパブリッシングサービスを提供するシステムであり、可視化コンテンツを含むＷｅｂページを動的に生成して表示する。この情報処理システムは、クライアント装置１００およびサーバ装置２００を含む。クライアント装置１００とサーバ装置２００は、ネットワーク３０に接続されている。ネットワーク３０は、例えば、インターネットなどの広域ネットワークである。
【００３３】
クライアント装置１００は、ユーザが使用するクライアントコンピュータである。クライアント装置１００は、ユーザの入力に応じてＷｅｂページを表示するＷｅｂブラウザを実行する。クライアント装置１００は、ネットワーク３０を介してサーバ装置２００にアクセスし、サーバ装置２００から各種のファイルをダウンロードする。ダウンロードされるファイルには、スクリプトプログラムを記載したスクリプトファイルや、データを記載したデータファイルが含まれる。クライアント装置１００は、スクリプトプログラムを実行することでデータを加工し、Ｗｅｂページを動的に生成することができる。
【００３４】
サーバ装置２００は、Ｗｅｂサーバとして機能するサーバコンピュータである。サーバ装置２００は、スクリプトファイルやデータファイルなどの各種のファイルを不揮発性の記憶装置に記憶している。サーバ装置２００は、クライアント装置１００からのアクセスに応じて、要求されたファイルをクライアント装置１００に送信する。ただし、サーバ装置２００は、アクセスに応じてサーバプログラムを実行することで、クライアント装置１００に送信するファイルを動的に生成することもできる。
【００３５】
ここで、第２の実施の形態のダイナミックパブリッシングでは、クライアント装置１００は、テキストデータなどの非図形的データから、グラフや地図や一覧表などの図形要素を含む図形的データを可視化コンテンツとして動的に生成することができる。図形的データの生成は、スクリプトプログラムによって実装される。クライアント装置１００は、図形的データとしてピクセルの集合であるラスター画像（ビットマップ画像）を生成してもよいし、数式などで定義された線の集合であるベクトル画像を生成してもよい。クライアント装置１００は、ダウンロードしたデータファイルの中から可視化に使用するデータを検索し、検索されたデータを可視化コンテンツに変換して表示する。
【００３６】
なお、第２の実施の形態ではクライアント装置１００が可視化コンテンツを生成しているが、サーバ装置２００がサーバプログラムを実行することで可視化コンテンツを動的に生成してクライアント装置１００に提供することも可能である。以下では、クライアント装置１００がスクリプトプログラムを実行することでテキストデータからグラフを生成することを想定して、主にクライアント装置１００の処理について説明する。
【００３７】
図３は、クライアント装置のハードウェア例を示すブロック図である。
クライアント装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。上記ユニットはバスに接続される。サーバ装置２００も、クライアント装置１００と同様のハードウェアを用いて実装できる。
【００３８】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、クライアント装置１００は複数のプロセッサを備えてもよく、以下の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と呼ぶことがある。
【００３９】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、クライアント装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００４０】
ＨＤＤ１０３は、ＯＳ（Operating System）やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、クライアント装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００４１】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、クライアント装置１００に接続されたディスプレイ４１に画像を出力する。ディスプレイ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００４２】
入力信号処理部１０５は、クライアント装置１００に接続された入力デバイス４２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス４２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、クライアント装置１００に複数の種類の入力デバイスが接続されていてもよい。
【００４３】
媒体リーダ１０６は、記録媒体４３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体４３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００４４】
媒体リーダ１０６は、例えば、記録媒体４３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体４３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体４３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００４５】
通信インタフェース１０７は、ネットワーク３０に接続され、ネットワーク３０を介して他のノードと通信を行うインタフェースである。通信インタフェース１０７は、例えば、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースである。ただし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００４６】
図４は、クライアント装置の機能例を示すブロック図である。
クライアント装置１００は、テンプレート記憶部１１１、ＲＤＦデータ記憶部１１２、ＵＲＩコレクション取得部１１３、可視化部１１４，１１４ａ，１１４ｂおよびレンダリング部１１５を有する。テンプレート記憶部１１１およびＲＤＦデータ記憶部１１２は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。ＵＲＩコレクション取得部１１３、可視化部１１４，１１４ａ，１１４ｂおよびレンダリング部１１５は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００４７】
テンプレート記憶部１１１は、データファイルの中から所定条件を満たすデータを検索するときに発行されるクエリの雛形であるクエリテンプレートを記憶する。テンプレート記憶部１１１に記憶されたクエリテンプレートは、可視化部１１４，１１４ａ，１１４ｂによって使用される。第２の実施の形態では、クエリテンプレートで使用されるクエリ言語としてＳＰＡＲＱＬを想定している。テンプレート記憶部１１１に記憶されたクエリテンプレートは、サーバ装置２００からダウンロードされたものである。
【００４８】
ＲＤＦデータ記憶部１１２は、Linked Dataを記載したデータファイルを記憶する。Linked Dataは、エンティティと呼ばれるデータ単位を相互にリンクした構造をもち、エンティティ間の関係を記述したデータである。１つのエンティティは、「都市」や「企業」や「特許出願」などの１つの実体（事物や概念など）に対応しており、ＵＲＩやＩＲＩなどの識別子が付与される。以下の説明では、エンティティの識別子をＵＲＩと呼ぶことがある。ＲＤＦデータ記憶部１１２に記憶されたデータファイルは、可視化部１１４，１１４ａ，１１４ｂによって使用される。第２の実施の形態では、Linked Dataの記述方法としてＲＤＦを想定している。ＲＤＦについては後述する。ＲＤＦデータ記憶部１１２に記憶されたデータファイルは、サーバ装置２００からダウンロードされたものである。
【００４９】
ＵＲＩコレクション取得部１１３は、可視化対象とする１以上のエンティティに対応する１以上のＵＲＩを取得する。ＵＲＩコレクション取得部１１３は、単一のエンティティを示す単一のＵＲＩを取得することもあるし、複数のエンティティの集合（コレクションエンティティシーケンス）を示す複数のＵＲＩを同時に取得することもある。複数のＵＲＩの取得は、複数のエンティティに関するデータを統合して可視化することを示す。
【００５０】
例えば、「東京」の人口変化を可視化したい場合に、「東京」のＵＲＩが取得される。また、「東京」と「大阪」と「名古屋」の人口変化を合わせて可視化したい場合に、「東京」のＵＲＩと「大阪」のＵＲＩと「名古屋」のＵＲＩが取得される。ＵＲＩコレクション取得部１１３は、ユーザから直接的に指定されたＵＲＩを取得することがある。また、ＵＲＩコレクション取得部１１３は、ユーザが指定した条件を満たすエンティティを検索することで、ユーザから間接的に指定されたＵＲＩを取得することもある。例えば、ユーザが「人口１千万以上の都市」という条件を指定した場合、ＵＲＩコレクション取得部１１３は、指定された条件を満たす都市をデータファイルから検索し、検索された都市のＵＲＩをデータファイルから取得するようにしてもよい。
【００５１】
ＵＲＩコレクション取得部１１３は、ＵＲＩを取得すると、可視化部１１４，１１４ａ，１１４ｂなどの複数の可視化部の中から、取得したＵＲＩの種類（例えば、都市を示すＵＲＩや企業を示すＵＲＩなど）に応じた可視化部を選択する。ＵＲＩコレクション取得部１１３は、ＵＲＩの種類と選択する可視化部との対応関係を示す情報を保持している。各可視化部はスクリプトプログラムによって実装されている。使用すべきスクリプトプログラムがクライアント装置１００に存在しない場合、ＵＲＩコレクション取得部１１３は、当該スクリプトプログラムをサーバ装置２００からダウンロードする。そして、ＵＲＩコレクション取得部１１３は、選択した可視化部を呼び出す。
【００５２】
可視化部１１４，１１４ａ，１１４ｂは、ＵＲＩコレクション取得部１１３から１以上のＵＲＩを取得し、可視化コンテンツを生成する。可視化部１１４は、クエリ生成部１２１、検索部１２２、可視化設定部１２３および可視化処理部１２４を有する。他の可視化部も、可視化部１１４と同様のモジュールを有する。
【００５３】
クエリ生成部１２１は、可視化部１１４に対応付けられたクエリテンプレートをテンプレート記憶部１１１から読み出す。所望のクエリテンプレートがテンプレート記憶部１１１に存在しない場合、クエリ生成部１２１は、当該クエリテンプレートをサーバ装置２００からダウンロードする。クエリ生成部１２１は、ＵＲＩコレクション取得部１１３から取得したＵＲＩとクエリテンプレートとに基づいてクエリを生成する。生成されるクエリは、取得したＵＲＩが示すエンティティを基点として、当該エンティティと所定の関係を満たす関連データをデータファイルから抽出するものである。
【００５４】
ここで、クエリ生成部１２１は、ＵＲＩコレクション取得部１１３から単一のＵＲＩを取得したか複数のＵＲＩを取得したかに応じて、異なる方法でクエリを生成する。テンプレート記憶部１１１に記憶されたクエリテンプレートは、単一のエンティティを基点として関連データを検索する方法を規定している。単一のＵＲＩを取得した場合、クエリ生成部１２１は、クエリテンプレートの中の特定位置に当該ＵＲＩを挿入することでクエリを生成する。一方、複数のＵＲＩを取得した場合、クエリ生成部１２１は、複数のＵＲＩに対応する複数のクエリを生成する代わりに、クエリテンプレートを編集することで、複数のエンティティそれぞれを基点として関連データを検索する単一のクエリを生成する。このクエリを実行することで得られる検索結果は、複数のＵＲＩに対応する複数のクエリを個別に実行して得られる複数の検索結果を合成したものに相当する。
【００５５】
検索部１２２は、ＲＤＦデータ記憶部１１２からデータファイルを読み出し、クエリ生成部１２１が生成したクエリを実行する。所望のデータファイルがＲＤＦデータ記憶部１１２に存在しない場合、検索部１２２は、当該データファイルをサーバ装置２００からダウンロードする。検索部１２２は、クエリ生成部１２１から取得したクエリを解釈し、クエリが示す検索条件に該当するデータをデータファイルの中から抽出する。なお、データファイルに記載されたデータは論理的にはグラフ構造（ネットワーク構造）をもつが、検索部１２２によって生成される検索結果は論理的にはテーブル構造（関係構造）をもつ。
【００５６】
可視化設定部１２３は、検索部１２２で実行されたクエリが複数のＵＲＩを指定したクエリである場合、すなわち、検索結果が複数のエンティティの関連データを含む場合、可視化処理部１２４に対して設定（コンフィグレーション）の変更を通知する。コンフィグレーションには、検索結果に含まれる複数のデータ項目（カラム）のうち基点となったエンティティを示すデータ項目の指定など、検索結果に含まれる複数のレコードの分類方法に関する情報が含まれることがある。また、コンフィグレーションには、グラフの凡例を表示するか否かを示すフラグなど、可視化コンテンツの表示形態に関する情報が含まれることがある。なお、可視化処理部１２４の設定の初期値は、検索結果が単一のエンティティの関連データのみを含む場合に適するように与えられている。よって、複数のＵＲＩが取得されなかった場合にはコンフィグレーションを変更しなくてもよい。
【００５７】
可視化処理部１２４は、検索部１２２から検索結果を取得し、取得した検索結果からグラフや地図や一覧表などの図形要素を含む可視化コンテンツを生成する。生成され得るグラフとしては、折れ線グラフ（ラインチャート）、棒グラフ（バーチャート）、バブルチャート、レーダーチャートなどが挙げられる。例えば、可視化処理部１２４は、データ項目として年度と人口を含むテーブル型の検索結果から、横軸を年度とし縦軸を人口とする棒グラフを生成する。可視化処理部１２４が生成する可視化コンテンツの種類は、可視化部１１４が担当するＵＲＩの種類に依存しており、可視化部１１４ａ，１１４ｂなどの他の可視化部が生成する可視化コンテンツの種類と異なってよい。
【００５８】
可視化処理部１２４は、単一のエンティティを基点とした検索結果の可視化と、複数のエンティティを基点とした検索結果の可視化の両方に対応するように、汎用的に実装されている。可視化処理部１２４は、デフォルトの設定に従い、単一のエンティティに関するグラフや地図などの可視化コンテンツを生成することができる。また、可視化処理部１２４は、可視化設定部１２３から通知された設定に従い、複数のエンティティに関するグラフや地図などを重ね合わせた統合型の可視化コンテンツを生成することができる。統合型の可視化コンテンツには、複数のエンティティに対応する複数の折れ線を含む折れ線グラフや、複数のエンティティに対応する複数の棒を横方向に並べるかまたは縦方向に積み上げた棒グラフなどが含まれる。また、統合型の可視化コンテンツには、複数のエンティティに対応する複数の場所をマッピングした地図などが含まれる。
【００５９】
レンダリング部１１５は、何れかの可視化部から可視化コンテンツを取得する。取得する可視化コンテンツには、図形情報や画像情報が含まれることがある。レンダリング部１１５は、取得した可視化コンテンツとＨＴＭＬテンプレートを用いて、可視化コンテンツを表示するＷｅｂページを生成してディスプレイ４１に表示させる。
【００６０】
次に、ＲＤＦデータおよびクエリについて説明する。
図５は、ＲＤＦデータを表すグラフ例を示す図である。
ＲＤＦデータは、ステートメントの集合である。１つのステートメントは、１つの事実を主語と述語と目的語の３つ組（トリプル）として表現する。例えば、「東京の人口は１３００万である」という事実は、主語が「東京」、述語が「人口」、目的語が「１３００万」というトリプルによって表現される。ＲＤＦデータは、主語や目的語に対応するノードと述語に対応するエッジとを含む有向グラフとして表現することが可能である。
【００６１】
一例として、特許出願の書誌事項を記載したＲＤＦデータを考える。このＲＤＦデータを示すグラフは、ノード１３１ａ〜１３１ｇを含む。ノード１３１ａ，１３１ｂはそれぞれ、ある特許出願を示すエンティティに相当する。ノード１３１ａのエンティティは、「ｎｓ２：ＪＰ２００６−ＸＸＸＸ０１」というＵＲＩで識別される（「ｎｓ２」は別途定義された名前空間である）。ノード１３１ｂのエンティティは、「ｎｓ２：ＪＰ２００７−ＸＸＸＸ０３」というＵＲＩで識別される。ノード１３１ｃは、ある企業を示すエンティティに相当する。ノード１３１ｃのエンティティは、「ｎｓ１：ｃｏｍｐａｎｙＡ」というＵＲＩで識別される（「ｎｓ１」は別途定義された名前空間である）。
【００６２】
ノード１３１ｄ〜１３１ｇはそれぞれ、数値や文字列などの固定値（リテラル）を示す。ノード１３１ｄは「２００６」を示す。ノード１３１ｅ，１３１ｇは「Ｇ０６Ｎ３／００  ５６０Ａ」を示す。ノード１３１ｆは「２００７」を示す。
【００６３】
ノード１３１ａとノード１３１ｃは、「ｅｘ：ａｐｐｌｉｃａｎｔ−ｎａｍｅ」という述語で結合されている（「ｅｘ」は別途定義された名前空間である）。これは、「ＪＰ２００６−ＸＸＸＸ０１の出願人はｃｏｍｐａｎｙＡである」という事実を表現している。ノード１３１ａとノード１３１ｄは、「ｅｘ：ａｐｐｌｉｃａｔｉｏｎ−ｙｅａｒ」という述語で結合されている。これは、「ＪＰ２００６−ＸＸＸＸ０１の出願年は２００６年である」という事実を表現している。ノード１３１ａとノード１３１ｅは、「ｅｘ：ｆｉｃｌａｓｓ」という述語で結合されている。これは、「ＪＰ２００６−ＸＸＸＸ０１の技術分類はＧ０６Ｎ３／００  ５６０Ａである」という事実を表現している。
【００６４】
同様に、ノード１３１ｂとノード１３１ｃは、「ｅｘ：ａｐｐｌｉｃａｎｔ−ｎａｍｅ」という述語で結合されている。これは、「ＪＰ２００７−ＸＸＸＸ０３の出願人はｃｏｍｐａｎｙＡである」という事実を表現している。ノード１３１ｂとノード１３１ｆは、「ｅｘ：ａｐｐｌｉｃａｔｉｏｎ−ｙｅａｒ」という述語で結合されている。これは、「ＪＰ２００７−ＸＸＸＸ０３の出願年は２００７年である」という事実を表現している。ノード１３１ｂとノード１３１ｇは、「ｅｘ：ｆｉｃｌａｓｓ」という述語で結合されている。これは、「ＪＰ２００７−ＸＸＸＸ０３の技術分類はＧ０６Ｎ３／００  ５６０Ａである」という事実を表現している。
【００６５】
このように、ＲＤＦデータでは各エンティティにＵＲＩなどの識別子が付与される。１つのエンティティは複数のステートメントの主語になることがある。また、１つのエンティティは複数のステートメントの目的語になることがある。
【００６６】
図６は、ＲＤＦデータの記載例を示す図である。
ＲＤＦデータ１３２は、図５のグラフをＸＭＬ（Extensible Markup Language）を用いてテキストデータとして記述したものである。ＲＤＦデータ１３２は、ＲＤＦデータ記憶部１１２に記憶される。ＲＤＦデータ１３２では、「ｒｄｆ：Ｄｅｓｃｒｉｐｔｉｏｎ」というタグが１つの主語に相当する。主語に相当するタグの直下にある「ｅｘ：ａｐｐｌｉｃａｎｔ−ｎａｍｅ」、「ｅｘ：ａｐｐｌｉｃａｔｉｏｎ−ｙｅａｒ」および「ｅｘ：ｆｉｃｌａｓｓ」というタグがそれぞれ述語に相当する。タグ「ｅｘ：ａｐｐｌｉｃａｎｔ−ｎａｍｅ」に含まれる属性「ｒｄｆ：ｒｅｓｏｕｒｃｅ」が目的語に相当する。また、タグ「ｅｘ：ａｐｐｌｉｃａｔｉｏｎ−ｙｅａｒ」の直下にある数値が目的語に相当する。また、タグ「ｅｘ：ｆｉｃｌａｓｓ」の直下にある文字列が目的語に相当する。ＲＤＦデータ１３２は、このような階層的なタグ構造によって、複数の特許出願それぞれの書誌事項を記述している。
【００６７】
図７は、クエリテンプレートの例を示す図である。
クエリテンプレート１３３は、ＲＤＦデータ１３２からデータを検索するためのクエリ（検索要求文）の生成に用いられるテンプレートである。クエリテンプレート１３３は、テンプレート記憶部１１１に記憶される。クエリテンプレート１３３は、１つのエンティティのＵＲＩをパラメータとして受け付け、当該１つのエンティティを基点として関連データを検索することを想定して作成されている。ここでは、１つの企業を示すエンティティのＵＲＩをパラメータとして受け付け、当該企業の特許出願に関するデータを検索することを想定している。クエリテンプレート１３３ではパラメータが「％ＵＲＩ％」として表記されている。この文字列を１つのＵＲＩに置換することで、当該１つのＵＲＩに関連するデータを検索するクエリを生成することができる。
【００６８】
クエリテンプレート１３３は、検索条件を示す条件部と、検索条件に合致するデータのグループ化方法を示すグループ化部と、検索結果の出力形式を示す出力部とを含む。クエリテンプレート１３３には、パラメータ以外に３つの変数が使用されている。「？ｙｅａｒ」は年を示す変数である。「？ｉｄ」は特許出願を示す変数である。「？ｖａｌｕｅ」は特許出願の件数を示す変数である。条件部は、「？ｉｄ」の出願人が「％ＵＲＩ％」であり、「？ｉｄ」の出願年が「？ｙｅａｒ」であり、「？ｉｄ」の技術分類が「Ｇ０６Ｎ３／００  ５６０Ａ」であるという検索条件を示している。この検索条件では、出願人と技術分類が所与であり、特許出願と出願年が不定である。この検索条件に合致する特許出願と出願年の組がＲＤＦデータ１３２から抽出されることになる。
【００６９】
また、グループ化部は、グループ化に使用する変数として「？ｙｅａｒ」を指定している。すなわち、グループ化部は、検索条件に合致する特許出願と出願年の組を、出願年でグループ化することを示している。また、出力部は、検索結果の各レコードが有するデータ項目（カラム）として「？ｙｅａｒ」と「？ｖａｌｕｅ」を指定している。「？ｖａｌｕｅ」の値は、出願年毎に特許出願の件数をカウントしたものである。これにより、出願年と特許出願件数をデータ項目にもつテーブル形式の検索結果が生成される。すなわち、クエリテンプレート１３３は、出願人が「％ＵＲＩ％」であり技術分類が「Ｇ０６Ｎ３／００  ５６０Ａ」である特許出願の各年の件数を検索することを示している。
【００７０】
図８は、第１のクエリおよび第１の検索結果の例を示す図である。
クエリ１３４は、クエリテンプレート１３３のパラメータ部である「％ＵＲＩ％」を、１つの企業を示すＵＲＩである「＜ｎｓ１：ｃｏｍｐａｎｙＡ＞」に置換することで生成したものである。クエリ１３４は、出願人が「ｃｏｍｐａｎｙＡ」であり技術分類が「Ｇ０６Ｎ３／００  ５６０Ａ」である特許出願の各年の件数を検索することを示している。クエリ１３４を実行することで、検索結果１３５が生成される。検索結果１３５は、出願年を示す「ｙｅａｒ」と出願件数を示す「ｖａｌｕｅ」とをデータ項目として含む。検索結果１３５は、例えば、２００６年の出願件数が１０件、２００７年の出願件数が１３件、２００８年の出願件数が２０件というレコードを含む。
【００７１】
このように、基点となるエンティティが１つである場合、クエリテンプレート１３３のパラメータ部を単一のＵＲＩに置換して実行すればよい。一方、基点となるエンティティが複数ある場合、クエリテンプレート１３３は複数のエンティティを基点とした検索に対応していないため、クエリテンプレート１３３を変換することになる。
【００７２】
図９は、第２のクエリおよび第２の検索結果の例を示す図である。
クエリ１３６は、複数の企業についての特許出願の各年の件数を１回で検索することができるように、クエリテンプレート１３３を変形して生成したクエリである。クエリ１３６には、クエリテンプレート１３３で使用されていなかった新たな変数「？ａｐｐｌｉｃａｎｔ」が追加されている。「？ａｐｐｌｉｃａｎｔ」は、その取り得る値の範囲（値域）が、指定されたＵＲＩの集合となる変数である。ここでは、「？ａｐｐｌｉｃａｎｔ」の値は、「＜ｎｓ１：ｃｏｍｐａｎｙＡ＞」、「＜ｎｓ１：ｃｏｍｐａｎｙＢ＞」および「＜ｎｓ１：ｃｏｍｐａｎｙＣ＞」の３つのＵＲＩの中から選択される。
【００７３】
条件部には、この新たな変数を定義する変数定義文が追加されている。また、条件部に記載された「％ＵＲＩ％」が「？ａｐｐｌｉｃａｎｔ」に置換されている。よって、クエリ１３６の条件部によれば、検索条件に合致する出願人と出願件数と出願年の組がＲＤＦデータ１３２から抽出される。また、グループ化部には、グループ化に使用する変数として「？ａｐｐｌｉｃａｎｔ」が追加されている。よって、クエリ１３６のグループ化部によれば、検索条件に合致する出願人と特許出願と出願年の組を、出願人と出願年の組でグループ化することになる。また、出力部には、検索結果の各レコードが有するデータ項目として「？ａｐｐｌｉｃａｎｔ」が追加されている。よって、クエリ１３６の出力部によれば、出願人と出願年と特許出願件数をデータ項目にもつ検索結果が生成される。
【００７４】
すなわち、クエリ１３６は、出願人が３つのエンティティの何れかであり技術分類が「Ｇ０６Ｎ３／００  ５６０Ａ」である特許出願について、出願人と出願年の組毎の件数を検索することを示している。基準となるエンティティを示す変数をグループ化部に追加しているのは、異なるエンティティに関するデータが合算されないようにするためである。ここでは、グループ化部に「？ａｐｐｌｉｃａｎｔ」を追加することで、３つの出願人の出願件数が合算されないようにしている。また、基準となるエンティティを示す変数を出力部に追加しているのは、検索結果に含まれる複数のレコードがそれぞれ何れのエンティティに関するレコードであるか区別できるようにするためである。ここでは、１回の検索結果の中に３つの出願人の出願件数が混在することになるため、出力部に「？ａｐｐｌｉｃａｎｔ」を追加することで出願人を区別できるようにしている。
【００７５】
クエリ１３６を実行することで、検索結果１３７が生成される。検索結果１３７は、出願人を示す「ａｐｐｌｉｃａｎｔ」と出願年を示す「ｙｅａｒ」と出願件数を示す「ｖａｌｕｅ」とをデータ項目として含む。例えば、検索結果１３７は、ｃｏｍｐａｎｙＡの２００６年の出願件数が１０件、ｃｏｍｐａｎｙＢの２００６年の出願件数が１２件、ｃｏｍｐａｎｙＣの２００６年の出願件数が１３件というレコードを含む。また、検索結果１３７は、ｃｏｍｐａｎｙＡの２００７年の出願件数が１３件、ｃｏｍｐａｎｙＢの２００７年の出願件数が７件、ｃｏｍｐａｎｙＣの２００７年の出願件数が２０件というレコードを含む。また、検索結果１３７は、ｃｏｍｐａｎｙＡの２００８年の出願件数が２０件、ｃｏｍｐａｎｙＢの２００８年の出願件数が２１件、ｃｏｍｐａｎｙＣの２００８年の出願件数が５件というレコードを含む。なお、クエリ１３６は、検索結果１３７のレコードを出願年の昇順にソートすることを示している。
【００７６】
クエリ１３６を生成するにあたり、クエリ生成部１２１は、クエリテンプレート１３３からパラメータ部とグループ化部と出力部を検出することになる。クエリ生成部１２１は、クエリテンプレート１３３を構文解析（パージング）してもよいし、パターンマッチングによりこれら３つの部位を探してもよい。パラメータ部は、「％ＵＲＩ％」など、テンプレート記述言語によって予め決められた文字列である。グループ化部は、通常、「ＧＲＯＵＰ  ＢＹ」に続く１つの変数または２以上の変数の列である。出力部は、通常、「ＳＥＬＥＣＴ」と「ＷＨＥＲＥ」に挟まれた１つの変数または２以上の変数の列である。ただし、クエリテンプレートによっては「ＷＨＥＲＥ」が無い場合もある。
【００７７】
なお、上記のクエリ１３６では指定されたＵＲＩを示す変数を出力部に追加しているが、指定されたＵＲＩと関連する値を取る他の変数を出力部に追加するようにしてもよい。これにより、検索結果１３７の可読性が向上することがある。例えば、基点となるエンティティとリンクされた他のエンティティまたは他のリテラルを示す他の変数を条件部に定義し、当該他の変数を出力部に追加することが考えられる。「？ａｐｐｌｉｃａｎｔ  ｅｘ：ｌａｂｅｌ  ？ａｐｐｌｉｃａｎｔ−ｌａｂｅｌ」のように変数「？ａｐｐｌｉｃａｎｔ−ｌａｂｅｌ」を定義して出力部に追加することが考えられる。これにより、基点となるエンティティのＵＲＩに代えてそのラベル（略称など）が出力される。
【００７８】
また、上記のクエリ１３６では指定されたＵＲＩを示す変数そのものを出力部に追加しているが、指定されたＵＲＩを加工して得られる値を取る他の変数を出力部に追加するようにしてもよい。例えば、指定されたＵＲＩと他の文字列とを結合した値を取る他の変数を出力部に追加することが考えられる。「ＣＯＮＣＡＴ（ｓｔｒ（？ａｐｐｌｉｃａｎｔ），ｓｔｒ（？ｙｅａｒ））  ＡＳ  ？ｎｅｗｌａｂｅｌ」のように変数「？ｎｅｗｌａｂｅｌ」を定義して出力部に追加することが考えられる。「？ｎｅｗｌａｂｅｌ」の値は、企業を示すＵＲＩと出願年とを連結した文字列となる。また、上記を組み合わせて、指定されたＵＲＩと関連する値を加工して得られる値を取る他の変数を定義してもよい。
【００７９】
図１０は、検索結果を可視化したグラフの表示例を示す図である。
クエリ１３４が実行された場合、例えば、可視化処理部１２４によってグラフ１４１が生成される。グラフ１４１は、「ｃｏｍｐａｎｙＡ」の特許出願件数の時系列変化を示す折れ線グラフである。グラフ１４１の横軸は出願年を示し、縦軸は出願件数を示す。「ｃｏｍｐａｎｙＢ」についてクエリ１３４と同様のクエリが実行された場合、グラフ１４２が生成される。また、「ｃｏｍｐａｎｙＣ」についてクエリ１３４と同様のクエリが実行された場合、グラフ１４３が生成される。グラフ１４１〜１４３はそれぞれ、１つのエンティティを基点とする検索結果から生成された可視化コンテンツである。
【００８０】
これに対し、クエリ１３６が実行された場合、例えば、可視化処理部１２４によってグラフ１４４が生成される。グラフ１４４は、「ｃｏｍｐａｎｙＡ」と「ｃｏｍｐａｎｙＢ」と「ｃｏｍｐａｎｙＣ」の３つの企業の特許出願件数の時系列変化を示す折れ線グラフである。グラフ１４１〜１４３と同様、グラフ１４４の横軸は出願年を示し、縦軸は出願件数を示す。グラフ１４４は、グラフ１４１〜１４３の折れ線を重ね合わせたグラフに相当する。３つの折れ線と３つのエンティティとの間の対応関係を示すため、グラフ１４４には凡例が追加されている。グラフ１４４は、３つのエンティティを基点とする検索結果から生成された統合型の可視化コンテンツである。
【００８１】
次に、クライアント装置１００の処理手順について説明する。
図１１は、動的可視化の手順例を示すフローチャートである。
（Ｓ１０）ＵＲＩコレクション取得部１１３は、着目する１以上のエンティティを示す１以上のＵＲＩを取得する。２以上のエンティティの集合（コレクションエンティティシーケンス）を示す２以上のＵＲＩを同時に取得する場合、それら２以上のＵＲＩは、通常は同じ種類のエンティティを示すＵＲＩである。例えば、２以上の都市を示すＵＲＩや２以上の企業を示すＵＲＩが同時に取得されることがある。
【００８２】
（Ｓ１１）ＵＲＩコレクション取得部１１３は、都市に対応する可視化プログラムや企業に対応する可視化プログラムなど、取得したＵＲＩの種類に対応する可視化プログラムを判定する。ＵＲＩコレクション取得部１１３は、判定した可視化プログラムがクライアント装置１００に存在しない場合、サーバ装置２００から当該可視化プログラムをダウンロードする。ＵＲＩコレクション取得部１１３は、判定した可視化プログラムを起動させる。以下の説明では、可視化部１１４が呼び出されたものと仮定する。
【００８３】
なお、ＵＲＩコレクション取得部１１３は、１つのＵＲＩを取得した場合には１つの可視化部を１回呼び出せばよい。呼び出し先の可視化部には当該１つのＵＲＩが引き渡される。また、ＵＲＩコレクション取得部１１３は、１つのコレクションエンティティシーケンスに属する２以上のＵＲＩ（同じ種類の２以上のＵＲＩ）を取得した場合にも１つの可視化部を１回呼び出せばよい。呼び出し先の可視化部には当該２以上のＵＲＩが引き渡される。これに対し、ＵＲＩコレクション取得部１１３は、異なる種類の２以上のＵＲＩを取得した場合、ＵＲＩの種類毎に別の可視化部を呼び出すことになる。
【００８４】
（Ｓ１２）クエリ生成部１２１は、ＵＲＩコレクション取得部１１３から指定されたＵＲＩが複数のＵＲＩの集合であるか判断する。複数のＵＲＩの集合である場合はステップＳ１８に処理が進み、１つのＵＲＩである場合はステップＳ１３に処理が進む。
【００８５】
（Ｓ１３）クエリ生成部１２１は、可視化部１１４に対応するクエリテンプレート１３３をテンプレート記憶部１１１から読み出す。クエリテンプレート１３３がクライアント装置１００に存在しない場合、クエリ生成部１２１はサーバ装置２００からクエリテンプレート１３３をダウンロードする。クエリ生成部１２１は、クエリテンプレート１３３からパラメータ部（「％ＵＲＩ％」などの文字列）を特定する。
【００８６】
（Ｓ１４）クエリ生成部１２１は、ステップＳ１３で特定したパラメータ部を、指定された１つのＵＲＩで置換することでクエリ１３４を生成する。
（Ｓ１５）検索部１２２は、指定されたＵＲＩの種類に応じたＲＤＦデータ１３２をＲＤＦデータ記憶部１１２から読み出す。ＲＤＦデータ１３２がクライアント装置１００に存在しない場合、検索部１２２はサーバ装置２００からＲＤＦデータ１３２をダウンロードする。また、検索部１２２は、ステップＳ１４で生成されたクエリ１３４をクエリ生成部１２１から取得する。検索部１２２は、ＲＤＦデータ１３２に対してクエリ１３４を実行し、１つのＵＲＩに関する検索結果１３５を生成する。
【００８７】
（Ｓ１６）可視化処理部１２４は、ステップＳ１５で生成された検索結果１３５を検索部１２２から取得する。可視化処理部１２４は、検索結果１３５に基づいて、図形要素を含む所定の種類の可視化コンテンツであって１つのＵＲＩに関する可視化コンテンツを生成する。例えば、可視化処理部１２４は、１つの都市の人口変化を示す棒グラフや、１つの企業の特許出願件数の変化を示す折れ線グラフなどを生成する。
【００８８】
（Ｓ１７）レンダリング部１１５は、ステップＳ１６で生成された可視化コンテンツを可視化処理部１２４から取得する。レンダリング部１１５は、取得した可視化コンテンツを含むＷｅｂページをレンダリングしてディスプレイ４１に表示させる。
【００８９】
図１２は、動的可視化の手順例を示すフローチャート（続き）である。
（Ｓ１８）クエリ生成部１２１は、可視化部１１４に対応するクエリテンプレート１３３をテンプレート記憶部１１１から読み出す。クエリ生成部１２１は、クエリテンプレート１３３からパラメータ部とグループ化部と出力部とを特定する。なお、クエリテンプレートによってはグループ化部が存在しないこともある。
【００９０】
（Ｓ１９）クエリ生成部１２１は、クエリテンプレート１３３で使用されていない変数であって、取り得る値の範囲（値域）がステップＳ１２の複数のＵＲＩに限定された新変数を定義し、新変数の定義文をクエリテンプレート１３３の条件部に追加する。
【００９１】
（Ｓ２０）クエリ生成部１２１は、ステップＳ１８で特定したパラメータ部を、ステップＳ１９で定義した新変数で置換する。クエリテンプレート１３３に複数のパラメータ部が存在する場合、各パラメータ部を新変数で置換すればよい。
【００９２】
（Ｓ２１）クエリ生成部１２１は、クエリテンプレート１３３にグループ化部が存在するか判断する。グループ化部が存在する場合はステップＳ２２に処理が進み、グループ化部が存在しない場合はステップＳ２３に処理が進む。
【００９３】
（Ｓ２２）クエリ生成部１２１は、ステップＳ１８で特定したグループ化部の中に、ステップＳ１９で定義した新変数を追加する。
（Ｓ２３）クエリ生成部１２１は、ステップＳ１８で特定した出力部の中に、ステップＳ１９で定義した新変数に依存するデータ項目を追加する。例えば、クエリ生成部１２１は、出力部に新変数を追加する。これによりクエリ１３６が生成される。なお、パラメータ部とグループ化部と出力部の編集は、任意の順序で実行してよい。
【００９４】
（Ｓ２４）検索部１２２は、ＲＤＦデータ１３２をＲＤＦデータ記憶部１１２から読み出す。また、検索部１２２は、ステップＳ２３で生成されたクエリ１３６をクエリ生成部１２１から取得する。検索部１２２は、ＲＤＦデータ１３２に対してクエリ１３６を１回実行し、複数のＵＲＩに関する検索結果１３７を１回で生成する。このとき、検索部１２２は、複数のクエリを実行しなくてよく、複数の検索結果を結合しなくてよい。
【００９５】
（Ｓ２５）可視化設定部１２３は、複数のエンティティに関するデータの可視化に適するように可視化処理部１２４に対してコンフィグレーションを指定する。例えば、可視化設定部１２３は、検索結果１３７に含まれるデータ項目のうち着目するエンティティを区別するためのデータ項目（「ａｐｐｌｉｃａｎｔ」など）を指定する。また、例えば、可視化設定部１２３は、線の種類・点の形状・ハッチングの種類・色などの表記方法とエンティティとの間の対応関係を示す凡例を表示させるためのコンフィグレーションをＯＮに指定する。そして、前述のステップＳ１６に処理が進む。
【００９６】
第２の実施の形態の情報処理システムによれば、ユーザの操作に応じて、テキストデータから図形要素を含む可視化コンテンツを動的に生成して表示することができる。１つのエンティティに着目する場合、当該１つのエンティティに関するデータを可視化した可視化コンテンツが生成される。複数のエンティティに同時に着目する場合、当該複数のエンティティに関するデータを統合的に可視化した可視化コンテンツが生成される。統合的な可視化コンテンツは、複数のエンティティに対応する複数の可視化コンテンツを単純に並べたものではなく、それら複数の可視化コンテンツを重ね合わせたものに相当する。よって、複数のエンティティに関するデータを比較することが容易となる。
【００９７】
また、複数のエンティティに同時に着目する場合、単一エンティティ用のクエリテンプレートを変形して複数エンティティ用のクエリが生成される。このため、複数のエンティティに関するデータを、１つのクエリを用いて１回の検索処理によって取得することができる。よって、クエリの発行回数や検索回数を削減できると共に、事後的な検索結果の統合を回避することができ、検索処理の負荷を低減できる。
【００９８】
また、クエリテンプレートは単一エンティティ用に作成しておけばよく、エンティティ数の違い毎に別のクエリテンプレートを作成しなくてよい。また、クエリを実行するモジュールは、着目するエンティティの数とは無関係に実装することができる。また、可視化コンテンツを生成するモジュールは、単一エンティティ用の可視化コンテンツと複数エンティティ用の可視化コンテンツの両方を生成できるように実装しておけばよい。よって、クエリテンプレートやモジュールの汎用性が向上し、プログラム実装が容易となる。
【００９９】
コレクションエンティティシーケンスに関するデータを可視化する他の方法として、着目する複数のエンティティを束ねる一時的なエンティティ（仮想エンティティ）をＲＤＦデータに登録し、当該仮想エンティティを基点としてデータを検索する方法も考えられる。しかし、この場合には、可視化コンテンツを生成する毎に仮想エンティティの追加と削除を行うことになり負荷が増大してしまう。また、ＲＤＦデータを書き換える権限が無い場合には仮想エンティティの登録や削除を行えないことがある。これに対し、第２の実施の形態の方法によれば、ＲＤＦデータの書き換えは不要であり負荷が軽減される。
【符号の説明】
【０１００】
１０  表示装置
１１  記憶部
１２  処理部
１３  クエリテンプレート
１３ａ  パラメータ
１４  クエリ
１４ａ  変数
１５  検索結果データ
１５ａ，１５ｂ  データ項目
１６  視覚的情報
【図１】
2018124728.tif 000003
【図２】
2018124728.tif 000004
【図３】
2018124728.tif 000005
【図４】
2018124728.tif 000006
【図５】
2018124728.tif 000007
【図６】
2018124728.tif 000008
【図７】
2018124728.tif 000009
【図８】
2018124728.tif 000010
【図９】
2018124728.tif 000011
【図１０】
2018124728.tif 000012
【図１１】
2018124728.tif 000013
【図１２】
2018124728.tif 000014