Search in sources :

Example 1 with UndoAwareMolecularModelManager

use of org.geneontology.minerva.UndoAwareMolecularModelManager in project minerva by geneontology.

the class ARTHandlerTest method setUpBeforeClass.

/**
 * @throws java.lang.Exception
 */
@BeforeClass
public static void setUpBeforeClass() throws Exception {
    LOGGER.info("Setup shex.");
    File shex_schema_file = new File("src/test/resources/validate.shex");
    File shex_map_file = new File("src/test/resources/validate.shapemap");
    LOGGER.info("Set up molecular model manager - loading files into a journal");
    // set curie handler
    final CurieMappings localMappings = new CurieMappings.SimpleCurieMappings(Collections.singletonMap(modelIdcurie, modelIdPrefix));
    curieHandler = new MappedCurieHandler(DefaultCurieHandler.loadDefaultMappings(), localMappings);
    String inputDB = makeBlazegraphJournal(valid_model_folder);
    OWLOntologyManager ontman = OWLManager.createOWLOntologyManager();
    // empty tbox
    tbox_ontology = ontman.createOntology(IRI.create("http://example.org/dummy"));
    models = new UndoAwareMolecularModelManager(tbox_ontology, curieHandler, modelIdPrefix, inputDB, model_save, go_lego_journal_file, true);
    models.addTaxonMetadata();
    LOGGER.info("Setup Jetty config.");
    ResourceConfig resourceConfig = new ResourceConfig();
    resourceConfig.register(GsonMessageBodyHandler.class);
    resourceConfig.register(RequireJsonpFilter.class);
    MinervaShexValidator shex = new MinervaShexValidator(shex_schema_file, shex_map_file, curieHandler, models.getGolego_repo());
    shex.setActive(true);
    // setup the config for the startup tool.
    MinervaStartUpConfig conf = new MinervaStartUpConfig();
    conf.reasonerOpt = "arachne";
    conf.shex = shex;
    conf.port = 6800;
    conf.contextString = "/";
    InferenceProviderCreator ipc = StartUpTool.createInferenceProviderCreator(conf.reasonerOpt, models, conf.shex);
    ModelARTHandler artHandler = new ModelARTHandler(models, ipc);
    // set up a handler for testing with M3BatchRequest service
    handler = new JsonOrJsonpBatchHandler(models, "development", ipc, Collections.<OWLObjectProperty>emptySet(), (ExternalLookupService) null);
    resourceConfig = resourceConfig.registerInstances(artHandler);
    // setup jetty server port, buffers and context path
    server = new Server();
    // create connector with port and custom buffer sizes
    HttpConfiguration http_config = new HttpConfiguration();
    http_config.setRequestHeaderSize(conf.requestHeaderSize);
    ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(http_config));
    connector.setPort(conf.port);
    server.addConnector(connector);
    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.setContextPath(conf.contextString);
    server.setHandler(context);
    ServletHolder h = new ServletHolder(new ServletContainer(resourceConfig));
    context.addServlet(h, "/*");
    // start jetty server
    LOGGER.info("Start server on port: " + conf.port + " context: " + conf.contextString);
    server.start();
}
Also used : MappedCurieHandler(org.geneontology.minerva.curie.MappedCurieHandler) CurieMappings(org.geneontology.minerva.curie.CurieMappings) Server(org.eclipse.jetty.server.Server) HttpConnectionFactory(org.eclipse.jetty.server.HttpConnectionFactory) UndoAwareMolecularModelManager(org.geneontology.minerva.UndoAwareMolecularModelManager) ServletHolder(org.eclipse.jetty.servlet.ServletHolder) InferenceProviderCreator(org.geneontology.minerva.server.inferences.InferenceProviderCreator) MinervaStartUpConfig(org.geneontology.minerva.server.StartUpTool.MinervaStartUpConfig) HttpConfiguration(org.eclipse.jetty.server.HttpConfiguration) ServerConnector(org.eclipse.jetty.server.ServerConnector) ServletContainer(org.glassfish.jersey.servlet.ServletContainer) ResourceConfig(org.glassfish.jersey.server.ResourceConfig) ServletContextHandler(org.eclipse.jetty.servlet.ServletContextHandler) File(java.io.File) MinervaShexValidator(org.geneontology.minerva.server.validation.MinervaShexValidator) ExternalLookupService(org.geneontology.minerva.lookup.ExternalLookupService)

Example 2 with UndoAwareMolecularModelManager

use of org.geneontology.minerva.UndoAwareMolecularModelManager in project minerva by geneontology.

the class DataPropertyTest method testDataProperyRenderer.

@Test
public void testDataProperyRenderer() throws Exception {
    OWLOntologyManager m = OWLManager.createOWLOntologyManager();
    OWLOntology ontology = m.createOntology(IRI.generateDocumentIRI());
    final IRI clsIRI = IRI.generateDocumentIRI();
    final IRI propIRI = IRI.generateDocumentIRI();
    // create a test ontology with one data property and one class
    OWLDataFactory f = m.getOWLDataFactory();
    OWLDataProperty prop = f.getOWLDataProperty(propIRI);
    m.addAxiom(ontology, f.getOWLDeclarationAxiom(prop));
    m.addAxiom(ontology, f.getOWLAnnotationAssertionAxiom(propIRI, f.getOWLAnnotation(f.getRDFSLabel(), f.getOWLLiteral("fake-data-property"))));
    OWLClass cls = f.getOWLClass(clsIRI);
    m.addAxiom(ontology, f.getOWLDeclarationAxiom(cls));
    m.addAxiom(ontology, f.getOWLAnnotationAssertionAxiom(clsIRI, f.getOWLAnnotation(f.getRDFSLabel(), f.getOWLLiteral("fake-cls"))));
    // graph and m3
    final UndoMetadata metadata = new UndoMetadata("foo-user");
    UndoAwareMolecularModelManager m3 = createM3(ontology);
    final ModelContainer model = m3.generateBlankModel(metadata);
    final OWLNamedIndividual individual = m3.createIndividual(model, cls, metadata);
    m3.addDataProperty(model, individual, prop, f.getOWLLiteral(10), metadata);
    MolecularModelJsonRenderer r = new MolecularModelJsonRenderer(model, null, curieHandler);
    final JsonModel jsonModel = r.renderModel();
    assertEquals(1, jsonModel.individuals.length);
    assertEquals(1, jsonModel.individuals[0].annotations.length);
    {
        JsonAnnotation ann = jsonModel.individuals[0].annotations[0];
        assertEquals(propIRI.toString(), ann.key);
        assertEquals("10", ann.value);
        assertEquals("xsd:integer", ann.valueType);
    }
    m3.dispose();
}
Also used : UndoAwareMolecularModelManager(org.geneontology.minerva.UndoAwareMolecularModelManager) ModelContainer(org.geneontology.minerva.ModelContainer) UndoMetadata(org.geneontology.minerva.UndoAwareMolecularModelManager.UndoMetadata) Test(org.junit.Test)

Example 3 with UndoAwareMolecularModelManager

use of org.geneontology.minerva.UndoAwareMolecularModelManager in project minerva by geneontology.

the class DataPropertyTest method testDataPropertyBatch.

@Test
public void testDataPropertyBatch() throws Exception {
    OWLOntologyManager m = OWLManager.createOWLOntologyManager();
    OWLOntology ontology = m.createOntology(IRI.generateDocumentIRI());
    final IRI clsIRI = IRI.create("http://purl.obolibrary.org/obo/GO_0001");
    final IRI propIRI = IRI.create("http://purl.obolibrary.org/obo/RO_0001");
    // create a test ontology with one data property and one class
    OWLDataFactory f = m.getOWLDataFactory();
    OWLDataProperty prop = f.getOWLDataProperty(propIRI);
    m.addAxiom(ontology, f.getOWLDeclarationAxiom(prop));
    m.addAxiom(ontology, f.getOWLAnnotationAssertionAxiom(propIRI, f.getOWLAnnotation(f.getRDFSLabel(), f.getOWLLiteral("fake-data-property"))));
    OWLClass cls = f.getOWLClass(clsIRI);
    m.addAxiom(ontology, f.getOWLDeclarationAxiom(cls));
    m.addAxiom(ontology, f.getOWLAnnotationAssertionAxiom(clsIRI, f.getOWLAnnotation(f.getRDFSLabel(), f.getOWLLiteral("fake-cls"))));
    // graph and m3
    UndoAwareMolecularModelManager m3 = createM3(ontology);
    // handler
    InferenceProviderCreator ipc = null;
    JsonOrJsonpBatchHandler handler = new JsonOrJsonpBatchHandler(m3, "development", ipc, null, null);
    // empty model
    final ModelContainer model = m3.generateBlankModel(new UndoMetadata("foo-user"));
    // create individual with annotations, including one data property
    M3Request r1 = BatchTestTools.addIndividual(curieHandler.getCuri(model.getModelId()), "GO:0001");
    r1.arguments.values = new JsonAnnotation[2];
    r1.arguments.values[0] = new JsonAnnotation();
    r1.arguments.values[0].key = AnnotationShorthand.comment.name();
    r1.arguments.values[0].value = "foo-comment";
    r1.arguments.values[1] = new JsonAnnotation();
    r1.arguments.values[1].key = curieHandler.getCuri(propIRI);
    r1.arguments.values[1].value = "10";
    r1.arguments.values[1].valueType = "xsd:integer";
    M3BatchResponse response1 = exec(handler, Collections.singletonList(r1));
    final String individualsId;
    // check for data property as annotation
    {
        assertEquals(1, response1.data.individuals.length);
        JsonOwlIndividual i = response1.data.individuals[0];
        assertEquals(4, i.annotations.length);
        individualsId = i.id;
        JsonAnnotation dataPropAnnotation = null;
        for (JsonAnnotation ann : i.annotations) {
            if (curieHandler.getCuri(propIRI).equals(ann.key)) {
                dataPropAnnotation = ann;
            }
        }
        assertNotNull(dataPropAnnotation);
    }
    assertNotNull(individualsId);
    // check underlying owl model for usage of OWLDataProperty
    {
        Set<OWLDataPropertyAssertionAxiom> axioms = model.getAboxOntology().getAxioms(AxiomType.DATA_PROPERTY_ASSERTION);
        assertEquals(1, axioms.size());
        OWLDataPropertyAssertionAxiom ax = axioms.iterator().next();
        OWLLiteral literal = ax.getObject();
        assertEquals(prop, ax.getProperty());
        assertEquals(f.getOWLLiteral(10), literal);
    }
    // delete data property
    M3Request r2 = new M3Request();
    r2.entity = Entity.individual;
    r2.operation = Operation.removeAnnotation;
    r2.arguments = new M3Argument();
    r2.arguments.individual = individualsId;
    r2.arguments.modelId = curieHandler.getCuri(model.getModelId());
    r2.arguments.values = new JsonAnnotation[1];
    r2.arguments.values[0] = new JsonAnnotation();
    r2.arguments.values[0].key = propIRI.toString();
    r2.arguments.values[0].value = "10";
    r2.arguments.values[0].valueType = "xsd:integer";
    M3BatchResponse response2 = exec(handler, Collections.singletonList(r2));
    // check for deleted property as annotation
    {
        assertEquals(1, response2.data.individuals.length);
        JsonOwlIndividual i = response2.data.individuals[0];
        assertEquals(3, i.annotations.length);
    }
    m3.dispose();
}
Also used : Set(java.util.Set) UndoAwareMolecularModelManager(org.geneontology.minerva.UndoAwareMolecularModelManager) InferenceProviderCreator(org.geneontology.minerva.server.inferences.InferenceProviderCreator) ModelContainer(org.geneontology.minerva.ModelContainer) UndoMetadata(org.geneontology.minerva.UndoAwareMolecularModelManager.UndoMetadata) Test(org.junit.Test)

Example 4 with UndoAwareMolecularModelManager

use of org.geneontology.minerva.UndoAwareMolecularModelManager in project minerva by geneontology.

the class LocalServerTest method init.

static void init(ParserWrapper pw) throws Exception {
    final OWLOntology tbox = OWLManager.createOWLOntologyManager().loadOntology(IRI.create(new File("src/test/resources/go-lego-minimal.owl")));
    // curie handler
    final String modelIdcurie = "gomodel";
    final String modelIdPrefix = "http://model.geneontology.org/";
    final CurieMappings localMappings = new CurieMappings.SimpleCurieMappings(Collections.singletonMap(modelIdcurie, modelIdPrefix));
    curieHandler = new MappedCurieHandler(DefaultCurieHandler.loadDefaultMappings(), localMappings);
    models = new UndoAwareMolecularModelManager(tbox, curieHandler, modelIdPrefix, folder.newFile().getAbsolutePath(), null, go_lego_journal_file, true);
    MinervaStartUpConfig conf = new MinervaStartUpConfig();
    conf.reasonerOpt = "elk";
    conf.useRequestLogging = true;
    conf.checkLiteralIds = false;
    conf.lookupService = null;
    conf.importantRelations = null;
    conf.port = 6800;
    conf.contextString = "/";
    server = StartUpTool.startUp(models, conf, null);
    urlPrefix = "http://localhost:" + conf.port + conf.contextString;
}
Also used : MappedCurieHandler(org.geneontology.minerva.curie.MappedCurieHandler) CurieMappings(org.geneontology.minerva.curie.CurieMappings) UndoAwareMolecularModelManager(org.geneontology.minerva.UndoAwareMolecularModelManager) OWLOntology(org.semanticweb.owlapi.model.OWLOntology) MinervaStartUpConfig(org.geneontology.minerva.server.StartUpTool.MinervaStartUpConfig) File(java.io.File)

Example 5 with UndoAwareMolecularModelManager

use of org.geneontology.minerva.UndoAwareMolecularModelManager in project minerva by geneontology.

the class ModelEditTest method init.

static void init(ParserWrapper pw) throws OWLOntologyCreationException, IOException {
    // This includes only the needed terms for the test to pass
    final OWLOntology tbox = OWLManager.createOWLOntologyManager().loadOntology(IRI.create(new File("src/test/resources/edit-test/go-lego-empty.owl")));
    // curie handler
    final String modelIdcurie = "gomodel";
    final String modelIdPrefix = "http://model.geneontology.org/";
    final CurieMappings localMappings = new CurieMappings.SimpleCurieMappings(Collections.singletonMap(modelIdcurie, modelIdPrefix));
    curieHandler = new MappedCurieHandler(DefaultCurieHandler.loadDefaultMappings(), localMappings);
    models = new UndoAwareMolecularModelManager(tbox, curieHandler, modelIdPrefix, folder.newFile().getAbsolutePath(), null, go_lego_journal_file, true);
    InferenceProviderCreator ipc = null;
    handler = new JsonOrJsonpBatchHandler(models, "development", ipc, Collections.<OWLObjectProperty>emptySet(), (ExternalLookupService) null);
}
Also used : MappedCurieHandler(org.geneontology.minerva.curie.MappedCurieHandler) CurieMappings(org.geneontology.minerva.curie.CurieMappings) UndoAwareMolecularModelManager(org.geneontology.minerva.UndoAwareMolecularModelManager) InferenceProviderCreator(org.geneontology.minerva.server.inferences.InferenceProviderCreator) File(java.io.File) ExternalLookupService(org.geneontology.minerva.lookup.ExternalLookupService)

Aggregations

UndoAwareMolecularModelManager (org.geneontology.minerva.UndoAwareMolecularModelManager)14 MappedCurieHandler (org.geneontology.minerva.curie.MappedCurieHandler)11 File (java.io.File)9 CurieMappings (org.geneontology.minerva.curie.CurieMappings)8 InferenceProviderCreator (org.geneontology.minerva.server.inferences.InferenceProviderCreator)7 ExternalLookupService (org.geneontology.minerva.lookup.ExternalLookupService)6 ModelContainer (org.geneontology.minerva.ModelContainer)5 HttpConfiguration (org.eclipse.jetty.server.HttpConfiguration)4 HttpConnectionFactory (org.eclipse.jetty.server.HttpConnectionFactory)4 Server (org.eclipse.jetty.server.Server)4 ServerConnector (org.eclipse.jetty.server.ServerConnector)4 ServletContextHandler (org.eclipse.jetty.servlet.ServletContextHandler)4 ServletHolder (org.eclipse.jetty.servlet.ServletHolder)4 ResourceConfig (org.glassfish.jersey.server.ResourceConfig)4 ServletContainer (org.glassfish.jersey.servlet.ServletContainer)4 Test (org.junit.Test)4 OWLOntology (org.semanticweb.owlapi.model.OWLOntology)4 CurieHandler (org.geneontology.minerva.curie.CurieHandler)3 OWLOntologyManager (org.semanticweb.owlapi.model.OWLOntologyManager)3 URL (java.net.URL)2