Discussion List Archives

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

proposed revisions

As we agreed at the workshop last year, I have been working on adding ascii
hooks to Paul Ellis's API.  Paul did a very nice job of setting up the API
for "binary strings" which makes binary CBF files map quite directly to
MIME-encoded, true ASCII CIFs.  Doing this would require some changes to
John Westbrook's proposed cbfext dictionary.  You can find a proposed
revised draft of the dictionary to accommodate binary strings in a CBF and
MIME-encoded binary strings in an imgCIF at:

   http://www.bernstein-plus-sons.com/software/CBF/xcbfext97.html

The major changes are as follows:

     +  Added binary type, which is a text field containing a variant on
      MIME encoded data.

This means that there would be a new data type which is a variant of a text
field, i.e. a field which begins and ends with "\n;".  Before somebody
notices that you can't have binary data in a CIF, please note that in an
imgCIF this would be the type for  the _ascii_ representation (whence the
MIME encoding) of the binary data you would see in a CBF, just as "1.43e5"
is a perfectly nice example of a "float" data type giving a character
string which actually represents a rather messy binary bit pattern.

   +  Changed type of _array_data.data to binary and specified internal
      structure of raw binary data.

The internal structure is just the layout given by Paul's API, adjusted a
little to use normal MIME boundary flags, and to allow for MIME headers.

   +  Added _array_data.binary_id, and made
      _diffrn_frame_data.binary_id and _array_intensities.binary_id
      into pointers to this item.

This is a minor technical issue.  Originally, the binary ID was supposed to
provide the link between the information in a CBF ascii header and
particular chunks of data in the binary section.  With binary strings, this
is not strictly necessary, since we could just make distinct array.id's and
keep track of which chunk of binary data was which positionally.  However,
John did some nice work on diffrn_frame_data, with a binary ID there, to
keep track of which frame was which.  My suggestion is to combine the
original concept with John's, and allow  _any_ block of array_data binary
information to be identified by an additional binary ID, if desired.  So I
promoted the binary_id into array_data, and made the one in dffrn_frame
into a pointer.  Just for the sake of completeness, I added a similar
pointer in array_intensities, to allow for sets
of intensity parameters to vary with each chunk of data, if desired.

I know this does not make make much sense without examples and a lot more
documentation.  I'm working on it (i.e. more complete and accurate examples
in the dictionary and revisions of Andy Hammersley's and Paul Ellis's
documentation), but thought the dictionary mavens might like to take pot
shots at this while I'm working on the rest.

  Have fun.

  -- Herbert


=====================================================
****                BERNSTEIN + SONS
*   *       INFORMATION SYSTEMS CONSULTANTS
****     P.O. BOX 177, BELLPORT, NY 11713-0177
*   * ***
**** *            Herbert J. Bernstein
  *   ***     yaya@bernstein-plus-sons.com
 ***     *
  *   *** 1-516-286-1339    FAX: 1-516-286-1999
=====================================================



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.