dmoz エディタ日記 - ODP (Open Directory Project) 日本語階層 -6ページ目

小さなmozzie

dmozディレクトリのカテゴリの一番下のところにdmozのマスコット、mozzieが色んな表情をして居ることに気づいておられる方も多いと思います。色んなカテゴリにこんな画像まで??、と言うようなmozzieを見つけるのも楽しいかもしれません。
このウェブログのプロフィールのところにも私が一番好きなmozzieの画像を載せています。
小さなmozzie が巨大なdmozに触れているというイメージです。
ODPに参加したばかりの頃、このプロジェクトの全体像がさっぱりわからず、この画像を見ると当時の自分を思い出します。
カテゴリエディタとして小さなカテゴリから編集を始めた当時はプロジェクトの成果物であるdmozディレクトリの全体すら見えなかった。
それでもいつの間にか徐々にではあるけれど組織の全体像、どういう運営のされ方をしているのかとかも少しはわかってきた。
極端な人手不足であることに気づいたときには腰を抜かしそうになったものです。他にどんなエディタがアクティブに編集しているのだろうとまわりを見回したら自分が最もアクティブな一人であったというのはけっこうショックでした。今ではその当時よりははるかに良い状態ですが、人手不足であることに変わりありません。
そしてエディタマネージメントをする立場になってしまったけれど、今でも巨大なdmozを望む小さなmozzieです。
タイトル未設定

RDFダンプ - contentファイルの中身


RDFダンプの中身ですが、

RDFとは、IT用語辞典によると、XMLをベースとしたメタデータの表現方法ということで
http://e-words.jp/w/RDF.html
RSSや XHTMLなどと同類のテキストファイルです。


content系の RDFダンプの中身は以下のような構成です。

0. content.rdf.u8.gzファイルの先頭。文字コードは UTF-8 です。

---
<?xml version='1.0' encoding='UTF-8' ?>
<RDF xmlns:r="http://www.w3.org/TR/RDF/"
  xmlns:d="http://purl.org/dc/elements/1.0/"
  xmlns="http://dmoz.org/rdf">
---

RDFタグ内の w3.orgへのリンクは http://www.w3.org/RDF/ が正しいようです。
ファイル末尾は </RDF> で閉じられています。


1. Topicタグ

--- 例
<Topic r:id="Top/World/Japanese/健康/嗜癖">
  <catid>1236925</catid>
  <link r:resource="http://www.arukenkyo.or.jp/"/>
  <link r:resource="http://www.ask.or.jp/"/>
</Topic>
---

Topic要素の r:id属性に、ディレクトリのカテゴリパスが入っています。
catid要素の値はカテゴリIDです。ODPの全ディレクトリの中で一意の値。
link要素には、r:resource属性として、そのカテゴリにリストされているURLが入ります。
カテゴリに掲載されている数だけ、link要素が並びます。


2. ExternalPageタグ

--- 例
<ExternalPage about="http://www.arukenkyo.or.jp/">
<d:Title>アルコール健康医学協会</d:Title>
<d:Description>飲酒の基礎知識とコラム、酒類と健康に関する学術情報、刊行物を紹介。</d:Description>
<topic>Top/World/Japanese/健康/嗜癖</topic>
</ExternalPage>
---

ExternalPage要素には、about属性として、掲載サイトのURL。
d:Title要素の値は、掲載タイトル。
d:Description要素の値は、掲載サイト説明文。
topic要素には、カテゴリパスが入ります。

...
...
RDFダンプから取り出したサイトリストは、RDB(リレーショナルデータベース)に読み込んで利用することが一般的だと思いますが、ネイティブXMLデータベースなら直接RDFデータを操作できるのではないかと考え、先週 Apacheの Xindice を試してみました。
試行錯誤の結果、確かに操作は可能でしたが、私のPC環境ではデータのサイズが大きすぎるそうで World/Japanese階層をそのまま取り込もうとすると OutOfMemoryErrorとなってしまいました。
Xpath式など初めて操作しましたが、面白そうではあります。

RDFダンプ - Kids and Teens Open Directory


ODPにはあと一つ、18才以下の利用者を対象にした、Kids and Teensディレクトリがあります。
http://dmoz.org/Kids_and_Teens/International/Japanese/

Kids and Teens Open Directoryは、スタンドアロンのプロジェクトとして、メインの ODPとは別個にダンプファイルが用意されています。

RDFダンプの一覧のうちの、
http://rdf.dmoz.org/rdf/
こちらのファイルになります。
kt-content.rdf.u8.gz (04-Nov-2005 03:09 2.4M)

Kids_and_Teens/International/Japanese に始まるK&T日本語階層の、先週分の掲載数は 1,158件。


このディレクトリは、こどもたちと十代の若者らにとって、安全で有益な専用のリソースを作ろうという趣旨で、2000年11月に誕生しました。
日本語階層も 2004年 5月より公開されています。

ここに開設当時の経緯が紹介されています。(2001年 12月の ODP Newsletterより)
Kids and Teens: A History (英語)Excite訳Google訳

RDFダンプ - もう一つの日本語階層

RDFダンプファイルから、もう少し。

content.rdf.u8.gz には、実はもう一つ日本語のディレクトリが含まれています。

Adult/World/Japanese に始まる、Adult階層の掲載サイトです。
・ http://dmoz.org/Adult/World/Japanese/ (注: 成人向けである点にご注意ください。)

先週のRDFダンプから、リストされたサイト数を数えてみたところ 621件でした。

ODPアダルトガイドラインに該当するサイトは、World/Japanese ではなく、こちらの掲載対象になります。

アダルトバナーが多用されているサイトや、成人向けイラストなどは全てこちらに該当します。
今は掲載数の半分以上を占めるまでに成人向けゲームの整備が進んでいます。

RDFダンプ - アーカイブ

かくも RDFダンプデータは巨大なので、あまり扱いやすいものではありません。
しかもそのサイズは大きくなる一方です。日本語階層 World/Japanese 内の掲載サイト数も増え続けています。

過去の RDFダンプは アーカイブディレクトリ に保管されています。先々週のRDFダンプ から日本語階層の掲載数を数えたところ 119,712件ありました。先週のが 120,276件なので、この 1週間で 564件の増になります。


こうも巨大化する RDFダンプデータを利用したサイトを作って、新しい RDFが出るたびにアップデートするのは、個人ベースではどうも骨がおれます。

思い返せば、今でこそこんなデータがノートPCでも扱えるようになりましたが、私がODP参加当初使用していたWindows98+数GBのHDD+56kモデム接続の環境ではとても扱える代物ではありませんでした。

そこで、なにもいちいち RDFをダウンロードしなくても、 dmoz.org サーバ上のページを直接読んで表示してしまおう、という CGIスクリプトもあるようです。

よくみかけるのは、 DWodp live や、 phpODPFarODPPersonal Open Directory などを利用したサイトです。


一方、ODPがその成果として RDFダンプを配布し、ユーザはそのダンプデータを利用してディレクトリの構築ができる、というしくみは、ODPのある時点での作業経過をウェブ上に残してくれています。

例えばここに、2001年頃のディレクトリを見ることができます。
http://search-intl.netscape.com/World/Japanese?style=subcat_ja
(styleオプションをあとから追記)

私は Netscape7 ブラウザをインストールした際にこのディレクトリを目にして初めて ODPを知り、壮大な理念の割にはなんだかまだ掲載が少ないみたいだな、などと感じて (新しいRDFによる更新もなされていなかったようですが、それを知るよしもなく)、エディタ申請書を書きました。 その後、ここまでハマることになるとは思いもよりませんでしたが。

目の前に在るディレクトリへの”不満”を”意欲”におきかえ、百件でも二百件でもサイトを追加して、整理分類して、ディレクトリを拡充してやろうじゃないか、といった有志(ボランティア)たちによって、ODPは支えられてきているようです。

RDFダンプ - 日本語データの取り出し

RDFダンプの説明文書は下記にあります。
Open Directory RDF Dump(英語)Excite訳Google訳)。
ダンプファイルのサンプルはこんな感じ
http://rdf.dmoz.org/rdf/content.example.txt

なにしろ全ての言語階層のデータを含む巨大なファイルなので、私はとりあえず下記のような簡単なperlスクリプトを走らせて、日本語データを取り出しています。

---
#!/usr/bin/perl
open DB, "< content.rdf.u8" or die "Error1($!)\n";
open OD, "> content.ja.rdf.u8" or die "Error2($!)\n";
$wjflag = 0;
while ( <DB> ) {
if ( /\<Topic/ ) {
$wjflag = ( /r\:id\=\"Top\/World\/Japanese/ )? 1: 0;
}
if ( $wjflag ) { # World/Japaneseトピック内のみ書き出す
print OD;
}
}
close OD;
close DB;
---

掲載サイトのデータは ExternalPageタグに囲まれ、必ず改行されていますので、リスト一覧のテキストファイルを出すのはこんな感じ。

---
#!/usr/bin/perl
open DB, "< content.ja.rdf.u8" or die "Error1($!)\n";
open OD, "> content.txt" or die "Error2($!)\n";
while ( <DB> ) {
if ( /<\/ExternalPage/ ) { #タグの終わりごと、リスト出力
print OD "$xtopic\t$xurl\t\t$xtitle\t$xdesc\n";
} elsif ( /<ExternalPage/ ) { #タグの最初に変数初期化。URL値をセット
$xurl = $xtitle = $xdesc = "";
/about="(.*)"/ ;
$xurl = $1;
} elsif ( /<d:Title/ ) { # タイトル
/>(.*)<\// ;
$xtitle = $1;
} elsif ( /<d:Desc/ ) { # 説明文
/>(.*)<\// ;
$xdesc = $1;
} elsif ( /<topic/ ) { # カテゴリ名
/>(.*)<\// ;
$xtopic = $1;
}
}
close OD;
close DB;
---

処理に時間はかかりますが、こんなあんばいで掲載データ一覧は取り出せるということで。

※ データファイルの文字コードは UTF-8 です。

RDFダンプ

ODPの RDFダンプが 11月 4日に更新されました。
http://rdf.dmoz.org/rdf/
dmozディレクトリデータベースのダンプファイルは、最近では毎週金曜日に更新されています。

このRDFダンプデータは、オープンディレクトリ・ライセンスのもとで自由に利用できますので、Google ディレクトリや、Alexa Website DirectoryThumbshots.netSpline Searchなどに用いられています。
Open Directory License(英語)Excite訳Google訳

Google ディレクトリなどの、ODPのRDFダンプを使って下さっているサイトが、いつデータを更新するのかは、私たちODPエディタにはわかりません。


掲載サイトがリストされているのは
content.rdf.u8.gz ( 04-Nov-2005 03:09 302M )
です。全言語のデータが含まれます。gz形式の圧縮されたファイルで 302MByteあるのでかなり大きい。
リンクを右クリックして、IEで「対象をファイルに保存」すると、勝手に展開されて content.rdf.u8.xmlというファイル名に保存されるようです。
Firefoxでは「名前をつけて保存」し、ダウンロード後に展開します。

展開後は、ディスクの空き容量には注意が必要なサイズです。
・ content.rdf.u8 ( 1.89GB )
これから、日本語階層の World/Japanese 内のものだけを取り出すと、
・ content.ja.rdf.u8 ( 48.5MB )
リストされたサイト数を数えてみると、120,276件。
日本語階層も、スペイン語、フランス語、イタリア語に遅れること2年、ようやく掲載数 120,000件を超えました。

※ 実は二重掲載も少なからずあるんですが、それはまた別の機会に触れます。

参考:オープンディレクトリ RDF ダンプの利用例

120000サイト

1週間ばかり完全に俗世間から離れた生活で、テレビも新聞も、もちろんインターネットもない生活をしていました。
久々にODPにログインしたら、掲載サイトが12万を超えていました。
万という単位で、一つ桁が上がるとさすがに嬉しい感じがします。
記録のために今日の公開画面上の掲載数を転載しておきます。

World: Japanese (120,615)

地域 (43,012)
アート (12,989)
オンラインショップ (7,096)
キッズとティーンズ@ (1,158)
ゲーム (1,813)
コンピュータ (3,323)
スポーツ (7,440)
ニュース (1,380)
ビジネス (18,300)
レクリエーション (7,052)
健康 (4,176)
各種資料 (2,474)
家庭 (1,924)
社会 (7,682)
科学 (1,954)


12万サイト。
この数字をどう評価するかは立場によって違うでしょう。
日本語階層の総掲載数1万数千のとき参加したyobesukeにとってみればみんながんばってきたよね、と言う数です。一つ一つのサイトの審査や追加にかかる手間を知っているものとしては。そしてサイトの追加はただ闇雲に追加していくのではなく論理的なカテゴリ構造を作ることと一体なのです。
でも、こんな数では屁の突っ張りにもなりゃしない、と思う方も多いでしょうね、きっと。
部分的にはずいぶん使える場所が出来てきているんですよね。その使える場所をもっと増やしたい、どこから見ても、そこそこいけるじゃない、と言う形に持っていきたい、というのが当面の私たちの目標でもあります。
正直言って人手が足りません。
自分の得意な分野が目も当てられない、なんて状態になっているのに気づいているアナタ、私たちはそんなアナタを待っています。

UTF-8

ODPでは2004年の春頃、ディレクトリ、フォーラム、公式のフィードバック(メール)などのエンコードが順次UTF-8に移行しました。
色々な面で大変便利になったのですが、その反面、一部のウェブメール(フリーメール)やメーラーではODPから届く文書の文字化けが起こるようです。
私はもちろんUTF-8対応のメーラーを使っているのですが、それでもごくたまに文字化けがおこります。このメカニズムは私には全然わかりません。

ODPへの入会が承認されたら、まず2通のメールが自動的に送信されます。
簡単なウェルカムメールとガイドラインの概略です。それに加えて審査を担当したmetaエディタやCatmodから個人的なフィードバックが届くことも多いです。
これらのメールが全て文字化けしていたら、ちょっとやる気をなくしてしまうかもしれません。
そんな場合はウェルカムメールをくれたmeta/catmodに返信を送り、再送してくれるよう求めて下さい。日本語階層の場合、承認したmetaエディタは必ずウェルカムメールを送っていますので。
また、メーラーに問題がありそうだと思われる方はあらかじめUTF-8に対応しているかどうかを確認してから応募して下さいますよう、強くお勧めします。

今までに私が受けた文字化けの報告ではhotmailを使っている人が多いようです。hotmailはUTF-8に対応してない?

ニューズレター

新しいODPニューズレターが発行されたので紹介してみます。 http://dmoz.org/newsletter/2005Oct/


これは本来はODPエディタがエディタ・コミュニティ内での広報活動のために作っているものなので、エディタでない人が読んでも意味がわからなかったり、閲覧不可能なURLに頻繁に出くわしたりすると思いますが、まあこういう感じでコミュニティ活動が行われているという感触は掴めるのではないかと。


この「dmozエディタ日記」も、ウェブログに関する特集記事 http://dmoz.org/newsletter/2005Oct/bloggers.html で簡単に触れられています。この記事からわかるように、エディタによるウェブログはいくつもの言語で運営されていますが、別に示し合わせてやったわけではなく、各言語階層で自然発生したという感じです。運営方式も扱っている内容も、それぞれ微妙に違うようですね。