我正在使用 Redland Python 绑定向 Virtuoso 添加三元组,RDF.Storage(storage_name='virtuoso')
并试图了解上下文是如何实现的。我得到了一些令人惊讶的结果。
如果我添加三元组:
model.add_statements(context=something)
我可以通过以下方式将它们全部取回:
model.as_stream(context=something)
正如预期的那样。但是,如果我创建一个具有相同存储的新模型并尝试以下操作:
for stmt in model:
print stmt
我没有得到任何结果,好像模型是空的。另外,当我尝试以下操作时:
model.remove_statements_with_context(context=something)
for stmt in model.as_stream(context=something):
print stmt
我仍然得到了所有的三元组;他们没有像我预期的那样被删除。
最后,当我尝试应该匹配一些存储在上下文中的三元组的简单 SPARQL 查询时,我没有得到任何结果。
谁能帮助我了解 Redland contexts 和 Virtuoso 的幕后情况?