1
|
<!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>
|