我的问题可能很简单:如何在SPARQL查询中使用python变量?我正在尝试进行查询以识别用户键入的内容。在
例如,如果用户键入“house”,软件将使用该条目运行查询。现在,我用以下代码运行了一个测试(我使用的是Tkinter):
self.queryonto = Entry(self.frame1)
self.queryonto.pack(side=LEFT)
self.btnquery = Button(self.frame1, text='Query ontology')
self.btnquery['command'] = self.makequery
self.btnquery.pack(side=LEFT)
def makequery(self):
self.ontology = World()
self.onto = self.ontology.get_ontology('file://file.owl').load()
self.baseiri = self.onto.base_iri
self.graph = self.ontology.as_rdflib_graph()
self.request = """PREFIX ont: <{}>
SELECT ?class
WHERE {
ont:{} a ?class .
}""".format(self.baseiri, self.queryonto)
self.results = list(self.graph.query(self.request))
print(self.results)
我几乎可以肯定我使用.format
是错误的。所以,我问:如何使用我在这个查询中创建的变量?如果我可以用字符串操作来实现,那么在这种情况下,正确的方法是什么呢?在
我使用以下Python函数:
所以实际上是一点字符串操作,使用
" distinct?" + data + ";"
,l = " LIMIT %s" % limit
替换,将每个字符串附加到一个列表,然后连接列表以创建查询:complete_query = '\n'.join(query)
更新:
要更清楚地回答操作请求:
^{pr2}$还要确保
self.queryonto
有一个string
表示。在相关问题 更多 >
编程相关推荐