python 如何在rdflib中设置json元素的ID

vatpfxk5  于 2023-05-16  发布在  Python
关注(0)|答案(1)|浏览(87)

上下文

我正在rdflib中加载一个rdf文件,并试图将其导出到json-ld中。
原始的rdf看起来像:

<cim:Substation rdf:ID="_1234">
    <cim:IdentifiedObject.name>A substation</cim:IdentifiedObject.name>
</cim:Substation>

导出的json-lib看起来像:

{
  "@id": "file:///path/to/original/xml#_418866779",
  "@type": "cim:Substation",
  "cim:IdentifiedObject.name": "A substation"
},

我似乎无法覆盖json中的file:///path/to/original/xml组件。

编码

这就是我正在做的:

from rdflib import Graph

g = Graph(
    # Giving an identifier or base does not seem to change anything
)
g.parse('path to rdf')
js = g.serialize(
    format="json-ld",
    encoding="utf-8",
    destination='path to json',
    sort_keys=True,  # repeatable output is Good.
    context={ some relevant entries (rdf, cim)  },
    auto_compact=True,
    # giving base does not seem to change anything
)

问题如何设置/覆盖导出的json-ld中ID的第一个组件?

8gsdolmq

8gsdolmq1#

该解决方案是在parse方法中,参数publicID在源代码中描述。
用作文档基础的逻辑URI。如果指定None,则使用文档位置(至少在存在文档位置的情况下)。
所以我在问题中的例子变成了

g.parse('path to rdf', publicID="#")

其余的保持原样

相关问题