diff --git a/minerva-core/src/test/resources/validation/should_fail/test-multi-org-1-notitle.ttl b/minerva-core/src/test/resources/validation/should_fail/test-multi-org-1-notitle.ttl new file mode 100644 index 00000000..4b63b3e4 --- /dev/null +++ b/minerva-core/src/test/resources/validation/should_fail/test-multi-org-1-notitle.ttl @@ -0,0 +1,253 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + "development"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string . + +################################################################# +# Annotation properties +################################################################# + +### http://geneontology.org/lego/evidence + rdf:type owl:AnnotationProperty . + + +### http://geneontology.org/lego/hint/layout/x + rdf:type owl:AnnotationProperty . + + +### http://geneontology.org/lego/hint/layout/y + rdf:type owl:AnnotationProperty . + + +### http://purl.org/pav/providedBy + rdf:type owl:AnnotationProperty . + + +################################################################# +# Individuals +################################################################# + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001266 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001267 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + "619"^^xsd:string ; + "294.25"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001268 + rdf:type owl:NamedIndividual , + ; + "520"^^xsd:string ; + "40"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001271 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:1252368"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001272 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:1435277"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001273 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001274 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + "86"^^xsd:string ; + "267.25"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001275 + rdf:type owl:NamedIndividual , + ; + "87"^^xsd:string ; + "53"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001276 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001277 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:1457892"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001278 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:56866045"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001279 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:14577244"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001280 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:34644786"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001281 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001284 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:2789200"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### Generated by the OWL API (version 4.2.8) https://github.com/owlcs/owlapi diff --git a/minerva-server/src/main/java/org/geneontology/minerva/server/handler/ModelSearchHandler.java b/minerva-server/src/main/java/org/geneontology/minerva/server/handler/ModelSearchHandler.java index 8a2c1cf4..41340bb1 100644 --- a/minerva-server/src/main/java/org/geneontology/minerva/server/handler/ModelSearchHandler.java +++ b/minerva-server/src/main/java/org/geneontology/minerva/server/handler/ModelSearchHandler.java @@ -193,10 +193,11 @@ public ModelSearchResult searchGet( @QueryParam("offset") int offset, @QueryParam("limit") int limit, @QueryParam("count") String count, - @QueryParam("debug") String debug + @QueryParam("debug") String debug, + @QueryParam("id") String id ){ ModelSearchResult result = new ModelSearchResult(); - result = search(taxa, gene_product_class_uris, terms, expand, pmids, title, state, contributor, group, exactdate, date, datend, offset, limit, count, debug); + result = search(taxa, gene_product_class_uris, terms, expand, pmids, title, state, contributor, group, exactdate, date, datend, offset, limit, count, debug, id); return result; } @@ -218,7 +219,7 @@ public ModelSearchResult search(Set taxa, Set gene_product_ids, Set terms, String expand, Setpmids, String title_search,Set state_search, Set contributor_search, Set group_search, String exactdate, String date_search, String datend, - int offset, int limit, String count, String debug) { + int offset, int limit, String count, String debug, String id) { ModelSearchResult r = new ModelSearchResult(); Set go_type_ids = new HashSet(); Set gene_type_ids = new HashSet(); @@ -307,6 +308,25 @@ public ModelSearchResult search(Set taxa, types = types+"?ind"+n+" rdf:type <"+go_type_uri+"> . \n"; } } + String id_constraint = ""; + if(id!=null) { + if(!id.contains("http")) { + String[] curie = id.split(":"); + if(curie!=null&&curie.length==2) { + id = "http://model.geneontology.org/"+curie[1]; + } +//TODO figure this out and add it to standard curie collection +// try { +// IRI iri = curie_handler.getIRI(id); +// id = iri.toString(); +// } catch (UnknownIdentifierException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + } + id_constraint = " values ?id {<"+id+"> } "; + } + String pmid_constraints = ""; // if(pmids!=null) { for(String pmid : pmids) { @@ -437,6 +457,7 @@ else if(!taxon.startsWith("http://purl.obolibrary.org/obo/NCBITaxon_")) { group_by_constraint = ""; } sparql = sparql.replaceAll("", return_block); + sparql = sparql.replaceAll("", id_constraint); sparql = sparql.replaceAll("", group_by_constraint); sparql = sparql.replaceAll("", ind_return_list); sparql = sparql.replaceAll("", types); @@ -477,11 +498,11 @@ else if(!taxon.startsWith("http://purl.obolibrary.org/obo/NCBITaxon_")) { n_count = bs.getBinding("count").getValue().stringValue(); }else { //model meta - String id = bs.getBinding("id").getValue().stringValue(); + String model_id = bs.getBinding("id").getValue().stringValue(); try { - String curie = curie_handler.getCuri(IRI.create(id)); + String curie = curie_handler.getCuri(IRI.create(model_id)); if(curie!=null) { - id = curie; + model_id = curie; } } catch (Exception e) { r.error += e.getMessage()+" \n "; @@ -514,9 +535,9 @@ else if(!taxon.startsWith("http://purl.obolibrary.org/obo/NCBITaxon_")) { groups.add(c); } } - ModelMeta mm = id_model.get(id); + ModelMeta mm = id_model.get(model_id); if(mm==null) { - mm = new ModelMeta(id, date, title, state, contributors, groups); + mm = new ModelMeta(model_id, date, title, state, contributors, groups); } //matching for(String ind : ind_return.keySet()) { @@ -528,7 +549,7 @@ else if(!taxon.startsWith("http://purl.obolibrary.org/obo/NCBITaxon_")) { matching_inds.add(ind_class_match); mm.query_match.put(ind_return.get(ind), matching_inds); } - id_model.put(id, mm); + id_model.put(model_id, mm); } } } catch (QueryEvaluationException e) { @@ -576,9 +597,10 @@ public ModelSearchResult searchPostForm( @FormParam("offset") int offset, @FormParam("limit") int limit, @FormParam("count") String count, - @FormParam("debug") String debug) { + @FormParam("debug") String debug, + @FormParam("debug") String id) { ModelSearchResult result = new ModelSearchResult(); - result = search(taxa, gene_product_class_uris, terms, expand, pmids, title, state, contributor, group, exactdate, date, datend, offset, limit, count, debug); + result = search(taxa, gene_product_class_uris, terms, expand, pmids, title, state, contributor, group, exactdate, date, datend, offset, limit, count, debug, id); return result; } diff --git a/minerva-server/src/main/resources/ModelSearchQueryTemplate.rq b/minerva-server/src/main/resources/ModelSearchQueryTemplate.rq index 2f9b1e72..0f68dd80 100644 --- a/minerva-server/src/main/resources/ModelSearchQueryTemplate.rq +++ b/minerva-server/src/main/resources/ModelSearchQueryTemplate.rq @@ -15,6 +15,7 @@ PREFIX directly_positively_regulates: WHERE { + GRAPH ?id { ?id ?title ; ?date ; diff --git a/minerva-server/src/test/java/org/geneontology/minerva/server/handler/ModelSearchHandlerTest.java b/minerva-server/src/test/java/org/geneontology/minerva/server/handler/ModelSearchHandlerTest.java index 2aa76386..e61d9a7e 100644 --- a/minerva-server/src/test/java/org/geneontology/minerva/server/handler/ModelSearchHandlerTest.java +++ b/minerva-server/src/test/java/org/geneontology/minerva/server/handler/ModelSearchHandlerTest.java @@ -168,6 +168,40 @@ public void setUp() throws Exception { public void tearDown() throws Exception { } + + @Test + public final void testSearchGetByModelIdAsCurie() throws URISyntaxException, IOException { + //make the request + URIBuilder builder = new URIBuilder("http://127.0.0.1:6800/search/models/"); + // + builder.addParameter("id", "gomodel:5d29221b00001265"); + URI searchuri = builder.build(); + String json_result = getJsonStringFromUri(searchuri); + Gson g = new Gson(); + ModelSearchResult result = g.fromJson(json_result, ModelSearchResult.class); + LOGGER.info("Search by id URI "+searchuri); + LOGGER.info("Search by id result "+json_result); + LOGGER.info("N models found: "+result.getN()); + assertTrue(result.getN()==1); + } + + @Test + public final void testSearchGetByModelIdAsURI() throws URISyntaxException, IOException { + //make the request + URIBuilder builder = new URIBuilder("http://127.0.0.1:6800/search/models/"); + // + //builder.addParameter("id", "gomodel:5d29221b00001265"); + builder.addParameter("id", "http://model.geneontology.org/5d29221b00001265"); + URI searchuri = builder.build(); + String json_result = getJsonStringFromUri(searchuri); + Gson g = new Gson(); + ModelSearchResult result = g.fromJson(json_result, ModelSearchResult.class); + LOGGER.info("Search by id URI "+searchuri); + LOGGER.info("Search by id result "+json_result); + LOGGER.info("N models found: "+result.getN()); + assertTrue(result.getN()==1); + } + /** * Test method for {@link org.geneontology.minerva.server.handler.ModelSearchHandler#searchGet(java.util.Set, java.util.Set, java.util.Set, java.lang.String, java.util.Set, java.util.Set, java.util.Set, java.lang.String, int, int, java.lang.String)}. * @throws URISyntaxException diff --git a/minerva-server/src/test/resources/models/should_fail/test-multi-org-1-notitle.ttl b/minerva-server/src/test/resources/models/should_fail/test-multi-org-1-notitle.ttl new file mode 100644 index 00000000..4b63b3e4 --- /dev/null +++ b/minerva-server/src/test/resources/models/should_fail/test-multi-org-1-notitle.ttl @@ -0,0 +1,253 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + "development"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string . + +################################################################# +# Annotation properties +################################################################# + +### http://geneontology.org/lego/evidence + rdf:type owl:AnnotationProperty . + + +### http://geneontology.org/lego/hint/layout/x + rdf:type owl:AnnotationProperty . + + +### http://geneontology.org/lego/hint/layout/y + rdf:type owl:AnnotationProperty . + + +### http://purl.org/pav/providedBy + rdf:type owl:AnnotationProperty . + + +################################################################# +# Individuals +################################################################# + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001266 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001267 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + "619"^^xsd:string ; + "294.25"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001268 + rdf:type owl:NamedIndividual , + ; + "520"^^xsd:string ; + "40"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001271 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:1252368"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001272 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:1435277"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001273 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001274 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + "86"^^xsd:string ; + "267.25"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + +[ rdf:type owl:Axiom ; + owl:annotatedSource ; + owl:annotatedProperty ; + owl:annotatedTarget ; + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string + ] . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001275 + rdf:type owl:NamedIndividual , + ; + "87"^^xsd:string ; + "53"^^xsd:string ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001276 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001277 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:1457892"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001278 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:56866045"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001279 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:14577244"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001280 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:34644786"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001281 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### http://model.geneontology.org/5d29221b00001265/5d29221b00001284 + rdf:type owl:NamedIndividual , + ; + "http://orcid.org/0000-0003-3643-281X"^^xsd:string ; + "2019-08-20"^^xsd:string ; + "PMID:2789200"^^xsd:string ; + "http://www.igs.umaryland.edu"^^xsd:string . + + +### Generated by the OWL API (version 4.2.8) https://github.com/owlcs/owlapi