著者の表現

作成日:2007-04-30
最終更新日:

著者として判断するところ

Namazu は著者の項をフィールドとして持っている。 索引ファイルとしては、NMZ.field.from に格納されている。

/usr/share/namazu/filter/html.pl にあるソースを見ると、 優先順位の高い順番から低い順番で、 次のようになっている。

  1. meta タグの author 要素
  2. link タグにある href mailto 要素
  3. address タグの中身

このどれにも当てはまらないときは、不明と表示される。

さて、私は seesaa にあるブログを wget でダウンロードして、 検索対象に含めていたことがあった(2020 年以降、現在まで検索対象からは外している)。 この seesaa ブログでは、作者の表現は、 上記のどれにも該当しない。 しかし、まりんきょが著者であることは決まっているから、 Namazu の検索結果の著者欄に出るようにさせたい。

著者の反映

さて、著者をNamazuの索引データに反映させるには、 次の方法が考えられる。

  1. フィルター html.pl を書き換える
  2. wget でダウンロードしたローカルファイルを書き換える
  3. 直接 NMZ.field.from を書き換える

ここでは、第3の方法を採ることにする。 著者欄は、NMZ.field.from に入っている。


#nmzauthor.rb
uri = "/var/namazu/index/NMZ.field.uri"
a_uri = File.open(uri)

while (title = a_uri.gets)
  line = ARGF.gets
  if (/marinkyo.seesaa.net/ =~ title)
    print "まりんきょ", "\n"
  else 
    print line
  end
end

このプログラムを次のように呼び出す
% ruby -i.BAK nmzauthor.rb /var/namazu/index/NMZ.field.from
これで、不明だった著者欄が、まりんきょという名前になる。

rfnmz コマンドを作用させることを忘れずに。(2007-04-30)

なお、著者を「まりんきょ」決め打ちでなく、 まじめにファイルから検索することも考えた。 seesaa ブログでは、 ダブリンコア (Dublin Core)表現で、次のようになっている。


<rdf:Description
    rdf:about="http://marinkyo.seesaa.net/article/10026246.html"
    trackback:ping="http://blog.seesaa.jp/tb/10026246"
    dc:title="ハイドン「四季」"
    dc:identifier="http://marinkyo.seesaa.net/article/10026246.html"
    dc:description="合唱団で、ハイドンの「四季」を練習する。春の最後のフーガだ。覚えられるか。"
    dc:creator="まりんきょ"
    dc:subject="音楽"
    dc:date="2005-11-30T23:29:07+09:00"
/>

したがって、この dc:createor="まりんきょ"の引用符内を抽出すれば、 著者が得られる。 しかし、この表現自体、実は HTML のコメントの中にあるので、 厳密には無効な情報だ。

まりんきょ学問所全文検索システム Namazu > 著者の表現


MARUYAMA Satosi