Hi John and everyone: Here are two DDL issues that I came across when I start to work with DDL.2.x and the new mmCif dictionary. These issues can only be address by clearly spell out the new DDL's policy. May be these problems have been solved and someone can shade some light on that. John, how should an association between a value (or item) and its appropriate save frame to be identified under DDL.2.x? My point is, how does a program know that the "_category.id" in "_category.id entity" should associated with "save_category.id" while the "entity" is associated with "save_entity" (or save_ENTITY)? Is the leading "_" signifys that matching should be made after strip off the first character from the string? Then, how about the "'_category.id'" in "_category_key.name '_category.id'"? Obviously these types of referencing mechanisms are NOT STAR save frame specification, which uses "$" to indicate reference. Should these rules be specified formally to prevent misinterpretation? Should there be rules that specify how dependent information should be declared. For example, "_struct_conn.conn_type_id" was declared as the "_item_linked.parent_name" of "_struct_conn_type.id" in mmCif dictionary. The enumeration range of the value was declared in "save_struct_conn_type.id" and the "struct_conn_type" category is NOT a mandatory information in a Cif. So, how can one check the integrity of the "_struct_conn.conn_type_id"? How can one sure a "hydrog" in one Cif is the same "hydrog" in another file at the "_struct_conn.conn_type_id" level? Is this mean enumeration range is automatically transferable through the parent relationship? I don't think it should. A restriction that state the declaration of enumeration range must be at the APPLICABLE root parent node is needed to prevent problem like this. Is there any plan or solution to address these issues? Thanks. /Weider