首先,我创建了两个类,如下所示。
OntClass Class1 = ontModel.getOntClass(prefix+"Class1");
OntClass Class2 = ontModel.createClass( prefix+"Class2" );
然后,我创建一个属性并设置其域和范围如下。
DatatypeProperty property = ontModel.createDatatypeProperty(prefix+"property1");
property.addDomain(Class2);
property.addRange(Class2);
然后,我创建了class1的个人。
Individual ind1 = ontModel.createIndividual( prefix+ "ind1",class1);
最后,我将该属性添加到个人。
ind1.addProperty(property, "SSSSSS");
这是我的问题。现在我已经定义了属性的域和范围,另一个类的个体如何成功地拥有此属性?
答案 0 :(得分:1)
OWL中的类并非都是不相交的,因此一个人可以属于多个类。
属性的域和范围不会阻止您使用不属于域或范围的个人的属性;做出这样的断言只会使推理者推断个人也属于指定为域的类。
唯一的情况是这是"不成功"当推断属于的域类和任何其他类也被声明为不相交,或者可以推断为不相交时 - 在这种情况下,属于两者的个体会导致不一致。