fetch-meta-to-kb について
fetch-meta-to-kbは、Crossrefから雑誌論文を差分取得してデータベースへ登録するスキルです。雑誌レコードを管理するワークフロー向けで、DOIによる重複回避と実行単位の集計に対応します。
主な機能
- 01指定日以降の論文を取得
- 02journals_issnから雑誌ISSNを取得
- 03雑誌名でCrossrefの結果を絞り込み
- 04論文の各項目をjournalsへ登録
- 05DOIの競合をスキップ
活用シーン
- 01新しい雑誌論文レコードの取り込み
- 02指定日以降のCrossrefメタデータの追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tiangong-ai/ agent-skills --skill fetch-meta-to-kbインストール後、Claude Code で/fetch-meta-to-kbを入力して読み込まれたか確認します。
詳細
KB へのメタデータ取得
主な目標
- 指定された
--from-date以降のjournal-articleレコードを Crossref から取得します。 journals_issnから ISSN のシード行(journal、issn1)を読み取ります。ON CONFLICT (doi) DO NOTHINGを指定してjournalsに行を挿入します。- 実装を
fetch_meta_to_kb.pyに準拠させます。
実行ワークフロー
- データベース接続用の環境変数を設定します(ユーザーが管理するキーには
KB_を付けます)。
KB_DB_HOSTKB_DB_PORTKB_DB_NAMEKB_DB_USERKB_DB_PASSWORDKB_LOG_DIR(必須。ログ出力先ディレクトリ)
- 必須の日付を指定して増分取得を実行します。
python3 scripts/fetch_meta_to_kb.py --from-date 2024-05-01
execツール呼び出しで実行する場合は、タイムアウトを 1800 秒(30 分) に設定してください。
- 次の場所でログを確認します。
${KB_LOG_DIR}/fetch-meta-to-kb-YYYYMMDD-HHMMSS.log(UTC のタイムスタンプ。実行ごとに 1 ファイル)
- ユーザー向けの概要は、今回の実行結果のみを基に作成します。
fetch_meta_to_kb.pyが出力するRUN_SUMMARY_JSONを優先してください。- JSON を利用できない場合は、今回の実行に対応する
${KB_LOG_DIR}/fetch-meta-to-kb-YYYYMMDD-HHMMSS.logのみを解析してください。 total_insertedは、テーブル内の累計行数ではなく、今回の実行で挿入された行数(DOI の重複排除後)を表す必要があります。
動作仕様
- Crossref エンドポイント
https://api.crossref.org/journals/{issn}/worksをクエリします。 type:journal-article,from-pub-date:<from-date>で絞り込みます。container-titleが対象のジャーナル名と一致するアイテムのみを保持します(一致判定では大文字と小文字を区別しません)。- 一致するアイテムがなくなるまで、カーソルを使ってページネーションを続けます。
- 次のフィールドを
journalsに保存します:title、doi、journal、authors、date、abstract(Crossref に abstract がない場合は null)。 - レポートや告知に使用する指標は、今回の実行のログまたはサマリーのみを使用する必要があります。
- データベース全体や期間を対象とする SQL(
WHERE date >= ...など)を使って告知件数を計算しないでください。
対象範囲
- Crossref からの増分取得と
journalsへの挿入のみを実装します。
スクリプト
scripts/fetch_meta_to_kb.py
コメント
Markdown 対応