1

我有一个在 protege 4 中创建的本体。我需要使用 OWL API 4 向我的本体的一个猫头鹰个体添加一个数据属性。据我所知,我是 java / owl api 的新手。我使用了以下代码:-

OWLNamedIndividual myowlIndl = df.getOWLNamedIndividual(":test", pm);
OWLDataProperty indlName = df.getOWLDataProperty(":strVal", pm);
OWLDataPropertyAssertionAxiom dataPropertyAssertion = df.getOWLDataPropertyAssertionAxiom(indlName, myowlIndl,"hello world");
AddAxiom addAxiom1 = new AddAxiom(myowlOntology, dataPropertyAssertion);
myontologyManager.applyChange(addAxiom1);

但是这段代码不会“更新”已经存在的猫头鹰个体“测试”,而是创建一个新的。

如何纠正这种情况?

4

1 回答 1

3

使用完整的 IRI 而不是缩短的版本,从这段代码中很难判断命名空间是否正确(“:test”是模棱两可的,因为我们看不到前缀管理器如何解析它,也看不到本体)。此外,请确保在调用 applyChange() 后保存本体。

于 2014-12-27T05:34:12.943 回答