Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从层次化OWL文件中提取终端子名称(或将OWL转换为JSON以简化任务)_Python_Owl_Owlready - Fatal编程技术网

使用python从层次化OWL文件中提取终端子名称(或将OWL转换为JSON以简化任务)

使用python从层次化OWL文件中提取终端子名称(或将OWL转换为JSON以简化任务),python,owl,owlready,Python,Owl,Owlready,在页面中,我希望单击树的每个子节点,并打印出所有终端子节点(即所有可用试剂盒/系统的列表)(例如,在下面的情况下,我将单击分析生物测定成分->分析试剂盒->打印出所有子节点,这些子节点是试剂盒列表): 我写了这段代码: from owlready2 import * onto = get_ontology('http://www.bioassayontology.org/bao/bao_complete.owl').load() print(list(onto.classes())) onto

在页面中,我希望单击树的每个子节点,并打印出所有终端子节点(即所有可用试剂盒/系统的列表)(例如,在下面的情况下,我将单击分析生物测定成分->分析试剂盒->打印出所有子节点,这些子节点是试剂盒列表):

我写了这段代码:

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"/>

我的理想输出是该树中所有终端子节点的列表;或者,如果不可能,请给出一个清晰的示例,说明如何将这些数据提取到.json,这样我就可以使用XML解析器,但特别要确保工具包的实际名称在json文件中,而不仅仅是上面提到的代码,如果有人能帮我的话,我将不胜感激。

保存到.save
只需将整个本体保存回磁盘,不确定您在这里期望的是什么。要打印层次结构,首先必须计算resp。检索类层次结构。仅仅获取所有类并不能提供层次结构信息,它只是本体库中所有类的一组,用于回复,您能指出我应该在文档()中查看的位置,或者提供一个示例吗?这是我第一次使用它。我通常理解层次结构,这就是为什么我想把它转换成json格式,我只是在为你在这里所说的内容而挣扎;我不清楚“compute resp.”是什么意思。“resp.”->“resp.”分别是“在线上没有例子,想法是从顶级类开始,然后递归地得到它们的直接子类,然后对于每个子类,它们的子类我想你明白了。获取类的子类记录如下:
import pronto
from pronto import Ontology
ont = Ontology.from_obo_library('/bao.owl')
print(ont)