├── .github ├── ISSUE_TEMPLATE │ └── new-definition.yml └── workflows │ └── main.yml ├── .gitignore ├── CIF2-EBNF.txt ├── Detailed_changelog.cif ├── README.md ├── cif_core.dic ├── ddl.dic ├── examples ├── cell-measurement-multi-block.cif ├── cell-measurement-single-block.cif ├── complex-compositional-disorder.cif ├── elemental-composition.cif └── simple-compositional-disorder.cif ├── templ_attr.cif └── templ_enum.cif /.github/ISSUE_TEMPLATE/new-definition.yml: -------------------------------------------------------------------------------- 1 | name: Propose a new data item 2 | description: Propose a new data item for the Core dictionary. 3 | title: "[New data item]: " 4 | labels: ["enhancement"] 5 | assignees: jamesrhester 6 | body: 7 | - type: markdown 8 | attributes: 9 | value: "Thank you for taking the time to propose a new data item. Please fill out the following information." 10 | - type: textarea 11 | attributes: 12 | label: Definition 13 | description: | 14 | Please define the meaning of the proposed data item, going into as much detail as necessary. Literature references are welcome. 15 | placeholder: "Example: The number of symmetrically-equivalent orientations of the group." 16 | validations: 17 | required: true 18 | - type: dropdown 19 | attributes: 20 | label: Restricted values 21 | description: > 22 | Please indicate if this data item's value should be drawn from a predefined list of values, for 23 | example, a list of colours. If the value should be drawn from a predefined list, please suggest 24 | possible values for the list (with explanations as necessary) in **Explanation of example** below. 25 | options: 26 | - Value should be drawn from a predefined list 27 | - Not sure 28 | - Value is not drawn from a predefined list 29 | validations: 30 | required: true 31 | - type: input 32 | attributes: 33 | label: Example 34 | description: An example value for this data item. 35 | placeholder: "Example: O2+" 36 | validations: 37 | required: true 38 | - type: textarea 39 | attributes: 40 | label: Explanation of example 41 | description: Please explain the meaning of the example value, if necessary. 42 | placeholder: "Example: Oxygen atom with the oxidation state of +2." 43 | - type: input 44 | attributes: 45 | label: Looping 46 | description: > 47 | Name of a data item that should be tabulated together with the proposed item, if looped. 48 | If only a single value should be contained in a data block, write 'top level'. 49 | placeholder: "Example: _atom_site.label" 50 | validations: 51 | required: true 52 | - type: input 53 | attributes: 54 | label: Data name 55 | description: Possible name(s) for the data item. 56 | placeholder: "Example: _atom_site.number_of_groups, _atom_site.group_m" 57 | - type: dropdown 58 | attributes: 59 | label: Type 60 | description: Type of the data values. 61 | options: 62 | - Word (text with no spaces) 63 | - Text (arbitrary length text) 64 | - DateTime 65 | - Integer 66 | - Real 67 | - Complex 68 | - Other (explain in the Comments below) 69 | validations: 70 | required: true 71 | - type: dropdown 72 | attributes: 73 | label: Data structure 74 | description: "Indicate whether or not values of this type have special internal structure (e.g. matrices)." 75 | options: 76 | - None (a single value of type given in Type above) 77 | - Array (an array of values of type given in Type above) 78 | - Matrix (a 2-dimensional Array) 79 | - Other (explain in the Comments below) 80 | validations: 81 | required: true 82 | - type: textarea 83 | attributes: 84 | label: Comments 85 | description: "Please comment on any aspect of this proposal." 86 | placeholder: "Example: This is needed for high-temperature work." 87 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | # Check that syntax is correct 2 | 3 | name: CIFSyntaxandStyleCheck 4 | 5 | # Controls when the action will run. Triggers the workflow on push or pull request 6 | # events but only for the master branch 7 | on: 8 | push: 9 | branches: [ master ] 10 | paths-ignore: 11 | - '.github/**' 12 | 13 | pull_request: 14 | branches: [ master ] 15 | paths-ignore: 16 | - '.github/**' 17 | workflow_dispatch: 18 | 19 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 20 | jobs: 21 | syntax: 22 | # The type of runner that the job will run on 23 | runs-on: ubuntu-latest 24 | 25 | # Steps represent a sequence of tasks that will be executed as part of the job 26 | steps: 27 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 28 | - name: checkout 29 | uses: actions/checkout@v4 30 | 31 | # Check syntax of all CIF files 32 | - name: check_syntax 33 | uses: COMCIFS/cif_syntax_check_action@master 34 | id: cif_syntax_check 35 | ddlm: 36 | runs-on: ubuntu-latest 37 | needs: syntax 38 | steps: 39 | - name: checkout 40 | uses: actions/checkout@v4 41 | 42 | - name: check_ddlm 43 | uses: COMCIFS/dictionary_check_action@main 44 | id: ddlm_check 45 | layout: 46 | runs-on: ubuntu-latest 47 | needs: syntax 48 | 49 | steps: 50 | - name: Get the cache 51 | uses: actions/cache@v4 52 | id: cache 53 | with: 54 | path: ~/.julia 55 | key: ${{ runner.os }}-julia-v2 56 | 57 | - name: Install Julia 58 | uses: julia-actions/setup-julia@v1 59 | with: 60 | version: '1.6' 61 | 62 | - name: Install Julia packages 63 | if: steps.cache.outputs.cache-hit != 'true' 64 | run: | 65 | julia -e 'import Pkg;Pkg.add("CrystalInfoFramework");Pkg.add("Lerche");Pkg.add("FilePaths");Pkg.add("ArgParse")' 66 | 67 | - name: checkout 68 | uses: actions/checkout@v4 69 | with: 70 | path: main 71 | - name: checkout julia tools 72 | uses: actions/checkout@v4 73 | with: 74 | repository: jamesrhester/julia_cif_tools 75 | path: julia_cif_tools 76 | 77 | - name: Checkout CIF master files 78 | uses: actions/checkout@v4 79 | with: 80 | repository: COMCIFS/cif_core 81 | path: cif_core 82 | - name: Diagnostics 83 | run: | 84 | ls -a 85 | pwd 86 | which julia 87 | 88 | - name: one_dict_layout 89 | run: | 90 | julia -e 'using Pkg; Pkg.status()' 91 | for file in main/*.dic 92 | do 93 | echo "Checking $file" 94 | julia -O0 ./julia_cif_tools/linter.jl -i $PWD/cif_core $file cif_core/ddl.dic 95 | if [ $? != 0 ] 96 | then 97 | exit 1 ; 98 | fi 99 | done 100 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.dic~ 3 | -------------------------------------------------------------------------------- /CIF2-EBNF.txt: -------------------------------------------------------------------------------- 1 | (* 2 | * Extended Backus-Naur Form of the CIF2 syntax and grammar 3 | * 4 | * The CIF2 syntax is closely related to the STAR2 syntax published 5 | * by Spadaccini and Hall (J. Chem. Inf. Model., 2012, 52 (8), 6 | * pp 1901-1906 DOI: 10.1021/ci300074v. The CIF1.1 syntax was derived from 7 | * the original STAR syntax. 8 | * 9 | * The allowed character set is those having Unicode 10 | * code points U+0009, U+000A, U+000D, U+0020 to U+D7FF, and 11 | * U+E000 to U+10FFFD, less code points of the form U+xFFFE and U+xFFFF, 12 | * where x is any hexadecimal digit (including 0). Note that the U+0007 13 | * character used in STAR2 for escaping string terminators is not used 14 | * in CIF2. 15 | * 16 | * This document follows EBNF syntax as given in ISO/IEC 14977. In 17 | * particular, the common "+" notation is replaced by option or 18 | * repeat brackets, e.g. "(ab)+" is replaced by "(ab), {ab}". Moreover, 19 | * the provided EBNF applies to sequences of Unicode characters -- not 20 | * sequences of bytes or encoded characters -- independent of any 21 | * character encoding scheme (but see also below). 22 | * 23 | * This particular EBNF uses the "special sequence" mechanism to 24 | * represent Unicode code points and code point ranges. Individual 25 | * code points are represented in a special sequence by the form 26 | * U+[[h]h]hhhh -- that is, "U+" followed by the 4 to 6 hexadecimal 27 | * digits of the unsigned, 21-bit code point value. Ranges are 28 | * represented by two such code point values separated by a hyphen 29 | * character. Whitespace is permitted on either or both sides of 30 | * any code point value within this special sequence formulation. 31 | * 32 | * 33 | * CIF2 Grammar and Syntax 34 | * 35 | * CIF 2.0 is a binary format consisting of Unicode text encoded 36 | * in UTF-8. Notwithstanding its use of (nearly) the full Unicode 37 | * character repertoire, CIF applies only the semantics described below 38 | * to decoded character data, especially with respect to whitespace and 39 | * line termination. Software consuming CIF data and names generally 40 | * ascribes additional semantics to them, however, which may include 41 | * additional Unicode semantics. 42 | * 43 | * A CIF2 file consists of a sequence of data blocks separated by 44 | * whitespace, with a required magic code as the first characters. 45 | * Data may additionally be structured into save frames, which have 46 | * the same form as data blocks and nest within data blocks. The data 47 | * themselves may appear as individual (key, value) pairs, and / or they 48 | * may be organized into tabular structures called "loops". 49 | * 50 | * All data names appearing directly within a given data block or save 51 | * frame are required to be distinct with respect to a 52 | * normalization / case-folding procedure described elsewhere. 53 | * In the same way, data block names must be distinct within their CIF, 54 | * and save frame names must be distinct within their immediate 55 | * container (either a data block or a save frame). 56 | * 57 | * The main grammatic elements of CIFs are data block headers, 58 | * save frame headers, data names, data values, and a few keywords. 59 | * These all must always be separated from each other by whitespace. 60 | * However, text fields (one kind of data value) have a line terminator as 61 | * part of their delimiter, and that line terminator can do double duty 62 | * to satisfy the whitespace separation requirement. Additionally, 63 | * the requirement does not apply to separating the delimiters of 64 | * list and table values from member values. The productions below 65 | * explicitly include whitespace wherever it is allowed or required. 66 | *) 67 | 68 | (* 69 | * This formulation of the CIF2-file production accepts the end of the 70 | * input as whitespace for the purpose of satisfying the CIF 2.0 71 | * requirement that the version comment be followed by whitespace. 72 | * It incorporates the CIF 2.0 limitation (also in CIF 1.1) that no 73 | * line of a CIF may exceed 2048 characters. 74 | *) 75 | CIF2-file = ( file-heading, [ line-term, [ 76 | wspace-any, data-block, 77 | { wspace, data-block } 78 | ], [ wspace ], [ comment ] ] ) 79 | - ( { allchars }, 2049 * char, { allchars } ); 80 | 81 | file-heading = [ ?U+FEFF? ], magic-code, { inline-wspace } ; 82 | 83 | (* 84 | * The "magic code" identifies the CIF version with which an instance 85 | * document claims to comply. 86 | *) 87 | magic-code = '#\#CIF_2.0' ; 88 | 89 | (* 90 | * A datablock consists of a data heading followed by zero or more 91 | * data items and save frames. 92 | *) 93 | data-block = data-heading, { block-content } ; 94 | 95 | data-heading = data-token, container-code ; 96 | 97 | (* 98 | * Each element inside a data block is either data or a save frame, separated 99 | * from the header or previous element by whitespace. 100 | *) 101 | block-content = wspace, ( data | save-frame ) ; 102 | 103 | (* 104 | * A save frame has content similar to a data block's, but it resides 105 | * inside a data block instead of at the top level. (Save frames do not nest.) 106 | *) 107 | save-frame = save-heading, { frame-content }, wspace, save-token ; 108 | 109 | save-heading = save-token, container-code; 110 | 111 | (* 112 | * A save frame contains a sequence of data elements, each separated from the 113 | * header or previous element by whitespace. 114 | *) 115 | frame-content = wspace, data ; 116 | 117 | (* A data block or save frame name is composed of one or more non-blank characters *) 118 | container-code = non-blank-char, { non-blank-char } ; 119 | 120 | (* Data appear either as key/value pairs, or within loops. *) 121 | data = ( data-name, wspace-data-value ) | data-loop ; 122 | 123 | (* 124 | * A data loop consists of a loop header (the case-insensitive word "loop_" 125 | * followed by a sequence of datanames) and then a sequence of one or more 126 | * whitespace-separated values. Though it cannot be expressed in EBNF, CIF 127 | * requires that a loop whose header contains N data names must contain an 128 | * integral multiple of N data values. 129 | *) 130 | data-loop = loop-token, wspace, data-name, { wspace, data-name }, 131 | wspace-data-value, { wspace-data-value } ; 132 | 133 | (* 134 | * A dataname begins with an underscore character, and contains one or more 135 | * additional, non-blank characters. 136 | *) 137 | data-name = '_' , non-blank-char, { non-blank-char } ; 138 | 139 | (* 140 | * A list contains zero or more whitespace-separated values. The delimiting 141 | * brackets may optionally be separated by whitespace from the values, 142 | * or from each other if there are no values. 143 | *) 144 | list = '[', [ list-values-start, { wspace-data-value } ], [ wspace ], ']' ; 145 | 146 | list-values-start = 147 | ( wspace-any, nospace-value ) 148 | | ( wspace-any, [ comment ], text-field ) 149 | | ( [ { wspace-to-eol }, inline-wspace, { inline-wspace } ], wsdelim-string ) 150 | | ( wspace-to-eol, { wspace-to-eol }, wsdelim-string-sol ) ; 151 | 152 | (* 153 | * A table contains zero or more whitespace-separated key/value pairs. 154 | * The delimiting brackets may optionally be separated by whitespace from 155 | * the values, or from each other if there are no values. 156 | *) 157 | table = '{', [ wspace-any, table-entry, { wspace, table-entry } ], [ wspace ], '}' ; 158 | 159 | (* 160 | * Key-value pairs appearing in a table structure take the form 'key':value, 161 | * where key must be a delimited string (but not a text block) and the value 162 | * may be any data value. Whitespace is permitted between the colon and value. 163 | *) 164 | table-entry = ( quoted-string | triple-quoted-string ), 165 | ':', ( nospace-value | wsdelim-string | wspace-data-value ) ; 166 | 167 | (* 168 | * In most contexts, data values must be preceded by explicit and/or 169 | * implicit whitespace. Only text fields have implicit leading whitespace. 170 | * Additionally, the whitespace preceding an whitespace-delimited string 171 | * affects the form that string may take. 172 | *) 173 | wspace-data-value = 174 | ( wspace, nospace-value ) 175 | | ( [ wspace-lines ], inline-wspace, { inline-wspace }, wsdelim-string ) 176 | | ( wspace-lines, wsdelim-string-sol ) 177 | | ( [ wspace ], [ comment ], text-field ) ; 178 | 179 | (* 180 | * These data values have neither implicit leading whitespace nor any special 181 | * sensitivity to leading whitespace. 182 | *) 183 | nospace-value = 184 | quoted-string 185 | | triple-quoted-string 186 | | list 187 | | table ; 188 | 189 | (* 190 | * Whitespace-delimited strings draw from a subset of the CIF character set, 191 | * have an even more limited first character, and may not have the same form 192 | * as a data block header, save frame header, or any of several reserved 193 | * words. When they appear at the start of a line, whitespace-delimited 194 | * strings may not start with a semicolon. 195 | *) 196 | wsdelim-string-sol = wsdelim-string - ( ';', { non-blank-char } ) ; 197 | 198 | wsdelim-string = ( lead-char, {restrict-char} ) 199 | - ( ( ( data-token | save-token ), { non-blank-char } ) | loop-token | global-token | stop-token ) ; 200 | 201 | lead-char = restrict-char - ( '"' | '#' | '$' | "'" | '_' ) ; 202 | 203 | restrict-char = non-blank-char - ( '[' | ']' | '{' | '}' ) ; 204 | 205 | (* quote-delimited or apostrophe-delimited string *) 206 | quoted-string = ( quote-delim, quote-content, quote-delim ) 207 | | ( apostrophe-delim, apostrophe-content, apostrophe-delim ) ; 208 | 209 | quote-content = { char - quote-delim } ; 210 | 211 | quote-delim = '"' ; 212 | 213 | apostrophe-content = { char - apostrophe-delim } ; 214 | 215 | apostrophe-delim = "'" ; 216 | 217 | (* triple-quote-delimited and triple apostrophe-delimited strings *) 218 | triple-quoted-string = ( quote3-delim, quote3-content, quote3-delim ) 219 | | ( apostrophe3-delim, apostrophe3-content, apostrophe3-delim ) ; 220 | 221 | quote3-delim = '"""' ; 222 | 223 | quote3-content = { [ '"', [ '"' ] ], not-quote, { not-quote } } ; 224 | 225 | not-quote = allchars - '"' ; 226 | 227 | apostrophe3-delim = "'''" ; 228 | 229 | apostrophe3-content = { [ "'", [ "'" ] ], not-apostrophe, { not-apostrophe } } ; 230 | 231 | not-apostrophe = allchars - "'" ; 232 | 233 | (* text block *) 234 | text-field = text-delim, text-content, text-delim ; 235 | 236 | text-delim = line-term, ';' ; 237 | 238 | text-content = { allchars } - ( { allchars }, text-delim, { allchars } ) ; 239 | 240 | (* 241 | * CIF keywords are case-insensitive. 242 | * 243 | * The global and stop tokens are part of the original STAR specification; 244 | * they are reserved in case of future use in CIF. 245 | *) 246 | 247 | data-token = ( 'D' | 'd' ), ( 'A' | 'a' ), ( 'T' | 't' ), ( 'A' | 'a' ), '_'; 248 | 249 | save-token = ( 'S' | 's' ), ( 'A' | 'a' ), ( 'V' | 'v' ), ( 'E' | 'e' ), '_'; 250 | 251 | loop-token = ( 'L' | 'l' ), ( 'O' | 'o' ),( 'O' | 'o' ), ( 'P' | 'p' ) , '_' ; 252 | 253 | global-token = ( 'G' | 'g' ), ( 'L' | 'l' ), ( 'O' | 'o' ), ( 'B' | 'b' ), ( 'A' | 'a' ), ( 'L' | 'l' ), '_' ; 254 | 255 | stop-token = ( 'S' | 's' ), ( 'T' | 't' ), ( 'O' | 'o' ), ( 'P' | 'p' ), '_' ; 256 | 257 | (* A single non-whitespace character *) 258 | non-blank-char = char - inline-wspace ; 259 | 260 | (* 261 | * Runs of spaces, tabs, line terminators, and comments are 262 | * required to separate many higher-level elements of this grammar. In 263 | * most contexts such runs may not begin with comments. For the purposes 264 | * of these particular productions, such runs *never* end with comments. 265 | *) 266 | 267 | (* 268 | * a nonempty run of whitespace and possibly comments, beginning with inline 269 | * whitespace or a line terminator; may span multiple lines 270 | *) 271 | wspace = ( inline-wspace | line-term ), wspace-any; 272 | 273 | (* 274 | * a nonempty run of whitespace and possibly comments, beginning with inline 275 | * whitespace or a line terminator, and ending with a line terminator; may 276 | * span multiple lines 277 | *) 278 | wspace-lines = [ inline-wspace, { inline-wspace }, [ comment ] ], line-term, { wspace-to-eol } ; 279 | 280 | (* 281 | * a possibly-empty run of whitespace and comments; may begin with a comment, 282 | * and may span multiple lines 283 | *) 284 | wspace-any = { wspace-to-eol }, { inline-wspace } ; 285 | 286 | (* 287 | * a run of zero or more spaces and/or tabs, optionally followed by a comment, 288 | * always terminated by a line terminator. 289 | *) 290 | wspace-to-eol = { inline-wspace }, [ comment ], line-term ; 291 | 292 | (* 293 | * A comment is a hash symbol followed by every character up to, but not 294 | * including, the end of the line 295 | *) 296 | comment = '#', { char } ; 297 | 298 | (* 'char' represents any allowed character other than line-term *) 299 | char = allchars - line-term ; 300 | 301 | (* 302 | * Only ASCII space and tab characters are significant as inline 303 | * whitespace. Unicode's classification of certain other code points as 304 | * whitespace is not significant for the purposes of CIF. 305 | *) 306 | inline-wspace = ?U+0020? | ?U+0009? ; 307 | 308 | (* 309 | * The two-character sequence U+000D U+000A is recognized as a line 310 | * terminator, as are each of the characters U+000A and U+000D when they 311 | * appear outside such a sequence. Similarly to XML, CIF2 interprets 312 | * each of these line termination sequences as the single character U+000A, 313 | * wherever they appear in a CIF instance document, as if that 314 | * translation were performed prior to parsing. 315 | *) 316 | line-term = ( ?U+000D?, [ ?U+000A? ] ) | ?U+000A? ; 317 | 318 | (* For ease of specification we define a token for the full character set. *) 319 | allchars = ?U+0009? | ?U+000A? | ?U+000D? | ?U+0020 - U+007E? 320 | | ?U+00A0 - U+D7FF? | ?U+E000 - U+FDCF? | ?U+FDF0 - U+FFFD? 321 | | ?U+10000 - U+1FFFD? | ?U+20000 - U+2FFFD? | ?U+30000 - U+3FFFD? 322 | | ?U+40000 - U+4FFFD? | ?U+50000 - U+5FFFD? | ?U+60000 - U+6FFFD? 323 | | ?U+70000 - U+7FFFD? | ?U+80000 - U+8FFFD? | ?U+90000 - U+9FFFD? 324 | | ?U+A0000 - U+AFFFD? | ?U+B0000 - U+BFFFD? | ?U+C0000 - U+CFFFD? 325 | | ?U+D0000 - U+DFFFD? | ?U+E0000 - U+EFFFD? | ?U+F0000 - U+FFFFD? 326 | | ?U+100000 - U+10FFFD? ; 327 | 328 | 329 | -------------------------------------------------------------------------------- /Detailed_changelog.cif: -------------------------------------------------------------------------------- 1 | #\#CIF_2.0 2 | # This file contains the full changelogs from the DICTIONARY_AUDIT category loop 3 | # at the end of the cif_core.dic file. Released cif_core.dic files include 4 | # a summarised form of these changes. This file is intended purely for developer 5 | # information and is not guaranteed to be parseable. 6 | data_changelog 7 | 8 | loop_ 9 | _dictionary_audit.version 10 | _dictionary_audit.date 11 | _dictionary_audit.revision 12 | 13 | 3.0.14 2021-06-29 14 | ; 15 | Added opaque author identifiers to audit_author and publ_author as well 16 | as relevant linking identifiers to audit_contact_author and 17 | publ_contact_author. Added diffrn_measurement.specimen_attachment_type. 18 | 19 | Added the 'none' measurement units to the definitions of multiple 20 | data items. 21 | 22 | Added methods for determining the measurement units to the definitions 23 | of the _refine_diff.density_min_su, _refine_diff.density_max_su and 24 | _refine_diff.density_rms_su data items. 25 | 26 | Corrected a few typos in several save frame definitions. 27 | 28 | Corrected the definitions of the ATOM_SITES_CARTN_TRANSFORM category 29 | and the _atom_sites_fract_transform.matrix data item. 30 | 31 | Changed the DDL conformance version number from 3.0.14 to 4.0.1. 32 | 33 | Removed all instances of the _category.key_id attribute since it is no 34 | longer defined in the DDLm reference dictionary. 35 | ; 36 | 3.1.0 2021-12-01 37 | ; 38 | Replaced _model_site.adp_eigen_system with _model_site.adp_eigenvectors 39 | and _model_site.adp_eigenvalues. 40 | 41 | Added additional enumeration values to the _journal_index.type data item 42 | definition. 43 | 44 | Added measurement units to the definitions of multiple data items. 45 | 46 | Removed the _type.dimension attribute from the definition of 47 | the _refln.form_factor_table data item since it is not applicable 48 | to the "Table" content type. 49 | 50 | Changed the imported save frame in the definitions of 51 | the _atom_sites_cartn_transform.vec_* data items from 52 | 'Cartn_matrix' to 'Cartn_vector'. 53 | 54 | Changed the imported save frame in the definitions of 55 | the _atom_sites_fract_transform.vec_* data items from 56 | 'fract_matrix' to 'fract_vector'. 57 | 58 | Changed the units of measurement in the definition of 59 | the _atom_sites_fract_transform.matrix data item from 60 | 'none' to 'reciprocal_angstroms'. 61 | 62 | Changed the units of measurement in the definition of 63 | the _diffrn_radiation_wavelength.value_su data item from 64 | 'none' to 'angstroms'. 65 | 66 | Updated the description of the _diffrn_source.make and 67 | _exptl_absorpt.correction_t_min data items. 68 | 69 | Unified the spelling of certain words. 70 | 71 | Added an enumeration range to the definition of 72 | the _space_group_Wyckoff.multiplicity data item. 73 | 74 | Fixed text description of _atom_site.U,B_iso_or_equiv. 75 | 76 | Added multiple standard uncertainty (SU) data items. 77 | 78 | Restricted the _atom_site.Wyckoff_symbol data item values 79 | to a set of case-sensitive enumeration values. 80 | 81 | Updated the capitalisation of multiple data items. 82 | 83 | Updated the AUDIT_SUPPORT category example case. 84 | 85 | Fixed the _exptl_crystal.colour data item example case. 86 | 87 | Changed the content type of the _space_group.name_H-M_ref 88 | data item from 'Code' to 'Text' and updated the description 89 | to better reflect the formatting of the given enumeration values. 90 | 91 | Changed legacy case-sensitive data names to 'Word' type for conformance 92 | with DDL1. 93 | 94 | Changed _gt/_lt data names to 'Number' type in accordance with DDL1 95 | behaviour. Removed associated SU data names. 96 | 97 | Homogenised the definitions of _citation.year, _journal.year, 98 | _citation.journal_issue, and _journal.issue data items. 99 | 100 | Added an upper enumeration limit of 192 to the definition of 101 | the _space_group_symop.id data item. 102 | 103 | Changed the content type of the _journal.paper_doi data item from 104 | 'Code' to 'Text' and added an example case. 105 | ; 106 | 3.2.0 2023-04-04 107 | ; 108 | Added data names to allow multi-data-block expression of data sets. 109 | 110 | Deprecated and replaced _diffrn_radiation.type and 111 | _diffrn_radiation.xray_symbol. 112 | 113 | Added _diffrn_refln.intensity* data items. 114 | 115 | Added the _exptl_absorpt.special_details data item. 116 | 117 | Added categories and data names to allow for the elemental composition 118 | of specimens to be recorded. 119 | 120 | Changed the content type of the _diffrn_reflns.limit_min and 121 | _diffrn_reflns.limit_max data items from Real to Integer. 122 | 123 | Updated _audit_author.name, _audit_contact_author.name, 124 | _citation_author.name, and _publ_author.name to specify how authors with 125 | single names should be handled. 126 | 127 | Renamed DIFFRN_STANDARD to DIFFRN_STANDARDS, as well as all data names, 128 | to retain consistency with the DDL1 dictionary. 129 | 130 | Fixed dREL names of _audit_support.funding_organization and 131 | _audit_support.funding_organization_DOI. 132 | 133 | Corrected the dREL methods responsible for the assignment of units of 134 | measurement to the _refine_diff.density_min, _refine_diff.density_min_su, 135 | _refine_diff.density_max, _refine_diff.density_max_su, 136 | _refine_diff.density_rms and _refine_diff.density_rms_su data items. 137 | 138 | Explicitly added _diffrn_source.details to the list items that replaced 139 | _diffrn_source.description. 140 | 141 | Added a disclaimer about the use of the _atom_site_symmetry_multiplicity 142 | data name. 143 | 144 | Changed the _exptl_crystal.colour data item from a list to a text string 145 | to restore compatibility with the DDL1 version of the dictionary. 146 | 147 | Updated the descriptions of the _atom_site.disorder_assembly and 148 | _atom_site.disorder_group data items to also apply to compositional 149 | disorder. 150 | 151 | Added the _citation.URL and _journal.paper_URL data items. 152 | 153 | Changed the content type of multiple id data items. 154 | 155 | Updated URL of the Open Funder Registry repository. 156 | 157 | Updated the references in definitions of the _chemical.enantioexcess_bulk 158 | and _chemical.enantioexcess_crystal data items. 159 | 160 | Changed the scheme part in multiple URLs from 'http' to 'https'. 161 | 162 | Added the _journal.paper_number and _journal.paper_pages data items. 163 | 164 | Added the 'Other' state to the enumeration set of the 165 | _database_related.relation data item. Added a usage example to 166 | the DATABASE_RELATED category. 167 | 168 | Added several examples to the ATOM_SITE category. 169 | 170 | Updated several definitions with enumeration values to be case-sensitive. 171 | 172 | Removed the _citation_author.key and _citation_editor.id data items. 173 | 174 | Reparented CELL to DIFFRN category and added key data names to allow 175 | multiple cells for different diffraction conditions. Deprecated 176 | _cell_measurement.temperature,pressure data names. 177 | 178 | Changed the purpose of the _diffrn_radiation_wavelength.id data item 179 | from 'Encode' to 'Key'. 180 | ; 181 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![CIF syntax check](https://github.com/COMCIFS/cif_core/actions/workflows/main.yml/badge.svg)](https://github.com/COMCIFS/cif_core/actions) 2 | 3 | # IUCr Core CIF development repository 4 | 5 | This repository is for review and development of the IUCr core CIF 6 | dictionary and supplementary dictionaries which COMCIFS manages. 7 | 8 | Dictionary definitions are described using DDLm attributes, which 9 | are themselves described in 'ddl.dic'. 10 | 11 | Contributions through Github mechanisms are welcome. Please clone this repository and create a pull request. 12 | Alternatively, you can contact the COMCIFS coordinating secretary (bm at iucr.org) or 13 | [submit suggestions through the IUCr website](https://www.iucr.org/resources/cif/dictionaries/new-item). 14 | -------------------------------------------------------------------------------- /ddl.dic: -------------------------------------------------------------------------------- 1 | #\#CIF_2.0 2 | ############################################################################## 3 | # # 4 | # DDLm REFERENCE DICTIONARY # 5 | # # 6 | ############################################################################## 7 | 8 | data_DDL_DIC 9 | 10 | _dictionary.title DDL_DIC 11 | _dictionary.class Reference 12 | _dictionary.version 4.2.0 13 | _dictionary.date 2025-02-19 14 | _dictionary.uri 15 | https://raw.githubusercontent.com/COMCIFS/cif_core/master/ddl.dic 16 | _dictionary.ddl_conformance 4.2.0 17 | _dictionary.namespace DdlDic 18 | _description.text 19 | ; 20 | This dictionary contains the definitions of attributes that 21 | make up the DDLm dictionary definition language. It provides 22 | the meta meta data for all CIF dictionaries. 23 | ; 24 | 25 | save_ATTRIBUTES 26 | 27 | _definition.id ATTRIBUTES 28 | _definition.scope Category 29 | _definition.class Head 30 | _definition.update 2011-07-27 31 | _description.text 32 | ; 33 | This category is parent of all other categories in the DDLm 34 | dictionary. 35 | ; 36 | _name.category_id DDL_DIC 37 | _name.object_id ATTRIBUTES 38 | 39 | save_ 40 | 41 | save_ALIAS 42 | 43 | _definition.id ALIAS 44 | _definition.scope Category 45 | _definition.class Loop 46 | _definition.update 2013-09-08 47 | _description.text 48 | ; 49 | The attributes used to specify the aliased names of definitions. 50 | ; 51 | _name.category_id ATTRIBUTES 52 | _name.object_id ALIAS 53 | _category_key.name '_alias.definition_id' 54 | 55 | save_ 56 | 57 | save_alias.definition_id 58 | 59 | _definition.id '_alias.definition_id' 60 | _definition.class Attribute 61 | _definition.update 2019-04-02 62 | _description.text 63 | ; 64 | Identifier tag of an aliased definition. 65 | ; 66 | _name.category_id alias 67 | _name.object_id definition_id 68 | _type.purpose Encode 69 | _type.source Assigned 70 | _type.container Single 71 | _type.contents Tag 72 | 73 | save_ 74 | 75 | save_alias.deprecation_date 76 | 77 | _definition.id '_alias.deprecation_date' 78 | _definition.class Attribute 79 | _definition.update 2024-02-05 80 | _description.text 81 | ; 82 | Date that the aliased tag was deprecated as a definition tag. 83 | 84 | An unquoted value of '.' indicates that the associated alias has not been 85 | deprecated. 86 | ; 87 | _name.category_id alias 88 | _name.object_id deprecation_date 89 | _type.purpose Audit 90 | _type.source Assigned 91 | _type.container Single 92 | _type.contents Date 93 | _enumeration.default . 94 | 95 | save_ 96 | 97 | save_alias.dictionary_uri 98 | 99 | _definition.id '_alias.dictionary_uri' 100 | _definition.class Attribute 101 | _definition.update 2024-04-04 102 | _description.text 103 | ; 104 | An absolute URI of the dictionary that includes the aliased definition. 105 | The URI should preferably point to a specific version of the dictionary 106 | identified by the _alias.dictionary_version attribute, however, a more 107 | general URI, e.g. one that always points to the latest version of the 108 | dictionary, can also be provided when this is not possible. 109 | ; 110 | _name.category_id alias 111 | _name.object_id dictionary_uri 112 | _type.purpose Identify 113 | _type.source Assigned 114 | _type.container Single 115 | _type.contents Uri 116 | 117 | save_ 118 | 119 | save_alias.dictionary_version 120 | 121 | _definition.id '_alias.dictionary_version' 122 | _definition.class Attribute 123 | _definition.update 2024-04-04 124 | _description.text 125 | ; 126 | The version identifier of the dictionary containing a compatible version of 127 | the aliased definition. 128 | ; 129 | _name.category_id alias 130 | _name.object_id dictionary_version 131 | _type.purpose Identify 132 | _type.source Assigned 133 | _type.container Single 134 | _type.contents Text 135 | 136 | save_ 137 | 138 | save_CATEGORY_KEY 139 | 140 | _definition.id CATEGORY_KEY 141 | _definition.scope Category 142 | _definition.class Loop 143 | _definition.update 2020-10-29 144 | _description.text 145 | ; 146 | The attributes used to specify (possibly multiple) 147 | keys for a given category. 148 | ; 149 | _name.category_id ATTRIBUTES 150 | _name.object_id CATEGORY_KEY 151 | _category_key.name '_category_key.name' 152 | 153 | save_ 154 | 155 | save_category_key.name 156 | 157 | _definition.id '_category_key.name' 158 | _definition.class Attribute 159 | _definition.update 2021-08-18 160 | _description.text 161 | ; 162 | A minimal list of tag(s) that together constitute a compound key 163 | to access other items in a Loop category. In other words, the combined 164 | values of the data items listed in this loop must be unique, so that 165 | unambiguous access to a packet (row) in the table of values is possible. 166 | ; 167 | _name.category_id category_key 168 | _name.object_id name 169 | _type.purpose Identify 170 | _type.source Assigned 171 | _type.container Single 172 | _type.contents Tag 173 | 174 | save_ 175 | 176 | save_DEFINITION 177 | 178 | _definition.id DEFINITION 179 | _definition.scope Category 180 | _definition.class Set 181 | _definition.update 2011-06-20 182 | _description.text 183 | ; 184 | The attributes for classifying dictionary definitions. 185 | ; 186 | _name.category_id ATTRIBUTES 187 | _name.object_id DEFINITION 188 | 189 | save_ 190 | 191 | save_definition.class 192 | 193 | _definition.id '_definition.class' 194 | _definition.class Attribute 195 | _definition.update 2019-10-08 196 | _description.text 197 | ; 198 | The nature and the function of a definition or definitions. 199 | ; 200 | _name.category_id definition 201 | _name.object_id class 202 | _type.purpose State 203 | _type.source Assigned 204 | _type.container Single 205 | _type.contents Code 206 | 207 | loop_ 208 | _enumeration_set.state 209 | _enumeration_set.detail 210 | Attribute 211 | ; 212 | Item used as an attribute in the definition of other data items in 213 | DDLm dictionaries. These items never appear in data instance files. 214 | ; 215 | Functions 216 | ; 217 | Category of items that are transient function definitions used only in 218 | dREL methods scripts. These items never appear in data instance files. 219 | ; 220 | Datum 221 | ; 222 | Item defined in a domain-specific dictionary. These items appear only 223 | in data instance files. 224 | ; 225 | Head 226 | ; 227 | Category of items that is the parent of all other categories in the 228 | dictionary. 229 | ; 230 | Loop 231 | ; 232 | Category of items that in a data file may reside in a loop-list with a 233 | key item defined. 234 | ; 235 | Set 236 | ; 237 | Category of items that form a set (but not a loopable list). These 238 | items may be referenced as a class of items in a dREL methods 239 | expression. 240 | ; 241 | 242 | _enumeration.default Datum 243 | 244 | save_ 245 | 246 | save_definition.id 247 | 248 | _definition.id '_definition.id' 249 | _definition.class Attribute 250 | _definition.update 2006-11-16 251 | _description.text 252 | ; 253 | Identifier name of the Item or Category being defined. 254 | ; 255 | _name.category_id definition 256 | _name.object_id id 257 | _type.purpose Identify 258 | _type.source Assigned 259 | _type.container Single 260 | _type.contents Code 261 | 262 | save_ 263 | 264 | save_definition.scope 265 | 266 | _definition.id '_definition.scope' 267 | _definition.class Attribute 268 | _definition.update 2006-11-16 269 | _description.text 270 | ; 271 | The extent to which a definition affects other definitions. 272 | ; 273 | _name.category_id definition 274 | _name.object_id scope 275 | _type.purpose State 276 | _type.source Assigned 277 | _type.container Single 278 | _type.contents Code 279 | 280 | loop_ 281 | _enumeration_set.state 282 | _enumeration_set.detail 283 | Dictionary 'Applies to all defined items in the dictionary.' 284 | Category 'Applies to all defined items in the category.' 285 | Item 'Applies to a single item definition.' 286 | 287 | _enumeration.default Item 288 | 289 | save_ 290 | 291 | save_definition.update 292 | 293 | _definition.id '_definition.update' 294 | _definition.class Attribute 295 | _definition.update 2006-11-16 296 | _description.text 297 | ; 298 | The date that a definition was last changed. 299 | ; 300 | _name.category_id definition 301 | _name.object_id update 302 | _type.purpose Audit 303 | _type.source Assigned 304 | _type.container Single 305 | _type.contents Date 306 | 307 | save_ 308 | 309 | save_DEFINITION_REPLACED 310 | 311 | _definition.id DEFINITION_REPLACED 312 | _definition.scope Category 313 | _definition.class Loop 314 | _definition.update 2019-04-02 315 | _description.text 316 | ; 317 | Attributes used to describe deprecated and replaced definitions. 318 | ; 319 | _name.category_id DEFINITION 320 | _name.object_id DEFINITION_REPLACED 321 | _category_key.name '_definition_replaced.id' 322 | 323 | save_ 324 | 325 | save_definition_replaced.by 326 | 327 | _definition.id '_definition_replaced.by' 328 | _definition.class Attribute 329 | _definition.update 2019-04-02 330 | _description.text 331 | ; 332 | Name of the data item that should be used instead of the defined data 333 | item. The defined data item is deprecated and should not be used. A 334 | value of '.' signifies that the data item is deprecated, with no 335 | replacement. 336 | ; 337 | _name.category_id definition_replaced 338 | _name.object_id by 339 | _type.purpose Encode 340 | _type.source Assigned 341 | _type.container Single 342 | _type.contents Tag 343 | 344 | save_ 345 | 346 | save_definition_replaced.id 347 | 348 | _definition.id '_definition_replaced.id' 349 | _definition.class Attribute 350 | _definition.update 2019-04-02 351 | _description.text 352 | ; 353 | An opaque identifier for the replacement. 354 | ; 355 | _name.category_id definition_replaced 356 | _name.object_id id 357 | _type.purpose Key 358 | _type.source Assigned 359 | _type.container Single 360 | _type.contents Code 361 | 362 | save_ 363 | 364 | save_DESCRIPTION 365 | 366 | _definition.id DESCRIPTION 367 | _definition.scope Category 368 | _definition.class Set 369 | _definition.update 2011-06-20 370 | _description.text 371 | ; 372 | The attributes of descriptive (non-machine parsable) parts of 373 | definitions. 374 | ; 375 | _name.category_id ATTRIBUTES 376 | _name.object_id DESCRIPTION 377 | 378 | save_ 379 | 380 | save_description.common 381 | 382 | _definition.id '_description.common' 383 | _definition.class Attribute 384 | _definition.update 2006-11-16 385 | _description.text 386 | ; 387 | Commonly-used identifying name for the item. 388 | ; 389 | _description.common 'common name' 390 | _name.category_id description 391 | _name.object_id common 392 | _type.purpose Describe 393 | _type.source Assigned 394 | _type.container Single 395 | _type.contents Text 396 | 397 | save_ 398 | 399 | save_description.key_words 400 | 401 | _definition.id '_description.key_words' 402 | _definition.class Attribute 403 | _definition.update 2013-03-06 404 | _description.text 405 | ; 406 | List of key-words categorising the item. 407 | ; 408 | _description.common 'key words' 409 | _name.category_id description 410 | _name.object_id key_words 411 | _type.purpose Encode 412 | _type.source Assigned 413 | _type.container Single 414 | _type.contents Text 415 | 416 | save_ 417 | 418 | save_description.text 419 | 420 | _definition.id '_description.text' 421 | _definition.class Attribute 422 | _definition.update 2021-07-20 423 | _description.text 424 | ; 425 | The text description of the defined item, category, 426 | or dictionary. 427 | ; 428 | _description.common description 429 | _name.category_id description 430 | _name.object_id text 431 | _type.purpose Describe 432 | _type.source Assigned 433 | _type.container Single 434 | _type.contents Text 435 | 436 | save_ 437 | 438 | save_DESCRIPTION_EXAMPLE 439 | 440 | _definition.id DESCRIPTION_EXAMPLE 441 | _definition.scope Category 442 | _definition.class Loop 443 | _definition.update 2021-07-20 444 | _description.text 445 | ; 446 | Descriptive (non-machine parsable) examples of values of the 447 | defined items and categories. 448 | ; 449 | _name.category_id DESCRIPTION 450 | _name.object_id DESCRIPTION_EXAMPLE 451 | _category_key.name '_description_example.case' 452 | 453 | save_ 454 | 455 | save_description_example.case 456 | 457 | _definition.id '_description_example.case' 458 | _definition.class Attribute 459 | _definition.update 2021-11-15 460 | _description.text 461 | ; 462 | An example case of the defined item or category. Category example cases 463 | present data names and values as they would appear in a CIF-formatted file. 464 | Item example cases present values only, which inherit the enumeration range, 465 | enumeration set, container, dimension, content and purpose type constraints 466 | of the defining item. 467 | ; 468 | _name.category_id description_example 469 | _name.object_id case 470 | _type.purpose Describe 471 | _type.source Assigned 472 | _type.container Implied 473 | _type.contents Implied 474 | 475 | save_ 476 | 477 | save_description_example.detail 478 | 479 | _definition.id '_description_example.detail' 480 | _definition.class Attribute 481 | _definition.update 2021-07-20 482 | _description.text 483 | ; 484 | A description of an example case for the defined item or category. 485 | ; 486 | _name.category_id description_example 487 | _name.object_id detail 488 | _type.purpose Describe 489 | _type.source Assigned 490 | _type.container Single 491 | _type.contents Text 492 | 493 | save_ 494 | 495 | save_DICTIONARY 496 | 497 | _definition.id DICTIONARY 498 | _definition.scope Category 499 | _definition.class Set 500 | _definition.update 2011-06-20 501 | _description.text 502 | ; 503 | Attributes for identifying and registering the dictionary. The items 504 | in this category are NOT used as attributes of INDIVIDUAL data items. 505 | ; 506 | _name.category_id ATTRIBUTES 507 | _name.object_id DICTIONARY 508 | 509 | save_ 510 | 511 | save_dictionary.class 512 | 513 | _definition.id '_dictionary.class' 514 | _definition.class Attribute 515 | _definition.update 2012-05-07 516 | _description.text 517 | ; 518 | The nature, or field of interest, of data items defined in the dictionary. 519 | ; 520 | _name.category_id dictionary 521 | _name.object_id class 522 | _type.purpose State 523 | _type.source Assigned 524 | _type.container Single 525 | _type.contents Code 526 | 527 | loop_ 528 | _enumeration_set.state 529 | _enumeration_set.detail 530 | Reference 'DDLm reference attribute definitions.' 531 | Instance 'Domain-specific data instance definitions.' 532 | Template 'Domain-specific attribute/enumeration templates.' 533 | Function 'Domain-specific method function scripts.' 534 | 535 | _enumeration.default Instance 536 | 537 | save_ 538 | 539 | save_dictionary.date 540 | 541 | _definition.id '_dictionary.date' 542 | _definition.class Attribute 543 | _definition.update 2006-11-16 544 | _description.text 545 | ; 546 | The date that the last dictionary revision took place. 547 | ; 548 | _name.category_id dictionary 549 | _name.object_id date 550 | _type.purpose Audit 551 | _type.source Assigned 552 | _type.container Single 553 | _type.contents Date 554 | 555 | save_ 556 | 557 | save_dictionary.ddl_conformance 558 | 559 | _definition.id '_dictionary.ddl_conformance' 560 | _definition.class Attribute 561 | _definition.update 2006-11-16 562 | _description.text 563 | ; 564 | The version number of the DDL dictionary that this dictionary 565 | conforms to. 566 | ; 567 | _name.category_id dictionary 568 | _name.object_id ddl_conformance 569 | _type.purpose Audit 570 | _type.source Assigned 571 | _type.container Single 572 | _type.contents Version 573 | 574 | save_ 575 | 576 | save_dictionary.doi 577 | 578 | _definition.id '_dictionary.DOI' 579 | _definition.class Attribute 580 | _definition.update 2023-06-19 581 | _description.text 582 | ; 583 | The digital object identifier (DOI) of the dictionary. 584 | ; 585 | _name.category_id dictionary 586 | _name.object_id doi 587 | _type.purpose Identify 588 | _type.source Assigned 589 | _type.container Single 590 | _type.contents Text 591 | _description_example.case 10.5555/12345678 592 | 593 | save_ 594 | 595 | save_dictionary.formalism 596 | 597 | _definition.id '_dictionary.formalism' 598 | _definition.class Attribute 599 | _definition.update 2021-08-18 600 | _description.text 601 | ; 602 | The definitions contained in this dictionary are associated 603 | with the value of this attribute. Data items may only be 604 | redefined if the value of this attribute is also changed, and 605 | any such redefinitions must include the original behaviour as 606 | a particular case. 607 | ; 608 | _name.category_id dictionary 609 | _name.object_id formalism 610 | _type.purpose Audit 611 | _type.source Assigned 612 | _type.container Single 613 | _type.contents Text 614 | 615 | save_ 616 | 617 | save_dictionary.namespace 618 | 619 | _definition.id '_dictionary.namespace' 620 | _definition.class Attribute 621 | _definition.update 2006-12-05 622 | _description.text 623 | ; 624 | The namespace code that may be prefixed (with a trailing double colon 625 | '::') to an item tag defined in the defining dictionary when used 626 | in particular applications. Because tags must be unique, namespace 627 | codes are unlikely to be used in data files. 628 | ; 629 | _name.category_id dictionary 630 | _name.object_id namespace 631 | _type.purpose Audit 632 | _type.source Assigned 633 | _type.container Single 634 | _type.contents Code 635 | 636 | save_ 637 | 638 | save_dictionary.title 639 | 640 | _definition.id '_dictionary.title' 641 | _definition.class Attribute 642 | _definition.update 2006-11-16 643 | _description.text 644 | ; 645 | The common title of the dictionary. Will usually match the name 646 | attached to the data_ statement of the dictionary file. 647 | ; 648 | _name.category_id dictionary 649 | _name.object_id title 650 | _type.purpose Audit 651 | _type.source Assigned 652 | _type.container Single 653 | _type.contents Code 654 | 655 | save_ 656 | 657 | save_dictionary.uri 658 | 659 | _definition.id '_dictionary.uri' 660 | _definition.class Attribute 661 | _definition.update 2006-11-16 662 | _description.text 663 | ; 664 | An absolute uniform resource identifier (URI) for this dictionary. 665 | ; 666 | _name.category_id dictionary 667 | _name.object_id uri 668 | _type.purpose Identify 669 | _type.source Assigned 670 | _type.container Single 671 | _type.contents Uri 672 | 673 | save_ 674 | 675 | save_dictionary.version 676 | 677 | _definition.id '_dictionary.version' 678 | _definition.class Attribute 679 | _definition.update 2017-07-21 680 | _description.text 681 | ; 682 | A unique version identifier for the dictionary. 683 | ; 684 | _name.category_id dictionary 685 | _name.object_id version 686 | _type.purpose Audit 687 | _type.source Assigned 688 | _type.container Single 689 | _type.contents Version 690 | 691 | save_ 692 | 693 | save_DICTIONARY_AUDIT 694 | 695 | _definition.id DICTIONARY_AUDIT 696 | _definition.scope Category 697 | _definition.class Loop 698 | _definition.update 2013-09-08 699 | _description.text 700 | ; 701 | Attributes for identifying and registering the dictionary. The items 702 | in this category are NOT used as attributes of individual data items. 703 | ; 704 | _name.category_id DICTIONARY 705 | _name.object_id DICTIONARY_AUDIT 706 | _category_key.name '_dictionary_audit.version' 707 | 708 | save_ 709 | 710 | save_dictionary_audit.date 711 | 712 | _definition.id '_dictionary_audit.date' 713 | _definition.class Attribute 714 | _definition.update 2011-06-27 715 | _description.text 716 | ; 717 | The date of each dictionary revision. 718 | ; 719 | _name.category_id dictionary_audit 720 | _name.object_id date 721 | _type.purpose Audit 722 | _type.source Assigned 723 | _type.container Single 724 | _type.contents Date 725 | 726 | save_ 727 | 728 | save_dictionary_audit.revision 729 | 730 | _definition.id '_dictionary_audit.revision' 731 | _definition.class Attribute 732 | _definition.update 2011-06-27 733 | _description.text 734 | ; 735 | A description of the revision applied for the _dictionary_audit.version. 736 | ; 737 | _name.category_id dictionary_audit 738 | _name.object_id revision 739 | _type.purpose Describe 740 | _type.source Assigned 741 | _type.container Single 742 | _type.contents Text 743 | 744 | save_ 745 | 746 | save_dictionary_audit.version 747 | 748 | _definition.id '_dictionary_audit.version' 749 | _definition.class Attribute 750 | _definition.update 2019-04-02 751 | _description.text 752 | ; 753 | A unique version identifier for each revision of the dictionary. 754 | ; 755 | _name.category_id dictionary_audit 756 | _name.object_id version 757 | _type.purpose Encode 758 | _type.source Assigned 759 | _type.container Single 760 | _type.contents Version 761 | 762 | save_ 763 | 764 | save_DICTIONARY_AUTHOR 765 | 766 | _definition.id DICTIONARY_AUTHOR 767 | _definition.scope Category 768 | _definition.class Loop 769 | _definition.update 2023-06-02 770 | _description.text 771 | ; 772 | Attributes used to record the dictionary author information. 773 | ; 774 | _name.category_id DICTIONARY 775 | _name.object_id DICTIONARY_AUTHOR 776 | _category_key.name '_dictionary_author.id' 777 | 778 | save_ 779 | 780 | save_dictionary_author.email 781 | 782 | _definition.id '_dictionary_author.email' 783 | _definition.class Attribute 784 | _definition.update 2023-07-13 785 | _description.text 786 | ; 787 | The electronic mail address of an author of the dictionary, in a form 788 | recognizable to international networks. The format of e-mail addresses is 789 | given in Section 3.4, Address Specification, of Internet Message Format, 790 | RFC 2822, P. Resnick (Editor), Network Standards Group, April 2001. 791 | ; 792 | _name.category_id dictionary_author 793 | _name.object_id email 794 | _type.purpose Encode 795 | _type.source Recorded 796 | _type.container Single 797 | _type.contents Text 798 | 799 | loop_ 800 | _description_example.case 801 | name@host.domain.country 802 | bm@iucr.org 803 | 804 | save_ 805 | 806 | save_dictionary_author.id 807 | 808 | _definition.id '_dictionary_author.id' 809 | _definition.class Attribute 810 | _definition.update 2023-07-13 811 | _description.text 812 | ; 813 | Arbitrary identifier for this author. 814 | ; 815 | _name.category_id dictionary_author 816 | _name.object_id id 817 | _type.purpose Key 818 | _type.source Related 819 | _type.container Single 820 | _type.contents Word 821 | 822 | save_ 823 | 824 | save_dictionary_author.id_orcid 825 | 826 | _definition.id '_dictionary_author.id_ORCID' 827 | _definition.class Attribute 828 | _definition.update 2023-07-13 829 | _description.text 830 | ; 831 | Identifier in the ORCID Registry of a publication 832 | author. ORCID is an open, non-profit, community-driven 833 | service to provide a registry of unique researcher 834 | identifiers (https://orcid.org/). 835 | ; 836 | _name.category_id dictionary_author 837 | _name.object_id id_ORCID 838 | _type.purpose Encode 839 | _type.source Recorded 840 | _type.container Single 841 | _type.contents Code 842 | _description_example.case 0000-0003-0391-0002 843 | 844 | save_ 845 | 846 | save_dictionary_author.name 847 | 848 | _definition.id '_dictionary_author.name' 849 | _definition.class Attribute 850 | _definition.update 2025-02-19 851 | _description.text 852 | ; 853 | The name of an author of this dictionary. The family name(s), followed 854 | by a comma and including any dynastic components, precedes the first 855 | name(s) or initial(s). For authors with only one name, provide the full 856 | name without abbreviation. 857 | ; 858 | _name.category_id dictionary_author 859 | _name.object_id name 860 | _type.purpose Describe 861 | _type.source Recorded 862 | _type.container Single 863 | _type.contents Text 864 | 865 | loop_ 866 | _description_example.case 867 | "Bleary, Percival R." 868 | "O'Neil, F.K." 869 | "Van den Bossche, G." 870 | "Yang, D.-L." 871 | "Simonov, Yu.A." 872 | "Müller, H.A." 873 | "Ross II, C.R." 874 | "Chandra" 875 | 876 | save_ 877 | 878 | save_DICTIONARY_VALID 879 | 880 | _definition.id DICTIONARY_VALID 881 | _definition.scope Category 882 | _definition.class Loop 883 | _definition.update 2021-07-20 884 | _description.text 885 | ; 886 | Data items which are used to specify the contents of definitions in 887 | the dictionary in terms of the _definition.scope and the required 888 | and prohibited attributes. Validation rules described by data items 889 | in this category apply only to Reference and Instance dictionaries. 890 | ; 891 | _name.category_id DICTIONARY 892 | _name.object_id DICTIONARY_VALID 893 | 894 | loop_ 895 | _category_key.name 896 | '_dictionary_valid.scope' 897 | '_dictionary_valid.option' 898 | 899 | save_ 900 | 901 | save_dictionary_valid.application 902 | 903 | _definition.id '_dictionary_valid.application' 904 | _definition.class Attribute 905 | _definition_replaced.id 1 906 | _definition_replaced.by . 907 | _definition.update 2021-07-20 908 | _description.text 909 | ; 910 | Deprecated. Provides the information identifying the definition scope 911 | (from the _definition.scope enumeration list) and the validity options 912 | (from the _dictionary_valid.option enumeration list), as a two element 913 | list. 914 | ; 915 | _name.category_id dictionary_valid 916 | _name.object_id application 917 | _type.purpose Encode 918 | _type.source Assigned 919 | _type.container List 920 | _type.dimension '[2]' 921 | _type.contents Code 922 | _method.purpose Evaluation 923 | _method.expression 924 | ; 925 | _dictionary_valid.application 926 | = [_dictionary_valid.scope,_dictionary_valid.option] 927 | ; 928 | 929 | save_ 930 | 931 | save_dictionary_valid.attributes 932 | 933 | _definition.id '_dictionary_valid.attributes' 934 | _definition.class Attribute 935 | _definition.update 2021-07-21 936 | _description.text 937 | ; 938 | A list of the attribute names and categories that are assessed 939 | for application in the item, category and dictionary definitions. A 940 | parent attribute category implicitly recursively includes all child 941 | categories. 942 | ; 943 | _name.category_id dictionary_valid 944 | _name.object_id attributes 945 | _type.purpose Audit 946 | _type.source Assigned 947 | _type.container List 948 | _type.dimension '[]' 949 | _type.contents Code 950 | 951 | save_ 952 | 953 | save_dictionary_valid.option 954 | 955 | _definition.id '_dictionary_valid.option' 956 | _definition.class Attribute 957 | _definition.update 2021-07-20 958 | _description.text 959 | ; 960 | Option codes for applicability of attributes in definitions. Attributes 961 | not listed as 'Prohibited' for a given scope are allowed in that scope. 962 | ; 963 | _name.category_id dictionary_valid 964 | _name.object_id option 965 | _type.purpose State 966 | _type.source Assigned 967 | _type.container Single 968 | _type.contents Code 969 | 970 | loop_ 971 | _enumeration_set.state 972 | _enumeration_set.detail 973 | Mandatory 'Attribute must be present in definition frame.' 974 | Recommended 'Attribute is usually in definition frame.' 975 | Prohibited 'Attribute must not be used in definition frame.' 976 | 977 | _enumeration.default Recommended 978 | 979 | save_ 980 | 981 | save_dictionary_valid.scope 982 | 983 | _definition.id '_dictionary_valid.scope' 984 | _definition.class Attribute 985 | _definition.update 2015-01-28 986 | _description.text 987 | ; 988 | The scope to which the specified restriction on usable 989 | attributes applies. 990 | ; 991 | _name.category_id dictionary_valid 992 | _name.object_id scope 993 | _type.purpose Audit 994 | _type.source Assigned 995 | _type.container Single 996 | _type.contents Code 997 | 998 | loop_ 999 | _enumeration_set.state 1000 | _enumeration_set.detail 1001 | Dictionary 'Restriction applies to dictionary definition.' 1002 | Category 'Restriction applies to a category definition.' 1003 | Item 'Restriction applies to an item definition.' 1004 | 1005 | save_ 1006 | 1007 | save_ENUMERATION 1008 | 1009 | _definition.id ENUMERATION 1010 | _definition.scope Category 1011 | _definition.class Set 1012 | _definition.update 2011-06-20 1013 | _description.text 1014 | ; 1015 | The attributes for restricting the values of defined data items. 1016 | ; 1017 | _name.category_id ATTRIBUTES 1018 | _name.object_id ENUMERATION 1019 | 1020 | save_ 1021 | 1022 | save_enumeration.def_index_id 1023 | 1024 | _definition.id '_enumeration.def_index_id' 1025 | _definition.class Attribute 1026 | _definition_replaced.id 1 1027 | _definition_replaced.by '_enumeration.def_index_ids' 1028 | _definition.update 2023-06-23 1029 | _description.text 1030 | ; 1031 | Deprecated. The _enumeration.def_index_ids data item should be 1032 | used instead of this item. 1033 | 1034 | Specifies the data name of the item with a value used as an index 1035 | to the DEFAULT enumeration list (in category enumeration_default) 1036 | in order to select the default enumeration value for the 1037 | defined item. The value of the identified data item must match 1038 | one of the _enumeration_default.index values. 1039 | ; 1040 | _name.category_id enumeration 1041 | _name.object_id def_index_id 1042 | _type.purpose Identify 1043 | _type.source Assigned 1044 | _type.container Single 1045 | _type.contents Tag 1046 | 1047 | save_ 1048 | 1049 | save_enumeration.def_index_ids 1050 | 1051 | _definition.id '_enumeration.def_index_ids' 1052 | _definition.class Attribute 1053 | _definition.update 2023-06-23 1054 | _description.text 1055 | ; 1056 | Specifies the data names of items that are collectively used to identify 1057 | the suitable default value in the ENUMERATION_DEFAULTS category loop. 1058 | The values of these items are used to construct an ordered list which is 1059 | checked against the values of the _enumeration_defaults.index attribute. 1060 | ; 1061 | _name.category_id enumeration 1062 | _name.object_id def_index_ids 1063 | _type.purpose Identify 1064 | _type.source Assigned 1065 | _type.container List 1066 | _type.dimension '[]' 1067 | _type.contents Tag 1068 | 1069 | save_ 1070 | 1071 | save_enumeration.default 1072 | 1073 | _definition.id '_enumeration.default' 1074 | _definition.class Attribute 1075 | _definition.update 2021-11-15 1076 | _description.text 1077 | ; 1078 | The default value for the defined item if it is not specified explicitly. 1079 | Value of this attribute inherits the enumeration range, enumeration set, 1080 | container, dimension, content and purpose type constraints of the defining 1081 | item. 1082 | ; 1083 | _name.category_id enumeration 1084 | _name.object_id default 1085 | _type.purpose Encode 1086 | _type.source Assigned 1087 | _type.container Implied 1088 | _type.contents Implied 1089 | 1090 | save_ 1091 | 1092 | save_enumeration.mandatory 1093 | 1094 | _definition.id '_enumeration.mandatory' 1095 | _definition.class Attribute 1096 | _definition.update 2012-05-07 1097 | _description.text 1098 | ; 1099 | Yes or No flag on whether the enumerate states specified for an 1100 | item in the current definition (in which item appears) MUST be 1101 | used on instantiation. 1102 | ; 1103 | _name.category_id enumeration 1104 | _name.object_id mandatory 1105 | _type.purpose State 1106 | _type.source Assigned 1107 | _type.container Single 1108 | _type.contents Code 1109 | 1110 | loop_ 1111 | _enumeration_set.state 1112 | _enumeration_set.detail 1113 | Yes 'Use of state is mandatory.' 1114 | No 'Use of state is unnecessary.' 1115 | 1116 | _enumeration.default Yes 1117 | 1118 | save_ 1119 | 1120 | save_enumeration.range 1121 | 1122 | _definition.id '_enumeration.range' 1123 | _definition.class Attribute 1124 | _definition.update 2023-01-09 1125 | _description.text 1126 | ; 1127 | The inclusive range of numerical values allowed for the defined item. 1128 | If the defined item has associated SU values, the reported data values 1129 | may fall outside these limits. 1130 | ; 1131 | _name.category_id enumeration 1132 | _name.object_id range 1133 | _type.purpose Encode 1134 | _type.source Assigned 1135 | _type.container Single 1136 | _type.contents Range 1137 | 1138 | loop_ 1139 | _description_example.case 1140 | _description_example.detail 1141 | -4:10 1142 | ; 1143 | Values must be no less than -4 and no greater than 10. 1144 | ; 1145 | 0: 1146 | ; 1147 | Values must be greater than or equal to 0. 1148 | ; 1149 | :3.1415 1150 | ; 1151 | Values must be less than or equal to 3.1415. 1152 | ; 1153 | 1154 | save_ 1155 | 1156 | save_ENUMERATION_DEFAULT 1157 | 1158 | _definition.id ENUMERATION_DEFAULT 1159 | _definition.scope Category 1160 | _definition.class Loop 1161 | _definition.update 2023-06-23 1162 | _description.text 1163 | ; 1164 | Deprecated. The ENUMERATION_DEFAULTS category should be used instead 1165 | of this category. 1166 | 1167 | Loop of pre-determined default enumeration values indexed to a 1168 | data item by the item _enumeration.def_index_id. 1169 | ; 1170 | _name.category_id ENUMERATION 1171 | _name.object_id ENUMERATION_DEFAULT 1172 | _category_key.name '_enumeration_default.index' 1173 | 1174 | save_ 1175 | 1176 | save_enumeration_default.index 1177 | 1178 | _definition.id '_enumeration_default.index' 1179 | _definition.class Attribute 1180 | _definition_replaced.id 1 1181 | _definition_replaced.by '_enumeration_defaults.index' 1182 | _definition.update 2023-06-23 1183 | _description.text 1184 | ; 1185 | Deprecated. The _enumeration_defaults.index data item should be 1186 | used instead of this item. 1187 | 1188 | Index key in the list default values referenced to by the value 1189 | of _enumeration.def_index_id. 1190 | ; 1191 | _name.category_id enumeration_default 1192 | _name.object_id index 1193 | _type.purpose Encode 1194 | _type.source Assigned 1195 | _type.container Single 1196 | _type.contents Code 1197 | 1198 | save_ 1199 | 1200 | save_enumeration_default.value 1201 | 1202 | _definition.id '_enumeration_default.value' 1203 | _definition.class Attribute 1204 | _definition_replaced.id 1 1205 | _definition_replaced.by '_enumeration_defaults.value' 1206 | _definition.update 2023-06-23 1207 | _description.text 1208 | ; 1209 | Deprecated. The _enumeration_defaults.value data item should be 1210 | used instead of this item. 1211 | 1212 | Default enumeration value in the list referenced by the value of 1213 | _enumeration.def_index_id. The reference index key is given by 1214 | the value of _enumeration_default.index value. 1215 | ; 1216 | _name.category_id enumeration_default 1217 | _name.object_id value 1218 | _type.purpose Encode 1219 | _type.source Assigned 1220 | _type.container Implied 1221 | _type.contents Implied 1222 | 1223 | save_ 1224 | 1225 | save_ENUMERATION_DEFAULTS 1226 | 1227 | _definition.id ENUMERATION_DEFAULTS 1228 | _definition.scope Category 1229 | _definition.class Loop 1230 | _definition.update 2023-06-23 1231 | _description.text 1232 | ; 1233 | Loop of pre-determined default enumeration values indexed by a set of data 1234 | items specified using the _enumeration.def_index_ids attribute. 1235 | ; 1236 | _name.category_id ENUMERATION 1237 | _name.object_id ENUMERATION_DEFAULTS 1238 | _category_key.name '_enumeration_defaults.index' 1239 | 1240 | save_ 1241 | 1242 | save_enumeration_defaults.index 1243 | 1244 | _definition.id '_enumeration_defaults.index' 1245 | _definition.class Attribute 1246 | _definition.update 2023-06-23 1247 | _description.text 1248 | ; 1249 | An index value, in the form of an ordered list, which allows the 1250 | identification of the most suitable default value. The order of values in 1251 | the list must correspond to the order of the related data item references 1252 | in the _enumeration.def_index_ids attribute list. That is, the n^th^ list 1253 | element is assumed to represent a value that may be assigned to the data 1254 | item referenced at the n^th^ position of the _enumeration.def_index_ids 1255 | attribute list value. 1256 | 1257 | The constituent values of the _enumeration_defaults.index attribute inherit 1258 | the enumeration range, enumeration set, and the content type from the 1259 | data item with which they are paired. 1260 | ; 1261 | _name.category_id enumeration_defaults 1262 | _name.object_id index 1263 | _type.purpose Encode 1264 | _type.source Assigned 1265 | _type.container List 1266 | _type.dimension '[]' 1267 | _type.contents Inherited 1268 | 1269 | save_ 1270 | 1271 | save_enumeration_defaults.source_id 1272 | 1273 | _definition.id '_enumeration_defaults.source_id' 1274 | _definition.class Attribute 1275 | _definition.update 2023-07-13 1276 | _description.text 1277 | ; 1278 | An identifier which corresponds to an entry in the ENUMERATION_SOURCE 1279 | category loop. Used to provide a reference to the original source of 1280 | a specific enumeration value. 1281 | ; 1282 | _name.category_id enumeration_defaults 1283 | _name.object_id source_id 1284 | _name.linked_item_id '_enumeration_source.id' 1285 | _type.purpose Link 1286 | _type.source Related 1287 | _type.container Single 1288 | _type.contents Word 1289 | 1290 | save_ 1291 | 1292 | save_enumeration_defaults.value 1293 | 1294 | _definition.id '_enumeration_defaults.value' 1295 | _definition.class Attribute 1296 | _definition.update 2023-06-23 1297 | _description.text 1298 | ; 1299 | The default enumeration value associated with a specific index value 1300 | constructed using data items referenced by the _enumeration.def_index_ids 1301 | attribute. The associated index value is provided using the 1302 | _enumeration_defaults.index attribute. 1303 | ; 1304 | _name.category_id enumeration_defaults 1305 | _name.object_id value 1306 | _type.purpose Encode 1307 | _type.source Assigned 1308 | _type.container Implied 1309 | _type.contents Implied 1310 | 1311 | save_ 1312 | 1313 | save_ENUMERATION_SET 1314 | 1315 | _definition.id ENUMERATION_SET 1316 | _definition.scope Category 1317 | _definition.class Loop 1318 | _definition.update 2013-09-08 1319 | _description.text 1320 | ; 1321 | Attributes of data items which are used to define a 1322 | set of unique pre-determined values. 1323 | ; 1324 | _name.category_id ENUMERATION 1325 | _name.object_id ENUMERATION_SET 1326 | _category_key.name '_enumeration_set.state' 1327 | 1328 | save_ 1329 | 1330 | save_enumeration_set.detail 1331 | 1332 | _definition.id '_enumeration_set.detail' 1333 | _definition.class Attribute 1334 | _definition.update 2011-06-27 1335 | _description.text 1336 | ; 1337 | The meaning of the code (identified by _enumeration_set.state) 1338 | in terms of the value of the quantity it describes. 1339 | ; 1340 | _name.category_id enumeration_set 1341 | _name.object_id detail 1342 | _type.purpose Describe 1343 | _type.source Assigned 1344 | _type.container Single 1345 | _type.contents Text 1346 | 1347 | save_ 1348 | 1349 | save_enumeration_set.state 1350 | 1351 | _definition.id '_enumeration_set.state' 1352 | _definition.class Attribute 1353 | _definition.update 2023-11-07 1354 | _description.text 1355 | ; 1356 | Permitted value state for the defined item. Value of this attribute inherits 1357 | the enumeration range, enumeration set, container, dimension, content and 1358 | purpose type constraints of the defining item. 1359 | ; 1360 | _name.category_id enumeration_set 1361 | _name.object_id state 1362 | _type.purpose Encode 1363 | _type.source Assigned 1364 | _type.container Implied 1365 | _type.contents Implied 1366 | 1367 | save_ 1368 | 1369 | save_ENUMERATION_SOURCE 1370 | 1371 | _definition.id ENUMERATION_SOURCE 1372 | _definition.scope Category 1373 | _definition.class Loop 1374 | _definition.update 2023-06-23 1375 | _description.text 1376 | ; 1377 | Attributes used to record the original sources of the default values 1378 | enumerated using the ENUMERATION_DEFAULTS category. 1379 | ; 1380 | _name.category_id ENUMERATION 1381 | _name.object_id ENUMERATION_SOURCE 1382 | _category_key.name '_enumeration_source.id' 1383 | 1384 | loop_ 1385 | _description_example.case 1386 | _description_example.detail 1387 | ; 1388 | loop_ 1389 | _enumeration_source.id 1390 | _enumeration_source.reference 1391 | a 'International Tables Vol. C Table 4.4.4.1 2nd ed.' 1392 | b 'International Tables Vol. H Table 4.3.2.1 1st ed.' 1393 | 1394 | loop_ 1395 | _enumeration_defaults.index 1396 | _enumeration_defaults.value 1397 | _enumeration_defaults.source_id 1398 | [ H ] 1 a 1399 | [ H- ] 2 a 1400 | [ He ] 2 b 1401 | # ... 1402 | ; 1403 | ; 1404 | There are two sources for the default values given in the enumeration. 1405 | Entries marked with 'a' come from Table 4.4.4.1 in the 2nd edition of 1406 | Volume C of the International Tables of Crystallography. Entries marked 1407 | with 'b' come from Table 4.3.2.1 in the 1st edition of Volume H of the 1408 | International Tables of Crystallography. 1409 | ; 1410 | ; 1411 | _enumeration_source.reference 1412 | 'https://doi.org/10.1107/S2053273322010944, Table S4' 1413 | 1414 | loop_ 1415 | _enumeration_defaults.index 1416 | _enumeration_defaults.value 1417 | [ He ] 0.8733928 1418 | [ Li ] 1.129319 1419 | [ Be ] 1.592162 1420 | # ... 1421 | ; 1422 | ; 1423 | There is a single source for all default values given in the 1424 | enumeration. All entries can be found in Table S4 of the material 1425 | referenced by the given DOI. 1426 | ; 1427 | 1428 | save_ 1429 | 1430 | save_enumeration_source.id 1431 | 1432 | _definition.id '_enumeration_source.id' 1433 | _definition.class Attribute 1434 | _definition.update 2023-06-23 1435 | _description.text 1436 | ; 1437 | A unique identifier of the source material from which the 1438 | _enumeration_defaults.value attribute values were taken. 1439 | ; 1440 | _name.category_id enumeration_source 1441 | _name.object_id id 1442 | _type.purpose Key 1443 | _type.source Assigned 1444 | _type.container Single 1445 | _type.contents Word 1446 | 1447 | save_ 1448 | 1449 | save_enumeration_source.reference 1450 | 1451 | _definition.id '_enumeration_source.reference' 1452 | _definition.class Attribute 1453 | _definition.update 2023-06-23 1454 | _description.text 1455 | ; 1456 | Bibliographic information sufficient to identify the original source of 1457 | the associated _enumeration_defaults.value attribute values. 1458 | ; 1459 | _name.category_id enumeration_source 1460 | _name.object_id reference 1461 | _type.purpose Describe 1462 | _type.source Assigned 1463 | _type.container Single 1464 | _type.contents Text 1465 | 1466 | save_ 1467 | 1468 | save_IMPORT 1469 | 1470 | _definition.id IMPORT 1471 | _definition.scope Category 1472 | _definition.class Set 1473 | _definition.update 2011-06-27 1474 | _description.text 1475 | ; 1476 | Used to import the values of specific attributes from other dictionary 1477 | definitions within and without the current dictionary. 1478 | ; 1479 | _name.category_id ATTRIBUTES 1480 | _name.object_id IMPORT 1481 | 1482 | save_ 1483 | 1484 | save_import.get 1485 | 1486 | _definition.id '_import.get' 1487 | _definition.class Attribute 1488 | _definition.update 2023-11-13 1489 | _description.text 1490 | ; 1491 | A list of tables of attributes defined individually in the category 1492 | IMPORT_DETAILS, used to import definitions from other dictionaries. 1493 | ; 1494 | _name.category_id import 1495 | _name.object_id get 1496 | _type.purpose Import 1497 | _type.source Assigned 1498 | _type.container List 1499 | _type.dimension '[]' 1500 | _type.contents ByReference 1501 | _type.contents_referenced_id '_import_details.single' 1502 | _method.purpose Evaluation 1503 | _method.expression 1504 | ; 1505 | imp_order_list = [] 1506 | loop id as import_details { 1507 | imp_order_list ++= id.order 1508 | } 1509 | imp_order_list = sort(imp_order_list) 1510 | final_val = [] 1511 | for ord in imp_order_list { 1512 | final_val ++= import_details[ord].single 1513 | } 1514 | _import.get = final_val 1515 | ; 1516 | 1517 | save_ 1518 | 1519 | save_IMPORT_DETAILS 1520 | 1521 | _definition.id IMPORT_DETAILS 1522 | _definition.scope Category 1523 | _definition.class Loop 1524 | _definition.update 2015-05-06 1525 | _description.text 1526 | ; 1527 | Items in IMPORT_DETAILS describe individual attributes of an import 1528 | operation. 1529 | ; 1530 | _name.category_id IMPORT 1531 | _name.object_id IMPORT_DETAILS 1532 | _category_key.name '_import_details.order' 1533 | 1534 | save_ 1535 | 1536 | save_import_details.file_id 1537 | 1538 | _definition.id '_import_details.file_id' 1539 | _definition.class Attribute 1540 | _definition.update 2021-02-03 1541 | _description.text 1542 | ; 1543 | A URI reference as per RFC 3986 giving the location of the source 1544 | dictionary. When a relative URI is used, the base URI for the URI reference 1545 | is the _dictionary.uri of the importing dictionary. 1546 | ; 1547 | _name.category_id import_details 1548 | _name.object_id file_id 1549 | _type.purpose Identify 1550 | _type.source Assigned 1551 | _type.container Single 1552 | _type.contents Uri 1553 | 1554 | save_ 1555 | 1556 | save_import_details.file_version 1557 | 1558 | _definition.id '_import_details.file_version' 1559 | _definition.class Attribute 1560 | _definition.update 2017-07-21 1561 | _description.text 1562 | ; 1563 | The required version number for _dictionary.version of the 1564 | imported dictionary. Dictionaries with the same major version 1565 | number are compatible. If absent or null, any version is permitted. 1566 | ; 1567 | _name.category_id import_details 1568 | _name.object_id file_version 1569 | _type.purpose Identify 1570 | _type.source Assigned 1571 | _type.container Single 1572 | _type.contents Version 1573 | 1574 | save_ 1575 | 1576 | save_import_details.frame_id 1577 | 1578 | _definition.id '_import_details.frame_id' 1579 | _definition.class Attribute 1580 | _definition.update 2021-08-18 1581 | _description.text 1582 | ; 1583 | The save frame code of the definition frame to be imported. 1584 | ; 1585 | _name.category_id import_details 1586 | _name.object_id frame_id 1587 | _type.purpose Identify 1588 | _type.source Assigned 1589 | _type.container Single 1590 | _type.contents Code 1591 | 1592 | save_ 1593 | 1594 | save_import_details.if_dupl 1595 | 1596 | _definition.id '_import_details.if_dupl' 1597 | _definition.class Attribute 1598 | _definition.update 2021-11-09 1599 | _description.text 1600 | ; 1601 | Code identifying the action taken if the requested definition block 1602 | already exists within the importing dictionary in 'Full' mode, or 1603 | an attribute exists in both the importing definition block and the 1604 | requested definition block in 'Contents' mode. 1605 | ; 1606 | _name.category_id import_details 1607 | _name.object_id if_dupl 1608 | _type.purpose State 1609 | _type.source Assigned 1610 | _type.container Single 1611 | _type.contents Code 1612 | 1613 | loop_ 1614 | _enumeration_set.state 1615 | _enumeration_set.detail 1616 | Ignore 1617 | ; 1618 | Ignore imported definitions if block identifiers match in 'Full' mode. 1619 | Ignore imported attributes that match attributes already in the 1620 | importing definition in 'Contents' mode. 1621 | 1622 | When importing in 'Contents' mode, if the ignored attribute belongs to 1623 | a Loop category, all attributes from that category must be ignored to 1624 | avoid loop mismatches. 1625 | ; 1626 | Replace 1627 | ; 1628 | Replace existing definitions with imported definitions if block 1629 | identifiers match in 'Full' mode. 1630 | 1631 | When importing in 'Contents' mode, contents of the two save frames 1632 | should be merged and any duplicate attributes replaced with those from 1633 | the imported save frame. In case the replaced attribute belongs to a 1634 | Loop category, all attributes from that category must first be removed 1635 | from the importing save frame to avoid loop mismatches. 1636 | ; 1637 | Exit 1638 | ; 1639 | Issue an error exception and exit. 1640 | ; 1641 | 1642 | _enumeration.default Exit 1643 | 1644 | save_ 1645 | 1646 | save_import_details.if_miss 1647 | 1648 | _definition.id '_import_details.if_miss' 1649 | _definition.class Attribute 1650 | _definition.update 2015-05-06 1651 | _description.text 1652 | ; 1653 | Code identifying the action taken if the requested definition block 1654 | is missing from the source dictionary. 1655 | ; 1656 | _name.category_id import_details 1657 | _name.object_id if_miss 1658 | _type.purpose State 1659 | _type.source Assigned 1660 | _type.container Single 1661 | _type.contents Code 1662 | 1663 | loop_ 1664 | _enumeration_set.state 1665 | _enumeration_set.detail 1666 | Ignore 'Ignore import.' 1667 | Exit 'Issue error exception and exit.' 1668 | 1669 | _enumeration.default Exit 1670 | 1671 | save_ 1672 | 1673 | save_import_details.mode 1674 | 1675 | _definition.id '_import_details.mode' 1676 | _definition.class Attribute 1677 | _definition.update 2019-04-03 1678 | _description.text 1679 | ; 1680 | Code identifying how the definition referenced by 1681 | _import_details.frame_id is to be imported. 1682 | 1683 | 'Full' imports the entire definition together with any child definitions 1684 | (in the case of categories) found in the target dictionary. The importing 1685 | definition becomes the parent of the imported definition. As such, the 1686 | 'Full' mode must only be used in category definitions. 1687 | 1688 | As a special case, a 'Head' category importing a 'Head' category is 1689 | equivalent to importing all children of the imported 'Head' category 1690 | as children of the importing 'Head' category. A 'Head' category can 1691 | only be imported in 'Full' mode and only by another 'Head' category. 1692 | 1693 | 'Contents' imports only the attributes found in the imported definition. 1694 | ; 1695 | _name.category_id import_details 1696 | _name.object_id mode 1697 | _type.purpose State 1698 | _type.source Assigned 1699 | _type.container Single 1700 | _type.contents Code 1701 | 1702 | loop_ 1703 | _enumeration_set.state 1704 | _enumeration_set.detail 1705 | Full 1706 | 'Import requested definition together with any child definitions.' 1707 | Contents 1708 | 'Import contents of requested definition.' 1709 | 1710 | _enumeration.default Contents 1711 | 1712 | save_ 1713 | 1714 | save_import_details.order 1715 | 1716 | _definition.id '_import_details.order' 1717 | _definition.class Attribute 1718 | _definition.update 2021-03-01 1719 | _description.text 1720 | ; 1721 | The order in which the import described by the referenced row should be 1722 | executed. 1723 | ; 1724 | _name.category_id import_details 1725 | _name.object_id order 1726 | _type.purpose Encode 1727 | _type.source Assigned 1728 | _type.container Single 1729 | _type.contents Integer 1730 | _units.code none 1731 | 1732 | save_ 1733 | 1734 | save_import_details.single 1735 | 1736 | _definition.id '_import_details.single' 1737 | _definition.class Attribute 1738 | _definition.update 2017-07-21 1739 | _description.text 1740 | ; 1741 | A Table mapping attributes defined individually in category IMPORT to 1742 | their values; used to import definitions from other dictionaries. 1743 | ; 1744 | _name.category_id import_details 1745 | _name.object_id single 1746 | _type.purpose Internal 1747 | _type.source Assigned 1748 | _type.container Table 1749 | _type.contents Text 1750 | _type.indices ByReference 1751 | _type.indices_referenced_id '_import_details.single_index' 1752 | _method.purpose Evaluation 1753 | _method.expression 1754 | ; 1755 | with id as import_details 1756 | _import_details.single = {"file":id.file_id, 1757 | "version":id.file_version, 1758 | "save":id.frame_id, 1759 | "mode":id.mode, 1760 | "dupl":id.if_dupl, 1761 | "miss":id.if_miss} 1762 | ; 1763 | 1764 | save_ 1765 | 1766 | save_import_details.single_index 1767 | 1768 | _definition.id '_import_details.single_index' 1769 | _definition.class Attribute 1770 | _definition.update 2021-08-18 1771 | _description.text 1772 | ; 1773 | One of the indices permitted in the entries of values of attribute 1774 | _import_details.single. 1775 | ; 1776 | _name.category_id import_details 1777 | _name.object_id single_index 1778 | _type.purpose Internal 1779 | _type.source Assigned 1780 | _type.container Single 1781 | _type.contents Code 1782 | 1783 | loop_ 1784 | _enumeration_set.state 1785 | _enumeration_set.detail 1786 | file 1787 | ; 1788 | URI reference as per RFC 3986 giving the location of the source 1789 | dictionary. 1790 | ; 1791 | version 1792 | ; 1793 | Version of source dictionary. 1794 | ; 1795 | save 1796 | ; 1797 | Save frame code of source definition. 1798 | ; 1799 | mode 1800 | ; 1801 | Mode for including save frames. 1802 | ; 1803 | dupl 1804 | ; 1805 | Option for duplicate entries. 1806 | ; 1807 | miss 1808 | ; 1809 | Option for missing duplicate entries. 1810 | ; 1811 | 1812 | save_ 1813 | 1814 | save_METHOD 1815 | 1816 | _definition.id METHOD 1817 | _definition.scope Category 1818 | _definition.class Loop 1819 | _definition.update 2013-09-08 1820 | _description.text 1821 | ; 1822 | Methods used for evaluating, validating and defining items. 1823 | ; 1824 | _name.category_id ATTRIBUTES 1825 | _name.object_id METHOD 1826 | _category_key.name '_method.purpose' 1827 | 1828 | save_ 1829 | 1830 | save_method.expression 1831 | 1832 | _definition.id '_method.expression' 1833 | _definition.class Attribute 1834 | _definition.update 2023-11-14 1835 | _description.text 1836 | ; 1837 | The method expression for the defined item or category. 1838 | ; 1839 | _name.category_id method 1840 | _name.object_id expression 1841 | _type.purpose Method 1842 | _type.source Assigned 1843 | _type.container Single 1844 | _type.contents Text 1845 | 1846 | save_ 1847 | 1848 | save_method.purpose 1849 | 1850 | _definition.id '_method.purpose' 1851 | _definition.class Attribute 1852 | _definition.update 2023-06-28 1853 | _description.text 1854 | ; 1855 | The purpose and scope of the method expression. 1856 | ; 1857 | _name.category_id method 1858 | _name.object_id purpose 1859 | _type.purpose State 1860 | _type.source Assigned 1861 | _type.container Single 1862 | _type.contents Code 1863 | 1864 | loop_ 1865 | _enumeration_set.state 1866 | _enumeration_set.detail 1867 | Evaluation 1868 | ; 1869 | Method evaluates an item from related item values. Definitions of 1870 | primitive data items should normally not contain methods of this type. 1871 | ; 1872 | Definition 1873 | ; 1874 | Method generates attribute value(s) in the definition. 1875 | ; 1876 | Validation 1877 | ; 1878 | Method compares an evaluation with existing item value. 1879 | ; 1880 | 1881 | _enumeration.default Evaluation 1882 | 1883 | save_ 1884 | 1885 | save_NAME 1886 | 1887 | _definition.id NAME 1888 | _definition.scope Category 1889 | _definition.class Set 1890 | _definition.update 2011-06-20 1891 | _description.text 1892 | ; 1893 | Attributes for identifying items and item categories. 1894 | ; 1895 | _name.category_id ATTRIBUTES 1896 | _name.object_id NAME 1897 | 1898 | save_ 1899 | 1900 | save_name.category_id 1901 | 1902 | _definition.id '_name.category_id' 1903 | _definition.class Attribute 1904 | _definition.update 2011-07-27 1905 | _description.text 1906 | ; 1907 | The name of the category in which a category or item resides. 1908 | For Head categories this is the _dictionary.title given in the 1909 | enclosing data block. 1910 | ; 1911 | _name.category_id name 1912 | _name.object_id category_id 1913 | _type.purpose Identify 1914 | _type.source Assigned 1915 | _type.container Single 1916 | _type.contents Name 1917 | 1918 | save_ 1919 | 1920 | save_name.linked_item_id 1921 | 1922 | _definition.id '_name.linked_item_id' 1923 | _definition.class Attribute 1924 | _definition.update 2021-12-16 1925 | _description.text 1926 | ; 1927 | Data name of an equivalent item which has a 1928 | common set of values, or, in the definition of a type SU 1929 | item is the name of the associated measurand item to 1930 | which the standard uncertainty applies. 1931 | ; 1932 | _name.category_id name 1933 | _name.object_id linked_item_id 1934 | _type.purpose Identify 1935 | _type.source Assigned 1936 | _type.container Single 1937 | _type.contents Tag 1938 | 1939 | save_ 1940 | 1941 | save_name.object_id 1942 | 1943 | _definition.id '_name.object_id' 1944 | _definition.class Attribute 1945 | _definition.update 2011-07-27 1946 | _description.text 1947 | ; 1948 | The object name of a category or name unique within the 1949 | category or family of categories. 1950 | ; 1951 | _name.category_id name 1952 | _name.object_id object_id 1953 | _type.purpose Identify 1954 | _type.source Assigned 1955 | _type.container Single 1956 | _type.contents Name 1957 | 1958 | save_ 1959 | 1960 | save_TYPE 1961 | 1962 | _definition.id TYPE 1963 | _definition.scope Category 1964 | _definition.class Set 1965 | _definition.update 2011-06-26 1966 | _description.text 1967 | ; 1968 | Attributes which specify the 'typing' of data items. 1969 | ; 1970 | _name.category_id ATTRIBUTES 1971 | _name.object_id TYPE 1972 | 1973 | save_ 1974 | 1975 | save_type.container 1976 | 1977 | _definition.id '_type.container' 1978 | _definition.class Attribute 1979 | _definition.update 2021-12-08 1980 | _description.text 1981 | ; 1982 | The structure of values for the defined data item. 1983 | ; 1984 | _name.category_id type 1985 | _name.object_id container 1986 | _type.purpose State 1987 | _type.source Assigned 1988 | _type.container Single 1989 | _type.contents Code 1990 | 1991 | loop_ 1992 | _enumeration_set.state 1993 | _enumeration_set.detail 1994 | Single 1995 | ; 1996 | Single value. 1997 | ; 1998 | List 1999 | ; 2000 | Ordered set of values. Elements need not be of same contents type. 2001 | ; 2002 | Array 2003 | ; 2004 | Ordered set of values of the same type. Operations across arrays are 2005 | equivalent to operations across elements of the Array. 2006 | ; 2007 | Matrix 2008 | ; 2009 | Ordered set of numerical values for a tensor. Tensor operations such 2010 | as dot and cross products, are valid cross matrix objects. A matrix 2011 | with a single dimension is interpreted as a row or column vector as 2012 | required. 2013 | ; 2014 | Table 2015 | ; 2016 | An unordered set of id:value elements. 2017 | ; 2018 | Implied 2019 | ; 2020 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2021 | The value structure is taken from _type.container in the definition in 2022 | which the defined attribute appears. 2023 | ; 2024 | 2025 | _enumeration.default Single 2026 | 2027 | save_ 2028 | 2029 | save_type.contents 2030 | 2031 | _definition.id '_type.contents' 2032 | _definition.class Attribute 2033 | _definition.update 2023-11-07 2034 | _description.text 2035 | ; 2036 | Syntax of the value elements within the container type. Where the 2037 | definition is of a 'List' or 'Array' type, this attribute 2038 | describes the contents of each element. Where the definition is 2039 | of a 'Table' container this attribute describes the construction 2040 | of the value elements within those (Table) values. The CIF2 2041 | character set referenced below consists of the following Unicode 2042 | code points: 2043 | 2044 | [U+0009], [U+000A], [U+000D], [U+0020-U+007E], [U+00A0-U+D7FF], 2045 | [U+E000-U+FDCF], [U+FDF0-U+FFFD], [U+10000-U+1FFFD], 2046 | [U+20000-U+2FFFD], [U+30000-U+3FFFD], [U+40000-U+4FFFD], 2047 | [U+50000-U+5FFFD], [U+60000-U+6FFFD], [U+70000-U+7FFFD], 2048 | [U+80000-U+8FFFD], [U+90000-U+9FFFD], [U+A0000-U+AFFFD], 2049 | [U+B0000-U+BFFFD], [U+C0000-U+CFFFD], [U+D0000-U+DFFFD], 2050 | [U+E0000-U+EFFFD], [U+F0000-U+FFFFD], [U+100000-U+10FFFD] 2051 | 2052 | Two case-insensitive strings are considered identical when 2053 | they match under the Unicode canonical caseless matching algorithm. 2054 | 2055 | In all cases, 'whitespace' refers to ASCII whitespace only, that 2056 | is [U+0009], [U+000A], [U+000D] and [U+0020]. 2057 | 2058 | Note that descriptions of text syntax are relevant only to those 2059 | formats that encode data values as text. 2060 | ; 2061 | _name.category_id type 2062 | _name.object_id contents 2063 | _type.purpose State 2064 | _type.source Assigned 2065 | _type.container Single 2066 | _type.contents Code 2067 | 2068 | loop_ 2069 | _enumeration_set.state 2070 | _enumeration_set.detail 2071 | Text 2072 | ; 2073 | Case-sensitive sequence of CIF2 characters. 2074 | ; 2075 | Word 2076 | ; 2077 | Case-sensitive sequence of CIF2 characters containing no ASCII 2078 | whitespace. 2079 | ; 2080 | Code 2081 | ; 2082 | Case-insensitive sequence of CIF2 characters containing no ASCII 2083 | whitespace. 2084 | ; 2085 | Name 2086 | ; 2087 | Case-insensitive sequence of ASCII alphanumeric characters or 2088 | underscore. 2089 | ; 2090 | Tag 2091 | ; 2092 | Case-insensitive CIF2 character sequence with leading underscore and 2093 | no ASCII whitespace. 2094 | ; 2095 | Uri 2096 | ; 2097 | Uniform Resource Identifier reference as defined in RFC 3986 Section 2098 | 4.1. 2099 | ; 2100 | Date 2101 | ; 2102 | ISO standard date format --
. Use DateTime for all new 2103 | dictionaries. 2104 | ; 2105 | DateTime 2106 | ; 2107 | A timestamp. Text formats must use date-time or full-date productions 2108 | of RFC 3339 ABNF. 2109 | ; 2110 | Version 2111 | ; 2112 | Version number string that adheres to the formal grammar provided in 2113 | the Semantic Versioning specification version 2.0.0. Version strings 2114 | must take the general form of .. and may also 2115 | contain an optional postfix with additional information such as the 2116 | pre-release identifier. 2117 | 2118 | Reference: https://semver.org/spec/v2.0.0.html 2119 | ; 2120 | Dimension 2121 | ; 2122 | Size of an Array/Matrix/List expressed as a text string. The text 2123 | string itself consists of zero or more non-negative integers separated 2124 | by commas placed within bounding square brackets. Empty square 2125 | brackets represent a list of unknown size. 2126 | ; 2127 | Range 2128 | ; 2129 | Inclusive range of numerical values expressed using the min:max 2130 | notation in which the smallest value 'min' and the largest value 2131 | 'max' are separated by a colon character. If 'max' is omitted, then 2132 | the range includes all values that are greater than or equal to 'min'. 2133 | If 'min' is omitted, then the range includes all values that are less 2134 | than or equal to 'max'. 2135 | ; 2136 | Integer 2137 | ; 2138 | A number from the set of all integers. 2139 | ; 2140 | Real 2141 | ; 2142 | Floating-point real number. 2143 | ; 2144 | Imag 2145 | ; 2146 | Floating-point imaginary number. 2147 | ; 2148 | Complex 2149 | ; 2150 | A complex number. 2151 | ; 2152 | Symop 2153 | ; 2154 | A string composed of a positive integer optionally followed by an 2155 | underscore or space and three or more digits. 2156 | ; 2157 | Implied 2158 | ; 2159 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2160 | The contents are described by the _type.contents attribute in the 2161 | definition in which the defined attribute appears. 2162 | ; 2163 | ByReference 2164 | ; 2165 | The contents have the same form as those of the attribute referenced 2166 | by _type.contents_referenced_id. 2167 | ; 2168 | Inherited 2169 | ; 2170 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2171 | Intended to be used with List, Array, Matrix or Table containers which 2172 | may simultaneously contain values of several content types. The content 2173 | type of each value in such containers matches the content type of the 2174 | data item to which it is directly related. Specific rules for relating 2175 | data values to data items MUST be provided as human-readable text in 2176 | the _description.text attribute of all data items that have the 2177 | Inherited content type. 2178 | ; 2179 | _enumeration.default Text 2180 | _description_example.case Integer 2181 | _description_example.detail 'Content is a single or multiple integer(s).' 2182 | 2183 | save_ 2184 | 2185 | save_type.contents_referenced_id 2186 | 2187 | _definition.id '_type.contents_referenced_id' 2188 | _definition.class Attribute 2189 | _definition.update 2015-04-24 2190 | _description.text 2191 | ; 2192 | The value of the _definition.id attribute of an attribute definition 2193 | whose type is to be used also as the type of this item. Meaningful only 2194 | when this item's _type.contents attribute has value 'ByReference'. 2195 | ; 2196 | _name.category_id type 2197 | _name.object_id contents_referenced_id 2198 | _type.purpose Identify 2199 | _type.source Assigned 2200 | _type.container Single 2201 | _type.contents Tag 2202 | 2203 | save_ 2204 | 2205 | save_type.dimension 2206 | 2207 | _definition.id '_type.dimension' 2208 | _definition.class Attribute 2209 | _definition.update 2021-07-28 2210 | _description.text 2211 | ; 2212 | The dimensions of a list, array or matrix of elements expressed as 2213 | a text string. A Matrix with a single dimension is interpreted as 2214 | a vector. 2215 | ; 2216 | _name.category_id type 2217 | _name.object_id dimension 2218 | _type.purpose Encode 2219 | _type.source Assigned 2220 | _type.container Single 2221 | _type.contents Dimension 2222 | 2223 | loop_ 2224 | _description_example.case 2225 | _description_example.detail 2226 | '[3,3]' '3x3 matrix of elements.' 2227 | '[6]' 'List of 6 elements.' 2228 | '[]' 'Unknown number of list elements.' 2229 | 2230 | save_ 2231 | 2232 | save_type.indices 2233 | 2234 | _definition.id '_type.indices' 2235 | _definition.class Attribute 2236 | _definition.update 2023-01-13 2237 | _description.text 2238 | ; 2239 | Used to specify the syntax construction of indices of the entries in the 2240 | defined object when the defined object has 'Table' as its 2241 | _type.container attribute. Values are a subset of the codes and 2242 | constructions defined for attribute _type.contents, accounting 2243 | for the fact that syntactically, indices are always case-sensitive 2244 | quoted strings. 2245 | 2246 | Meaningful only when the defined item has _type.container 'Table'. 2247 | 2248 | See the definition for _type.contents for the character set definition. 2249 | ; 2250 | _name.category_id type 2251 | _name.object_id indices 2252 | _type.purpose State 2253 | _type.source Assigned 2254 | _type.container Single 2255 | _type.contents Code 2256 | 2257 | loop_ 2258 | _enumeration_set.state 2259 | _enumeration_set.detail 2260 | Text 2261 | ; 2262 | A case-sensitive sequence of CIF2 characters. 2263 | ; 2264 | Code 2265 | ; 2266 | Case-insensitive sequence of CIF2 characters containing no ASCII 2267 | whitespace. 2268 | ; 2269 | Date 2270 | ; 2271 | ISO date format --
. 2272 | ; 2273 | Uri 2274 | ; 2275 | A Uniform Resource Identifier string, per RFC 3986. 2276 | ; 2277 | Version 2278 | ; 2279 | Version digit string of the form .. 2280 | ; 2281 | ByReference 2282 | ; 2283 | Indices have the same form as the contents of the attribute identified 2284 | by _type.indices_referenced_id. 2285 | ; 2286 | 2287 | _enumeration.default Text 2288 | 2289 | save_ 2290 | 2291 | save_type.indices_referenced_id 2292 | 2293 | _definition.id '_type.indices_referenced_id' 2294 | _definition.class Attribute 2295 | _definition.update 2015-04-24 2296 | _description.text 2297 | ; 2298 | The _definition.id attribute of a definition whose type describes the 2299 | form and construction of the indices of entries in values of the present 2300 | item. 2301 | 2302 | Meaningful only when the defined item's _type.container attribute has 2303 | value 'Table', and its _type.indices attribute has value 'ByReference'. 2304 | ; 2305 | _name.category_id type 2306 | _name.object_id indices_referenced_id 2307 | _type.purpose Identify 2308 | _type.source Assigned 2309 | _type.container Single 2310 | _type.contents Tag 2311 | 2312 | save_ 2313 | 2314 | save_type.purpose 2315 | 2316 | _definition.id '_type.purpose' 2317 | _definition.class Attribute 2318 | _definition.update 2023-11-14 2319 | _description.text 2320 | ; 2321 | The primary purpose or function the defined data item serves in a 2322 | dictionary or a specific data instance. 2323 | ; 2324 | _name.category_id type 2325 | _name.object_id purpose 2326 | _type.purpose State 2327 | _type.source Assigned 2328 | _type.container Single 2329 | _type.contents Code 2330 | 2331 | loop_ 2332 | _enumeration_set.state 2333 | _enumeration_set.detail 2334 | Import 2335 | ; 2336 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2337 | Used to type the SPECIAL attribute '_import.get' that is present in 2338 | dictionaries to instigate the importation of external dictionary 2339 | definitions. 2340 | ; 2341 | Method 2342 | ; 2343 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2344 | Used to type the attribute '_method.expression' that is present in 2345 | dictionary definitions to provide the text method expressing the 2346 | defined item in terms of other defined items. 2347 | ; 2348 | Audit 2349 | ; 2350 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2351 | Used to type attributes employed to record the audit definition 2352 | information (creation date, update version and cross reference codes) 2353 | of items, categories and files. 2354 | ; 2355 | Identify 2356 | ; 2357 | >>> Applied ONLY in the DDLm Reference Dictionary <<< 2358 | Used to type attributes that identify an item tag (or part thereof) 2359 | or external location. 2360 | ; 2361 | Describe 2362 | ; 2363 | Used to type items with values that are descriptive text intended for 2364 | human interpretation. 2365 | ; 2366 | Encode 2367 | ; 2368 | Used to type items with values that are text or codes that are 2369 | formatted to be machine parsable. 2370 | ; 2371 | State 2372 | ; 2373 | Used to type items with values that are restricted to codes present in 2374 | their _enumeration_set.state lists. 2375 | ; 2376 | Key 2377 | ; 2378 | Used to type an item with a value that is unique within the looped 2379 | list of these items, and does not contain encoded information. 2380 | ; 2381 | Link 2382 | ; 2383 | Used to type an item that acts as a foreign key between two 2384 | categories. The definition of the item must additionally contain the 2385 | attribute '_name.linked_item_id' specifying the data name of the item 2386 | with unique values in the linked category. The values of the defined 2387 | item are drawn from the set of values in the referenced item. Cross 2388 | referencing items from the same category is allowed. 2389 | ; 2390 | Composite 2391 | ; 2392 | Used to type items with value strings composed of separate parts. 2393 | These will usually need to be separated and parsed for complete 2394 | interpretation and application. 2395 | ; 2396 | Number 2397 | ; 2398 | Used to type items that are numerical and exact (i.e. no standard 2399 | uncertainty value). 2400 | ; 2401 | Measurand 2402 | ; 2403 | Used to type an item with a numerically estimated value that has been 2404 | recorded by measurement or derivation. A data item definition for the 2405 | standard uncertainty (SU) of this item must be provided in a separate 2406 | definition with _type.purpose of 'SU'. The value of a measurand item 2407 | should be accompanied by a value of its associated SU item, either: 1) 2408 | integrated with the measurand value in a manner characteristic of the 2409 | data format; or 2) as a separate, explicit value for the associated SU 2410 | item. These alternatives are semantically equivalent. 2411 | ; 2412 | SU 2413 | ; 2414 | Used to type an item with a numerical value that is the standard 2415 | uncertainty of another data item. The definition of an SU item must 2416 | have the _type.source attribute set to 'Related' and must include 2417 | the _name.linked_item_id attribute which explicitly identifies 2418 | the associated measurand item. SU values must be non-negative. 2419 | ; 2420 | Internal 2421 | ; 2422 | Used to type items that serve only internal purposes of the dictionary 2423 | in which they appear. The particular purpose served is not defined by 2424 | this state. 2425 | ; 2426 | 2427 | _enumeration.default Describe 2428 | 2429 | save_ 2430 | 2431 | save_type.source 2432 | 2433 | _definition.id '_type.source' 2434 | _definition.class Attribute 2435 | _definition.update 2023-07-11 2436 | _description.text 2437 | ; 2438 | The origin or source of the defined data item, indicating by what 2439 | recording process it has been added to the domain instance. 2440 | 2441 | All data items can be classified as primitive or non-primitive based on 2442 | the origin of the data. Primitive data items record data that usually 2443 | cannot be deduced without repeating the entire experiment such as 2444 | measurements, observations (e.g. instrument settings) and decisions 2445 | made in nonlinear processes. Non-primitive data items record derivable 2446 | data that can be directly evaluated from other data. 2447 | ; 2448 | _name.category_id type 2449 | _name.object_id source 2450 | _type.purpose State 2451 | _type.source Assigned 2452 | _type.container Single 2453 | _type.contents Code 2454 | 2455 | loop_ 2456 | _enumeration_set.state 2457 | _enumeration_set.detail 2458 | Recorded 2459 | ; 2460 | Data value (numerical or otherwise) was recorded by observation or 2461 | measurement during the experimental collection of data. 2462 | 2463 | Data items of this type are considered primitive. 2464 | ; 2465 | Assigned 2466 | ; 2467 | Data value (numerical or otherwise) was assigned as part of the data 2468 | collection, analysis or modelling required for a specific domain 2469 | instance. 2470 | 2471 | These assignments often represent a decision made that determines the 2472 | course of the experiment (and therefore the data item may be deemed 2473 | primitive) or a particular choice in the way the data was analysed 2474 | (and therefore the data item may be considered non-primitive). 2475 | ; 2476 | Related 2477 | ; 2478 | Data item was added based on a relationship to another data item. 2479 | 2480 | This state indicates that the item was used to record the SU value of 2481 | a related measurand item or that the item was used in the construction 2482 | of looped lists of data. In the latter case, it typically identifies 2483 | an item whose unique values are used as the reference key for a loop 2484 | category and/or an item which has values in common with those of 2485 | another loop category and is considered a Link between these lists. 2486 | 2487 | Data items of this type includes both primitive and non-primitive 2488 | items. 2489 | ; 2490 | Derived 2491 | ; 2492 | Data item was derived from other data items within the domain instance. 2493 | 2494 | Data items of this type are considered non-primitive. 2495 | ; 2496 | 2497 | _enumeration.default Assigned 2498 | 2499 | save_ 2500 | 2501 | save_UNITS 2502 | 2503 | _definition.id UNITS 2504 | _definition.scope Category 2505 | _definition.class Set 2506 | _definition.update 2013-03-06 2507 | _description.text 2508 | ; 2509 | The attributes for specifying units of measure. 2510 | ; 2511 | _name.category_id ATTRIBUTES 2512 | _name.object_id UNITS 2513 | 2514 | save_ 2515 | 2516 | save_units.code 2517 | 2518 | _definition.id '_units.code' 2519 | _definition.class Attribute 2520 | _definition.update 2023-06-10 2521 | _description.text 2522 | ; 2523 | A code which identifies the units of measurement. 2524 | 2525 | The 'unspecified' code should only be used in cases when the units cannot 2526 | be properly expressed in DDLm. A typical example of such situation is a 2527 | List data item with constituent values that may have differing units. 2528 | ; 2529 | _name.category_id units 2530 | _name.object_id code 2531 | _type.purpose State 2532 | _type.source Assigned 2533 | _type.container Single 2534 | _type.contents Code 2535 | 2536 | _import.get [{'file':templ_enum.cif 'save':units_code}] 2537 | 2538 | save_ 2539 | 2540 | loop_ 2541 | _dictionary_valid.scope 2542 | _dictionary_valid.option 2543 | _dictionary_valid.attributes 2544 | Dictionary Mandatory ['_dictionary.title' '_dictionary.class' 2545 | '_dictionary.version' '_dictionary.date' 2546 | '_dictionary.uri' 2547 | '_dictionary.ddl_conformance' 2548 | '_dictionary.namespace'] 2549 | Dictionary Recommended ['_description.text' 2550 | '_dictionary_audit.version' 2551 | '_dictionary_audit.date' 2552 | '_dictionary_audit.revision' 2553 | '_dictionary.doi'] 2554 | Dictionary Prohibited [ALIAS CATEGORY_KEY DEFINITION 2555 | DESCRIPTION_EXAMPLE ENUMERATION IMPORT 2556 | METHOD NAME TYPE UNITS] 2557 | Category Mandatory ['_definition.id' '_definition.scope' 2558 | '_definition.class' '_definition.update' 2559 | '_name.category_id' '_name.object_id'] 2560 | Category Recommended ['_category_key.name' '_description.text'] 2561 | Category Prohibited [ALIAS DICTIONARY ENUMERATION TYPE UNITS] 2562 | Item Mandatory ['_definition.id' '_definition.update' 2563 | '_name.object_id' '_name.category_id' 2564 | '_type.container' '_type.contents'] 2565 | Item Recommended ['_definition.scope' '_definition.class' 2566 | '_type.source' '_type.purpose' 2567 | '_description.text'] 2568 | Item Prohibited [CATEGORY_KEY DICTIONARY] 2569 | 2570 | loop_ 2571 | _dictionary_audit.version 2572 | _dictionary_audit.date 2573 | _dictionary_audit.revision 2574 | 3.3.0 2004-11-09 2575 | ; 2576 | Change definition.import_id to definition_import.id in many defs. 2577 | Insert category DEFINITION_IMPORT and the items .id, .conflict, 2578 | .protocol and .source. 2579 | ; 2580 | 3.3.1 2004-11-10 2581 | ; 2582 | Make further changes to the DEFINITION_IMPORT definitions and 2583 | introduce the DEFINITION_TEMPLATE category. 2584 | ; 2585 | 3.3.2 2004-11-11 2586 | ; 2587 | Introduce an IMPORT category containing IMPORT_DICTIONARY, 2588 | IMPORT_DEFINITION, IMPORT_CATEGORY, IMPORT_ATTRIBUTE. 2589 | Change DEFINITION_TEMPLATE to IMPORT_TEMPLATE. 2590 | ; 2591 | 3.3.3 2004-11-12 2592 | ; 2593 | Major changes to all the new attributes. Introduce categories 2594 | DEFINITION_CONTEXT. 2595 | ; 2596 | 3.3.4 2004-11-13 2597 | ; 2598 | Cleaned up the IMPORT changes and cases of enumerates. 2599 | ; 2600 | 3.3.5 2004-11-16 2601 | ; 2602 | Further changes to IMPORT definitions. 2603 | ; 2604 | 3.3.6 2004-11-18 2605 | ; 2606 | Some minor correction of typos. 2607 | ; 2608 | 3.3.7 2005-11-22 2609 | ; 2610 | Changed _dictionary.name to _dictionary.filename. 2611 | Changed _dictionary_xref.name to _dictionary_xref.filename. 2612 | Added _dictionary.title to describe the common name of the dictionary. 2613 | ; 2614 | 3.3.8 2005-12-12 2615 | ; 2616 | Changed ddl to ddl_attr. 2617 | Added Template and Function to _dictionary.class. 2618 | ; 2619 | 3.3.9 2006-02-02 2620 | ; 2621 | Add the definition of _dictionary_xref.source. 2622 | ; 2623 | 3.3.10 2006-02-07 2624 | ; 2625 | Add import attribute definitions. 2626 | ; 2627 | 3.4.1 2006-02-12 2628 | ; 2629 | Remove save frames from dictionary attributes. 2630 | Change the attribute _dictionary.parent_name to _dictionary.parent_id. 2631 | ; 2632 | 3.4.2 2006-02-16 2633 | ; 2634 | In the import_*.conflict definitions change the enumeration state Unique 2635 | to Ignore, and change the default state to Error. 2636 | In the import_*.missing definitions change default enumeration state to 2637 | Error. 2638 | ; 2639 | 3.5.1 2006-03-07 2640 | ; 2641 | Structural changes to the file to conform with the import model 3. 2642 | Move the template file for *.relational_id to com_att.dic. 2643 | Change all references to *.relational_id into the tuple format. 2644 | Move the _codes_ddl.units_code to enum_set.dic and insert the 2645 | import_enum_set.id tuples. 2646 | ; 2647 | 3.5.2 2006-03-22 2648 | ; 2649 | Rename _enumeration.default_index_id to _enumeration.def_index_id. 2650 | Correct the attributes _enumeration_default.index and *.value. 2651 | ; 2652 | 3.5.3 2006-05-09 2653 | ; 2654 | Reword many of the import attributes. 2655 | Correct the tuple description for import_dictionary. 2656 | Insert all of the definitions for import_defaults attributes. 2657 | Update _dictionary.class definition - change "Template" to "Import". 2658 | Remove _enumeration.scope "open" from _definition_context.domain. 2659 | ; 2660 | 3.6.1 2006-06-16 2661 | ; 2662 | Major revamp of TYPE attributes... changed: 2663 | _type.value to _type.contents and expand enumeration list. 2664 | _type.purpose has new role and different enumeration states. 2665 | _name.object_id changed to _name.object_id. 2666 | _enumeration_set.code becomes _enumeration_set.state. 2667 | Changed the _type.value (now .contents) states to match expanded list. 2668 | Added _dictionary.ddl_conformance attribute. 2669 | Changed _category.join_set_id to _category.join_cat_id. 2670 | Remove _enumeration.scope definition. 2671 | ; 2672 | 3.6.2 2006-06-17 2673 | ; 2674 | Change the states of _type.purpose. 2675 | ; 2676 | 3.6.3 2006-06-18 2677 | ; 2678 | Correct _type.contents value in import_dictionary.id. 2679 | ; 2680 | 3.6.4 2006-06-20 2681 | ; 2682 | Change state 'Point' to 'Link' in _type.contents definition. 2683 | Add Formula to _type.contents. 2684 | ; 2685 | 3.6.5 2006-06-27 2686 | ; 2687 | Change all IMPORT attributes and apply. 2688 | Add _dictionary.namespace attribute and apply. 2689 | Add states to _definition.class and apply. 2690 | Add _enumeration_set.scope. 2691 | Add .context to ENUMERATE_SET, ENUMERATE_DEFAULT, DESCRIPTION_EXAMPLE 2692 | ; 2693 | 3.6.6 2006-07-18 2694 | ; 2695 | Change the descriptions of the _type.container states. 2696 | The _enumeration_set.scope removed (enumeration.mandatory used). 2697 | In _type_array.dimension change _type.contents to List. 2698 | ; 2699 | 3.6.7 2006-08-30 2700 | ; 2701 | Change 'att' to 'sta' in the imports of _type.contents and _units.code. 2702 | Replace states 'vector' and 'matrix' in _type.container with 'array'. 2703 | In _type.purpose change 'model' to 'assigned'; 'observe' to 'observed'; 2704 | and 'measure' to 'measured'. 2705 | ; 2706 | 3.6.8 2006-08-31 2707 | ; 2708 | Remove the category TYPE_ARRAY and insert _type.dimension. 2709 | Replace _description.compact with _description.common. 2710 | Replace _description.abbreviated with _description.key_words. 2711 | ; 2712 | 3.6.9 2006-10-31 2713 | ; 2714 | Remove all attributes and categories referring to 'context'. 2715 | ; 2716 | 3.6.10 2006-11-09 2717 | ; 2718 | Replace _method.id with method.purpose. 2719 | Redefine the DICTIONARY_VALID values. 2720 | ; 2721 | 3.7.1 2006-11-16 2722 | ; 2723 | Apply _definition.scope changes. 2724 | Add _category.parent_join. 2725 | Add _dictionary.xref_code. 2726 | Add _enumeration_set.xref_dictionary. 2727 | Remove all relational keys. 2728 | ; 2729 | 3.7.2 2006-12-05 2730 | ; 2731 | Rewording of description.text in DDL_ATTR and definition.namespace. 2732 | Rewording of category_mandatory.item_id. 2733 | Reworded descriptions of definition.class descriptions. 2734 | Removed dictionary.filename. 2735 | Corrected examples in type.dimension. 2736 | Remove dictionary.parent_id and dictionary.parent_uri. 2737 | ; 2738 | 3.7.3 2006-12-21 2739 | ; 2740 | Default for _category.parent_join is now "No". 2741 | ; 2742 | 3.7.4 2007-02-06 2743 | ; 2744 | Change _category_key.item_id to _category_key.generic. 2745 | Add _category_key.primitive. 2746 | ; 2747 | 3.7.5 2007-02-08 2748 | ; 2749 | Change the _type.purpose of _category_key.generic and .primitive 2750 | to Identify. 2751 | ; 2752 | 3.7.6 2007-03-18 2753 | ; 2754 | Change the description for _name.linked_item_id. 2755 | ; 2756 | 3.7.7 2007-10-11 2757 | ; 2758 | Correct the _type.dimension assignments to [n[m]]. 2759 | Remove _type_array.dimension from _type.dimension definition. 2760 | ; 2761 | 3.7.8 2008-01-17 2762 | ; 2763 | Change 'Definition' to 'Evaluation' in import_list.id. 2764 | Changed import.scope entries to leading uc character. 2765 | ; 2766 | 3.7.9 2008-02-12 2767 | ; 2768 | Change 'Itm' to 'Def' in import.scope. 2769 | ; 2770 | 3.7.10 2008-03-28 2771 | ; 2772 | Update the definition of _type.dimension. 2773 | ; 2774 | 3.7.11 2008-05-18 2775 | ; 2776 | Changed 2 type.contents values from "Implied" to "Inherited". 2777 | Change import_list.id to be ((.....)). 2778 | ; 2779 | 3.7.12 2008-08-05 2780 | ; 2781 | Correct _type.dimension definition. 2782 | ; 2783 | 3.7.13 2011-01-27 2784 | ; 2785 | Change definition scope of Head category to "Dictionary". 2786 | Remove all tabs and replace with blank string. 2787 | ; 2788 | 3.7.14 2011-03-25 2789 | ; 2790 | In the attribute import_list.id: 2791 | Change _type.contents Tuple(Code,Tag,Uri,Code,Code) 2792 | To _type.contents Tuple(Code,Ctag,Uri,Code,Code) 2793 | In the attribute import.block: 2794 | Change _type.contents Tag 2795 | To _type.contents Ctag 2796 | And change the case examples. 2797 | ; 2798 | 3.8.1 2011-06-07 2799 | ; 2800 | Remove the Tuple and Array enumerations from _type.container. 2801 | Change category class enumeration from List to Loop; and change 2802 | all invocations of _category.class in the definitions. 2803 | Introduce nested save frames for expressing nested categories. 2804 | ; 2805 | 3.8.2 2011-06-21 2806 | ; 2807 | Reconfigure _dictionary_valid attributes into lists, and reset the 2808 | attribute application criteria at the rear of the DDL dictionary. 2809 | ; 2810 | 3.8.3 2011-06-22 2811 | ; 2812 | Change IMPORT_LIST to IMPORT_TABLE. Change the IMPORT arguments to 2813 | match this. Change the import_list.id invocations to import_table 2814 | equivalents. Add _enumeration_set.table_tag. 2815 | ; 2816 | 3.8.4 2011-06-23 2817 | ; 2818 | Remove IMPORT_TABLE. Change the IMPORT to a set category. 2819 | Insert an import.get attribute to replace import_table.id. 2820 | Rename the DDL_ATTR category as ATTRIBUTES. 2821 | ; 2822 | 3.8.5 2011-06-27 2823 | ; 2824 | Change the _name.category_id value to reflect the parent category. 2825 | ; 2826 | 3.8.6 2011-06-29 2827 | ; 2828 | Change Reference in _type.purpose to Ref-key. 2829 | ; 2830 | 3.8.7 2011-06-30 2831 | ; 2832 | Change Reference in _definition.class to Ref-loop. 2833 | Remove import from type.contents and insert enumeration_set list. 2834 | Insert name.category_id into every category definition. 2835 | ; 2836 | 3.8.8 2011-07-28 2837 | ; 2838 | Add name.category_id and name.object_id to category definitions. 2839 | Remove category.parent_id from category definitions. 2840 | Remove definitions for category.parent_id and the CATEGORY_KEY 2841 | and CATEGORY_MANDATORY definitions. Define category.key_id. 2842 | ; 2843 | 3.8.9 2011-08-15 2844 | ; 2845 | Add the state "Extend" to the type.purpose" attribute. 2846 | ; 2847 | 3.9.1 2011-12-08 2848 | ; 2849 | Add types "Array" and "Matrix" to type.container attribute definition. 2850 | Add type "Su" to the type.purpose attribute definition. 2851 | ; 2852 | 3.9.2 2012-01-25 2853 | ; 2854 | For import.get change the key "fram" to "save". 2855 | ; 2856 | 3.10.1 2012-05-07 2857 | ; 2858 | Revamp the type.purpose states. Remove state "Limit". 2859 | Add the new attribute type.source. 2860 | Change dictionary.class "Attribute" to "Reference". 2861 | Removed attribute enumeration_set.construct. 2862 | ; 2863 | 3.10.2 2012-10-16 2864 | ; 2865 | Correct enum states for type.contents and type.container. 2866 | ; 2867 | 3.10.3 2012-11-20 2868 | ; 2869 | Remove "Implied" as an enumeration state for type.contents. 2870 | ; 2871 | 3.10.4 2013-02-12 2872 | ; 2873 | Added missing loop statement to methods of dictionary_valid.application. 2874 | Corrected the definition of the enumeration state 'Code' in 2875 | type.contents. 2876 | ; 2877 | 3.10.5 2013-02-22 2878 | ; 2879 | Add state value to enum_set loop of import.get defn as the key. 2880 | ; 2881 | 3.10.6 2013-02-25 2882 | ; 2883 | Remove the quotes from Multiple string in type.container definition. 2884 | Add 'Functions' to the enumeration states of definition.class. 2885 | ; 2886 | 3.10.7 2013-03-03 2887 | ; 2888 | Added type.contents enum state "Implied" for category key definitions. 2889 | ; 2890 | 3.10.8 2013-03-06 2891 | ; 2892 | Added various attributes to conform with ALIGN requirements. 2893 | ; 2894 | 3.11.1 2013-04-11 2895 | ; 2896 | Added type.source to all definitions. 2897 | Change type.contents state "Table" to "Pairs". 2898 | ; 2899 | 3.11.2 2013-04-16 2900 | ; 2901 | Removed 'Measured' as a state for type.source. 2902 | ; 2903 | 3.11.3 2013-04-24 2904 | ; 2905 | Changed type.source 'Quantity' to 'Number' or 'Encode'. 2906 | State 'Float' in type.contents removed. 2907 | ; 2908 | 3.11.4 2013-09-08 2909 | ; 2910 | Attribute _alias.deprecation_date added. 2911 | Attribute _category.key_list added. 2912 | The attribute _category.key_list added to all Loop category defs. 2913 | ; 2914 | 3.11.5 2014-09-18 2915 | ; 2916 | Looped category _category_key replaces _category.key_list. 2917 | Added _category_key.name and changed all occurrences of 2918 | _category.key_list to _category_key.name. 2919 | Changed _type.source and _type.purpose to Recommended. (JRH) 2920 | ; 2921 | 3.11.6 2015-01-27 2922 | ; 2923 | Replaced stub category names with full category names in 2924 | _name.category_id and _name.object_id. 2925 | Corrected all _category.key_name to _category_key.name. (JRH) 2926 | ; 2927 | 3.11.7 2015-01-27 2928 | ; 2929 | Converted to CIF2 format using automatic tool and post-editing for 2930 | presentation (JRH). 2931 | ; 2932 | 3.11.8 2015-01-28 2933 | ; 2934 | Created _dictionary_valid.scope and corrected dREL method for 2935 | _dictionary_valid.application. 2936 | ; 2937 | 3.11.9 2015-05-07 2938 | ; 2939 | Removed _enumerated.table_id and replaced with ByReference attributes 2940 | _type.contents_referenced_id and _type.indices_referenced_id. Updated 2941 | _type.contents and _type.purpose to describe the ByReference approach. 2942 | Fixed _import.get dREL methods by moving individual table entries into 2943 | a sub-category and adding reference and order attributes. (James Hester/ 2944 | John Bollinger) 2945 | ; 2946 | 3.11.10 2017-01-25 2947 | ; 2948 | Adjusted definition of _import_details.mode to remove references to 2949 | save frames and add special 'Head' category treatment. Added 2950 | _dictionary.formalism. 2951 | ; 2952 | 3.11.11 2017-06-10 2953 | ; 2954 | Added '_definition.replaced_by' to flag deprecated definitions. 2955 | ; 2956 | 3.12.0 2017-07-13 2957 | ; 2958 | Clarified character sets and syntax. Fixed incorrect use of Name in 2959 | '_definition.replaced_by'. 2960 | ; 2961 | 3.13.0 2017-07-23 2962 | ; 2963 | Added _import_details.file_version. Removed 'Filename' as a data type. 2964 | Clarified use of URIs in dictionaries. (JRH) 2965 | ; 2966 | 3.13.1 2017-10-26 2967 | ; 2968 | Added 'Implied' container type to allow examples and defaults to adjust 2969 | to the item being defined. Changed relevant attribute definitions. (JRH) 2970 | ; 2971 | 3.14.0 2019-10-08 2972 | ; 2973 | Updated the description of the _description_example.case data item. 2974 | 2975 | Updated the description of the 'Key' type purpose and changed the 2976 | purpose of several data items in order to avoid conflicts with 2977 | the new description. 2978 | 2979 | Replaced the _definition.replaced_by data item with a looped 2980 | DEFINITION_REPLACED category. 2981 | 2982 | Updated the definition of the _import_details.mode data item. 2983 | 2984 | Changed the purpose of a dREL method in the definition of the 2985 | _dictionary_valid.application data item from 'Definition' to 2986 | 'Evaluation'. 2987 | 2988 | Changed the content type of the _loop.level data item from 2989 | 'Index' to 'Integer'. 2990 | 2991 | Deprecated the 'Index' and 'Count' content types. 2992 | Updated the description of the 'Loop' definition class. The new 2993 | description allows the child data items to appear in a loop-list instead 2994 | of strictly requiring it ('must' -> 'may'). 2995 | ; 2996 | 4.0.0 2020-10-30 2997 | ; 2998 | Removed all xref datanames. 2999 | Removed LOOP category. 3000 | Removed complex dataname type (Multiple) and type specifications. 3001 | Removed non-import use of save frames and ref-loops. 3002 | Allow Arrays to include string types. 3003 | Removed purpose "Extend". 3004 | Removed CATEGORY category and category.key_id. 3005 | Removed 'Index' and 'Count' content types. 3006 | ; 3007 | 4.0.1 2021-07-20 3008 | ; 3009 | Clarified use of 'SU' data items. 3010 | 3011 | Updated the _import_details.single_index data item description 3012 | to explicitly state that the 'file' index can refer not only to 3013 | URI, but also to URI reference values. 3014 | 3015 | Updated the definition of the 'Uri' content type to explicitly state 3016 | that it allows URI-reference values. _alias.dictionary_uri is 3017 | explicitly an absolute URI. 3018 | 3019 | Updated the DICTIONARY_VALID category description to explicitly state 3020 | that the rules only apply to Reference and Instance dictionaries. 3021 | 3022 | Clarified the interpretation of the _dictionary_valid.option data item. 3023 | 3024 | Removed the default enumeration value of the _units.code data item. 3025 | 3026 | Added measurement units to the definition of the _import_details.order 3027 | data item. 3028 | 3029 | Clarified use of DESCRIPTION_EXAMPLE category and _description.text. 3030 | ; 3031 | 4.0.2 2021-08-18 3032 | ; 3033 | Deprecated _dictionary_valid.application. 3034 | 3035 | Marked the DESCRIPTION_EXAMPLE category as prohibited in 3036 | the 'Dictionary' scope. 3037 | 3038 | Updated the descriptions of the _type.dimension and _type.container 3039 | data items to be more consistent with the rest of the dictionary. 3040 | 3041 | Unified the spelling of certain words. 3042 | ; 3043 | 4.1.0 2023-01-13 3044 | ; 3045 | Added new 'Word' content type. 3046 | 3047 | Removed _description.common from the list of attributes that 3048 | are recommended in the 'Item' scope. 3049 | 3050 | Clarified use of if_dupl replacement when importing. 3051 | 3052 | Updated the descriptions of the _enumeration.default and 3053 | _description_example.case data items to explicitly list 3054 | all the constraints that they inherit from the defining item. 3055 | 3056 | Improved wording of "Implied" value descriptors. 3057 | 3058 | Updated the description of the _name.linked_item_id data item. 3059 | 3060 | Clarified that the "Range" content type can describe half-bounded 3061 | intervals. Added several usage examples of the _enumeration.range 3062 | attribute. 3063 | 3064 | Updated definition of "Integer" in _type.contents. 3065 | 3066 | Clarified the definition of the "Version" state in _type.contents 3067 | by explicitly specifying that it adheres to the formal grammar 3068 | provided in SemVer version 2.0.0. 3069 | ; 3070 | 4.2.0 2025-02-19 3071 | ; 3072 | # Please update the date above and describe the change below until 3073 | # ready for the next release 3074 | 3075 | Added the "unspecified" enumeration value for the _units.code attribute. 3076 | 3077 | Added DICTIONARY_AUTHOR to allow details of dictionary authors to be 3078 | recorded. 3079 | 3080 | Added _dictionary.doi to record the persistent Digital Object Identifier 3081 | of a dictionary. 3082 | 3083 | Added _enumeration.def_index_ids and ENUMERATION_DEFAULTS to allow 3084 | default values to be dependent on multiple keys. Deprecated the 3085 | _enumeration.def_index_id attribute and the ENUMERATION_DEFAULT category. 3086 | 3087 | Added ENUMERATION_SOURCE and _enumeration_defaults.source_id to allow 3088 | the source of default enumeration values to be recorded. 3089 | 3090 | Added 'Inherited' as an enumeration value to _type.contents. 3091 | 3092 | Updated the description of _type.source and _method.purpose attributes. 3093 | 3094 | Clarified the use of the 'SU' state of the _type.purpose attribute. 3095 | 3096 | Changed _description.text of _dictionary.namespace to say "trailing 3097 | double colon '::' " in accordance with DDLm specs and other 3098 | discussion in Volume G 2ed (bm). 3099 | 3100 | Some cosmetic changes (single quotes instead of double) to match 3101 | IUCr house style and angle brackets around --
(bm). 3102 | 3103 | Updated the _enumeration_set.state attribute to inherit various 3104 | properties from the defining data item. 3105 | 3106 | Explicitly specified that the _type.contents attribute value 'Implied' 3107 | can only be applied in the DDLm Reference dictionary. 3108 | 3109 | Updated the description of the 'Symop' content type. 3110 | 3111 | Updated the definition of the _method.expression attribute. 3112 | 3113 | Updated definition of the _alias.deprecation_date attribute. 3114 | Updated definition of the _alias.dictionary_uri attribute. 3115 | Added the _alias.dictionary_version attribute. 3116 | 3117 | Added _definition.update to the list of attributes that are mandatory 3118 | in the 'Category' scope. 3119 | ; 3120 | -------------------------------------------------------------------------------- /examples/cell-measurement-multi-block.cif: -------------------------------------------------------------------------------- 1 | #\#CIF_2.0 2 | ## 3 | # Represents an experiment where the cell measurement was performed under 4 | # different conditions to the data collection. 5 | # 6 | # In this case the measurements are presented in two separate data blocks. 7 | # This file conveys slightly more information on the differences of measurement 8 | # conditions than the single block 'cell-measurement-single-block.cif' example 9 | # file that uses deprecated data items from the CELL_MEASUREMENT category. 10 | ## 11 | data_main_collection 12 | 13 | _cell.length_a 11.520(12) 14 | _cell.length_b 11.210(11) 15 | _cell.length_c 4.920(5) 16 | _cell.angle_alpha 90.00000 17 | _cell.angle_beta 90.8331(5) 18 | _cell.angle_gamma 90.00000 19 | _cell.volume 635.3(11) 20 | _cell.formula_units_Z 4 21 | ## 22 | # Cell measurement details are provided in another data block. 23 | ## 24 | _cell_measurement.condition_id 2 25 | _cell_measurement.theta_max 50.5 26 | _cell_measurement.theta_min 10.1 27 | _cell_measurement.reflns_used 20 28 | 29 | _diffrn.id 1 30 | _diffrn.ambient_temperature 293 31 | _diffrn.ambient_pressure 10 32 | _diffrn_radiation.type 'Cu K\a' 33 | _diffrn_radiation_wavelength.value 1.5418 34 | _diffrn_radiation.probe x-ray 35 | 36 | # Atom site coordinates and results would be provided in this data block, 37 | # but are removed for brevity in this example. 38 | 39 | # ... 40 | 41 | data_cell_measurement 42 | 43 | _diffrn.id 2 44 | _diffrn.ambient_temperature 290 # Different temperature. 45 | _diffrn.ambient_pressure 10 46 | 47 | _diffrn_radiation.type 'Mo K\a' # Different radiation type. 48 | _diffrn_radiation_wavelength.value 0.701 49 | _diffrn_radiation.probe x-ray 50 | 51 | # Any _cell_measurement items in this data block would relate to the 52 | # determination of a unit cell used for any diffraction data presented 53 | # in this data block. 54 | _cell_measurement.condition_id 2 # Default value. 55 | _cell_measurement.theta_max 50.4 56 | _cell_measurement.theta_min 10.0 57 | _cell_measurement.reflns_used 30 58 | -------------------------------------------------------------------------------- /examples/cell-measurement-single-block.cif: -------------------------------------------------------------------------------- 1 | #\#CIF_2.0 2 | ## 3 | # Represents an experiment where the cell measurement was performed under 4 | # different conditions to the data collection. 5 | # 6 | # In this case certain cell measurement conditions that differ from the data 7 | # collection conditions are recorded using a very limited set of data items 8 | # from the CELL_MEASUREMENT category. As a result, this file simply cannot fully 9 | # convey the information provided in the 'cell-measurement-multi-block.cif' 10 | # example file. 11 | # 12 | # Most items from the CELL_MEASUREMENT category have now been deprecated and 13 | # the multi-block approach should be used in newly created files as it allows 14 | # to describe cell measurements in more detail using data items from various 15 | # categories such as DIFFR, DIFFRN_SOURCE and DIFFR_RADIATION. However, the 16 | # deprecated data items may still be encountered in archival copies of older 17 | # CIF files. 18 | ## 19 | data_main_collection 20 | 21 | _cell.length_a 11.520(12) 22 | _cell.length_b 11.210(11) 23 | _cell.length_c 4.920(5) 24 | _cell.angle_alpha 90.00000 25 | _cell.angle_beta 90.8331(5) 26 | _cell.angle_gamma 90.00000 27 | _cell.volume 635.3(11) 28 | _cell.formula_units_Z 4 29 | ## 30 | # The CELL_MEASUREMENT category is only capable of conveying differences in 31 | # measurement temperature, pressure, radiation type and wavelength, but no 32 | # other aspects of the experiment that may also differ. 33 | ## 34 | # BEGIN DEPRECATED ITEMS 35 | _cell_measurement.temperature 290 36 | _cell_measurement.pressure 10.1 37 | _cell_measurement.radiation 'Mo K\a' 38 | _cell_measurement.wavelength 0.701 39 | # END DEPRECATED ITEMS 40 | _cell_measurement.theta_max 50.4 41 | _cell_measurement.theta_min 10.0 42 | _cell_measurement.reflns_used 30 43 | 44 | _diffrn.ambient_temperature 293 45 | _diffrn.ambient_pressure 10 46 | _diffrn_radiation.type 'Cu K\a' 47 | _diffrn_radiation_wavelength.value 1.5418 48 | _diffrn_radiation.probe x-ray 49 | 50 | # Atom site coordinates and results would be provided in this data block, 51 | # but are removed for brevity in this example. 52 | 53 | # ... 54 | -------------------------------------------------------------------------------- /examples/complex-compositional-disorder.cif: -------------------------------------------------------------------------------- 1 | ## 2 | # The example file showcases the use of the _atom_site.disorder_assembly and 3 | # _atom_site.disorder_group data items to describe complex positional disorder. 4 | # Disorder assembly "A" has two groups which describe two different molecular 5 | # entities that consist of multiple atoms (group "1" -- ClO4, group 2 -- NO3). 6 | # 7 | # This file was adapted from COD entry 7228512. The full version of the original 8 | # file is available at https://www.crystallography.net/cod/7228512.html. 9 | ## 10 | data_7228512 11 | loop_ 12 | _publ_author.id 13 | _publ_author.name 14 | 1 'Benniston, A. C.' 15 | 2 'Melnic, Silvia' 16 | 3 'Waddell, Paul G.' 17 | 4 'Sova, Sergiu' 18 | _publ.section_title 19 | ; 20 | Evolution of Manganese-Calcium Cluster Structures based on Nitrogen and 21 | Oxygen Donor Ligands 22 | ; 23 | _journal.name_full CrystEngComm 24 | _journal.paper_doi 10.1039/C7CE00931C 25 | _journal.year 2017 26 | _chemical_formula.moiety 'C36 H36 Ca2 Cl0.8 Mn2 N9.2 O18.8, C3 H6 O' 27 | _chemical_formula.sum 'C39 H42 Ca2 Cl0.8 Mn2 N9.2 O19.8' 28 | _chemical_formula.weight 1174.82 29 | _space_group.crystal_system triclinic 30 | _space_group.IT_number 2 31 | _space_group.name_Hall '-P 1' 32 | _space_group.name_H-M_alt 'P -1' 33 | _cell.angle_alpha 61.595(6) 34 | _cell.angle_beta 79.180(5) 35 | _cell.angle_gamma 68.553(5) 36 | _cell.formula_units_Z 1 37 | _cell.length_a 10.5975(6) 38 | _cell.length_b 11.4166(7) 39 | _cell.length_c 11.7527(6) 40 | loop_ 41 | _space_group_symop.id 42 | _space_group_symop.operation_xyz 43 | 1 x,y,z 44 | 2 -x,-y,-z 45 | loop_ 46 | _atom_site.label 47 | _atom_site.type_symbol 48 | _atom_site.fract_x 49 | _atom_site.fract_y 50 | _atom_site.fract_z 51 | _atom_site.U_iso_or_equiv 52 | _atom_site.adp_type 53 | _atom_site.occupancy 54 | _atom_site.site_symmetry_order 55 | _atom_site.calc_flag 56 | _atom_site.refinement_flags_posn 57 | _atom_site.refinement_flags_adp 58 | _atom_site.refinement_flags_occupancy 59 | _atom_site.disorder_assembly 60 | _atom_site.disorder_group 61 | Mn1 Mn 0.59596(4) 0.33918(5) 0.54227(5) 0.02461(16) Uani 1 1 d . U . . . 62 | Ca1 Ca 0.72008(6) 0.57076(7) 0.57318(6) 0.03058(18) Uani 1 1 d . U . . . 63 | O1 O 0.4482(2) 0.2730(2) 0.5895(2) 0.0296(5) Uani 1 1 d . U . . . 64 | O2 O 0.7497(2) 0.3970(2) 0.5044(2) 0.0295(5) Uani 1 1 d . U . . . 65 | O3 O 0.4913(2) 0.4908(2) 0.3885(2) 0.0272(5) Uani 1 1 d . U . . . 66 | O4 O 0.8198(2) 0.6620(3) 0.6788(3) 0.0507(7) Uani 1 1 d . U . . . 67 | O5 O 0.6118(3) 0.7747(3) 0.6230(3) 0.0480(7) Uani 1 1 d . U . . . 68 | O6 O 0.7057(3) 0.8304(4) 0.7299(4) 0.0676(9) Uani 1 1 d . U . . . 69 | N1 N 0.6583(3) 0.1809(3) 0.7235(3) 0.0290(6) Uani 1 1 d . U . . . 70 | N2 N 0.7301(3) 0.2029(3) 0.4524(3) 0.0303(6) Uani 1 1 d . U . . . 71 | N3 N 0.3452(3) 0.5626(3) 0.1883(3) 0.0357(6) Uani 1 1 d . U . . . 72 | N4 N 0.7123(3) 0.7575(3) 0.6778(3) 0.0400(7) Uani 1 1 d . U . . . 73 | C1 C 0.5803(3) 0.0958(3) 0.7761(3) 0.0312(7) Uani 1 1 d . U . . . 74 | C2 C 0.6125(4) -0.0221(4) 0.8948(3) 0.0395(8) Uani 1 1 d . U . . . 75 | H2 H 0.5579 -0.0819 0.9309 0.047 Uiso 1 1 calc R . . . . 76 | C3 C 0.7232(4) -0.0514(4) 0.9590(4) 0.0456(9) Uani 1 1 d . U . . . 77 | H3 H 0.7463 -0.1323 1.0398 0.055 Uiso 1 1 calc R . . . . 78 | C4 C 0.8021(4) 0.0372(4) 0.9060(4) 0.0436(9) Uani 1 1 d . U . . . 79 | H4 H 0.8781 0.0193 0.9507 0.052 Uiso 1 1 calc R . . . . 80 | C5 C 0.7676(3) 0.1514(4) 0.7872(3) 0.0337(7) Uani 1 1 d . U . . . 81 | H5 H 0.8223 0.2111 0.7491 0.040 Uiso 1 1 calc R . . . . 82 | C6 C 0.4627(3) 0.1392(3) 0.6956(3) 0.0339(7) Uani 1 1 d . U . . . 83 | H6A H 0.4769 0.0692 0.6636 0.041 Uiso 1 1 calc R . . . . 84 | H6B H 0.3787 0.1423 0.7494 0.041 Uiso 1 1 calc R . . . . 85 | C7 C 0.8487(3) 0.2277(4) 0.4161(3) 0.0323(7) Uani 1 1 d . U . . . 86 | C8 C 0.9499(4) 0.1554(4) 0.3570(4) 0.0408(8) Uani 1 1 d . U . . . 87 | H8 H 1.0335 0.1744 0.3308 0.049 Uiso 1 1 calc R . . . . 88 | C9 C 0.9261(4) 0.0554(4) 0.3372(4) 0.0447(9) Uani 1 1 d . U . . . 89 | H9 H 0.9938 0.0046 0.2970 0.054 Uiso 1 1 calc R . . . . 90 | C10 C 0.8042(4) 0.0294(4) 0.3757(4) 0.0418(8) Uani 1 1 d . U . . . 91 | H10 H 0.7866 -0.0391 0.3626 0.050 Uiso 1 1 calc R . . . . 92 | C11 C 0.7086(4) 0.1044(4) 0.4333(3) 0.0368(8) Uani 1 1 d . U . . . 93 | H11 H 0.6246 0.0864 0.4607 0.044 Uiso 1 1 calc R . . . . 94 | C12 C 0.8642(3) 0.3391(4) 0.4415(4) 0.0397(8) Uani 1 1 d . U . . . 95 | H12A H 0.9448 0.2978 0.4955 0.048 Uiso 1 1 calc R . . . . 96 | H12B H 0.8802 0.4153 0.3582 0.048 Uiso 1 1 calc R . . . . 97 | C13 C 0.4652(3) 0.5853(3) 0.1572(3) 0.0326(7) Uani 1 1 d . U . . . 98 | C14 C 0.5068(4) 0.6536(4) 0.0301(3) 0.0380(8) Uani 1 1 d . U . . . 99 | H14 H 0.5935 0.6660 0.0122 0.046 Uiso 1 1 calc R . . . . 100 | C15 C 0.4223(4) 0.7033(4) -0.0700(4) 0.0454(9) Uani 1 1 d . U . . . 101 | H15 H 0.4488 0.7504 -0.1575 0.054 Uiso 1 1 calc R . . . . 102 | C16 C 0.2967(4) 0.6820(4) -0.0382(4) 0.0498(9) Uani 1 1 d . U . . . 103 | H16 H 0.2348 0.7158 -0.1042 0.060 Uiso 1 1 calc R . . . . 104 | C17 C 0.2631(4) 0.6120(4) 0.0890(4) 0.0450(9) Uani 1 1 d . U . . . 105 | H17 H 0.1774 0.5973 0.1088 0.054 Uiso 1 1 calc R . . . . 106 | C18 C 0.5595(3) 0.5283(4) 0.2660(3) 0.0324(7) Uani 1 1 d . U . . . 107 | H18A H 0.6339 0.4445 0.2668 0.039 Uiso 1 1 calc R . . . . 108 | H18B H 0.6002 0.6000 0.2510 0.039 Uiso 1 1 calc R . . . . 109 | Cl1 Cl 0.9257(4) 0.6983(6) 0.2917(4) 0.0366(8) Uani 0.4018 1 d D U P A 1 110 | O10 O 0.8533(14) 0.7012(17) 0.4085(12) 0.0526(17) Uani 0.4018 1 d D U P A 1 111 | O11 O 1.0618(14) 0.609(2) 0.324(2) 0.0559(19) Uani 0.4018 1 d D U P A 1 112 | O12 O 0.9277(15) 0.8407(10) 0.2085(13) 0.0608(12) Uani 0.4018 1 d D U P A 1 113 | O13 O 0.8595(8) 0.6533(8) 0.2354(7) 0.0608(12) Uani 0.4018 1 d D U P A 1 114 | O7 O 0.8379(9) 0.6913(11) 0.3778(8) 0.0526(17) Uani 0.5982 1 d D U P A 2 115 | O8 O 1.0518(10) 0.5928(13) 0.3514(13) 0.0559(19) Uani 0.5982 1 d D U P A 2 116 | O9 O 0.9458(10) 0.8000(7) 0.2082(9) 0.0608(12) Uani 0.5982 1 d D U P A 2 117 | N5 N 0.9448(11) 0.6904(14) 0.3119(11) 0.0366(8) Uani 0.5982 1 d D U P A 2 118 | O14 O 0.8488(8) 0.4940(11) 0.1033(8) 0.105(3) Uani 0.5 1 d . U P B -1 119 | C19 C 0.945(4) 0.6422(18) -0.031(4) 0.108(4) Uani 0.5 1 d D U P B -1 120 | H19A H 0.8549 0.7052 -0.0654 0.162 Uiso 0.5 1 calc GR . P B -1 121 | H19B H 1.0109 0.6495 -0.1034 0.162 Uiso 0.5 1 calc GR . P B -1 122 | H19C H 0.9716 0.6690 0.0262 0.162 Uiso 0.5 1 calc GR . P B -1 123 | C20 C 0.9432(9) 0.5067(11) 0.0360(8) 0.065(2) Uani 0.5 1 d D U P B -1 124 | C21 C 1.029(4) 0.3767(18) 0.050(4) 0.108(4) Uani 0.5 1 d D U P B -1 125 | H21A H 1.0774 0.3861 -0.0324 0.162 Uiso 0.5 1 calc GR . P B -1 126 | H21B H 0.9761 0.3133 0.0737 0.162 Uiso 0.5 1 calc GR . P B -1 127 | H21C H 1.0945 0.3383 0.1174 0.162 Uiso 0.5 1 calc GR . P B -1 128 | loop_ 129 | _atom_type.symbol 130 | _atom_type.description 131 | _atom_type.scat_dispersion_real 132 | _atom_type.scat_dispersion_imag 133 | _atom_type.scat_source 134 | C C 0.0181 0.0091 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 135 | H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 136 | Ca Ca 0.3641 1.2855 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 137 | Cl Cl 0.3639 0.7018 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 138 | Mn Mn -0.5299 2.8052 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 139 | N N 0.0311 0.0180 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 140 | O O 0.0492 0.0322 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 141 | -------------------------------------------------------------------------------- /examples/elemental-composition.cif: -------------------------------------------------------------------------------- 1 | #\#CIF_2.0 2 | 3 | ## 4 | # This example represents the reporting of the elemental analysis of a specimen 5 | # used in a diffraction experiment. 6 | # 7 | # The specimen may consist of one or more distinct crystalline and/or amorphous 8 | # phases. 9 | # 10 | # In this case, a single XRF experiment determined the weight fractions of 11 | # the elements, and the mass loss was determined at three seperate temperatures 12 | # via TGA. The mass loss values are cumulative totals. 13 | ## 14 | 15 | data_ATOM_ANALYTICAL_example 16 | 17 | loop_ 18 | _atom_analytical.id 19 | _atom_analytical.analyte 20 | _atom_analytical.meas_id 21 | _atom_analytical.chemical_species 22 | _atom_analytical.chemical_species_mass_percent 23 | 1 Fe a 'Fe' 49.09 24 | 2 Si a 'Si O2' 10.48 25 | 3 Al a 'Al2 O3' 6.02 26 | 4 Ti a 'Ti O2' 0.75 27 | 5 Mn a 'Mn' 0.15 28 | 6 Ca a 'Ca O' 0.14 29 | 7 P a 'P' 0.454 30 | 8 S a 'S' 0.007 31 | 9 Mg a 'Mg O' 0.27 32 | 10 K a 'K2 O' 0.014 33 | 11 Na a 'Na' 0.01 34 | 35 | loop_ 36 | _atom_analytical_mass_loss.id 37 | _atom_analytical_mass_loss.meas_id 38 | _atom_analytical_mass_loss.percent 39 | _atom_analytical_mass_loss.temperature 40 | LOI1 b 9.6 698 41 | LOI2 b 10.71 923 42 | LOI3 b 10.99 1273 43 | 44 | loop_ 45 | _atom_analytical_source.id 46 | _atom_analytical_source.technique 47 | _atom_analytical_source.equipment_make 48 | a XRF 'Panalytical Axios' 49 | b TGA 'NETZSCH Nevio' 50 | -------------------------------------------------------------------------------- /examples/simple-compositional-disorder.cif: -------------------------------------------------------------------------------- 1 | ## 2 | # The example file showcases the use of the _atom_site.disorder_assembly and 3 | # _atom_site.disorder_group data items to describe positional disorder. 4 | # Disorder assembly "A" has two groups which describe two different atoms 5 | # (group "1" -- Co, group 2 -- Mn). 6 | # 7 | # This file was adapted from COD entry 7705884. The full version of the original 8 | # file is available at https://www.crystallography.net/cod/7705884.html. 9 | ## 10 | data_7705884 11 | loop_ 12 | _publ_author.id 13 | _publ_author.name 14 | 1 'Li, Ang' 15 | 2 'Chamoreau, Lise-Marie' 16 | 3 'Baptiste, Beno\^it' 17 | 4 'Li, Yanling' 18 | 5 'Journaux, Yves' 19 | 6 'Lisnard, Laurent' 20 | _publ.section_title 21 | ; 22 | Solvothermal synthesis, structure and magnetic properties of heterometallic 23 | coordination polymers based on a phenolato-oxamato co-bidentate-tridentate 24 | ligand 25 | ; 26 | _journal.issue 2 27 | _journal.name_full 'Dalton transactions' 28 | _journal.page_first 681 29 | _journal.page_last 688 30 | _journal.paper_doi 10.1039/d0dt03269g 31 | _journal.volume 50 32 | _journal.year 2021 33 | _chemical_formula.moiety 'C16 H21 Co0.78 Cu Mn0.22 N3 O8' 34 | _chemical_formula.sum 'C16 H21 Co0.78 Cu Mn0.22 N3 O8' 35 | _chemical_formula.weight 504.94 36 | _space_group.crystal_system monoclinic 37 | _space_group.IT_number 14 38 | _space_group.name_Hall '-P 2ybc' 39 | _space_group.name_H-M_alt 'P 1 21/c 1' 40 | _cell.angle_alpha 90 41 | _cell.angle_beta 98.2690(10) 42 | _cell.angle_gamma 90 43 | _cell.formula_units_Z 4 44 | _cell.length_a 15.2626(4) 45 | _cell.length_b 8.4325(2) 46 | _cell.length_c 16.0027(4) 47 | loop_ 48 | _space_group_symop.id 49 | _space_group_symop.operation_xyz 50 | 1 x,y,z 51 | 2 -x,y+1/2,-z+1/2 52 | 3 -x,-y,-z 53 | 4 x,-y-1/2,z-1/2 54 | loop_ 55 | _atom_site.label 56 | _atom_site.type_symbol 57 | _atom_site.fract_x 58 | _atom_site.fract_y 59 | _atom_site.fract_z 60 | _atom_site.U_iso_or_equiv 61 | _atom_site.adp_type 62 | _atom_site.occupancy 63 | _atom_site.site_symmetry_order 64 | _atom_site.calc_flag 65 | _atom_site.refinement_flags_posn 66 | _atom_site.refinement_flags_adp 67 | _atom_site.refinement_flags_occupancy 68 | _atom_site.disorder_assembly 69 | _atom_site.disorder_group 70 | Cu1 Cu 0.78443(2) 0.88297(4) 0.37825(2) 0.02230(10) Uani 1 1 d . . . . . 71 | Co1 Co 0.77504(2) 0.66957(4) 0.54249(2) 0.02009(11) Uani 0.78(3) 1 d . . P A 1 72 | Mn1 Mn 0.77504(2) 0.66957(4) 0.54249(2) 0.02009(11) Uani 0.22(3) 1 d . . P A 2 73 | O1 O 0.85532(9) 0.95747(19) 0.28965(9) 0.0262(3) Uani 1 1 d . . . . . 74 | O2 O 0.84868(9) 0.94662(19) 0.14953(8) 0.0254(3) Uani 1 1 d . . . . . 75 | O3 O 0.69112(9) 0.79461(19) 0.13699(8) 0.0239(3) Uani 1 1 d . . . . . 76 | O4 O 0.69794(9) 0.79008(19) 0.44406(8) 0.0236(3) Uani 1 1 d . . . . . 77 | O5 O 0.85288(11) 1.0113(2) 0.46147(9) 0.0313(4) Uani 1 1 d . . . . . 78 | O6 O 0.84257(11) 0.8802(2) 0.58130(9) 0.0295(4) Uani 1 1 d . . . . . 79 | O7 O 0.86601(11) 0.6334(2) 0.45262(10) 0.0313(4) Uani 1 1 d . . . . . 80 | O8 O 0.72180(11) 0.4432(2) 0.50465(10) 0.0330(4) Uani 1 1 d . . . . . 81 | N1 N 0.70756(11) 0.8015(2) 0.28380(10) 0.0211(4) Uani 1 1 d . . . . . 82 | N2 N 0.92033(13) 0.4602(2) 0.36422(12) 0.0300(4) Uani 1 1 d . . . . . 83 | N3 N 0.65546(14) 0.2080(3) 0.52187(15) 0.0411(5) Uani 1 1 d . . . . . 84 | C1 C 0.81909(13) 0.9180(3) 0.21661(12) 0.0212(4) Uani 1 1 d . . . . . 85 | C2 C 0.73018(13) 0.8289(2) 0.20900(12) 0.0198(4) Uani 1 1 d . . . . . 86 | C3 C 0.63267(13) 0.7223(3) 0.30454(13) 0.0220(4) Uani 1 1 d . . . . . 87 | C4 C 0.56538(15) 0.6514(3) 0.24925(14) 0.0310(5) Uani 1 1 d . . . . . 88 | H4 H 0.5664 0.6550 0.1913 0.037 Uiso 1 1 calc R . . . . 89 | C5 C 0.49675(15) 0.5753(3) 0.28094(16) 0.0356(6) Uani 1 1 d . . . . . 90 | H5 H 0.4522 0.5258 0.2443 0.043 Uiso 1 1 calc R . . . . 91 | C6 C 0.49443(15) 0.5729(3) 0.36720(16) 0.0341(5) Uani 1 1 d . . . . . 92 | H6 H 0.4480 0.5220 0.3880 0.041 Uiso 1 1 calc R . . . . 93 | C7 C 0.56015(15) 0.6453(3) 0.42269(14) 0.0307(5) Uani 1 1 d . . . . . 94 | H7 H 0.5572 0.6442 0.4803 0.037 Uiso 1 1 calc R . . . . 95 | C8 C 0.63071(14) 0.7197(3) 0.39244(13) 0.0227(4) Uani 1 1 d . . . . . 96 | C9 C 0.87010(14) 0.9914(3) 0.54080(13) 0.0259(5) Uani 1 1 d . . . . . 97 | C10 C 0.92935(18) 1.1145(3) 0.58768(15) 0.0376(6) Uani 1 1 d . . . . . 98 | H10A H 0.9663 1.1605 0.5504 0.056 Uiso 1 1 calc GR . . . . 99 | H10B H 0.9658 1.0658 0.6346 0.056 Uiso 1 1 calc GR . . . . 100 | H10C H 0.8938 1.1958 0.6080 0.056 Uiso 1 1 calc GR . . . . 101 | C11 C 0.88724(16) 0.4980(3) 0.43243(15) 0.0345(6) Uani 1 1 d . . . . . 102 | H11 H 0.8788 0.4159 0.4693 0.041 Uiso 1 1 calc R . . . . 103 | C12 C 0.93672(17) 0.5799(3) 0.30285(15) 0.0339(5) Uani 1 1 d . . . . . 104 | H12A H 0.8930 0.5711 0.2536 0.051 Uiso 1 1 calc GR . . . . 105 | H12B H 0.9945 0.5642 0.2873 0.051 Uiso 1 1 calc GR . . . . 106 | H12C H 0.9335 0.6834 0.3272 0.051 Uiso 1 1 calc GR . . . . 107 | C13 C 0.9411(2) 0.2972(3) 0.3451(2) 0.0471(7) Uani 1 1 d . . . . . 108 | H13A H 1.0036 0.2873 0.3442 0.071 Uiso 1 1 calc GR . . . . 109 | H13B H 0.9096 0.2684 0.2910 0.071 Uiso 1 1 calc GR . . . . 110 | H13C H 0.9238 0.2283 0.3876 0.071 Uiso 1 1 calc GR . . . . 111 | C14 C 0.70103(16) 0.3351(3) 0.54919(16) 0.0349(6) Uani 1 1 d . . . . . 112 | H14 H 0.7189 0.3435 0.6071 0.042 Uiso 1 1 calc R . . . . 113 | C15 C 0.6232(3) 0.1909(4) 0.4325(2) 0.0685(10) Uani 1 1 d . . . . . 114 | H15A H 0.5605 0.2089 0.4228 0.103 Uiso 1 1 calc GR . . . . 115 | H15B H 0.6357 0.0857 0.4145 0.103 Uiso 1 1 calc GR . . . . 116 | H15C H 0.6522 0.2668 0.4011 0.103 Uiso 1 1 calc GR . . . . 117 | C16 C 0.6323(2) 0.0858(4) 0.5784(2) 0.0627(9) Uani 1 1 d . . . . . 118 | H16A H 0.6608 0.1074 0.6347 0.094 Uiso 1 1 calc GR . . . . 119 | H16B H 0.6515 -0.0154 0.5604 0.094 Uiso 1 1 calc GR . . . . 120 | H16C H 0.5693 0.0844 0.5775 0.094 Uiso 1 1 calc GR . . . . 121 | loop_ 122 | _atom_type.symbol 123 | _atom_type.description 124 | _atom_type.scat_dispersion_real 125 | _atom_type.scat_dispersion_imag 126 | _atom_type.scat_source 127 | C C 0.0181 0.0091 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 128 | H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 129 | Co Co -2.3653 3.6143 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 130 | Cu Cu -1.9646 0.5888 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 131 | Mn Mn -0.5299 2.8052 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 132 | N N 0.0311 0.0180 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 133 | O O 0.0492 0.0322 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' 134 | -------------------------------------------------------------------------------- /templ_attr.cif: -------------------------------------------------------------------------------- 1 | #\#CIF_2.0 2 | ############################################################################## 3 | # # 4 | # TEMPLATE DEFINITION ATTRIBUTES DICTIONARY # 5 | # # 6 | ############################################################################## 7 | 8 | data_TEMPL_ATTR 9 | 10 | _dictionary.title TEMPL_ATTR 11 | _dictionary.class Template 12 | _dictionary.version 1.4.11 13 | _dictionary.date 2025-05-19 14 | _dictionary.uri https://raw.githubusercontent.com/COMCIFS/cif_core/master/templ_attr.cif 15 | _dictionary.ddl_conformance 4.2.0 16 | _description.text 17 | ; 18 | This dictionary contains definition attribute sets that are common 19 | to other CIF dictionaries and is imported by them. 20 | ; 21 | 22 | #--------------------------------------------------------------------------- 23 | 24 | save_atom_site_label 25 | 26 | _definition.update 2021-10-25 27 | _description.text 28 | ; 29 | This label is a unique identifier for a particular site in the 30 | asymmetric unit of the crystal unit cell. It is made up of 31 | components, _atom_site.label_component_0 to *_6, which may be 32 | specified as separate data items. Component 0 usually matches one 33 | of the specified _atom_type.symbol codes. This is not mandatory 34 | if an _atom_site.type_symbol item is included in the atom site 35 | list. The _atom_site.type_symbol always takes precedence over 36 | an _atom_site.label in the identification of the atom type. The 37 | label components 1 to 6 are optional, and normally only 38 | components 0 and 1 are used. Note that components 0 and 1 are 39 | concatenated, while all other components, if specified, are 40 | separated by an underline character. Underline separators are 41 | only used if higher-order components exist. If an intermediate 42 | component is not used it may be omitted provided the underline 43 | separators are inserted. For example the label 'C233__ggg' is 44 | acceptable and represents the components C, 233, '', and ggg. 45 | Each label may have a different number of components. 46 | ; 47 | _type.purpose Encode 48 | _type.source Assigned 49 | _type.container Single 50 | _type.contents Word 51 | loop_ 52 | _description_example.case C12 Ca3g28 Fe3+17 H*251 53 | C_a_phe_83_a_0 Zn_Zn_301_A_0 54 | save_ 55 | 56 | save_restr_label 57 | 58 | _definition.update 2021-10-25 59 | _description.text 60 | ; 61 | Labels of atom sites subtending distance or angle. Atom 2 is the apex for 62 | angular restraints. 63 | ; 64 | _name.linked_item_id '_atom_site.label' 65 | _type.purpose Encode 66 | _type.source Assigned 67 | _type.container Single 68 | _type.contents Word 69 | save_ 70 | 71 | 72 | save_atom_site_id 73 | 74 | _definition.update 2021-10-25 75 | _description.text 76 | ; 77 | This label is a unique identifier for a particular site in the 78 | asymmetric unit of the crystal unit cell. 79 | ; 80 | _name.linked_item_id '_atom_site.label' 81 | _type.purpose Link 82 | _type.source Assigned 83 | _type.container Single 84 | _type.contents Word 85 | save_ 86 | 87 | 88 | save_rho_coeff 89 | 90 | _definition.update 2024-03-28 91 | _description.text 92 | ; 93 | Specifies a multipole population coefficient P(l,m) for 94 | the atom identified in _atom_rho_multipole.atom_label. 95 | ; 96 | _type.purpose Measurand 97 | _type.source Derived 98 | _type.container Single 99 | _type.contents Real 100 | _units.code none 101 | save_ 102 | 103 | 104 | save_rho_kappa 105 | 106 | _definition.update 2024-03-28 107 | _description.text 108 | ; 109 | A radial function expansion-contraction coefficient 110 | (κ = _atom_rho_multipole_kappa.base and 111 | κ'(l) = _atom_rho_multipole_kappa.prime[l]) 112 | for the atom specified in _atom_rho_multipole.atom_label. 113 | ; 114 | _type.purpose Measurand 115 | _type.source Derived 116 | _type.container Single 117 | _type.contents Real 118 | _units.code none 119 | save_ 120 | 121 | 122 | save_rho_slater 123 | 124 | _definition.update 2024-03-28 125 | _description.text 126 | ; 127 | Items used when the radial dependence of the valence 128 | electron density, R(κ'(l),l,r), of the atom specified in 129 | _atom_rho_multipole.atom_label is expressed as a Slater-type 130 | function [Hansen & Coppens (1978), equation (3)] 131 | ; 132 | _type.purpose Measurand 133 | _type.source Derived 134 | _type.container Single 135 | _type.contents Real 136 | _units.code none 137 | save_ 138 | 139 | 140 | save_matrix_pdb 141 | 142 | _definition.update 2021-03-18 143 | _description.text 144 | ; 145 | Element of the PDB ORIGX matrix or vector. 146 | ; 147 | _type.purpose Number 148 | _type.source Derived 149 | _type.container Single 150 | _type.contents Real 151 | _units.code none 152 | save_ 153 | 154 | 155 | save_matrix_w 156 | 157 | _definition.update 2023-09-11 158 | _description.text 159 | ; 160 | Element of the matrix W defined by van Smaalen (1991); (1995) 161 | ; 162 | _type.purpose Number 163 | _type.source Assigned 164 | _type.container Single 165 | _type.contents Real 166 | _enumeration.default 0.0 167 | _units.code none 168 | save_ 169 | 170 | 171 | save_ms_index 172 | 173 | _definition.update 2014-06-27 174 | _description.text 175 | ; 176 | Additional Miller indices needed to write the reciprocal vector 177 | in the definition of _diffrn_refln_index.m_list, 178 | _diffrn_standard_refln.index_m_list, _exptl_crystal_face.index_m_list. 179 | ; 180 | _type.purpose Number 181 | _type.source Recorded 182 | _type.container Single 183 | _type.contents Integer 184 | save_ 185 | 186 | 187 | save_index_limit_max 188 | 189 | _definition.update 2021-03-01 190 | _description.text 191 | ; 192 | Maximum value of the additional Miller indices appearing in 193 | _diffrn_reflns.index_m_* and _reflns.index_m_*. 194 | ; 195 | _type.purpose Number 196 | _type.source Recorded 197 | _type.container Single 198 | _type.contents Integer 199 | _units.code none 200 | save_ 201 | 202 | 203 | save_index_limit_min 204 | 205 | _definition.update 2021-03-01 206 | _description.text 207 | ; 208 | Minimum value of the additional Miller indices appearing in 209 | _diffrn_reflns.index_m_* and _reflns.index_m_*. 210 | ; 211 | _type.purpose Number 212 | _type.source Recorded 213 | _type.container Single 214 | _type.contents Integer 215 | _units.code none 216 | save_ 217 | 218 | 219 | save_cell_angle 220 | 221 | _definition.update 2023-07-01 222 | _description.text 223 | ; 224 | The angle between the bounding cell axes. 225 | ; 226 | _type.purpose Measurand 227 | _type.source Derived 228 | _type.container Single 229 | _type.contents Real 230 | _enumeration.range 0.0:180.0 231 | _units.code degrees 232 | save_ 233 | 234 | 235 | save_cell_angle_su 236 | 237 | _definition.update 2023-07-01 238 | _description.text 239 | ; 240 | Standard uncertainty of the angle between the bounding cell axes. 241 | ; 242 | _type.purpose SU 243 | _type.source Related 244 | _type.container Single 245 | _type.contents Real 246 | _units.code degrees 247 | save_ 248 | 249 | 250 | save_cell_length 251 | 252 | _definition.update 2024-07-17 253 | _description.text 254 | ; 255 | The length of each cell axis. 256 | ; 257 | _type.purpose Measurand 258 | _type.source Derived 259 | _type.container Single 260 | _type.contents Real 261 | _enumeration.range 0.0: 262 | _units.code angstroms 263 | save_ 264 | 265 | 266 | save_cell_length_su 267 | 268 | _definition.update 2023-07-01 269 | _description.text 270 | ; 271 | Standard uncertainty of the length of each cell axis. 272 | ; 273 | _type.purpose SU 274 | _type.source Related 275 | _type.container Single 276 | _type.contents Real 277 | _units.code angstroms 278 | save_ 279 | 280 | 281 | save_site_symmetry 282 | 283 | _definition.update 2025-03-27 284 | _description.text 285 | ; 286 | Data item specifying the symmetry operation codes applied to the atom 287 | sites involved in a specific geometric configuration or other correlated 288 | behaviour. 289 | 290 | The symmetry code of each atom site as the symmetry-equivalent position 291 | number 'n' and the cell translation number 'pqr'. These numbers are 292 | combined to form the code 'n pqr' or n_pqr. 293 | 294 | The character string n_pqr is composed as follows: 295 | 296 | n refers to the symmetry operation that is applied to the 297 | coordinates stored in _atom_site.fract_xyz. It must match 298 | a number given in _space_group_symop.id (or one of its 299 | aliases, such as _symmetry_equiv_pos_site_id). 300 | 301 | p, q and r refer to the translations that are subsequently 302 | applied to the symmetry transformed coordinates to generate 303 | the related atom position. These translations (x,y,z) are related 304 | to (p,q,r) by the relations 305 | p = 5 + x 306 | q = 5 + y 307 | r = 5 + z 308 | ; 309 | _type.purpose Composite 310 | _type.source Derived 311 | _type.container Single 312 | _type.contents Symop 313 | loop_ 314 | _description_example.case 315 | _description_example.detail '4' '4th symmetry operation applied.' 316 | '7_645' '7th symm. posn.; +a on x; -b on y.' 317 | . 'No symmetry or translation to site.' 318 | 319 | _enumeration.default 1_555 320 | 321 | save_ 322 | 323 | save_cartn_coord 324 | 325 | _definition.update 2012-05-07 326 | _description.text 327 | ; 328 | The atom site coordinates in angstroms specified according to a 329 | set of orthogonal Cartesian axes related to the cell axes as 330 | specified by the _atom_sites_Cartn_transform.axes description. 331 | ; 332 | _type.purpose Measurand 333 | _type.source Derived 334 | _type.container Single 335 | _type.contents Real 336 | _units.code angstroms 337 | save_ 338 | 339 | 340 | save_cartn_coord_su 341 | 342 | _definition.update 2023-07-01 343 | _description.text 344 | ; 345 | Standard uncertainty values of the atom site coordinates 346 | in angstroms specified according to a 347 | set of orthogonal Cartesian axes related to the cell axes as 348 | specified by the _atom_sites_Cartn_transform.axes description. 349 | ; 350 | _type.purpose SU 351 | _type.source Related 352 | _type.container Single 353 | _type.contents Real 354 | _units.code angstroms 355 | save_ 356 | 357 | 358 | save_fract_coord 359 | 360 | _definition.update 2012-05-07 361 | _description.text 362 | ; 363 | Atom site coordinates as fractions of the cell length values. 364 | ; 365 | _type.purpose Measurand 366 | _type.source Derived 367 | _type.container Single 368 | _type.contents Real 369 | _units.code none 370 | save_ 371 | 372 | 373 | save_fract_coord_su 374 | 375 | _definition.update 2023-07-01 376 | _description.text 377 | ; 378 | Standard uncertainty value of the atom site coordinates 379 | as fractions of the cell length values. 380 | ; 381 | _type.purpose SU 382 | _type.source Related 383 | _type.container Single 384 | _type.contents Real 385 | _units.code none 386 | save_ 387 | 388 | 389 | save_label_component 390 | 391 | _definition.update 2021-10-21 392 | _description.text 393 | ; 394 | Component_0 is normally a code which matches identically with 395 | one of the _atom_type.symbol codes. If this is the case then the 396 | rules governing the _atom_type.symbol code apply. If, however, 397 | the data item _atom_site.type_symbol is also specified in the 398 | atom site list, component 0 need not match this symbol or adhere 399 | to any of the _atom_type.symbol rules. 400 | Component_1 is referred to as the "atom number". When component 0 401 | is the atom type code, it is used to number the sites with the 402 | same atom type. This component code must start with at least one 403 | digit which is not followed by a + or - sign (to distinguish it 404 | from the component 0 rules). 405 | Components_2 to 6 contain the identifier, residue, sequence, 406 | asymmetry identifier and alternate codes, respectively. These 407 | codes may be composed of any characters except an underline. 408 | ; 409 | _type.purpose Encode 410 | _type.source Assigned 411 | _type.container Single 412 | _type.contents Word 413 | save_ 414 | 415 | save_label_comp 416 | 417 | _definition.update 2021-10-21 418 | _description.text 419 | ; 420 | See label_component_0 description. 421 | ; 422 | _type.purpose Encode 423 | _type.source Assigned 424 | _type.container Single 425 | _type.contents Word 426 | 427 | save_ 428 | 429 | save_cartn_matrix 430 | 431 | _definition.update 2021-07-21 432 | _description.text 433 | ; 434 | Matrix used to transform fractional coordinates in the ATOM_SITE category 435 | to Cartesian coordinates. The axial alignments of this transformation are 436 | described in _atom_sites_Cartn_transform.axes. The 3x1 translation is 437 | defined in _atom_sites_Cartn_transform.vector. 438 | 439 | x' |11 12 13| x | 1 | 440 | ( y' )Cartesian = mat|21 22 23| * ( y )fractional + vec| 2 | 441 | z' |31 32 33| z | 3 | 442 | 443 | The default transformation matrix uses Rollett's axial assignments with 444 | cell vectors a,b,c aligned with orthogonal axes X,Y,Z so that c||Z and 445 | b in plane YZ. 446 | 447 | Ref: Rollett, J. S. (1965). Computing Methods in Crystallography, p. 22. 448 | Oxford: Pergamon Press. 449 | ; 450 | _type.purpose Measurand 451 | _type.source Derived 452 | _type.container Single 453 | _type.contents Real 454 | _units.code angstroms 455 | 456 | save_ 457 | 458 | save_cartn_vector 459 | 460 | _definition.update 2021-07-21 461 | _description.text 462 | ; 463 | The 3x1 translation that is used with _atom_sites_cartn_transform.matrix 464 | to transform fractional coordinates in the ATOM_SITE category to Cartesian 465 | coordinates. The axial alignments of this transformation are described 466 | in _atom_sites_Cartn_transform.axes. 467 | ; 468 | _type.purpose Measurand 469 | _type.source Derived 470 | _type.container Single 471 | _type.contents Real 472 | _units.code angstroms 473 | 474 | save_ 475 | 476 | save_ncs_matrix_ij 477 | 478 | _definition.update 2021-03-01 479 | _description.text 480 | ; 481 | The [I][J] element of the 3x3 matrix component of a 482 | non-crystallographic symmetry operation. 483 | ; 484 | _type.purpose Number 485 | _type.source Derived 486 | _type.container Single 487 | _type.contents Real 488 | _units.code none 489 | 490 | save_ 491 | 492 | save_rot_matrix_ij 493 | 494 | _definition.update 2021-03-01 495 | _description.text 496 | ; 497 | The [I][J] element of the matrix used to rotate the subset of the 498 | Cartesian coordinates in the ATOM_SITE category identified in the 499 | STRUCT_BIOL_GEN category to give a view useful for describing the 500 | structure. The conventions used in the rotation are described in 501 | _struct_biol_view.details. 502 | 503 | |x'| |11 12 13| |x| 504 | |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~ 505 | |z'| |31 32 33| |z| 506 | ; 507 | _type.purpose Number 508 | _type.source Derived 509 | _type.container Single 510 | _type.contents Real 511 | _units.code none 512 | 513 | save_ 514 | 515 | save_fract_matrix 516 | 517 | _definition.update 2025-05-12 518 | _description.text 519 | ; 520 | Matrix used to transform Cartesian coordinates in the ATOM_SITE category 521 | to fractional coordinates. The axial alignments of this transformation are 522 | described in _atom_sites_fract_transform.axes. The 3 x 1 translation is 523 | defined in _atom_sites_fract_transform.vector. 524 | 525 | x' |11 12 13| x | 1 | 526 | ( y' )fractional = mat|21 22 23| * ( y )Cartesian + vec| 2 | 527 | z' |31 32 33| z | 3 | 528 | 529 | The default transformation matrix uses Rollett's axial assignments with 530 | cell vectors a,b,c aligned with orthogonal axes X,Y,Z so that c||Z and 531 | b in plane YZ. 532 | 533 | Ref: Rollett, J. S. (1965). Computing Methods in Crystallography, p. 22. 534 | Oxford: Pergamon Press. 535 | ; 536 | _type.purpose Measurand 537 | _type.source Derived 538 | _type.container Single 539 | _type.contents Real 540 | _units.code reciprocal_angstroms 541 | 542 | save_ 543 | 544 | save_fract_vector 545 | 546 | _definition.update 2021-07-21 547 | _description.text 548 | ; 549 | The 3x1 translation that is used with _atom_sites_fract_transform.matrix 550 | to transform Cartesian coordinates in the ATOM_SITE category to fractional 551 | coordinates. The axial alignments of this transformation are described 552 | in _atom_sites_fract_transform.axes. 553 | ; 554 | _type.purpose Measurand 555 | _type.source Derived 556 | _type.container Single 557 | _type.contents Real 558 | _units.code none 559 | 560 | save_ 561 | 562 | save_aniso_bij 563 | 564 | _definition.update 2025-03-27 565 | _description.text 566 | ; 567 | These are the standard anisotropic atomic displacement components, in 568 | angstroms squared, which appear in the structure-factor term 569 | 570 | T = exp{-1/4 sum~i~ [ sum~j~ (B^ij^ h~i~ h~j~ a*~i~ a*~j~) ] } 571 | 572 | h = the Miller indices 573 | a* = the reciprocal-space cell lengths 574 | 575 | The unique elements of the real symmetric matrix are entered by row. 576 | 577 | The IUCr Commission on Nomenclature recommends against the use of B for 578 | reporting atomic displacement parameters. U, being directly proportional 579 | to B, is preferred. 580 | 581 | Note that U^ij^ = β^ij^/(2 π^2^ a*~i~ a*~j~) = B^ij^/(8 π^2^). 582 | 583 | Ref: Trueblood, K. N. et al. (1996). Acta Cryst. A52, 770-781. 584 | ; 585 | _type.purpose Measurand 586 | _type.source Derived 587 | _type.container Single 588 | _type.contents Real 589 | _units.code angstrom_squared 590 | save_ 591 | 592 | 593 | save_aniso_bij_su 594 | 595 | _definition.update 2025-03-27 596 | _description.text 597 | ; 598 | These are the standard uncertainty values (s.u.) for the standard 599 | form of the B^ij^ anisotropic atomic displacement components (see 600 | aniso_BIJ). Because these values are _type.purpose Measurand, the 601 | s.u. values may in practice be auto generated as part of the 602 | B^ij^ calculation. 603 | ; 604 | _type.purpose SU 605 | _type.source Related 606 | _type.container Single 607 | _type.contents Real 608 | _units.code angstrom_squared 609 | save_ 610 | 611 | 612 | save_aniso_betaij 613 | 614 | _definition.update 2025-03-27 615 | _description.text 616 | ; 617 | These are the standard unitless anisotropic atomic displacement components 618 | which appear in the structure factor term 619 | 620 | T = exp{-1 sum~i~ [ sum~j~ (β^ij^ h~i~ h~j~) ] } 621 | 622 | h = the Miller indices 623 | 624 | The unique elements of the real symmetric matrix are entered by row. 625 | 626 | The IUCr Commission on Nomenclature recommends against the use 627 | of β for reporting atomic displacement parameters; U is preferred. 628 | 629 | Note that U^ij^ = β^ij^/(2 π^2^ a*~i~ a*~j~) = B^ij^/(8 π^2^). 630 | 631 | Ref: Trueblood, K. N. et al. (1996). Acta Cryst. A52, 770-781. 632 | ; 633 | _type.purpose Measurand 634 | _type.source Derived 635 | _type.container Single 636 | _type.contents Real 637 | _units.code none 638 | save_ 639 | 640 | 641 | save_aniso_betaij_su 642 | 643 | _definition.update 2025-03-27 644 | _description.text 645 | ; 646 | These are the standard uncertainty values (s.u.) for the standard 647 | form of the β^ij^ anisotropic atomic displacement components (see 648 | aniso_betaIJ). Because these values are _type.purpose Measurand, the 649 | s.u. values may in practice be auto generated as part of the 650 | β^ij^ calculation. 651 | ; 652 | _type.purpose SU 653 | _type.source Related 654 | _type.container Single 655 | _type.contents Real 656 | _units.code none 657 | save_ 658 | 659 | 660 | save_aniso_uij 661 | 662 | _definition.update 2025-03-27 663 | _description.text 664 | ; 665 | These are the standard anisotropic atomic displacement components in 666 | angstroms squared which appear in the structure-factor term 667 | 668 | T = exp{ -2π^2^ sum~i~ [ sum~j~ (U^ij^ h~i~ h~j~ a*~i~ a*~j~) ] } 669 | 670 | h = the Miller indices 671 | a* = the reciprocal-space cell lengths 672 | 673 | The unique elements of the real symmetric matrix are entered by row. 674 | 675 | The IUCr Commission on Nomenclature recommends the use of U for reporting 676 | atomic displacement parameters. 677 | 678 | Note that U^ij^ = β^ij^/(2 π^2^ a*~i~ a*~j~) = B^ij^/(8 π^2^). 679 | 680 | Ref: Trueblood, K. N. et al. (1996). Acta Cryst. A52, 770-781. 681 | ; 682 | _type.purpose Measurand 683 | _type.source Derived 684 | _type.container Single 685 | _type.contents Real 686 | _units.code angstrom_squared 687 | save_ 688 | 689 | 690 | save_aniso_uij_su 691 | 692 | _definition.update 2025-03-27 693 | _description.text 694 | ; 695 | These are the standard uncertainty values (s.u.) for the standard 696 | form of the U^ij^ anisotropic atomic displacement components (see 697 | aniso_UIJ). Because these values are _type.purpose Measurand, the 698 | s.u. values may in practice be auto generated as part of the 699 | U^ij^ calculation. 700 | ; 701 | _type.purpose SU 702 | _type.source Related 703 | _type.container Single 704 | _type.contents Real 705 | _units.code angstrom_squared 706 | save_ 707 | 708 | save_general_su 709 | 710 | _type.purpose SU 711 | _type.source Related 712 | _type.container Single 713 | _type.contents Real 714 | 715 | save_ 716 | 717 | save_cromer_mann_coeff 718 | 719 | _definition.update 2023-06-03 720 | _description.text 721 | ; 722 | The set of data items used to define Cromer-Mann coefficients 723 | for generation of (0.0 < s < 2.0 Å^-1^) X-ray scattering factors. 724 | 725 | f(s) = c + Sum[a~i~ * exp(-b~i~ * s^2^), i=1:4] 726 | 727 | where s = sin(θ)/λ, θ is the diffraction angle and λ is the wavelength 728 | of the incident radiation in angstroms. 729 | 730 | Ref: International Tables for X-ray Crystallography (1974). 731 | Vol. IV, Table 2.2B 732 | or International Tables for Crystallography (2004). 733 | Vol. C, Tables 6.1.1.4 and 6.1.1.5. 734 | ; 735 | _type.purpose Number 736 | _type.source Assigned 737 | _type.container Single 738 | _type.contents Real 739 | _enumeration.def_index_id '_atom_type.symbol' 740 | save_ 741 | 742 | 743 | save_hi_ang_fox_coeffs 744 | 745 | _definition.update 2023-06-03 746 | _description.text 747 | ; 748 | The set of data items used to define Fox et al. coefficients 749 | for generation of high-angle (2.0 < s < 6.0 Å^-1^) X-ray scattering factors. 750 | 751 | f(s) = exp[Sum(c~i~ * s^i^, i=0:3)] 752 | 753 | where s = sin(θ)/λ, θ is the diffraction angle and λ is the wavelength 754 | of the incident radiation in angstroms. 755 | 756 | Ref: International Tables for Crystallography (2004). Vol. C, 757 | Table 6.1.1.5. 758 | ; 759 | _type.purpose Number 760 | _type.source Assigned 761 | _type.container Single 762 | _type.contents Real 763 | _enumeration.def_index_id '_atom_type.symbol' 764 | save_ 765 | 766 | 767 | save_miller_index 768 | 769 | _definition.update 2013-04-16 770 | _description.text 771 | ; 772 | The index of a reciprocal space vector. 773 | ; 774 | _type.purpose Number 775 | _type.source Recorded 776 | _type.container Single 777 | _type.contents Integer 778 | _units.code none 779 | save_ 780 | 781 | 782 | save_orient_matrix 783 | 784 | _definition.update 2012-05-07 785 | _description.text 786 | ; 787 | The set of data items which specify the elements of the matrix of 788 | the orientation of the crystal axes to the diffractometer goniometer. 789 | ; 790 | _type.purpose Number 791 | _type.source Recorded 792 | _type.container Single 793 | _type.contents Real 794 | _units.code none 795 | save_ 796 | 797 | 798 | save_transf_matrix 799 | 800 | _definition.update 2012-05-07 801 | _description.text 802 | ; 803 | The set of data items which specify the elements of the matrix 804 | used to transform the reflection indices _diffrn_refln.hkl 805 | into _refln.hkl. 806 | ; 807 | _type.purpose Number 808 | _type.source Recorded 809 | _type.container Single 810 | _type.contents Real 811 | _units.code none 812 | save_ 813 | 814 | 815 | save_face_angle 816 | 817 | _definition.update 2025-05-19 818 | _description.text 819 | ; 820 | Diffractometer angle setting when the perpendicular to the specified 821 | crystal face is aligned along a specified direction (e.g. the 822 | bisector of the incident and reflected beams in an optical goniometer). 823 | ; 824 | _type.purpose Measurand 825 | _type.source Recorded 826 | _type.container Single 827 | _type.contents Real 828 | _enumeration.range -180.0:180.0 829 | _units.code degrees 830 | save_ 831 | 832 | 833 | save_orient_angle 834 | 835 | _definition.update 2013-04-15 836 | _description.text 837 | ; 838 | Diffractometer angle of a reflection measured at the centre of the 839 | diffraction peak and used to determine _diffrn_orient_matrix.UBIJ. 840 | ; 841 | _type.purpose Measurand 842 | _type.source Recorded 843 | _type.container Single 844 | _type.contents Real 845 | _enumeration.range -180.0:180.0 846 | _units.code degrees 847 | save_ 848 | 849 | 850 | save_diffr_angle 851 | 852 | _definition.update 2013-04-15 853 | _description.text 854 | ; 855 | Diffractometer angle at which the intensity is measured. This was 856 | calculated from the specified orientation matrix and the original 857 | measured cell dimensions before any subsequent transformations. 858 | ; 859 | _type.purpose Number 860 | _type.source Derived 861 | _type.container Single 862 | _type.contents Real 863 | _enumeration.range -180.0:180.0 864 | _units.code degrees 865 | save_ 866 | 867 | 868 | save_display_colour 869 | 870 | _definition.update 2019-01-09 871 | _description.text 872 | ; 873 | Integer value between 0 and 255 giving the intensity of a 874 | specific colour component (red, green or blue) for the RGB 875 | display colour code. 876 | ; 877 | _type.purpose Number 878 | _type.source Recorded 879 | _type.container Single 880 | _type.contents Integer 881 | _enumeration.range 0:255 882 | _units.code none 883 | save_ 884 | 885 | #============================================================================= 886 | # The dictionary's attribute creation history. 887 | #============================================================================ 888 | 889 | loop_ 890 | _dictionary_audit.version 891 | _dictionary_audit.date 892 | _dictionary_audit.revision 893 | 1.0.0 2005-12-12 894 | ; 895 | Initial version of the TEMPLATES dictionary created from the 896 | definitions used in CORE_3 dictionary version 3.5.02 897 | ; 898 | 1.0.1 2006-02-12 899 | ; 900 | Remove dictionary attributes from a save frame. 901 | Change category core_templates to template 902 | ; 903 | 1.2.1 2006-02-21 904 | ; 905 | File structure to conform with prototype version dictionaries. 906 | ; 907 | 1.2.2 2006-03-07 908 | ; 909 | Added the template _template.relational_id for the ddl3 dictionary. 910 | ; 911 | 1.2.3 2006-06-17 912 | ; 913 | Apply DDL 3.6.01 changes 914 | ; 915 | 1.2.4 2006-06-29 916 | ; 917 | Remove "_template" from the definition names. 918 | Apply DDL 3.6.05 changes. 919 | Change file name from templates.dic to com_att.dic 920 | ; 921 | 1.2.5 2006-09-07 922 | ; 923 | Apply DDL 3.6.08 changes 924 | ; 925 | 1.2.6 2006-11-13 926 | ; 927 | Apply DDL 3.6.10 changes 928 | ; 929 | 1.2.7 2006-12-14 930 | ; 931 | Apply DDL 3.7.01 changes 932 | ; 933 | 1.2.8 2008-06-18 934 | ; 935 | Change _type.purpose for Miller_index from Observed to Identify 936 | ; 937 | 1.3.1 2011-08-03 938 | ; 939 | Remove definition.id lines in keeping with nested imports. 940 | ; 941 | 1.3.2 2011-12-01 942 | ; 943 | Update the DDL version. No Matrix types present. 944 | ; 945 | 1.3.3 2012-05-07 946 | ; 947 | Apply changes of 3.10.01 DDL version. 948 | ; 949 | 1.3.4 2012-10-16 950 | ; 951 | Apply changes of 3.10.02 DDL version. "Label" becomes "Code". 952 | ; 953 | 1.3.5 2012-11-29 954 | ; 955 | Add "_enumeration.def_index_id '_atom_type.symbol' " 956 | to Cromer_Mann_coeff and hi_ang_Fox_coeffs. 957 | ; 958 | 1.3.6 2012-12-11 959 | ; 960 | Add the templates Cartn_matrix and fract_matrix 961 | ; 962 | 1.4.1 2013-03-08 963 | ; 964 | Changes arising from alerts issued by ALIGN. 965 | ; 966 | 1.4.2 2013-04-15 967 | ; 968 | Removed description.common from all defs; inconsistent invocations 969 | Changed types for 'diffrn_angle' 970 | Added new frame for 'orient_angle' 971 | ; 972 | 1.4.3 2013-04-16 973 | ; 974 | Changed type.source 'Measured' to 'Recorded' 975 | Changed type.source 'Assigned' to 'Recorded' in Miller_index 976 | ; 977 | 1.4.4 2013-04-17 978 | ; 979 | Changed type.source 'Quantity' to 'Number' or 'Encode' 980 | ; 981 | 1.4.5 2014-06-08 982 | ; 983 | Added aniso_BIJ_su and aniso_UIJ_su 984 | Added atom_site_fract_su and atom_site_cartn_su 985 | ; 986 | 1.4.6 2014-06-09 987 | ; 988 | dummy top line added to all frames; this is skipped on import. 989 | ; 990 | 1.4.7 2014-06-12 991 | ; 992 | Added attribute save frame "aniso_BIJ2" 993 | Added attribute save frame "rot_matrix_IJ" 994 | Added attribute save frame "ncs_matrix_IJ" 995 | Added attribute save frame "atom_site_id" 996 | Added attribute save frame "label_comp" 997 | ; 998 | 1.4.8 2014-06-27 999 | ; 1000 | Added attribute save frame "ms_index" 1001 | Added attribute save frame "matrix_w" 1002 | ; 1003 | 1.4.9 2019-09-25 1004 | ; 1005 | Changed the '_type.purpose' from 'Encode' to 'Link' in the 'atom_site_id' 1006 | save frame. 1007 | 1008 | Removed the '_name.linked_item_id' data item from the 'atom_site_label' 1009 | save frame. 1010 | 1011 | Changed the data type in the 'diffr_counts' save frame from 'Count' to 1012 | 'Integer'. 1013 | ; 1014 | 1.4.10 2023-01-13 1015 | ; 1016 | Corrected a few typos in the descriptions of several save frames. 1017 | 1018 | Added the 'none' units of measurement to the 'rho_coeff', 1019 | 'rho_kappa', 'rho_slater', 'matrix_pdb', 'matrix_w', 'index_limit_max', 1020 | 'index_limit_min', 'ncs_matrix_IJ' and 'rot_matrix_IJ' save frames. 1021 | 1022 | Changed the units of measurement in the 'Cartn_matrix' save frame 1023 | from 'reciprocal_angstroms' to 'angstroms'. 1024 | 1025 | Changed the units of measurement in the 'fract_matrix' save frame 1026 | from 'none' to 'reciprocal_angstroms'. 1027 | 1028 | Added the 'Cartn_vector' and 'fract_vector' save frames. 1029 | 1030 | Changed the DDL conformance version number from 3.14.0 to 4.1.0. 1031 | 1032 | Changed atomic labels to 'Word' for conformance with DDL1. 1033 | 1034 | Updated description of _site_symmetry. 1035 | ; 1036 | 1.4.11 2025-05-19 1037 | ; 1038 | # Please update the date above and describe the change below until 1039 | # ready for the next release 1040 | 1041 | Updated descriptions of cromer_mann_coeff and hi_ang_fox_coeffs. 1042 | 1043 | Added the default value of '1_555' to the 'site_symmetry' save frame. 1044 | 1045 | Added descriptions for aniso_betaIJ, and aniso_betaIJ_su. 1046 | Updated descriptions of aniso_BIJ and aniso_UIJ. 1047 | 1048 | Removed the 'aniso_bij2' save frame. 1049 | 1050 | Changed the _type.source attribute of all SU data items to 'Related'. 1051 | 1052 | Removed the _name.category_id attribute from the 'matrix_w' save frame. 1053 | 1054 | Corrected referenced data names (e.g. atom_rho_multipole.atom_label 1055 | -> _atom_rho_multipole.atom_label) in the save_rho_* saveframes (bm). 1056 | 1057 | Changed the enumeration range of in the 'cell_length' save frame from 1058 | '1.0:' to '0.0:' (av). 1059 | 1060 | Style/formatting changes in readiness for Volume G 2nd Edition for: 1061 | aniso_bij, aniso_bij_su, aniso_beta_ij, aniso_beta_ij_su, 1062 | aniso_uij, aniso_uij_su 1063 | 1064 | Updated description of _site_symmetry. 1065 | 1066 | Added reference to cartn_matrix and fract_matrix. 1067 | ; 1068 | --------------------------------------------------------------------------------