我需要使用 OWL-API 在本体中创建一个类而不添加任何实例。
我检查了示例和文档,但所有的类都是与个人/实例一起创建的。有没有办法在没有任何实例的情况下创建类(以及稍后)
永远不需要添加实例来声明和使用一个类。
例如:
OWLClass c = factory.getOWLClass(IRI.create(cInput));
OWLAxiom declareC = factory.getOWLDeclarationAxiom(c);
// adding declareC to the ontology is necessary to have any output
manager.addAxiom(ontology, declareC);
为了在保存本体时得到任何输出的实体,必须在本体中包含的一些公理中使用它。在这个例子中,这个公理就是类声明;它可以是子类公理或断言(在这种情况下,将创建一个实例)。
如果我想创建一个建模元素,例如没有来自输入字符串的实例的类,我会执行以下操作:
OWLEntity entity = factory.getOWLEntity(EntityType.CLASS, IRI.create(input));
EntityType.CLASS
可以更改为其他元素,例如EntityType.ObjectProperty
. 这是我解决这个问题的方法,当我想添加实例时,我只需向本体管理器添加一个新公理。