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

Re: [ddlm-group] DDLm aliases (subject changed). .. .

Hi Herbert,

I am trying to understand the mapping of the proposed items to a simple
example from the mmCIF dictionary.   Could you provide an example using
the proposed DDL for how the following alias would be represented.

save__geom.details
     _item_description.description
;              A description of geometry not covered by the
                existing data names in the GEOM categories, such as
                least-squares planes.
;
     _item.name                  '_geom.details'
     _item.category_id             geom
     _item.mandatory_code          no
     _item_aliases.alias_name    '_geom_special_details'
     _item_aliases.dictionary      cif_core.dic
     _item_aliases.version         2.0.1
     _item_type.code               text
      save_

Thanks,

John


On 1/26/11 10:49 PM, Herbert J. Bernstein wrote:
> So, to pull it all together, see below.  Please review and see
> what I have missed, mistyped  or failed to convert from some
> earlier incarnation.  Comments, corrections and suggestions
> greatly appreciated.
>
> I have not yet included the type change for _dictionary_xref.format
> because I am not sure a single word code would be sufficient
> to describe the format of any given dictionary, so for the moment
> it is still Text.
>
>     -- HJB
>
> save_definition.xref_code
>       _definition.id             '_definition.xref_code'
>       _definition.update           2011-01-26
>       _definition.class            Attribute
>       _description.text
> ;
>        Code identifying the equivalent definition in the dictionary
>        referenced by the DICTIONARY_XREF attributes.
>
>        Use of _definition.xref_code is deprecated in favor of
>        use of _alias.xref_code
> ;
>       _name.category_id            definition
>       _name.object_id              xref_code
>       _type.purpose                Identify
>       _type.container              Single
>       _type.contents               Code
>        save_
>
> save_ALIAS
>
>       _definition.id               alias
>       _definition.scope            Category
>       _definition.class            List
>       _definition.update           2011-01-26
>       _description.text
> ;
>        The attributes used to specify the aliased names of definitions.
>        Every tag has an implicit alias to itself with a null
>        _alias.xref_code to allow use of the primary tag in
>        the ALIAS_ENSEMBLE category.
> ;
>       _category.parent_id          ddl_attr
>       _category_key.primitive      ['_alias.definition_id',
>                                     '_alias.xref_code']
>        save_
>
>
> save_alias.definition_id
>       _definition.id             '_alias.definition_id'
>       _definition.class            Attribute
>       _definition.update           2006-11-16
>       _description.text
> ;
>        Identifier tag of an aliased definition.
> ;
>       _name.category_id            alias
>       _name.object_id              definition_id
>       _type.purpose                Key
>       _type.container              Single
>       _type.contents               Tag
>        save_
>
> save_alias.deprecated
>       _definition.id             '_alias.deprecated'
>       _definition.class            Attribute
>       _definition.update           2006-11-16
>       _description.text
> ;
>        Specifies whether use of the alias is deprecated
> ;
>       _name.category_id            alias
>       _name.object_id              definition_id
>       _type.purpose                STATE
>       _type.container              Single
>       _type.contents               YesorNo
>       _enumeration.default         No
>        save_
>
>
> save_alias.dictionary_uri
>       _definition.id             '_alias.dictionary_uri'
>       _definition.update           2011-01-26
>       _definition.class            Attribute
>       _description.text
> ;
>        Dictionary URI in which the aliased definition belongs.
>        _alias.dictionary_uri is deprecated in favor if
>        _alias.xref_code
> ;
>       _name.category_id            alias
>       _name.object_id              dictionary_uri
>       _type.purpose                Identify
>       _type.container              Single
>       _type.contents               Uri
>        save_
>
> save_alias.xref_code
>       _definition.id             '_alias.xref_code'
>       _definition.update           2011-01-26
>       _definition.class            Attribute
>       _description.text
> ;
>        Code identifying the dictionary containing the primary
>        definition of the dictionary as given in the
>        DICTIONARY_XREF category.
>
> ;
>       _name.category_id            definition
>       _name.object_id              xref_code
>       _name.linked_item_id         '_dictionary_xref.code'
>       _type.purpose                Key
>       _type.container              Single
>       _type.contents               Code
>        save_
>
>
>
>
> save_ENSEMBLE
>
>     _definition.id      ensemble
>     _definition.scope   Category
>     _definition.class   List
>     _definition.update  2011-01-26
> ;
>      Data items used to describe the ensemble identifiers
>      used in this dictionary.  Data items in this category
>      are NOT used as attributes of individual data items.
>
>      See linked item _alias_ensemble.ensemble_id.
> ;
>      _category.parent_id ddl_attr
>      _category_key.generic  '_ensemble.id'
>
>      save_
>
> save_ensemble.id
>       _definition.id   '_ensemble.id'
>       _definition.class  Attribute
>       _definition.update 2011-01-26
>       _description.text
> ;
>       A code identifying an ensemble of related tags.
>       To help ensure that dictionaries can be merged,
>       each code should either begin with an IUCr-registered
>       prefix or if not prefixed, have been approved
>       by COMCIFS.  The special prefix 'local_' may be
>       use for purely internal purposes of an organization.
> ;
>       _name.category_id ensemble
>       _name.object_id   code
>       _type.purpose     Key
>       _type.container   Single
>       _type.contents    Code
>
>      save_
>
> save_ensemble.description
>       _definition.id   '_ensemble.description'
>       _definition.class  Attribute
>       _definition.update 2011-01-26
>       _description.text
> ;
>       A description of the ensemble
> ;
>       _name.category_id ensemble
>       _name.object_id   code
>       _type.purpose     Describe
>       _type.container   Single
>       _type.contents    Text
>
>
>      save_
>
> save_ALIAS_ENSEMBLE
>
>      _definition.id      alias_ensemble
>      _definition.scope   Category
>      _definition.class   List
>      _definition.update  2011-01-26
> ;
>       The attributes used to specify the ensemble of
>       tags to which a given tag belong.
>
>       A given tag may belong to multiple ensembles
>       and may be cited against multiple dictionaries.
>
> ;
>      _category.parent_id  alias
>      _category.parent_join  Yes
>      _category_key.primitive  ['_alias_ensemble.ensemble_id',
>                                '_alias_ensemble.definition_id',
>                                '_alias_ensemble.xref_code']
>       save_
>
> save_alias_ensemble.definition_id
>       _definition.id   '_alias_ensemble.definition_id'
>       _definition.class  Attribute
>       _definition.update 2011-01-21
>       _description.text
> ;
>       Identifier tag of a definition associated with
>       an xref code by which to group this tag with
>       other tags.
>
>       A given tag may belong to multiple ensembles
>       and may be cited against multiple dictionaries.
>
>       Note that the tag does not have to be a valid
>       tag under DDLm tag construction rules, but
>       it should be a valid tag under the rules of
>       some DDL.
> ;
>       _name.category_id alias_ensemble
>       _name.object_id   definition_id
>       _name.linked_item_id  '_alias.definition_id'
>       _type.purpose     Key
>       _type.container   Single
>       _type.contents    Code
>        save_
>
> save_alias_ensemble.ensemble_id
>       _definition.id   '_alias_ensemble.ensemble_id'
>       _definition.class  Attribute
>       _definition.update 2011-01-26
>       _description.text
> ;
>       A code identifying an ensemble of related tags.
>       To help ensure that dictionaries can be merged,
>       each code should either begin with an IUCr-registered
>       prefix or if not prefixed, have been approved
>       by COMCIFS.  The special prefix 'local_' may be
>       use for purely internal purposes of an organization.
> ;
>       _name.category_id alias_ensemble
>       _name.object_id   code
>       _name.linked_item_id  '_ensemble.id'
>       _type.purpose     Key
>       _type.container   Single
>       _type.contents    Code
>
>      save_
>
>
> save_alias_ensemble.xref_code
>       _definition.id   '_alias_ensemble.xref_code'
>       _definition.class  Attribute
>       _definition.update 2011-01-21
>       _description.text
> ;
>       A code identifying the actual dictionary,
>       virtual dictionary or other logical grouping
>       to which the identifier tag belongs.
> ;
>       _name.category_id alias_ensemble
>       _name.object_id   code
>       _name.linked_item_id  '_dictionary_xref.code'
>       _type.purpose     Key
>       _type.container   Single
>       _type.contents    Code
>        save_
>
>
>
>
> At 2:29 PM -0600 1/26/11, Bollinger, John C wrote:
>> On Wednesday, January 26, 2011 11:34 AM, Herbert J. Bernstein wrote:
>>
>>> OK, so we need to pick a non-conflicting name for the tag that gives
>>> the unifying identifier that will satisfy John W.'s concerns and
>>> James's concerns, but that will not preclude John B. and David's
>>> preference to allow the presentation to be unified with the
>>> xref_code.  How about "ensemble_id".  This is a distinct concept
>> >from the identifier of the dictionary itself, because one
>>> dictionary can contain multiple ensembles and one ensemble
>>> can span multiple dictionaries.
>>
>> Ok, that makes sense.
>>
>>>   Here is my modified version of John B.' proposal:
>>
>> I think we are close here.  There are a couple of additions I would
>> like to see to Herbert's version of the proposal, however.  Rather
>> than quote the whole thing, I include it verbatim below, with my
>> additions at the bottom and additional commentary following:
>>
>>
>> 1) Deprecate _alias.dictionary_uri.
>>
>> 2) Add as a of subcategory of alias, alias_ensemble with the following
>> tags:
>>
>> _alias_ensemble.definition_id
>>       a tag identifier belonging to an ensemble
>> _alias_ensemble.ensemble_id
>>       a code identifying an ensemble of tags to which the tag belongs
>> _alias_ensemble.xref_code
>>
>> All of these tags are members of the composite key of the sub
>> category, so that it is possible to have a physical dictionary
>> the same tag in multiple ensembles, or to break out this subcategory
>> as a master index running over all tags alias giving both the
>> physical dictionaries from which they are taken and and the
>> ensembles to which they belong.
>>
>> 3) Add tag
>>
>> _alias.xref_code
>>
>> to the alias category
>>
>> _alias.xref_code specifies the physical dictionary from which the
>> preferred definition of the tag alias has been taken, or is null
>> if the current dictionary is the primary definer of the tag alias.
>> This tag is the parent of _alias_ensemble.xref_code.  There are
>> some technical issues on use of the join mechanism, and which
>> tags are keys, but they can be resolved if the flattened version
>> is truly desired.
>>
>>
>> 4) Add tag:
>>
>> _alias.deprecated: Specifies whether use of the alias is deprecated.
>>       _type.purpose     State
>>       _type.container   Single
>>       _type.contents    YesorNo
>>
>> 5) Modify the definition of _dictionary_xref.format by changing its
>> _type.contents attribute to "Code".
>>
>> 6) Deprecate _definition.xref_code (its purpose will be served via
>> the alias mechanism)
>>
>>
>> ----
>> JCB Adds:
>> ----
>>
>> 7) In the ALIAS category, replace attribute _category_key.generic with:
>>      _category_key.primitive [ '_alias.xref_code' '_alias.definition_id' ]
>>
>> This is still appropriate, inasmuch data names are not guaranteed to
>> be globally unique across all dictionaries.  For that matter, if it
>> were inappropriate here then there would be no need for
>> _alias_ensemble.xref_code, as no _alias.definition_id could be
>> associated with more than one xref_code, and that one would be
>> specified by _alias.xref_code.
>>
>>
>> 8) Modify the description of the DICTIONARY_XREF category to: "The
>> DICTIONARY_XREF attributes identify and describe logical or physical
>> dictionaries to which items in the current dictionary are
>> cross-referenced using the _definition.xref_code or _alias.xref_code
>> attribute."
>>
>> I still think the concept of a logical dictionary is a sound and
>> useful one, even alongside Herbert's _alias_ensemble idea.  This
>> wording change accommodates the concept without requiring any new
>> attributes.  Be it known, however, that if we agree to this then
>> corresponding slight adjustments may be needed to the definitions of
>> some of the other existing attributes in the DICTIONARY_XREF
>> category.  I think those can be discussed later, when and if the
>> time comes.
>>
>> Naturally, if _definition.xref_code were removed instead of
>> deprecated, then this definition should not refer to it.
>>
>> ========
>>
>>
>> I can live with deprecating _definition.xref_code and
>> _alias.definition_uri, though my preference is still to remove them.
>> Inasmuch as, to my knowledge, DDLm has so far been published and
>> distributed only in draft / for-comments form, it will indeed be a
>> new standard when it eventually is accepted by COMCIFS.  Those
>> developers and dictionary authors already working with the draft
>> should be doing so with the understanding that it is subject to
>> change.  Also, I suspect we will consider further
>> possibly-disruptive changes before we are done, and I am loathe to
>> set a precedent that compatibility with the draft is a supremely
>> compelling concern.
>>
>> Nevertheless, deprecation vs. removal of these attributes is too
>> small a detail to be hung up over.  When we are ready to vote on the
>> overall proposal, I would prefer to vote separately on that question
>> -- separately for each attribute, in fact.  In the mean time, let's
>> proceed.
>>
>> Question to consider: should there be a means in the DDL to identify
>> the significance of a particular ensemble, at least for the benefit
>> of humans?  That might take a form as simple as a dictionary-scoped
>> ENSEMBLE category, with attributes _ensemble.ensemble_id and
>> _ensemble.description.
>>
>> I note also that Herbert did not bring forward my proposed
>> _alias.dictionary_version attribute into his version of the
>> proposal, nor have I added it back to this version.  I see only
>> limited potential use for it, and I am not prepared to argue for it.
>> Others of you may think differently, however.
>>
>>
>> Regards,
>>
>> John
>>
>> --
>> John C. Bollinger, Ph.D.
>> Department of Structural Biology
>> St. Jude Children's Research Hospital
>>
>>
>>
>> Email Disclaimer:  www.stjude.org/emaildisclaimer
>>
>> _______________________________________________
>> ddlm-group mailing list
>> ddlm-group@iucr.org
>> http://scripts.iucr.org/mailman/listinfo/ddlm-group
>
>

-- 
******************************************************************
   John Westbrook, Ph.D.
   Rutgers, The State University of New Jersey
   Department of Chemistry and Chemical Biology
   610 Taylor Road
   Piscataway, NJ 08854-8087
   e-mail: jwest@rcsb.rutgers.edu
   Ph:  (732) 445-4290  Fax: (732) 445-4320
******************************************************************
_______________________________________________
ddlm-group mailing list
ddlm-group@iucr.org
http://scripts.iucr.org/mailman/listinfo/ddlm-group

Reply to: [list | sender only]