使用 Python RDFLib

问题描述

我正在使用 turtle 文件,其中包含用于历史研究的传记信息。这些文件由主要库提供,文件中的大部分信息并不明确。例如,虽然人们的职业有时会与指向图书馆 URI 的链接一起说明,但在大多数情况下我只有 URI。这就是为什么我需要在我的工作流程中的某个时刻检索它们背后的信息,我希望得到一些建议。

我想使用 Python 的 RDFLib 来解析 .ttl 文件。您推荐的工作流程是什么?我是否应该先读取我感兴趣的前缀,然后将结果存储在 .txt (?) 中,然后编写一个脚本来从网络检索实际信息,替换 URI?

我还看到有一些方法可以将 RDF 直接转换为 CSV,但是尽管 CSV 很适合使用,但如果简单地转换所有数据,我会得到很多不需要的“背景噪音”。

你会推荐什么?

解决方法

RDFlib 是关于处理 RDF 数据的。如果你有 RDF 数据,我的建议是尽可能多地做 RDF 原生的东西,然后只导出到 CSV,如果你想做打印表格结果或加载到 Pandas DataFrames 之类的事情。当然,做事情的方法总是不止一种,因此您可以在 CSV 中操作数据,但是 RDF 按照设计包含比 CSV 文件更多的信息,因此当您操作 RDF 数据时,您拥有更多需要掌握的东西。

文件中的大部分信息并不明确

更好的表述:大部分信息都用 URI 标识的对象表示,而不是作为字面值给出。

我想使用 Python 的 RDFLib 来解析 .ttl 文件。您推荐的工作流程是什么?我是否应该先读取我感兴趣的前缀,然后将结果存储在 .txt (?) 中,然后编写一个脚本来从网络检索实际信息,替换 URI?

不!您应该存储可以获得的 ttl 文件,然后您确实可以检索由 URI 引用的所有其他数据,但据推测,该数据也是 RDF 形式,因此您应该将其下载到您加载初始 ttl 文件的同一图中到然后您可以拥有带有链接和文字值的完整图表,您可以使用它来处理 SPARQL 查询。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...