Discussion List Archives

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

[ddlm-group] Adding 'missing' to dREL

  • To: ddlm-group <ddlm-group@iucr.org>
  • Subject: [ddlm-group] Adding 'missing' to dREL
  • From: James Hester <jamesrhester@gmail.com>
  • Date: Fri, 8 Feb 2019 11:33:20 +1100
  • DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;h=mime-version:reply-to:from:date:message-id:subject:to;bh=poGUNvtMz50350wFSovQcuQi5N/yE/CXyVyluZh6F/Y=;b=jzJBef9Upc7IbevOPcbO6VMs8tWNVAOYBqHc5M7gdcfgO0UkfHWWsdddCO/VJesd/O22leuXBpYFX192f1qHPWGK9zUJ074cU2g0ZpynqFjfQg4u4V17uApizd2iWRhGbGwn7spAgFVms2e+Pmx+DRPeFznq+GbC9yWlrXjoTboHKJKSjDI9QKafPTd2k7yHRmEQgb+MbZ2/q7ztEngdB2xVDAs7l2lygaZwzRqZjUjjmO2rwZI1ZYj5mSi1mO5tNQ8QETyBzfeSvPuLyYGyFAr6UcLPq0koi7gyF7gWsGlkUy4yKgPnbsbzEQlYH/bGZqHyyDJQXei//LRJb4Wohw==
Dear All,

Here is a short proposal on adding the concept of missing and null data names to dREL.


 It is suggested that NULL values are added as keyword 'NULL' to dREL, and an 'ismissing' built-in function is defined.


CIF syntax allows for NULL (period character) and MISSING (question mark character) as legitimate values in a data file, but these are not accessible in dREL.

(1) Null. Represents a distinct data value that is not applicable or otherwise to be ignored.  Dictionary definitions should (must?) indicate what the specific meaning of 'NULL' is in the context of
the definition.  To avoid debate around how exactly NULL might behave mathematically and logically, I propose that dREL provides a NULL symbol, and this symbol may only appear in equality tests. 
dREL methods then have flexibility in how they deal with Null after testing for its presence, whether that be by assigning appropriate values (e.g. 0), or skipping, or choosing a default value.

(2) Missing. The data value is unknown but knowable in principle, so could be any allowed value. In the dREL context, it is not useful to assign missing to
a data name, because the only data name to which anything can be assigned in a dREL method is the defined data name, and the dREL method is making an
affirmative statement about how values of that data name can be determined.  Therefore, if missing should not be assigned, there is no point it appearing as a literal in calculations
(which will yield missing as soon as a missing value is involved). The only sensible use appears to be as part of a test: "if (ismissing(_cell.length_a)) ...".  Note that
we can't even write "if _cell.length_a == missing" as "missing == missing" is neither true nor false in general, because the actual but unknown values might match.
Therefore it would seem that there is no need for an explicit "missing" symbol in dREL. 

Of course the dREL engine may determine that data values are missing, and may choose to propagate these missing values in calculations to end up with a missing value for the target data name.
This is different to inserting a literal missing character into a dREL method, as in the latter case the method itself is claiming that it doesn't know the value of some constant in the calculation.

T +61 (02) 9717 9907
F +61 (02) 9717 3145
M +61 (04) 0249 4148
ddlm-group mailing list

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.