-
Notifications
You must be signed in to change notification settings - Fork 30
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
WIP: reorganization of owl files to streamline repo for import as submodule #450
base: master
Are you sure you want to change the base?
Conversation
One question on this organization is: what happens if two different ontologies import different parts of a base ontology (and that are now in separate files)? For example, what if Results and Experiment use a set of terms from sio.owl that are non- or only partially-intersecting? Do you have an sio.owl file that contains all of the terms that are used in the union of the two? I realize that the relevant NIDM file would only have references to the terms imported for that ontology, but this seems less clean than having dedicated imports for each part of NIDM. |
@khelm - yes the idea would be a single sio import containing terms required by any sub ontology. i thought about separate imports, but i think having a consistent single file for external imports is perhaps reasonable at this point since we are likely to move to importing a single nidm.owl instead of any of the sub-nidm owl files in general. once i hear back about why we have ttl files when the import says owl, i will combine the files into a single file. |
We should also discuss the question of when we do the merging as Experiment, and it looks like Results, are currently in very active development and, I think at this stage, a single file it will be much harder to work on. We also have to carefully plan the merging so that the resulting graph is consistent and makes sense. |
@khelm - merges will happen at releases and through the python and javascript libraries. they won't happen continuously. |
@khelm - perhaps linking terms can go into nidm.owl |
@satra - that makes sense to me. |
@cmaumet - can you please clarify the ttl/owl imports? |
@satra: the import owl files are serialized in turtle. Is that not good? |
@cmaumet - all these imports point to an owl file extension, but only a few are owl files the rest are ttl files. |
@satra - I see! The matching between those purl URLs and the actual ttl files is done in the catalog file: https://github.com/incf-nidash/nidm-specs/blob/master/nidm/nidm-results/terms/catalog-v001.xml#L3-L11 (that is read and interpreted correctly by Protege). Does that help? |
thanks @cmaumet - how do you think we should organize? it may still be useful for protege to be able to read in that ontology folder. |
@satra - if we keep the imports subfolders and the catalog files, Protege should still be able to read in the ontology files. |
* upstream/master: python scripts/refresh.py Update link to build status: nidm > nidm-specs remove fMRI design type terms from create_expe_specification.py and add add back alphanumeric IDs try to resolve errors with terms that have a nidm ID cleanup create_expe_specifications.py update create_expe_specifications.py with current terms
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @satra,
Here are a few suggestions:
- For simplicity, could we directly have the owl files inside "ontology" rather than in subfolders ("ontology/experiment" and "ontology/results")? The Protege catalog files could be merged and moved to "ontology" as well.
- To make each ontology file as short as possible (and therefore more easily understandable), could we avoid merging the import files and rather use a suffix to mention which ontology file use the import, e.g. iao_import_results?
The tests need to be updated to match with the new structure (currently tests are failing).
If the goal is still to streamline repo for import as submodule, there are also other files that we will have to reorganize, open questions for NIDM-Results:
- what shall we do of all the examples that are created and stored under "nidm-results/terms/examples" and then linked to in the owl files, e.g. https://github.com/incf-nidash/nidm-specs/blob/master/nidm/nidm-results/terms/nidm-results.owl#L3339?
- What do we do with the bigger examples, e.g. https://github.com/incf-nidash/nidm-specs/tree/master/nidm/nidm-results/spm/example001
- Where do we store the queries?
If we move queries and examples to other repos, how will we handle versioning, e.g. linking a particular set of examples/queries with a given version of the specs? What is your vision on this?
Hi @cmaumet - Could you please explain a bit more what you mean by
Also, if imports from the same ontology are used in different NIDM ontologies, how do we distinguish? Will we just have separate files named something like |
@khelm, my suggestion was to move the import files as follows:
And then in The rationale was that if one component, e.g. NIDM-Results, needs a lot of external terms from a given ontoly (e.g. OBI), then people working on other components, e.g. NIDM-Experiment, would not see those terms. This is in an effort to reduce the complexity for someone new, trying to understand and jump in the development of one of the components. @khelm, @satra: what do you think? |
Yes, that sounds good (and what I was trying to ask except for my cut and paste error above...) |
@cmaumet - take a look now? |
@satra - sorry I did not have time to review today... But will do soon! In the meantime, can you solve the test failure? How about answers to my comments above? |
The I'm ok with having: I notice that in the |
@cmaumet, @khelm, @dbkeator - please take a look
todo (before merge):