Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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
Java 从OWL本体中获取等价类 更新:_Java_Python_Rdf_Owl_Ontology - Fatal编程技术网

Java 从OWL本体中获取等价类 更新:

Java 从OWL本体中获取等价类 更新:,java,python,rdf,owl,ontology,Java,Python,Rdf,Owl,Ontology,我已经解决了这个问题。在Java中使用OWLAPI,我设法检索本体中的所有公理,其中包括我正在寻找的所有等价类。据我所知,没有直接的方法可以获得未修改的等价类。这是我使用的代码: OWLOntologyManager man = OWLManager.createOWLOntologyManager(); o = man.loadOntologyFromOntologyDocument(hp); Stream<OWLLogicalAxiom> logicalAxioms = o.lo

我已经解决了这个问题。在Java中使用OWLAPI,我设法检索本体中的所有公理,其中包括我正在寻找的所有等价类。据我所知,没有直接的方法可以获得未修改的等价类。这是我使用的代码:

OWLOntologyManager man = OWLManager.createOWLOntologyManager();
o = man.loadOntologyFromOntologyDocument(hp);
Stream<OWLLogicalAxiom> logicalAxioms = o.logicalAxioms();
logicalAxioms.forEach(log::println);
OWLOntologyManager man=OWLManager.createOWLOntologyManager();
o=手册文档(hp)中的手册加载日志;
Stream logicalAxioms=o.logicalAxioms();
logicalAxioms.forEach(log::println);
问题: 我有一个本体(人类表型本体,或者只是“hp”),我需要从“owl:equivalentClass”标记中的本体中引用的其他本体中提取类。例如: 对于hp类“hp_0001561”,我希望提取:

  • BFO_0000051
  • 帕托_0000595
  • RO_uu0000052
  • UBERON_0000173
  • RO_0002573
  • 帕托_0000460
  • hp逻辑定义子Q#在
  • GO_0007565
下面是课程:

<!-- http://purl.obolibrary.org/obo/HP_0001561 -->

<owl:Class rdf:about="http://purl.obolibrary.org/obo/HP_0001561">
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Polyhydramnios</rdfs:label>
    <owl:equivalentClass>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000051"/>
            <owl:someValuesFrom>
                <owl:Class>
                    <owl:intersectionOf rdf:parseType="Collection">
                        <rdf:Description rdf:about="http://purl.obolibrary.org/obo/PATO_0000595"/>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0000052"/>
                            <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/UBERON_0000173"/>
                        </owl:Restriction>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0002573"/>
                            <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/PATO_0000460"/>
                        </owl:Restriction>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/hp/hp-logical-definitions-subq#during"/>
                            <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/GO_0007565"/>
                        </owl:Restriction>
                    </owl:intersectionOf>
                </owl:Class>
            </owl:someValuesFrom>
        </owl:Restriction>
    </owl:equivalentClass>

羊水过多

我已经尝试了几个库来处理owl本体,但我找不到一种方法。我在Python上试过,目前正在Java上使用OWL API。

可能不需要使用
OWL:equivalentClass
关系<代码>owl:sameAs用于链接不同本体之间的概念。是的,非常正确!但我不是在这里寻找连接概念,我真的在寻找几个本体之间的交叉点,如果这有意义的话。我想提取owl:equivalentClass标记中包含的信息。鼓励您提出问题,尝试改进您的问题。其中大约一半不是类。顺便说一句,请访问中的“类映射”选项卡。