青空文庫OPDS更新 ディレクトリ構成など変更

青空文庫OPDSの更新をしました。

やらなくちゃいけないことは沢山あって、でもあんまり使われてないし、FEEDだけ出力しても利用側の整備の方も準備しないとあまり意味ないしなぁ、ということでずっと放置状態でした。どちらかというと、最近はずっと利用側の準備にかかりきりだった。

とりあえず、メタ情報の話なども出ていたので、少し弄るべぇという感じです。

主な修正点は以下。

  • OPDSのルートのURLを変更した
  • URLの構造を変更した
  • 出力する情報を変更した

ルートのURLを変更した

新しいURLは http://aozora.textlive.net/catalog.opds になります。

古いURL( ルート、最新登録、最新更新 )からは、新URLにリダイレクトがかかっています。そのうちリダイレクトを無くすかもしれないので、機会があったら書き換えたほうがいいです。

URLの構造を変更した

まだしっくり固まっていない感じですが、いつまでもウロウロしていても仕方ないので…

ちなみに、作品のOPDS単体のフィードも出力するようにしました。

泉鏡花の高野聖だと http://aozora.textlive.net/works/521.opds となります。

rdfなどもやってみたいが、色々と情報が足りない風味。

それよりもまずはHTMLのフロントを付けたいのですが、デザインができないので、大分放置気味です。HTMLの場合、一目であちゃ〜ってなっちゃうのよね…

出力する情報を変更した

ちゃんと確認しきれていないが、OPDS 1.1ぽい感じに変更してみました。

また、OPDSをハンドリングする側の都合に合せて、一部ワザと変更していた acuisition link などを、元に戻してみました。

FacebookのOPDS.JPなどで議論があったので、すこし付加情報を付けてみました。

カフカの作品一覧( http://aozora.textlive.net/author_works/1235 )を見てもらうと分るのですが、 dcterms:*Transcriptionとして読みを入れてあります。

原題がある場合は、原題も dcterms:alternative として入れました。

責任表示の項目は、以前は author 要素を1つに入れていましたが、複数の責任表示がある場合は author 要素を分離しました。name要素には名前だけをいれてdc:creatorに著述区分も含めた責任表示を入れています。こういう方法が正しいのか、実はよくわかっていません。authorにつけずに、entryにdc:creatorを複数の人も含めて付けるほうがいいのかもしれません。

しかし、今はいいけど、順番とか重要なんだよね。今は著者が先で、それ以外が後くらいにしか弄っていない。でも実際の出版物では、この責任表示に記載される順番が権利の割合的な意味があって、結構致命的なケースがある。維持しないとダメだったりする。そうなると、もう最初から責任表示は著述区分と順番も含めてデータを供給してもらったほうがいい感じもしなくもない…

この辺は、メタ情報の取扱いの基本知識がないので、結構ダメダメな感じです。この辺は出版関係者でも一部の人とか図書館関係者じゃないと、なかなか知らないことのように思える。私は詳しくないので、どうにもダメです。

責任表示の著述区分の記載とか、姓名、ミドルネームの扱いとか、要素だけじゃなくて、その中に入れるべきデータ自体の問題というのも実際問題でてくると思うのですが、その辺は調べがついたり、指摘されたら、逐次変えていこうかと思います。

補足

どちらにしても、何故 ONIX なりではなく OPDS なのか、と考えると、あんまり複雑なメタデータをOPDSにのせるべきなのか、っていうのは、難しい問題のような気はする。

あと全然関係ないけど、AWSのELBのヘルスチェックって、リダイレクトみてくれないのね。シクりました。

負荷的には全然そんな必要はないんだけどAWSに慣れたいという一心でRDSのMulti A-ZやらELBやらを最低構成で利用してる。

今回コード入れかえたら、ヘルスチェックの参照URLがリダイレクト対象になっていて、一気に反応なくなって何が起きたのかと一瞬あおくなっちゃたりして。開発は別サーバーでやってて、そっちはELB関与してないんで、気がつかなかったわ。

週末に、色々とあたらしいコーディング上の知見を得たり、実際になにかやるとしらないことばかりで愉しいと言えば愉しい。しかし、自分の無知さに、天をあおぎたくなるなぁ。

なんにもやってない時は、当然なにも新しくしらないので、アホさ加減に気がつくこともないんだけど、ねぇ。