跳转到主要内容

从Zenodo检索CLDF数据集的功能

项目描述

cldfzenodo

Build Status PyPI

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 (20.5 kB 查看哈希值)

上传时间

构建分发

cldfzenodo-2.1.1-py2.py3-none-any.whl (16.9 kB 查看哈希值)

上传时间 Python 2 Python 3