14.06.2013 Views

Databases and Systems

Databases and Systems

Databases and Systems

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

203<br />

In the remainder of this chapter, we describe the complex type model underlying<br />

BioKleisli, <strong>and</strong> a query language for manipulating these types called the “Collection<br />

Programming Language” (CPL). We then briefly describe the use of BioKleisli<br />

through an example of a parameterized view. We close by summarizing how<br />

BioKleisli compares with other systems in use within bioinformatics, in particular<br />

OPM <strong>and</strong> CORBA.<br />

The Complex Type Model<br />

The type system underlying BioKleisli goes well beyond the “sets of records” type<br />

system of the relational model <strong>and</strong> allows complex types – arbitrarily nested records,<br />

sets, lists, bags <strong>and</strong> variants. Recall that a bag (also called a multi-set) is a set in<br />

which duplicates may occur, <strong>and</strong> that a list is a bag with order.<br />

As an example of a complex type, consider the Publication type shown below,<br />

which has been taken from the ASN. 1 citation literature (1). Note the nesting of a set<br />

of keywords (strings) within the keywd record field of the Publication type, the<br />

nesting of author records within the authors record field, <strong>and</strong> the use of a variant or<br />

“tagged union” type within the journal field representing that publications are either<br />

controlled journal entries (also a variant type), or uncontrolled entries containing the<br />

name of the person who performed the data entry.<br />

Publication = SET{<br />

RCD{ title: string,<br />

authors: LIST{ RCD{ name: string, initial: string}}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!