このFAQの目的は、slrnのスコアファイルに関してよく質問されることがらに 答えることです。いくつかの質問はrnの同様なFAQを基にしました。 質問: 1. slrnがスコアファイルを読むように設定するにはどうするの? 2. slrnのスコアファイルの形式は? 3. ある特定のサブジェクト、たとえば「test」にスコアを与えるには? 4. ある特定の人からの記事にスコアを与えるには? 5. ある特定のサイトからの記事にスコアを与えるには? 6. フォロー記事にスコアを与えるには? 7. 特定グループにクロスポストされた記事を削除するには? 8. クロスポストされた記事すべてを削除するには? 9. 特定の人からの記事を削除する方法はわかったけど、特定の人からの記事だけを 読みたいときはどうするの? 10. 参照している記事がないのに「Re:」のサブジェクトで始まる記事にスコアを 与えるには? 11. 大文字だけで書かれたサブジェクトにスコアを与えるには? 答え: ------------------------------ 質問1. slrnがスコアファイルを読むように設定するにはどうするの? slrnがスコアファイルを読むようにするには、スコアファイルの名前を指定 する必要があります。これは.slrnrcの中で、以下のように指定します。 scorefile "News/Score" これでホームディレクトリの下にNewsディレクトリにあるScoreという スコアファイルを読むようになります。 ------------------------------ 質問2. slrnのスコアファイルの形式は? 形式は簡単です。それはセクション分けされていて、セクションごとに、 一つあるいはそれ以上のニュースグループに対してスコア付けを行ないます。 一つのセクションは鍵括弧に囲まれたニュースグループ名で始まり、 そのセクションで定義されたスコア付けがニュースグループに適用されます。 例えば、 [sci.physics.*] という形式の行は、sci.physicsという階層構造を持ったニュースグループに 対するスコア付けセクションの開始を意味します。 セクションの中で、あるスコア付けは「Score」キーワードから始まります。 それは、ヘッダがそのテストを通るときに与えられるスコアの点数を定めます。 例えば、 Score: 100 Subject: neutrino は、「neutrino」という語を含むサブジェクトに100点を与えます。 一つ以上のヘッダに対してスコアを与えることもできます。 例えば、 Score: 1000 Subject: path integral From: Richard Feynman は、サブジェクトが「path integral」に関することで、著者が「Richard Feynman」である記事に対してスコアを与えます。 -9999というスコアは特殊です。ある記事がこの値にスコア付けされたときは、 残りのテストはすべてはスキップされ、その記事は削除されます。 スコアの値が「=」で始まるときは、ヘッダの残りのテストはスキップされ、 その記事のスコア値となります。 例えば、 [sci.physics.*] Score: =1000 From: @space.mit.edu Score: -9999 Xref: astrology は、sci.physicsという階層構造を持ったニュースグループのための二つの テストです。最初のテストは「=」で始まるので、emailアドレスに 「space.mit.edu」を含む人によってポストされた記事はすべて1000という スコア値を持ち、残りのテストはスキップされます。 二番目のテストは、astrologyというニュースグループにクロスポストされた 記事すべてに-9999を与えます。-9999のスコア値を持つ記事は削除されます。 この例では、space.mit.eduからポストされた記事がastrologyにクロスポスト されていても削除されません。それには1000が与えられるからです。 「~」は否定演算子として使われます。例えば、前の例は(だいたい)次のように 書きかえられます: [sci.physics.*] Score: -9999 ~From: @space.mit.edu Xref: astrology これは、astrologyにクロスポストされた記事でspace.mit.eduからポストされ たもので*ない*ものを削除します。 最後に、「Score」キーワードの後に二つのコロンがあった場合は、 テストの「どれか」がマッチしたときに適用されます。 例えば、 Score:: 1000 Subject: neutrino Subject: photon は、サブジェクトに「neutrino」を含むか、「photon」を含む記事に 1000を与えます。 ------------------------------ 質問3. ある特定のサブジェクト、たとえば「test」にスコアを与えるには? Score: -9999 Subject: test ------------------------------ 質問4. ある特定の人からの記事にスコアを与えるには? Score: -9999 From: name@who\.knows\.where name@who.knows.whereという人の記事に-9999を与えます。 ------------------------------ 質問5. ある特定のサイトからの記事にスコアを与えるには? Score: -9999 From: @who\.knows\.where @who.knows.whereというドメインからの記事に-9999を与えます。 ------------------------------ 質問6. フォロー記事にスコアを与えるには? フォロー記事が「Re:」で始まるサブジェクトを持つか、referencesヘッダを 持つと仮定します。そういう記事に-9999を与えるには: Score:: -9999 Subject: ^Re: References: . スコアのキーワードのあとが二つのコロンだった場合は、採点が「OR条件」で 行なわれる点に注意しましょう。つまり、上の例では、「Re:」で始まる サブジェクトを持ち、*あるいは*、references行を持つ記事に適用されます。 「Re:」で始まるサブジェクトを持ち、*かつ*、references行を持つ記事に適用 したいときはコロン一個です: Score: -9999 Subject: ^Re: References: . 一つのコロンは「AND条件」を意味します。 ------------------------------ 質問7. 特定グループにクロスポストされた記事を削除するには? 二つ方法があります。「Xref」ヘッダを使うのと、「Newsgroups」ヘッダを使う ものです。できれば「Xref」ヘッダを使う方法がベストです。 「astrology」というニュースグループにクロスポストされた記事に対して スコアを付けるものとします。以下のどちらかを使ってください。 Score: -9999 Xref: astrology Score: -9999 Newsgroups: astrology くりかえしますが、後者の方法は可能なかぎり避けてください。 ------------------------------ 質問8. クロスポストされた記事すべてを削除するには? 前の答同様、二つ方法があります。(望ましい)「Xref」ヘッダを使う方法と 「Newsgroups」ヘッダを使う方法です。前者は、クロスポストされた記事では 「Xref」ヘッダに二つのコロンがあるということを利用します。こんなかんじ: Score: -9999 Xref: :.*: 「Xref」ヘッダが使えないときはしかたがないのでこうします: Score: -9999 Newsgroups: , ------------------------------ 質問9. 特定の人からの記事を削除する方法はわかったけど、特定の人から の記事だけを読みたいときはどうするの? これは簡単です。その人からの記事以外を消せばいいのです。 someone@i.likeという人からの記事だけを読みたいとすると、こうします: Score: -9999 ~From: someone@i\.like 否定演算子「~」の持つ意味に注目しましょう。 ------------------------------ 質問10. 参照している記事がないのに「Re:」のサブジェクトで始まる記事に スコアを与えるには? referencesヘッダとsubjectヘッダに対して以下のようにスコアを設定します。 Score: -9999 ~References: . Subject: ^Re: Referencesキーの部分が意味しているのは、単に記事がreferencesヘッダを持って いてはいけないということです。subjectヘッダのところでは正規表現を使って いるので、「Re:」がサブジェクトの先頭から始まっていなければいけません。 ここでは「Re:」にも「re:」にも「rE:」にも「RE:」にもマッチします。 「Re:」だけにマッチさせたいときはこうします: Subject: ^\cRe: 「\c」は大文字と小文字を識別させる意です。逆に、識別させたくないときは 「\C」を使います。 ------------------------------ 質問11. 大文字だけで書かれたサブジェクトにスコアを与えるには? こんなかんじ: Score: -9999 ~Subject: \c[a-z] これで、小文字を*含まない*サブジェクトに-9999を与えます。 フォロー記事でもその手のものを削除したい場合は: Score:: -9999 ~Subject: \c[a-z] ~Subject: ^Re: \c.*[a-z]