NAME

MARC::NDL_Search::OPAC - 国立国会図書館サーチAPIにおけるOPAC検索のPerlモジュール


概要

オブジェクトの作成

  use MARC::NDL_Search::OPAC;
  my $NDL_Search = new MARC::NDL_Search::OPAC;

検索の実行

キーワード検索

  $NDL_Search->set_query({'any' => '吾輩は猫である'}); # キーワード検索
  $NDL_Search->search;
  my $records = $NDL_sarch->reords;
  foreach $biblio (@{$records) {
      print "タイトル: ", $biblio->{"title"}, "\n";
      print "著者: ",     join q{, }, @{$biblio->{"author"}}, "\n";
      print "出版者: ",   join q{, }, @{$biblio->{"publisher"}}, "\n";
  }

ISBN検索

  $NDL_Search->isbn_search('4101010013'); 
  print "タイトル: ", $biblio->{"title"}, "\n";
  print "著者: ",     join q{, }, @{$biblio->{"author"}}, "\n";
  print "出版者: ",   join q{, }, @{$biblio->{"publisher"}}, "\n";

エラーとヒット件数の取得

エラーの補足

  my $error = $NDL_Search->error;
  exit if ($error);

ヒット件数の取得

  my $hits  = $NDL_Search->hists;


説明

国会図書館サーチ APIのNDL-OPACの利用に特化したPerlモジュールです。 国会図書館の蔵書をこのモジュール経由で検索することができます。

キーワード検索

キーワード検索のパラメータ指定

  検索キーワードや表示パラメータは、ハッシュの形式で渡します。
  キーワードはutf8文字列で与える必要があります。
  my %query = (
      'any'       => $any,        # キーワード検索
      'title'     => $title,      # タイトル検索
      'creator'   => $creator,    # 著者検索
      'publisher' => $publisher,  # 出版社検索
      'from'      => $from,       # 刊行日FORM (YYYY-MM-DD)
      'until'     => $until,      # 刊行日UNTIL(YYYY-MM-DD)
      'ndc'       => $ndc,        # NDC
      'isbn'      => $isbn,       # ISBN検索
      'max'       => $max,        # ページごと表示件数
      'page'      => $page,       # ページ番号
      'timeout'   => $timeout,    # タイムアウト
  );
  $NDL_Search->set_query(\%query);
  $NDL_Search->search;

キーワード検索の結果表示

  キーワード検索の結果は書誌レコードの配列レファレンスになります。
  各レコード中の項目は、書誌レコード(ハッシュレファレンス)から
取り出すことができます。
 いくつかの項目は、配列(繰り返し項目)になっています。
 呼び出せるデータ項目と、どの項目が繰り返し項目かは以下のコードで
確認ください。
  my $records = $NDL_Search->records;
  exit if $NDL_Search->error;
  if (!$NDL_Search->hits) {
      foreach my $biblio (@{$records}) {
        print "タイトル: ",       $biblio->{"title"}, "\n";
        print "タイトル(読み): ", $biblio->{"title_yomi"}, "\n";
        print "シリーズ: ",       $biblio->{"series"}, "\n";
        print "シリーズ(読み): ", $biblio->{"series_yomi"}, "\n";
        print "巻: ",             $biblio->{"volume"}, "\n";
        print "著者: ",           join q{, }, @{$biblio->{"author"}}, "\n";
        print "著者(読み): ",     join q{, }, @{$biblio->{"author_yomi"}}, "\n";
        print "出版者: ",         join q{, }, @{$biblio->{"publisher"}}, "\n";
        print "カテゴリー: ",     $biblio->{"category"}, "\n";
        print "注記: ",           join q{, }, @{$biblio->{"note"}}, "\n";
        print "guid: ",           $biblio->{"guid"}, "\n";
        print "出版日: ",         $biblio->{"pubDate"}, "\n";
        print "description: ",    $biblio->{"description"}, "\n";
        print "ISBN: ",           $biblio->{"ISBN"}, "\n";
        print "NDLC: ",           $biblio->{"NDLC"}, "\n";
        print "NDC9: ",           $biblio->{"NDC9"}, "\n";
        print "subject: ",        $biblio->{"subject"}, "\n";
        print "\n\n";
      }
  }

ISBN検索

  ISBNをキーに1件のデータのみ取り出します。日本刊行書籍限定です。
なお、このisbn_searchメソッドでは、ISBNの13桁・10桁変換を自動的に行います。
  キーワード検索と異なり、検索結果は書誌レコードの配列ではなく、1件の
書誌レコードとして戻ります。
  書誌レコードのデータ形式は、キーワード検索と同じです。
  $NDL_Search->isbn_search($isbn);
  my $biblio = $NDL_Serach->records;
  exit if $NDL_Search->error;
  if ($NDL_Search->hits > 0) {
        print "タイトル: ",       $biblio->{"title"}, "\n";
        print "タイトル(読み): ", $biblio->{"title_yomi"}, "\n";
        print "シリーズ: ",       $biblio->{"series"}, "\n";
        print "シリーズ(読み): ", $biblio->{"series_yomi"}, "\n";
        print "巻: ",             $biblio->{"volume"}, "\n";
        print "著者: ",           join q{, }, @{$biblio->{"author"}}, "\n";
        print "著者(読み): ",     join q{, }, @{$biblio->{"author_yomi"}}, "\n";
        print "出版者: ",         join q{, }, @{$biblio->{"publisher"}}, "\n";
        print "カテゴリー: ",     $biblio->{"category"}, "\n";
        print "注記: ",           join q{, }, @{$biblio->{"note"}}, "\n";
        print "guid: ",           $biblio->{"guid"}, "\n";
        print "出版日: ",         $biblio->{"pubDate"}, "\n";
        print "description: ",    $biblio->{"description"}, "\n";
        print "ISBN: ",           $biblio->{"ISBN"}, "\n";
        print "NDLC: ",           $biblio->{"NDLC"}, "\n";
        print "NDC9: ",           $biblio->{"NDC9"}, "\n";
        print "subject: ",        $biblio->{"subject"}, "\n";
  }

エクスポート

  このモジュールは何もエクスポートしません。

依存モジュール

  事前にPerlモジュールBusiness::ISBNをインストールしてください。
  それ以外は、Perlの標準的なモジュールを使用しています。

免責事項

  このモジュールのご利用に際して発生した不利益にいては、
一切責任を負いかねますので、ご了解の上で利用ください。


AUTHOR

Akira Maeda<maeda.akira@mail.u-tokyo.ac.jp>


COPYRIGHT AND LICENSE

Copyright (C) 2011 by Akira Maeda

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.