長南洋一
cyoic****@maple*****
2010年 12月 3日 (金) 21:29:53 JST
長南です。 きめ細かく見ていただいて、助かります。 元木さんのメールより [JM:00058] > > ここでコメントすべきことではないかもしれませんが、 > predicate の定番の訳は「述語」なのですが、 > 個人的にはどうも「述語」という訳に違和感を覚えます。 > 「演算子」の方がしっくり来るのですが、いかがでしょうか。 > > こういった用途で「述語」という表現はそれほど一般的ではないと思います。 > find くらい大きな manpage になると、man find を実行して、 > 検索するのがよくある使い方と思いますが、そうすると、 > いきなり「述語」が出て来ると、いったい何? ということになるのを > 懸念しています。 > > なぜ、著者は operator ではなく predicate を使っているのかが > 少し気になりますが。 たしかに、「述語」はピンと来ない言葉ですね。わたしは、 何も考えずに「述語」と訳したんだろうと思います。それでも、 多少は気になったのでしょう。初出の箇所で「訳注: 述語とは、 式を構成するオプション、テスト式、アクション式などの基本語彙を 言う」と定義しています。でも、manpage はリファレンスとして 使うことが多いものですから、全文を最初からちゃんと読んで もらえるとは期待できませんし……。 要するに、「オプション、テスト、アクション」をまとめて言う 言葉が必要で、それを著者は「predicate」と言ったわけです。 find の info や FreeBSD の manpage では「primary」と言って います。「基本語彙」くらいでしょうか。とにかく定義しておけば、 何と訳してもいいんじゃないかというのが、事実上わたしの態度 だったわけです。でも、「述語」はやはりちょっと無理な訳語かも しれません。 演算子というのは、代数で言えば、+ とか - でしょう。テストや アクションは、むしろ、定数や変数、operand に当たるんじゃ ないでしょうか。 and や or 演算子の対象と考えるなら、「賓辞」なんて言葉も 考えつきますけれど、耳慣れない上に、意味がずれているかも しれません。 今、「動作」という訳語を思いつきました。「述語」というのは、 「誰々が何々する」の「何々する」の部分ですから (「誰々は 何々だ」の「何々だ」の部分でもありますけれど)。しかし、 「動作」だと「action」とぶつかるし、predicate の現れるすべての 箇所で「動作」という訳語が使えるかどうか。 「式の要素」とか「式構成子」はダメだろうし ……。 できるだけ「述語」を「テスト」や「アクション」に置き換える ことにして、どうしようもないところだけ、「動作」なり「述語」 なりを使うことにしましょうか。でも、それだと、「述語」が 出てきたとき、余計にわかりにくいだろうし。 # 「動作」で思い出したのですが、side effect(s) をどう訳すかでも # 迷っています。現行の翻訳は「付加的な作用」で、これで充分に # 意味が通じると思いますが、もっとピッタリした訳がないものか。 # 「副作用」「副次作用」「二次的な作用」、何かよいお考えは # ありませんか。 > > -atime, -ctime, -mtime と言えば、以下の部分の訳にも頭を悩まして > > います。 > 難しいですね。個人的には、「N 日前に」という言い方の方が、 > 「n*24時間前の時間帯」よりも、時間としての区間を感じやすく、 > 理解しやすいように思います。 > > 著者は、n 日が現在時刻から計算されることを意識して、 > n days ではなく n*24 hours という書き方をしていると推察しますが、 > それに引きずられて読みにくくなっては本末転倒なので、 > 訳注として、「n 日前」は「n*24 時間前から (n+1)*24 時間前まで」 > であることを記載しておくのはいかがでしょうか > > これを考慮して、思いきり意訳してみるとこんな感じでしょうか。 > > ファイルの最終アクセス日時が n 日前の場合に、真を返す。 > (訳注: n 日前は n*24 時間前から (n+1)*24 時間前まで > 何日前かを求める際に、1 日に満たない小数点以下の部分は切り捨てられる。 > したがって、 -atime +1 にマッチするためには、少なくとも > 二日前にアクセスされていなければならない。 「思い切って、n 日前にしてしまえ」ということですね。やっちゃい ましょう。やっちゃいましょう。こういうのはどうでしょう。 ファイルの最終アクセス日時が n 日前ならば、真を返す ファイルの最終アクセス日時が何日前かを計算する際、 現在時刻との時間差を 24 で割った余りの端数は切り捨てられる。 従って、-atime +1 にマッチするためには、ファイルは少なくとも 二日前にアクセスされていなければならない。 -daystart を意識するなら、 ファイルが最後にアクセスされたのが何日前かを計算する際、 基準点 (デフォルトでは現在時刻) との時間差を 24 で 割った余りの端数は切り捨てられる。 「余りの端数」がちょっとくどいですか。 -ctime や -mtime の訳の後半も、工夫しなければならないようです。 > > .\"O .IP "\-anewer \fIfile\fR" > > .\"O File was last accessed more recently than \fIfile\fR was modified. If > > .\"O \fIfile\fR is a symbolic link and the > > .\"O .B \-H > > .\"O option or the > > .\"O .B \-L > > .\"O option is in effect, the access time of the file it points to is > > .\"O always used. > > .\"O > > .IP "\-anewer \fIfile\fR" > > ファイルの最終アクセス日時が、\fIfile\fR の内容更新日時よりも > > 新しければ、真を返す。検査の対象となるファイルがシンボリックリンクで、 > > しかも > > .B \-H > > や > > .B \-L > > オプションによってリンクがたどられるようになっている場合は、 > > リンク先のファイルのアクセス日時が、常に使用される。 > > > > -cnewer や -newer の同様部分についても言えることなのですが、 > > このくだりは、原文の著者がちょっと混乱しているような気がします。 > > > > 「 If \fIfile\fR is a symbolic link」の 「file」は \fI..\fR で > > 囲まれていますから、直前の文の \fIfile\fR と同じ、すなわち > > -anewer の引数だと考えるのが、自然だと思います。そうだとしたら、 > > 「-anewer の引数がシンボリックリンクで、しかも -H や -L オプションが > > 有効なときは、リンク先のファイルの内容更新日時 (mtime) が比較に > > 使用される」というのが、著者の言おうとしたことなのではないでしょうか。 > > その通りだと思います。Ubuntu 10.10 で実際の動作を確認してみましたが、 > リンク先のファイルの mtime を参照して動作していることを確認できました。 > > そんなわけで、思い切って、 > > > > ... \fIfile\fR がシンボリックリンクで、 > > しかも > > .B \-H > > や > > .B \-L > > オプションによってリンクがたどられるようになっている場合は、 > > リンク先のファイルの内容更新日時が、常に使用される。 > > > > と書き変えてしまおうかと思っていますが、どんなものでしょう。 > > > > 現在の訳でも一応は意味が通りますから、このままでよいのかも > > しれません。もしかすると、それがまさに著者の言いたいことで > > あって、混乱しているのはわたしの方かもしれませんし。 > > 私は長南さんの新しい案の方に、賛成です。 > 正確を期すなら、「リンク」→「シンボリックリンク」でしょうか。 > > 元の訳の場合、少なくとも、「検査の対象となるファイル」というと、 > find で走査されるファイルの方も、検索対象のファイルなので、 > 何を指しているか分からなくなる懸念があると思います。 > 新しい訳の方が誤解も招かないので、よいと感じました。 現行のマニュアルの原文を見ると、こんなふうになっています。 -anewer is affected by -follow only if -follow comes before -anewer on the command line. -follow は path... より後に来るはずですから、この文では明らかに -anewer の引数について言っています。以前のマニュアルと今の マニュアルでは違う、と言ってしまえば、そのとおりですが。 余程のことがないかぎり、原文の書き変えはやらない方がよいと 思います …… でも …… えい、やっちまいましょうか。 -- 長南洋一