Bayesian Analysis For RSS Reading という記事が、TPJ March 2004 に出た。Simon Cozens の執筆である。記事に出てくるモジュールをリストアップしておこう。今十分に理解している暇がないのが残念だが、暇があったとしてもすぐには実用にならないだろう。なにしろ、私が対象にする言語は日本語なのだから。今年中の課題にしてもよいぐらいかもしれない。
日経バイト4月号記事ネタ。なかなかやるじゃないと思った。非構造的データをどのように集積して活用するのか、それが問題だ。
パーソナルレベルでは、製品には興味はない。フリーのものをリストアップしよう。PrevaylerはJavaだけでなく、Ruby、Python、Perl、CommonLisp、Smalltalk、C#等でも使える。スクリプタならこちらか。
しかし、今や当たり前のデータベースではおもしろくないという気がする。Rafal Bogaczの「Implementing Knowledge Database in Neural Networks」は1996年の文献だが、おもしろそうだ。
/.orgを読んでいると、最近新しいプログラミング言語の話題が続いた。prototype-based object-oriented languageだ。Prothon、Slate。ProthonはPythonとSelfを合わせた力を持つシンプルな言語というふれこみである。Pythonのmetaclassはエキスパートでも頭が痛くなるようなものらしい。言語は次第に複雑化し、次第に理解しがたいものになる。現実は複雑だから、言語が複雑化するのは当然だ。必要なモジュールが増えてくると、やれやれと思ってしまう。モジュールはブラックボックスだし(中身を読めばいいんだが、面倒だし)、日本語の処理をする場合は自分で書いたほうが安心という場合もある。一応、リンクを残しておこう。
ソフトウェアデザイン4月号ネタ。D言語への招待。まだまだよりよいプログラミング言語を求めて飽くなき追求が続くのである。DはC++、Java、C#の後継を狙う。Dを紹介している方はゲームのプログラマで実際の仕事に使っている。ゲームの場合はライブラリを自作するのが普通なので、アルファバージョンでも問題ないらしい。
フォーサイト4月号ネタ。梅田さんのシリコンバレーからの手紙91。あちら側はグーグルが実現しているような情報発電所。こちら側はパーソナルコンピュータのような個人の情報処理装置。どちらが速いか。グーグルのほうが速いので情報の重心は個人の側よりは情報発電所側に傾くというのが論点だ。しかし、それは使い方が悪いからとも言える。使い方の工夫、あるいは個人の情報処理装置の性能向上に力を注ぐべきかも。ハード的にはホームグリッドとか、パーソナルグリッドとか、誰か打ち出してくれないか。といつも人頼み(^^;)ソフトウェア的にはスクリプト言語の活用ということになる(^^)v
素晴らしいコンテンツ。Radio in PC だ。英語のリスニングの勉強をするならここかも。自分の好きなコンテンツも選べるし、良質の英語を聞くことができる。
BBC Radio Player新幹線にて読了。この本「脳からみた心」(意味野の構造 2004/02/29)は言語や脳について勉強する場合に必要な背景知識を与えてくれる。ノーム・チョムスキー著、加藤泰彦・加藤ナツ子訳、「言語と認知 心的実在としての言語」、秀英書房、2004年、171ページ、1800円を眺めていると、何か意味がよくわかる気がする。この本の原著は「脳からみた心」と同時期の1987年に書かれている。脳の疾患による言語への影響についてはチョムスキーも高い関心を持っているし、講義Ⅰを読むと、仮説と実験による証明という自然科学の手法を十分に意識して言語理論を研究していることがわかる。
NATURE|VOL427|19FEBURUARY2004|ネタ。A recipe for the mindというタイトルで、Anthony P. MonacoがGary Marcusの「The Birth of the Mind: How a Tiny Number of Genes Creates the Complexities of Human Thought」という本の書評を書いている。刺激的なタイトルだ。Anthony P. Monacoのオックスフォード大のホームページも刺激的なタイトルを持っている。Neurogenetics。脳によって心が生成するなら、脳の生成を方向付ける遺伝子が心の形成に影響するはずという仮定の下に遺伝子を研究している。当然といえば当然の話なのだが、何か怖いような話でもある。チョムスキーのコメントがMarcusのホームページに載っている。Amazonに注文したら、即日発送のメールが届いた。脳科学は進歩している(^^;)
ノーム・チョムスキー著、福井直樹・辻子美保子訳、「生成文法の企て」、岩波書店、2003年、365ページ、3600円。
絶版となっていた20年以上前の対談(1982)の復刻と2002年秋に行われた最新インタビューとが合わされた本という興味深い企画。GARY MARCUSの本と一緒に注文してしまった。少し読んでみよう。それほど暇はないはずなんだが・・・
言語学はここ数10年間で認知科学の一分野から人間生物学(human biology)に移ってきた。30年前はまだソシュールの構造主義言語学の世界だった。その頃は言語学はとても生物学と結びつくとは思っていなかったね。これから哲学も人間生物学になるのかな。文学は、歴史は、社会学は・・・なんだか人文科学は全部人間生物学になったりして(^^;)この項、「生成文法の企て」の感想。
http://japan.linux.com/opensource/04/03/11/0147235.shtml?topic=1
ソフトウェア特許の問題は大きいだろう。自分の開発したものはチェックしないとまずいのかも。まあ出願するなら、先行技術は調査することになるが・・・
http://www.technologyreview.com/articles/roush0304.asp
Technology Reviewの記事。最近、ソフトウェアデザイン誌のDIGITAL GADGETでも「新時代を迎える検索技術」が特集された。例えば、grokker2は検索結果をカテゴライズしてビジュアルに階層を表示する専用ブラウザである。しかし、このようなインターフェースが使いやすいか、検索結果を読み取りやすいか、必要な情報にアクセスしやすいかというと疑問である。必要なのは結局は個々の中身なのである。ユーザーが中身を読むまでは必要な情報かどうかわからない。逆に言えばそこまでわかるようなツールが望まれているのである。ユーザーはこれだけだという最終的な結果が見たいのであって、検索結果の構造を見たいわけではない。どうすればよいかって、現時点では検索式を工夫しながら、検索を繰り返しては、個々の情報の中身をひたすら読むしかない。そのためには、このようなビジュアルなインターフェースはむしろ邪魔になる。どこまでチェックしたかわかりにくいからである。
TRの記事にはGoogle対Microsoftの図式で次世代検索技術の開発の現状がレポートされている。先月だったか紹介したDaphne Kollerはスタンフォード大学だが、Googleの技術ディレクターのCraig Silversteinはスタンフォード大学のコンピュータ科学のドクターで、60人のPhDを含む数100人の研究者や開発者を抱えている。次のブレークスルーがGoogleから生まれることを望んでいるが、その保証はないと認めているそうだ。
grokker2のトライアル版をインストールしてみた。日本語が入力できないのは仕方がない。日本語文のカテゴライゼーションがそう簡単にできるはずもないし、Longhornに搭載されると言われる検索インターフェースも簡単に移植はできないだろう。図はgoogleで検索した結果、結構高速に動いて表示される。
grokker2でgoogleを検索するTRで取り上げられている検索エンジンをリストアップしておく。
MooterはWeb上で分類したクラスターをビジュアルに表示できるが、それをスキップして表示させることもできる。
Mooterでgoogleを検索するAskMSRについては、Microsoft Researchで検索すれば文献にも当たることができる。N-Gramを使っている。
もう大分以前のことになるのだが、去年の10月だったか、Aranskさん(グループ名らしい)からFGALTSでアナウンスいただいた。ようやく本格的にホームページを作ったとのことだった。私は時折アクセスしていて、素晴らしいのを作られたなあと思っていたところだった。今日たまたま見に行ったので、リンクをここに記しておこう。Javaと関数型言語に興味があるなら、覗いてみるとよい。通常のプログラミング・サイトとは一味も二味も違う解説を読むことができる。題して、哲学的プログラミングへの招待。
プログラミング言語への関心のあり方が私と似ている部分がある。私が昔から欲しい思っているのは、知識を記述するためのプログラミング言語である。Prologへの関心もそこにあるのだが、Lispも同様な性質を持っているのだろうと思う。
/.の情報の流れは無断引用が作る?の記事の元記事、人気ウェブログは頻繁に「無断引用」――ウェブログ間の情報の流れを解析にあるリンク。
出所の明示については、どうしても一次情報のみになる場合が多い。ニュースサイトの記事まで引用すべきかどうかだけど、ニュースサイトの記事はみんな知っているし、すぐわかることではある。
上記アナライザは有用である。無論、目的のものを見つけるというよりは、元ネタを生成する能力のあるサイトを見つけるために有用ということになるのだろう。記事にどのように付加価値が付いていくかを見るためには、記事の流れを追って見れるようにしてほしい。付加価値のほうが重要という場合も有り得るだろう。
Blog Epidemic AnalyzerのZoomgraph更新日記が3周年を迎えたことを忘れていた。始めた頃はまだblogという用語もなかったが、日記は既に普及していた。一般的とは言えなかったかもしれないが。継続は力なりで、少しは進歩することもあるだろう。これからも様々な情報の歴史を刻んでいくことだろう。
久しぶりにParrotをCygwin上でアップデートしてみた。languagesディレクトリを覗くと、ruby、python、tclのディレクトリがあるね。
jscripter@Dell2 /parrot/languages $ ls BASIC befunge converter.pl m4 perl6 ruby Befunge-93 bf forth miniperl plot scheme CVS cola imcc ook python tcl LANGUAGES.STATUS conversion jako parrot_compiler regex urm
Perl6の新しいformat機能について13ページに渡る詳細な解説がある。懐かしいformat。JPDB以来、最近は使わないが(^^;)レポート生成は本来のPerlの存在理由であると・・・Perlのrはreportだものね。
http://jarp.jin.gr.jp/diary/200403c.html#200403302
わたなべさんのJust another Ruby porter,のRDFを自家製のリーダーにセットしたら、ニュースが飛び込んできた。ActivePerlは出るのだろうか・・・
RubyでPDFを生成する方法があるかどうか調べた。
PDF::Writer Technology Preview
zlibのライブラリを使うので、Rubyは1.8以上が必要。フォントはAFM(Adobe Font Metrics)を使っているので、日本語の文書の生成に関しては制約があるだろう。前に紹介したPDFJはType1、TrueTypeフォントをサポートしている。
最近では、FPDF-JのようにPHPでも日本語PDFを使える。大変便利な世の中になってきた。PDF Writerの添付文書を見ていると、AdobeはPDF関連の特許をほとんどロイヤルティーフリーでライセンスしている。フォーマットを普及させるために有効だし、ビジネスとしても大変成功している。アドビ第1四半期決算--PDF好調で売上・利益ともに大幅増加
様々な情報を記述するための言語として、現在、XMLが発展しつつある。これはMachine Understandableが目的である。最もHuman Understandableなのは当然自然言語であるが、プログラマブルではない。HTMLブラウザ(XML,XSL/XSLT) = 自然言語的表現ということになる。自然言語は脳の中ではプログラマブルというか、脳(自然言語) = 思考なんてことになっていると思われる。そういう観点から考えると自然言語を取り扱うもっと他の方法があってよいような気がする。脳は自律的自然言語ブラウザであって、それ自体が思考となるのだから、自然言語ブラウザを作ることができれば、それは脳のような言語機能を持つはずだ。それは知識の結び付け方、集積の仕方が大変重要なのではと思う。まずは意味野の構造のようなものができて、意味のあるアクセスができればいいわけだけど、具体的にどのようなアプリケーションが想定されるだろう。XMLに関して言えば、ルールの記述・推論のようなことも想定されているので、今後の展開にも注目である。メタデータが意味野を形成すると考えることはできる。
結局、このようなSF的思索は生成文法などの言語学への興味につながる。チョムスキーが苦労しているぐらいだから、そんなに簡単な解があるはずがない。
XMLで使用するメタデータの標準化についてはDublin Coreが有名だが、今後の方向性としては、メタデータの辞書のようなものが必要になるのではと思っている。RSSなどを取り扱っていても、独自名前空間のメタデータが使われていて、同じ意味の要素が混在しているケースが見られる。これはXMLを解釈するためのメタデータの収集とシソーラスの必要性が既に発生していることを意味している。
XMLアプリケーションの最先端を経験しようと思えば、サーバーでXMLを取り扱えるシステムが必要になる。たまたま見つけたOrbeonのOXF(Open XML Framework)の30days trialをインストールしてみた。XForms、XQueryやPDFの生成などが試せる。横浜ベイキットも有名だったなあと思い出してインストールしてみた。それぞれ、xpl(XML Pipeline Language)とxi(eXtend It)という言語を使うのが特徴だ。
しかし、XMLを書くのは大変だということである。それも表示させるためにはHTMLに変換する必要があるわけで、XML/XSLを使うか、XML/XPLあるいはXML/XIのようなものを使うことになる。XML系のプログラミング言語は可読性が低いし、テキスト処理に向いているとは思えない。XML/Perlとか、XML/Pythonとか、XML/Rubyとか、そのような選択肢が正解ではと思うのだが。
OXFを動かすには、startOXF.batを次のように書き直して使うとよい。JavaとTomcatを含むセットでインストールした場合の例である。Javaはいろいろと他にもインストールしてあったり、Tomcatも他にインストールされているものがあることが多いだろう。いずれにせよ、元のままでは動かない。
@echo off SETLOCAL set CD=C:\Program Files\OXF set JAVA_HOME=%CD%\jdk-1.4.2_01 set CATALINA_BASE=%CD%\tomcat-4.1.27 set CATALINA_HOME=%CD%\tomcat-4.1.27 set CATALINA_TMPDIR=%CD%\tomcat-4.1.27\temp cd %CD%\tomcat-4.1.27\bin echo Starting OXF... catalina.bat run
結局はHTMLで表現されているわけで、すべてにXMLを使うのは複雑になるだけ。パーソナルなレベルではメリットを感じないというのが正直な感想である。データの標準化に絞って使うのがよいのではないか。まあ、まだ使い込んでいないので、メリットを見逃している可能性はある。しばらく遊んでみよう。XFormsやXQueryが実際に動くのを見てどういうものか確認したかっただけなのだか、それは見るほどのものではなかったかもしれない。
BayServerではFOPを使う。しかし、Windows上のコマンドラインではxiがうまく動かない。私の環境はJava関係のアプリをインストールするたびに異なるバージョンのJavaがインストールされ続けているためかもしれない。拡張子foとXiServletをマップさせる方法もよくわからない。OXFの場合はブラウザ上でそのまま動くが日本語は表示できない。これはフォントの問題と思われるが。
中島さんのPDFJに久しぶりに触ってみた。PDFJ-0.73.zipをCygwin上でmakeする。Perlは5.8.2だ。demo.pdfを削除して、demo.plを動かすとスクリプトはシフトJISのままだと思ったが、見事にPDF文書が出来上がる。素晴らしい。XML文書からもPDFを生成できる。xpdfj.plを動かすためには、XML::Parserが必要。Cygwinには標準で入っていないので、perl -MCPAN -e '$ENV{FTP_PASSIVE} = 1; shell'でCPANからのインストールを試してみた。CPANモジュールの設定のプロセスではほとんどそのままYESでOKだ。これまた、見事に動いて自動でインストールされた。ActivePerlのPPMに優るとも劣らない。xpdfj.plも問題なく動いた。PDFJはJIS X 4051にほぼ準拠した日本語組版ルールを組み込んであるのが特徴ということなので、XSL-FOに対応することはそれほど難しくないかもしれない。PDFJについてはCGIでも使えるだろうし、様々な用途が考えられる。
XML→(XSLT)→XSL-FOというW3Cの標準化が進んできているので、今後はXSL-FOを介して、音声出力したり、PDFのような印刷用文書を生成したり、画面出力をしたりというようになる。XSL-FOの生成をどう自動化するのかという問題はある。XML-FO用WYSIWYGエディタを考えるのでは、逆を辿るようなもので、おもしろくないだろう。有力な一つの方法ではあるが、データベース的な繰り返し作業には向かない。XMLは冗長で一覧性に問題があるので、一般的には他の可読性の高い記法への要請が高まるだろう。XML/RDFにはN3が提案されている。自動的に文書を生成するための標準化がXMLというテキストベースで進むのは大変素晴らしいことである。XSL-FOを生成すれば、各プラットフォームに共通の出力用データが保証されるようになる。スクリプタにとっては楽しみが増えるに違いない。今後は一次データ→(スクリプト言語)→XSL-FOという構図も当然有り得る。[modified: 2004-03-20]
XSL-FOなどの新しいXMLが動くXMLブラウザを調べてみた。DocZillaとBrownSauce RDF Browser、X-SmilesがGoogleの検索の最初のページに並ぶ。
DocZillaはMozillaをベースにしているだけあってHTMLブラウザ兼用で使える。仕掛けはdocset.xmlというファイルにあり、サイドバーにサイトの構造をツリー表示できる。note!というボタンによる註釈はサーバー側で生成しているようだ。index.xmlの描画にはXMLのスタイルシートindex.cssを使っている。
BrownSauce RDF BrowserはJettyというWeb Server & Servlet Containerを使っている。RSSやFOAFなどのRDFのデータが増えてくれば、このような仕組みも注目されるだろう。
X-Smilesはこの中でもSMIL(Synchronized Multimedia Integration Language)が使えるものとして注目される。サンプルもおもしろいので試してみるとよいだろう。Java系のアプリケーションでありながら、残念ながら日本語は表示できなかった。PDFの生成にはやはりFOPを使う。