パーソナルサーチエンジン

(Yahooを越えるビジネスチャンス!)

1998年6月19日

服部 順治

 

私どもが、欲しい情報を探すときは、どうしているでしょう?

まず、Yahooなどのサーチエンジンを使って、目的のURLを探します。

そして、そのURLにジャンプして、ホームページのテキストを読んで、自分の目的のものと違っていれば、また、次のURLにジャンプして、......と言った具合に、この繰り返しです。(ある程度、得たい情報が特定されるときは、専門別、ジャンル別のサーチエンジンを使うこともあります。)

そうこうしているうちに、大体、こういう情報は、このサイトにある、ということが解ってくると、そこをブックマークしておいて、そのサイトにジャンプし、すぐに必要な情報がとれるようにはなります。

わたしは、自分の資産管理を、Excelに入力してあるのですが、株価はYahooのファイナンスサイトでチェックし、外貨預金のドルレートは「地球の歩き方」のサイトで、ゴールドの1gの価格は三菱マテリアルのサイトでと言った具合に、それこそあっちこっちのサイトへジャンプして、その情報をとってきていました。そこで、目的のサイトのホームページの構成を調べ、テキストのパターンマッチングを行って、必要な情報を自動的に取り出す、「わたしの金庫番」というユーティリティを作りました。

そのパターンマッチングのスクリプトを各サイトごとに作っていくうちに、このパターンマッチングのプログラムをさらに汎用の言語に置き換えて、一般のプログラマでも簡単に使えるように拡張し、また、各サーチエンジン、データベース、また情報源として主要なホームページごとに、このパターンマッチングのスクリプトを作り、欲しい情報のキーワードやジャンルを入力するだけで、そのスクリプトに従って、種々のサイトにアクセスして、必要な情報を集めてくれる、という汎用の個人向けサーチエンジンってないのかな、考えたのです。それがこの「パーソナルサーチエンジン」という概念のはじまりです。

最初は、自分でこつこつやって、将来、会社の1事業としてやっていかれればと考えていたのですが、サラリーマンの身で、かつ、管理畑が長かったため、プログラム能力も限界を感じている昨今の私ですので、ここは、将来の日本、いや世界の発展のため、せこいことは言わずインターネット上で、この事業を効率よく推進していくことに決めました。

誰もがこのプロジェクトに参加し、意見を言い、アイデアを出し合って、ともに推進していきますが、ここで関係するプログラムはGNUの考えと同じく、ソースも含めてオープンにしていきます。インターネット上でプロジェクトがオープンに推進されいく形をとっていきますので、誰も所有権を主張することはできません。と言うか、このプロジェクトに参加する上での条件として、「所有権を主張しない」というのがあります。 

なお、このようなプロジェクトを「インターネットオープンプロジェクト」と名付けます。(この新しい概念も従来の会社という枠組みを越えた、「超会社」です。インターネット上でオンブズマンネットワークというサイトを作り、運営していて到達した概念です)

 さて、この「インターネットオープンプロジェクト」である「パーソナルサーチエンジン」の構成の概略および方針を考えていきましょう。ここから、少し、専門的になってきますし、また、私自身もハッキリと断定できかねる部分もございますので、掲示板などでご意見をください。

 エンジンの中核であるパターンマッチングの言語はソースコードがオープンなawk(厳密にはGNUとしてのgawk)ですが、理想的には以下のような拡張を行った方がいいでしょう。(awkとは;を改行で置き換えた、パターンマッチングができるC言語インタープリタと大ざっぱに最初は考えていいと思います)

●HTMLのタグを識別できるようにし、対応するシンボルをアサインする

●URL情報をファイルのように扱え、かつ、プログラムの中でawkコマンドを再帰的に呼び出せるようにする。

   例えば、

  awk −f プログラムファイル名 URLアドレス

  そして、このコマンドそのものを、awkのプログラムで実行できるようにする。

さて、このHTML対応に拡張されたawkをhtawkと名付けます。

なお、このhtawkの開発に時間がかかりそうなら、とりあえずは従来のawkで処理をさせ、サイトにアクセスし、それをファイル化するコマンドで代用します。

どういうプログラム(スクリプト)を用意しておくかですが、各サーチエンジンやサイトでの必要な情報の取り出し方をプログラミングしておきます。

 例えば、株価情報ですと、Yahooのファイナンスで、ただしサイトにアクセスするときに知りたい株(会社)の番号をシンボルとして渡す必要があります。

例えば東京証券取引所での富士通の株なら、シンボルは6702.Tなので

http://quote.yahoo.co.jp/quotes?symbols=6702.T

上のURLにアクセスして、HTMLのファイルとして取り出し、次に各フィールドをサーチします。例えば、株価は「富士通」の文字があるところから、<strong>をサーチして、マッチングがとれた直後から、数値情報(+、−、,、.含む)以外までが株価となります。また、富士通の前日比の情報はその次の行で、タグ情報をとった情報そのものが前日比です。もちろん、これらはすべてHTMLでのテキストパターンの話です。

(ブラウザレベルで、人間のパターン認識のように判断できる言語があればもっといいんでしょうけどね。)

 

 為替情報に関しては、「地球の歩き方」のサイトのページでサーチします。

http://www.arukikata.co.jp/gio/money/info/kawase.html

「米ドルT/C買い」のレートでしたら、「USD」の文字列を探し、見つかったら、そこから3行目がその情報になります。

 この様に、必要な情報ごとに、これら関連するサイトのアドレス情報とこのスクリプトを書いていかなければなりません。(けっこう大変な作業!)また、これらサーチエンジンや元の情報を提供してくれている会社とも連携していかないと、いきなり書式が変わってしまうとそのスクリプトも役に立たなくなってしまいます。

なお、世界的には、特にアメリカでは、公的機関の文書を統一フォーマットにしようとの動きもありますが、もう既に不統一な膨大なデータがホームページ上にありますから、それらの中から必要なデータをサーチするには上記の様な汎用のパターンマッチングを行う言語が必要で、また、それらの構造を個々に解析するスクリプトを書く必要があるのです。