我使用Protege 5-beta-17创建了一个本体。在我的本体论中,我有一些课程:
Mountain, Lake, Location etc...
我还有一个对象属性:
hasLocation.
对于此对象属性,我已将范围设置为“Location”类和域 “山”和“湖”班。
当我尝试使用CMap工具查看本体时,它只显示
"Mountain" "hasLocation" "Location".
“Lake”类没有“hasLocation”对象属性。
我做错了什么吗?我是否在Protege中做了其他事情?
答案 0 :(得分:8)
我发现了问题所在。
在对象属性中添加域/范围时,您必须单击以下按钮并选择其中一个类:
如果要添加其他域/范围,只需再次单击其中一个按钮,然后添加另一个类。如果你这样做你告诉Protege你的对象属性的域/范围是两个类的INTERSECTION。这意味着将占据域/范围位置的个体是两个类别的实例而不是它们中的一个。 这是我的错。我是以错误的方式将类添加到域中。
所以......为对象属性添加多个不同域的正确方法如下:
只需再次单击域/范围按钮,然后选择“类表达式编辑器”选项卡:
在“类表达式编辑器”中输入您的类:“ClassA或ClassB或ClassC或......”。
就我而言,它是“山或湖”。
之后点击“确定”即可。