(57)【要約】  この出願の発明に係る数式記述構造化言語オブジェクト検索システムは、数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたWeb文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたWeb文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジン（４）と、クライアント（１）となるWebブラウザと、クライアント（１）から検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジン（３）に入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むWeb文書またはWeb文書部分を取得した後、クライアント（１）に送信するサーバ（３）を備える。
2007105759.tif 000002
【特許請求の範囲】
【請求項１】
数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたWeb文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたWeb文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジンと、
クライアントとなるWebブラウザと、
クライアントから検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジンに入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むWeb文書またはWeb文書部分を取得した後、クライアントに送信するサーバを備えることを特徴とする数式記述構造化言語オブジェクト検索システム。
【請求項２】
クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むWeb文書部分であり、サーバがそのWeb文書部分からキーワードと数式記述構造化言語オブジェクトを抽出し、抽出したキーワードを検索クエリとして検索をかけることを特徴とする請求項１に記載の数式記述構造化言語オブジェクト検索システム。
【請求項３】
クライアントが指定した数式記述構造化言語オブジェクトを含むWeb文書部分が、クライアントに提供されたWeb文書に埋め込まれた、ユーザのポインティングデバイス操作を検出し、指定された文書部分の検索クエリ情報をサーバに送信させるクライアントプログラムにより得られるものであることを特徴とする請求項２に記載の数式記述構造化言語オブジェクト検索システム。
【請求項４】
検索クエリ入力による関連する数式記述構造化言語オブジェクトが記述されたWeb文書またはWeb文書部分の取得が、数式記述構造化言語オブジェクトの文書木構造を用いて行われることを特徴とする請求項１に記載の数式記述構造化言語オブジェクト検索システム。
【請求項５】
数式記述構造化言語検索エンジンは、数式記述構造化言語オブジェクトを含むWeb文書ファイルを、数式記述構造化言語のタグとタグで囲まれた文字列を用いた索引付けされたデータ管理構造の転置ファイルとして管理していることを特徴とする請求項１に記載の数式記述構造化言語オブジェクト検索システム。
【請求項６】
サーバは、索引付けされたデータ管理構造の転置ファイルより、文書構造アクセス用パス規定言語を用いて検索結果を獲得することを特徴とする請求項５に記載の数式記述構造化言語オブジェクト検索システム。
【請求項７】
サーバは、取得した検索結果の数式記述構造化言語の文書木構造のすべてのパスに対して、文書構造アクセス用パス規定言語を用いて検索クエリに適合するか否かを検証することを特徴とする請求項６に記載の数式記述構造化言語オブジェクト検索システム。
【請求項８】
サーバは、数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出することを特徴とする請求項７に記載の数式記述構造化言語オブジェクト検索システム。
【請求項９】
サーバは、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うことを特徴とする請求項８に記載の数式記述構造化言語オブジェクト検索システム。
【請求項１０】
数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたWeb文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたWeb文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジンを用い、
サーバが、クライアントとなるWebブラウザから検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジンに入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むWeb文書またはWeb文書部分を取得した後、クライアントに返送することを特徴とする数式記述構造化言語オブジェクト検索方法。
【請求項１１】
クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むWeb文書部分であり、サーバがそのWeb文書部分からキーワードと数式記述構造化言語オブジェクトを抽出し、抽出したキーワードを検索クエリとして検索をかけることを特徴とする請求項１０に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１２】
クライアントが指定した数式記述構造化言語オブジェクトを含むWeb文書部分が、クライアントに提供されたWeb文書に埋め込まれた、ユーザのポインティングデバイス操作を検出し、指定された文書部分の検索クエリ情報をサーバに送信させるクライアントプログラムにより得られるものであることを特徴とする請求項１１に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１３】
検索クエリ入力による関連する数式記述構造化言語オブジェクトが記述されたWeb文書またはWeb文書部分の取得が、数式記述構造化言語オブジェクトの文書木構造を用いて行われることを特徴とする請求項１０に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１４】
数式記述構造化言語検索エンジンは、数式記述構造化言語オブジェクトを含むWeb文書ファイルを、数式記述構造化言語のタグとタグで囲まれた文字列を用いた索引付けされたデータ管理構造の転置ファイルとして管理していることを特徴とする請求項１０に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１５】
サーバは、索引付けされたデータ管理構造の転置ファイルより、文書構造アクセス用パス規定言語を用いて検索結果を獲得することを特徴とする請求項１４に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１６】
サーバは、獲得した検索結果の数式記述構造化言語の文書木構造のすべてのパスに対して、文書構造アクセス用パス規定言語を用いて検索クエリに適合するか否かを検証することを特徴とする請求項１５に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１７】
サーバは、数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出することを特徴とする請求項１６に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１８】
サーバは、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うことを特徴とする請求項１７に記載の数式記述構造化言語オブジェクト検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願の発明は、数式記述構造化言語オブジェクト検索システムおよび検索方法に関するものである。さらに詳しくは、この出願の発明は、Web文書に含まれる数式を高速に検出することのできる新しい数式記述構造化言語オブジェクト検索システムおよび検索方法に関するものである。
【背景技術】
【０００２】
従来のWeb検索エンジンは、キーワードを元にそのキーワードが含まれるWeb文書を探すものであった。しかし、検索クエリにはアルファベットと数字、全角のひらがな、カタカナ、漢字、全角記号を含んだ文字列しか指定できず、数式を入力することはできなかった。したがって、従来のWeb検索エンジンでは、Web文書に含まれる数式を検索することはできなかった。【０００３】
数式記述構造化言語としてのMathML (Mathematics Markup Language)を対象とした類似数式検索技術は、研究されている（中西崇文，岸本貞弥，村方衛，大塚透，櫻井鉄也，北川高嗣：数式データを対象とした複合連想検索システムの実現，日本データベース学会Letters, Vol.4, No.1, 2005）が、数式に関連する文書部分の検索や、変数変換、数式展開などはまだ実現されていない。また、上記類似数式検索技術はベクトル空間モデルを用いているため、検索速度が遅いという問題があった。【０００４】
ここでMathMLとは、XML（文書やデータの意味を記述するための言語の一つ。「タグ」と呼ばれる特定の文字列で地の文に構造を埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できる）ベースの数式記述言語のことであり、1998年4月にW3C（WWWで利用される技術の標準化をすすめる団体）勧告として公開されたものである。MathMLでは数式の表記と数式の意味を伝えるための２種類のタグが用意されている。MathMLファイルは単独で使用されるほか、他のXML文書に埋め込んで使用することができる。XHTMLとの連携を意識して、Webブラウザでも対応が進むものと考えられている。
【発明の開示】
【０００５】
そこで、この出願の発明は、以上のとおりの事情に鑑みてなされたもので、この出願の発明は、Web文書に含まれる数式を高速に検出することができ、数式に関連する文書部分の検索や、変数変換、数式展開なども可能とする、新しい数式記述構造化言語オブジェクト検索システムおよび検索方法を提供することを課題とする。
【０００６】
この出願の発明は、上記の課題を解決するものとして、第１には、数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたWeb文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたWeb文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジンと、クライアントとなるWebブラウザと、クライアントから検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジンに入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むWeb文書またはWeb文書部分を取得した後、クライアントに送信するサーバを備えることを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【０００７】
また、第２には、上記第１の発明において、クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むWeb文書部分であり、サーバがそのWeb文書部分からキーワードと数式記述構造化言語オブジェクトを抽出し、抽出したキーワードを検索クエリとして検索をかけることを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【０００８】
上記２の発明においては、クライアントが指定した数式記述構造化言語オブジェクトを含むWeb文書部分を、ユーザのポインティングデバイス操作イベントにより得られるものとすることができる。
【０００９】
また、第３には、上記第２の発明において、クライアントが指定した数式記述構造化言語オブジェクトを含むWeb文書部分が、クライアントに提供されたWeb文書に埋め込まれた、ユーザのポインティングデバイス操作を検出し、指定された文書部分の検索クエリ情報をサーバに送信させるクライアントプログラムにより得られるものであることを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１０】
また、第４には、上記第１の発明において、検索クエリによる関連する数式記述構造化言語オブジェクトが記述されたWeb文書またはWeb文書部分の取得が、数式記述構造化言語オブジェクトの文書木構造を用いて行われることを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１１】
また、第５には、上記第１の発明において、数式記述構造化言語検索エンジンは、数式記述構造化言語オブジェクトを含むWeb文書ファイルを、数式記述構造化言語のタグとタグで囲まれた文字列を用いた索引付けされたデータ管理構造の転置ファイルとして管理していることを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１２】
また、第６には、上記第５の発明において、サーバは、索引付けされたデータ管理構造の転置ファイルより、文書構造アクセス用パス規定言語を用いて検索結果を獲得することを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１３】
また、第７には、上記第６の発明において、サーバは、取得した検索結果の数式記述構造化言語の文書木構造のすべてのパスに対して、文書構造アクセス用パス規定言語を用いて検索クエリに適合するか否かを検証することを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１４】
また、第８には、上記第７の発明において、サーバは、数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出することを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１５】
また、第９には、上記第８の発明において、サーバは、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うことを特徴とする数式記述構造化言語オブジェクト検索システムを提供する。
【００１６】
本発明の数式記述構造化言語オブジェクト検索システムの好ましい態様としては、次のようなものを挙げることができる。
【００１７】
上記発明において、抽出した関連するWeb文書またはWeb文書部分を、ユーザがポインティングデバイス操作を行ったWeb文書中でイベントが発生したオブジェクトの、兄弟または子供のノードとして挿入させること。
【００１８】
上記発明において、サーバは、クライアントからユーザが指定した２つの数式記述構造化言語オブジェクトの検索クエリ情報を受け取り、受け取った検索クエリ情報から２つの数式記述構造化言語オブジェクトを抽出して検索クエリとし、これら２つの数式記述構造化言語オブジェクトの間にある１つ以上の数式記述構造化言語オブジェクトがあるWeb文書部分を取得して式展開検索を行うこと。
【００１９】
上記発明において、サーバは、ユーザが指定した２つの数式記述構造化言語オブジェクトの間にある１つ以上の数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出し、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うこと。
【００２０】
上記発明において、クライアントプログラムは、ユーザが指定した２つの数式記述構造化言語オブジェクトが含まれる文書木構造の部分構造を、獲得した部分構造で置き換えるか、前記部分構造の兄弟または子供オブジェクトとして挿入すること。
【００２１】
上記発明において、数式記述構造化言語をMathML (Mathematics Markup Language)とすること。
【００２２】
上記発明において、文書木をDOM (Document Object Model)とすること。
【００２３】
上記発明において、文書構造アクセス用パス規定言語をXPath (XML Path Language)とすること。
【００２４】
上記発明において、ポインティングデバイスをマウスとすること。
【００２５】
上記発明において、クライアントからの検索クエリ情報を、グラフィカル数式エディタまたはテキストエディタを用いて直接入力されたMathMLオブジェクトとすること。
【００２６】
また、第１０には、数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたWeb文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたWeb文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジンを用い、サーバが、クライアントとなるWebブラウザから検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジンに入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むWeb文書またはWeb文書部分を取得した後、クライアントに送信することを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００２７】
また、第１１には、上記第１０の発明において、クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むWeb文書部分であり、サーバがそのWeb文書部分からキーワードと数式記述構造化言語オブジェクトを抽出し、抽出したキーワードを検索クエリとして検索をかけることを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００２８】
上記第１１の発明においては、クライアントが指定した数式記述構造化言語オブジェクトを含むWeb文書部分を、ユーザのポインティングデバイス操作イベントにより得られるものとすることができる。
【００２９】
また、第１２には、上記第１１の発明において、クライアントが指定した数式記述構造化言語オブジェクトを含むWeb文書部分が、クライアントに提供されたWeb文書に埋め込まれた、ユーザのポインティングデバイス操作を検出し、指定された文書部分の検索クエリ情報をサーバに送信させるクライアントプログラムにより得られるものであることを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３０】
また、第１３には、上記第１０の発明において、検索クエリによる関連する数式記述構造化言語オブジェクトが記述されたWeb文書またはWeb文書部分の取得が、数式記述構造化言語オブジェクトの文書木構造を用いて行われることを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３１】
また、第１４には、上記第１０の発明において、数式記述構造化言語検索エンジンは、数式記述構造化言語オブジェクトを含むWeb文書ファイルを、数式記述構造化言語のタグとタグで囲まれた文字列を用いた索引付けされたデータ管理構造の転置ファイルとして管理していることを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３２】
また、第１５には、上記第１４の発明において、サーバは、索引付けされたデータ管理構造の転置ファイルより、文書構造アクセス用パス規定言語を用いて検索結果を獲得することを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３３】
また、第１６には、上記第１５の発明において、サーバは、獲得した検索結果の数式記述構造化言語の文書木構造のすべてのパスに対して、文書構造アクセス用パス規定言語を用いて検索クエリに適合するか否かを検証することを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３４】
また、第１７には、上記第１６の発明において、サーバは、数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出することを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３５】
また、第１８には、上記第１７の発明において、サーバは、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うことを特徴とする数式記述構造化言語オブジェクト検索方法を提供する。
【００３６】
本発明の数式記述構造化言語オブジェクト検索方法の好ましい態様としては、次のようなものを挙げることができる。
【００３７】
上記発明において、抽出した関連するWeb文書またはWeb文書部分を、ユーザがポインティングデバイス操作を行ったWeb文書中でイベントが発生したオブジェクトの、兄弟または子供のノードとして挿入させること。
【００３８】
上記発明において、サーバは、クライアントからユーザが指定した２つの数式記述構造化言語オブジェクトの検索クエリ情報を受け取り、受け取った検索クエリ情報から２つの数式記述構造化言語オブジェクトを抽出して検索クエリとし、これら２つの数式記述構造化言語オブジェクトの間にある１つ以上の数式記述構造化言語オブジェクトがあるWeb文書部分を獲得して式展開検索を行うこと。
【００３９】
上記発明において、サーバは、ユーザが指定した２つの数式記述構造化言語オブジェクトの間にある１つ以上の数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出し、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うこと。
【００４０】
上記発明において、サーバは、クライアントプログラムに、ユーザが指定した２つの数式記述構造化言語オブジェクトが含まれる文書木構造の部分構造を、獲得した部分構造で置き換えること。
【００４１】
上記発明において、数式記述構造化言語をMathML (Mathematics Markup Language)とすること。
【００４２】
上記発明において、文書木をDOM (Document Object Model)とすること。
【００４３】
上記発明において、文書構造アクセス用パス規定言語をXPath (XML Path Language)とすること。
【００４４】
上記発明において、ポインティングデバイスをマウスとすること。
【００４５】
上記発明において、クライアントからの検索クエリ情報を、グラフィカル数式エディタまたはテキストエディタを用いて直接入力されたMathMLオブジェクトとすること。
【００４６】
また、本発明は、上記いずれかに記載の数式記述構造化言語オブジェクト検索方法をコンピュータに実行させるための数式記述構造化言語オブジェクト検索プログラムを提供する。
【００４７】
さらに、本発明は、上記数式記述構造化言語オブジェクト検索プログラムを記録した、フレキシブルディスクやＣＤ、ＤＶＤ、光磁気ディスク等のコンピュータ読取可能な記録媒体を提供する。
【００４８】
この出願の明細書において、「MathML」は前記したとおりのものであり、「数式記述構造化言語」、「文書木構造」、「DOM」、「XPath」、「索引付け」とはそれぞれ下記のものを意味する。
【００４９】
「数式記述構造化言語」とは、MathMLのほか、数式をXMLのような構造化言語で記述した言語のことをいう。
【００５０】
「文書木構造」とは、DOM (Document Object Model)構造や、構造化文書をそのタグを解析することによって木構造として得られる文書構造のことをいう。
【００５１】
「DOM」とは、W3Cで標準化されたHTML文書およびXML文書のようなWeb文書のためのアプリケーション=プログラミング=インターフェース(API)のことをいう。これは、計算機が文書の論理的構造や、前記構造に基づく文書部分にアクセスする方法や操作の方法を定義するものである。具体的には、タグにより構造化されたWeb文書は、計算機のプログラム上で木構造として表現され、その木構造を利用して、自由に文書構造及び前記構造に基づく文書部分にアクセスできるものである。
【００５２】
「文書構造アクセス用パス規定言語」とは、XPathに代表される文書構造にアクセスするためのパスを規定した言語のことをいう。
【００５３】
「XPath」とは、XML文書の中の特定の要素を指し示す記述方法を定めた言語のことをいい、W3Cが勧告した標準仕様である。XSLTやXPointerで使われる位置指定の記述方式を独立させたものでもある。基本的な記述の仕方は、文書木構造の頂点となるルートノードを「/」で表し、以下、「/」で区切って要素をたどり、その名前を記述していく。たとえば、a要素の中のbという値を参照するには「/a/b」と記述する。また、ノードのデータ型やノードの種類、名前空間 (XML namespace)を使用して条件式や演算などを含んだ複雑な位置指定を行うこともできる。
【００５４】
「索引付け」とは、テキストから検索語を抽出する処理のことである。索引システムを完成するためには、テキスト中からそのテキストを特徴付ける索引語を抽出する必要がある。
【００５５】
この出願の発明によれば、数式をクエリとした文書検索を高速で行うことが可能となる。
【００５６】
また、この出願の発明によれば、マウス操作により簡単に検索クエリとなる数式が入力できる；閲覧しているWeb文書中に、検索に適合した数式と関連するWeb文書部分を、動的に埋め込むことが可能となる；数式中に異なる変数名を用いていても、数式の構造が同じであれば検索できる；閲覧しているWeb文書中の数式の変数名にあわせて、検索結果の数式の変数名を変換して、埋め込むことができる；検索クエリに展開元との式と展開先の式を指定すると、その式展開を行っているWeb文書を検索することができるという顕著な効果も得られる。
【００５７】
そして、この出願の発明は、教育コンテンツの生成、教育コンテンツの再構成サービス、特許や科学技術文書などの類似検索、数式の検索サービス、数式のライブラリのポータルサービス、上記製品・サービスにおけるWeb広告サービス等の事業に貢献することが期待される。
【図面の簡単な説明】
【００５８】
【図１】図１は、この出願の発明に係る数式記述構造化言語オブジェクト検索システムの一実施形態の構成を模式的に示す図である。
【図２】図２は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図３】図３は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図４】図４は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図５】図５は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図６】図６は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図７】図７は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図８】図８は、図１のMathMLオブジェクト検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【図９】図９は、DOM木上の部分木の抽出の説明図である。
【図１０】図１０は、キーワードとMathMLオブジェクト抽出の例を示す図である。
【図１１】図１１は、縦型探索時の左端のパスのXPath表記を示す図である。
【図１２】図１２は、すべてのパスのXPath表記を示す図である。
【図１３】図１３は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図１４】図１４は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図１５】図１５は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図１６】図１６は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図１７】図１７は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図１８】図１８は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図１９】図１９は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図２０】図２０は、図１のMathMLオブジェクト検索システムにより式展開検索を行うときの手順を示すフローチャートである。
【図２１】図２１は、検索システムにより関連文書検索を行うときの手順を示すフローチャートである。
【発明を実施するための最良の形態】
【００５９】
この出願の発明は上記のとおりの特徴をもつものであるが、以下にその実施の形態について説明する。【００６０】
図１に、この出願の発明に係る数式記述構造化言語オブジェクト検索システムの一実施形態の構成を模式的に示す。【００６１】
この実施形態では、数式記述構造化言語としてMathMLを、文書木構造としてDOMを、アプリケーション・プラミング・インターフェースとしてXPathをそれぞれ用いたものを例として説明する。【００６２】
この実施形態のMathMLオブジェクト検索システムは、ユーザ側に配置されたクライアント（１）となるWebブラウザ；センター側に配置されたクライアント（１）のWebブラウザに提供するWeb文書中にユーザのマウス操作を検出するためのクライアントプログラムを埋め込むユニットとしてのプロキシサーバ（２）、MathMLを含む関連Web文書部分を検索するサービスを行うサーバ（３）、及びMathMLを含むWeb文書をMathMLを検索クエリとして検索できるMathML文書検索エンジン（４）；一般の検索エンジン（５）から構成される。サーバ（３）は図１に示すように、検索クエリ抽出、MathML適合判定、変数変換、関連文書部分抽出等の機能を備えている。クライアントプログラムは、ユーザによるマウスイベントの発生を検出し、ユーザが指定したMathMLオブジェクトを含むWeb文書部分をサーバ（３）に送信し、イベントが発生したオブジェクトに対し、サーバ（３）から戻ってきた、抽出した関連Web文書またはWeb文書部分を挿入する等の機能を備えている。プロキシサーバ（２）とMathML文書検索エンジン（４）のいずれか一方あるいは両方はサーバ（３）と一体となっていてもよいし、別々となっていてもよい。【００６３】
MathML文書検索エンジン（２）は、MathMLオブジェクトのDOM構造をもとに、インターネットのウェブ上にある、MathMLオブジェクトが埋め込まれた多数のWeb文書をあらかじめクローラーにより収集し、MathMLオブジェクトのDOM構造を索引語として索引付けし、索引付けしたWeb文書を転置ファイルの形式でデータベースに格納している。実際にはWeb文書ファイルのURLを格納している。また、そのデータベースで管理している転置ファイルは適時更新される。【００６４】
この実施形態では、クライアント（１）からサーバ（３）に検索クエリ情報が送られ、サーバ（３）が、その検索クエリ情報をもとに検索クエリをMathML文書検索エンジン（４）に入力することにより検索をかけ、関連するMathMLオブジェクトを含むWeb文書またはWeb文書部分を取得した後、クライアント（１）へ戻す。この場合、クライアント（１）からサーバ（３）に送られる検索クエリ情報としては、様々なバリエーションがある。すなわち、このような検索クエリ情報としては、MathMLの数式そのものであってもよいし、通常使用されているグラフィカル数式エディタで入力されたMathMLの数式であってもよいし、テキストエディタでXMLのタグを記入しながら入力されたMathMLの数式であってもよいし、MathMLオブジェクトを含むWeb文書部分であってもよい。【００６５】
以下、この実施形態のMathMLオブジェクト検索システムについて、ユーザが指定した、MathMLオブジェクトを含むWeb文書部分に関連する文書部分を検索する場合の処理手順（関連文書検索）と、ユーザが指定した２つのMathMLオブジェクトからその２つの式の間の式展開について記述した文書部分を検索する場合の処理手順（式展開検索）を実行する場合に分けて詳細に説明する。【００６６】
先ず、関連文書検索を行う場合について図２〜図８のフローチャートを参照しながら述べる。
＜関連文書検索＞
［１］ユーザのマウス操作で指定した文書部分の抽出（図２のステップＳ１）
先ず、ユーザは、クライアント（１）により希望のMathMLオブジェクトを含んだWebページを取得する。その際、プロキシサーバ（２）により、クライアント（１）のWeb文書中にユーザのマウス操作を検出するためのクライアントプログラムを埋め込む（図３のステップＳ１０１）。ユーザはマウス操作でMathMLオブジェクトを含んだWeb文書部分を指定する。クライアント（１）のクライアントプログラムは、ユーザのマウス操作を検出してマウス操作で指定した文書部分を抽出し（ステップＳ１０２）、マウスイベントが発生したオブジェクトのDOM木上の親オブジェクト（または指定範囲内の先祖オブジェクト）を含む部分木を抽出する（ステップＳ１０３；図９参照）。クライアント（２）のクライアントプログラムは、抽出した部分木中のソースコードをサーバ（３）に送信する（ステップＳ１０４）。サーバ（３）側では、受け取ったソースコードからキーワードとMathMLオブジェクトを抽出する（ステップＳ１０５；図１０参照）。
［２］キーワードからの関連Webページの検索と関連文書部分の抽出（図２のステップＳ２）
サーバ（３）では、抽出したキーワードでMathML文書検索エンジン（４）に検索をかけ（図４のステップＳ２０１）、その検索結果中のWeb文書から、Web文書中にMathMLオブジェクトを含むものを選択する（ステップＳ２０２）。そして、選択したWeb文書のDOM木の構造上で検索キーワードに最も近い位置にあるMathMLオブジェクトを探し（ステップＳ２０３）、その検索キーワードとMathMLオブジェクトを含む部分木（または前記部分木のルートノードから指定範囲内の先祖オブジェクトを含む部分木）を抽出する（ステップＳ２０４）。【００６７】
ここで、選択したWeb文書のDOM木の構造上で検索キーワードに最も近い位置にあるMathMLオブジェクトを探す方法としては、たとえば、次のような方法がある。すなわち、検索キーワードのあるDOM木構造上のノードから、その先祖ノードあるいはその子孫ノードをたどっていき、そのどちらかで最も近い位置にあるMathMLオブジェクトを特定する。そして、検索キーワードあるDOM木構造上のノードとMathMLオブジェクトを含むような最小の部分木を抽出する。具体的には、検索キーワードのあるノードの方がMathMLオブジェクトよりもDOM木構造上、上位にある場合には、検索キーワードのあるノードから下位構造をすべて抽出する。MathMLオブジェクトの方が、検索キーワードのあるノードよりも、DOM木構造上、上位にある場合には、MathMLオブジェクトのあるノードよりも下位構造をすべて抽出する。
［３］MathMLオブジェクトからの関連Webページの検索と関連文書部分の抽出（図２のステップＳ３）
サーバ（３）では、抽出したMathMLオブジェクトのDOM構造（以下、検索元DOM構造という）を獲得し、以下の手順で処理を行う。【００６８】
（ｉ）検索元DOM構造を縦型探索した時の一番初めのパスをXPathで表現する（図５のステップＳ３０１）。ただしこのとき、XPathには葉ノードの文字列値を評価するものとする（図１１（ａ）参照）。上記XPathで、MathML文書検索エンジン（４）に問合せを行う（ステップＳ３０２）。検索の入力は、XPathで与えられる。ステップＳ３０３において、問い合わせた結果がnullであれば、下記（ｉｉ）を実行する。問い合わせた結果がnullでなければ、問合せの結果得られたWeb文書から、XPathに適合したMathMLオブジェクトを抽出し（ステップＳ３０４）、そのDOM構造（検索結果DOM構造）を獲得する（ステップＳ３０５）。そして、検索結果DOM構造と検索元DOM構造を比較する（ステップＳ３０６）。このとき、葉ノードの文字列値まで一致するかどうかを調べる。この比較には、ルートからすべての葉ノードまでのパスのXPathを獲得し（このとき、XPathには葉ノードの文字列値を評価するものとする）（図１２（ａ）参照）、そのすべてのパスのXPathが数も内容も完全一致するかどうかを調べる（ステップＳ３０７）。完全一致すれば検索結果のWeb文書から、上記MathMLオブジェクトの親オブジェクトを含む部分木（または前記親オブジェクトから指定範囲内の先祖オブジェクトを含む部分木）を抽出して終了する（ステップＳ３０８）。完全一致しなければ下記（ｉｉｉ）を実行する。【００６９】
（ｉｉ）検索元DOM構造を縦型探索した時の一番初めのパスをXPathで表現する（図６のステップＳ３１１）。ただしこのとき、XPathには葉ノードの文字列値を評価しないものとする（図１１（ｂ）参照）。上記XPathで、MathML文書検索エンジン（４）に問合せを行う（ステップＳ３１２）。ステップＳ３１３において、問い合わせた結果がnullかどうか判断し、問合せ問い合わせた結果がnullであれば、関連文書部分はないものとして終了する。問い合わせた結果がnullでなければ、問合せの結果得られたWeb文書から、XPathに適合したMathMLオブジェクトを抽出し（ステップＳ３１４）、そのDOM構造（検索結果DOM構造）を獲得する（ステップＳ３１５）。そして下記（ｉｉｉ）を実行する。【００７０】
（ｉｉｉ）検索結果DOM構造と検索元DOM構造と比較する（図７のステップＳ３２１）。この比較には、ルートからすべての葉ノードまでのパスのXPathを獲得し（このとき、XPathには葉ノードの文字列値を評価しないものとする）（図１２（ｂ）参照）、そのすべてのパスのXPathが数も内容も完全一致するかどうかを調べる。ステップＳ３２２の比較において、完全一致すれば、下記（ｉｖ）を実行する。完全一致しなければ、関連文書部分はないものとして終了する。【００７１】
（ｉｖ）検索結果DOM構造と検索元DOM構造の葉ノードの文字列が一致しない箇所を特定する。本特定には、両DOM構造のXPathを獲得（このとき、XPathには葉ノードの文字列値を評価するものとする）して（図８のステップＳ３３１、Ｓ３３２）、それらXPathの一致しない箇所を調べることで行う。検索結果のWeb文書から、上記MathMLオブジェクトの親オブジェクトを含む部分木（または前記親オブジェクトから指定範囲内の先祖オブジェクトを含む部分木）を抽出して（ステップＳ３３３）、上記文字列が一致しない葉ノードの文字列を、検索元DOM構造の葉ノードの文字列で置き換える（ステップＳ３３４）。【００７２】
上記では、MathML文書検索エンジン（４）はMathMLオブジェクトを含むWeb文書を管理する場合を例に説明したが、MathML文書検索エンジン（４）はMathMLオブジェクトそのものを管理するものとすることもでき、また、MathMLオブジェクトを含むWeb文書部分を管理するものとすることもできる。【００７３】
また、MathML文書検索エンジン（４）は転置ファイルで実装されているが、転置ファイルは、索引（インデックス）としてMathMLのDOM構造の一番初めのパスだけを記憶するバージョン、索引（インデックス）としてMathMLのDOM構造の全てのパスを記憶するバージョン、索引（インデックス）としてMathMLのDOM構造のいくつかの特定のパスを記憶しているバージョンのいずれであってもよい。
［４］関連文書部分の埋め込み（図２のステップＳ４）
上記の手順［２］または［３］で抽出した関連Web文書部分をクライアント（２）のクライアントプログラムに送信する。クライアントプログラムは、抽出された関連Web文書部分を、マウス操作イベントが発生したオブジェクトの兄弟または子供のノードとして挿入する。【００７４】
最終的にクライアント（１）の画面に表示されるものは、もともと閲覧していたWeb文書に関連する文書部分を動的に挿入する場合には、検索結果として返されたWeb文書から１つを選択し、関連する文書部分に挿入されたものである。なお、挿入後に、次候補を挿入しなおすこともできる。【００７５】
次に、式展開検索を行う場合について図１３〜図２１のフローチャートを参照しながら述べる。
＜式展開検索＞
［５］ユーザのマウス操作で指定したMathMLオブジェクトの抽出（図１３のステップＳ５）
クライアント（２）は、上記の手順［１］でWeb文書に埋め込まれたクライアントプログラムで、ユーザのマウス操作を検出する（図１４のステップＳ５０１）。次に、特定のマウスイベントが発生した２つのMathMLオブジェクトを取得する（ステップＳ５０２）。そして、クライアント（２）は２つのMathMLオブジェクトのソースコードをサーバ（３）に送信する（ステップＳ５０３）。サーバ（３）は、受け取ったソースコードをもとにMathMLオブジェクトを抽出する（ステップＳ５０４）。
［６］MathMLオブジェクトからの関連Webページの検索（図１３のステップＳ６）  サーバ（３）は以下の手順で関連Webページの検索を行う。【００７６】
（ｉ）抽出した2つのMathMLオブジェクトの文書木構造（以下、検索元文書木構造）を取得する（図１５のステップＳ６０１）。1つ目のMathMLオブジェクトの文書木構造を検索元文書木構造（展開元）、2つ目のMathMLオブジェクトの文書木構造を検索元文書木構造（展開先）と呼ぶ。検索元文書木構造（展開元）を縦型探索した時の一番初めのパスをXPathで表現し（葉ノードの文字列値を評価するものとする）（ステップＳ６０２）、MathML文書検索エンジン（４）に問合せを行う（ステップＳ６０３）。ステップＳ６０４において問い合わせた結果がnullであるか判断する。問い合わせた結果がnullであれば、下記の（ｉｖ）を実行する。問い合わせた結果がnullでなければ、下記の（ｉｉ）を実行する。【００７７】
（ｉｉ）検索元文書木構造（展開元）での問合せの結果得られたWeb文書から、XPathに適合したMathMLオブジェクトを抽出し（図１６のステップＳ６１１）、その文書木構造を取得する（ステップＳ６１２）。そして、取得した文書木構造と検索元文書木構造（展開元）を比較する。このとき、葉ノードの文字列値まで一致するかどうかを調べる。また、検索元文書木構造（展開先）を縦型探索した時の一番初めのパスをXPathで表現し（葉ノードの文字列値を評価するものとする）（ステップＳ６１３）、上記Web文書にこのXPathを含むMathMLオブジェクトが含まれているかどうかを確認し（ステップＳ６１４）、含まれていれば、その文書木構造を取得する。そして、取得した文書木構造と検索元文書木構造（展開先）と比較する（ステップＳ６１５）。このとき、葉ノードの文字列値まで一致するかどうかを調べる。両方の調査において完全一致するものがあれば下記（ｉｉｉ）を実行する。そうでなければ終了する。【００７８】
（ｉｉｉ）上記の（ｉｉ）で得られたWeb文書において、検索元文書木構造（展開元）と同じ文書木構造、検索元文書木構造（展開先）と同じ文書木構造の間に、１つ以上のMathMLオブジェクトが含まれているかどうかを確認する（図１７のステップ６２１、Ｓ６２２）。１つ以上のMathMLオブジェクトが含まれていればそれを式展開とみなし（ステップＳ６２３）、上記２つの文書木構造を含む最小部分木（または前記最小部分木のルートオブジェクトから指定範囲内の先祖オブジェクトを含む部分木）を抽出し（ステップＳ６２４）、下記手順［７］を実行する。１つもMathMLオブジェクトが含まれていなければ、終了する。【００７９】
（ｉｖ）検索元文書木構造（展開元）を縦型探索した時の一番初めのパスをXPathで表現する（図１８のステップＳ６３１）。ただしこのとき、XPathは葉ノードの文字列値を評価しないものとする。上記XPathで、MathML文書検索エンジン（４）に問合せを行う（ステップＳ６３２）。ステップＳ６３３で問い合わせた結果がnullであるか判断し、問い合わせた結果がnullであれば、関連文書部分はないものとして終了する。問い合わせた結果がnullでなければ、下記（ｖ）を実行する。【００８０】
（ｖ）検索元文書木構造（展開元）での問合せの結果得られたWeb文書から、XPathに適合したMathMLオブジェクトを抽出し（図１９のステップＳ６４１）、その文書木構造（以下、検索結果文書木構造（展開元））を取得する（ステップ６４２）。そして、検索結果文書木構造（展開元）それと、検索元文書木構造（展開元）と比較する。このとき、葉ノードの文字列値は評価しない。また、検索元文書木構造（展開先）を縦型探索した時の一番初めのパスをXPathで表現し（葉ノードの文字列値は評価しないものとする）（ステップＳ６４３）、上記Web文書にこのXPathを含むMathMLオブジェクトが含まれているかどうかを確認し（ステップＳ６４４）、含まれていれば、その文書木構造を取得する（以下、検索結果文書木構造（展開先））。そして検索結果文書木構造と検索元文書木構造（展開先）を比較する（ステップＳ６４６、ステップＳ６４７）。このとき、葉ノードの文字列値は評価しない。両方の調査において完全一致するものがあれば下記（ｖｉ）を実行する。そうでなければ終了する。【００８１】
（ｖｉ）上記（ｖ）で得られたWeb文書において、検索結果文書木構造（展開元）と検索結果文書木構造（展開先）の間に、１つ以上のMathMLオブジェクトが含まれているかどうかを確認する（図２０のステップＳ６５１、ステップＳ６５２）。１つ以上のMathMLオブジェクトが含まれていればそれを式展開とみなし（ステップＳ６５３）、上記２つの文書木構造を含む最小部分木（または前記最小部分木のルートオブジェクトから指定範囲内の先祖オブジェクトを含む部分木）を抽出し（ステップＳ６５４）、下記（ｖｉｉ）を実行する。１つもMathMLオブジェクトが含まれていなければ、終了する。【００８２】
（ｖｉｉ）検索元文書木構造（展開元）と検索結果文書木構造（展開元）を比較し、値の異なる葉ノードを検出する（図２１のステップＳ６６１）。その葉ノードにおける検索元文書木構造（展開元）の値（以下、検索元値）と、検索結果文書木構造（展開元）での値（以下、検索結果値）を記憶しておく（ステップＳ６６２）。上記（ｖｉ）で得られた部分木において、検索結果文書木構造（展開元）から検索結果文書木構造（展開先）の間にあるすべてのMathMLオブジェクトにおいて、検索結果値を持つ葉ノードの値を検索元値で置き換える。下記手順（７）を実行する。
［７］取得した部分木をクライアントプログラムに送信する（図１３のステップＳ７）。
［８］クライアントプログラムは、検索元文書木構造（展開元）から検索元文書木構造（展開先）の文書部分を獲得した部分木で置き換えるか、前記部分木の兄弟または子供オブジェクトとして挿入する（図１３のステップＳ８）。【００８３】
以上述べた関連文書検索のモードと式展開検索のモードの切り替えは、たとえばWebブラウザにクライアントプログラムをダウンロードして実行した時に、クライアントプログラム用のウィンドウが開き、その上でラジオボタンなどをマウスで切り替えるような形式か、マウスのドラッグの操作により、複数のオブジェクトを指定した時に、その中に２つ以上のMathMLオブジェクトが入っていれば、ドラッグ操作を終了するときに（マウスのボタンを離した時に）、ポップアップウィンドウが表示され、その上でラジオボタンなどをマウスで切り替えるような形式を採用することができるが、これらに限定されない。【００８４】
式展開検索においても、前記関連文書検索の場合と同様に、MathML文書検索エンジン（４）はMathMLオブジェクトを含むWeb文書を管理する場合を例に説明したが、MathML文書検索エンジン（４）はMathMLオブジェクトそのものを管理するものとすることもでき、また、MathMLオブジェクトを含むWeb文書部分を管理するものとすることもできる。【００８５】
また、MathML文書検索エンジン（４）が実装する転置ファイルも、前記関連文書検索の場合と同様に、索引（インデックス）としてMathMLのDOM構造の一番初めのパスだけを記憶するバージョン、索引（インデックス）としてMathMLのDOM構造の全てのパスを記憶するバージョン、索引（インデックス）としてMathMLのDOM構造のいくつかの特定のパスを記憶しているバージョンのいずれであってもよい。【００８６】
以上、この出願の発明を一実施形態に基づいて説明したが、この出願の発明はこの実施形態に限定されるものではなく、種々の変形、変更が可能である。【００８７】
たとえば、上記実施形態では、クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むWeb文書部分としたが、グラフィカル数式エディタまたはテキストエディタを用いて直接入力されたMathMLオブジェクトとしてもよい。この場合、通常の検索エンジンと同様、複数のWeb文書のタイトルと、各Web文書内における入力したMathMLオブジェクトの周辺部分が、スニペット（入力したキーワード付近の要約テキスト）として表示させることができる。【００８８】
また、上記実施形態では、数式記述構造化言語としてMathMLを、文書木構造としてDOMを、アプリケーション・プラミング・インターフェースとしてXPathをそれぞれ用いたものを例としたが、もちろんこれらに限定されるものではなく、同等の機能を有するものであれば各種のものが使用可能である。
【図１】
2007105759.tif 000003
【図２】
2007105759.tif 000004
【図３】
2007105759.tif 000005
【図４】
2007105759.tif 000006
【図５】
2007105759.tif 000007
【図６】
2007105759.tif 000008
【図７】
2007105759.tif 000009
【図８】
2007105759.tif 000010
【図９】
2007105759.tif 000011
【図１０】
2007105759.tif 000012
【図１１】
2007105759.tif 000013
【図１２】
2007105759.tif 000014
【図１３】
2007105759.tif 000015
【図１４】
2007105759.tif 000016
【図１５】
2007105759.tif 000017
【図１６】
2007105759.tif 000018
【図１７】
2007105759.tif 000019
【図１８】
2007105759.tif 000020
【図１９】
2007105759.tif 000021
【図２０】
2007105759.tif 000022
【図２１】
2007105759.tif 000023
【手続補正書】
【提出日】平成20年1月11日(2008.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたＷｅｂ文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたＷｅｂ文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジンと、
クライアントとなるＷｅｂブラウザと、
クライアントから検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジンに入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むＷｅｂ文書またはＷｅｂ文書部分を取得した後、クライアントに送信するサーバを備え、
クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むＷｅｂ文書部分であり、サーバがそのＷｅｂ文書部分からキーワードと数式記述構造化言語オブジェクトを抽出し、抽出したキーワードを検索クエリとして検索をかけることを特徴とする数式記述構造化言語オブジェクト検索システム。
【請求項２】
（削除）
【請求項３】
クライアントが指定した数式記述構造化言語オブジェクトを含むＷｅｂ文書部分が、クライアントに提供されたＷｅｂ文書に埋め込まれた、ユーザのポインティングデバイス操作を検出し、指定された文書部分の検索クエリ情報をサーバに送信させるクライアントプログラムにより得られるものであることを特徴とする請求項１に記載の数式記述構造化言語オブジェクト検索システム。
【請求項４】
検索クエリ入力による関連する数式記述構造化言語オブジェクトが記述されたＷｅｂ文書またはＷｅｂ文書部分の取得が、数式記述構造化言語オブジェクトの文書木構造を用いて行われることを特徴とする請求項１に記載の数式記述構造化言語オブジェクト検索システム。
【請求項５】
数式記述構造化言語検索エンジンは、数式記述構造化言語オブジェクトを含むＷｅｂ文書ファイルを、数式記述構造化言語のタグとタグで囲まれた文字列を用いた索引付けされたデータ管理構造の転置ファイルとして管理していることを特徴とする請求項１に記載の数式記述構造化言語オブジェクト検索システム。
【請求項６】
サーバは、索引付けされたデータ管理構造の転置ファイルより、文書構造アクセス用パス規定言語を用いて検索結果を獲得することを特徴とする請求項５に記載の数式記述構造化言語オブジェクト検索システム。
【請求項７】
サーバは、取得した検索結果の数式記述構造化言語の文書木構造のすべてのパスに対して、文書構造アクセス用パス規定言語を用いて検索クエリに適合するか否かを検証することを特徴とする請求項６に記載の数式記述構造化言語オブジェクト検索システム。
【請求項８】
サーバは、数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出することを特徴とする請求項７に記載の数式記述構造化言語オブジェクト検索システム。
【請求項９】
サーバは、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うことを特徴とする請求項８に記載の数式記述構造化言語オブジェクト検索システム。
【請求項１０】
数式記述構造化言語オブジェクトの文書木構造をもとに数式記述構造化言語オブジェクトが埋め込まれたＷｅｂ文書をあらかじめクローラーにより収集し、数式記述構造化言語オブジェクトの文書木構造を索引語として索引付けし、索引付けしたＷｅｂ文書を転置ファイルの形式でデータベースに格納している数式記述構造化言語検索エンジンを用い、
サーバが、クライアントとなるＷｅｂブラウザから検索クエリ情報を受け取り、その検索クエリ情報をもとに検索クエリを数式記述構造化言語検索エンジンに入力することにより検索をかけ、関連する数式記述構造化言語オブジェクトを含むＷｅｂ文書またはＷｅｂ文書部分を取得した後、クライアントに返送する数式記述構造化言語オブジェクト検索方法であって、
クライアントからの検索クエリ情報が、ユーザが指定した数式記述構造化言語オブジェクトを含むＷｅｂ文書部分であり、サーバがそのＷｅｂ文書部分からキーワードと数式記述構造化言語オブジェクトを抽出し、抽出したキーワードを検索クエリとして検索をかけることを特徴とする数式記述構造化言語オブジェクト検索方法。
【請求項１１】
（削除）
【請求項１２】
クライアントが指定した数式記述構造化言語オブジェクトを含むＷｅｂ文書部分が、クライアントに提供されたＷｅｂ文書に埋め込まれた、ユーザのポインティングデバイス操作を検出し、指定された文書部分の検索クエリ情報をサーバに送信させるクライアントプログラムにより得られるものであることを特徴とする請求項１０に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１３】
検索クエリ入力による関連する数式記述構造化言語オブジェクトが記述されたＷｅｂ文書またはＷｅｂ文書部分の取得が、数式記述構造化言語オブジェクトの文書木構造を用いて行われることを特徴とする請求項１０に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１４】
数式記述構造化言語検索エンジンは、数式記述構造化言語オブジェクトを含むＷｅｂ文書ファイルを、数式記述構造化言語のタグとタグで囲まれた文字列を用いた索引付けされたデータ管理構造の転置ファイルとして管理していることを特徴とする請求項１０に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１５】
サーバは、索引付けされたデータ管理構造の転置ファイルより、文書構造アクセス用パス規定言語を用いて検索結果を獲得することを特徴とする請求項１４に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１６】
サーバは、獲得した検索結果の数式記述構造化言語の文書木構造のすべてのパスに対して、文書構造アクセス用パス規定言語を用いて検索クエリに適合するか否かを検証することを特徴とする請求項１５に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１７】
サーバは、数式記述構造化言語オブジェクトの文書木構造のすべての葉ノードの文字列をチェックすることにより、変数名が異なっている箇所を検出することを特徴とする請求項１６に記載の数式記述構造化言語オブジェクト検索方法。
【請求項１８】
サーバは、検出された葉ノードの文字列を検索クエリに含まれる文字列で置き換えることにより変数変換を行うことを特徴とする請求項１７に記載の数式記述構造化言語オブジェクト検索方法。
【国際調査報告】
2007105759.tif 000024
2007105759.tif 000025