На этой странице я хочу щелкнуть по каждому подузлу дерева и распечатать все дочерние узлы терминала (т. Е. Список всех доступных наборов / систем) (например, так в приведенном ниже случае я бы щелкнул компонент биоанализа анализа -> набор анализа -> распечатать все дочерние узлы, которые представляют собой список наборов):
Я написал этот код:
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"/>
Я также пытался pronto:
import pronto
from pronto import Ontology
ont = Ontology.from_obo_library('/bao.owl')
print(ont)
Мой идеальный вывод - это список всех конечных дочерних узлов в этом дереве; или, если это невозможно, просто наглядный пример того, как извлечь эти данные в. json, чтобы я мог затем использовать синтаксический анализатор XML, но, в частности, убедившись, что фактические имена наборов находятся в файле json и не только коды, которые я получил выше, если бы кто-то мог помочь, я был бы признателен.