[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Reply to: [list | sender only]
[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.
Summary
=======
It is suggested that NULL values are added as keyword 'NULL' to dREL, and an 'ismissing' built-in function is defined.
Explanation
=========
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.
Thoughts?
-- T +61 (02) 9717 9907
F +61 (02) 9717 3145
M +61 (04) 0249 4148
F +61 (02) 9717 3145
M +61 (04) 0249 4148
_______________________________________________ ddlm-group mailing list ddlm-group@iucr.org http://mailman.iucr.org/cgi-bin/mailman/listinfo/ddlm-group
Reply to: [list | sender only]
- Prev by Date: [ddlm-group] Improving the enumeration_range definition.
- Next by Date: Re: [ddlm-group] Clarifying semantics of _type.purpose 'Key'
- Prev by thread: Re: [ddlm-group] Adding a DDLm attribute for uniqueness
- Next by thread: [ddlm-group] Improving the enumeration_range definition.
- Index(es):