1 |
4080
|
daigle
|
<!DOCTYPE html PUBliC "-//W3C//DTD html 4.0//EN">
|
2 |
|
|
<html>
|
3 |
|
|
|
4 |
|
|
<head>
|
5 |
|
|
<title>KNB Software Development Guide: Metacat</title>
|
6 |
|
|
<link rel="stylesheet" type="text/css" href="./default.css">
|
7 |
|
|
</head>
|
8 |
|
|
|
9 |
|
|
<body>
|
10 |
|
|
|
11 |
|
|
<table class="tabledefault" width="100%">
|
12 |
|
|
<tr>
|
13 |
|
|
<td rowspan="2"><img src="./images/KNBLogo.gif"></td>
|
14 |
|
|
<td colspan="7"><div class="title">KNB Software Development Guide: Metacat</div></td>
|
15 |
|
|
</tr>
|
16 |
|
|
<tr>
|
17 |
|
|
<td><a href="/" class="toollink"> KNB Home </a></td>
|
18 |
|
|
<td><a href="/data.html" class="toollink"> Data </a></td>
|
19 |
|
|
<td><a href="/people.html" class="toollink"> People </a></td>
|
20 |
|
|
<td><a href="/informatics" class="toollink"> Informatics </a></td>
|
21 |
|
|
<td><a href="/biodiversity" class="toollink"> Biocomplexity </a></td>
|
22 |
|
|
<td><a href="/education" class="toollink"> Education </a></td>
|
23 |
|
|
<td><a href="/software" class="toollink"> Software </a></td>
|
24 |
|
|
</tr>
|
25 |
|
|
</table>
|
26 |
|
|
<hr>
|
27 |
|
|
|
28 |
|
|
<p> </p>
|
29 |
|
|
<table class="tabledefault" width="100%">
|
30 |
|
|
<tr>
|
31 |
|
|
<td class="tablehead" colspan="2"><p class="label">Metacat Development Guide</p></td>
|
32 |
|
|
</tr>
|
33 |
|
|
<tr>
|
34 |
|
|
<td>
|
35 |
|
|
<p><a href="/software/download.html">Download Metacat</a></p>
|
36 |
|
|
<p><a href="./metacatinstall.html">Metacat Installation Instructions</a></p>
|
37 |
|
|
<p>Metacat is a flexible metadata database. It utilizes
|
38 |
|
|
<a href="http://www.w3.org/TR/REC-xml" target="offline">XML</a> as a
|
39 |
|
|
common syntax for representing the large number of metadata content
|
40 |
|
|
standards that are relevant to ecology. Thus, Metacat is a generic XML
|
41 |
|
|
database that allows storage, query, and retrieval of arbitrary XML
|
42 |
|
|
documents without prior knowledge of the XML schema.
|
43 |
|
|
</p>
|
44 |
|
|
<p>
|
45 |
|
|
The Metacat database models XML documents as a DOM tree, basically
|
46 |
|
|
decomposing the nodes of the XML document and storing the node data
|
47 |
|
|
as a series of records in a relational database via a JDBC connection.
|
48 |
|
|
At this point, only Oracle and PostgreSQL have been tested as a backend databases, but
|
49 |
|
|
we have avoided RDBMS specific features in order to maintain portability
|
50 |
|
|
to other relational databases.
|
51 |
|
|
</p>
|
52 |
|
|
<p>
|
53 |
|
|
Metacat is implemented as a Java Servlet, and so communicates using basic
|
54 |
|
|
HTTP protocol semantics. The figure below shows the basic structure of
|
55 |
|
|
the Metacat architecture. A well defined interface for inserting,
|
56 |
|
|
updating, deleting, querying, and transforming (using XSL) XML documents
|
57 |
|
|
is presented. We would like to add the DOM API as an alternative
|
58 |
|
|
supported mechanism for interacting with Metacat, but have not yet
|
59 |
|
|
implemented this functionality.
|
60 |
|
|
</p>
|
61 |
|
|
<p><img src="./metacat.gif" /></p>
|
62 |
|
|
</td>
|
63 |
|
|
</tr>
|
64 |
|
|
<tr><td> </td></tr>
|
65 |
|
|
|
66 |
|
|
<tr>
|
67 |
|
|
<td>The pages below provide more detailed descriptions of the
|
68 |
|
|
various components of the Metacat Servlet. Take the Metacat Tour for
|
69 |
|
|
a detailed look at the algorithms and implementation of Metacat.
|
70 |
|
|
|
71 |
|
|
<ul>
|
72 |
|
|
<li> <a href="./metacattour.html">A Tour of Metacat</a></li>
|
73 |
|
|
<li> <a href="./dev/api/index.html" target="offline">Javadoc API
|
74 |
|
|
Documentation</a></li>
|
75 |
|
|
</ul>
|
76 |
|
|
</td>
|
77 |
|
|
</tr>
|
78 |
|
|
<tr><td> </td></tr>
|
79 |
|
|
|
80 |
|
|
</table>
|
81 |
|
|
|
82 |
|
|
<p class="contact">
|
83 |
|
|
Web Contact: <a href="mailto:jones@nceas.ucsb.edu">jones@nceas.ucsb.edu</A>
|
84 |
|
|
</p>
|
85 |
|
|
</body>
|
86 |
|
|
</html>
|