/** * Converts an OBO document to an OWL ontology * * @param obodoc * @return ontology * @throws OWLOntologyCreationException */ public OWLOntology convert(OBODoc obodoc) throws OWLOntologyCreationException { // always create a new manager, when loading a new obo document - TODO - why? // creates problems for sharing ontologies return convert(obodoc, false); }
/** * Static convenience method which: * (1) creates an Obo2Owl bridge object * (2) parses an obo file from a URL * (3) converts that to an OWL ontology * (4) saves the OWL ontology as RDF/XML * * @param iri * @param outFile * @throws IOException * @throws OWLOntologyCreationException * @throws OWLOntologyStorageException * @throws OBOFormatParserException */ public static void convertURL(String iri, String outFile, OWLOntologyManager manager) throws IOException, OWLOntologyCreationException, OWLOntologyStorageException, OBOFormatParserException { Obo2Owl bridge = new Obo2Owl(manager); OBOFormatParser p = new OBOFormatParser(); OBODoc obodoc = p.parse(new URL(iri)); OWLOntology ontology = bridge.convert(obodoc); IRI outputStream = IRI.create(outFile); OWLOntologyFormat format = new RDFXMLOntologyFormat(); LOG.log(Level.WARNING, "saving to " + outputStream + " fmt=" + format); manager.saveOntology(ontology, format, outputStream); }
/** * Creates an OBOFormatParser object to parse a file and then converts it using * the convert method * * @param oboFile * @return ontology * @throws OWLOntologyCreationException */ public OWLOntology convert(String oboFile) throws OWLOntologyCreationException { try{ OBOFormatParser p = new OBOFormatParser(); OBODoc obodoc = p.parse(oboFile); return convert(obodoc); }catch(IOException ex){ throw new OWLOntologyCreationException("Error Occured while parsing OBO '" + oboFile + "'", ex); } catch (OBOFormatParserException ex) { throw new OWLOntologyCreationException("Syntax error occured while parsing OBO '" + oboFile + "'", ex); } }
/** * See {@link #convertURL(String iri, String outFile)} * * @param iri * @param outFile * @param defaultOnt -- e.g. "go". If the obo file contains no "ontology:" header tag, this is added * @throws IOException * @throws OWLOntologyCreationException * @throws OWLOntologyStorageException * @throws OBOFormatParserException */ public static void convertURL(String iri, String outFile, String defaultOnt, OWLOntologyManager manager) throws IOException, OWLOntologyCreationException, OWLOntologyStorageException, OBOFormatParserException { Obo2Owl bridge = new Obo2Owl(manager); OBOFormatParser p = new OBOFormatParser(); OBODoc obodoc = p.parse(new URL(iri)); obodoc.addDefaultOntologyHeader(defaultOnt); OWLOntology ontology = bridge.convert(obodoc); IRI outputStream = IRI.create(outFile); OWLOntologyFormat format = new RDFXMLOntologyFormat(); LOG.log(Level.WARNING, "saving to " + outputStream + " fmt=" + format); manager.saveOntology(ontology, format, outputStream); }
private OWLOntology parse(IRI iri, OWLOntologyDocumentSource source, OWLOntology in) throws OBOFormatParserException, MalformedURLException, IOException, OWLOntologyCreationException { OBOFormatParser p = new OBOFormatParser(); OBODoc obodoc = null; if (iri != null) { obodoc = p.parse(iri.toURI().toURL()); } else { if (source.isReaderAvailable()) { obodoc = p.parse(new BufferedReader(source.getReader())); } else if (source.isInputStreamAvailable()) { obodoc = p.parse(new BufferedReader(new InputStreamReader(source .getInputStream()))); } else { return parse(source.getDocumentIRI(), null, in); } } // create a translator object and feed it the OBO Document Obo2Owl bridge = new Obo2Owl(manager); OWLOntology ontology = bridge.convert(obodoc, in); if (ontology == in) { return in; } return ontology; } }
ontology = bridge.convert(obodoc);
OWLOntology ontology = bridge.convert(obodoc);