使用来自其他本体的个体而不导入它们
通常,导入声明您有兴趣使用的个人的本体可能是一个好主意。但是,在某些情况下,这可能不是最佳选择。如以下部分所述,Geonames 本体实际上不是合法的 OWL 2 DL 本体,因此如果您尝试将其导入到您的本体中,则在尝试进行任何推理时都会遇到问题。因此,您不应该将Geonames 本体导入到您的本体中,并且您应该在您自己的本体中重新声明您想要的个体。这在 Protégé 中很容易。根据GeoNames 本体页面,IRIhttp://sws.geonames.org/3020251/
指的是法国名为 Embrun 的小镇。您只需像使用 Protégé 一样以通常的方式创建个人,但选中“忽略实体创建首选项”按钮,以便您可以为个人输入完整的 IRI:


关于简单属性
某些 OWL 属性的使用方式受到限制。如果您收到关于
OWLReasonerRuntimeException: 非简单对象属性“ http://www.geonames.org/ontology#featureClass ”被用作简单对象
那么您正确地引用了该属性。在OWL 2 Web Ontology Language Structural Specification and Functional-Style Syntax (Second Edition)中有简单属性的描述(但我在这里只摘录):
粗略地说,一个简单的对象属性表达式没有直接或间接的子属性,这些子属性要么是传递的,要么是通过属性链定义的,其中间接子属性的概念由属性层次结构捕获。
关于如何使用简单和非简单属性有一些限制:
对简单角色的限制。以下两个列表中类型为 Ax 的每个类表达式和每个公理仅包含简单的对象属性。
- ObjectMinCardinality、ObjectMaxCardinality、ObjectExactCardinality 和 ObjectHasSelf。
- FunctionalObjectProperty、InverseFunctionalObjectProperty、IrreflexiveObjectProperty、AsymmetricObjectProperty 和 DisjointObjectProperty。
为了保证 OWL 2 DL 的基本推理问题的可判定性,这个限制是必要的。
Geonames 不是 OWL 2 DL 本体
现在,可能是您的本体存在一些有问题的公理,但看起来 GeoNames 本体本身存在一些问题。我下载了3.1 版并在 Protégé 中打开它。对象属性并不多,但有一个,要素类,它有一个子属性链公理,它用于类表达式。

因此,要素类是一个非简单属性,因为它具有作为子属性的属性链,并且要素类用于 ObjectExactCardinality 类表达式,即,
要素类 恰好是1件事
这意味着 GeoNames 本体不是合法的 OWL 2 DL 本体。