|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/asn/asnpub.all |
source navigation diff markup identifier search freetext search file search |
1 --$Revision: 6.5 $
2 --**********************************************************************
3 --
4 -- NCBI General Data elements
5 -- by James Ostell, 1990
6 -- Version 3.0 - June 1994
7 --
8 --**********************************************************************
9
10 NCBI-General DEFINITIONS ::=
11 BEGIN
12
13 EXPORTS Date, Person-id, Object-id, Dbtag, Int-fuzz, User-object, User-field;
14
15 -- StringStore is really a VisibleString. It is used to define very
16 -- long strings which may need to be stored by the receiving program
17 -- in special structures, such as a ByteStore, but it's just a hint.
18 -- AsnTool stores StringStores in ByteStore structures.
19 -- OCTET STRINGs are also stored in ByteStores by AsnTool
20 --
21 -- typedef struct bsunit { /* for building multiline strings */
22 -- Nlm_Handle str; /* the string piece */
23 -- Nlm_Int2 len_avail,
24 -- len;
25 -- struct bsunit PNTR next; } /* the next one */
26 -- Nlm_BSUnit, PNTR Nlm_BSUnitPtr;
27 --
28 -- typedef struct bytestore {
29 -- Nlm_Int4 seekptr, /* current position */
30 -- totlen, /* total stored data length in bytes */
31 -- chain_offset; /* offset in ByteStore of first byte in curchain */
32 -- Nlm_BSUnitPtr chain, /* chain of elements */
33 -- curchain; /* the BSUnit containing seekptr */
34 -- } Nlm_ByteStore, PNTR Nlm_ByteStorePtr;
35 --
36 -- AsnTool incorporates this as a primitive type, so the definition
37 -- is here just for completeness
38 --
39 -- StringStore ::= [APPLICATION 1] IMPLICIT OCTET STRING
40 --
41
42 -- BigInt is really an INTEGER. It is used to warn the receiving code to expect
43 -- a value bigger than Int4 (actually Int8). It will be stored in DataVal.bigintvalue
44 --
45 -- Like StringStore, AsnTool incorporates it as a primitive. The definition would be:
46 -- BigInt ::= [APPLICATION 2] IMPLICIT INTEGER
47 --
48
49 -- Date is used to replace the (overly complex) UTCTtime, GeneralizedTime
50 -- of ASN.1
51 -- It stores only a date
52 --
53
54 Date ::= CHOICE {
55 str VisibleString , -- for those unparsed dates
56 std Date-std } -- use this if you can
57
58 Date-std ::= SEQUENCE { -- NOTE: this is NOT a unix tm struct
59 year INTEGER , -- full year (including 1900)
60 month INTEGER OPTIONAL , -- month (1-12)
61 day INTEGER OPTIONAL , -- day of month (1-31)
62 season VisibleString OPTIONAL , -- for "spring", "may-june", etc
63 hour INTEGER OPTIONAL , -- hour of day (0-23)
64 minute INTEGER OPTIONAL , -- minute of hour (0-59)
65 second INTEGER OPTIONAL } -- second of minute (0-59)
66
67 -- Dbtag is generalized for tagging
68 -- eg. { "Social Security", str "023-79-8841" }
69 -- or { "member", id 8882224 }
70
71 Dbtag ::= SEQUENCE {
72 db VisibleString , -- name of database or system
73 tag Object-id } -- appropriate tag
74
75 -- Object-id can tag or name anything
76 --
77
78 Object-id ::= CHOICE {
79 id INTEGER ,
80 str VisibleString }
81
82 -- Person-id is to define a std element for people
83 --
84
85 Person-id ::= CHOICE {
86 dbtag Dbtag , -- any defined database tag
87 name Name-std , -- structured name
88 ml VisibleString , -- MEDLINE name (semi-structured)
89 -- eg. "Jones RM"
90 str VisibleString, -- unstructured name
91 consortium VisibleString } -- consortium name
92
93 Name-std ::= SEQUENCE { -- Structured names
94 last VisibleString ,
95 first VisibleString OPTIONAL ,
96 middle VisibleString OPTIONAL ,
97 full VisibleString OPTIONAL , -- full name eg. "J. John Smith, Esq"
98 initials VisibleString OPTIONAL, -- first + middle initials
99 suffix VisibleString OPTIONAL , -- Jr, Sr, III
100 title VisibleString OPTIONAL } -- Dr., Sister, etc
101
102 --**** Int-fuzz **********************************************
103 --*
104 --* uncertainties in integer values
105
106 Int-fuzz ::= CHOICE {
107 p-m INTEGER , -- plus or minus fixed amount
108 range SEQUENCE { -- max to min
109 max INTEGER ,
110 min INTEGER } ,
111 pct INTEGER , -- % plus or minus (x10) 0-1000
112 lim ENUMERATED { -- some limit value
113 unk (0) , -- unknown
114 gt (1) , -- greater than
115 lt (2) , -- less than
116 tr (3) , -- space to right of position
117 tl (4) , -- space to left of position
118 circle (5) , -- artificial break at origin of circle
119 other (255) } , -- something else
120 alt SET OF INTEGER } -- set of alternatives for the integer
121
122
123 --**** User-object **********************************************
124 --*
125 --* a general object for a user defined structured data item
126 --* used by Seq-feat and Seq-descr
127
128 User-object ::= SEQUENCE {
129 class VisibleString OPTIONAL , -- endeavor which designed this object
130 type Object-id , -- type of object within class
131 data SEQUENCE OF User-field } -- the object itself
132
133 User-field ::= SEQUENCE {
134 label Object-id , -- field label
135 num INTEGER OPTIONAL , -- required for strs, ints, reals, oss
136 data CHOICE { -- field contents
137 str VisibleString ,
138 int INTEGER ,
139 real REAL ,
140 bool BOOLEAN ,
141 os OCTET STRING ,
142 object User-object , -- for using other definitions
143 strs SEQUENCE OF VisibleString ,
144 ints SEQUENCE OF INTEGER ,
145 reals SEQUENCE OF REAL ,
146 oss SEQUENCE OF OCTET STRING ,
147 fields SEQUENCE OF User-field ,
148 objects SEQUENCE OF User-object } }
149
150
151
152 END
153
154 --$Revision: 6.2 $
155 --****************************************************************
156 --
157 -- NCBI Bibliographic data elements
158 -- by James Ostell, 1990
159 --
160 -- Taken from the American National Standard for
161 -- Bibliographic References
162 -- ANSI Z39.29-1977
163 -- Version 3.0 - June 1994
164 -- PubMedId added in 1996
165 -- ArticleIds and eprint elements added in 1999
166 --
167 --****************************************************************
168
169 NCBI-Biblio DEFINITIONS ::=
170 BEGIN
171
172 EXPORTS Cit-art, Cit-jour, Cit-book, Cit-pat, Cit-let, Id-pat, Cit-gen,
173 Cit-proc, Cit-sub, Title, Author, PubMedId;
174
175 IMPORTS Person-id, Date, Dbtag FROM NCBI-General;
176
177 -- Article Ids
178
179 ArticleId ::= CHOICE { -- can be many ids for an article
180 pubmed PubMedId , -- see types below
181 medline MedlineUID ,
182 doi DOI ,
183 pii PII ,
184 pmcid PmcID ,
185 pmcpid PmcPid ,
186 pmpid PmPid ,
187 other Dbtag } -- generic catch all
188
189 PubMedId ::= INTEGER -- Id from the PubMed database at NCBI
190 MedlineUID ::= INTEGER -- Id from MEDLINE
191 DOI ::= VisibleString -- Document Object Identifier
192 PII ::= VisibleString -- Controlled Publisher Identifier
193 PmcID ::= INTEGER -- PubMed Central Id
194 PmcPid ::= VisibleString -- Publisher Id supplied to PubMed Central
195 PmPid ::= VisibleString -- Publisher Id supplied to PubMed
196
197 ArticleIdSet ::= SET OF ArticleId
198
199 -- Status Dates
200
201 PubStatus ::= INTEGER { -- points of publication
202 received (1) , -- date manuscript received for review
203 accepted (2) , -- accepted for publication
204 epublish (3) , -- published electronically by publisher
205 ppublish (4) , -- published in print by publisher
206 revised (5) , -- article revised by publisher/author
207 pmc (6) , -- article first appeared in PubMed Central
208 pmcr (7) , -- article revision in PubMed Central
209 pubmed (8) , -- article citation first appeared in PubMed
210 pubmedr (9) , -- article citation revision in PubMed
211 aheadofprint (10), -- epublish, but will be followed by print
212 premedline (11), -- date into PreMedline status
213 medline (12), -- date made a MEDLINE record
214 other (255) }
215
216 PubStatusDate ::= SEQUENCE { -- done as a structure so fields can be added
217 pubstatus PubStatus ,
218 date Date } -- time may be added later
219
220 PubStatusDateSet ::= SET OF PubStatusDate
221
222 -- Citation Types
223
224 Cit-art ::= SEQUENCE { -- article in journal or book
225 title Title OPTIONAL , -- title of paper (ANSI requires)
226 authors Auth-list OPTIONAL , -- authors (ANSI requires)
227 from CHOICE { -- journal or book
228 journal Cit-jour ,
229 book Cit-book ,
230 proc Cit-proc } ,
231 ids ArticleIdSet OPTIONAL } -- lots of ids
232
233 Cit-jour ::= SEQUENCE { -- Journal citation
234 title Title , -- title of journal
235 imp Imprint }
236
237 Cit-book ::= SEQUENCE { -- Book citation
238 title Title , -- Title of book
239 coll Title OPTIONAL , -- part of a collection
240 authors Auth-list, -- authors
241 imp Imprint }
242
243 Cit-proc ::= SEQUENCE { -- Meeting proceedings
244 book Cit-book , -- citation to meeting
245 meet Meeting } -- time and location of meeting
246
247 -- Patent number and date-issue were made optional in 1997 to
248 -- support patent applications being issued from the USPTO
249 -- Semantically a Cit-pat must have either a patent number or
250 -- an application number (or both) to be valid
251
252 Cit-pat ::= SEQUENCE { -- patent citation
253 title VisibleString ,
254 authors Auth-list, -- author/inventor
255 country VisibleString , -- Patent Document Country
256 doc-type VisibleString , -- Patent Document Type
257 number VisibleString OPTIONAL, -- Patent Document Number
258 date-issue Date OPTIONAL, -- Patent Issue/Pub Date
259 class SEQUENCE OF VisibleString OPTIONAL , -- Patent Doc Class Code
260 app-number VisibleString OPTIONAL , -- Patent Doc Appl Number
261 app-date Date OPTIONAL , -- Patent Appl File Date
262 applicants Auth-list OPTIONAL , -- Applicants
263 assignees Auth-list OPTIONAL , -- Assignees
264 priority SEQUENCE OF Patent-priority OPTIONAL , -- Priorities
265 abstract VisibleString OPTIONAL } -- abstract of patent
266
267 Patent-priority ::= SEQUENCE {
268 country VisibleString , -- Patent country code
269 number VisibleString , -- number assigned in that country
270 date Date } -- date of application
271
272 Id-pat ::= SEQUENCE { -- just to identify a patent
273 country VisibleString , -- Patent Document Country
274 id CHOICE {
275 number VisibleString , -- Patent Document Number
276 app-number VisibleString } , -- Patent Doc Appl Number
277 doc-type VisibleString OPTIONAL } -- Patent Doc Type
278
279 Cit-let ::= SEQUENCE { -- letter, thesis, or manuscript
280 cit Cit-book , -- same fields as a book
281 man-id VisibleString OPTIONAL , -- Manuscript identifier
282 type ENUMERATED {
283 manuscript (1) ,
284 letter (2) ,
285 thesis (3) } OPTIONAL }
286 -- NOTE: this is just to cite a
287 -- direct data submission, see NCBI-Submit
288 -- for the form of a sequence submission
289 Cit-sub ::= SEQUENCE { -- citation for a direct submission
290 authors Auth-list , -- not necessarily authors of the paper
291 imp Imprint OPTIONAL , -- this only used to get date.. will go
292 medium ENUMERATED { -- medium of submission
293 paper (1) ,
294 tape (2) ,
295 floppy (3) ,
296 email (4) ,
297 other (255) } OPTIONAL ,
298 date Date OPTIONAL , -- replaces imp, will become required
299 descr VisibleString OPTIONAL } -- description of changes for public view
300
301 Cit-gen ::= SEQUENCE { -- NOT from ANSI, this is a catchall
302 cit VisibleString OPTIONAL , -- anything, not parsable
303 authors Auth-list OPTIONAL ,
304 muid INTEGER OPTIONAL , -- medline uid
305 journal Title OPTIONAL ,
306 volume VisibleString OPTIONAL ,
307 issue VisibleString OPTIONAL ,
308 pages VisibleString OPTIONAL ,
309 date Date OPTIONAL ,
310 serial-number INTEGER OPTIONAL , -- for GenBank style references
311 title VisibleString OPTIONAL , -- eg. cit="unpublished",title="title"
312 pmid PubMedId OPTIONAL } -- PubMed Id
313
314
315 -- Authorship Group
316 Auth-list ::= SEQUENCE {
317 names CHOICE {
318 std SEQUENCE OF Author , -- full citations
319 ml SEQUENCE OF VisibleString , -- MEDLINE, semi-structured
320 str SEQUENCE OF VisibleString } , -- free for all
321 affil Affil OPTIONAL } -- author affiliation
322
323 Author ::= SEQUENCE {
324 name Person-id , -- Author, Primary or Secondary
325 level ENUMERATED {
326 primary (1),
327 secondary (2) } OPTIONAL ,
328 role ENUMERATED { -- Author Role Indicator
329 compiler (1),
330 editor (2),
331 patent-assignee (3),
332 translator (4) } OPTIONAL ,
333 affil Affil OPTIONAL ,
334 is-corr BOOLEAN OPTIONAL } -- TRUE if corresponding author
335
336 Affil ::= CHOICE {
337 str VisibleString , -- unparsed string
338 std SEQUENCE { -- std representation
339 affil VisibleString OPTIONAL , -- Author Affiliation, Name
340 div VisibleString OPTIONAL , -- Author Affiliation, Division
341 city VisibleString OPTIONAL , -- Author Affiliation, City
342 sub VisibleString OPTIONAL , -- Author Affiliation, County Sub
343 country VisibleString OPTIONAL , -- Author Affiliation, Country
344 street VisibleString OPTIONAL , -- street address, not ANSI
345 email VisibleString OPTIONAL ,
346 fax VisibleString OPTIONAL ,
347 phone VisibleString OPTIONAL ,
348 postal-code VisibleString OPTIONAL }}
349
350 -- Title Group
351 -- Valid for = A = Analytic (Cit-art)
352 -- J = Journals (Cit-jour)
353 -- B = Book (Cit-book)
354 -- Valid for:
355 Title ::= SET OF CHOICE {
356 name VisibleString , -- Title, Anal,Coll,Mono AJB
357 tsub VisibleString , -- Title, Subordinate A B
358 trans VisibleString , -- Title, Translated AJB
359 jta VisibleString , -- Title, Abbreviated J
360 iso-jta VisibleString , -- specifically ISO jta J
361 ml-jta VisibleString , -- specifically MEDLINE jta J
362 coden VisibleString , -- a coden J
363 issn VisibleString , -- ISSN J
364 abr VisibleString , -- Title, Abbreviated B
365 isbn VisibleString } -- ISBN B
366
367 Imprint ::= SEQUENCE { -- Imprint group
368 date Date , -- date of publication
369 volume VisibleString OPTIONAL ,
370 issue VisibleString OPTIONAL ,
371 pages VisibleString OPTIONAL ,
372 section VisibleString OPTIONAL ,
373 pub Affil OPTIONAL, -- publisher, required for book
374 cprt Date OPTIONAL, -- copyright date, " " "
375 part-sup VisibleString OPTIONAL , -- part/sup of volume
376 language VisibleString DEFAULT "ENG" , -- put here for simplicity
377 prepub ENUMERATED { -- for prepublication citations
378 submitted (1) , -- submitted, not accepted
379 in-press (2) , -- accepted, not published
380 other (255) } OPTIONAL ,
381 part-supi VisibleString OPTIONAL , -- part/sup on issue
382 retract CitRetract OPTIONAL , -- retraction info
383 pubstatus PubStatus OPTIONAL , -- current status of this publication
384 history PubStatusDateSet OPTIONAL } -- dates for this record
385
386 CitRetract ::= SEQUENCE {
387 type ENUMERATED { -- retraction of an entry
388 retracted (1) , -- this citation retracted
389 notice (2) , -- this citation is a retraction notice
390 in-error (3) , -- an erratum was published about this
391 erratum (4) } , -- this is a published erratum
392 exp VisibleString OPTIONAL } -- citation and/or explanation
393
394 Meeting ::= SEQUENCE {
395 number VisibleString ,
396 date Date ,
397 place Affil OPTIONAL }
398
399
400 END
401
402
403 --$Revision: 6.0 $
404 --**********************************************************************
405 --
406 -- MEDLINE data definitions
407 -- James Ostell, 1990
408 --
409 -- enhanced in 1996 to support PubMed records as well by simply adding
410 -- the PubMedId and making MedlineId optional
411 --
412 --**********************************************************************
413
414 NCBI-Medline DEFINITIONS ::=
415 BEGIN
416
417 EXPORTS Medline-entry, Medline-si;
418
419 IMPORTS Cit-art, PubMedId FROM NCBI-Biblio
420 Date FROM NCBI-General;
421
422 -- a MEDLINE or PubMed entry
423 Medline-entry ::= SEQUENCE {
424 uid INTEGER OPTIONAL , -- MEDLINE UID, sometimes not yet available if from PubMed
425 em Date , -- Entry Month
426 cit Cit-art , -- article citation
427 abstract VisibleString OPTIONAL ,
428 mesh SET OF Medline-mesh OPTIONAL ,
429 substance SET OF Medline-rn OPTIONAL ,
430 xref SET OF Medline-si OPTIONAL ,
431 idnum SET OF VisibleString OPTIONAL , -- ID Number (grants, contracts)
432 gene SET OF VisibleString OPTIONAL ,
433 pmid PubMedId OPTIONAL , -- MEDLINE records may include the PubMedId
434 pub-type SET OF VisibleString OPTIONAL, -- may show publication types (review, etc)
435 mlfield SET OF Medline-field OPTIONAL , -- additional Medline field types
436 status INTEGER {
437 publisher (1) , -- record as supplied by publisher
438 premedline (2) , -- premedline record
439 medline (3) } DEFAULT medline } -- regular medline record
440
441 Medline-mesh ::= SEQUENCE {
442 mp BOOLEAN DEFAULT FALSE , -- TRUE if main point (*)
443 term VisibleString , -- the MeSH term
444 qual SET OF Medline-qual OPTIONAL } -- qualifiers
445
446 Medline-qual ::= SEQUENCE {
447 mp BOOLEAN DEFAULT FALSE , -- TRUE if main point
448 subh VisibleString } -- the subheading
449
450 Medline-rn ::= SEQUENCE { -- medline substance records
451 type ENUMERATED { -- type of record
452 nameonly (0) ,
453 cas (1) , -- CAS number
454 ec (2) } , -- EC number
455 cit VisibleString OPTIONAL , -- CAS or EC number if present
456 name VisibleString } -- name (always present)
457
458 Medline-si ::= SEQUENCE { -- medline cross reference records
459 type ENUMERATED { -- type of xref
460 ddbj (1) , -- DNA Data Bank of Japan
461 carbbank (2) , -- Carbohydrate Structure Database
462 embl (3) , -- EMBL Data Library
463 hdb (4) , -- Hybridoma Data Bank
464 genbank (5) , -- GenBank
465 hgml (6) , -- Human Gene Map Library
466 mim (7) , -- Mendelian Inheritance in Man
467 msd (8) , -- Microbial Strains Database
468 pdb (9) , -- Protein Data Bank (Brookhaven)
469 pir (10) , -- Protein Identification Resource
470 prfseqdb (11) , -- Protein Research Foundation (Japan)
471 psd (12) , -- Protein Sequence Database (Japan)
472 swissprot (13) , -- SwissProt
473 gdb (14) } , -- Genome Data Base
474 cit VisibleString OPTIONAL } -- the citation/accession number
475
476 Medline-field ::= SEQUENCE {
477 type INTEGER { -- Keyed type
478 other (0) , -- look in line code
479 comment (1) , -- comment line
480 erratum (2) } , -- retracted, corrected, etc
481 str VisibleString , -- the text
482 ids SEQUENCE OF DocRef OPTIONAL } -- pointers relevant to this text
483
484 DocRef ::= SEQUENCE { -- reference to a document
485 type INTEGER {
486 medline (1) ,
487 pubmed (2) ,
488 ncbigi (3) } ,
489 uid INTEGER }
490
491 END
492
493 --$Revision: 6.0 $
494 --********************************************************************
495 --
496 -- Publication common set
497 -- James Ostell, 1990
498 --
499 -- This is the base class definitions for Publications of all sorts
500 --
501 -- support for PubMedId added in 1996
502 --********************************************************************
503
504 NCBI-Pub DEFINITIONS ::=
505 BEGIN
506
507 EXPORTS Pub, Pub-set, Pub-equiv;
508
509 IMPORTS Medline-entry FROM NCBI-Medline
510 Cit-art, Cit-jour, Cit-book, Cit-proc, Cit-pat, Id-pat, Cit-gen,
511 Cit-let, Cit-sub, PubMedId FROM NCBI-Biblio;
512
513 Pub ::= CHOICE {
514 gen Cit-gen , -- general or generic unparsed
515 sub Cit-sub , -- submission
516 medline Medline-entry ,
517 muid INTEGER , -- medline uid
518 article Cit-art ,
519 journal Cit-jour ,
520 book Cit-book ,
521 proc Cit-proc , -- proceedings of a meeting
522 patent Cit-pat ,
523 pat-id Id-pat , -- identify a patent
524 man Cit-let , -- manuscript, thesis, or letter
525 equiv Pub-equiv, -- to cite a variety of ways
526 pmid PubMedId } -- PubMedId
527
528 Pub-equiv ::= SET OF Pub -- equivalent identifiers for same citation
529
530 Pub-set ::= CHOICE {
531 pub SET OF Pub ,
532 medline SET OF Medline-entry ,
533 article SET OF Cit-art ,
534 journal SET OF Cit-jour ,
535 book SET OF Cit-book ,
536 proc SET OF Cit-proc , -- proceedings of a meeting
537 patent SET OF Cit-pat }
538
539 END
540
|
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |