Comments (5)
I think our modest ambition for the 'alias' attributes is to automatically recognise different variants of a data name, such that software can successfully use aliases interchangeably. Any software-relevant semantic differences would require a new data name to be defined, where we might be tolerant in practice to changes that have no practical effect (such as changing the minimum value from 0 to 1, if we know that nobody has used 0). So, from the point of view of software, the particular version pointed to by the URI shouldn't matter.
Also, it becomes difficult for dictionary writers to make the 'semantically similar' judgement.
I would be in favour therefore of simply pointing to the latest known version that defined the alias, so the wording would be:
Absolute URI of the latest version of the dictionary containing the aliased definition.
from cif_core.
Absolute URI of the latest version of the dictionary containing the aliased definition.
Seems ok to me, I created PR #485 to address this. I will update the draft PR #483 accordingly.
But this also got me thinking, that including the full URI for each alias seems like a significant duplication of data. The same two or three URIs will be repeated in almost all definitions (imagine one of the dictionaries moving to a different location). Would it make sense to (eventually) introduce something like _alias.dictionary_id
<-> ALIAS_DICTIONARY
(id
, uri
, version
, etc.)?
from cif_core.
Would it make sense to (eventually) introduce something like _alias.dictionary_id <-> ALIAS_DICTIONARY (id, uri, version, etc.)?
In theory this would be nice (more normalised as the DB people like to say) but in practice it just means programmers have to write in an extra step of indirection and readers have to scroll around. Global search and replace makes editing multiple entries trivial.
However, even doing it that way, we have created a real workload for ourselves if we are trying to keep up with wwPDB latest version, so we might want to finesse our definition to state that it is "Absolute URI of a version of the dictionary containing the latest version of the aliased definition." so that if the text of the definition doesn't change (which is true for 99% of the PDB definitions that we alias) then we don't have to update our definition either.
from cif_core.
However, even doing it that way, we have created a real workload for ourselves if we are trying to keep up with wwPDB latest version, so we might want to finesse our definition to state that it is "Absolute URI of a version of the dictionary containing the latest version of the aliased definition." so that if the text of the definition doesn't change (which is true for 99% of the PDB definitions that we alias) then we don't have to update our definition either.
I see your point. I would further update the proposed phrasing to: "Absolute URI of a version of the dictionary containing the latest compatible version of the aliased definition.".
But this latest round of discussions also made me realise, that we might not always have URIs for specific dictionary versions (e.g. PDB does does not seem to do that for mmCIF/PDBx dictionaries). I therefore propose the following approach:
- Add a new
_alias.dictionary_version
attribute with the following definition:
A version identifier of the dictionary that includes the latest compatible version of the aliased definition.
- Change the
_alias.dictionary_URI
attribute definition to:
An absolute URI of the dictionary that includes the aliased definition. The URI should preferably point
to a specific version of the dictionary identified by the _alias.dictionary_version attribute, however, a
more general URI, e.g. one that always points to the latest version of the dictionary, can also be provided
when this is not possible.
If you are OK with this approach, I can update PR #482 to reflect these changes. What do you think?
from cif_core.
Yes, I agree with these suggestions.
from cif_core.
Related Issues (20)
- CIF2.0 line termination? HOT 1
- Proposal: split out multi-block-related data items to separate dictionary HOT 8
- Evaluation method of `_atom_site.type_symbol` HOT 3
- CIF2 grammar and `triple-quoted-string` and `quoted-string` HOT 2
- Should the `_audit_update_record` be redefined as a separated category? HOT 1
- Relationship between the `coreCIF` and `symCIF` HOT 2
- Id-like dataname questions? HOT 1
- Inconsistency in `DIFFRN_RADIATION`: `_definition.class` vs `_definition.text`. HOT 1
- [New data item]: Method for indicating the data source for a structure - experimental vs calculated HOT 3
- Description of EXPTL category HOT 1
- Should data names deprecated in DDL1 be deprecated in DDLm? HOT 1
- Add `_alias.dictionary_uri` to aliases where possible HOT 1
- Add list-valued variants of the symmform data names
- Harmonisation of dictionary naming convention HOT 11
- Enumeration range for cell lengths HOT 2
- Data item `_publ_contact_author` should not be an alias of `_publ_contact_author_name` HOT 2
- Need for _refln.id items? HOT 2
- Should density items have the lower enumeration range of 0.0 instead of 0.1?
- Compatibility between DDL2 and DDLm enumeration ranges
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cif_core.