У меня возникла проблема с API OWL при попытке отобразить URI + Name между ‹ !-- -- > без добавления URI+Name в другие разделы.
Например, я использую онтологию пиццы в качестве источника, и файл онтологии показывает приведенный ниже набор кода для отдельных лиц.
<!-- Individual: http://www.co-ode.org/ontologies/pizza/pizza.owl#America -->
<owl:Thing rdf:about="#America">
<rdf:type rdf:resource="#Country"/>
</owl:Thing>
Используя приведенный ниже код, я получаю почти то же самое, но URI по-прежнему отсутствует между ‹-- #America-->, я могу просто добавить iri+name в метод getOWLClass, но это в конечном итоге даст мне URI +Имя между ‹ !-- -- > а также на имени Индивидуального, т.е. rdf:about = http://www.co-ode.org/ontologies/pizza/pizza.owl#America вместо просто #America.
OWLClass tClass = dataFactory.getOWLClass(IRI.create("#Country"));
OWLNamedIndividual tIndividual = dataFactory.getOWLNamedIndividual(IRI.create("#America"));
OWLClassAssertionAxiom classAssertion = dataFactory.getOWLClassAssertionAxiom(tClass, tIndividual);
manager.addAxiom(ontology, classAssertion);
Выход:
<!-- #America -->
<owl:NamedIndividual rdf:about="#America">
<rdf:type rdf:resource="#Country"/>
</owl:NamedIndividual>
Каким он должен быть:
<!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#America -->
<owl:NamedIndividual rdf:about="#America">
<rdf:type rdf:resource="#Country"/>
</owl:NamedIndividual>
Что мне не хватает и как мне сделать так, чтобы это выглядело правильно, как в онтологии пиццы? Я использую OWL API 4.0.
РЕДАКТИРОВАТЬ:
Основываясь на предложении Игнацио, я безуспешно внес изменения, вот код. Я снова использую OWL API 4, URI все еще не добавляется в комментарий ‹! -- #Америка -- >.
OWLClass tClass = dataFactory.getOWLClass(IRI.create("#Country"));
OWLNamedIndividual tIndividual = dataFactory.getOWLNamedIndividual(IRI.create("#America"));
OWLClassAssertionAxiom classAssertion = dataFactory.getOWLClassAssertionAxiom(tClass, tIndividual);
XMLWriterPreferences.getInstance().setUseNamespaceEntities(true);
OWLDocumentFormat format = m.getOntologyFormat(ontology);
format.asPrefixOWLOntologyFormat()
.setPrefix("ns:",
"http://www.co-ode.org/ontologies/pizza/pizza.owl#");
try
{
m.addAxiom(ontology, classAssertion);
m.saveOntology(ontology, format, new SystemOutDocumentTarget());
} catch (OWLOntologyStorageException e)
{
e.printStackTrace();
System.exit(0);
}
Я все еще довольно новичок в этом, извините, если я избыточен.
Вывод по-прежнему без URI + #Америка в ‹ ! -- #Америка -- >:
<!-- #America-->
<owl:NamedIndividual rdf:about="#America">
<rdf:type rdf:resource="#Country"/>
</owl:NamedIndividual>