-
Notifications
You must be signed in to change notification settings - Fork 5
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
Explore relationship between templates and RDF Shapes/ShEx #51
Comments
We will make this the topic of our next ODK call. I must admit that I lack background to really understand what your are proposing here, but I generally want to start using shapes for the phenotype reconciliation effort soon so it makes sense to coordinate with GO and DOSDP. |
Makes sense. This was, of course, one of the motivating use-cases for DOSDPs in the first palce - see instance_graph spec on DOSDP-schema. |
Interesting, I didn't know you were already considering using shapes.
…On Tue, Nov 12, 2019, 23:13 Nico Matentzoglu ***@***.***> wrote:
We will make this the topic of our next ODK call. I must admit that I lack
background to really understand what your are proposing here, but I
generally want to start using shapes for the phenotype reconciliation
effort soon so it makes sense to coordinate with GO and DOSDP.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#51?email_source=notifications&email_token=AAAMMOLUBRKD6AKBQTEFKADQTOSKLA5CNFSM4JMJJUHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5D7TY#issuecomment-553271247>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAMMONVWLGNKAXXMEUBEDDQTOSKLANCNFSM4JMJJUHA>
.
|
May only be of historical interest, but spec here: & here: @balhoff - did you ever get around to wirting code for this. Think we discussed it at the time. |
This is quite interesting. I'm a little lost on details. I think you are proposing t-shex to be be the ground truth ... right? |
Correct
Correct (of course there may be a bootstrapping and synchronization step where we iterate with the reverse) And to be clear "t-shex" is nothing more than standard shex with some conventions as to how it is annotated (hmm, can we model that in shex itself, that's the kind of meta question @hsolbrig loves) |
Ok. So you are proposing to use t-shex to generate data by translating the t-shex into dosdp, and then the dosdp to OWL/RDF? |
This is possibly the most expedient path.
But note that t-shex->dosdp is compilation/translation
There isn't really a dosdp->owl translation as such. The dosdp specifies
how to translate tuples/rows to OWL.
…On Thu, Nov 14, 2019 at 11:32 AM Bill Duncan ***@***.***> wrote:
Ok. So you are proposing to use t-shex to generate data by translating the
t-shex into dosdp, and then the dosdp to OWL/RDF?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#51?email_source=notifications&email_token=AAAMMOPUAR2QT5TEGH5IZ6TQTWRTNA5CNFSM4JMJJUHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEDAQ6I#issuecomment-554043513>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAMMOPZ2EZ73BTTABPXXSLQTWRTNANCNFSM4JMJJUHA>
.
|
I think this appraoch is fine if you're willing to limit design pattern expressivity: patterns entirely EquivalentClass with no nested class expressions. The one case where I think this would be a loss for GO is GCIs used to align branches. e.g. I still think patterns with GCIs are the best way to align CC organization/assembly/dissasembly in BP with the CC heirarchy. IIRC, I even wrote patterns for this. |
Think this approach has the advantage that it should be reasonably transparent to those used to building GO-CAM models in a way that perhaps DOSDPs have failed to be. OTOH - isn't there a danger that it will result in unsafe patterns - that apply to some broad subset of cases but cause misclassification outside of these? To prevent this I think you'd still need a strong editorial step between deriving DOSDPs derived from ShEx patterns and implementing them in the ontology. |
Do you still have those GCI examples? I don't see in the current ones: https://github.com/geneontology/go-ontology/blob/master/src/design_patterns/cc_disassembly.yaml My so far vague thoughts are that we can always bring across any aspect of dosdps into t-shex annotations, and just treat as an alternate syntax for dosdps. But this isn't ideal if we want to embrace the abox shape as being the 'source of truth', we end up mixing the two in a slightly redundant way I think the GCIs might be expressible in a more abox-centric way that can then be autogeneralized to tboxes, but this remains to be determined.
would this be in the tbox generalization step? Quite possibly, need to think of some examples.. |
See https://github.com/geneontology/go-ontology/blob/master/src/design_patterns/cc_organization.yaml#L49 |
Another possibility here is to build this in to biolinkml yaml, cc @hsolbrig https://github.com/biolink/biolinkml -- note completely independent of biolink itself A related ticket: https://github.com/biolink/biolinkml/issues/128
with equivalence/logdef pattern inferred automatically for GCIs, how about just specifying these directly as abox rules and inferring a SPARQL update? e.g.
there is a deterministic translation of this structure to an ugly sparql tbox update command |
Thinking more about using the abox representation as primary (and using something like uml or biolinkml or shex) with derivations of tbox equiv axioms, @matentzn posed the question of what to do about complex patterns where the desired tbox expression employs nesting I would do this through simple composition of standard class definitions e.g for subq case, we may have
this constrains the shape of aboxes and gives string gen/parse. E.g. "morphology of patient123s left femur". the shape of tboxes follows directly from this, together with patterns for equivalence axioms, no need for writing owl in macros. |
Here is an example of using biolinkml as a template language for a chemical ontology: https://github.com/cmungall/chemistry-ontology |
There are similarities and differences in semantics and use cases between templates (dosdps, robot, ottr) and shapes (shex, shacl).
We should explore these and formalize the linkages, and possibly even explore if there is a possible subsuming framework.
Some background: This is being driven in part by the go-shapes schema which is used to validate GO-CAMs but is increasingly becoming a general source of all truth about GO. Originally we had shapes only for obo-core level classes such as BiologicalProcess, CellComponent. But we are seeing the need for deeper subclasses; eg a transport subclass that we can parameterize with start-location and end-location.
This is obviously partly duplicative with the dosdp templates for go. This is not super-satisfying. Aside from duplication of effort, the worst effect is duplication of mindshare and confusion over not having one source of truth.
A current very rough proposal:
E.g.
no need for an equiv axiom generator: all the information is in the abox pattern
You could feed this either tuples (with optional fillers) or actual subgraphs, in order to do class generation
I am also assuming in the future many tools for doing things like driving form interfaces from shex/shacl (which are partly interconvertible)
I think there are many advantages to doing this for GO. We are becoming more abox-based. A lot of the standard tooling in ShEx is really nice, and it's a widely adopted standard.
This could just be creating busy work for other uses of dosdps, e.g. they have been phenomenally successful for phenotype reconciliation.
The counterpoint to all of this is skepticism about finding the One True Framework to bind them all (biolinkml?)
See Also
cc
@vanaukenk @dosumis @matentzn @balhoff @goodb @ukemi @jamesaoverton @beckyjackson
The text was updated successfully, but these errors were encountered: