public OWLOntologyFormat parse(OWLOntologyDocumentSource documentSource, OWLOntology ontology, OWLOntologyLoaderConfiguration configuration) throws OWLParserException, IOException, OWLOntologyChangeException, UnloadableImportException {
InputSource is = null;
try {
final RDFXMLOntologyFormat format = new RDFXMLOntologyFormat();
final RDFParser parser = new RDFParser() {
@Override
public void startPrefixMapping(String prefix, String IRI) throws SAXException {
super.startPrefixMapping(prefix, IRI);
format.setPrefix(prefix, IRI);
}
@Override
public void startElement(String namespaceIRI, String localName, String qName, Attributes atts) throws SAXException {
super.startElement(namespaceIRI, localName, qName, atts);
String value = atts.getValue(XMLNS, "base");
if (value != null) {
// consumer.setXMLBase(value);
}
}
};
IRIProvider prov = new IRIProvider() {
public IRI getIRI(String s) {
return parser.getIRI(s);
}
};
consumer = new OWLRDFConsumer(ontology, new AnonymousNodeChecker() {
public boolean isAnonymousNode(IRI IRI) {
return parser.isAnonymousNodeIRI(IRI.getFragment());
}
public boolean isAnonymousSharedNode(String iri) {
return parser.isAnonymousNodeID(iri);
}
public boolean isAnonymousNode(String IRI) {
return parser.isAnonymousNodeIRI(IRI);
}
}, configuration);
consumer.setIRIProvider(prov);
consumer.setOntologyFormat(format);
is = getInputSource(documentSource);
parser.parse(is, consumer);
return format;
}
catch (TranslatedOntologyChangeException e) {
throw e.getCause();
}