<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Stag - Structured Tag Library</title>
</head>
<body>
<h1>Stag - Structured Tag Library</h1>
<table>
<tr>
<td valign="top" bgcolor="#000000">
</td>
<td>
The Stag project currently consists of two perl modules,
both of which are available from <a href="http://www.cpan.org">CPAN</a> or <a href="http://sourceforge.net/projects/stag">sourceforge</a>:
<h3>Data::Stag</h3>
<p>
This perl module is for querying and manipulating complex
data as recursively nested tag/value pairs
(<b>S</b>tructured <b>tag</b>s or <b>S</b>imple
<b>T</b>ree <b>ag</b>greggates). Procedural and
object-oriented modes are supported. Tags can be accessed
by autogenerated accessor methods.
</p>
<p>
XML is a hierarchical data format, so this module can
be used as an XML parser/writer. Other hierarchical formats
are supported, including lisp S-Expressions (i.e. <a
href="http://okmij.org/ftp/Scheme/xml.html">SXML</a>) and
indented-text.
</p>
<p>
Construction of parsers, transformers and writers is
simplified with structured tag events, similar to and
compatible with SAX.
</p>
<p>
As well as being a useful module for perl developers, this
module also comes with a number of useful scripts for
manipulating stag data.
</p>
<p>
At this time there is only a perl
implementation, <a
href="http://search.cpan.org/perldoc?Data::Stag">Data::Stag</a>,
but C and Lisp implementations are planned.
</p>
<h3>DBIx::DBStag</h3>
<p>
This module is for conversion between relational
representations and hierarchical tag-value pairs,
<em>i.e.</em> Stag trees, or XML.
</p>
<p><b>Querying:</b> SQL query results are automatically
decomposed into the relations used in the query, and a
hierarchical structure is inferred. This allows you to go
from multi-table joins to deeply nested hierarchical
representations that capture the foreign key data in the
database.
</p>
<p>
This modules also allows you to create <b>SQL
templates</b> - a powerful way of reusing complex SQL
statements.
</p>
<p><b>Storage:</b> Stag trees can be stored in a relational
database with a minimum of metadata. There are also
scripts to help with construction of ad-hoc normalised
relational databases from XML sources.
</p>
<p>
<a href="http://search.cpan.org/perldoc?DBIx::DBStag">DBIx::DBStag</a>
</p>
</td>
</tr>
</table>
<hr>
<table>
<tr>
<td bgcolor="#FF8888">
<a href="http://search.cpan.org/perldoc?Data::Stag">Data::Stag</a>
and
<a href="http://search.cpan.org/perldoc?DBIx::DBStag">DBIx::DBStag</a>
</td>
<td>
Perl module documentation on CPAN
</td>
</tr>
<table>
<tr>
<td bgcolor="#FF8888">
<a href="script-list.html">Script Docs</a>
</td>
<td>
Stag script documentation (these scripts come with the
Stag and DBStag distributions)
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a
href="http://www.godatabase.org/cgi-bin/ubiq/ubiq.cgi">UBIQ Query Interface</a>
</td>
<td>
A demo of DBStag for mapping query results to hierarchical
tag-value data. This interface provides WWW access to a
number of bioinformatics databases (Gene Ontology, Ensembl, Chado,
BioSQL, GadFly). Templates can be selected, or you can
feed in your own SQL.
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a href="http://sourceforge.net/projects/stag">Stag
project page on Sourceforge</a>
</td>
<td>
Here you can find the Stag CVS repository, mail lists, etc
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a
href="http://www.fruitfly.org/~cjm/rel-talk/dbistag.html">DBStag Tutorial</a>
</td>
<td>
Brief tutorial on basic DBStag usage for biological
databases.
(slightly out of date - some aspects of DBStag may have changed)
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a href="http://search.cpan.org/perldoc?DBIx::DBStag::Cookbook">DBIx::DBStag::Cookbook</a>
</td>
<td>
DBStag cookbook - shows how to generate a normalised
relational db from an XML source (the CIA world factbook),
create your own SQL templates and build a WWW query
interface
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a href="http://search.cpan.org/perldoc?DBIx::DBStag::SQLTemplate">DBIx::DBStag::SQLTemplate</a>
</td>
<td>
The POD manpage describing SQL templates - a powerful way
of reusing complex SQL statements
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a href="stag-poster.html">Stag Poster</a>
</td>
<td>
DBStag poster from Genome Informatics 2003 at Cold Spring Harbor
Laboratory (large image)
</td>
</tr>
<tr>
<td bgcolor="#FF8888">
<a
href="http://www.godatabase.org/dev/sql/stag-templates/">Example Stag Templates</a>
</td>
<td>
Some example Stag SQL templates for the <a href="http://www.godatabase.org/dev">Gene Ontology Database</a>
</td>
</tr>
</table>
<hr>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=68482&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo"></a>
<hr>
<address><a href="mailto:cjm@fruitfly.org">chris mungall</a></address>
<!-- Created: Tue Dec 3 11:47:11 PST 2002 -->
<!-- hhmts start -->
Last modified: Wed Dec 1 14:39:33 PST 2004
<!-- hhmts end -->
</body>
</html>