Z39.50으로 국회도서관 검색하기

feanor의 이미지

텀즈에 따르면, Z39.50은 "온라인 데이터베이스 내의 도서목록 데이터 검색에 관한 표준 통신 프로토콜"입니다. 왠지 표준이라니까 한국에서 써먹을 일은 별로 없을 것 같은 불길한 예감이 듭니다. -_- 역시나, 텀즈에서 국립중앙도서관으로 걸어놓은 링크는 현재 404를 돌려주고 있습니다.

그런데 놀랍게도 (아니면 당연하게도?) 국회도서관에서 이 서비스를 제공하고 있는데, 이에 대한 정보는 국회 전자도서관 공지사항에서 찾아볼 수 있습니다.

오픈 소스로 공개된 Z39.50 클라이언트 중 가장 유명한 것이 YAZ입니다. 데비안 패키지가 있어서, 데비안 사용자 분들은 apt-get install yaz 하면 설치할 수 있습니다.

실제 사용 예를 캡처해 보았습니다. YAZ에 기본으로 들어 있는 테스트용 클라이언트 zoomsh을 사용했습니다만, YAZ 라이브러리를 이용하면 서지 정보를 다루는 다른 프로그램을 만드는 데도 사용할 수 있을 것입니다.

tinuviel@tinuviel:~$ zoomsh
ZOOM>connect <a href="http://www.nanet.go.kr:2100" rel="nofollow">www.nanet.go.kr:2100</a>
ZOOM>set databaseName MONO
ZOOM>search "당신 인생의 이야기"
www.nanet.go.kr:2100: 1 hits
ZOOM>show 0 1
1 MONO USmarc (1.2.840.10003.5.10)
00728nam k2200241 k 4500
001 MONO1200420136
005 20041215104052
008 041206s2004    ko            000af kor  
020    $a 8989571308
049 0  $a 1층대출대 $c 2
082    $a 823 $2 NAL
090    $a 823 $b C532s
100 1  $a Chiang, Ted, $d 1967-
245 10 $a 당신 인생의 이야기 / $d 테드 창 지음 ; $e 김상훈 옮김
260    $a 서울 : $b 행복한책읽기, $c 2004
300    $a 428 p. ; $c 23 cm
440 00 $a 행복한책읽기 작가선집. $n 01, $p 테드 창 걸작선
507 10 $t Stories of your life and others
586    $a 휴고상, 네뷸러상, 로커스상, 스터전상, 아시모프상, 사이드와이즈상, 존 캠벨 Jr. 기념상 수상
700 1  $a 창, 테드
920    $a 1 $b 1
950 0  $b \14000
970    $a 1층대출대
 
ZOOM>quit
tinuviel@tinuviel:~$ 

댓글

익명사용자의 이미지

바로 접속해보았지만,
--------------------------------------------
ZOOM>search "korea"
www.nanet.go.kr:2100 error: Database unavailable (Bib-1:109) Default
--------------------------------------------
이런 에러가 떨어지네요.

feanor의 이미지

set databaseName 을 꼭 하셔야 됩니다. 단행본의 경우는 제가 예로 든 것 처럼 MONO이고, 나머지는 공지사항 글을 참조하세요.

skysign의 이미지

왠지 작은 희망이 느껴지내요... *^^*

atie의 이미지

우분투 Dapper에는 작년도 소스로 만들어진 deb이 있어 feanor님 글에 있는 링크에서 9월에 나온 소스를 받았는데, 이미 데비안화가 되어있어서 Dapper에서 한 줄도 고칠 것 없이 최신 버전 deb을 만들 수가 있었습니다.

그런데, 잠깐 인터넷의 글들을 읽어보니 실제 서비스를 하는 나라는 몇 나라 뿐인가 봅니다. 미국 의회에서 제공하는 서버는 접속이 되서 건수를 알려주기는 하는데... show에서 데이타를 못 보여주고 실패하더군요. 그래서 호기심에 위에 적힌 국내 서버에서 논문 검색을 해 보았는데 제게는 생뚱맞는 "내피세포"라는 검색어에도 몇 천건의 자료가 보여지는 것으로 짐작컨대 데이타베이스 구축이 잘 되었나 봅니다. 그래서 "희망"이라고 하신 건가요?
----
I paint objects as I think them, not as I see them.
Ubuntu Dapper user / Ubuntu KoreanTeam

----
I paint objects as I think them, not as I see them.
atie's minipage

atie의 이미지

검색하다보니 이런 코드가 있어서 테스트해보고 터미널에서 코드상에 있는 커넥션 옵션을 쳐주었더니 미의회 서버에서도 도서 검색이 잘 되는군요. ;; 그럴 수 밖에 없겠지만 c 코드라도 jdbc 용법과 유사해서 자료 형태만 좀 들여다보면 나중에 필요한 것이 있으면 간단하게 출력 프로그램을 작성할 수 있겠습니다. 오늘 좋은 것 알았습니다. ^^;;

cat test.c
#include &lt;stdio.h&gt;
#include &lt;yaz/zoom.h&gt;
int main(int argc, char **argv)
{
    ZOOM_connection z = ZOOM_connection_new("z3950.loc.gov:7090/Voyager", 0);
    ZOOM_resultset r;
    const char *rec;
    ZOOM_connection_option_set(z, "preferredRecordSyntax", "USMARC");
    r = ZOOM_connection_search_pqf(z, "@attr 1=7 0253333490");
    rec = ZOOM_record_get(ZOOM_resultset_record(r, 0), "render", 0);
    if(rec)
        printf("%s\n", rec);
    return 0;
}    

----
I paint objects as I think them, not as I see them.
Ubuntu Dapper user / Ubuntu KoreanTeam

----
I paint objects as I think them, not as I see them.
atie's minipage

keizie의 이미지

Z39.50을 지원하는 관리 프로그램이 GNOME과 KDE에 다 있습니다.

GNOME 프로그램인 Alexandria는 ruby로 작성되었으며 Z39.50 지원을 위해 ruby-zoom을 요구합니다. 우분투 패키지에는 Z39.50 지원이 꺼져 있어서 모두 cvs로 받아서 깔았습니다.

옵션에서 Provider에 고급 옵션을 켜면 추가 버튼이 나오는데, 거기서 국회도서관을 추가할 수 있습니다. 완료를 했더니 덜컥 죽길래 다시 띄웠습니다. 일단 목록에 나와있긴 하더군요. 맨 위로 올리고, 파일 메뉴의 책 추가를 열어 검색을 해봤습니다. 한글을 입력하면 엉뚱하게 나오고, 영문은 잘 됩니다. 아무래도 아까 인코딩 항목이 없었으니 모두 UTF-8로 처리하는 모양이네요. 된다는 건 확인했습니다.

KDE 프로그램인 Tellico는 패키지에 있습니다.

띄워서 국회도서관을 추가합니다. 이번엔 인코딩 설정도 있어서 cp949라고 적어줬습니다. 책을 검색하는 게 좀 엉뚱한 곳에 있었습니다. 편집 메뉴에 인터넷 검색이라고 따로 있어서 열어봤습니다. 한글을 입력했는데 엉뚱한 결과가 나옵니다. '당신'을 입력하면 뱀이 들어간 제목이 주루룩 뜹니다. 다른 걸 몇 개 해봤는데 엉뚱하게 나오거나 안 나오거나 합니다. 아마 이것도 검색어에는 인코딩 적용이 안되나봅니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.