【发布时间】:2013-10-13 01:34:16
【问题描述】:
我需要使用 OWL-API 在本体中创建一个类而不添加任何实例。
我检查了示例和文档,但所有的类都是与个人/实例一起创建的。有没有办法在没有任何实例的情况下创建类(以及稍后)
【问题讨论】:
我需要使用 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。这就是我解决这个问题的方法,当我想添加实例时,我只需向本体管理器添加一个新的公理。
【讨论】:
factory.getOWLClass(IRI.create(input)) 即shown in the examples 有任何优势?