Java OWL API,在<;!----&燃气轮机;不向其他部分添加URI

Java OWL API,在<;!----&燃气轮机;不向其他部分添加URI,java,owl,owl-api,Java,Owl,Owl Api,试图在之间显示URI+名称时,我遇到了OWL API问题没有它也会将URI+名称添加到其他部分 例如,我使用pizza本体作为我的源代码,本体文件显示了以下个人代码集 使用下面的代码,我得到了几乎相同的结果,但URI仍然缺少,我只需将iri+名称添加到getOWLClass方法中,但最终将在还有名字是个人的,即rdf:about=而不仅仅是#America OWLClass=dataFactory.getOWLClass(IRI.create(“#Country”); OWLNamedInd

试图在<!-->之间显示URI+名称时,我遇到了OWL API问题没有它也会将URI+名称添加到其他部分

例如,我使用pizza本体作为我的源代码,本体文件显示了以下个人代码集


使用下面的代码,我得到了几乎相同的结果,但URI仍然缺少,我只需将iri+名称添加到getOWLClass方法中,但最终将在<!-->还有名字是个人的,即rdf:about=而不仅仅是#America

OWLClass=dataFactory.getOWLClass(IRI.create(“#Country”);
OWLNamedIndividual tIndividual=dataFactory.getOWLNamedIndividual(IRI.create(“#美国”);
OWLClassAssertionAxiom classAssertion=dataFactory.getOWLClassAssertionAxiom(tClass,tIndividual);
addAxiom(本体,类断言);
输出:


它应该是什么:


我遗漏了什么?我如何让它看起来像比萨饼本体中的正确方式?我使用的是OWLAPI4.0

编辑:

根据Ignazio的建议,我做了一个更改,但没有成功,下面是代码。我再次使用OWL API 4,URI仍然没有添加到注释中<!--#美国-->

OWLClass=dataFactory.getOWLClass(IRI.create(“#Country”);
OWLNamedIndividual tIndividual=dataFactory.getOWLNamedIndividual(IRI.create(“#美国”);
OWLClassAssertionAxiom classAssertion=dataFactory.getOWLClassAssertionAxiom(tClass,tIndividual);
XMLWriterPreferences.getInstance().setUseNamespaceEntities(true);
OWLDocumentFormat=m.getOntologyFormat(本体);
format.asPrefixOWLOntologyFormat()格式
.setPrefix(“ns:”,
"http://www.co-ode.org/ontologies/pizza/pizza.owl#");
尝试
{
m、 addAxiom(本体,类断言);
m、 saveOntology(本体、格式、新SystemOutDocumentTarget());
}捕获(OWLOntologyStorageException e)
{
e、 printStackTrace();
系统出口(0);
}
我还是个新手,如果我是多余的,我很抱歉

输出仍然没有URI+#美国<!--#美国-->:


您试图在RDF/XML中输出相对虹膜。OWLAPI不支持这一点(除非像您在代码中那样实际创建具有相对IRIs的实体。但是,生成的本体违反了OWL2配置文件)

您可以通过实体获得类似的结果:

XMLWriterPreferences.getInstance().setUseNamespaceEntities(true);
ontology.getFormat()
            .asPrefixOWLOntologyFormat()
            .setPrefix("ns:",
                    "http://www.co-ode.org/ontologies/pizza/pizza.owl#");

然后保存本体。

您好,我使用的是OWL API 4,因此找不到OWL本体.getFormat()。我必须使用owletologymanager.getOntologyFormat(ontology.asPrefixOWLOntologyFormat().setPr‌​‌​‌​efix(“ns:,”co ode.org/ontologys/pizza/pizza.owl”);我在执行上述代码时使用了这种方法,但没有改变。在上面添加了更多代码。。。。create(“#Country”)是一个相对的IRI,设置名称空间对它没有任何作用。标题注释使用完整的IRI,并且在任何情况下都不会缩短它。我在标题注释中没有得到完整的IRI,我只得到相对的IRI。是的-在我之前的注释中,我的意思是说IRI.create(“#Country”)将创建一个完整字符串形式为“#Country”的IRI-这个IRI是相对的,本体不应该包含使用这些IRI的实体。出于您的目的,您应该使用
IRI.create(“http://www.co-ode.org/ontologies/pizza/pizza.owl#Country“”