我有一个SPARQL查询,它检索链接到人体解剖学本体中的类的所有节点:
queryloop=graph.query("""SELECT ?node ?othernodes ?othernodesLabel WHERE {
?node rdf:type owl:Class .
?node ?y ?othernodes .
?othernodes rdfs:label ?othernodesLabel
}
LIMIT 100""")
我现在需要遍历结果并将标签分组到python字典中,以便密钥包含类的标签(?node
),并且该值包含相邻节点的标签,因此对于本体中的每个类,都有一个字典键(对于每个键,存在与相邻类一样多的值)。我不知道变量绑定如何在rdflib中工作,所以我不知道如何在python中编写一个可以访问SPARQL查询的for循环。
答案 0 :(得分:0)
正如AKSW所指出的,最简单的方法是在SPARQL查询中包含您想要传输到字典的任何元素,然后在将它们附加到字典之前将它们作为属性进行访问,如下所示:
queryloop=graph.query("""SELECT ?node ?nodelabel ?othernodes ?othernodesLabel WHERE {
?node rdf:type owl:Class .
?node ?y ?othernodes .
?othernodes rdfs:label ?othernodesLabel
?node rdfs:label ?nodeLabel
}
LIMIT 100""")
dictlabels={}
for row in queryloop:
dictlabels.update(row.node, row.nodeLabel: row.othernodes,row.othernodesLabel)
这样,您将节点及其标签作为键,并将所有相邻节点及其标签作为值。