acdh-oeaw/arche-assets

一组用于(主要)ARCHE数据预处理的静态资产

3.19 2024-09-19 08:53 UTC

README

PyPI version codecov Test flake8 Lint Latest Stable Version phpunit License

一组用于(主要)ARCHE数据预处理或ARCHE信息页面的静态资产

  • ACDH-CH中使用的数据规范化规则。
    (存储在 AcdhArcheAssets/uriNormRules.json 中)
  • 描述ARCHE接受的输入数据格式。
    (存储在 AcdhArcheAssets/formats.json 中)

此存储库还提供了用于访问这些资产的Python 3和PHP绑定。

安装与使用

Python

  • 使用pip3安装
    pip3 install acdh-arche-assets
  • 使用
    from AcdhArcheAssets.uri_norm_rules import get_rules, get_normalized_uri, get_norm_id
    print(f"{get_rules()}")
    
    wrong_id = "http://sws.geonames.org/1232324343/linz.html"
    
    good_id = get_normalized_uri(wrong_id)
    print(good_id)
    # "https://sws.geonames.org/1232324343/"
    
    # extract ID from URL
    norm_id = get_norm_id("http://sws.geonames.org/1232324343/linz.html")
    print(norm_id)
    # "1232324343"
    
    
    from AcdhArcheAssets.file_formats import get_formats, get_by_mtype, get_by_extension
    
    formats = get_formats()
    matching_mapping = get_by_mtype('image/png')
    matching_mapping = get_by_extension('png')

PHP

  • 使用composer安装
    composer require acdh-oeaw/arche-assets
  • 使用
    require_once 'vendor/autoload.php';
    
    print_r(acdhOeaw\UriNormRules::getRules());
    print_r(acdhOeaw\UriNormRules::getRules(['viaf', 'gnd']));
    
    print_r(acdhOeaw\ArcheFileFormats::getAll();
    print_r(acdhOeaw\ArcheFileFormats::getByMime('application/json');
    print_r(acdhOeaw\ArcheFileFormats::getByExtension('application/json');

资产描述

URI规范化规则

每个规则由五个属性组成

  • name:规则名称
  • match:匹配给定URI命名空间的正则表达式
  • replace:用于规范化给定命名空间中的URI的正则表达式替换表达式
  • resolve:将给定命名空间中的URI转换为URL的正则表达式替换表达式,该URL用于获取RDF数据
  • format:在解析使用resolve字段生成的URL时请求的RDF序列化格式

格式

一个精心策划且不断增长的可扩展文件列表。对于每个文件扩展名,都提供了映射到相应的ARCHE资源类型类别(存储在acdh:hasCategory中)和媒体类型(MIME类型)(存储在acdh:hasFormat中)。应仅将指示的媒体类型用作后备;最好是依靠基于文件签名的自动媒体类型检测。

还提供了其他信息。

  • fileExtension: 要映射的文件扩展名。
  • name: 已知的格式名称
  • archeCategory: 对应于ARCHE资源类型类别词汇表的URI
  • dataType: 用于将格式分组的大类别;主要用于可视化目的。
  • pronomID: 由PRONOM分配的ID
  • mimeType: 在IANA注册的官方媒体类型(以前称为MIME类型)
  • informalMimeType: 已知的其他MIME类型
  • magicNumber: 用于识别文件格式的常量数值或文本值,例如维基百科文件签名列表
  • ianaTemplate: IANA模板的链接
  • reference: 指向由IANA和其他人引用的格式规范的链接
  • longTerm: 指示格式是否适合长期保存。
    可能的值及其含义
    • yes - 长期格式
    • no - 不适合,应使用其他格式
    • restricted - 在某些情况下可用于长期保存(见注释)
    • unsure - 状态尚待评估
  • archeDocs: 链接到更多关于该格式的信息位置。
  • 注释:未在其他地方说明的其他重要信息。

开发(Python)

安装所需的开发包 pip install requirements_dev.txt

代码风格检查、测试和测试覆盖率

  • 运行测试:tox
  • 检查覆盖率并生成报告:coverage run setup.py testcoverage html
  • 检查代码风格:flake8