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();
}
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();
}
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();
}
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;
}
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);
}
Aggregations