我正在使用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背景和Virtuoso幕后发生的事情吗?
答案 0 :(得分:1)
您可以使用Virtuoso trace_on() function将传递给Virtuoso的查询等记录在virtuoso.log
文件中以供审核。
这可以帮助您了解Redland图层传递的内容以及可能发生的任何错误等。
我们没有根据我的知识对Redland Python绑定进行任何测试,但我们在Virtuoso open source tree used for testing our Redland Storage provider确实有一个基于C
的测试程序。
我希望这会有所帮助......