从Zenodo检索CLDF数据集的功能
项目描述
cldfzenodo
cldfzenodo
提供了对存储在 Zenodo 上的 CLDF 数据的编程访问。
注意: 2023年10月13日 Zenodo 的升级在系统的各个部分引入了许多变化。因此,版本 2.0 之前的 cldfzenodo
无法再使用。 cldfzenodo
希望向后兼容,即提供与 cldfzenodo
1.x 相同的 Python API - 但可能会发布弃用警告。
安装
pip install cldfzenodo
pycldf
数据集解析器
cldfzenodo
在安装时注册了一个 pycldf
数据集解析器,用于形如 https://doi.org/10.5281/zenodo.[0-9]+
和 https://zenodo.org/record/[0-9]+
的数据集定位器。因此,在安装后,您应该能够通过运行以下命令检索 pycldf.Dataset
实例:
>>> from pycldf.ext.discovery import get_dataset
>>> import pathlib
>>> pathlib.Path('wacl').mkdir()
>>> ds = get_dataset('https://doi.org/10.5281/zenodo.7322688', pathlib.Path('wacl'))
>>> ds.properties['dc:title']
'World Atlas of Classifier Languages'
命令行界面(CLI)
cldfzenodo
提供了一个可以从 cldfbench 运行的子命令。要使用此命令,您必须安装 cldfbench
,可以通过以下方式完成:
pip install cldfzenodo[cli]
然后您可以使用 DOI 进行标识,从 Zenodo 下载 CLDF 数据集。例如:
cldfbench zenodo.download 10.5281/zenodo.4683137 --directory wals-2020.1/
将 WALS Online 作为 CLDF 数据集下载到 wals-2020.1
$ tree wals-2020.1/
wals-2020.1/
├── areas.csv
├── chapters.csv
├── codes.csv
├── contributors.csv
├── countries.csv
├── examples.csv
├── language_names.csv
├── languages.csv
├── parameters.csv
├── sources.bib
├── StructureDataset-metadata.json
└── values.csv
0 directories, 12 files
API
通过 cldfzenodo.Record
对象访问存储在 Zenodo 上的(潜在的)CLDF 数据集的元数据和数据。可以通过多种方式获取此类对象
- 通过DOI
>>> from cldfzenodo import API >>> rec = API.get_record(doi='10.5281/zenodo.4762034') >>> rec.title 'glottolog/glottolog: Glottolog database 4.4 as CLDF'
- 通过概念DOI和版本标签
>>> from cldfzenodo import API >>> rec = API.get_record(conceptdoi='10.5281/zenodo.3260727', version='4.5') >>> rec.title 'glottolog/glottolog: Glottolog database 4.5 as CLDF'
- 从组成Zenodo社区的分存档中
>>> from cldfzenodo import API >>> for rec in API.iter_records(community='dictionaria'): ... print(rec.title) ... break ... dictionaria/iquito: Iquito dictionary
- 通过使用关键词的搜索结果
>>> from cldfzenodo import API >>> for rec in API.iter_records(keyword='cldf:Wordlist'): ... print(rec.title) ... break ... CLDF dataset accompanying Zariquiey et al.'s "Evolution of Body-Part Terminology in Pano" from 2022
cldfzenodo.Record
对象提供足够的元数据以允许识别和数据访问
>>> from cldfzenodo import API
>>> print(API.get_record(doi='10.5281/zenodo.4762034').bibtex)
@misc{zenodo-4762034,
author = {Hammarström, Harald and Forkel, Robert and Haspelmath, Martin and Bank, Sebastian},
title = {glottolog/glottolog: Glottolog database 4.4 as CLDF},
keywords = {cldf:StructureDataset, linguistics},
publisher = {Zenodo},
year = {2021},
doi = {10.5281/zenodo.4762034},
url = {https://doi.org/10.5281/zenodo.4762034},
copyright = {Creative Commons Attribution 4.0}
}
可以下载整个分存档(以及访问 - 可能多个 - CLDF数据集)
from pycldf import iter_datasets
API.get_record(doi='...').download('my_directory')
for cldf in iter_datasets('my_directory'):
pass
但通常,只有“纯”CLDF数据才是感兴趣的 - 而不是附加的元数据和整理背景,例如cldfbench整理的数据集。这可以通过以下方式完成
cldf = API.get_record(doi='...').download_dataset('my_directory')
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源分发
构建分发
cldfzenodo-2.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2f4195c677a03232c7e66e80b870045c50734b3992eb55c20ce1c71efd7922fd |
|
MD5 | aceed28501591fa93b16aefdbf6532a9 |
|
BLAKE2b-256 | 18ea3c47aa65c9cbcae74c79456bba06a27281a68ae39d4539099047072a60c3 |
cldfzenodo-2.1.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6ff65dbc5f9f3edd78856e661e98d8b558f3c9b81717e1b2875e847408031d76 |
|
MD5 | cb9a7fe65488e284ba9d897fa66788a9 |
|
BLAKE2b-256 | f0b0bbc6ce6b409597b20b20cfa4131569137a18ae569745161cfd809053dc82 |