自动化元数据服务:管理来自不同源的元数据。

ames的Python项目详细描述


艾姆斯

doi

自动化元数据服务

管理来自不同源的元数据。包中的示例如下 具体到加州理工学院的知识库,但可以概括。这个包裹 目前正在开发中,将有更多的来源和匹配者 随时间增加。

基本安装

您的机器上需要有python 3.7 (miniconda是一个很棒的 安装选项)。

如果您只需要python函数来编写自己的代码 (与codemeta_to_datacite类似)打开终端并键入pip install ames

完全安装

您的机器上需要有python 3.7 (miniconda是一个很棒的 安装选项)。通过打开终端或 anaconda提示窗口并键入python-v,它将打印3.7版 或更高。

克隆艾姆斯

最好用git下载这个软件。要安装git,请键入 conda在终端或anaconda提示窗口中安装git。然后找到你的位置 希望ames文件夹位于文件资源管理器或查找器中的计算机上 (例如,这可能是桌面或文档文件夹)。键入cd 在anaconda提示符或终端中,将位置从文件浏览器拖动到 终端窗口。到达地点的路径 会出现,所以你的终端会显示如下命令 cd/users/tmorrell/desktop。点击回车。然后类型 git克隆https://github.com/caltechlibrary/ames.git。曾经的你 点击enter,您将看到一个epxml到datacite文件夹。键入cd ames

安装

现在您在ames文件夹中,输入python setup.py install。你可以 现在运行下面描述的所有不同操作。

更新

如果有新版本的软件,请转到ames 在anaconda prompt或terminal文件夹中键入git pull。你不应该再做 安装步骤,除非有重大更新。

组织

收割机

  • crossref_refs-从crossref事件数据中获取datacite元数据中的引用
  • CalTechData-从CalTechData中获取元数据
  • cd_github-从CaltechData中获取github repo和codemeta文件
  • matomo-从matomo获取web统计信息
  • CaltechFeeds-从feeds.library.caltech.edu中获取Caltech库元数据

火柴

  • CaltechData-匹配CaltechData中的内容
  • 更新数据引用-匹配数据引用中的内容

示例操作

运行脚本显示了使用ames执行特定更新的示例 操作。

代码元管理

在测试目录中,这是一个使用codemeta_to_datacite的示例 将codemeta文件转换为datacite standard metdata的函数

代码元更新

在caltechdata中收集github记录,搜索codemeta.json文件,然后 用新的元数据更新caltechdata。

代码元设置

需要使用令牌设置环境变量才能访问 caltechdata导出tindtok=

代码元用法

键入python run_codemeta.py

Caltechdata引文提醒

从crossref事件数据api获取引用数据,记录在 CalTechData,匹配记录,更新CalTechData中的元数据,并发送电子邮件至 用户,

引文提醒设置

需要使用令牌设置环境变量才能访问 caltechdata导出tindtok=并发送邮件枪导出mailtok=

引文提醒用法

键入python run_event_data.py。如果有,系统会提示您确认 找到新的引用。

媒体更新

更新datacite中指示与doi相关文件的媒体记录。

媒体设置

您需要使用数据引用的密码设置环境变量 使用export datacite=

的帐户

媒体使用量

键入python run_media_update.py

CaltechData元数据检查

这将对caltechdata中元数据的质量进行检查。目前这个 验证相关标识符部分中是否存在redundent链接。
它还可以使用datacite更新元数据。

元数据检查设置

需要使用令牌设置环境变量才能访问 caltechdata导出tindtok=

元数据检查页

键入python run_caltechdata_checks.py

CaltechData元数据更新

这将提高caltechdata中元数据的质量。这个选项是 分成应该经常运行的更新(当前每10分钟一次) 每天。频繁的更新包括向 说明和每日更新包括在 计算技术数据。

元数据更新设置

需要使用令牌设置环境变量才能访问 caltechdata导出tindtok=

元数据更新用法

键入python run_caltechdata_updates.pypython run_caltechdata_daily.py

CaltechData计数器使用报告

这将从matomo获取下载和查看信息,并将其格式化为 反报告。此功能仍在测试中。

使用报告设置

需要使用令牌设置环境变量才能访问 matomo导出mattok=

使用情况报告使用情况

键入python run_usage.py

CODA报告

运行有关加州理工学院图书馆存储库的报告。当前报告:

  • doi_report:记录(可选择按年份筛选)及其doi。

  • 论文报告:与加州理工学院的EPRINTS TSV出口相匹配

  • 论文元数据:匹配用于计算的eprints元数据tsv导出

  • creator_report:查找eprints creator id具有orcid的记录 但并不是所有的记录都包括在内。还列出了作者 两个兽人。

  • 文件报告:附加文件有潜在问题的记录

  • 状态报告:报告feeds中状态不正确的任何记录

  • 许可证报告:在CaltechData中报告许可证类型

报告用法

键入类似于python run_coda_report.py doi_report thesis report.tsv-year 1977-1978的内容

  • 第一个选项是报告类型
  • 接下来是知识库(论文或作者)
  • 接下来是输出文件名(包括.csv或.tsv扩展名,将显示在当前目录中)

报告选项

  • 有些报告包括一年选项,只返回特定年份(1977年)的记录或 范围(1977-1978)

  • 有些报告包含一个-group选项,只返回带有 特定组名。用引号将长名字括起来(例如"Keck Institute for Space Studies")

  • 有些报表包含一个-item选项,只返回带有 特定项目类型。支持的类型包括:

    • CaltechData项目类型(数据集、软件等)
    • CaltechAuthors项目类型(文章、专著等)
    • Caltechauthors专著子类型
      • 讨论论文
      • 文档
      • 手动
      • 其他
      • 项目报告
      • 报告
      • 技术报告
      • 白纸
      • 工作区每

如果要更改默认行为,还有一些附加的技术参数。

  • 添加-source eprints将从eprint而不是feed中提取报表数据。这是 非常慢。您可能需要添加-username和-password来提供登录 凭证

  • 添加-sample xxx允许您选择一些随机选择的记录。就这样 更合理的方法是直接从eprints中提取数据。

您可以组合多个选项来构建更复杂的查询,例如 请求组提供报告:

python run_coda_report.py doi_report authors keck_tech_reports.csv -group "Keck Institute for Space Studies" -item technical_report project_report discussion_paper

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java窗口。位置和窗口。公开问题   java如何从存储在ArrayList<Node>中的动态生成的文本字段中获取文本?   java如何立即关闭InputStream?   如何重新启动Java程序以激活环境变量   java搜索字符串是否相差一个字符   java CFB模式输出与CTR输出相同;我做错什么了吗?   java如何在javaFX中将实例化对象添加到Stage   java如何在jtextarea上打印来自不同类的文本消息   java以编程方式确定IOException的原因?   限制Java NIO通道(文件或socket)中的可用内容   javajaxb与JDOM:是否可以使用JAXB更新xml文件   批处理文件到java测试   JavaFX:stage的作用是什么。可设置大小(false)是否会导致额外的页边距?   java有没有办法告诉IntelliJ按需堆叠参数?   java Seam会话范围的组件在下一个请求中消失   java Google Web Toolkit对开发复杂的java脚本有用吗?   安卓 studio java ArrayList正在检索最高值   java为什么递归地用随机数填充LinkedList时会出现StackOverflowException?