我在 Protege 5 中有一个OWL 本体。当尝试询问一些 DL 查询时
DropOff exactly 1
这应该返回通过 objectProperty DropOff 精确到一基数相关的所有类。
使用Pellet推理器,异常会引发“此推理器不支持命名类”。使用Hermit推理器时,一切正常。
我知道命名类是具有引用 URL 的类。以下是我的观点:
- 使用未命名类的语义是什么?
- 为什么 Pellet 不支持命名类?
- 我的查询可以用 Pellet 可以接受的方式表达吗?
谢谢。
Pellet 中的错误可能被误报。我只设法"This reasoner only supports named classes"在 Pellet 源代码(在IncrementalClassifier.java文件中)中找到了这句话。如果使用增量推理模式并且运行诸如“查找该类的所有等效类”之类的查询,则会引发此异常 - 例如,DropOff exactly 1是 Pellet incremental 不支持的匿名类表达式。
我不知道是否可以不使用 Protege 的 Pellet 中的增量功能。如果此行为不可配置,则唯一的解决方法是将 Pellet 插件修改为不能增量工作。不过,这会影响其他查询的性能。