CONTROLLED VALUE CLASS OVERLAP_PROG { "insert", "overlap" }
CONTROLLED VALUE CLASS AGE { 0-100 }
CONTROLLED VALUE CLASS SENIOR_AGE { 65-100 }
OBJECT CLASS FRAGMENT
DESCRIPTION: "DNA fragment"
ID: fragment_id
ATTRIBUTE fragment_id: [1,1] INTEGER
ATTRIBUTE sequence: [0,1] VARCHAR(200)
ATTRIBUTE length: [0,1] INTEGER
ATTRIBUTE owner
DERIVATION: !owns [PERSON]
ATTRIBUTE scientist_owner
DERIVATION: !owns [SCIENTIST]
OBJECT CLASS CONNECTION_TABLE
DESCRIPTION: "connection table"
ID: table_id
ATTRIBUTE table_id: [1,1] INTEGER
ATTRIBUTE left_entry: [0,1] FRAGMENT
ATTRIBUTE right_entry: [0,1] FRAGMENT
ATTRIBUTE distance: [0,1] INTEGER
OBJECT CLASS CONTIG_MAP
DESCRIPTION: "contig map"
ID: contig_id
ATTRIBUTE contig_id: [1,1] INTEGER
ATTRIBUTE note: [0,1] TEXT
ATTRIBUTE entries(entry, position): set-of [0,] ([0,1] FRAGMENT, [0,1] INTEGER)
ATTRIBUTE location: set-of [1,] CHAR(40)
ATTRIBUTE constructed_by: [0,1] PERSON
ATTRIBUTE owner
DERIVATION: !owns [PERSON]
ATTRIBUTE no_entry
DERIVATION: count of entry
OBJECT CLASS PERSON
DESCRIPTION: "person"
ID: person_id
ATTRIBUTE person_id: [1,1] INTEGER
ATTRIBUTE name: [0,1] CHAR(80)
ATTRIBUTE age: [0,1] AGE
ATTRIBUTE owns: set-of [1,] CONTIG_MAP or FRAGMENT
ATTRIBUTE address : [0,1] VARCHAR(250)
ATTRIBUTE (degree_date, degree, field) :
list-of [1,] ([0,1] DATETIME, [0,1] CHAR(20), [0,1] CHAR(50))
OBJECT CLASS SCIENTIST isa PERSON
DESCRIPTION: "scientist"
ATTRIBUTE affiliation: [0,1] CHAR(80)
ATTRIBUTE project: set-of [1,] CHAR(40)
PROTOCOL CLASS CONSTRUCT
DESCRIPTION: "construct a contig map"
ID: construct_id
EXPANSION: (OVERLAP or CONSTRAINT) , ASSEMBLE
ATTRIBUTE construct_id: [1,1] INTEGER
ATTRIBUTE fragments: set-of [1,] FRAGMENT input
ATTRIBUTE contig: [1,1] CONTIG_MAP output
PROTOCOL CLASS OVERLAP
DESCRIPTION: "compare fragments using computer programs"
ID: overlap_id
ATTRIBUTE overlap_id: [1,1] INTEGER
ATTRIBUTE fragments: set-of [1,] FRAGMENT input isa CONSTRUCT.fragments
ATTRIBUTE connect_table: set-of [1,] CONNECTION_TABLE output
ATTRIBUTE (program_name, program_version): [0,1] (CHAR(10), CHAR(6))
PROTOCOL CLASS CONSTRAINT
DESCRIPTION: "manually compare fragments using constraints"
ID: constraint_id
ATTRIBUTE constraint_id: [1,1] INTEGER
ATTRIBUTE fragments: set-of [1,] FRAGMENT input isa CONSTRUCT.fragments
ATTRIBUTE connect_table: set-of [1,] CONNECTION_TABLE output
ATTRIBUTE constraint_type: [0,1] CHAR(20)
PROTOCOL CLASS ASSEMBLE
DESCRIPTION: "assemble contigs"
ID: assemble_id
ATTRIBUTE assemble_id: [1,1] INTEGER
ATTRIBUTE connect_table: set-of [1,] CONNECTION_TABLE
input from OVERLAP via connect_table
or CONSTRAINT via connect_table
ATTRIBUTE contig_map: [1,1] CONTIG_MAP
output isa CONSTRUCT.contig