-
Notifications
You must be signed in to change notification settings - Fork 2
local domain & range, storage and semantics #13
Comments
On 12 Jun 2015, at 6:40, David Osumi-Sutherland wrote:
The first one seems more closely aligned with intent, and would be
F)) Or algorithmically:
The second is valid so we can retain it, although this will likely only |
@tonysawfordebi - Any coment on the storage proposal - moving to "multiple statements, each with a URI as a value" ? If we were to make this move, how much notice would you need? Should we file tickets and if so where? |
Tony uses OBO version. Just checked the OBO conversion. It is very clean, so should be straightforward to parse. <owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/RO_0002218">
<go_annotation_extension_relations:local_range rdf:resource="http://purl.obolibrary.org/obo/CL_0000000"/> -> [Typedef] |
@cmungall @hdietze - what GO infrastructure would need to change if we were to store local domain and range as multiple axioms with value = subset URI. Obviously need to round up all dependencies and then decide a time to switch. The other issue is cases where terms used in local_range share labels with other terms. The standard way to deal with this is meant to be via OBO foundry uniquename, e.g. the term 'cell' from WBbt would get the OBO foundry uniquename 'C.elegans cell'. We could hack this together locally for the few terms affected, but it would be much better if this could be done through standard pipelines. (This is, of course, a more general issue that GO would benefit from fixing). |
Generic annotation assertions (such as @dosumis you can go ahead and replace the axioms. |
@dosumis should we create proper IDs for the local_domain/range APs (and map them in the obo using the xref trick?). I think a case could be made for having these in RO (just for centralizing documentation, we wouldn't need to bring them in as part of the module). |
Could do. What's the advantage? My main priority is to make sure the values
|
Robustness. Current translation may be sensitive to original ontology
IRI. But we can cross that bridge when we come to it
|
Got it. In that case, I agree. Should we just use http://www.geneontology.org/formats/oboInOwl# - as for other OBO APs? |
I'd rather not extend this; my thoughts were to add under here: (the def of the root AP has the clarification "The logical expansion can On 7 Jul 2015, at 4:03, David Osumi-Sutherland wrote:
|
Hmmm... Feels wrong to me to use the RO namespace for an AP that is basically a hack for GO (as I see it, we're really just using it to crudely enforce a set of patterns). If you'd rather have a purl, then what about the GOREL namespace? I'd be happy with that as long as we ensure that it lives in the same file as all other GORELs so that we can avoid stomping on IDs ( GORELs already need consolidating #46). |
I'm ok with GOREL |
Also need to understand how this change will look in OBO as @tonysawfordebi still parsing straight from gorel.obo. Pretty sure http://www.geneontology.org/formats/oboInOwl# + readable shortForm could be used withouth affecting OBO, but this will not be the case if we switch to a purl + GOREL namespace. |
Seeems to work. AnnotationProperty: rdfs:label
AnnotationProperty: <http://www.geneontology.org/formats/oboInOwl#shorthand>
AnnotationProperty: <http://purl.obolibrary.org/obo/SCRATCH_0098701>
Annotations:
<http://www.geneontology.org/formats/oboInOwl#shorthand> "local_domain",
rdfs:label "local_domain"@en
Class: <http://purl.obolibrary.org/obo/SCRATCH_0098704>
Annotations:
<http://purl.obolibrary.org/obo/SCRATCH_0098701> <http://purl.obolibrary.org/obo/SCRATCH_0098702>,
rdfs:label "rab"@en
Class: <http://purl.obolibrary.org/obo/SCRATCH_0098702>
Annotations:
rdfs:label "bar"@en
-- > [Term]
id: SCRATCH:0098702
name: bar
[Term]
id: SCRATCH:0098704
name: rab
property_value: local_domain SCRATCH:0098702
Clearly wouldn't roundtrip though, which makes me a bit nervous. Is there any way to have the AP have its own OBO Typedef ? |
Storage
These are currently stored as a space delimited lost of OBO identifier strings. This is horrible to read in any tool and is a pain to maintain. It would be much better if these were maintained as multiple statements, each with a URI as a value. We could then use imports to make sure that labels are displayed in Protege.
What steps would be needed to make this change?
What downsides would there be to it?
(One possible problem is that some terms share names (e.g. many ontologies have a term called cell).
Semantics
In OWL:
R domain D
X R Y => X subClassOf D
To police misuse, we then rely on any assertions of disjointness (or negation if we have it) combined with these inferences => inconsistencies.
Some possible interpretations of local domain and range:
local_domain: D E F
X R Y => X must be an asserted SubClass of (D or E or F) - Throw an error if not? (i.e. closed world interpretation)
X R Y => X subClassOf (D or E or F). To police misuse, we then rely on any assertions of disjointness etc… (although are these as useful given the use of disjunction?)
I would like to add some documentation of the intended meaning to the OWL file these annotation properties live in.
The text was updated successfully, but these errors were encountered: