Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Navigating ontologies #26

Closed
cboettig opened this issue Oct 17, 2013 · 4 comments
Closed

Navigating ontologies #26

cboettig opened this issue Oct 17, 2013 · 4 comments

Comments

@cboettig
Copy link
Member

Thanks everyone for suggesting various ontologies we can use to start making our R-generated nexml more expressive (partly for my own record, I've compiled a list of those suggested in the issues tracker and replies to my nexml-discuss query below). However, lacking experience in this area, I haven't been very successful at finding the terms I need in these. Often I don't know where to start looking, and clearly not all of these are populated.

For starters, it would be good to have a list of ontologies most commonly used in nexml files, as it would make sense to parse these for R users in cases where their interpretation might not be obvious. I've started with those used by TreeBase (dc, prism, etc), e.g. #25.

Still looking for lots of particular terms, e.g. the open check boxes from issue #21 .

Any suggestions on how to go about discovering a term that I might need?

For example, I can try to skim something like: http://cdao.cvs.sourceforge.net/viewvc/cdao/cdao/OWL/cdao.owl?revision=1.34 for a useful term. e.g., it looks like I might declare the tree to be time calibrated with the term: http://www.evolutionaryontology.org/cdao/1.0/cdao.owl#TimeCalibratedLengthType, but I'm not sure quite how to do that. adding a meta element to every edge element stating the same thing doesn't seem ideal... And scanning the owl file by hand for a term doesn't seem ideal either...


Ontologies mentioned so far:

Ones we include by default (e.g. from TreeBase), which I think I mostly understand pretty well (except for cdao)

"nex"   = "http://www.nexml.org/2009",
"xsi"   = "http://www.w3.org/2001/XMLSchema-instance",
"xml"   = "http://www.w3.org/XML/1998/namespace",
"cdao"  = "http://www.evolutionaryontology.org/cdao/1.0/cdao.owl#",
"xsd"   = "http://www.w3.org/2001/XMLSchema#",
"dc"    = "http://purl.org/dc/elements/1.1/",
"dcterms" = "http://purl.org/dc/terms/",
"prism" = "http://prismstandard.org/namespaces/1.2/basic/",
"cc"    = "http://creativecommons.org/ns#",

Additional ones recently mentioned, which I don't have a good grasp for exactly what kind of terms they provide or how to characterize their intersection...

which also points to:

Darwin core,

Karen suggests: http://opentree.wikispaces.com/NexSON
Rutger mentioned: http://edamontology.org/EDAM.owl

(will continue to update this as my running list)

@hlapp
Copy link
Contributor

hlapp commented Oct 17, 2013

@cboettig a piece of input that ontologies and vocabularies greatly depend on to be (or become) useful is use-cases - for what kinds of things are terms needed but don't seem to readily exist already. This project would be in a great position to provide such input, and I wouldn't expect that process to be one-off but iterative. So if you can document (on a wiki page?) on an on-going basis which terms you feel you need but can't readily locate, that'd be highly useful.

I would expect the great majority of these to fall under the MIAPA ontology:
https://github.com/miapa/miapa/

The ontology is published on the web under a resolving canonical URI:
http://purl.obolibrary.org/obo/miapa.owl

By definition, as an application ontology MIAPA imports (reuses) terms from CDAO, EDAM, SWO, and other ontologies as needed to cover a domain of application, namely annotation of a phylogenetic analysis result (as opposed to a domain knowledge, such as comparative data analysis for CDAO).

The TNRS ontology is published on the web under a resolving canonical URI:
http://phylotastic.org/terms/tnrs.rdf

Is this making sense?

@cboettig
Copy link
Member Author

@hlapp I think I'm getting it. So it sounds like MIAPA can largely be my interface into the other ontologies. I agree 100% on use cases. I hope to develop a few illustrative use cases as part of the vignette/manuscript for this repository (inst/doc/manuscript.Rmd). Maintaining an ongoing collection of these in package examples (inst/examples) or the repository's wiki sounds like a splendid idea.

Some exposition on my current wish-list:

Many of the phylogenetic methods in R that I am familiar with require ultrametric trees. Some of these are time-calibrated using fossils, others just using heuristic methods. It would be most valuable to annotate that a tree has been time-calibrated and what the units (and possible uncertainty, which may be a branch-level annotation) are on the branch lengths. It would also be useful to annotate the method in which a tree has been time-calibrated, as well as the method with which it has been generated. (Imagine a user wants to select from a library of nexml files only those trees produced by MrBayes, or exclude trees generated by phylomatic, or access only truly time calibrated trees). In some cases the mechanism of the calibration might be documented -- e.g. if tree was made ultrametric with the R function 'chronopl', and what parameter value was used for that calibration).

I haven't been able to stumble across the ontological vocabulary for any of this, e.g. one might hope to express this as:

<meta property="phylogeny-from" content="MrBayes" datatype = "xsd:string" xsi:type="LiteralMeta">
<meta href="path/to/Script/for/MrBayes/run" rel="script" xsi:type="ResourceMeta">
<meta property="ultrametric" content="true" datatype = "xsd:boolean" xsi:type="LiteralMeta">
<meta property="calibration-method" content="ape::chronopl" datatype = "xsd:string" xsi:type="LiteralMeta">    
<meta property="calibration-method-parameter" content="lambda" datatype = "xsd:string" xsi:type="LiteralMeta">
<meta property="calibration-method-parameter-value" content="1.2" datatype = "xsd:long" xsi:type="LiteralMeta">

etc etc. Clearly these triples could be much more logically constructed ; but I'm not trying to propose an onotology, just looking for existing terms. Just haven't found them.

I'm not familiar with any handy tool to visualize owl ontologies, but searching the MIAPA ontology.

@hlapp
Copy link
Contributor

hlapp commented Oct 17, 2013

We worked on provenance annotation a lot during the Phylotastic II hackathon. One example in graphical depiction is here: http://www.evoio.org/wiki/File:PetersGraphic.jpg

petersgraphic

The corresponding OWL file is here: https://github.com/miapa/miapa/blob/master/examples/peters_miapa-annotation.owl

One way to navigate OWL files is to use on OWL ontology editor, for example Protege.

For indicating an ultrametric tree, if an ultrametric tree is a subtype of tree, it would be a class in CDAO, and the tree instance in NeXML would instantiate it (rdfs:type).

@cboettig
Copy link
Member Author

@cboettig cboettig added this to the Manuscript examples milestone Mar 25, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants