修改来自 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、数据库记录、. ..).
我是门徒和 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、数据库记录、. ..).