リンク情報メタ記述フォーマット

http://www.linux.or.jp/ では, Linuxにまつわる, いろんな便利な情報を提供したい.

そのための一つの手段として, Linuxのリンク集, それも活きのいいリンク集としての機能も持たせたい.

活きの良いリンク集を運用維持するためには, HTMLを直に編集していくのには限界がある.

できれば, リンク情報をメタに記述し, Yahoo!のツリー構造のようなものを一気に自動生成したい.

(http://www.linux.or.jp/ 本体に納められている情報すらも, そのリンク情報の中のひとつとして記述しておき, make一発で収める.)

そのためのメタ情報記述フォーマットと, 情報のツリー構造を提案する.

「メタ情報記述フォーマット」は電子メール, ニューズのフォーマットに似た感じに, そして, ツリー構造はNetNewsニューズグループ構造に似せる.

メタ情報記述フォーマット

一からフォーマットを起こすと面倒だし, awk, perl的になるべくパースが簡単なものにしたい. そこで, 電子メールのRFC821風, ネットニューズのRFC (1121でしたっけ)のフォーマットに似た感じの記述とする.

  • 記述はヘッダ部ボディ部から成る.
  • ヘッダ部とボディ部は,1行の空行で区切られる.
  • ヘッダ部のなかには空行があってはならない.
  • ヘッダ部に空白文字から始まる行があった場合, 前行からの継続行.
  • ボディ部はピリオド(.)1個のみを含む行, またはEOFで終了.

本文はkakasiとかnamazuに引っかけられることを意識して書こう.

記述例

From: 石神井 練男 <nerio@shakujie.nerima.tokyo.jp>

Subject: リブレットLinuxインストール記

Group: architecture/x86

Group: software/x

Group: hardware/pcmcia

Date: Thu, 1 Oct 1998 11:22:33 +0900

Author: 理舞 持一 <lib20@foobar.ne.jp>

URL: http://www.foobar.ne.jp/~lib20/

URL: http://www.foobar.ne.jp/~lib20/index-e.html [en]

Keyword: libretto

Keyword: X

Keyword: XF86Config

Keyword: gn

Keyword: gnspool

Keyword: pcmcia

X-Quality: 80

X-Approved: OK

X-Status: 200

リブレット20にLinux 2.0.33をインストールした顛末. X の設定,

PCMCIA の設定, そして gnspool で電車からも fj の読み書きができました.

.

ヘッダの説明

From:

メールと同様. これは「リンク情報を提供した人.」必須.

Subject:

タイトル. 必須. (Title:) でもいいけど..

Group:

ツリー構造のどこに入れるかを指定. 必須. 複数指定可能. つまり, あるリンク情報は複数のツリー構造に顔を出していい.いわばクロスポスト.

Date:

リンク情報が提供された日付.

(コンテンツの日付はここに書くよりもHTTP/1.1 HEADで自動取得すべし)

Author:

コンテンツの作者

URL:

必須. 複数指定可能.

オプションで, URL の後に [ ] で囲んでコンテンツの言語を指定.

英字2文字. ja, enなど(どの規格をつかうといいかな..)

言語指定ない場合は日本語とする

Keyword:

キーワードを記述. オプショナル. 複数指定可能.

(いや, キーワード指定は結局面倒で不毛な気がするから無いほうがいいかもしれない. Namazuまかせ!)

で, X-で始まるヘッダは拡張用予約ってやつで, たとえば..

X-Quality:

百点満点でネタの価値. うーん, 誰が判定すんの..?

X-Approved:

「掲載していいか問い合わせ中」とかのフラグ..

X-Status:

定期的にコンテンツあるかチェックして, 「X-Status: 404」なら消えた, とか

ツリー構造

NetNewsの構造同様でいけば考えやすいし, みんな戦いを傍観したり, 苦い経験もある(!?)

たとえば「package/redhat/rpm」というのは「fj.linux.package.redhat.rpm」みたいな感じです.

これをwww.yahoo.com的にhttp://www.linux.or.jp/以下に見せます.

で, グループ新設とか廃止はwebmasters 内部? でCFDの類みたいなのをやればいい.

「ここまでグループ分けなくてもいいだろ」なものも, とりあえず分けてあります.

で, どう分けたらいいんでしょうね.. まだまだ足りないし.

概念の厳密な定義よりも, 使い勝手も重視して階層分けしたい.

package (各種パッケージ)

package/redhat

package/redhat/pje

package/redhat/jrpm

package/redhat/turbolinux

package/redhat/mld2

package/debian

package/debian/debianjp

package/slackware

package/slackware/plamo

package/slackware/je

package/slackware/pje

package/caldera

package/sls

package/suse

architecture

architecture/x86

architecture/x86/towns

architecture/x86/pc98

architecture/alpha

architecture/mips

architecture/sparc

architecture/ppc

具体的な機種についての話 (ex. Libretto, 富士通グランパワーとか) はどこに収容しよう..

architecture/pnp 		CPU アーキテクチャとかとは

architecture/mca レイヤが違う気もするが..

architecture/isa

architecture/eisa

architecture/pci

architecture/vlbus

hardware

hardware/pcmcia

hardware/motherboard

hardware/scsi

hardware/keyboard

hardware/nic

hardware/memory

hardware/storage

hardware/storage/harddisk

hardware/storage/mo

hardware/storage/zip

hardware/storage/pd

hardware/storage/cd

hardware/storage/cdr

hardware/storage/dvd

hardware/storage/tape

hardware/storage/floppy

hardware/sound

hardware/video

hardware/video/display

hardware/video/card 名前しっくりこない

hardware/video/camera

hardware/game

hardware/mouse

hardware/modem

hardware/printer

hardware/isdn

hardware/serial

hardware/parallel

hardware/障害者補助 点字端末とか. 英語でなんていうのかな

network

network/tcpip プロトコルもアプリケーションも

network/appletalk ごっちゃになってるが..

network/netware

network/security

network/mail

network/news

network/www

network/www/server

network/www/client

network/ftp

network/ipmasq

network/dhcp

network/ppp

network/slip

network/plip

network/ipv6

service

service/mailinglist

service/search

service/archive sunsite や linuxmama みたいな

service/vendor T-ZONECobalt Qube など..?

service/support

service/support/lbi

service/shop

service/shop/hardware

service/shop/software

service/convention

software/kernel ソフトウェアの分類に関してはまったく不完全

software/libs また, ソフトとハードを分離すべきなのかも

software/x 疑問はある

software/x/im

software/development/gcc

software/development/lisp

software/development/perl

software/development/ruby

software/development/tcltk

software/development/python...

software/scientific

software/graphics

software/graphics/ghostscript

software/shell

software/compatibility

software/administration

software/office

software/office/dpnote

software/office/tex TeXワープロも一緒かよ..

software/office/nroff

software/rpm

software/jrpm

software/documents

software/documents/jf

software/documents/jm

software/games

software/games/jg

software/documents/ldp

software/documents/review

software/editors/vi

software/editors/emacs

software/editors/emacs/lisp

software/i18n

software/l10n

community

community/jlug

community/lilo

1st-readme タコってなあに? www.linux.or.jp の見かた..

general Linux とはヘルシンキ大学の Linus Torvalds 氏が..

news 「IntelRedHatに出資しました」「サイベースが..」

future Linux の未来とか, 電波系(?)とか..

こんなのもいるかなあ

incoming		まだ未整理の新着リンク

ここは誰でも突っ込めると面白いかも.

でもエロページとか突っ込む奴がいるだろうな..

以下は半分冗談だが

usage			Linux の使い方について.

転じて収拾つかなくなった Linux vs NT 論争とか収容

policy

jokes

test

junk

# biginnar.. じゃなくて beginner をつくりましょう!(笑)

運用

新しいネタは,

  1. 特定のメールアドレスに投げる. いったん帰ってきたのをリプライしないと登録されない.
  2. 認証付きCGI Scriptから入力.

で, 自動または手動でmakeかけると, リンク情報ファイルを全部ナメてwww.yahoo.com的 HTMLハイアラキーを生成.

(無茶な思い付きかもしれないが, netnewsとマップすると面白いかも?)

また, リンク情報ファイルを書くEmacsのモードとかあると便利. Group: をコンプリージョンとかしてくれて.