フィンローダのあっぱれご意見番

第28回:Re^3の謎に迫る

初出: C MAGAZINE 1994年8月号
Updated: 1996-02-24

[1つ前] [1つ後] [一覧] [ホームページ]


NIFTY-Serveの電子会議の発言のタイトルを見ていると、例えばこういうのをよ く見かける。
    RE:Re^3:RE:レレレのおじさんは…
さて、RE:Re^3:RE:というのは一体どういう意味を持つのか考えてみる価値があ る。その前に、RE:というのはどういう意味なのかを考えてみるべきである。実は かなり前にプログラマーズフォーラムでこのことは話題になっており、その時の 結論は、reという英語の前置詞が「〜に関する」という意味なので、そのものず ばりではないか、という結論になった。これは経験にも一致する。InternetのNG に流れてくるアーティクルのSubjectに、やはりRe:という表記が使われるのだが、 これはどう考えても「〜に関して」という感じである。

ということは、「RE:レレレのおじさんは…」というタイトルからは、別の発言 として「レレレのおじさんは…」というものがあって、それに対する一連の話題 であることを意味すると解釈するのが自然だと思われる。ところで、最近の若い 者(^^)は、「レレレのおじさん」と言われても何のことか分からないのだろうか。 世代差というものであろうか、この前もアニメーション通らしき人から「うる星 やつらって何ですか」という質問があって度肝を抜かれた。最近のアニメマニア はうる星やつらを知らないのだ。

さらに話は逸れるが、少し前に"MANGA"という名称がある国で登録商標 になりそ うだから反対のメールを送って欲しい、といったアーティクルがあちこちのネッ トに流れた。この内容はある程度は事実なのだが、どうやら商標の申請となって いるのは、独特なデザインの中にMANGAという文字が使われているというもので、 MANGAという名称がそのまま登録されてしまうわけではないらしいのである。とこ ろが、流れた情報だけではそこまで詳しいことが分からないので、 "MANGA"という 言葉が勝手に使えなくなると誤解した人が結構いたようである。既にネットは誰 でも簡単にアクセスできる世界的な情報網になっていて、伝聞情報の速度も極め て速い。情報をどの程度信頼できるか、という問題は重要度を増しているようだ。 それはさておき、 "MANGA"の件は、まだ確定情報のようではなさそうなので(とは いえ、この記事が出ている頃には確定しているかもしれないが)、慌てずに十分 な情報を集めてから行動すべきであろう。

で、RE:の話に戻すと、"Re^3:"という表記は"Re:Re:Re:" を意味する。実はNIFTY-Serveの仕様の問題で、 タイトルに付けられる文字列の長さが制限されている。し かも40バイトという、かなり短い制限だ。本文中にタイトルを書くという対策も 不可能ではないが、折角のタイトルに必要な情報が書けないというのは面白くな い。"RE:Re:Re:Re:RE:"と書くとそれだけで15バイトである。 残りは25バイトしかない。このため、"Re^3:"という表記が発明され たのではないかと推測される。

やっと最初の問題に戻れるのだが、ということは、"RE:Re^3:RE:レレレのおじ さんは…」の意味が分かる。「RE:レレレのおじさんは…」というのは、「レレレ のおじさんは…(という発言)に関して」という意味だ。ということは、「Re:RE :レレレのおじさんは…」というのは、「「レレレのおじさんは…に関して」に関 して」という意味だ。後はネストを深くするだけである。「RE:Re^3:RE:レレレの おじさんは…」というのは、「「「「「レレレのおじさんは…に関して」に関し て」に関して」に関して」に関して」という意味だ。

という意味だ…と書いたが、どういう意味なのか分からん。

例えば、「OOに関して」というタイトルなら、この発言がOOに関する内容を持 つことが想像できる。「RE:OO」がこれに相当する。では「RE:RE:OO」に対応する 「「OOに関して」に関して」はどうか。まず明白なことは、この発言がOOに関す る内容を持つのではないということである。なぜなら、このタイトルは、その内 容が「OOに関して」ではなく、「OOに関して」という得体の知れないものに関し てであることを示しているからである。これについて「NIFTY-Serveの皆さんはメ タ議論が好きですね」と評した方がいらっしゃったが、同感。メタ議論とは何か という議論もあるが、どんどん話が逸れるので省略しておく。一つの可能性とし ては「「OOに関して」というタイトルの付いた発言に関して」という解釈もある が、この解釈に無理がある理由は後述する。

さて、真相はこうなのである。NIFTY-Serveの電子会議のコマンドに、既存の発 言に対してコメントを付けるというものがある。例えば、発言本文中の先頭でRE :(発言番号)と指定しておけば、指定した発言へのコメントとして登録される。こ の場合は、発言のタイトルを付ける必要はない。コメント先のタイトルがそのま ま流用されるからだ。ただし、コメント先のタイトルそのままでなく、RE:という 表現がその先頭に付く。例えばコメント先のタイトルが「レレレのおじさんは…」 だったら、「RE:レレレのおじさんは…」というタイトルに自動的になるのだ。こ こで問題は、さらにその発言にコメントを付けるとどんなタイトルが付くのかと いうことだ。「RE:RE:レレレのおじさんは…」になるのか? と思ったらそれは 甘い。実際にやってみれば分かるが、このように重複しないで、 一つだけ"RE:"が 付いたままタイトルが引き継がれる。先程解釈に無理があるというのは、そうい うわけである。「〜に関して」というタイトルの発言に関して」という解釈がも っともであるなら、自動的にどんどん"RE:"が付くべきであって、 現に付かないということが説明できない。

もし本当に「現に付かない」のなら何も問題はないはずだが、実際に「RE:Re^ 3:RE:」なんて書かれているという事実が、事態がそう単純でないことを示してい る。実はどういう規則なのか私にもよく分からないのだが、とにかく「RE:RE:」 と重なったタイトルになることも、実際にあるのだ。つまり、元々これは発言者 が意図して付けたのではなく、NIFTY-Serveのシステムが勝手にそのように付けた のである。少なくとも私の発言ではそうだ。私の発言には、意味のあるタイトル を付けることにしているので、「RE:Re^3:RE:レレレのおじさんは…」などどいう 自分が理解できないタイトルを付ける気は全くない。では、意図的にこのような タイトルを付けている人達は一体何を考えているのだろうか? おそらく、意味 としては何も考えていないのではないかと思われる。ただ、NIFTY-Serveのコマン ドをマニュアル通りに使ったら「RE:RE:…」のようにタイトルの先頭に付いてし まったから、意味は分からないが、とにかくこれでは残り文字数を圧迫してしま うということで「RE^n」のような略記法を考えたのではないか。

という感じで想像してみたのだが、実は私の場合は"RE:"がどんなに 重なったとしても自分の発言の時に一個の"RE"に戻してしまうので、 "RE:Re^3:RE:"と書く人 が本当はどのような意味を考えているのか分からない。一個に戻すというのは、 意味のあるタイトルを付けるということである。「RE:RE:OO」ではなく「RE:OO」 にするということだ。とりあえずこれは手作業でやっているが、プログラムで処 理するとしたらどうするか。

今ざっと書いたものなので全く無駄だらけだが、LISTは「RE:Re^3:RE:レレレの おじさんは…」のような文字列を与えると「RE:」一つだけに詰める処理を行う例 である。


/* LIST */
/* by Phinloda 1994,  No copyright */
#include <stdio.h>
#include <string.h>

void auto_title(char *s)
{
    char *top = s;
    int modified = 0;

again: /* Re:とかRE:とかre^5とかがある限り繰り返す */
    if ((s[0] == 'r' || s[0] == 'R') && (s[1] == 'e' || s[1] == 'E')) 
{
        if (s[2] == ':') {
            s += 3;
            modified = 1;
            goto again;
        }
        if (s[2] == '^') { /* Re^::: もマッチする */
            s += 3;
            while (isdigit(*s) || *s == ':')
                s++;
            modified = 1;
            goto again;
        }
    }

    if (modified) {
        size_t len;

        len = strlen(s);
        strcpy(top, "RE:"); /* これを入れても元より短くなるはず */
        memmove(top + 3, s, len + 1);
    }
}

static char sample[81] = "Re:re^3:Re:レレレのおじさんは…";

int main(int argc, char *argv[])
{
    puts(sample);
    auto_title(sample); /* 上書きするのでご注意を */
    puts(sample);
    return 0;
}

こんな程度の処理はNIFTY-Serveのシステムに埋めこんでもらいたいもの であるが(もちろん全部強制ではなくオプションの機能として)、システムの担 当者は相当忙しいらしく、五年以上前に提案した仕様が未だに実現されていない というのが実情なので、このような処理を通信ソフトやコメント作成用のエディ タ等に組み込むなどして、 タイトルに"Re:"があまりにも重複している場合には端 末側で削ったものを発言のタイトルとして指定してしまうのが現実的な解決策で ある。
(C) 1994, 1996 Phinloda, All rights reserved
無断でこのページへのリンクを貼ることを承諾します。問い合わせは不要です。
内容は予告なく変更することがあります。