Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheJena自动将对象属性合并在一起_Java_Jena_Ontology_Protege - Fatal编程技术网

Java ApacheJena自动将对象属性合并在一起

Java ApacheJena自动将对象属性合并在一起,java,jena,ontology,protege,Java,Jena,Ontology,Protege,我对使用ApacheJena非常陌生。我在这里面临一个问题 我使用Protege设计了一个RDF文件。基本上,我有三个对象属性,它们是关联、聚合和组合。 聚合和合成都是关联的子属性。正如您在这里从Protege所看到的,这三个对象很好地一起生成 但是,当我将Jena与Java一起使用时(下面是我的代码),生成的输出与预期结果不同 Model m=ModelFactory.createDefaultModel(); 字符串NS=“” 正如您在生成的输出中所看到的: 1) 关联对象属性嵌套在聚合和组

我对使用ApacheJena非常陌生。我在这里面临一个问题

我使用Protege设计了一个RDF文件。基本上,我有三个对象属性,它们是关联、聚合和组合。 聚合和合成都是关联的子属性。正如您在这里从Protege所看到的,这三个对象很好地一起生成

但是,当我将Jena与Java一起使用时(下面是我的代码),生成的输出与预期结果不同

Model m=ModelFactory.createDefaultModel(); 字符串NS=“”

正如您在生成的输出中所看到的:

1) 关联对象属性嵌套在聚合和组合下面

2) 聚合和合成子属性的生成方式不同

非常感谢您的帮助


您显示的两个RDF文件在语义上是等价的。你们看到的是公理排序的不同。OWL没有定义axiom序列化的顺序,因此每个库在这方面都有自己的选择

Protege依赖OWL API编写本体,OWL API首先按类型,然后按内容对公理进行排序——在本例中,首先是公理中子属性的IRI

除非您使用的是一些不支持RDF的工具,或者您将本体存储在版本控制系统中(其中排序的差异可能会导致较大的、不必要的差异),否则您可以忽略这些差异。您正在使用的代码正在按预期工作

  OntModel ontoModel = >ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);     

  ObjectProperty ASSOCIATION = ontoModel.createObjectProperty(NS + >"ASSOCIATION");
  ObjectProperty AGGREGATION = ontoModel.createObjectProperty(NS + >"AGGREGATION");
  AGGREGATION.addProperty(RDFS.subPropertyOf, ASSOCIATION);
  ObjectProperty COMPOSITION = ontoModel.createObjectProperty(NS + >"COMPOSITION");
  COMPOSITION.addProperty(RDFS.subPropertyOf, ASSOCIATION);