Discussion List Archives

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

Re: CIF formal specification

On Thu, 3 Mar 2005, Herbert J. Bernstein wrote:

> Re: global_
>
>  1.  The fact is that global_ is a reserved word in STAR so it is not
> a good idea to write CIFs that use global_.  Even if use of global_ in
> the CIF world is deprecated, it is still not a good idea to write
> CIFs that use global_.

Agreed.

>  2.  While I would prefer that we minimize confusion by barring all
> unquoted use of any string that begins with global_ (and loop_ and
> stop_ for that matter), the essential step is not to have unquoted
> global_ strings in a CIF.

Also the best approach. It also simplifies the formal description.

>
> Bottom line:  I like Brian's rewrite of 55.
>
> Re: ordering
>
>  The proposed new wording is not accurate.  There is significance to
> the ordering of data names, but certain reorderings do not change
> the meaning of the CIF. I would suggest the following combined rewrite
> of 7:
>
> 7. A given data name (tag) (see 2.4 and 2.7) may appear no more than
>   once in a given data block or save frame.  A tag may be followed
>   by a single value, or a list of one or more tags may be marked by
>   the preceding reserved case-insensitive word loop_ as the headings
>   of the columns of a table of values.  White space is used to
>   separate a data block or save frame header from the contents of
>   the data block or save frame, and to separate tags, values and
>   the reserved word loop_.  Data items (tags along with their
                               ^^^^^^^^^^
                               This is the correct terminology. Data Items 
are order independent, not data names. This is true whether data items 
appear in a loop or outside of a loop.

>   associated values) that are not presented in a table of values
>   may be relocated along with their values within the same data
>   block or save frame without changing the meaning of the data block
>   or save frame.  Complete tables of values (the table column headings
>   along with all columns of data) may be relocated within the same
>   data block or save frame without changing the meaning of the data
>   block or save frame.  Within a table of values, each tag may be
>   relocated along with its associated column of values within the
>   same table of values without changing the meaning of the table of
>   values.  In general each row of a table of values may also be
>   relocated within the same table of values without changing the
>   meaning of the table of values.  Combining tables of values
>   or breaking up tables of values would change the meanings, and
>   is likely to violate the rules for constructing such tables
>   of values.
>
> I apologize for the complexity of this, but it is actually harder to
> specify the meaning of an unordered set than it is to specify the
> meaning of an ordered tuple, since the former requires specification
> of equivalence classes, while the latter does not.

It may be wordy, but it is not complex. And the wordage is necessary. 
There is a relatively simple, recursive point of view but a view that will 
introduce new terminology (in particular a loop_ is a "block of data 
with defined scope, like data_blocks, save_frames etc").

The rule then is, within any "block" all "items" are order independent ie 
those "items" can be shuffled around in their entirety. This rule also 
precludes the breaking up of loop blocks.

eg

Block = file
Items = data_blocks

Block = data_block
Items = data_items, save_frames, loop_blocks

Block = save_frame
Items = data_items, loop_blocks

Block = loop_block
Items = data_items (with STARs nested loops this would be messy)


cheers

Nick

--------------------------------
Dr N. Spadaccini                                      Head of School

School of Computer Science &                voice: +(61 8) 6488 3452
Software Engineering                          fax: +(61 8) 6488 1089
The University of Western Australia      email: nick@csse.uwa.edu.au 
35 Stirling Highway                    w3: www.csse.uwa.edu.au/~nick
CRAWLEY, Perth,  WA  6009 
AUSTRALIA                               CRICOS Provider Code: 00126G



Reply to: [list | sender only]