Skip to main content
 首页 » 编程设计

python之RDFLib 空白节点打印

2025年05月04日24tuyile006

我有一个 RDF 数据集,其中三元组以 N-Triples 格式存储,如下所示:

<http://ebola.ndssl.bi.vt.edu/country/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ebola.ndssl.bi.vt.edu/vocab/country> . 
_:AmapX3aXcountryX5fXcountryX5fXnameX5fXclassMapX40XX40X1 <http://ebola.ndssl.bi.vt.edu/vocab/hasValue> "Guinea" . 

我想对空白节点做一些处理。我正在编写一个程序来用 Python 读取这个文件。我正在使用 Python RDFLib 库。阅读文件后,我打印其内容。但是,问题是空白节点名称不同。例如:

_:AmapX3aXcountryX5fXcountryX5fXnameX5fXclassMapX40XX40X1 
 is showing like following 
N75424221e7df43708c3e2a135e3e888b 

我需要原始 RDF 文件空白节点名称如下:

_:AmapX3aXcountryX5fXcountryX5fXnameX5fXclassMapX40XX40X1 

如何打印原始 RDF 文件的空白节点名称?

请您参考如下方法:

你(可能)不能。空白节点 ID 对于它们所在的特定文件是本地的,不能保证在不同的序列化之间保留它们。 RDFLib 只是用它自己的新内部 id 替换了 id。

有些工具有一个解析器设置,可以选择性地保留节点 ID。我不知道 RDFLib 是否支持这一点,但即使它支持:除非你有一个非常特定的用例,否则你不应该依赖于保留空白节点 ID。它们被称为 blank 是有原因的:它们的 id 在所有意图和目的上都是“未知的”。