带有推断属性的查询
我在使用rdflib连接GraphDB。
在指定推断属性(例如反向属性)时,我得到空响应。
在下方的情形中,“schema:children” 被定义为“schema:parent”的反向关系,我在图中可以看到正确的推断。
>>> person = rdflib.term.URIRef("urn:uuid:43e5f3c2-784d-433c-be3d-f711bfb7c86b")
>>> q = '''
... select ?child where {{
... <{person}> schema:children ?child .
... }} '''
>>> qres = graphdb.query(q.format(person=person))
>>> len(qres)
0
GraphDB控制台中的同一查询给出了正确的答案。

为什么我在rdflib连接中没有得到同样的响应?
我使用的是OWL2-RL(Optimized)规则集。
解决方案
查询本身没有问题。
我刚刚发现GraphDB对图对象中使用的标识符处理得并不好。rdflib在查询参数中插入default-graph-uri,这在某种程度上影响了响应。
原始对象是这样的:
default_graph = URIRef('http://ontology.starchus.tech/clinic/')
graphdb = Graph(store, identifier=default_graph)
我只需要移除该标识符即可使其工作。
graphdb = Graph(store)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。