DataONE コマンドライン・クライアントに関するメモ

DataONE は、米NSF の支援のもとで開発されている 研究データ分散リポジトリシステムである。

DataONE のシステムは基本的にウェブベースで動作するが、 DataONE コマンドライン・クライアントは コマンドライン形式のフロントエンド・インターフェイスを提供する。

記述言語は python 。

以下の記述は FreeBSD 9.1-RELEASE 上で 試験的に使用した時の備忘録である(2013年7月)。

感想

パッケージの作成、DataONE への登録、データ更新、ダウンロードと、 DataONE システムへの一通りのアクセスができるようだ。 データ管理者用のちょっとしたフロントエンドとして使えるかも知れない。

ただ、setup.py の不備など、ちゃんとメンテナンスされているのかよくわからない。 たぶん開発のメインラインには入ってないんだろう。 Python で書かれているので、自分で改造して好きに使えば問題ないだろう。

インストール

  • Python と python ライブラリのインストール。:

    ports/lang/python27
    ports/security/py-openssl
    ports/devel/py-distribute
    ports/devel/py-lxml
    
  • Google foresite library(OAI-ORE を扱うためのライブラリ)のインストール。:

    http://foresite-toolkit.googlecode.com/files/foresite-1.2.tgz をダウンロード
    tar xzf foresite-1.2.tgz; cd foresite-1.2; python setup.py install
    
  • DataONE リポジトリからコードを取り出す。:

    ports/devel/subversion インストール
    svn export https://repository.dataone.org/software/cicore/trunk/d1_python
    cd d1_python; python svn_all.py
    
  • d1_common_python インストール:

    cd d1_common_python/src
    setup.py 編集
        setup() の引数に packages = find_packages(), を追加する
    python setup.py install
    
  • d1_libclient_python インストール:

    cd d1_libclient_python/src; python setup.py install
    
  • d1_client_cli インストール:

    cd d1_client_cli/src
    setup.py 編集
        setup() の引数に packages = find_packages(), を追加する
    python setup.py install
    
  • クライアント証明書の準備

    CILogin サイトからクライアント証明書を入手する。 その方法については DataONE R Client の使い方メモ を 参照のこと。

    PEM 形式に変換した証明書をどこか適当な場所に置く。 PEM 形式であれば、余計なテキストが含まれていてもよい。

  • クライアントの起動:

    $ python
    >>> from d1_client_cli import dataone
    >>> dataone.main()
    DataONE Command Line Interface
    >
    
  • 環境設定

    参照するデータノードのURLと、クライアント証明書のパスを指定する。 以下は一例。:

    > set mn-url https://knb.ecoinformatics.org/knb/d1/mn/
    > set cert-file /tmp/d1cert.pem
    > set key-file /tmp/d1cert.pem
    > show
    > save
    

使い方

  • 機能一覧:

    > help
    
  • キーワード検索:

    > serarch keyword
    
  • パッケージのダウンロード

    package get コマンドがうまく動かない。原因不明のエラーが出る。 小一時間ハックしたが原因がよくわからない。 コードがちゃんとメンテナンスされてないのか?

  • データオブジェクトのダウンロード:

    > get id filename
    

    id のオブジェクトが DataONE からダウンロードされてローカルの filename ファイルに保存される。