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

Saulius Grazulis grazulis at ibt.lt
Sun Oct 2 15:11:41 BST 2011


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?

Sincerely,
Saulius

-- 
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


More information about the comcifs mailing list