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

Update namespace #42

Merged
merged 3 commits into from
Aug 18, 2021
Merged

Update namespace #42

merged 3 commits into from
Aug 18, 2021

Conversation

CasperWA
Copy link
Contributor

Through some iterations here, I have updated the ontology files in the ontology/ folder.

I started out by updating the cif.ttl file to be a pre-cursor for a "one-stop-shop"-CIF ontology. I.e., one that imports all cif_*.ttl files, excluding cif_top.ttl, since this will be imported implicitly.
However, I've come to the conclusion that this is not feasible due to potential version differences in the cif_*.ttl files concerning cif_top.ttl.

So instead we now just have cif_top.ttl and cif_core.ttl.
I've also removed the crystallography.ttl file, but will recreate it in the emmo-repo/domain-crystallography repository.

Question: Was the point of dic2owl/generate_cif.py that we don't actually create cif_core.ttl, but rather generate it (and others) on-the-fly for the gh-pages branch?

I noted that there also is a big difference in syntax between the generated OWL Turtle file using dic2owl/generate_cif.py and if one loads the generated .ttl-file and re-saves it as a Turtle file. Is the syntax not actually Turtle for the generated ontology file?

Copy link
Collaborator

@jesper-friis jesper-friis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for this late review. Just two questions

  • is there a good reason to remove the example?
  • do we really want to keep the generated cif_core.ttl in the repo? It has the potential to introduce a lot of diffs for even small changes in the source, making the repo large and slow to work with

<uri name="http://emmo.info/domain-crystallography/cif_top" uri="cif_top.ttl"/>
<uri name="http://emmo.info/domain-crystallography/0.0.1/cif_top" uri="cif_top.ttl"/>
<uri name="http://emmo.info/domain-crystallography/0.0.1/cif_core" uri="cif_core.ttl"/>
<uri name="http://emmo.info/domain-crystallography/0.0.1/cif_example" uri="cif_example.ttl"/>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the example nice to keep?

@CasperWA
Copy link
Contributor Author

Sorry for this late review. Just two questions

  • is there a good reason to remove the example?

No. Nothing other than cleaning up.
If you want to keep it, we keep it.

  • do we really want to keep the generated cif_core.ttl in the repo? It has the potential to introduce a lot of diffs for even small changes in the source, making the repo large and slow to work with

This point is what I referred to in the original post as well. I am unsure. If we can work with generating it locally for everyone, then that should be fine?

@sauliusg
Copy link
Contributor

  • is there a good reason to remove the example?

  • do we really want to keep the generated cif_core.ttl in the repo?

I would vote for keeping both example and the generated file. The main information in this repo is the *.ttl file, the scripts generating it are auxiliary. Also, I have some problems running Python code (compatibility, library dependencies), and there is always a question whether the *.ttl file generated on different machines is the same (different Python version/libraries might be incompatible).

It has the potential to introduce a lot of diffs for even small changes in the source, making the repo large and slow to work with

This is indeed a nuisance, although Subversion handles such situations just fine, and I would be surprised if Git does not.
To make sure that only significant changes come out in diffs, can we sort the *.ttl file in lexicographic order and keep it such way, and also keep UUIDs stable, once assigned? The diffs the would be small and informative IMHO.

CasperWA and others added 3 commits August 18, 2021 10:45
Change namespace from domain-crystallography to CIF-ontology.

Update `cif.ttl` to be a "one-stop-shop" ontology for all things CIF.
This means it imports all `cif_*.ttl` files, except `cif_top.ttl`,
which is imported indirectly through the others.
The reason is that the version of the CIF top ontology cannot be
uniquely defined for all subsequent imports of CIF_*.ttl files.
Say, for example, `cif_core.dic` uses v1.0.0 of `cif_top.ttl` and
`cif_sym.ttl` uses v0.9.5 of `cif_top.ttl` (or similar), the `cif.ttl`
file cannot handle this and import both ontologies. Or rather, there is
a high possibility that these two versions cannot be accommodated at the
same time.
@CasperWA CasperWA changed the title Ontology file hierarchy Update namespace Aug 18, 2021
@CasperWA
Copy link
Contributor Author

The major changes introduced in #50 have rendered the majority of this PR redundant.
Instead, this PR now only updates the namespace where applicable and updates the .gitignore file to be more general.

@CasperWA CasperWA merged commit eb552bd into main Aug 18, 2021
@CasperWA CasperWA deleted the ontology-file-hierarchy branch August 18, 2021 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants