next up previous contents
Next: Syntactic Definition for Up: The OPM Query Previous: References

An OPM Example Schema

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