COMCIFS / Powder_Dictionary

CIF definitions for powder diffraction
4 stars 4 forks source link

Assigning (more) PD-specific keys to CIF_CORE categories #164

Open rowlesmr opened 1 year ago

rowlesmr commented 1 year ago

CIF_POW redefines the category keys of REFLN to add _pd_refln.phase_id. This allows the unique distribution of reflections in a multiphase diffraction pattern between h,k,l and the constituent phases.

pokes head above parapet

As most powder CIF applications are going to be multi-block, there needs to be a way to split both Set and Loop data items from (primarily) CORE amongst phases, diffractograms, specimens, and instruments.

Currently, I think a minimum viable set of categories which require _pd_phase.id, are:

I think DIFFRN requires _pd_char.id, _pd_prep.id, and _pd_spec.id to uniquely id a specimen.

I haven't yet put any thought into what might need a diffractogram or instr id.

.

My aim is to be able to get a single set of relational tables describing a multi-block powder experiment, rather than having a set of tables per block.

Thoughts?

jamesrhester commented 1 year ago

Yes. The only question in my mind is whether we (in cif core) might not want to group CELL, SPACE_GROUP and ATOM_SITE(_ANISO) into a STRUCTURE Set category, so that we can refer to a structure with an identifier. This comes up in the context of wanting to reference an alternative structural description (what in the past might have looked like 'see this other data block for the parent structure'). If we do this, then pd_phase might just have a pointer to a structure - the idea being that given a phase there is a particular structure associated with it, rather than given a structure there is a particular phase associated with it.

Unfortunately it's a bit of a process working out the best underlying relationship for all of these Set categories.

jamesrhester commented 1 year ago

And regarding _pd_char/spec/prep, surely we only need one of those as a specimen already links to the other two. And probably best raised as a separate issue.

rowlesmr commented 1 year ago

CHAR has id, PREP has id and char_id, SPEC has id and prep_id.

jamesrhester commented 1 year ago

CHAR has id, PREP has id and char_id, SPEC has id and prep_id.

So if you refer to a particular _spec.id, you automatically refer to a particular _prep.id and _char.id