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

Re: The meaning pf "categories"? [Was: Re: Please adviseregarding a design of CIF dictionaries for material properties]

A DDL2 dictionary is essentially laying out a slightly denormalized
relational database.  Neither DDL1 nor DDLm adheres as closely to
the relational model, but you certainly can follow relational practices
in your design in any DDL and I highly recommend doing do.

You will find the specification of DDL1 in chapter 2.5 and 4.9 of ITVG

You will find the specification of DDL2 in chapter 2.6 and 4.10 of ITVG

In DDl1 a category is defined by:

"Character string which identifies the natural grouping of data
    items to which the specified data item belongs. If the data
    item belongs in a looped list, then it must be grouped only with
    items from the same category, but there may be more than one
    looped list of the same category provided that each loop has its
    own independent reference item (see _list_reference)."

In DDL2 a category is defined by:

   "Categories are essentially tables in which each repetition of
the group of related items as a row.  The terms category and data
item are used here in order to conform with previous use of these
terms in STAR and CIF applications; these terms could be replaced
with relation and attribute (or table and column) commonly used
to describe the relational model which underlies DDL2"

The only rationale I have seen for DDL1 not completely conforming
to the relational model was well is to allow for the possibility
of adding object-oriented capabilities outside the scope of the
relational model.  Personally I see no advantage in departing
from the relational model, and many disadvantages in doing so.


At 5:11 PM +0300 10/2/11, Saulius Grazulis wrote:
>Dear Nick,
>Dear COMCIF members,
>I beg your pardon for opening yet another question thread in COMCIFS,
>for the reason of not having a better forum to discuss the issue.
>>From the discussion of the MPOD dictionary design, I understood that one
>of my problems is that I do not quite understand what "category" in CIF
>means, how it should be assigned and, most importantly, how it is
>supposed by CIF designers to be used in software. I must confess that so
>far I have never used the "category" notion anywhere in my programs,
>being able to build all CIF parsers, filters and a validator without
>referring to categories (and thus sweeping my understanding of
>categories "under the carpet" so far ;).
>On 10/02/2011 01:18 PM, Nick Spadaccini wrote:
>>>  b') or the category is so inclusive that it describes data spanning
>>>      several loops (like '_prop_' category in the above example)?
>>  Again prop_ is a prefix, not something one would define as the category.
>>From the papers and the on-line information on CIF and DDL that are
>accessible to me, I have got an impression that the term "category" is
>used in two relatively unrelated meanings:
>a) DDL1 and increasingly DDLm use the "category" term to group related
>items into categories, so that their attribute descriptions must not be
>repeated. A category<->subcategory relation is then similar to a
>"class<->subclass" relation on OO programming languages; DDL2 uses
>"category group", "category" and "subcategory" terms for this. "parent"
>and "child" in this context describe superclass and subclass relations;
>b) DDL2, by insisting on "category" <=> "single CIF loop_" equivalence
>supposes that a "category" is essentially a "single relational database
>table"; "parent" <-> "child" relations in this context are what the
>RDBMS people would call "primary key" <-> "foreign key relations". The
>terms "parent" and "child" might be unrelated to their usage in case a)
>Is that true - is my understanding correct? If not, may I please ask for
>some clarifications where I am wrong?
>If b) is the case, dose it mean that DDL2 dictionary becomes essentially
>a RDBMS scheme?
>In DDL1, each loop_ (but not a category) can be in principle mapped into
>an RDBMS (e.g. SQL) table definition, with the appropriate primary keys
>(aka list parents), foreign keys, and uniqueness constraints. Is this
>the intention of the original CIF/DDL1/DDL2 design?
>Dr. Saulius GraÏulis
>Institute of Biotechnology, Graiciuno 8
>LT-02241 Vilnius, Lietuva (Lithuania)
>fax: (+370-5)-2602116 / phone (office): (+370-5)-2602556
>mobile: (+370-684)-49802, (+370-614)-36366
>comcifs mailing list

  Herbert J. Bernstein, Professor of Computer Science
      Dowling College, Brookhaven Campus, B111B
    1300 William Floyd Parkway, Shirley, NY, 11967

                Lab: +1-631-244-1935
               Cell: +1-631-428-1397
comcifs mailing list

Reply to: [list | sender only]