Discussion List Archives

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

[ddlm-group] Managing deprecation in DDLm

  • To: ddlm-group <ddlm-group@iucr.org>
  • Subject: [ddlm-group] Managing deprecation in DDLm
  • From: James Hester <jamesrhester@gmail.com>
  • Date: Fri, 28 Apr 2017 11:11:36 +1000
  • DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;h=mime-version:from:date:message-id:subject:to;bh=AL//HR6MYYn0WFrfxqpTSY9dQNEx6GX8UqDfU+enJ3w=;b=iLbSjdsYR0hBd24kXKoS1dgTiT8mLH9L5AOqaMu6iVwY0qjxOcAz1nW6sOQNIJXkr+jJcxO0crMyBZ5wURG98uwg2UaFJW99XIhaW0w7hBBq/mKmOK91XsL+PhDkEt12vaoV6YlChwHhIuuiY1IThT+K2ty20gNzodrTXCci5Tf2lteooEuZgkPtZs+p/AsTHkTYqlvp2tDvx2hEq6M5C+jniJ5ix5clBOEHz/bSCjqjbf2nOxxFlz9JBL8BZXIwQI0VlQdlwpK9Sjp3iOnGpZDmnQRkRBrNrk3ytaqcEocrxxWdg9RLs4r6uBtnfdS15XMEoi78stFMPVVPg0vFCQ==
Dear DDLm-group,

In the case of direct dataname equivalents, '_alias.deprecation_date' is suitable as a way of flagging deprecation.  However, if there is no one-for-one substitution, there is no easy way to deal with deprecation. For example, on the cif_core discussion list we have been talking about how to deprecate _cell_symmetry_setting, which has no direct equivalent in the new core dictionary.  Having no equivalent clearly requires that we keep the dataname in the dictionary in order to interpret legacy files. For such definitions, it would be good to (i) have an attribute that directly flags deprecation (ii) where an algorithm exists to convert values to an alternative dataname (e.g. unit conversion), that this algorithm could be specified. While such deprecation happens very rarely, it would seem prudent to allow for occasional mistakes in dataname definition. 

Note that in DDL2 the _item_related.function_code dataname has values that indicate deprecation (Vol G table and conversion by multiplication: "replaces", "replacedby", "conversion_constant", "conversion_arbitrary".  This is not a particularly good match for us, as simple replacement is already accomplished by aliases, and simple constant multiplication is not always sufficient.  We also have dREL at our disposal for describing arbitrary transformations.

I propose the following:
(i) a new DDLm attribute '_definition.replaced_by' which would have the value of a dataname that should be used instead (or default value 'None').
(ii) a new DDLm '_method.purpose' tag 'FromDeprecated' which could be used in the definition of the dataname that replaces the deprecated definition. The method associated with this purpose would calculate the value of the new dataname from the old dataname (and any other datanames that are necessary).

Does this scheme seem reasonable to you?  If so, I will work up a proper definition.

all the best,

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.