ontozoo / ontobee Goto Github PK
View Code? Open in Web Editor NEWOntobee is a linked data server for ontologies. See: http://www.ontobee.org.
Ontobee is a linked data server for ontologies. See: http://www.ontobee.org.
E.g.
http://purl.obolibrary.org/obo/RO_0002202
Works for usage within an ontology:
http://www.ontobee.org/browser/rdf.php?o=UBERON&iri=http://purl.obolibrary.org/obo/RO_0002202
See http://www.ontobee.org/browser/search.php?ontology=OBI&keywords=FCS&Submit2=Search+terms
While I understand that the auto-complete doesn't work for 3 characters or less, it'd be useful if a result was nonetheless returned when the user hits "search". For example in this case, a term "FCS" exists in OBI, see http://purl.obolibrary.org/obo/OBI_0000327
I'm aware of at least one - that the CBD pragma is used. See if SPARQL 1.1 supports that natively and use the feature if so, or document it as a virtuoso specific feature.
This will be important if someone who deploys another instance of Ontobee wants to use a different triple store.
The project is https://code.google.com/p/obo-registry/
It should be the case that Ontobee is able to get any metadata about ontologies from the registry when it is ready, other than any ad hoc choices regarding which ontologies should be included.
Example:
http://purl.obolibrary.org/obo/UBERON_0001882
The database_cross_references field shows all values of this property that are literals.
but not IRIs. Underlying OWL:
<owl:Class rdf:about="http://purl.obolibrary.org/obo/UBERON_0001882">
...
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">nucleus accumbens</rdfs:label>
<oboInOwl:hasDbXref rdf:resource="http://braininfo.rprc.washington.edu/centraldirectory.aspx?ID=277"/>
<oboInOwl:hasDbXref rdf:resource="http://en.wikipedia.org/wiki/Nucleus_accumbens"/>
<oboInOwl:hasDbXref rdf:resource="http://ncicb.nci.nih.gov/xml/owl/EVS/Accumbens_Nucleus"/>
<oboInOwl:hasDbXref rdf:resource="http://uri.neuinfo.org/nif/nifstd/birnlex_727"/>
Currently the list of ontologies is computed by seeing whether the term is present as an (effectively) import. The ontologies should qualify, IMO, only if they are used in a nontrivial axiom (i.e. almost any axiom other than a subclass axioms where the imported term is the subclass, or where both the sub and superclass are from the same (imported) ontology.
It is possible that in application ontologies, in particular, some terms may be present and unused directly by the ontology, instead gathered because the application ontology needs to offer it to it's application or other clientele. Perhaps we can provide a method to indicate such usage. My impression on browsing for some time now is that those cases are a minority of cases where the ontology is listed with the larger proportion of cases where the term is not deliberately incorporated into the ontology, instead being pulled in by an import or MIREOT subset that is partly automatically constructed.
As a heuristic, a term should not have a listing as used in other ontologies unless the ontobee page for the term in that ontology has a non-empty "uses in this ontology" section.
R inverseOf R'
<=>
R' inverseOf R
Currently OB assumes both are asserted, otherwise only shows inverse axiom on one page
http://www.ontobee.org/browser/index.php?o=UBERON
versionIRI : http://purl.obolibrary.org/obo/uberon/releases/2015-03-15/ext.owl
There have been 7 releases since the 2015-03-15 one
http://www.ontobee.org/ontostat/index.php - consider adding versionIRI of ontology
http://www.ontobee.org/browser/rdf.php?o=RO&iri=http://purl.obolibrary.org/obo/RO_0002202
should have parents & children
It would be v useful to have a set of tests for ontobee, that would check not only the UI functionality, but data integrity.
these are very easy to do using the behave framework. For each, a script search.behave
would look like this:
@ui
Scenario: "instrument" in the keyword search with a click goes to a details page
Given I go to page "/"
and I type "instrument" into the keyword search
and I wait until "instrument (OBI_0000968)" appears in the autocomplete
and I click the autocomplete item "instrument (OBI_0000968)"
then the title should be "device"
@ui
Scenario: "instrument" in the keyword search with submit goes to a search page
Given I go to page "/"
and I type "instrument" into the keyword search
and I submit keyword search
then the title should be "Search Results: instrument"
and the document should contain "instrumentation planning"
and the document should contain "instrument (OBI)"
For examples written by @kltm, see:
https://github.com/geneontology/amigo/tree/master/selenium/behave
See for example http://purl.obolibrary.org/obo/OBI_0000499
The HTML encoding "<" is displayed instead of the bracket <
It would be neat if you could enhance the SPARQL queries using owlet:
While the annotation should ultimately be generated as part of the ontology build process, in order to support linked data clients, add an annotation
<term> rdf:isDefinedBy <purl of ontology>
to each term unless we know an ontology is generating them itself.
See the google+ conversation
http://www.ontobee.org/browser/index.php?o=UBERON
versionIRI : http://purl.obolibrary.org/obo/uberon/releases/2015-03-15/ext.owl
There have been multiple releases since april
http://www.ontobee.org/browser/rdf.php?o=UBERON&iri=http://purl.obolibrary.org/obo/RO_0002202
nodeID://b335258352 subClassOf: develops from some pharyngeal arch artery 3
I believe this is from a GCI
See for example http://purl.obolibrary.org/obo/OBI_0000499
The OBI term has 2 annotation properties "definition source" which are concatenated into one in the Ontobee display.
Since the files do not generate xslt, but rather html, the file names would be less confusing if they were more clearly named, eg. "generate_class_html.php", etc.
IDOBRU is an extension of IDO and as such uses IRIs from the IDO namespace. The issue, then, is to have ontobee know to look for IDOBRU's ids in Ontobee's IDOBRU ontology.
Melanie made the suggestion, based on the allocation of IDO ids to IDOBRU that this be handled in the current BBOP apache redirect.
The rules are
## INHERIT:
## OBO Redirect from Alan
RewriteRule ^/ontologies/(\w+)_(\d+)
http://purl.obolibrary.org/obo/$1/about/$1_$2 [R=303,L]
## Fallthough OBO catch.
## If the rewrite below ends back up at us, then use the stand-in
## page on ontobee.
RewriteRule ^/ontologies/\S+/about/(\S+)_(\d+)
http://www.ontobee.org/browser/rdf.php?o=$1&iri=http://purl.obolibrary.org/obo/$1_$2
Could we add a rule before the OBO catch to say
RewriteRule ^/ontologies/IDO/about/(IDO_01(\d+)
http://www.ontobee.org/browser/rdf.php?o=IDOBRU&iri=http://purl.obolibrary.org/obo/IDO_01$1
Recently Oliver asked if we should proceed using that idea.
My comment:
It should work as for this case, but isn't a favored solution for the long run because it depends on numbering convensions in the idspace, which is something we want to avoid when possible, and because there will be more cases of terms that originate in one ontology that move to be managed in another. For example it may make sense for OBI and IAO to swap management of some terms.
Recall the current scheme is:
Instead I would like to suggest we start using rdfs:isDefinedBy, initially for IDOBRU. During transition, while it is not being used in all ontologies the following protocol should work.
One more change is required. When generating links back to ontobee, the check for rdfs:isDefinedBy should be done for any term in the same namespace as the source and the o parameter set as appropriate. For example, when browsing an IDOBRU term, which is in the IDO namespace, and IDO_ url could be either from IDOBRU or from IDO. If we assume "o" is computed from the IRI, then would get o=IDO, which would be correct for IDO terms, but incorrect for the IDOBRU terms. If we use o=IDOBRU then the IDOBRU terms get the right href, but the IDO terms don't.
To minimized which ontologies MUST use rdfs:isDefinedBy, I suggest that ontobee compute "o" from the IRI. In the case of IDOBRU, which will use rdfs:isDefinedBy, the SPARQL check will find it and fix "o". If we had the default the other way, then both IDO and IDOBRU would both need to implement rdfs:isDefinedBy.
If any of this isn't clear I can do a short teleconference to clarify and answer questions.
-Alan
ps. If there is any performance worry, the following optimization can be made.
do a query for all rdfs:definedBy assertions where the target is not the one that would be computed by default.
Save these in a hash
Instead of using SPARQL to probe for the refs:isDefinedBy assertion, consult that hash.
Thus far Oliver has edited it and tried to incorporate more information about Ontobee's history as discussed privately among the contributors. However, the current history is too long and gives too much information for most users, suggests conflict and there is not currently consensus on what its content should be.
However, the URIs resolve...?
This probably involves two things
From http://purl.obolibrary.org/obo/geo.owl
Thanks,
Melanie
In order to make the generated HTML be more useful for other projects, and to give us more room to allow different projects more room to distinguish their page, the current HTML generation should be factored so that css controls the display of any element that is possibly can. This would allow us to provide a service for groups that want to incorporate some of the browser display, as well as allow user-customized css to work.
Clicking on any term at http://www.ontobee.org/browser/index.php?o=OBI yields:
We are sorry that your request did not return any expected result. Here is a list of possible reasons:
Your requested term has been deprecated
The ontology that contains the term has not been updated
Whoops! Our program has an unhandled and unexpected error in processing your request.
If you think that you reached this page in error, or you have any request or concern, you may contact us by:
Raise the issue in the Ontobee-discuss Google Group (Note: Recommended if you want fastest reply):
Leave a message at https://groups.google.com/forum/#!forum/ontobee-discuss, or
Directly send an email to: [email protected]
Note: You are welcome to join the group, and it is open to everyone:-)
Submit a bug report or request a new feature at: https://sourceforge.net/p/ontobee/feature-requests/
For OBO Foundry related questions, contact: http://code.google.com/p/obo-foundry-operations-committee/
Email Oliver He at:
Thank you.
Just now search didn't work, nor access of a term (i tried several) e.g. http://purl.obolibrary.org/obo/OBI_0000094
Text given
Term Not Found
We are sorry that your request did not return any expected result. Here is a list of possible reasons:
Your requested term has been deprecated
The ontology that contains the term has not been updated
Whoops! Our program has an unhandled and unexpected error in processing your request.
If you think that you reached this page in error, or you have any request or concern, you may contact us by:
Raise the issue in the Ontobee-discuss Google Group (Note: Recommended if you want fastest reply):
Leave a message at https://groups.google.com/forum/#!forum/ontobee-discuss, or
Directly send an email to: [email protected]
Note: You are welcome to join the group, and it is open to everyone:-)
Submit a bug report or request a new feature at: https://sourceforge.net/p/ontobee/feature-requests/
For OBO Foundry related questions, contact: http://code.google.com/p/obo-foundry-operations-committee/
Email Oliver He at:
Thank you.
E.g. http://purl.obolibrary.org/obo/IAO_0000227 "terms merged" doesn't show it's parent 'has obsolescence reason' .
Also uses in this ontology is not shown. For example http://purl.obolibrary.org/obo/IAO_0000103 'failed exploratory term' has a number of uses among the obsolete terms in OBI.
Go to OBI, search for "conclusion". Click on the result with label "conclusion". Bang!
The IDO homepage on Ontobee (http://www.ontobee.org/browser/index.php?o=IDO) has a spelling error in one of the top level terms (at the bottom of the page): the 'p' is missing from 'pathogenic disposition'.
The term is correctly spelled in the 'pathogenic disposition' page (http://www.ontobee.org/browser/rdf.php?o=IDO&iri=http://purl.obolibrary.org/obo/IDO_0000450).
See. e.g.
http://www.ontobee.org/browser/rdf.php?o=PR&iri=http://purl.obolibrary.org/obo/PR_000027274
only_in_taxon some Mus musculus
has_component some ?????
has_component some ?????
Toll-like receptor 2-Toll-like receptor 6 protein complex
Write a D3 widget that shows each prefix/ontology as a node, with edges A->B where A imports or uses a class defined in B, and the strength of edge determined by number of reused classes
See https://sourceforge.net/p/identifiers-org/new-collection/16/
Due to the obolibrary ID scheme which replaces ':'s with '_'s, identifiers.org cannot plug in ontobee as a resolver for uberon, cl, etc which is unfortunate.
Judging by Nick's response, if ontobee can implement a resolution service such that standard colon-separated IDs are used to redirect to the purl then we can plug in ontobee.
This could be formalized via some kind of shared json-ld context file with entries like
UBERON: "http://purl.obolibrary.org/obo/UBERON_"
Making UBERON:0007225 a valid curie for http://purl.obolibrary.org/obo/UBERON_0007225
E.g.
These should show isDeprecated=true
ideally deprecated classes would be clearly visually indicated
http://purl.obolibrary.org/obo/UBERON_0005562
has GCIs in the OWL but these aren't visible in OB
See the screenshot here taken from Protege 5 that shows a good way of displaying these:
https://github.com/obophenotype/uberon/wiki/Evolutionary-variability-GCIs
What features does the triple store require? What happens when an ontology is updated? Are there specific indices that need to be built? Does the Ontobee server need to be shut down during update or is it safe to do updates while it is running.
Click on "entity (root class)" at the bottom of
http://www.ontobee.org/browser/index.php?o=OGMS
Could we add the ability to search for synonyms when searching ontologies in Ontobee?
http://www.ontobee.org/browser/rdf.php?o=GO&iri=http://purl.obolibrary.org/obo/GO_0002185
GO_1990234 should be part of the ontology
The only ontologies sanctioned to use the namespace
http;//purl.obolibrary.org/obo/xxx
are those where xxx are listed in an id tag
https://code.google.com/p/obo-registry/source/browse/trunk/metadata/ontologies.txt
ontobee should generate a 404 for any request that is not using a registered namespace.
Later we will likely put in technical mechanisms that prevent these from being redirected in the first place.
This is triggered by working on https://code.google.com/p/obo-foundry-operations-committee/issues/detail?id=137 and noticing that they use ids like ARG_xxxxxx
However I notice that ICO is also doing that. It should also not appear on ontobee until the namespace is registered.
In rdf.php
we see
$strOutput = curl_post_contents("http://141.211.109.48:8080/Ontobee/Reformat.jsp", array("ifile"=>$strOutput));
Code implementing the web service should be added to the project and documented, and the hard coded web site for the service should be changed into a configuration parameter.
Term Not Found
We are sorry that your request did not return any expected result. Here is a list of possible reasons:
--> Your requested term has been deprecated
This should never happen, since OBO says we obsolete by marking not removal. However, if we say this it should only be in the case that it has been removed, which could be detected if ontobee kept track of URIs present at the release.
-> The ontology that contains the term has not been updated
How would this general an error? Do you mean that the term might be too new?
-> Whoops! Our program has an unhandled and unexpected error in processing your request.
If you think that you reached this page in error, or you have any request or concern, you may contact us by:
We ought to be able to tell the difference between a whoops and a missing term.
In the below there are too many choices, and some of the information is out of date. There should be a pointer to the Github site with a Readme.md that gives all this information and pointers, and a separate hyperlink to where to submit issues - somewhere that doesn't require a use/password. Or perhaps have a bug submission form on the error page which adds issues recorded there to the issue list.
The goal is to make it super-easy to file a report, since otherwise many people won't.
Raise the issue in the Ontobee-discuss Google Group (Note: Recommended if you want fastest reply):
Leave a message at https://groups.google.com/forum/#!forum/ontobee-discuss, or
Directly send an email to: [email protected]
Note: You are welcome to join the group, and it is open to everyone:-)
Submit a bug report or request a new feature at: https://sourceforge.net/p/ontobee/feature-requests/
-> For OBO Foundry related questions, contact: http://code.google.com/p/obo-foundry-operations-committee/
I'm not sure this belongs here specifically. It's in the banner of every page anyways.
The triple store, as I understand it, is arranged with a named graph for each ontology and all of its imports.
We need to document the conventions used for the naming of the graphs and any other specifics needed so that the SPARQL queries Ontobee uses will work, as setting the triple store up would be an essential piece of deploying another Ontobee installation.
See for example http://purl.obolibrary.org/obo/IAO_0000224 which should be of type: subset (http://www.geneontology.org/formats/oboInOwl#Subset)
Dear OntoBee team,
Some of ENVO's obsolete classes are retrieved in the general search, but it's not really made clear that they are obsolete.
For example:
`
<owl:Class rdf:about="http://purl.obolibrary.org/obo/ENVO_00002993">
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Tropical humid forests</rdfs:label>
<oboInOwl:hasOBONamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ENVO</oboInOwl:hasOBONamespace>
<oboInOwl:id rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ENVO:00002993</oboInOwl:id>
<oboInOwl:consider rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ENVO:01000228</oboInOwl:consider>
<owl:deprecated rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</owl:deprecated>
</owl:Class>
`
Perhaps checking for owl:deprecated boolean = true or the presence of consider or replaced by annotation properties may be a good way to filter these.
See http://purl.obolibrary.org/obo/CL_0000895
CL_0000624
lacks_plasma_membrane_part some PR_000001380
has_low_plasma_membrane_amount some PR_000001307
RO_0002202 some CL_0002436
RO_0002104 some PR_000001203
CL_0000898
has_high_plasma_membrane_amount some PR_000001318
RO_0002104 some PR_000001015
RO_0002104 some PR_000001869
GO does not show up on entry page
Only 20k classes loaded, many missing eg
http://purl.obolibrary.org/obo/GO_2001317
VTO has been update since the version shown in Ontobee. Could you please load the latest from here?
http://purl.obolibrary.org/obo/vto.owl
As of today, the latest version IRI is http://purl.obolibrary.org/obo/vto/2015-7-30/vto.owl
Thank you,
Jim
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.