ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

グーグルってWeb2.0という言葉を利用してるだけで、考え方は1.0の気がする。

2006-07-21 21:00:43 | Weblog

 セマンティックWebってありますよね。
 検索しやすいように、メタデータを定義して、その体系に基づいて、検索するっていうやつ。
(すげー、はしょった定義だ ^^;)
 で、そのセマンテックWebについて。


セマンティックウェブに対するGoogleの疑問
http://slashdot.jp/articles/06/07/20/1845249.shtml


以下、発言を上記サイトから引用すると(斜体のところ)


・私たちは、サーバが設定できず、HTMLが書けない何百万人ものウェブマスターを相手にしている。彼らが「next step」に進むのは難しいだろう。

・2番目の問題は競争だ。民間企業の中には「我こそリーダーだ。それでも標準に従うべきなのか」と主張する向きもある。

・3番目の問題は偽装の一種。私たちは毎日、(不正に)ランクを上げようとする偽装に対処している。人の目がより行き届かないセマンティックウェブだと、かえって偽装が簡単になる心配がある


 セマンテックWebについては、いろいろな取り決めがあって、正直、複雑怪奇になっている。

 だけど、もし、現状のセマンテックWebっていうのをおかまいなしに、セマンテックWebと同じ効果がでる方法を、あなたが作れ!といわれたら、どうするだろう。
 たとえば、不動産の検索をしたり、病院の検索をしたりするっていうとき。
 病院の場合、場所とか、診療してくれる科、診断してくれる日(もしくは休診日)が知りたいとする。

 明日から、この情報を使って検索したいとする。なので、みんなにこの情報を入れて欲しいとする。さあ、あなたが、検索会社だったら、どうする。




 話を簡単にするため、ブログだけで、考えよう。
 そしたら、ブログのカテゴリのところに、セマンティックっていうのをつけといて、そこで「病院検索」っていうのもいれておく(もちろん、病院検索、不動産検索だけでなく、野球検索、学校検索とか、いろいろあるから、この選択は、簡単に分かりやすくできるようにする必要があるが)。
 そして、そいつを選ぶと、上記の「場所とか、診療してくれる科、診断してくれる日」を入れられるようになる。

 で、そいつを設定したブログの場合、他のブログより、検索時、上位に来るようにする。
 もちろん、セマンテック検索というのをつくって、そいつの場合は、これが入っているものだけ、検索できるようにする。




 では、話を拡張しよう。
 一般のWebの場合は、どうしたらいいか。。
  上記のブログの場合は、ブログを記入して、セマンテックというところもあるわけだが、
 一般のWebの場合は、登録画面があって、
  WebのURLと、セマンテックというところがあって、登録できるようにすればいい。

 そして、SEO対策をやるよりも、そこで、登録したほうが、検索上位に上がるようにして、
 さらに、セマンテック検索というのをつくって、そいつの場合は、これが入っているものだけ、検索できるようにする。ってのはブログと同じ。




 っていうシステムを考えたとしよう。
 さて、このシステムで、上記のグーグルの回答を検討してみよう

1つめ

・私たちは、サーバが設定できず、HTMLが書けない何百万人ものウェブマスターを相手にしている。彼らが「next step」に進むのは難しいだろう。


どーなのかなあ?SEO対策するより、登録したほうが簡単だし、登録画面を作るのは検索会社、(でも、その検索の体系をつくるのは?って話は後述する)なんで。。。そして、検索上位に行きたい人は、勉強して、登録するだろうし。。
 今のSEOみたいに、はっきりしないものをあてっこでやる技術より、明確に、登録して、登録したものが、上位にいくって言うシステムのほうが、みんな、一生懸命やると思うけどなあ。。




2つめ

・2番目の問題は競争だ。民間企業の中には「我こそリーダーだ。それでも標準に従うべきなのか」と主張する向きもある。


 民間企業だろうがなんだろうが、お客様は、神様だよね。
 つーことは、お客さんみんなの総意にあわせたほうがいい。
 なので、この登録項目、つまり、こんな検索を、こんな項目を検索条件に入れてやりたい!っていうのは、みんなから申請してもらって、それが承認したら(たとえば、1000人の人が賛成したらとか)自動的に作るっていうようにしたらいいとおもう。
 そして、そのとき、関連しそうなサイト(にたような検索サイトで登録している人)には、メールがいき、あたらしいカテゴリができたので、登録してください!って送られるような感じにすればいいと思う。

 そーすると、結局は、お客さんが、基準を決めていることになる。
 Web2.0になってからは、そーいう世界だと思う、つまり、リーダーっていう企業は無くって、器だけつくって、あとは皆に使ってもらうと。。




3つめ

・3番目の問題は偽装の一種。私たちは毎日、(不正に)ランクを上げようとする偽装に対処している。人の目がより行き届かないセマンティックウェブだと、かえって偽装が簡単になる心配がある


 人の目を行き届かせないようにしているのが悪いのなら、
 公然と直せるようなシステムにすればいい。

 上記の検索と項目の場合、有料会員と無料会員にわけて、無料会員の場合は、他の人も検索項目をなおせるというようにするということにする。

 有料会員の場合、一般の人は、直せないが、その場合、登録時に、検索会社がチェックする(チェックしてOKだった場合だけ、お金が徴収される)とすれば、不正をだれかがやっても、無料会員同士なら、みんなでチェックできるし、有料会員に関しては、検索会社がチェックするので、まあ、OKと。

 無料会員同士でなおせるようにすれば、あんまりおかしなことがおきないだろうっていう考えは、Wikipediaなんかとおなじだよね。




 そして、この検索内容と、検索の条件項目の組み合わせを、セマンテックWebの形式で、表現していけばいいと思う(まあ、しなくてもいいと思うけどね)。

 つまり、みんなで、メタ情報を定義して、みんなでメタ情報に対する個別情報を入れたり、修正できたりして、みんなでチェックすれば、Wikipediaなんかとおなじで、そーそーおかしなことにはならないんじゃないか?それがWeb2.0の考え方だと思う。

 そーしてできたものを、セマンテックWebの形で表現していきたければ、そーすればいいと思う。

 ある意味、フォークソノミーに近い考え方だよね。




 でも、グーグルが言ってることはこの逆で、だれか、企業が中心になって、それで、リーダーをきめたり、企業が中心になって、決まりをきめる(ページランクとか ^^;)っていう考えだよね。だから、わるさするやつも出てくる。

 つまり、グーグルが言ってることは、企業中心で、企業がメタデータと、オントロジーの部分をぜーんぶきめて、企業がすべてきめたことを、ユーザーに守らせようとしてる。

 これって、まさにWeb1.0の考えであって、いまとなっては、うまくいかないんじゃないかなあ。。
 そうやって考えると、グーグルって、発想はWeb1.0(自分が世界の中心、自分が決めたページランクという体系を押し付け、みんな、それに基づき検索しろ!)じゃないかなあ。。
 Web2.0をgoogle APIとか使って、表面的に宣伝としてうまく活用しているだけで、性根はWeb1.0、自分中心主義の気がする。


。。。。さすがに、そんな時代じゃないだろ-に。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ネットワークロボット間のインターフェースって、WebAPIだと便利ですよね。

2006-07-21 17:25:58 | Weblog

 ネットワークロボットってあるじゃないですか?
 なんか、むずかしいこといいだすと、ロボットには、3つの型
  ビジブル型:一般に言うロボット
  アンコンシャス型:環境に埋め込まれるもの(盗撮隠しカメラロボットとか)
  バーチャル型:バーチャル(パソコンのキャラ等)のロボット
 があり、それぞれの型のロボットが、連携して、いろんなことをやるって言う話。

 まあ、まとめていっちゃうと、ロボット間で通信して、いろんなことしようっていう話。

 ってことは、ロボット同士が話し合うわけだけど、これの仕組み、WebAPI、とくに、CGIにして、引数を
   引数1=値1&引数2=値2&引数3=値3・・・
って形で渡すか、POST型でXMLで書いて渡す(<が初めに来ていたらXML型と判断)ってしてくれると、便利でいいよね。




 実際には、これらのものを協調して動かす場合、
 下のようなかんじで、パソコンなどのサーバーを介して処理をすると思うんですけど(いや、別にサーバーがなくっても、ロボット間でP2Pコミュニケーションでもぜーんぜんかまわないんですけど。。)



 そーしたら、サーバーも、ロボットもHTTPサーバーもっていて、たとえば、
 サーバーのIPアドレスが 192.168.0.1
 ロボット1が192.168.0.17
 ロボット2が192.168.0.18
 ロボット3が192.168.0.19

 だとしたら、サーバーにデータをあげるには、たとえばロボット1が
 http://192.168.0.1/dojob.cgi?user=robot1&pass=pass1&sensor1=100&sensor2=200
 なんていう感じで、結果をあげて、サーバーはその値を処理すると。。

 で、ロボットに指示をだすときには、たとえばロボット1なら192.168.0.17なので
 サーバーは
 http://192.168.0.1/dojob.cgi?user=server1&pass=pass22&job=arm_up_30
 なんて形で、指示内容(arm_up_30)を送って、ロボット1は、これを受け取って
 処理(手を30度あげる)すると。。。

 そーすると、ロボットは、無線LAN機能とHTTPサーバー機能とHTTPのクライアント機能を持っていればいいのでLinuxOSとかでもできますよね。




 ロボット間同士のお話も、上の例のサーバーのIPが、ロボット2のIPにかわるだけだし、
 WebAPIでいろんなサービス(翻訳機能とか、いろんな動作のエージェント、検索とか)を書いておけば、それをWebで呼び出す形で利用できる。

 そのサービスももちろん、
   引数1=値1&引数2=値2&引数3=値3・・・
って形で渡すか、POST型でXMLで書いて渡すってすれば、
いろいろ自由に組み合わせられるし、便利便利




って、実はただ単に、さっきの「いもうとデスクトップ」を「いもうとロボット」につないで操作する場合って考えただけの話なんですけどね。。

おお、まさに、バーチャル型からビジブル型の通信!ネットワークロボット??

・・なんて書いたら、ATRでまじめに研究している人に怒られそうなんで、このへんで。。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Perl(やCGI)で、DOMを使って、XMLファイルを読み込む

2006-07-21 14:55:29 | JavaとWeb

 昨日のお話で、PerlでXML::DOMが使えるようにしたので、
 今日は、Perl(やCGI)を使って、XMLファイルを読み込んで、操作するお話です
 (実は、いもうとデスクトップのAJAX+CGI版の一部です)



■概要
 ファイルを読み込んで$xmlという変数にいれたとします。
そうしたら
1.パースする。
 $parser = new XML::DOM::Parser;
 $doc = $parser->parse($xml);
 で、パースした結果がはいります

2.レコードに相当するものをとってきてnodelistへ
 これは、他の言語の場合とおなじくgetElementsByTagNameをつかって
 $nodelist = $doc->getElementsByTagName("command");

3.1レコードごとに切り出す
  $nodelist->getLength 
    で、nodelistの大きさがわかります

  $nodelist->item($i);($iは要素の番号、0から始まる)
    で、指定した要素番号のノード=>1レコードに相当がとりだせます。

 なので、
  for($i = 0 ; $i < $nodelist->getLength; $i++)
  {
   $node = $nodelist->item($i);
    #    ここで、4.に指定する処理を行う
  }
 で、1レコードごとの処理ができます。

4.必要なデータをとってくる
 今回、なぜか、.selectSingleNodeがつかえなかったので、それとおなじ効力を持つ
 getElementsByTagName(項目名)->item(0)
 (各項目のノードリストを取得し、その1番はじめのノードを取り出す。
  指定した項目名のノードが1個しかない場合、その名前のノードがこれで選ばれる)
 を使いました。

 項目の内容を取得するには、項目のノード->getFirstChild->getNodeValue;
 となります。
 なので、これを1行でまとめると
  $node->getElementsByTagName(項目名)->item(0)->getFirstChild->getNodeValue;
 となります。




■仕様
 指定したXMLファイルを読み込み、
 commandタグ分、lineに指定した内容(これは1行しかないものとする)
 を実行する。

 今回は、以下のファイル
<job>
	<command>
		<line>DIR</line>
	</command>
</job>

(上記< > ¥ は本当は半角です)

 をtest.xmlというファイル名で保存するので、
 それを読み込み、実行する。
 結果として、DIRが実行されるはずである
 (なお、サーバーはWindows環境とする)




■プログラム
今回は、perlでも、CGIでも、実行できるように書きました。
プログラムは、以下のとおりです。
#!C:/Perl/bin/perl
use CGI;
use XML::DOM;

			#################################
			#	file read=>$xml	    #
			#################################
$fname = "test.xml";	#File Name
$size = -s $fname;
open (IN_FL ,"$fname");
read(IN_FL,$xml,$size);
close IN_FL;

			#################################
			#	Command Get	    #
			#################################
$parser = new XML::DOM::Parser;
$doc = $parser->parse($xml);
$nodelist = $doc->getElementsByTagName("command");

			#################################
			#	Do Command	    #
			#################################
print "Content-Type: text/plain¥n¥n";
for($i = 0 ; $i < $nodelist->getLength; $i++)
{
	$node = $nodelist->item($i);
	$cmd = $node->getElementsByTagName("line")->item(0)->getFirstChild->getNodeValue;
	system($cmd);
}



(上記< > ¥ は本当は半角です)

注意:UTF-8で保存したら、CGIが、うまくいきませんでした。
   今回は、ANSIで保存しています
(UTF-8の場合、ファイルのあたまになにか付けられるが、
 そいつに反応しちゃってるみたい)



■ソースの説明

ファイル(test.xml)読み込み部分は、「file read=>$xml」
 と書いてあるコメントのしたです。
上記の「概要」の1と2の部分は、「Command Get」
 と書いてあるコメントのしたです。
上記の「概要」の3と4の部分は、「Do Command」
 と書いてあるコメントの下です。

これを実行すると、CGIだとDIRの結果が、
perlのコマンドラインからだと、
Content-Type: text/plain
と表示された後、改行されて、DIRの結果が
表示されます。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ウィンドウズのケータイを日本の消費者向けに販売する意向、台湾HTC。じゃケータイもウィンドウズ?

2006-07-21 10:16:17 | Weblog

 最近、ドコモが法人向けWindowsケータイ(W-ZERO3対抗?)を出したというニュースがあった(ここ)。

 そのwindowsケータイ(スマートフォン)を提供する台湾HTCが、法人だけでなく、日本の消費者向けにも販売する考えを明らかにした

ここのニュース
台湾HTC、ウィンドウズ搭載の携帯端末を日本で発売へ
http://www.iza.ne.jp/news/newsarticle/it/internet/11461/


 そのニュースによると、KDDIやソフトバンクとの提携(つまり、Windowsケータイをだすことでしょうな)に対しても、含みを持たせたそうな。

 うーん、実際、Windowsケータイが出たら、売れると思うんですよ。
 なにを隠そう、ウィリアムのいたずらだって欲しいです。

 まじで、W-ZERO3 es買おうかなと思っていたし、この前、ある会社の社長さんにW-ZERO3 esの話をしたら、もうのりのり!欲しそうだったんですよ。
 だから台湾HTCがケータイでも出してきたら、(値段によると思うけど)売れると思うんですよ。そしたら、HTCが出すかどうかは別として、KDDIやソフトバンク(ボーダフォン)もWindowsケータイを出さざるを得ないんじゃないかなあ。。

 そーすると、Windowsで開発できることになりますよねえ。。
 そしたら、開発も簡単だし(^^)v

 。。。でも、そしたら、ケータイでもOSは、Windows??



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする