我正在尝试学习 SPARQL,并且正在使用 python 的 rdflib 进行训练。我做了几次尝试,但任何 ASK 查询似乎总是给我一个 True 结果。例如,我尝试了以下方法:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import rdflib
mygraph=rdflib.Graph();
mygraph.parse('try.ttl',format='n3');
results=mygraph.query("""
ASK {?p1 a <http://false.com>}
""")
print bool(results)
结果为真,即使 'try.ttl' 中没有 false.com 类型的主题。谁能解释我为什么?预先感谢您的帮助!
更新:阅读 rdflib 手册,我发现 results 的类型是 list 并且(在我的情况下)应该包含一个带有来自 ask 查询的返回值的布尔值。我尝试了以下方法: for x in results: print x 我得到了“无”。我猜我没有以正确的方式使用查询方法。