修改来自 python 的保护文件

Modify a protege file from python

我是门徒和 python 的初学者。我在 protege 中创建了一个 owl 文件。现在我正在尝试使用 python 修改该文件,添加一些新的三元组。但它没有显示原始文件有任何变化。 这是我到目前为止尝试过的代码: 在此先感谢您的帮助。

g = Graph()
n = Namespace('http://www.../')
result = g.parse('file_name', format ="application/rdf+xml" )

with open ('file_name.owl', 'r+') as a, open('another_filename.txt') as b: 
    if(some_condition) in g:
        for item in b:
            g.add([the triple])
        print('name added')

您的实施仅包含一个文件 read 但不包含 write - 因此无法更改您的原始文件。为了更改原始文件,您必须明确地将图表写回该文件。

假设您正在使用 RDFLib/rdflib 等库,必须进行以下更改才能 "update" 您的图表:

from rdflib import Graph, ...

# read graph
g = Graph()
result = g.parse('./foo.owl', format ="application/rdf+xml" )

# add some triples based on your logic
# ...

# persist graph to disk
g.serialize("./foo.owl", format="xml")

顺便说一句 - 这不仅适用于语义网图,而且适用于 Python 中的 I/O 通常(例如 read/write 普通文本、CSV、数据库记录、. ..).