creativecommons / creativecommons/quantifying

Add Zenodo as Data Source for Commons Quantification

オープン
#249 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
✨ goal: improvement 🏁 status: ready for work 💻 aspect: code help wanted 🟩 priority: low
主要言語
Python
スター
48
フォーク
74
PR マージ指標
30日以内にマージされた PR はありません

説明

## Problem
Zenodo is a major repository for open access research outputs with 5.5M+ records, but is not currently included in our commons quantification project. Adding Zenodo would significantly expand our coverage of Creative Commons licensed content, particularly in academic and research domains.

## Description
Implement data collection from Zenodo using their REST API to gather license information for quantifying the commons. This involves:

- Fetching records with structured license metadata
- Classifying Creative Commons and other open licenses
- Generating reports by year, resource type, and language
- Handling API rate limiting and pagination

## Zenodo Useful Links

### Official Documentation
- **REST API Documentation**: https://developers.zenodo.org/
- **API Reference**: https://zenodo.org/api/docs
- **General Documentation**: https://help.zenodo.org/
- **Developer Documentation**: https://developers.zenodo.org/
- **Search Guide**: https://help.zenodo.org/guides/search/
- **Zenodo Homepage**: https://zenodo.org/

### API Endpoints
- **Base URL**: `https://zenodo.org/api/records`
- **Records Search**: `https://zenodo.org/api/records`
- **Single Record**: `https://zenodo.org/api/records/{id}`
- **Communities**: `https://zenodo.org/api/communities`

## Technical Details

### Query Strategy
```
GET https://zenodo.org/api/records?q=*&size=100&page=1&sort=bestmatch
```

**Parameters:**
- `q`: Query string (use `*` for all records)
- `size`: Records per page (300) *implementation choice*
- `page`: Page number for pagination
- `sort`: Sorting method (bestmatch recommended)

### API Types Available
1. **REST API** (Recommended)
- Format: JSON
- Authentication: None required for public records
- Structured license data: `metadata.license.id`

2. **OAI-PMH** (Not recommended)
- Format: XML Dublin Core
- Unreliable license parsing from free-text fields `(dc:rights)`

### Key Metadata Fields
- **License**: `metadata.license.id` (structured, e.g., "cc-by-4.0")
- **Access Rights**: `metadata.access_right` ("open", "restricted", "embargoed")
- **Publication Date**: `metadata.publication_date` (ISO format)
- **Resource Type**: `metadata.resource_type.title`
- **Language**: `metadata.language` (ISO codes)

## Implementation

- [x] I would be interested in implementing this feature.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Zenodo の REST API ドキュメントと /api/records エンドポイントから始め、ページネーション、レート制限、issue に記載されたメタデータフィールドに焦点を当てます。完了条件は、レコードを収集してライセンス別に分類でき、ページネーションとレート制限に対応しながら、年、リソースタイプ、言語を対象とするレポートを作成できることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
data-engineering
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。