当前位置: 首页 > 知识库问答 >
问题:

获取推断的对象属性断言Hermit推理程序

宋明亮
2023-03-14

假设我有一些本体论创建的蛋白质,有一个类的实例与一些对象属性,和对象属性的列表,已显示在以下图片:

对象属性的层次结构如下所示:

现在,当我打开Reasoner(Hermit)时,我得到了同一个人的以下断言对象属性:

当我点击推断对象属性“dependsUp”客户的解释时,我得到:

我的问题是,我如何使用Java生成它?我已经可以通过以下方法获得某些个人的推断对象属性(abreviety在这里不完整,但它可以按照我测试的方式工作):

for (OWLNamedIndividual namedIndividual : this.ontology.getIndividualsInSignature()) {
            if (subjectName.equals(namedIndividual.getIRI().getFragment())) {
                OWLObjectProperty objectProperty = fac.getOWLObjectProperty(IRI.create(propertyIRI));
                NodeSet<OWLNamedIndividual> namedIndividualSet = reasoner.getObjectPropertyValues(namedIndividual ,objectProperty);

                for (Node<OWLNamedIndividual> namedIndividualsInObjectPropertySet : namedIndividualSet) {
                    for (OWLNamedIndividual namedIndividualForObjectPropertySet : namedIndividualsInObjectPropertySet) {
                        for (OWLClassExpression owlClass : namedIndividualForObjectPropertySet.getTypes(this.ontology)){
                            if (owlClass.toString().split("#")[1].replace(">", "").equals(archiClass)) {
                                result.add(OWLOntologyUtils.getHumanInstanceName(this.ontology, namedIndividualForObjectPropertySet.getIRI().getFragment()));
// Result contains all the inferred object properties shown in the above pictures, so this code works. How can I access the explanation for one of the inferred object properties by the reasoner here?
                            }
                        }
                    }
                }

            }
        }

共有1个答案

栾钟展
2023-03-14

您可以使用InferredObjectProperty tyAxiomGenerator

InferredObjectPropertyAxiomGenerator generator = new InferredObjectPropertyAxiomGenerator();
generator.createAxioms(owldatafactory, reasoner);
 类似资料:
  • 假设OWL本体论包含以下SWRL规则: 和以下对象属性断言: 当我运行的隐士推理器中的蛋白质,我得到以下推断对象属性断言: 然而,当我用owlready2加载同一个本体并运行它的hermitreasoner时,我没有得到任何推断的对象属性断言。例如: 不返回任何属性。 我确实以RDFXML格式保存了本体,并且可以使用owlready2检索SWRL规则。 owlready2推理器不支持这种推论吗?

  • 我试图从reasoner(Hermit1.3.8.4)和OWLApi(3.4.10)中检索属性断言。在这张图中,我想找回“我是爷爷桑德罗,我是爷爷塞尔吉奥”。 图片-对象属性断言 我尝试在https://stackoverflow.com/a/37497541/3760251中使用Ignazio答案 与Horridge的例子,但OWL API改变了签名,我不知道如何使用它。https://www.

  • 我创建了这个本体,它包含两个类:血糖和服务。血糖有两个数据属性:范围为xsd:int的hasValu和范围为xsd:string的hasStatut。对象属性triggerService将血糖作为域,将服务作为范围。 我想用以下规则推断数据属性断言: Blood_Sugar(?x)hasValue(?X,?y)/swlb:比(?Y,126)的大小:小于(?y,500)→hasStatut(?X,高

  • 我使用Protege创建了一个本体,并添加了SWRL规则,使用Hermit Reasoner,一切都很好,但它不显示推断的DataProperties。 我尝试使用Pellet,它能够推断数据属性,但是,我创建的所有SWRL规则都不再起作用了。 这是隐士的窃听器吗?有解决办法吗?最诚挚的问候。

  • 我在本体论中工作,我有以下swhl规则: 我想知道负对象属性断言何时发生(当verifiedAssociation不为true时)。 我在Protégé上找到了tab属性断言,但我希望(推理者)能够推断出这一点。我不知道如何创建一个规则来实现这一点。 有人能帮帮我吗?

  • 先上代码: 问题: 该如何定义函数testFn的data参数,才能让data的解构与DetailDataType的定义相符,并且编辑器有提示,现在data的解构全是any,如下: 求ts大神解答,谢谢!!!