掲示板スクリプトデータフォーマット規定を作ろう
■ このスレッドは過去ログ倉庫に格納されています
この規定を定めることにより掲示板間のデータファイルの共有や
乗り換えが容易にできるようになります。
0455nobodyさん
02/12/11 21:34ID:???&Quot;とかやっとけばオッケーそう。
0456nobodyさん
02/12/11 21:52ID:GtOPPdmi本当は、掲示板が保存するデータのフォーマットを統一するのが
1の望むことだろうしみんなの理想なのだろうが、実際問題として難しい。
(Perl、PHP、Java、ASPなどでもっと手軽にxmlを扱うことができるように
なればいいのだけど・・・)
ならば、せめて統一フォーマットだけでも決めておいて、保存データとして
使うか、エクスポートのみの採用かはそれぞれの掲示板製作者にまかせると
するしかないのではないだろうか。
以上はXML形式にするという前提で話をしてるが、
時代の流れから行くとこれが一番良いでしょう。
0457456
02/12/11 22:00ID:GtOPPdmi>csvでやるなら、レコード中のフィールドの順番を決めて
これには同意です。
ただし、個人的にはcsv規約に則ったものにしてほしい。
csv規約はに関しては↓とかを参考にしてほしい。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t12.htm
0458nobodyさん
02/12/11 22:50ID:???実際は、データの規定よりCGI制作者側からするとハードルが低くなって取り入れられる割合は増えるだろうな。
モジュール作って入れるだけでよさそうだし。
いや、データの規定でも、読み込み書き込みルーチン作れば済むって意見もありそうだから、やっぱ作者によるか。
とりあえずXMLで規定するのは了解です。
よくわかってないが、汎用性があるらしいから。
欲を言うと、掲示板巡回ソフトの類がもっと増えて欲しいな。開発競争ってのが無い気がする。
>>455
CSVは掲示板によって項目数がかなり増減するから、規定作る場合は面倒そう。
>>439みたいに見出しレコード使う手もあるけど、各データで項目の意味合いが完結してる方が簡潔だ。
まずガンガッテXML仕様書読むとするか・・・。でも英語はイヤんな感じ。
0459nobodyさん
02/12/11 23:33ID:???0460nobodyさん
02/12/12 00:29ID:???0461nobodyさん
02/12/12 06:58ID:njI4CLTT・XMLフォーマットは将来を見据えた理想、現時点で採用は難しい。
・csvフォーマットは現在最も普及している、採用が容易。
ということで、どちらを選ぶかは掲示板製作者の自由にしておく。
どちらもフォーマットを決めて置くことで相互のデータの互換性も
あると思うのですが。
0463nobodyさん
02/12/12 07:59ID:???>342
スクリプト側でのデータの持ち方はいまさら決めても
仕方ないだろ。
すでにあるスクリプトでで対応するのは考えられないし。
0466nobodyさん
02/12/12 14:19ID:FvLiMeis0469nobodyさん
02/12/12 15:04ID:LfYYQWKp0471nobodyさん
02/12/12 15:21ID:???name<>link<>msg
というデータ形式をいったん決めたとする。
そのあとにlinkをwebとmailに分離して定義したいと思った時、
linkの項目を削除して定義し直すと、
それ以前に作ったデータとの互換性が失われる。
データ項目はあとからどんどん付け足すことしかできない。
XMLなら柔軟にデータ項目の追加削除が可能。
0472nobodyさん
02/12/12 15:23ID:???0473nobodyさん
02/12/12 15:27ID:???0475nobodyさん
02/12/12 16:48ID:???例えばXMLだと送信者の情報をいれとこうと思うと、
すでに個人情報のマークアップの仕方を定めてる勧告があって、
それを使用することで、個人情報の中身には一切関わらなくても、
「この要素の内容の"個人情報"は"送信者の個人情報"ですよ」
って事がわかってれば、内容についてはノータッチでいける。
将来的にあたらしい種類の個人情報が登場してもノータッチ。
CSVで行の最初に・・って方法で、個人情報を入れたいと思うと(あくまで投稿者の任意だが)
id<>name<>mail<>host<>comment<>upfile<>住所<>電話番号<>郵便番号<>氏<>名<>・・・
みたいにきりが無い。
(CSV扱うプログラムにに他のschemaを読みに行く能力をつければ可能だが、
自分の知る範囲でそんなものはない。)
0477nobodyさん
02/12/12 17:12ID:???そんなのKENTが考えたやり方だろ。
それこそ汎用性に欠けるんだけど。
CSV=Comma Separated Value、な?
0478nobodyさん
02/12/12 17:13ID:???汎用性って何ですか?
id<>name<>mail<>host<>comment<>upfile<>
うえのように1行目で、形式を定義するんだけど、僕が言いたいのは
その1行目のフィールド名を元に
$out{id}
$out{name}
$out{host}
$out{comment}
$out{upfile}
みたいな感じの入れ子を作って出力するってことなんだ。
こうすれば、他の形式のログを読みとるとき
id<>name<>mail<>url<><>pass<>host<>comment<>icon<>
となっていても、問題なく今までの掲示板でよめる。
大切なのはログの形式が、1行目のファイル形式のルールに従うこと。
こうすれば、ログを拡張しても、最低限読むときの下位互換は得られる。
問題は、形式の異なるログを更新したりするときに、一工夫いるところだけどね。
(古いバージョンの掲示板側で出力しないデータは空欄でいいのかとか、
使っている掲示板のデータだけ記録すればいいのか、など)
0480nobodyさん
02/12/12 17:35ID:qH8N5K0u掲示板フォーマットが、だろうと言ってみるTEST
0483nobodyさん
02/12/12 17:47ID:???, がデータに入る可能性がある、<>は<>に変換するからデータに入る可能性が無い。
だからだろ。
それが良いか悪いかは別にして、それくらい自分で思いつくぐらいには脳みそ使ってやらないと
しまいにゃ脳みそも腐ってしまいますよ。
> そんなのKENTが考えたやり方だろ。
KENT以前からありますよ。
0484nobodyさん
02/12/12 17:48ID:???>しまいにゃ脳みそも腐ってしまいますよ。
煽り不要。ギロンしようぜ。
0488nobodyさん
02/12/12 17:58ID:???プログラムで個人情報触る必要があるなら(そのような規格なら)、
個人情報を勧告した団体からでるだろ?
(データとして扱って普通に表示する分ならDOMに対応してれば十分だが、)
で、それを組み込めばSVGみたく、
乗せるのがXHTMLだろうが掲示板フォーマットだろうが、処理できるって事。
0489nobodyさん
02/12/12 17:58ID:???思考が停止してる人が議論に入ってきても自分だけが正しいって思い込んで
全然中身のある議論になんねーんだよ。
0491nobodyさん
02/12/12 18:06ID:???そういう団体が個人情報の最終利用形態まで全て包括的にライブラリとして
提供してくれるわけじゃないよな?
ってことはいずれにせよプログラムがその規格の中身を理解してないとだめじゃん。
0492nobodyさん
02/12/12 18:06ID:???名前、記事番号、返信元記事番号、投稿回数、タイトル、本文
の要素があるとする。
XMLだと
<news><name>なまえ</name><number>11</number><reference>10</reference>
<posttimes>3</posttimes><subject>たいとる</subject><text>ほんぶん</text></news>
みたいな感じにできるのかな??
CSVでは一行目を見出しとして
name,number,reference,posttime,subject,text
なまえ,11,10,3,たいとる,ほんぶん
か。
ここで投稿回数がいらなくなったら、XMLなら要素を削ればいいだけだけど
CSVだと単に削っただけではダメ。全体を書き換える必要がある(もしくはゴミを残して無視)。
その後も掲示板の仕様が変わるたびに要素が増えたり減ったりして面倒。
XMLが推されるのはこんな理由かな。
でもエクスポートに関しては、面倒さではあんまり変わらないのかも。
汎用性については、XMLはすでに規格化されていて、パーサー使っていかようにも構文解釈できるってことかな。
この辺が俺の中でもかなり謎。
XMLの知識無いから見当はずれな事書いてるかも。
俺は(掲示板のエクスポートに関しては)CMTボンバイエだけど、
XMLだからといって毛嫌いしているわけにはいかんだろ。
それが有効ならば取り込んでいかないとね。
もちろん他に有用なものがあればそっちがいい。
俺はCMTで十分だと思ってる。今の掲示板を扱う外部アプリがあんまり無い現状ではね。
0494nobodyさん
02/12/12 18:11ID:???>CSVだと単に削っただけではダメ。全体を書き換える必要がある(もしくはゴミを残して無視)。
XMLでもCSVでもファイル全部書き直しだろ。
0495nobodyさん
02/12/12 18:13ID:???それに加えて区切りの見やすさからこれになったんじゃないかと推測。
>>477 変形CSVだけど、いちいち厳密なCSVでないなどと断る必要ないだろ。みんなわかってんだから。
別に , 区切りで , としても タブで 	 としても良いし、<>なのは単なるデファクトなだけでどうとでもなる。
HTMLで表示するのが前提だから、当然 < などの一文字ではタグの扱いができない(面倒になる)という問題は自明。
<br>に変換するのは、掲示板ログとしてならOKだと思う。その方が処理が少なくすむと言うメリットがちゃんとあるんだから。
0496nobodyさん
02/12/12 18:29ID:???掲示板ログの話になるけど、XMLなら無視すればいいだけなんじゃないかと思うわけだよ。
XMLは各記事毎に項目の意味づけがされてるわけだけど、CSVは一行目の見出しに意味づけがあるだけで、一行目と全体とが連動してるでしょ。
XMLなら同じログファイルに<posttimes>がある記事と無い記事が混在してても問題ないと思う。
CSVだと一行目のカラムを削ったら、全体も削らねばならない。もしくは見出しにゴミを残したままになる。
という考えです。
そもそもXMLの認識が間違ってるのだろうか。無責任でスマン。
>>479に関しては、ハッシュを使おうとCSV型の欠点は補えないでしょ。
仕様が変わるたびに見出しが長くなってしまう危険性がある。
ちなみに俺はCGI書くときデータはCSVだよ。
使うなというのではなく、より便利なものがあればそっちにしたいという考えです。
0497nobodyさん
02/12/12 18:35ID:???なるほどそういう意味か。理解が浅くてスマソ。
しかし思うにファイル(Read)→プログラム上のデータ構造→ファイル(Write)
という過程を考えるとどのみち整形されてしまうんではなかろうか。
0498nobodyさん
02/12/12 19:02ID:???結局そうですね。
正直俺も掲示板の処理が煩雑になって、結局メンテナンス性が悪くなるんじゃないかと危惧してる。
これでパターンマッチ使うようなら速度もずっと遅くなるし。(ここでは速度はあまり重視しない方が良さそう)
このスレではメンテナンス性の良いものを考えるべきだな。
というか、掲示板のデータ構造は各作者に任せて、エクスポートするデータフォーマットを考えることに絞った方がいい。
0500nobodyさん
02/12/12 19:14ID:???0501nobodyさん
02/12/12 19:43ID:???split /,/; で済む。たぶん他のどれより速い。
でも>>344みたいにハッシュにした方が断然使いやすいけどな。
なんだか目的もなくたゆたってる気分ナリ。
0503nobodyさん
02/12/12 20:35ID:???0504nobodyさん
02/12/12 20:37ID:???>ってことはいずれにせよプログラムがその規格の中身を理解してないとだめじゃん。
言い方がわかりにくかったか…
こっちでプログラムを管理しなくて済むってことの有効性は他にもあって、
例えば、
XHTMLにうめこまれた個人情報を解釈するプログラムと、
掲示板用のXMLにうめこまれた個人情報を解釈するプログラムがそれぞれ別々だとすると、
たった2つだけならいいけれど、
他にも個人情報を埋め込みたい文章はいっぱいあるわけだから、
それぞれが、個人情報を処理するコードを内部にもつとなると物凄い量になって、
バージョンがあがるごとに、それぞれのプログラムがアップデートしてそれに対応しなきゃならない。
その点、外でもってくれると、アップデートは気にしなくていい。
>そういう団体が個人情報の最終利用形態まで全て包括的にライブラリとして
>提供してくれるわけじゃないよな?
勧告が規定するものが"外部的なプログラムを使用して解析されなければ意味のないデータ"の場合、ほとんど出てるよ。
でも、例の"個人情報"という内容だけならば、XMLパーサーで十分。
0505nobodyさん
02/12/13 01:21ID:???csvで充分。
0507nobodyさん
02/12/13 03:39ID:???うむ。言いたいことは十分わかる。漏れも昔はそういう理想的な世界を考えていた。
しかし良く考えてみてくれ。
個人情報をHTML形式で清書するみたいなプログラムは確かにライブラリでOKかもしれん。
しかし例えばプログラム内で掲示板の書き込みを「年齢順」にソートする場合、
どうしたってプログラムで「年齢」という要素にタッチせざるを得ない。
つうことはそのプログラムが個人情報の規格に否応でも依存してしまうわけだ。
逆に言えば、そういう個々のプログラム内でタッチしないような「個人情報」なら、
年齢や住所などをベタにテキストで持っておいても(人間さえ解釈できればいいわけだから)
構わないとさえ考えられる(XMLで持つ利点といえば清書できるぐらいか?)
0508nobodyさん
02/12/13 04:20ID:???それともこの混沌の中から掲示板データフォーマットを搾り出すのか?
0509nobodyさん
02/12/13 05:10ID:???>>479あたりが落し処なんじゃないかと思う。
世の中のサーバ環境はまだXMLに寛容ではないし、掲示板プログラマに至っては尚更だ。
例えばスクリプト言語なりがネイティブにXMLを読み書きできるようになれば
また話は変わってくると思うのだが。
0510nobodyさん
02/12/13 09:07ID:???増やすときにこのスレみたいなのでいちいち議論というのもなぁ…
0512nobodyさん
02/12/13 14:04ID:???HBの鉛筆をベキッ!とへし折る事と同じようにッ
できて当然と思うことですじゃ!
大切なのは「認識」することですじゃ!
CSVを操るという事は できて当然と
思う精神力なんですぞッ!
0513nobodyさん
02/12/13 14:34ID:???0514nobodyさん
02/12/13 16:08ID:???>しかし例えばプログラム内で掲示板の書き込みを「年齢順」にソートする場合、
>どうしたってプログラムで「年齢」という要素にタッチせざるを得ない。
>つうことはそのプログラムが個人情報の規格に否応でも依存してしまうわけだ。
XSLって言うXMLの応用規格を使えば簡単にその事ができる。
"年齢"という要素名をパーサーが読み込んでXSLスタイルシートを適用するだけ、
>>145にある上の奴に
http://homepage3.nifty.com/sepura/bbsformat/test.xsl
が適用されると下のほうのサンプル(普通に見えるやつ)に見える。
(実は下のサンプルは7行ぐらいのテキストで成り立ってる。
で、XSL使うと例えば日付関係無しに日時だけで並び替えとかも簡単。)
で、他にもXSLスタイルシート使うと、例えばツリーがそのまま反映されたXMLを読み込んで、
親番号指定の"<>"区切りdatに変換する事も簡単。な筈。
それについては>>83-84
0515nobodyさん
02/12/13 16:09ID:???○>で、XSL使うと例えば日付関係無しに時刻だけで並び替えとかも簡単。)
スマソ
0516nobodyさん
02/12/13 16:26ID:???0517nobodyさん
02/12/13 18:07ID:???0519nobodyさん
02/12/13 18:25ID:???0520nobodyさん
02/12/13 18:32ID:???XMLのメリットっていうのはあくまで表示でなくて
あくまでデータ扱いの汎用性を維持することだろ?
それを行う事が表示にもつながるわけだ。
で、べつにデータの互換がしっくりできてれば表示はプログラムでレンダリングするなり、
XSLを適用できるプログラム使ってレンダリングするなり好きにして下さいってこった。
0521nobodyさん
02/12/13 18:39ID:???>その場合掲示板プログラムに添付されるXSLスタイルシートが規格に思いっきり依存してんじゃん
言ってる事がかわってるじゃん。
0522nobodyさん
02/12/13 18:46ID:???0523nobodyさん
02/12/13 18:54ID:???ま た 4 9 か
0524nobodyさん
02/12/13 19:12ID:???XMLはよう知らんからCSVについてのみ。
・1行目はインデックス(2行目以降がデータ本体)
あるいは1行目を掲示板ユニークな情報に使って2行目をインデックスにする
・前提はHTML表記。よって必要な特殊文字はそのまま ?XX; の形で含まれる
・改行コードは LF
・改行文字は <br>
・データの文字コードを明示
・区切り文字は「,」
・日付に関するデータのフォーマット
年月日時分秒をそれぞれ分けるか、それとも yy/mm/dd HH:MM:SS にフォーマットした状態か
1039761862 みたいな秒だけってのはちょっと・・・
ここらへん統一するだけでも使いやすくなるんじゃない?
インデックス使うだけで処理は重くなるけど。
CSVかXMLかその他か、選ぶのは人それぞれで。
とりあえず汎用性のありそうな規格を考えて、使われない方が廃れる、ってことでいいんじゃないか?
0525nobodyさん
02/12/13 19:14ID:???テキトーなんだが、CSVのカラム。
MessageId = 記事番号なり記事ID
ReplyTo = 返信元のMessageId
Name = 投稿者名
Text = 本文
Subject = 題名
DateYear, DateMonth, DateDay, DateHour, DateMinute, DateSecond = 年月日時分秒
最小限必要なのはこんなもんか。
インデックスが長くなってしまうが、意味を明解にするためには我慢。
日付を年月日時分秒で分けると増長だけどどうか。
0526nobodyさん
02/12/13 19:16ID:???一行目に文字コードと改行の情報を入れてみる。エクスポートにしか使わないけど。
01: scode=sjis,break=<br>
02: MessageId,ReplyTo,Name,Text,Subject,DateYear,DateMonth,DateDay,DateHour,DateMinute,DateSecond
03: 1,,名無し,オッス、オラ悟空<br>よろしこ,無題,2002,12,13,16,40,0
04: 2,1,nobodyさん,やあ悟空さん、頃しますよ。ふふふ。,Re: 無題,2002,12,13,16,50,0
05: 3,,nobodyさん,>>2ゲット<br>≡≡≡つ`⌒⊃゚Д゚(⊃,無題,2002,12,14,3,10,30
0527nobodyさん
02/12/13 19:19ID:???open LOG, shift or die $!;
my $info = <LOG>;
my @schema = split /,/o, <LOG>;
my @rows = ();
while (<LOG>) {
chomp;
my $i = 0;
my %item = map { ($schema[$i++] => $_) } split /,/o;
push @rows, \%item;
}
close LOG;
return \@rows;
}
sub main {
my $data = &readdata("format.dat");
for (my $i=0; $i<=$#{$data}; $i++) {
print $data->[$i]->{Text}, "\n"; #(*゚Д゚)チョッチウザイ…
}
}
0528nobodyさん
02/12/13 19:40ID:???0530nobodyさん
02/12/13 20:44ID:aVW9jPSr>掲示板プログラムに添付されるXSLスタイルシートが規格に思いっきり依存してんじゃん
何言ってるかわからない。
たぶん君のすごい誤解だと思うから具体的に書いてみて。
0532nobodyさん
02/12/13 21:30ID:???0533nobodyさん
02/12/13 21:41ID:???誰とは言わんけど。
0534nobodyさん
02/12/13 21:46ID:???XMLのフォーマットとCSVのフォーマット両方作ってみようよ。
話はそれからだろうが。
0535nobodyさん
02/12/13 22:23ID:???ただデミリタに「,」派と「<>」派がいるから一行目で
delimiter=<>みたいにできたら更に汎用性が上がるかな。
0536nobodyさん
02/12/13 22:46ID:???汎用性があがるとは思えない。
デリミタとか固定した方がいい。
インポートする方の作業が増えるだけ。
0537nobodyさん
02/12/13 22:48ID:an3wnW9j1行目にヘッダー情報、2行目にインデックスをつけるだけで
統一できると思うのだがどうよ?
0538536
02/12/13 22:55ID:an3wnW9j今までの掲示板のデータはほとんどがCSVだと思うのだが
それぞれの掲示板のデータの主な違いは、「デミリタ」と
「データの並び順」だと思うんだよね。
どんなデータの持ち方をしようと1行目のヘッダーと2行目の
インデックスを付けるだけでインポートできてしまうのは
楽なんじゃないか?
0539537
02/12/13 22:57ID:an3wnW9j0540nobodyさん
02/12/13 23:01ID:???本文のエンコード方法とか、結局データを読み出して
出力し直す必要があると思うから、ほとんど意味ないと思うけどな・・・。
0541nobodyさん
02/12/13 23:03ID:xzIbks/p0543537
02/12/13 23:15ID:an3wnW9j汎用性の面では、既存の掲示板のデータにヘッダーとインデックスを付けて
もらうだけでOKなので問題ないのでは?
拡張性の面も問題ないと思うし。
XMLで問題となってた書き込み/読み込みの速度の問題もないし。
0544nobodyさん
02/12/13 23:33ID:???0545nobodyさん
02/12/13 23:35ID:???>>475がよ、
>例えばXMLだと送信者の情報をいれとこうと思うと、
>すでに個人情報のマークアップの仕方を定めてる勧告があって、
>それを使用することで、個人情報の中身には一切関わらなくても、
>「この要素の内容の"個人情報"は"送信者の個人情報"ですよ」
>って事がわかってれば、内容についてはノータッチでいける。
>将来的にあたらしい種類の個人情報が登場してもノータッチ。
なんつうアホなこと書いてたからよ、>>507 >>516で
個々の掲示板プログラムまたはそれに付随するXSLスタイルシートが
年齢要素にタッチしない限りソートできるわけねえだろ、っつっただけのことよ。
それとよ、XML攻撃する奴は誰でも49なのか?(ワラ
054656
02/12/13 23:36ID:???記事にURNふってみたいと思ったり(w
少なくとも漏れが過去に提示したサンプルじゃ(以下略
0548nobodyさん
02/12/13 23:42ID:???>年齢要素にタッチしない限りソートできるわけねえだろ、
個々の掲示板のフォーマットは統一されてるんだから、
XSLスタイルシートは一つですみそうなもんだが?
もっとも、自分で拡張した場合はこのかぎりでは無いがな。
あと、"年齢要素にタッチ"の具体的な内容がわからんが…
0549nobodyさん
02/12/13 23:44ID:???0550nobodyさん
02/12/13 23:45ID:???どうして"いらねぇ"なんだ?
連絡先がわかれば便利でしょ?
連絡先を教えたいか教えたくないか(記入するかしないか)
を選択できるのがニーズだと考えるべきだと思うが…
0552nobodyさん
02/12/13 23:47ID:???W3Cが勧告した意味すら無いじゃん。
■ このスレッドは過去ログ倉庫に格納されています