Изменить файл протеже из Python - PullRequest
0 голосов
/ 19 декабря 2018

Я новичок в протеже и питоне.Я создал файл совы в протеже.И теперь я пытаюсь изменить этот файл с помощью 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')

1 Ответ

0 голосов
/ 24 декабря 2018

Ваша реализация содержит только файл read , но не write - поэтому ваш исходный файл не может быть изменен.Чтобы изменить исходный файл, вы должны явно записать свой график обратно в этот файл.

При условии, что вы используете библиотеку, такую ​​как RDFLib / rdflib , следующее изменение должно бытьсделано для того, чтобы «обновить» ваш график:

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 в целом (например, чтение / запись обычного текста, CSVs, записи базы данных, ...).

...