/** * */ package org.semanticweb.owlapi.rio; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.semanticweb.owlapi.api.test.baseclasses.TestBase; import org.semanticweb.owlapi.formats.RDFXMLDocumentFormat; import org.semanticweb.owlapi.formats.RioRDFXMLDocumentFormat; import org.semanticweb.owlapi.formats.RioRDFXMLDocumentFormatFactory; import org.semanticweb.owlapi.io.StreamDocumentSource; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLDocumentFormat; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser; /** * @author Peter Ansell p_ansell@yahoo.com */ @SuppressWarnings({"javadoc"}) public class RioParserTestCase extends TestBase { @Before public void setUpManager() { // Use non-Rio storers // limit to Rio parsers for RioParserImpl Test // testManager = OWLOntologyManagerFactoryRegistry // .createOWLOntologyManager( // OWLOntologyManagerFactoryRegistry.getOWLDataFactory(), // storerRegistry, parserRegistry); m.getOntologyParsers().set(new RioRDFXMLParserFactory()); // testOntologyKoala = // testManager.loadOntologyFromOntologyDocument(this.getClass().getResourceAsStream("/koala.owl")); } /* * Test method for {@link * org.semanticweb.owlapi.rio.RioParserImpl#parse(org.semanticweb.owlapi.io. * OWLOntologyDocumentSource, org.semanticweb.owlapi.model.OWLOntology)} */ @Test public void testParse() throws Exception { OWLOntology owlapiOntologyPrimer = getAnonymousOWLOntology(); RDFXMLParser owlapiParser = new RDFXMLParser(); OWLDocumentFormat format = getStream("/koala.owl").acceptParser(owlapiParser, owlapiOntologyPrimer, config); assertEquals(70, owlapiOntologyPrimer.getAxiomCount()); assertEquals(new RDFXMLDocumentFormat(), format); RioParserImpl rioParser = new RioParserImpl(new RioRDFXMLDocumentFormatFactory()); // OWLOntology ontology = OWLOntologyManagerFactoryRegistry // .createOWLOntologyManager().createOntology( OWLOntology ontology = m1.createOntology( IRI.create("http://protege.stanford.edu/plugins/owl/owl-library/", "koala.owl")); OWLDocumentFormat rioOntologyFormat = getStream("/koala.owl").acceptParser(rioParser, ontology, config); assertEquals(new RioRDFXMLDocumentFormat(), rioOntologyFormat); equal(owlapiOntologyPrimer, ontology); assertEquals(70, ontology.getAxiomCount()); } /* * Test method for {@link * org.semanticweb.owlapi.rio.RioParserImpl#parse(org.semanticweb.owlapi.io. * OWLOntologyDocumentSource, org.semanticweb.owlapi.model.OWLOntology)} */ @Test public void testParsePrimer() throws Exception { OWLOntology owlapiOntologyPrimer = getAnonymousOWLOntology(); RDFXMLParser owlapiParser = new RDFXMLParser(); OWLDocumentFormat format = getStream("/primer.rdfxml.xml").acceptParser(owlapiParser, owlapiOntologyPrimer, config); assertEquals(94, owlapiOntologyPrimer.getAxiomCount()); assertEquals(new RDFXMLDocumentFormat(), format); RioParserImpl rioParser = new RioParserImpl(new RioRDFXMLDocumentFormatFactory()); // OWLOntology rioOntologyPrimer = OWLOntologyManagerFactoryRegistry // .createOWLOntologyManager() OWLOntology rioOntologyPrimer = m1.createOntology(IRI.create("http://example.com/owl/", "families")); OWLDocumentFormat rioOntologyFormat = getStream("/primer.rdfxml.xml").acceptParser(rioParser, rioOntologyPrimer, config); assertEquals(new RioRDFXMLDocumentFormat(), rioOntologyFormat); equal(owlapiOntologyPrimer, rioOntologyPrimer); assertEquals(94, rioOntologyPrimer.getAxiomCount()); } /** * @return stream */ StreamDocumentSource getStream(String name) { return new StreamDocumentSource(getClass().getResourceAsStream(name)); } /* * Test method for {@link * org.semanticweb.owlapi.rio.RioParserImpl#parse(org.semanticweb.owlapi.io. * OWLOntologyDocumentSource, org.semanticweb.owlapi.model.OWLOntology)} */ @Test public void testParsePrimerSubset() throws Exception { // XXX this test does not work yet // output: // Rio: // DatatypeDefinition(<http://example.com/owl/families/majorAge> // DataIntersectionOf(<http://org.semanticweb.owlapi/error#Error1> // DataComplementOf(<http://example.com/owl/families/minorAge>) )) // OWLAPI: // DatatypeDefinition(<http://example.com/owl/families/majorAge> // DataIntersectionOf(<http://example.com/owl/families/personAge> // DataComplementOf(<http://example.com/owl/families/minorAge>) ))] OWLOntology owlapiOntologyPrimer = getAnonymousOWLOntology(); RDFXMLParser owlapiParser = new RDFXMLParser(); OWLDocumentFormat format = getStream("/rioParserTest1-minimal.rdf") .acceptParser(owlapiParser, owlapiOntologyPrimer, config); assertEquals(4, owlapiOntologyPrimer.getAxiomCount()); assertEquals(new RDFXMLDocumentFormat(), format); RioParserImpl rioParser = new RioParserImpl(new RioRDFXMLDocumentFormatFactory()); // OWLOntology rioOntologyPrimer = OWLOntologyManagerFactoryRegistry // .createOWLOntologyManager().createOntology( OWLOntology rioOntologyPrimer = m1.createOntology(IRI.create("http://example.com/owl/", "families")); OWLDocumentFormat rioOntologyFormat = getStream("/rioParserTest1-minimal.rdf") .acceptParser(rioParser, rioOntologyPrimer, config); assertEquals(new RioRDFXMLDocumentFormat(), rioOntologyFormat); equal(owlapiOntologyPrimer, rioOntologyPrimer); assertEquals(4, rioOntologyPrimer.getAxiomCount()); } }