我目前浏览了Redland的Python绑定,还没有找到一种通过它在存储引擎上进行事务处理的干净方法。我在底层Redland模块中发现了一些模型事务:
import RDF, Redland
storage = RDF.Storage(...)
model = RDF.Model(storage)
Redland.librdf_model_transaction_start(model._model)
try:
# Do something
Redland.librdf_model_transaction_commit(model._model)
model.sync()
except:
Redland.librdf_model_transaction_rollback(model._model)
这些是否也转化为存储层?
感谢:-)
是的,这应该有效。现在python包装器中没有模型类的便利函数,但它们与您所写的类似:
class Model(object):
...
def transaction_start(self):
return Redland.librdf_model_transaction_start(self._model)