-
Notifications
You must be signed in to change notification settings - Fork 12
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
Class declarations w/out further assertions not in serialization #90
Comments
This is a potentially an issue for my group too. We have been encouraging use of OBOgraphs JSON over OBO as part of external collaborations. We need to be aware of any cases where terms will be lost. Quick question: Is this affecting only bare declarations? Does adding at least one annotation property axiom fix it? |
- Add: Param: --native-uri-stems: A comma-separated list of URI stems that will be used to determine whether a concept is native to the CodeSystem. As of 2023-01-15, there is still a bug in the Obographs spec and/or `robot` where certain nodes are not being converted. This converter adds back the nodes, but to know which ones belong to the CodeSystem itself and are not foreign concepts, this parameter is necessary. OAK also makes use of this parameter. See also: geneontology/obographs#90
- Add: param: --native-uri-stems: A comma-separated list of URI stems that will be used to determine whether a concept is native to the CodeSystem. As of 2023-01-15, there is still a bug in the Obographs spec and/or `robot` where certain nodes are not being converted. This converter adds back the nodes, but to know which ones belong to the CodeSystem itself and are not foreign concepts, this parameter is necessary. OAK also makes use of this parameter. See also: geneontology/obographs#90 - Add: params: --dev-oak-path and --dev-oak-interpreter-path: If you want to use a local development version of OAK, specify these paths.
a second small test ontology
Pipeline:
Results in:
@cmungall can you confirm that the output should be:
|
I think the issue is roughly around this ballpark: Here we check something about Declaration axioms: Maybe its sufficient when you encounter declaration axioms to do:
? |
Yes, I confirm that a node without lbl should be made. Representation should be isomorphic to standard owl serializations as far as possible, fewest surprises. If groups want to filter danglings post-hoc they can do this |
Working on this now. @matentzn's case is sorted, but this leads to lots (all?) of the example cases breaking due to new un-labeled nodes being included, and a more consistently ordered by type, which I suppose is a good thing. For example BEFORE: ---
graphs:
- id: "http://purl.obolibrary.org/obo/test.owl"
meta:
basicPropertyValues:
- pred: "http://www.w3.org/2000/01/rdf-schema#comment"
val: "test manus ontology"
nodes:
- id: "http://purl.obolibrary.org/obo/BFO_0000050"
type: "PROPERTY"
meta:
xrefs:
- val: "BFO:0000050"
basicPropertyValues:
- pred: "http://www.geneontology.org/formats/oboInOwl#shorthand"
val: "part_of"
- id: "http://purl.obolibrary.org/obo/IAO_0000115"
lbl: "definition"
type: "PROPERTY"
- id: "http://purl.obolibrary.org/obo/UBERON_0002101"
lbl: "limb"
type: "CLASS"
- id: "http://purl.obolibrary.org/obo/UBERON_0002102"
lbl: "forelimb"
type: "CLASS"
- id: "http://purl.obolibrary.org/obo/UBERON_0002398"
lbl: "manus"
type: "CLASS"
meta:
definition:
val: "."
- id: "http://purl.obolibrary.org/obo/UBERON_0002470"
lbl: "autopod region"
type: "CLASS"
- id: "http://www.geneontology.org/formats/oboInOwl#hasDbXref"
lbl: "database_cross_reference"
type: "PROPERTY"
- id: "http://www.geneontology.org/formats/oboInOwl#shorthand"
lbl: "shorthand"
type: "PROPERTY"
edges:
- sub: "http://purl.obolibrary.org/obo/UBERON_0002102"
pred: "is_a"
obj: "http://purl.obolibrary.org/obo/UBERON_0002101"
- sub: "http://purl.obolibrary.org/obo/UBERON_0002398"
pred: "is_a"
obj: "http://purl.obolibrary.org/obo/UBERON_0002470"
- sub: "http://purl.obolibrary.org/obo/UBERON_0002398"
pred: "http://purl.obolibrary.org/obo/BFO_0000050"
obj: "http://purl.obolibrary.org/obo/UBERON_0002102"
- sub: "http://purl.obolibrary.org/obo/UBERON_0002470"
pred: "http://purl.obolibrary.org/obo/BFO_0000050"
obj: "http://purl.obolibrary.org/obo/UBERON_0002101" AFTER: ---
graphs:
- id: "http://purl.obolibrary.org/obo/test.owl"
meta:
basicPropertyValues:
- pred: "http://www.w3.org/2000/01/rdf-schema#comment"
val: "test manus ontology"
nodes:
- id: "http://purl.obolibrary.org/obo/UBERON_0002101"
lbl: "limb"
type: "CLASS"
- id: "http://purl.obolibrary.org/obo/UBERON_0002102"
lbl: "forelimb"
type: "CLASS"
- id: "http://purl.obolibrary.org/obo/UBERON_0002398"
lbl: "manus"
type: "CLASS"
meta:
definition:
val: "."
- id: "http://purl.obolibrary.org/obo/UBERON_0002470"
lbl: "autopod region"
type: "CLASS"
- id: "http://purl.obolibrary.org/obo/BFO_0000050"
type: "PROPERTY"
meta:
xrefs:
- val: "BFO:0000050"
basicPropertyValues:
- pred: "http://www.geneontology.org/formats/oboInOwl#shorthand"
val: "part_of"
- id: "http://purl.obolibrary.org/obo/IAO_0000115"
lbl: "definition"
type: "PROPERTY"
- id: "http://www.geneontology.org/formats/oboInOwl#hasDbXref"
lbl: "database_cross_reference"
type: "PROPERTY"
- id: "http://www.geneontology.org/formats/oboInOwl#id"
type: "PROPERTY"
- id: "http://www.geneontology.org/formats/oboInOwl#shorthand"
lbl: "shorthand"
type: "PROPERTY"
- id: "http://www.w3.org/2000/01/rdf-schema#label"
type: "PROPERTY"
edges:
- sub: "http://purl.obolibrary.org/obo/UBERON_0002102"
pred: "is_a"
obj: "http://purl.obolibrary.org/obo/UBERON_0002101"
- sub: "http://purl.obolibrary.org/obo/UBERON_0002398"
pred: "is_a"
obj: "http://purl.obolibrary.org/obo/UBERON_0002470"
- sub: "http://purl.obolibrary.org/obo/UBERON_0002398"
pred: "http://purl.obolibrary.org/obo/BFO_0000050"
obj: "http://purl.obolibrary.org/obo/UBERON_0002102"
- sub: "http://purl.obolibrary.org/obo/UBERON_0002470"
pred: "http://purl.obolibrary.org/obo/BFO_0000050"
obj: "http://purl.obolibrary.org/obo/UBERON_0002101" note that all the AFTER, contains the following additional unlabeled - id: "http://www.geneontology.org/formats/oboInOwl#id"
type: "PROPERTY"
...
- id: "http://www.w3.org/2000/01/rdf-schema#label"
type: "PROPERTY" |
@joeflack4 do these files match your expectations? |
@julesjacobsen This looks great to me! |
This does look great! I will take a closer look when I see the PR with the example cases fixed.. |
@joeflack4 I don't think this will make a difference on the bioontologies implementation. If you upgrade your ROBOT, then it should work! |
Change for geneontology#90 - ensure all declared nodes (CLASS, INDIVIDUAL, PROPERTY) are added even if unlabelled. Change for geneontology#93 - log untranslated axioms to WARN Update examples/ with changes Enable obographs-cli to convert ttl to json and yaml
@cthoyt Oh of course, I forgot, Charlie, that |
Change for #65 - add PropertyType to PROPERTY Nodes Change for #90 - ensure all declared nodes (CLASS, INDIVIDUAL, PROPERTY) are added even if unlabelled. Change for #93 - log untranslated axioms to WARN Update examples/ with changes Update schema/ with changes Enable obographs-cli to convert ttl to json and yaml Update for #103 - remove Guava dependency from core Update Junit to Jupiter 5.0.3 Update version to 0.3.1
@joeflack4 This is part of the new 0.3.1 release |
Thanks so much! |
Overview
Context
I opened an issue in robot, and @matentzn thought I should mirror here (CC @julesjacobsen ).
My team is doing some conversions from OWL -> Obographs JSON -> FHIR JSON, and we noticed that some concepts were missing from the output.
I took a look, and these are all root nodes; they are all
rdfs:subClassOf
owl:Thing
.Edges that reference these nodes exist, but the declaration of the nodes themselves do not. It's not just a FHIR JSON issue. I looked in my Obographs JSON (downloadable here), and the declarations are missing there as well.
I imagine this is an issue for the other ontologies I'm working with, but for this particular ontology,
comploinc.owl
, these are the declarations of the root nodes that are missing from the Obographs JSON:Expected vs Actual
Expected
I would expect to see something like this in my Obographs JSON:
Or maybe something like this, with one or more nulls for missing properties:
Actual
No declarations appear.
Reproducibility
robot
1.9.1 if not already presentWhat I tried
I examined the CLI to see if there was an option dealing with root nodes, but I didn't see anything in
java -jar bin/robot.jar convert -h
that seems like it could help with this.Additional information
In this example, only root nodes (subClassOf owl:Thing) were missing, but in some other ontologies I looked at, there may have been other cases missing. Will update if I have more time to get concrete examples.
Related: ontodev/robot#1082
The text was updated successfully, but these errors were encountered: