Discussion List Archives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CIF-JSON draft 2017-05-15

Hi Bob,

It is true that all data names will start with an underscore, and therefore any other JSON name in the data block will be available for custom uses.  However, if we do not reserve some subset of those non-underscore names, we are allowing CIF-JSON users complete freedom to add their own custom enhancements. Which is great, except that we cannot ever use *any* of those non-underscore names in future versions of the standard, as those names *might* have been used by somebody, somewhere in some custom enhancement that they've spent lots of time developing. By explicitly reserving the capitalised names, we allow ourselves room for expansion.  If capitalisation is an issue, we can instead reserve all names starting with some symbol (or all symbols).

And I would prefer that we capitalise 'Frames' (or add our reserved symbol), that was an oversight.

James.

On 17 May 2017 at 13:54, Robert Hanson <hansonr@stolaf.edu> wrote:


On Tue, May 16, 2017 at 12:44 AM, James Hester <jamesrhester@gmail.com> wrote:


On 16 May 2017 at 13:51, Robert Hanson <hansonr@stolaf.edu> wrote:
Q: Do I have this right?

(Reserved names). All CIF-JSON top-level names starting with an upper-case letter are reserved for future development.

The draft version says "all names in JSON data blocks" but that is unnecessary, I think. Those have to start with "_" or either "save_" or "frame" depending upon what you want to do with same frames. Right?

No, the idea is indeed that we reserve all capitalised JSON names within data blocks for future expansion, for example, if we wanted to store JSON numbers in 'Numbers' and uncertainties in 'Uncertainties'.  These most naturally belong in the same data block as the item that they refer to. Anything new in the top level we would just store inside 'Metadata'.  CIF-JSON users can then mess around with lower-case JSON names in data blocks for their own custom uses (I think you were talking about annotation, for example).  Of course, reserving "save_*" for save frames is a bit of a wart in this system, especially as "save" would be a likely choice for an adhoc name.


My point is that all data names must start with "_" ("Tag" in CIF1 lingo):

<Tag> '_'{ <NonBlankChar>}+

So who cares about additional data names having capitalization or not? They just don't have to start with "_" -- like the "frames" idea. There was no need to capitalize that. So any item's key in a JSON data block object with a name that does not start with _ must be metadata of some sort -- or some additional CIF-JSON-specific hierarchy such as "frames".

I get it that at the top level you could say all names need to be lower case, because if "data_" is not prepended, then we have no other way to know which ones are block codes and which ones are metadata.

Bob

_______________________________________________
cif-developers mailing list
cif-developers@iucr.org
http://mailman.iucr.org/cgi-bin/mailman/listinfo/cif-developers




--
T +61 (02) 9717 9907
F +61 (02) 9717 3145
M +61 (04) 0249 4148
_______________________________________________
cif-developers mailing list
cif-developers@iucr.org
http://mailman.iucr.org/cgi-bin/mailman/listinfo/cif-developers

Reply to: [list | sender only]
International Union of Crystallography

Scientific Union Member of the International Science Council (admitted 1947). Member of CODATA, the ISC Committee on Data. Partner with UNESCO, the United Nations Educational, Scientific and Cultural Organization in the International Year of Crystallography 2014.

International Science Council Scientific Freedom Policy

The IUCr observes the basic policy of non-discrimination and affirms the right and freedom of scientists to associate in international scientific activity without regard to such factors as ethnic origin, religion, citizenship, language, political stance, gender, sex or age, in accordance with the Statutes of the International Council for Science.