(57)【要約】【課題】データを検索して可視化するソフトウェアの作成効率を向上させる。【解決手段】記憶部１１は、データベース１３に対する検索条件を、基準となるエンティティの識別情報が代入されるパラメータ１４ａを用いて記載したクエリテンプレート１４と、基準となるエンティティとして使用可能なエンティティの条件を示す基準点条件１５とを記憶する。処理部１２は、エンティティ１３ａの指定を受け付け、エンティティ１３ａが基準点条件１５を満たさない場合、エンティティ１３ａから１以上のリンクを介して到達可能であり基準点条件１５を満たすエンティティ１３ｂを検出し、エンティティ１３ｂの検出結果とクエリテンプレート１４とに基づいてクエリ１６を生成し、表示処理に使用するデータをクエリ１６を用いてデータベース１３から検索する。【選択図】図１
2018194944.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数のエンティティと前記複数のエンティティの間の関係を示す複数のリンクとを含むデータベースに含まれる第１のエンティティの指定を受け付け、
基準となるエンティティの識別情報が代入されるパラメータを用いて前記データベースに対する検索条件を記載したクエリテンプレートと、前記基準となるエンティティとして使用可能なエンティティの条件を示す基準点条件とを取得し、
前記第１のエンティティが前記基準点条件を満たさない場合、前記複数のエンティティのうち、前記第１のエンティティから１以上のリンクを介して到達可能であり前記基準点条件を満たす第２のエンティティを検出し、
前記第２のエンティティの検出結果と前記クエリテンプレートとに基づいてクエリを生成し、表示処理に使用するデータを前記クエリを用いて前記データベースから検索する、
処理を実行させる表示プログラム。
【請求項２】
前記クエリの生成では、前記第２のエンティティの識別情報を前記クエリテンプレートの前記パラメータに代入することで前記クエリを生成する、
請求項１記載の表示プログラム。
【請求項３】
前記クエリの生成では、前記第１のエンティティから前記第２のエンティティに到達する経路を示すパス情報を生成し、前記第１のエンティティの識別情報と前記パス情報と前記クエリテンプレートとに基づいて前記クエリを生成する、
請求項１記載の表示プログラム。
【請求項４】
前記クエリの生成では、前記パラメータを変数に置換すると共に、指定されたエンティティの識別情報が代入される他のパラメータと前記パス情報と前記変数とを対応付ける文を挿入することで、前記クエリテンプレートを書き換え、前記書き換えたクエリテンプレートの前記他のパラメータに前記第１のエンティティの識別情報を代入する、
請求項３記載の表示プログラム。
【請求項５】
前記クエリテンプレートおよび前記基準点条件の取得では、前記基準点条件を満たすエンティティの探索に使用するリンクの条件を示す探索条件を更に取得し、
前記第２のエンティティの検出では、前記第１のエンティティから前記探索条件を満たすリンクを介して到達可能なエンティティの中から前記第２のエンティティを検出する、
請求項１記載の表示プログラム。
【請求項６】
コンピュータが実行する表示方法であって、
複数のエンティティと前記複数のエンティティの間の関係を示す複数のリンクとを含むデータベースに含まれる第１のエンティティの指定を受け付け、
基準となるエンティティの識別情報が代入されるパラメータを用いて前記データベースに対する検索条件を記載したクエリテンプレートと、前記基準となるエンティティとして使用可能なエンティティの条件を示す基準点条件とを取得し、
前記第１のエンティティが前記基準点条件を満たさない場合、前記複数のエンティティのうち、前記第１のエンティティから１以上のリンクを介して到達可能であり前記基準点条件を満たす第２のエンティティを検出し、
前記第２のエンティティの検出結果と前記クエリテンプレートとに基づいてクエリを生成し、表示処理に使用するデータを前記クエリを用いて前記データベースから検索する、
表示方法。
【請求項７】
複数のエンティティと前記複数のエンティティの間の関係を示す複数のリンクとを含むデータベースに対する検索条件を、基準となるエンティティの識別情報が代入されるパラメータを用いて記載したクエリテンプレートと、前記基準となるエンティティとして使用可能なエンティティの条件を示す基準点条件とを記憶する記憶部と、
前記複数のエンティティのうちの第１のエンティティの指定を受け付け、前記第１のエンティティが前記基準点条件を満たさない場合、前記複数のエンティティのうち、前記第１のエンティティから１以上のリンクを介して到達可能であり前記基準点条件を満たす第２のエンティティを検出し、前記第２のエンティティの検出結果と前記クエリテンプレートとに基づいてクエリを生成し、表示処理に使用するデータを前記クエリを用いて前記データベースから検索する処理部と、
を有する表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は表示プログラム、表示方法および表示装置に関する。
【背景技術】
【０００２】
Ｗｅｂページを動的に生成する技術として、ダイナミックパブリッシングと言われる技術がある。ダイナミックパブリッシングは、ダイナミックセマンティックパブリッシング、動的配信システム、データ駆動型コンテンツサービスなど他の名称で呼ばれることもある。ダイナミックパブリッシングでは、Ｗｅｂページの表示コンテンツを静的ファイルとして直接記述しておく代わりに、要求に応じてデータベースからデータを検索して表示用テンプレートに適用することでＷｅｂページの表示コンテンツを動的に生成する。ダイナミックパブリッシングで生成される表示コンテンツには、グラフ、ピンを埋め込んだ地図、データを埋め込んだ一覧表など、図形的要素を含むものが含まれ得る。
【０００３】
ダイナミックパブリッシングでは、ＲＤＦ（Resource Description Framework）に従って記述されたＬｉｎｋｅｄ  Ｄａｔａをデータベースとして使用することがある。Ｌｉｎｋｅｄ  Ｄａｔａは、企業や人物などの実体を表す複数のエンティティと、これら複数のエンティティの間の関係を表す複数のリンクとを含む。利用者の関心のある（以後、「焦点」と呼ぶ）１つのエンティティを指定すると、当該エンティティから１以上のリンクを辿ることで当該エンティティに関するデータを抽出することができる。データベースから所望のデータを抽出する際には、ＳＰＡＲＱＬ（SPARQL Protocol and RDF Query Language）などのクエリ言語を用いて記述されたクエリが使用される。クエリの雛形としてクエリテンプレートを予め用意しておくことがある。クエリテンプレートでは、焦点エンティティの識別情報が代入されるパラメータ（引数）を用いて検索条件が記載されることがある。
【０００４】
例えば、データベースの中から互いに関連する複数種類のデータを検索し、これら複数種類のデータに対応する複数の表示領域を含むＷｅｂページを生成する検索装置が提案されている。提案の検索装置は、データベースからデータを検索するときに使用するクエリの雛形として３つのクエリテンプレートを記憶する。１番目のクエリテンプレートは、ユーザから指定される企業の合計受注金額を検索するものである。２番目のクエリテンプレートは、ユーザから指定される企業の関連企業を検索するものである。３番目のクエリテンプレートは、ユーザから指定される企業とその関連企業とを含む企業グループの合計受注金額を検索するものである。検索装置は、ユーザから１つの企業が指定されると、指定された企業の識別情報と３つのクエリテンプレートを用いて３つのクエリを生成し、生成した３つのクエリを個別に実行して３種類のデータを抽出する。
【０００５】
また、ユーザから入力された自然言語のクエリを、自然言語処理技術を用いてオブジェクトクエリ言語（ＯＱＬ：Object Query 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）である。パラメータ１４ａに具体的なエンティティの識別情報を代入すると、当該エンティティに関する所望のデータを検索するための実行可能なクエリが完成する。
【００１８】
また、記憶部１１は、基準点条件１５を記憶する。基準点条件１５は、クエリテンプレート１４において基準となるエンティティとして使用可能なエンティティの条件を示す。例えば、基準点条件１５は、法人番号データセットに含まれる法人型のエンティティなど、基準となるエンティティとして使用可能なエンティティの型を規定する。記憶部１１は、基準点条件１５を満たすエンティティをデータベース１３から検出する際に使用するリンクの条件を示す探索条件を更に記憶するようにしてもよい。
【００１９】
処理部１２は、データベース１３に含まれるエンティティのうちのエンティティ１３ａ（第１のエンティティ）の指定を受け付ける。エンティティ１３ａは、例えば、ユーザが現在焦点をあてているユーザから指定されたエンティティである。すると、処理部１２は、指定されたエンティティ１３ａが基準点条件１５を満たすか判定する。例えば、処理部１２は、エンティティ１３ａの型が基準点条件１５に規定された型と一致するか判定する。
【００２０】
エンティティ１３ａが基準点条件１５を満たさない場合、処理部１２は、データベース１３に含まれるエンティティのうち、エンティティ１３ａの周辺に存在するエンティティ１３ｂ（第２のエンティティ）を検出する。エンティティ１３ｂは、指定されたエンティティ１３ａから１以上のリンクを介して到達可能であり、かつ、基準点条件１５を満たすエンティティである。処理部１２は、エンティティ１３ｂを、記憶部１１に記憶された探索条件を満たすリンクのみを辿って到達可能なエンティティに限定してもよい。
【００２１】
処理部１２は、エンティティ１３ｂの検出結果とクエリテンプレート１４とに基づいてクエリ１６を生成する。クエリ１６は、指定されたエンティティ１３ａではなく、エンティティ１３ｂに関するデータをデータベース１３から収集するためのクエリとなる。
【００２２】
例えば、処理部１２は、検出されたエンティティ１３ｂの識別情報をクエリテンプレート１４のパラメータ１４ａに代入することでクエリ１６を生成する。また、例えば、処理部１２は、エンティティ１３ａからエンティティ１３ｂに到達する経路を示すパス情報を生成し、エンティティ１３ａの識別情報とパス情報とクエリテンプレート１４とに基づいてクエリ１６を生成する。処理部１２は、パラメータ１４ａをクエリテンプレート１４の中で未使用の変数に置換し、他のパラメータとパス情報と当該変数とを対応付ける文を挿入することで、エンティティ１３ａの識別情報を使用できるようにクエリテンプレート１４を書き換えてもよい。この場合、書き換え後のクエリテンプレートに含まれる他のパラメータにエンティティ１３ａの識別情報を代入すればよい。
【００２３】
処理部１２は、生成したクエリ１６を用いて、表示処理に使用されるデータをデータベース１３から検索する。処理部１２は、例えば、検索されたデータを表示用テンプレートに適用することで可視化し、グラフ、ピンを埋め込んだ地図、数値や文字列を埋め込んだ一覧表などの表示コンテンツを生成する。表示コンテンツは、Ｗｅｂページの中で表示されてもよい。例えば、表示コンテンツを含むＷｅｂページが、表示装置１０が備えるディスプレイまたは外部の端末装置が備えるディスプレイに表示される。なお、表示装置１０は、検索されたデータから生成した表示コンテンツを表示装置１０の外部に送信してもよく、また、検索されたデータを表示装置１０の外部に送信してもよい。
【００２４】
第１の実施の形態の表示装置１０によれば、指定されたエンティティ１３ａが基準点条件１５を満たさない場合、そのままではデータ検索にクエリテンプレート１４を使用できない。そこで、指定されたエンティティ１３ａの周辺から基準点条件１５を満たすエンティティ１３ｂが検出され、エンティティ１３ｂの検出結果とクエリテンプレート１４とに基づいて、エンティティ１３ｂに関するデータがデータベース１３から検索される。
【００２５】
これにより、同じエンティティの関連情報を提示する場合には、焦点をあてているエンティティが異なってもクエリテンプレート１４を共通に利用することができ、焦点をあてているエンティティの型に応じて異なるクエリテンプレートを予め用意しなくてもよい。よって、ユーザが焦点をあてているエンティティの型を変えたソフトウェアを既存のクエリテンプレート１４を利用して実装でき、データを検索して可視化するソフトウェアの作成効率が向上する。
【００２６】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００２７】
第２の実施の形態の情報処理システムは、端末装置１００およびサーバ装置２００を含む。端末装置１００とサーバ装置２００とは、ネットワーク３０を介して通信可能である。ネットワーク３０は、例えば、インターネットなどの広域データ通信ネットワークである。端末装置１００は、ユーザが使用するクライアントコンピュータである。サーバ装置２００は、端末装置１００からアクセスされ得るサーバコンピュータである。
【００２８】
端末装置１００は、ユーザ操作に応じて、ダイナミックパブリッシングによってＷｅｂページを動的に生成して表示する。ユーザ操作の検出やＷｅｂページの表示は、例えば、端末装置１００にインストールされたＷｅｂブラウザ上で行われる。１つのＷｅｂページに対して１以上のガジェットを配置することができる。各ガジェットは、一単位の表示コンテンツを生成するモジュールであり、データベースからデータを検索するためのクエリテンプレートと検索されたデータから表示コンテンツを生成する可視化プログラムとを含む。可視化プログラムは、例えば、クライアントサイドスクリプトとして実装される。データベースは、ＲＤＦに従って記述されたＲＤＦデータである。このＲＤＦデータは、Ｌｉｎｋｅｄ  ＤａｔａやＬｉｎｋｅｄ  Ｏｐｅｎ  Ｄａｔａと言われることもある。
【００２９】
データベースから検索される可視化対象のデータは、数値や文字列などの非図形的データを含む。可視化プログラムによって生成される表示コンテンツは、複数の数値の関係を示すグラフ、位置を示すピンを埋め込んだ地図、数値や文字列の一覧表などの図形的データを含む。グラフとしては、折れ線グラフ（ラインチャート）、棒グラフ（バーチャート）、バブルチャート、レーダーチャートなどが挙げられる。表示コンテンツは、検索されたデータに対して表示用テンプレートを適用して生成することができる。なお、図形的データとしてピクセルの集合であるラスター画像（ビットマップ画像）を生成することもでき、数式などで定義された線の集合であるベクトル画像を生成することもできる。
【００３０】
端末装置１００は、１以上のガジェットが配置されたＷｅｂページを定義した設定情報を記憶する。設定情報は予め端末装置１００に対して直接入力されてもよいし、サーバ装置２００から端末装置１００にダウンロードされてもよい。また、端末装置１００は、ダイナミックパブリッシングで使用する１以上のガジェットを記憶する。ガジェットは予め端末装置１００に保存されていてもよいし、必要に応じてサーバ装置２００から端末装置１００にダウンロードされてもよい。また、端末装置１００は、ダイナミックパブリッシングで使用するＲＤＦデータの少なくとも一部を記憶する。少なくとも一部のＲＤＦデータは予め端末装置１００に保存されていてもよいし、必要に応じてサーバ装置２００から端末装置１００にダウンロードされてもよい。
【００３１】
サーバ装置２００は、端末装置１００からの要求に応じて、端末装置１００に対してダイナミックパブリッシングに使用する各種情報を提供することがある。例えば、サーバ装置２００は、端末装置１００からの要求に応じて、上記の設定情報、ガジェットまたはＲＤＦデータを端末装置１００に送信してもよい。
【００３２】
なお、ネットワーク３０には複数のサーバ装置が接続されてもよい。端末装置１００は、複数のガジェットや複数のＲＤＦデータセットを異なるサーバ装置からダウンロードしてもよい。また、第２の実施の形態では端末装置１００がデータの検索および可視化を行っている。これに対し、サーバ装置２００がデータの検索を行って検索結果を端末装置１００に送信し、端末装置１００は受信した検索結果の可視化を行ってもよい。また、サーバ装置２００がデータの検索および可視化を行って表示コンテンツを端末装置１００に送信し、端末装置１００は受信した表示コンテンツを表示してもよい。
【００３３】
図３は、端末装置のハードウェア例を示すブロック図である。
端末装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。サーバ装置２００も、端末装置１００と同様のハードウェアを用いて実装することができる。なお、ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００３４】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、端末装置１００は複数のプロセッサを備えてもよく、以下の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と呼ぶことがある。
【００３５】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、端末装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００３６】
ＨＤＤ１０３は、ＯＳ（Operating System）やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、端末装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００３７】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、端末装置１００に接続されたディスプレイ４１に画像を出力する。ディスプレイ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００３８】
入力信号処理部１０５は、端末装置１００に接続された入力デバイス４２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス４２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、端末装置１００に複数の種類の入力デバイスが接続されていてもよい。
【００３９】
媒体リーダ１０６は、記録媒体４３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体４３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００４０】
媒体リーダ１０６は、例えば、記録媒体４３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体４３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体４３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００４１】
通信インタフェース１０７は、ネットワーク３０に接続され、ネットワーク３０を介してサーバ装置２００と通信を行うインタフェースである。通信インタフェース１０７は、例えば、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースである。ただし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００４２】
図４は、端末装置の機能例を示すブロック図である。
端末装置１００は、ＲＤＦデータ記憶部１１１、ガジェット記憶部１１２および設定情報記憶部１１３を有する。また、端末装置１００は、ガジェット選択部１２１、クエリテンプレート抽出部１２２、関連エンティティ探索部１２３、クエリ生成部１２４、クエリ実行部１２５、可視化プログラム起動部１２６およびレンダリング部１２７を有する。ＲＤＦデータ記憶部１１１、ガジェット記憶部１１２および設定情報記憶部１１３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。ガジェット選択部１２１、クエリテンプレート抽出部１２２、関連エンティティ探索部１２３、クエリ生成部１２４、クエリ実行部１２５、可視化プログラム起動部１２６およびレンダリング部１２７は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００４３】
ＲＤＦデータ記憶部１１１は、ＲＤＦに従って記述されたＬｉｎｋｅｄ  ＤａｔａをＲＤＦデータとして記憶する。ＲＤＦデータは、企業や人物などの実体を表すエンティティとエンティティ間の関係を表すリンクとを含む。ＲＤＦデータは、エンティティをノードとしエンティティ間のリンクをエッジとする有向グラフとして表現することができる。各エンティティにはＵＲＩやＩＲＩなどの識別情報（第２の実施の形態では「ＵＲＩ」と表記する）が付与される。ＲＤＦデータは、「Ａ会社の本店所在地はＢである」といった事実を、主語（Ｓｕｂｊｅｃｔ）と述語（Ｐｒｅｄｉｃａｔｅ）と目的語（Ｏｂｊｅｃｔ）の三つ組（トリプル）として表現する。有向グラフでは、主語に対応するノードから目的語に対応するノードに向かって、述語に対応するエッジが形成されることになる。
【００４４】
ＲＤＦデータ記憶部１１１には、情報源の異なる複数のデータセットの少なくとも一部が記憶され得る。複数のデータセットはリンクで連結されることがある。以下の説明ではデータセットの例として、ＤＢｐｅｄｉａ内の会社情報と国税庁の法人番号データセットとを使用することがある。ＲＤＦデータ記憶部１１１には、予めデータセットの全体または一部分が記憶されていてもよい。また、ＲＤＦデータの参照状況に応じて適宜、サーバ装置２００または他のサーバ装置からデータセットの全体または一部分がダウンロードされてもよい。異なるデータセットは異なるサーバ装置からダウンロードされることがある。
【００４５】
ガジェット記憶部１１２は、Ｗｅｂページに配置され得る複数のガジェットを記憶する。各ガジェットはクエリテンプレートと可視化プログラムを含む。ガジェット記憶部１１２には、予め１以上のガジェットが記憶されていてもよい。また、ガジェットの使用状況に応じて適宜、サーバ装置２００または他のサーバ装置からガジェットがダウンロードされてもよい。異なるガジェットは異なるサーバ装置からダウンロードされることがある。
【００４６】
クエリテンプレートは、１つのエンティティのＵＲＩが代入されるパラメータを含むクエリの雛形である。クエリテンプレートから生成されるクエリは、ＲＤＦデータ記憶部１１１に記憶されたＲＤＦデータの中から上記ＵＲＩが示すエンティティに関するデータを検索するための検索要求文であり、ＳＰＡＲＱＬによって記述される。各クエリテンプレートは、所定の種類のエンティティのＵＲＩが代入されることを想定して作成されている。可視化プログラムは、クエリテンプレートに従って検索されたデータを可視化するスクリプトプログラムであり、データ検索後に呼び出される。各可視化プログラムは、所定の種類のデータを所定の種類の表示コンテンツに変換するものである。
【００４７】
設定情報記憶部１１３は、ガジェットの使用方法を示す設定情報を記憶する。設定情報は、例えば、入力デバイス４２を用いて端末装置１００に対して入力される。ただし、設定情報がサーバ装置２００または他のサーバ装置からダウンロードされてもよい。設定情報は、Ｗｅｂページへのガジェットの配置を示す情報を含む。１つのＷｅｂページには１以上のガジェットを配置することができる。また、設定情報は、ユーザから指定されるエンティティの種類（エンティティ型）と当該エンティティの指定に反応するガジェットとを対応付ける情報を含む。１つのエンティティの指定に対して２以上のガジェットが反応して、２以上の表示コンテンツが生成され並べて表示されることがある。
【００４８】
また、設定情報は、ガジェットに含まれるクエリテンプレートが想定するエンティティの種類とＷｅｂページ上でユーザから指定されるエンティティの種類との間のずれを吸収するための情報を含む。ユーザが焦点をあてているエンティティ（焦点エンティティと言うことがある）の種類がクエリテンプレートの想定する種類と異なる場合、そのままでは当該クエリテンプレートを使用することができない。そこで、端末装置１００は以下に説明するように、ＲＤＦデータ記憶部１１１に記憶されたＲＤＦデータの中から、焦点エンティティの周辺にある適切なエンティティを探索してクエリテンプレートに適用することがある。焦点エンティティに代えてクエリテンプレートに適用されるエンティティを、関連エンティティまたは仮焦点エンティティと言うことがある。設定情報は、焦点エンティティから関連エンティティを探索する方法についての情報を含む。
【００４９】
ガジェット選択部１２１は、Ｗｅｂページ上でのユーザ操作を検出し、ユーザが指定したエンティティのＵＲＩ（焦点エンティティのＵＲＩ）を取得する。通常、１回に取得される焦点エンティティのＵＲＩは１つである。ただし、複数の焦点エンティティ（コレクションエンティティシーケンス）に対応する複数のＵＲＩを同時に取得できるようにしてもよい。その場合、例えば、以下の処理が焦点エンティティ毎に実行される。ガジェット選択部１２１は、設定情報記憶部１１３に記憶された設定情報を参照して、指定された焦点エンティティの種類に対応するガジェットを選択する。複数のガジェットが選択された場合、以下の処理がガジェット毎に実行される。
【００５０】
クエリテンプレート抽出部１２２は、ガジェット選択部１２１が選択したガジェットに含まれるクエリテンプレートをガジェット記憶部１１２から抽出する。
関連エンティティ探索部１２３は、設定情報記憶部１１３に記憶された設定情報を参照して、指定された焦点エンティティが、ガジェットに対して設定されている終了条件を満たすか判定する。終了条件は、クエリテンプレートのパラメータが想定しているエンティティの条件であり、関連エンティティの探索を終了する条件でもある。焦点エンティティが終了条件を満たす場合、焦点エンティティが関連エンティティとみなされる。
【００５１】
一方、焦点エンティティが終了条件を満たさない場合、関連エンティティ探索部１２３は、ＲＤＦデータ記憶部１１１に記憶されたＲＤＦデータの中から、焦点エンティティの周辺にある終了条件を満たす関連エンティティを探索する。このとき、関連エンティティ探索部１２３は、設定情報記憶部１１３に記憶された設定情報を参照して、ガジェットに対して設定されている探索条件に従って探索範囲を限定する。探索条件は、探索の際に焦点エンティティから辿ることを許容するリンクの条件である。探索範囲を限定することで、ユーザの意図と異なる関連エンティティを選択してしまうリスクが低減される。
【００５２】
クエリ生成部１２４は、関連エンティティ探索部１２３による関連エンティティの探索結果とクエリテンプレート抽出部１２２が抽出したクエリテンプレートとに基づいて、クエリを生成する。第２の実施の形態では、クエリ生成部１２４は、関連エンティティのＵＲＩをクエリテンプレートのパラメータに代入する。ただし、後述するように、クエリテンプレートを書き換えるなど他の方法でクエリを生成することも可能である。
【００５３】
クエリ実行部１２５は、ＲＤＦデータ記憶部１１１に記憶されたＲＤＦデータに対して、クエリ生成部１２４が生成したクエリを実行して検索結果を生成する。ＲＤＦデータが論理的にはグラフ構造（ネットワーク構造）である一方、クエリ実行部１２５が生成する検索結果は論理的には１以上の列（データ項目）と１以上の行（レコード）とを含むテーブル構造であることがある。検索結果に含まれるべきデータ項目は、クエリの生成に用いられるクエリテンプレートにおいて定義されている。
【００５４】
可視化プログラム起動部１２６は、ガジェット選択部１２１が選択したガジェットに含まれる可視化プログラムをガジェット記憶部１１２から抽出する。そして、可視化プログラム起動部１２６は、クエリ実行部１２５が生成した検索結果を可視化プログラムに与えて当該可視化プログラムを起動する。可視化プログラムが実行されることで、ガジェットに応じた種類の表示コンテンツが生成される。可視化プログラムは、グラフの雛形、地図、一覧表の雛形などの表示用テンプレートを使用することがある。
【００５５】
検索結果が数値を示すデータ項目を含む場合、表示コンテンツはレコード間で数値を比較する折れ線グラフ・棒グラフ・バブルチャート・レーダーチャートなどのグラフであることがある。また、検索結果が位置座標を示すデータ項目を含む場合、表示コンテンツは１以上のレコードに対応する１以上のピンが埋め込まれた地図であることがある。また、検索結果が数値や文字列を示す複数のデータ項目を含む場合、表示コンテンツは複数のデータ項目に対応する列と１以上のレコードに対応する行を含む一覧表であることがある。
【００５６】
レンダリング部１２７は、生成された表示コンテンツを可視化プログラム起動部１２６から取得する。レンダリング部１２７は、表示コンテンツを含むＷｅｂページの描画処理（レンダリング）を行ってＷｅｂページの表示を更新する。表示コンテンツを含むＷｅｂページはディスプレイ４１に表示される。
【００５７】
図５は、ＲＤＦデータを表すグラフ例を示す図である。
グラフ１３１は、ＲＤＦデータによって表現されるグラフの一部分である。グラフ１３１は、ノード１３１ａ，１３１ｂ，１３１ｃ，１３１ｄ，１３１ｅ，１３１ｆ，１３１ｇ，１３１ｈ，１３１ｉ，１３１ｊ，１３１ｋ，１３１ｌを含む。
【００５８】
ノード１３１ａは、法人番号データセットに含まれる特定の１つの企業のエンティティに対応し、１つのＵＲＩで識別される。ノード１３１ｂは、組織型を示すエンティティに対応し、１つのＵＲＩで識別される。ノード１３１ａ，１３１ｂは、ノード１３１ａからノード１３１ｂへのエッジで接続されている。このエッジは「タイプをもつ」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。これによって、ノード１３１ａのエンティティが、組織型というタイプをもつことが表現される。
【００５９】
ノード１３１ｃは、法人番号データセットの法人型を示すエンティティに対応し、１つのＵＲＩで識別される。ノード１３１ａ，１３１ｃは、ノード１３１ａからノード１３１ｃへのエッジで接続されている。このエッジは「タイプをもつ」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。これによって、ノード１３１ａのエンティティが、法人番号データセットの法人型というタイプをもつことが表現される。
【００６０】
ノード１３１ｄは、具体的な文字列であるリテラルに対応する。ノード１３１ａ，１３１ｄは、ノード１３１ａからノード１３１ｄへのエッジで接続されている。このエッジは「識別情報をもつ」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。これによって、ノード１３１ａのエンティティが、ノード１３１ｄの文字列で表される番号を法人番号としてもつことが表現される。ノード１３１ｅは、具体的な値であるリテラルに対応する。ノード１３１ａ，１３１ｅは、ノード１３１ａからノード１３１ｅへのエッジで接続されている。このエッジは「ラベルをもつ」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。これによって、ノード１３１ａのエンティティが、ノード１３１ｅの文字列を商号としてもつことが表現される。
【００６１】
ノード１３１ｆは、ＵＲＩもリテラルも含まない空白ノードである。空白ノードは、複数の下位ノードを統括する１つの上位ノードを作成したいものの、その上位ノードに固有のＵＲＩを付与するほどの重要性がない場合に使用されることがある。ノード１３１ｆは、法人の本店所在地という概念に対応する。ノード１３１ａ，１３１ｆは、ノード１３１ａからノード１３１ｆへのエッジで接続されている。このエッジは「登記上の場所をもつ」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。ノード１３１ｇは、所在地という概念に対応する空白ノードである。ノード１３１ｆ，１３１ｇは、ノード１３１ｆからノード１３１ｇへのエッジで接続されている。このエッジは「住所」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。
【００６２】
ノード１３１ｈ，１３１ｉ，１３１ｊは、具体的な文字列であるリテラルに対応する。ノード１３１ｇ，１３１ｈは、ノード１３１ｇからノード１３１ｈへのエッジで接続されている。このエッジは「地方」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。地方は大きな行政区画であり、例えば、日本の都道府県である。ノード１３１ｇ，１３１ｉは、ノード１３１ｇからノード１３１ｉへのエッジで接続されている。このエッジは「地区」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。地区は小さな行政区画であり、例えば、日本の市区町村（市町村や特別区）である。ノード１３１ｇ，１３１ｊは、ノード１３１ｇからノード１３１ｊへのエッジで接続されている。このエッジは「通り」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。地方、地区、通りはＵＲＩで識別することもできるが、図５ではリテラルで示している。これによって、ノード１３１ａのエンティティが、ノード１３１ｈ，１３１ｉ，１３１ｊの文字列によって表される住所を本店所在地としてもつことが表現される。
【００６３】
ノード１３１ｋは、ＤＢｐｅｄｉａに含まれる特定の１つの企業のエンティティに対応し、１つのＵＲＩで識別される。ノード１３１ａとノード１３１ｋは実質的に同一の企業を示している。しかし、ノード１３１ａは法人番号データセットに属し、ノード１３１ｋはＤＢｐｅｄｉａのデータセットに属するため、同一の企業を示す異なるエンティティが定義されている。このように、異なるデータセットは実質的に同一の実体を示す異なるエンティティを含むことがある。この場合、異なるデータセットの異なるエンティティの間にリンクを付与することで、対応関係を表現することができる。
【００６４】
ノード１３１ａ，１３１ｋは、ノード１３１ａからノード１３１ｋへのエッジで接続されている。このエッジは、ＤＢｐｅｄｉａのデータセットに属するノード１３１ｋが、法人番号データセットに属するノード１３１ａに対応していることを示している。ノード１３１ｌは、具体的な文字列であるリテラルに対応する。ノード１３１ｋ，１３１ｌは、ノード１３１ｋからノード１３１ｌへのエッジで接続されている。このエッジは「ラベルをもつ」という述語を示すリンクに対応し、その種類は１つのＵＲＩで識別される。これによって、ノード１３１ｋのエンティティが、ノード１３１ｌの文字列を企業名の通称としてもつことが表現される。ノード１３１ｌの文字列はノード１３１ｅと異なってもよい。
【００６５】
図６は、ＲＤＦデータの記載例を示す図である。
ＲＤＦデータ１３２は、ＲＤＦデータ記憶部１１１に記憶されるＲＤＦデータの一部分を示しており、図５のグラフ１３１に対応する。図６のＲＤＦデータ１３２は、主語・述語・目的語の三つ組をタートル形式で記載している。ただし、三つ組をＲＤＦ／ＸＭＬ（Extensible Markup Language）形式など他の形式で記載することも可能である。ＲＤＦデータ１３２において、ＵＲＩはカギ括弧（＜と＞）を用いて表記される。ただし、ＵＲＩの一部分について名前空間が定義されている場合、カギ括弧を用いずに表記されることがある。また、リテラルとしての文字列はダブルクオテーションを用いて表記される。
【００６６】
ＲＤＦデータ１３２の１行目は、主語としてノード１３１ａのＵＲＩを含む。ＲＤＦデータ１３２の２行目は、述語としてタイプを意味するＵＲＩを含み、目的語としてノード１３１ｂ，１３１ｃのＵＲＩを含む。ＲＤＦデータ１３２の３行目は、述語として識別情報を意味するＵＲＩを含み、目的語としてノード１３１ｄのリテラルを含む。ＲＤＦデータ１３２の４行目は、述語としてラベルを意味するＵＲＩを含み、目的語としてノード１３１ｅのリテラルを含む。
【００６７】
ＲＤＦデータ１３２の５行目は、述語として本店所在地を意味するＵＲＩを含む。この述語に対応する目的語は６行目〜９行目の全体である。ＲＤＦデータ１３２の６行目は、述語として住所を意味するＵＲＩを含む。この述語に対応する目的語は７行目〜９行目の全体である。ＲＤＦデータ１３２の７行目は、述語として都道府県を意味するＵＲＩを含み、目的語としてノード１３１ｈのリテラルを含む。ＲＤＦデータ１３２の８行目は、述語として市区町村を意味するＵＲＩを含み、目的語としてノード１３１ｉのリテラルを含む。ＲＤＦデータ１３２の９行目は、述語として番地など市区町村名より後の部分を意味するＵＲＩを含み、目的語としてノード１３１ｊのリテラルを含む。
【００６８】
ＲＤＦデータ１３２の１０行目は、述語として内容の対応関係を意味するＵＲＩを含み、目的語としてノード１３１ｋのＵＲＩを含む。ＲＤＦデータ１３２の１１行目は、主語としてノード１３１ｋのＵＲＩを含む。ＲＤＦデータ１３２の１２行目は、述語としてラベルを意味するＵＲＩを含み、目的語としてノード１３１ｌのリテラルを含む。
【００６９】
図７は、クエリテンプレートの例を示す図である。
クエリテンプレート１３３は、ガジェット記憶部１１２に記憶された何れかのガジェットに含まれているクエリテンプレートである。クエリテンプレート１３３は、パラメータ「％ＵＲＩ％」と、変数「？ｎｕｍｂｅｒ」，「？ｎａｍｅ」，「？ｓｉｔｅ」，「？ｐｒｅｆ」，「？ｃｉｔｙ」，「？ｓｔｒｅｅｔ」を含む。
【００７０】
パラメータ「％ＵＲＩ％」は、法人番号データセットの中の企業を示すエンティティのＵＲＩが代入されることを想定したパラメータである。クエリテンプレート１３３は、パラメータ「％ＵＲＩ％」に代入されるＵＲＩが示すエンティティを起点として、法人番号データセットの中から当該エンティティの基本三情報を抽出することを示している。基本三情報は、法人番号と商号と本店所在地である。クエリテンプレート１３３に記載されたパラメータ「％ＵＲＩ％」を具体的なＵＲＩに置換することで、そのＵＲＩが示す企業の基本三情報を検索するためのクエリを生成することができる。
【００７１】
変数「？ｎｕｍｂｅｒ」は、法人番号を示す変数である。変数「？ｎａｍｅ」は、商号を示す変数である。変数「？ｓｉｔｅ」は、本店所在地を示す変数である。変数「？ｐｒｅｆ」は、本店所在地に含まれる都道府県名を示す変数である。変数「？ｃｉｔｙ」は、本店所在地に含まれる市区町村名を示す変数である。変数「？ｓｔｒｅｅｔ」は、本店所在地に含まれる通り名を示す変数である。
【００７２】
クエリテンプレート１３３は、検索結果に含めるデータ項目として、変数「？ｎｕｍｂｅｒ」，「？ｎａｍｅ」，「？ｐｒｅｆ」，「？ｃｉｔｙ」，「？ｓｔｒｅｅｔ」に対応する５つのデータ項目を定義している。よって、クエリテンプレート１３３から生成されるクエリを実行すると、所定の検索条件を満たす法人番号・商号・都道府県名・市区町村名・通り名の組が検索結果として抽出されることになる。
【００７３】
クエリテンプレート１３３は、検索条件を三つ組形式で定義する。検索条件は、主語が「％ＵＲＩ％」、述語が識別情報を意味するリンク、目的語が「？ｎｕｍｂｅｒ」という条件を含む。また、検索条件は、主語が「％ＵＲＩ％」、述語がラベルを意味するリンク、目的語が「？ｎａｍｅ」という条件を含む。また、検索条件は、主語が「％ＵＲＩ％」、述語が本店所在地を意味するリンク、目的語が「？ｓｉｔｅ」という条件を含む。
【００７４】
また、検索条件は、主語が「？ｓｉｔｅ」、述語が住所を意味するリンク、目的語が空白ノードという条件を含む。また、検索条件は、主語が上記の空白ノード、述語が都道府県名を意味するリンク、目的語が「？ｐｒｅｆ」という条件を含む。また、主語が上記の空白ノード、述語が市区町村名を意味するリンク、目的語が「？ｃｉｔｙ」という条件を含む。また、検索条件は、主語が上記の空白ノード、述語が通り名を意味するリンク、目的語が「？ｓｔｒｅｅｔ」という条件を含む。この検索条件を全て満たすような変数「？ｎｕｍｂｅｒ」，「？ｎａｍｅ」，「？ｐｒｅｆ」，「？ｃｉｔｙ」，「？ｓｔｒｅｅｔ」の値の組が、法人番号データセットから抽出されることになる。
【００７５】
図８は、設定テーブルの例を示す図である。
設定テーブル１３４は、設定情報記憶部１１３に記憶される。設定テーブル１３４は、ページＩＤ、焦点タイプ、ガジェットＩＤ、探索条件および終了条件の項目を有する。
【００７６】
ページＩＤの項目には、Ｗｅｂページの識別情報が登録される。焦点タイプの項目には、Ｗｅｂページ上でユーザが指定し得る焦点エンティティの種類が登録される。１つのＷｅｂページに対して複数の焦点タイプを登録することもできる。ガジェットＩＤの項目には、Ｗｅｂページに配置するガジェットの識別情報が登録される。１つのＷｅｂページに対して複数のガジェットＩＤを登録することもできる。探索条件の項目には、焦点エンティティから関連エンティティを探索するときに使用するリンクの条件が登録される。終了条件の項目には、関連エンティティの探索を終了する条件が登録される。探索条件と終了条件は、ページＩＤとガジェットＩＤの組毎に登録される。
【００７７】
例えば、焦点タイプとして、ＤＢｐｅｄｉａのデータセットに含まれる企業のエンティティの種類が登録される。また、ガジェットＩＤとして、前述のクエリテンプレート１３３を含むガジェットの識別情報が登録される。この場合、焦点エンティティの種類がクエリテンプレート１３３の想定するエンティティの種類と異なるため、適切な関連エンティティを探索できるように探索条件と終了条件を設定することになる。
【００７８】
例えば、探索条件として「＾＜ｈｔｔｐ：／／ｘｍｌｎｓ．ｃｏｍ／ｆｏａｆ／０．１／ｐｒｉｍａｒｙＴｏｐｉｃ＞」が登録される。これは、ｐｒｉｍａｒｙＴｏｐｉｃという種類のリンクを逆方向に１回だけ辿ること、すなわち、焦点エンティティに対して当該リンクをもつエンティティを関連エンティティの候補とすることを意味する。探索条件は、特定の種類のリンクのみ許可し、それ以外の種類のリンクを許可しないことを示す場合がある。また、探索条件は、特定の種類のリンクを許可せず、それ以外の種類のリンクを許可することを示す場合がある。また、例えば、終了条件として「ｈａｓＴｙｐｅ（ｏｒｇ：Ｏｒｇａｎｉｚａｔｉｏｎ）＆＆ｈａｓＴｙｐｅ（ｌ４ａ：Ｃｏｒｐｏｒａｔｅ）」が登録される。これは、組織型でありかつ法人番号データセットの法人型であるエンティティを、関連エンティティとして検出することを意味する。
【００７９】
なお、探索条件は正規表現を用いて記述することができる。他の探索条件の例として、「（ｏｗｌ：ｓａｍｅＡｓ｜ｆｏａｆ：ｐｒｉｍａｒｙＴｏｐｉｃ）＊」が考えられる。これは、焦点エンティティから、ｏｗｌ：ｓａｍｅＡｓという種類のリンクとｆｏａｆ：ｐｒｉｍａｒｙＴｏｐｉｃという種類のリンクのみ、任意の回数辿ることを許可することを意味する。探索条件に記載されるリンクの種類は、探索範囲が広がり過ぎないように、エンティティが示す実体の同一性を意味するリンクに限定することがある。
【００８０】
図９は、第２の実施の形態のクエリ例を示す図である。
ここでは、ユーザから図５のノード１３１ｋのエンティティが焦点エンティティとして指定されたとする。指定された焦点エンティティは、ＤＢｐｅｄｉａのデータセットに属するエンティティであり法人番号データセットに属するエンティティではないため、設定テーブル１３４に登録された終了条件を満たさない。
【００８１】
そこで、端末装置１００は、設定テーブル１３４に登録された探索条件に従って焦点エンティティからリンクを辿り、終了条件を満たす関連エンティティを探索する。すると、端末装置１００は、図５のノード１３１ａのエンティティを関連エンティティとして検出する。第２の実施の形態では、端末装置１００は、図７のクエリテンプレート１３３のパラメータ「％ＵＲＩ％」に対して、検出した関連エンティティのＵＲＩを代入する。これにより、クエリ１３５が生成される。クエリ１３５は、ノード１３１ａのエンティティを起点として、このエンティティが示す企業の基本三情報を検索するものである。
【００８２】
図１０は、クエリ結果テーブルの例を示す図である。
ＲＤＦデータ１３２に対してクエリ１３５を実行すると、クエリ結果テーブル１３６が生成される。なお、図１０ではクエリ１３５の実行結果をテーブル形式で記載しているが、他の形式で記載された実行結果が出力されてもよい。
【００８３】
クエリ結果テーブル１３６は、データ項目として「ｎｕｍｂｅｒ」，「ｎａｍｅ」，「ｐｒｅｆ」，「ｃｉｔｙ」，「ｓｔｒｅｅｔ」を含む。データ項目「ｎｕｍｂｅｒ」の値として、ノード１３１ａから到達されるノード１３１ｄのリテラル（法人番号）が出力される。データ項目「ｎａｍｅ」の値として、ノード１３１ａから到達されるノード１３１ｅのリテラル（商号）が出力される。データ項目「ｐｒｅｆ」の値として、ノード１３１ａから到達されるノード１３１ｈのリテラル（都道府県名）が出力される。データ項目「ｃｉｔｙ」の値として、ノード１３１ａから到達されるノード１３１ｉのリテラル（市区町村名）が出力される。データ項目「ｓｔｒｅｅｔ」の値として、ノード１３１ａから到達されるノード１３１ｊのリテラル（通り名）が出力される。
【００８４】
次に、端末装置１００の処理手順について説明する。
図１１は、可視化の手順例を示すフローチャートである。
（Ｓ１０）ガジェット選択部１２１は、Ｗｅｂページ上でのユーザ操作を検出し、ユーザが指定した焦点エンティティのＵＲＩを取得する。例えば、ガジェット選択部１２１は、ＤＢｐｅｄｉａのデータセットに属する企業のエンティティのＵＲＩを取得する。
【００８５】
（Ｓ１１）ガジェット選択部１２１は、設定情報記憶部１１３に記憶された設定テーブル１３４を参照して、ユーザ操作が検出されたＷｅｂページおよびステップＳ１０で取得したＵＲＩが示す焦点エンティティの種類に対応付けられたガジェットを選択する。
【００８６】
（Ｓ１２）クエリテンプレート抽出部１２２は、ステップＳ１１で選択されたガジェットに含まれるクエリテンプレートをガジェット記憶部１１２から抽出する。例えば、クエリテンプレート抽出部１２２は、クエリテンプレート１３３を抽出する。
【００８７】
（Ｓ１３）関連エンティティ探索部１２３は、ＲＤＦデータ記憶部１１１に記憶されたＲＤＦデータの中から関連エンティティを探索する。クエリ生成部１２４は、関連エンティティの探索結果とステップＳ１２で抽出されたクエリテンプレートとを用いてクエリを生成する。クエリ生成の詳細は後述する。
【００８８】
（Ｓ１４）クエリ実行部１２５は、ＲＤＦデータ記憶部１１１に記憶されたＲＤＦデータに対して、ステップＳ１３で生成されたクエリを実行し、検索結果データを生成する。例えば、クエリ実行部１２５は、クエリ結果テーブル１３６を生成する。
【００８９】
（Ｓ１５）可視化プログラム起動部１２６は、ステップＳ１１で選択されたガジェットに含まれる可視化プログラムをガジェット記憶部１１２から抽出する。例えば、可視化プログラム起動部１２６は、法人番号・商号・本店所在地を一覧表に埋め込むプログラムや、本店所在地を示すピンを地図に埋め込むプログラムを抽出する。
【００９０】
（Ｓ１６）可視化プログラム起動部１２６は、ステップＳ１５で抽出した可視化プログラムを、ステップＳ１４の検索結果データを与えて起動する。可視化プログラムにより、検索結果データを可視化した表示コンテンツが生成される。表示コンテンツは、複数の数値の関係を示すグラフ、ピンを埋め込んだ地図、一覧表などの図形的データを含む。例えば、可視化プログラム起動部１２６は、法人番号・商号・本店所在地を記載した一覧表や、本店所在地を示すピンが埋め込まれた地図を取得する。
【００９１】
（Ｓ１７）レンダリング部１２７は、ステップＳ１６の表示コンテンツを含むＷｅｂページをレンダリングしてディスプレイ４１に表示させる。
図１２は、第２の実施の形態のクエリ生成の手順例を示すフローチャートである。
【００９２】
このクエリ生成は、上記のステップＳ１３で実行される。
（Ｓ２０）関連エンティティ探索部１２３は、着目するエンティティ（着目点または着目エンティティ）を、ステップＳ１０の焦点エンティティに設定する。
【００９３】
（Ｓ２１）関連エンティティ探索部１２３は、着目エンティティが、設定情報記憶部１１３に記憶された設定テーブル１３４に登録されている終了条件を満たすか判断する。例えば、関連エンティティ探索部１２３は、着目エンティティの種類が法人番号データセットの法人型であるか（例えば、着目エンティティから法人番号データセットの法人型を示すエンティティへのリンクが存在するか）判断する。終了条件を満たす場合はステップＳ２７に処理が進み、終了条件を満たさない場合はステップＳ２２に処理が進む。
【００９４】
（Ｓ２２）関連エンティティ探索部１２３は、着目点を移動する関連エンティティ探索の回数（ステップＳ２３〜Ｓ２５の実行回数）と閾値とを比較し、探索回数が閾値を超えたか判断する。探索回数が閾値を超えた場合はステップＳ２６に処理が進み、探索回数が閾値以下である場合はステップＳ２３に処理が進む。
【００９５】
（Ｓ２３）関連エンティティ探索部１２３は、焦点エンティティから１以上のリンクを辿るパスのうち、設定情報記憶部１１３に記憶された設定テーブル１３４に登録されている探索条件を満たすパスであって未選択のものを検索する。１以上のリンクを辿るとき、リンクを順方向に辿る場合もあるし逆方向に辿る場合もある。探索条件を満たすパスの検索には、幅優先探索などの所定の探索アルゴリズムを使用する。好ましくは、焦点エンティティに近いエンティティ（焦点エンティティからのホップ数が小さいエンティティ）から優先的に終了条件を判定する。例えば、関連エンティティ探索部１２３は、ＤＢｐｅｄｉａのデータセットに含まれる企業のエンティティから法人番号データセットに含まれる企業のエンティティに到達するパスを選択する。
【００９６】
（Ｓ２４）関連エンティティ探索部１２３は、ステップＳ２３において探索条件を満たす新たなパスが検索されたか判断する。該当するパスが存在する場合はステップＳ２５に処理が進み、該当するパスが存在しない場合はステップＳ２６に処理が進む。
【００９７】
（Ｓ２５）関連エンティティ探索部１２３は、ステップＳ２３のパスの到達先にあるエンティティに着目点を移動する。そして、ステップＳ２１に処理が進む。
（Ｓ２６）関連エンティティ探索部１２３は、ステップＳ１０の焦点エンティティの周辺には探索条件および終了条件を満たす関連エンティティが存在しないと判断し、エラーを出力する。この場合、エラーを生じさせたガジェットについては、以降のステップＳ１４〜Ｓ１６の処理は実行されず表示コンテンツが生成されない。
【００９８】
（Ｓ２７）関連エンティティ探索部１２３は、現在の着目エンティティのＵＲＩを取得し、関連エンティティ（仮焦点エンティティ）のＵＲＩとして決定する。
（Ｓ２８）クエリ生成部１２４は、ステップＳ１２で抽出されたクエリテンプレートのパラメータに、ステップＳ２７の関連エンティティのＵＲＩを代入する。例えば、クエリ生成部１２４は、文字列「％ＵＲＩ％」を関連エンティティのＵＲＩに置換する。
【００９９】
第２の実施の形態の情報処理システムによれば、指定された焦点エンティティがクエリテンプレートに対応する終了条件を満たす場合、焦点エンティティのＵＲＩがクエリテンプレートのパラメータに代入されてクエリが生成される。一方、焦点エンティティがクエリテンプレートに対応する終了条件を満たさない場合、設定された探索条件に従ってＲＤＦデータの中から終了条件を満たす関連エンティティが探索される。そして、関連エンティティのＵＲＩがクエリテンプレートのパラメータに代入されてクエリが生成される。
【０１００】
これにより、クエリテンプレートのパラメータが想定する種類と異なる種類の焦点エンティティが指定され得る場合でも、そのクエリテンプレートを流用することができ、焦点エンティティの違いに応じて異なるクエリテンプレートを用意しなくてよい。例えば、検索したいデータの種類がｍ通りあり、焦点エンティティの種類がｎ通りあるとする。焦点エンティティの違いに応じて異なるクエリを用意する場合、ｎ×ｍ個のクエリテンプレートを作成することになる。これに対し、第２の実施の形態によれば、ｍ個のクエリテンプレートを用意すれば足りることになる。よって、Ｌｉｎｋｅｄ  Ｄａｔａから所望のデータを検索して可視化するソフトウェアの作成効率が向上する。例えば、焦点エンティティの種類を変えたＷｅｂページを、既存のガジェットを利用して実装することができる。
【０１０１】
［第３の実施の形態］
次に、第３の実施の形態を説明する。第２の実施の形態との違いを中心に説明し、第２の実施の形態と同様の事項については説明を省略することがある。
【０１０２】
第３の実施の形態の情報処理システムは、関連エンティティの探索結果およびクエリテンプレートからクエリを生成する方法が、第２の実施の形態と異なる。第３の実施の形態の情報処理システムは、図２〜８，１０と同様のハードウェア構成およびソフトウェア構成を用いて実装することができる。また、第３の実施の形態の端末装置は、図１１と同様の手順で可視化処理を実行することができる。そこで、以下の第３の実施の形態の説明では、図２〜８，１０，１１と同様の符号を使用することがある。
【０１０３】
図１３は、クエリテンプレートの書き換え例を示す図である。
第３の実施の形態では、端末装置１００は、焦点エンティティと異なる関連エンティティのＵＲＩをクエリテンプレート１３３に直接代入する代わりに、焦点エンティティのＵＲＩを代入できるようにクエリテンプレート１３３を一時的に書き換える。クエリテンプレート１３７は、クエリテンプレート１３３を書き換えたものである。
【０１０４】
クエリテンプレート１３７は、パラメータ「％ＵＲＩ％」と、変数「？ｕｒｉ」，「？ｎｕｍｂｅｒ」，「？ｎａｍｅ」，「？ｓｉｔｅ」，「？ｐｒｅｆ」，「？ｃｉｔｙ」，「？ｓｔｒｅｅｔ」を含む。クエリテンプレート１３７のパラメータ「％ＵＲＩ％」は、元のクエリテンプレート１３３とは異なり、ＤＢｐｅｄｉａのデータセットの中の企業を示すエンティティのＵＲＩが代入されることを想定したパラメータである。変数「？ｕｒｉ」は、元のクエリテンプレート１３３では使用されておらず書き換え時に追加された変数である。変数「？ｕｒｉ」は、法人番号データセットの中の企業を示すエンティティのＵＲＩを示す変数であり、元のクエリテンプレート１３３のパラメータに相当する。
【０１０５】
クエリテンプレート１３７に記載されたパラメータ「％ＵＲＩ％」に、ＤＢｐｅｄｉａのエンティティのＵＲＩを代入することで、それに対応する法人番号データセットのエンティティに関する基本三情報を検索するクエリを生成することができる。
【０１０６】
クエリテンプレート１３３からは、次のようにしてクエリテンプレート１３７を生成することができる。関連エンティティの探索において、焦点エンティティから関連エンティティを辿る際に経由するリンクを並べたパス履歴を記録しておく。経由する１以上のリンクを順番に並べたパスをｐとする。端末装置１００は、クエリテンプレート１３３の中で使用されていない新たな変数を定義し、クエリテンプレート１３３のパラメータ「％ＵＲＩ％」を上記の新たな変数に置換する。また、端末装置１００は、主語が「％ＵＲＩ％」、述語がｐ、目的語が上記の新たな変数である三つ組を検索条件に追加する。
【０１０７】
これにより、焦点エンティティと検索の起点となるエンティティとが紐付けられる。例えば、「％ＵＲＩ％  ＾＜ｈｔｔｐ：／／ｗｘｍｌｎｓ．ｃｏｍ／ｆｏａｆ／０．１／ｐｒｉｍａｒｙＴｏｐｉｃ＞  ？ｕｒｉ．」というステートメントが追加される。これは、検索の起点となるエンティティが、焦点エンティティからｐｒｉｍａｒｙＴｏｐｉｃのリンクを逆方向に辿ることで到達されるエンティティであることを示している。
【０１０８】
図１４は、第３の実施の形態のクエリ例を示す図である。
ここでは、ユーザから図５のノード１３１ｋのエンティティが焦点エンティティとして指定されたとする。指定された焦点エンティティは、ＤＢｐｅｄｉａのデータセットに属するエンティティであり法人番号データセットに属するエンティティではないため、設定テーブル１３４に登録された終了条件を満たさない。
【０１０９】
そこで、端末装置１００は、探索条件に従って焦点エンティティからリンクを辿り、図５のノード１３１ａのエンティティを関連エンティティとして検出する。第３の実施の形態では、端末装置１００は、焦点エンティティから関連エンティティに到達するパスを用いてクエリテンプレート１３３をクエリテンプレート１３７に書き換える。そして、端末装置１００は、クエリテンプレート１３７のパラメータ「％ＵＲＩ％」に対して当初指定された焦点エンティティのＵＲＩを代入する。これにより、クエリ１３８が生成される。クエリ１３８は、ノード１３１ｋのエンティティからノード１３１ａのエンティティに移動し、ノード１３１ａのエンティティを起点として基本三情報を検索するものである。
【０１１０】
図１５は、第３の実施の形態のクエリ生成の手順例を示すフローチャートである。
このクエリ生成は、上記のステップＳ１３で実行される。
（Ｓ３０）関連エンティティ探索部１２３は、着目するエンティティ（着目点または着目エンティティ）を、ステップＳ１０の焦点エンティティに設定する。
【０１１１】
（Ｓ３１）関連エンティティ探索部１２３は、着目エンティティが、設定テーブル１３４に登録されている終了条件を満たすか判断する。終了条件を満たす場合はステップＳ３８に処理が進み、終了条件を満たさない場合はステップＳ３２に処理が進む。
【０１１２】
（Ｓ３２）関連エンティティ探索部１２３は、着目点を移動する関連エンティティ探索の回数（ステップＳ３３〜Ｓ３６の実行回数）と閾値とを比較し、探索回数が閾値を超えたか判断する。探索回数が閾値を超えた場合はステップＳ３７に処理が進み、探索回数が閾値以下である場合はステップＳ３３に処理が進む。
【０１１３】
（Ｓ３３）関連エンティティ探索部１２３は、焦点エンティティから１以上のリンクを辿るパスのうち、設定テーブル１３４に登録されている探索条件を満たすパスであって未選択のものを検索する。例えば、幅優先探索などの所定の探索アルゴリズムを使用する。
【０１１４】
（Ｓ３４）関連エンティティ探索部１２３は、ステップＳ３３において探索条件を満たす新たなパスが検索されたか判断する。該当するパスが存在する場合はステップＳ３５に処理が進み、該当するパスが存在しない場合はステップＳ３７に処理が進む。
【０１１５】
（Ｓ３５）関連エンティティ探索部１２３は、パスの到達先に着目点を移動する。
（Ｓ３６）関連エンティティ探索部１２３は、焦点エンティティから着目エンティティに到達するパスを示すパス履歴を記録する。パス履歴は、例えば、焦点エンティティに近い順に１以上のリンクのＵＲＩを列挙した情報である。移動後の着目エンティティが移動前の着目エンティティから更に１つリンクを辿った先にある場合、辿ったリンクのＵＲＩを移動前のパス履歴の末尾に追加すればよい。そして、ステップＳ３１に処理が進む。
【０１１６】
（Ｓ３７）関連エンティティ探索部１２３は、ステップＳ１０の焦点エンティティの周辺には探索条件および終了条件を満たす関連エンティティが存在しないと判断し、エラーを出力する。この場合、エラーを生じさせたガジェットについては、以降のステップＳ１４〜Ｓ１６の処理は実行されず表示コンテンツが生成されない。
【０１１７】
（Ｓ３８）関連エンティティ探索部１２３は、現在の着目エンティティを関連エンティティと決定し、焦点エンティティから関連エンティティへのパスを決定し、決定したパスを示すパス履歴を出力する。
【０１１８】
（Ｓ３９）クエリ生成部１２４は、関連エンティティ探索部１２３から取得したパス履歴が示すパスを用いて、ステップＳ１２で抽出されたクエリテンプレートを書き換える。例えば、クエリ生成部１２４は、元のクエリテンプレートのパラメータを未使用の変数に置換する。また、クエリ生成部１２４は、主語をパラメータとし、述語をパスに含まれる１以上のリンクのＵＲＩの列とし、目的語を上記の変数とする検索条件を追加する。
【０１１９】
（Ｓ４０）クエリ生成部１２４は、ステップＳ３９で書き換えたクエリテンプレートのパラメータに、ステップＳ１０の焦点エンティティのＵＲＩを代入する。
第３の実施の形態の情報処理システムによれば、指定された焦点エンティティがクエリテンプレートに対応する終了条件を満たす場合、焦点エンティティのＵＲＩがクエリテンプレートのパラメータに代入されてクエリが生成される。一方、焦点エンティティがクエリテンプレートに対応する終了条件を満たさない場合、設定された探索条件に従ってＲＤＦデータの中から終了条件を満たす関連エンティティが探索される。そして、焦点エンティティから関連エンティティに到達するパスの情報を含むようにクエリテンプレートが書き換えられ、焦点エンティティのＵＲＩがクエリテンプレートのパラメータに代入されてクエリが生成される。これにより、第２の実施の形態と同様の効果が得られる。
【符号の説明】
【０１２０】
１０  表示装置
１１  記憶部
１２  処理部
１３  データベース
１３ａ，１３ｂ  エンティティ
１４  クエリテンプレート
１４ａ  パラメータ
１５  基準点条件
１６  クエリ
【図１】
2018194944.tif 000003
【図２】
2018194944.tif 000004
【図３】
2018194944.tif 000005
【図４】
2018194944.tif 000006
【図５】
2018194944.tif 000007
【図６】
2018194944.tif 000008
【図７】
2018194944.tif 000009
【図８】
2018194944.tif 000010
【図９】
2018194944.tif 000011
【図１０】
2018194944.tif 000012
【図１１】
2018194944.tif 000013
【図１２】
2018194944.tif 000014
【図１３】
2018194944.tif 000015
【図１４】
2018194944.tif 000016
【図１５】
2018194944.tif 000017