在此页面上,我想单击树的每个子节点,并打印出所有终端子节点(即所有可用套件/系统的列表)(例如,在下面的情况下,我将单击分析bioassay 组件 -> 检测试剂盒 -> 打印出所有作为试剂盒列表的子节点):
我写了这段代码:
from owlready2 import *
onto = get_ontology('http://www.bioassayontology.org/bao/bao_complete.owl').load()
print(list(onto.classes()))
onto.save(file = 'onto.test',format='rdfxml')
但它不会打印出名称,而是将其他信息打印到 json,例如:
<owl:Class rdf:about="http://purl.obolibrary.org/obo/GO_0009372">
<rdfs:subClassOf rdf:resource="http://www.bioassayontology.org/bao#BAO_0000264"/>
<obo:IAO_0000412 rdf:resource="http://purl.obolibrary.org/obo/go.owl"/>
<oboI:inSubset rdf:resource="http://purl.obolibrary.org/obo/go#goslim_pir"/>
<oboI:inSubset rdf:resource="http://purl.obolibrary.org/obo/go#gosubset_prok"/>
我也尝试过:
import pronto
from pronto import Ontology
ont = Ontology.from_obo_library('/bao.owl')
print(ont)
我理想的输出是这棵树中所有终端子节点的列表;或者如果不可能,只是一个如何将这些数据提取到 .json 的清晰示例,这样我就可以使用 XML 解析器,但特别要确保套件的实际名称在 json 文件中,而不仅仅是代码为我得到了上面,如果有人可以帮助我将不胜感激。