Rdf 如何在jena中创建不相交的类?

Rdf 如何在jena中创建不相交的类?,rdf,jena,owl,ontology,Rdf,Jena,Owl,Ontology,如何在Jena中创建不相交的类?例如,经典的pizza.owl示例中的奶酪面层与鱼面层、蔬菜面层、肉面层,以及其他一些不相交。在Protégé中,如下所示: 我试过使用: 但是下一行的每一行都会覆盖前面和最后一行,这和我写的一样 CheeseTopping.setDisjointWith(NutTopping); 我如何断言一个类与多个类中的每一个都是不相交的?正是在做它所说的事情(强调添加): 断言该类与给定类不相交。任何现有的 不相交的语句将被删除 与使用setDisjointWith“

如何在Jena中创建不相交的类?例如,经典的pizza.owl示例中的奶酪面层鱼面层蔬菜面层肉面层,以及其他一些不相交。在Protégé中,如下所示:

我试过使用:

但是下一行的每一行都会覆盖前面和最后一行,这和我写的一样

CheeseTopping.setDisjointWith(NutTopping);
我如何断言一个类与多个类中的每一个都是不相交的?

正是在做它所说的事情(强调添加):

断言该类与给定类不相交。任何现有的 不相交的语句将被删除

与使用setDisjointWith“设置”不相交的类不同,您希望使用“添加”不相交的类(它实际上列在同一JavaDoc页面上):

添加与该类不相交的类

下面是示例代码和输出,展示了如何使用它:

import com.hp.hpl.jena.ontology.OntClass;
导入com.hp.hpl.jena.ontology.OntModel;
导入com.hp.hpl.jena.ontology.OntModelSpec;
导入com.hp.hpl.jena.rdf.model.ModelFactory;
公共类DisjointClassesExample{
公共静态void main(字符串[]args){
//我们将在这里创建一个模型并定义一个名称空间
//在实际应用中,您可能已经有了这些,或者
//已由正在加载的本体为您定义。
字符串NS=”http://stackoverflow.com/q/21990312/1281433/";
OntModel model=ModelFactory.createOntologyModel(OntModelSpec.OWL\u DL\u MEM);
型号:setNsPrefix(“,NS);
//让我们创建一些类,然后简单地使用OntClass#addDisjointWith
//方法声明类是不相交的。
OntClass a=model.createClass(NS+“a”);
OntClass b=model.createClass(NS+“b”);
OntClass c=model.createClass(NS+“c”);
a、 addDisjointWith(b);
a、 addDisjointWith(c);
//我们在本体中看到了预期的结果。
model.write(System.out,“RDF/XML-ABBREV”);
模型写入(系统输出,“海龟”);
}
}

@前缀:。
@前缀rdfs:。
@前缀owl:。
@前缀xsd:。
@前缀rdf:。
:猫头鹰:类;
猫头鹰:不相交于:C,:B。
:C猫头鹰:上课。
:B猫头鹰:上课。

哦。。。我真丢脸:/
CheeseTopping.setDisjointWith(NutTopping);