You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2011/03/09 05:02:12 UTC

svn commit: r1079660 [9/17] - in /oodt/site/components/maven: apidocs/org/apache/oodt/cas/crawl/action/ apidocs/org/apache/oodt/cas/crawl/action/class-use/ apidocs/org/apache/oodt/cas/filemgr/metadata/ apidocs/org/apache/oodt/cas/filemgr/metadata/class...

Added: oodt/site/components/maven/profile/info/index.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/profile/info/index.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/profile/info/index.html (added)
+++ oodt/site/components/maven/profile/info/index.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,828 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Apache™ OODT</title><link rel="stylesheet" href="http://oodt.apache.org/oodt.css" type="text/css" /><link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /><meta name="author" content="Sean Kelly" /></head><body><div id="outerWrapper"><div id="innerWrapper"><div class="visualHeaderWrapper"><div class="header"><div class="apacheOODTLogo"><a href="http://oodt.apache.org/"><img src="http://oodt.apache.org/images/apacheOODT.png" alt="Apache™ OODT" /></a></div><div class="fright"><ul class="globalnav"><!-- One of these li's must be given the currentNavTab class --><li><a id="tab-contact" href="http://oodt.apache.org/contact">Contact</a></li><li><a id="tab-development" href="http://oodt.apache.org/development">Development</a></li><li><a id="tab-downloads" href="http://oodt.apache.org/downloads">Downloa
 ds</a></li><li><a id="tab-components" href="http://oodt.apache.org/components" class="currentNavTab">Components</a></li><li><a id="tab-about" href="http://oodt.apache.org/about">About</a></li><li><a id="tab-home" href="http://oodt.apache.org/">Home</a></li></ul></div><div class="visualClear"></div></div></div><div class="subProductWrapper"><div class="subProductHeader"><h1 id="productNameSlot"><span id="bannerLeft">&#13;
+    &#13;
+            Profile Service&#13;
+    &#13;
+            </span></h1><h2 id="productSubheadSlot"><h2><a name="Information_Captured_in_a_Profile" id="Information_Captured_in_a_Profile"></a>Information Captured in a Profile</h2><h2><a name="Information_and_Organization" id="Information_and_Organization"></a>Information and Organization</h2><h2><a name="Inception_Metadata" id="Inception_Metadata"></a>Inception Metadata</h2><h2><a name="Composition_Metadata" id="Composition_Metadata"></a>Composition Metadata</h2><h2><a name="Metadata_about_the_Profile" id="Metadata_about_the_Profile"></a>Metadata about the Profile</h2><h2><a name="Describing_Resources" id="Describing_Resources"></a>Describing Resources</h2></h2></div></div><div class="visualContentWrapper"><div class="contentGradient"></div><div id="content"><div class="diptych triptychSpace"><div class="visualPadding" id="leftPlate"><p>A profile serves as a generic template for describing the
+	characteristics of a resource. The question posed to a profile
+	generally takes the form of, "Can you answer <var>X</var>?" or
+	"Do you know the location of <var>X</var>?" where <var>X</var>
+	is some resource being sought. The more fully a profile describes
+	a particular resource, the better the profile can be used to
+	determine if the resource has the information in <var>X</var>.
+      </p><div class="section"><h2><a name="Information_and_Organization" id="Information_and_Organization"></a>Information and Organization</h2>
+<p>Profile servers capture three kinds of information:</p>
+<ul><li><b>Resource Attributes</b>Resource attributes are
+	  metadata about the resource's <em>inception</em>.  These
+	  attributes include the creator of the resource, in what
+	  language it exists, when it was created, and so forth.
+	  These attributes are based on the work of the <a href="http://www.dmci.org/" class="externalLink">Dublin Core Metadata Initiative</a>.
+	  </li>
+<li><b>Profile Elements</b>Profile elements are metadata
+	    about the resource's <em>composition</em>.  These tell you
+	    about the morphology of the resource, such as data types
+	    captured within in, minimum and maximum values, synonymous
+	    elements, and so forth.  These attributes are based on <a href="http://metadata-standards.org/11179/" class="externalLink">ISO/IEC 11179
+	    standards</a>.
+	  </li>
+<li><b>Profile Attributes</b>Profile attributes are
+	    metadata about the <em>profile itself</em>, such as who
+	    made it, whether it's classified, revision notes, and so
+	    forth.  It also has a unique identifying <a href="http://www.alvestrand.no/objectid/index.html" class="externalLink">Object
+	    Identifier (OID)</a>.
+	  </li>
+</ul><p>The following class diagram shows the relationship between
+	the different parts of a profile:
+      </p>
+<img src="../images/class.png" alt="Class diagram" /><p>While this diagram shows the Java field names and Java
+	classes, the relationship applies to profiles whether they
+	exist as Java objects, as RDF documents, or as XML documents
+	in the profile vocabulary.
+      </p>
+</div><div class="section"><h2><a name="Inception_Metadata" id="Inception_Metadata"></a>Inception Metadata</h2>
+<p>Profiles, whether expressed in RDF or in their own XML
+	vocabulary, have a section for capturing information about the
+	resource's inception.  This includes information about when the
+	resource was created, who created it, in what language it
+	exists, and so forth.  Profiles use the element set recommended
+	by the Dublin Core Metadata Initiative (DCMI) set in order to
+	describe the inception of a resource, with some extensions.
+      </p>
+<p>Collectively, these metadata are called the <i>resource
+	attributes</i> or <code>resAttributes</code> of the profile.
+	Every profile has one and only one set of
+	<code>resAttributes</code>.  The metadata elements within the
+	<code>resAttributes</code> are defined in this section.
+      </p>
+<div class="section"><h3><a name="Identifier" id="Identifier"></a>Identifier</h3>
+<p>As defined by the DCMI, the <code>Identifier</code> of a
+	  resource is some unambiguous way to identify the resource.
+	  In the profile implementation, one and only one
+	  <code>Identifier</code> is <span class="emphasis"><em>required</em></span>.
+	</p>
+<p>It's highly recommended that <code>Identifier</code>s and
+	  <code>resLocation</code>s (see below) be URIs, but there's
+	  no software enforcment for this <em>unless you convert a
+	  Java profile to RDF</em> with the <code>toRDF</code> method.
+	  Identifiers should be more like URNs, while resLocations
+	  should be more like URLs.
+	</p>
+</div>
+<div class="section"><h3><a name="Title" id="Title"></a>Title</h3>
+<p>The <code>Title</code> names the resource, and is the name by
+	  which the resource is formally known.  The <code>Title</code> is
+	  optional; if present, it may occur only once in a profile.
+	</p>
+</div>
+<div class="section"><h3><a name="Format" id="Format"></a>Format</h3>
+<p>The <code>Format</code> indicates the manifestation of the
+	  resource.  You can specify any number of <code>Format</code>s in
+	  a profile.
+	</p>
+</div>
+<div class="section"><h3><a name="Description" id="Description"></a>Description</h3>
+<p>The <code>Description</code> element contains a free text
+	  account of the content of the resource.  It's optional in a
+	  profile; if present, it may occur only once.
+	</p>
+</div>
+<div class="section"><h3><a name="Creator" id="Creator"></a>Creator</h3>
+<p>Zero or more <code>Creator</code>s may be specified in a
+	  profile.  <code>Creator</code>s contain the name of people or
+	  organizations that created the resource.
+	</p>
+</div>
+<div class="section"><h3><a name="Subject" id="Subject"></a>Subject</h3>
+<p>You can list zero or more <code>Subject</code>s in a profile.
+	  The purpose of the <code>Subject</code> elements is to contain a
+	  keywords that describe the resource, usually selected from a
+	  controlled vocabulary.
+	</p>
+</div>
+<div class="section"><h3><a name="Publisher" id="Publisher"></a>Publisher</h3>
+<p>Any number of <code>Publisher</code> elements may appear in a
+	  profile.  They contain the organization responsible for
+	  making the resource available.
+	</p>
+</div>
+<div class="section"><h3><a name="Contributor" id="Contributor"></a>Contributor</h3>
+<p>A <code>Contributor</code> is a person or organization
+	  providing auxilliary work towards the resource's creation.
+	  Any number of <code>Contributor</code>s may be listed in a
+	  profile.
+	</p>
+</div>
+<div class="section"><h3><a name="Date" id="Date"></a>Date</h3>
+<p><code>Date</code> elements indicate the times in history when
+	  the resource was created.  You can include any number of
+	  <code>Date</code>s in a profile, although typically you'll
+	  specify just one if you speciy any at all.
+	</p>
+</div>
+<div class="section"><h3><a name="Type" id="Type"></a>Type</h3>
+<p>The <code>Type</code> element indicates the nature of the
+	  content of the resource, such as "fiction" for a work of
+	  fiction or "image" for a dataset rendered graphically.  You
+	  can include any number of <code>Type</code>s in a profile.
+	</p>
+</div>
+<div class="section"><h3><a name="Source" id="Source"></a>Source</h3>
+<p>When a resource is derived others, the <code>Source</code>
+	  element should indicate the <code>Identifier</code>s of the
+	  referenced resources.  You can specify any number of
+	  <code>Source</code>s in a profile.
+	</p>
+</div>
+<div class="section"><h3><a name="Language" id="Language"></a>Language</h3>
+<p>For resources that contain natural language content, the
+	  <code>Language</code> element indicates the languages in use.
+	  You can specify this element any number of times in a
+	  profile.
+      	</p>
+</div>
+<div class="section"><h3><a name="Relation" id="Relation"></a>Relation</h3>
+<p>When a resource is related to others, you can specify the
+	  <code>Identifier</code>s of the related resources using zero or
+	  more <code>Relation</code> elements.
+      	</p>
+</div>
+<div class="section"><h3><a name="Coverage" id="Coverage"></a>Coverage</h3>
+<p>For resources that cover a space or time or jurisdiction,
+	  use the <code>Coverage</code> element to indicate such coverage.
+	  This element may be listed any number of times in a profile,
+	  and its content should come from a controlled vocabulary.
+	  For resources with specific coordinate systems, it's better
+	  to use profile elements, described below.
+      	</p>
+</div>
+<div class="section"><h3><a name="Rights" id="Rights"></a>Rights</h3>
+<p>Copyright, ownership, redistribution, use, and other legal
+	  issues may exist for a resource.  When that happens, use the
+	  <code>Rights</code> element to list the rights management
+	  information.  You can list zero or more <code>Rights</code>
+	  elements in a profile.
+	</p>
+<p><em>Note:</em> The official name of element for is plural
+	  <code>Rights</code>; this is inconsistent with the other
+	  metadata elements, but is consistent with the DCMI.
+	</p>
+</div>
+<div class="section"><h3><a name="resContext" id="resContext"></a>resContext</h3>
+<p>The <code>resContext</code> element identifies the application
+	  environment or discipline within which the resource
+	  originates and is derived from a taxonomy of scientific
+	  disciplines.  This element is required in a profile and may
+	  occur multiple times.
+	</p>
+<p>As an example, a <code>resContext</code> of
+	  <code>NASA.PDS.Geoscience</code> tells that the resource is
+	  associated with the Geoscience node of the Planetary Data
+	  System.
+	</p>
+</div>
+<div class="section"><h3><a name="resAggregation" id="resAggregation"></a>resAggregation</h3>
+<p>The <code>resAggregation</code> element indicates the
+	  aggregative structure of the resource.  It tells you what
+	  you'll get if you retrieve the resource: a granule, a
+	  dataset, or a collection of datasets.  The legal values of
+	  this optional elements are:
+	</p>
+<ul><li><code>granule</code>, meaning the resource is a single
+	    product
+	  </li>
+<li><code>dataSet</code>, meaning the resource is a set of
+	    products
+	  </li>
+<li><code>dataSetCollection</code>, meaning the resource is
+	    collection of datasets
+	  </li>
+</ul><p>The <code>resAggregation</code> element is optional; however,
+	  if specified, it may appear in a profile only once.
+      	</p>
+</div>
+<div class="section"><h3><a name="resClass" id="resClass"></a>resClass</h3>
+<p>The <code>resClass</code> element identifies the kind of the
+	  resource within a taxonomy of resource types.  It's a
+	  <em>required</em> element that is used by the OODT Framework
+	  to determine how to treat the profile as well as the
+	  resource named by the profile.
+	</p>
+<p>For example, a <code>resClass</code> of
+	  <code>system.productServer</code> indicates that the resource is
+	  an OODT product server.  A query that matches this profile
+	  means that if the same query were given to the identified
+	  product server, it would yield a result.  A
+	  <code>resClass</code> of <code>system.profileServer</code> means the
+	  resource is a profile server.  That means that while the
+	  current profile server may or may not provide a matching
+	  profile, another profile server might, forming an implicit
+	  digraph of profile servers.  Other valid <code>resClass</code>
+	  values include <code>data.granule</code>, <code>data.dataSet</code>,
+	  and <code>application.interface</code>.
+      	</p>
+</div>
+<div class="section"><h3><a name="resLocation" id="resLocation"></a>resLocation</h3>
+<p>Zero or more <code>resLocation</code> elements may appear in
+	  a profile.  They tell where the resource is located, easily
+	  the most important part of the profile.  Because this
+	  element may appear several times, all locations should be
+	  considered valid; the application may pick the one that's
+	  most convenient.  The <code>resLocation</code> may also appear zero
+	  times.  This means that the profile indicates solely that
+	  the resource existswhere is unknown.
+	</p>
+<p>The interpretation of the resLocation is as a URI.  For
+	  example, a <code>resClass</code> of
+	  <code>system.productServer</code> or
+	  <code>system.profileServer</code> means that the
+	  <code>resLocation</code> indicates an URN to a software object
+	  name.  Querying that object will yield either the desired
+	  result (for product servers) or more matching profiles (for
+	  profile servers).  For a resClass of <code>data.granule</code>
+	  or <code>data.dataSet</code>, the <code>resLocation</code> is an URL
+	  to the granule or dataset.
+	</p>
+</div>
+</div><div class="section"><h2><a name="Composition_Metadata" id="Composition_Metadata"></a>Composition Metadata</h2>
+<p>The most interesting part of a profile is in the metadata
+	that describes the composition of the resource that the
+	profile profiles.  The composition metadata is what enables a
+	profile server to tell if a particular resource can answer a
+	query.
+      </p>
+<p>The composition metadata is based on the data element
+	description standards in ISO/IEC standard 11179.  They are the
+	<i>profile elements</i> or <code>profElement</code>s of a profile.
+	Every profile may have zero or more <code>profElement</code>s, the
+	components of which are discussed in this section.
+      </p>
+<div class="section"><h3><a name="elemId" id="elemId"></a>elemId</h3>
+<p>The <code>elemId</code> is an optional universally unique
+	  identifier applied to the element.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemName" id="elemName"></a>elemName</h3>
+<p>The <code>elemName</code> is the <em>required</em> name of the
+	  profile element.  It serves as the title role of one of the
+	  components of the resource.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemDesc" id="elemDesc"></a>elemDesc</h3>
+<p>The <code>elemDesc</code> is the description of the profile
+	  element.  Although the title may often be enough to identify
+	  the purpose of the profile element, the description should
+	  be used to provide any further, free-text information that
+	  may be of importance to analysts and profile administrators.
+	  The description is optional.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemType" id="elemType"></a>elemType</h3>
+<p>The <code>elemType</code> indicates the type of data
+	  represented in the profile element, synonymous to the
+	  ISO/IEC 11179 <code>Datatype</code> attribute.  The permissible
+	  values are:
+	</p>
+<ul><li><code>boolean</code></li>
+<li><code>character</code></li>
+<li><code>date_time</code></li>
+<li><code>enumerated</code></li>
+<li><code>integer</code></li>
+<li><code>ordinal</code></li>
+<li><code>rational</code></li>
+<li><code>scaled</code></li>
+<li><code>real</code></li>
+<li><code>complex</code></li>
+<li><code>state</code></li>
+<li><code>void</code></li>
+</ul><p>This element is optional within a profile element.  When
+	  it's not present, the profile element merely indicates that
+	  the resource's content possesses the attribute, but more is
+	  not known.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemUnit" id="elemUnit"></a>elemUnit</h3>
+<p>The <code>elemUnit</code> indicates the units associated with
+	  the values of the data element. This element is synonymous
+	  to the ISO/IEC 11179 attribute <code>unit.of.quantity</code>.
+	  Values for this optional element should be selected from
+	  standardized tables of units.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemEnumFlag_elemValue_elemMinValue_and_elemMaxValue" id="elemEnumFlag_elemValue_elemMinValue_and_elemMaxValue"></a>elemEnumFlag, elemValue, elemMinValue, and elemMaxValue</h3>
+<p>The <code>elemEnumFlag</code> tells how possible values of the
+	  profile element are specified.  It works with the
+	  <code>elemValue</code>, <code>elemMinValue</code>, and
+	  <code>elemMaxValue</code> elements:
+	</p>
+<ul><li>If the <code>elemEnumFlag</code>'s value is <code>T</code> and
+	    one or more <code>elemValue</code>s appear, then the values
+	    listed are the valid values of the element.
+	  </li>
+<li>If the value is <code>F</code>, then a closed range of
+	    values bounded by the profile's <code>elemMinValue</code> and
+	    <code>elemMaxValue</code> elements indicates the valid values.
+	  </li>
+<li>If the value is <code>T</code> but no <code>elemValue</code>s
+	    appear, then it means that any value is a valid
+	    value for the resource.
+	  </li>
+</ul></div>
+<div class="section"><h3><a name="elemSynonym" id="elemSynonym"></a>elemSynonym</h3>
+<p>Often, a characteristic of a resource will go by several
+	  names, especially between scientific disciplines.  What one
+	  person may call <i>latitude</i>, another may call <i>x
+	    coordinate</i>, for example.  By specifiyng synonyms for a
+	  profile element, you can assist in automatic correlation of
+	  results and cross-disciplinary discovery.
+	</p>
+<p>The <code>elemSynonym</code> provides a way to do just that.
+	  Zero or more <code>elemSynonym</code>s may appear in a profile
+	  element.  The values of this element are names from data
+	  dictionaries other than the discipline data dictionary
+	  hosting the profile.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemObligation" id="elemObligation"></a>elemObligation</h3>
+<p>The <code>elemObligation</code> tells whether the data element
+	  is required to always or sometimes be present. This element
+	  is synonymous to the ISO/IEC 11179 attribute
+	  <code>Obligation</code>, and is optional within a profile
+	  element.
+	</p>
+<p>The legal values for this element are <code>Required</code> and
+	  <code>Optional</code>, with the obvious meanings.
+      	</p>
+</div>
+<div class="section"><h3><a name="elemComment" id="elemComment"></a>elemComment</h3>
+<p>The <code>elemComment</code> field provides a remark concerning
+	  the application of the data element.  This element is
+	  synonymous to the ISO/IEC 11179 attribute <code>Comment</code>,
+	  and is optional within a profile element.
+	</p>
+</div>
+</div><div class="section"><h2><a name="Metadata_about_the_Profile" id="Metadata_about_the_Profile"></a>Metadata about the Profile</h2>
+<p>For a profile server to manage a set of profiles, it's
+	necessary to have metadata contained within the profile that
+	describes the profile itself.  This metadata, collectively
+	called the profile attributes, or <code>profAttributes</code>,
+	serves that purpose.
+      </p>
+<p>Most of the elements within the <code>profAttributes</code> are
+	optional.  This sections describes each of them.
+      </p>
+<div class="section"><h3><a name="profId" id="profId"></a>profId</h3>
+<p>The <code>profId</code> serves to give a unique identifier to
+	  the profile.  It should be expressed as a URI, and often as
+	  an URN.
+      	</p>
+</div>
+<div class="section"><h3><a name="profVersion" id="profVersion"></a>profVersion</h3>
+<p>The <code>profVersion</code> identifies the version number of
+	  the profile.
+      	</p>
+</div>
+<div class="section"><h3><a name="profType" id="profType"></a>profType</h3>
+<p>The <code>profType</code> identifies the type of the profile.
+	  The type that typically appears here is <code>profile</code>,
+	  meaning the profile is a profile (obviously).
+	</p>
+<p>Another type that can be here is <code>dataDict</code>, which
+	  indicates that the profile doesn't describe a resource, but
+	  instead is a data dictionary for other profiles.  Such a
+	  profile's composition elements name the expected profile
+	  elements and ranges of valid valuese that will appear in
+	  other profiles.  The <code>profDataDictId</code> element
+	  identifies the profile serving as its data dictionary.
+	</p>
+</div>
+<div class="section"><h3><a name="profStatusId" id="profStatusId"></a>profStatusId</h3>
+<p>The <code>profStatusId</code> identifies the state of the
+	  profile.  Profiles may be either <code>active</code> or
+	  <code>inactive</code>.  An inactive profile is likely maintained
+	  for historical or exemplary reasons but is otherwise not
+	  currently used for searches or resource descriptions.
+	</p>
+</div>
+<div class="section"><h3><a name="profSecurityType" id="profSecurityType"></a>profSecurityType</h3>
+<p>The <code>profSecurityType</code> identifies whether the
+	  information contained in the profile may be of a sensitive
+	  nature.  Any string is valid here as the current OODT
+	  software does not use this field.
+	</p>
+</div>
+<div class="section"><h3><a name="profParentId" id="profParentId"></a>profParentId</h3>
+<p>The <code>profParentId</code> optionally identifies the URI of
+	  the parent of this profile.  Profiles may be arranged
+	  hierarchically in a singly rooted tree in a forest.
+	</p>
+</div>
+<div class="section"><h3><a name="profChildId" id="profChildId"></a>profChildId</h3>
+<p>The <code>profChildId</code>
+	  identifies zero or more children (by duplicating the element) of
+	  this profile.
+	</p>
+</div>
+<div class="section"><h3><a name="profRegAuthority" id="profRegAuthority"></a>profRegAuthority</h3>
+<p>The <code>profRegAuthority</code>
+	  names the registration authority responsible for authoring and
+	  maintaining the profile.
+	</p>
+</div>
+<div class="section"><h3><a name="profRevisionNote" id="profRevisionNote"></a>profRevisionNote</h3>
+<p>The <code>profRevisionNote</code> appears zero or more times in
+	  the profile to describe changes made to it over time.  The
+	  notes are free form text, and each element is ordered from
+	  newest to oldest note.
+	</p>
+</div>
+<div class="section"><h3><a name="profDataDictId" id="profDataDictId"></a>profDataDictId</h3>
+<p>The <code>profDataDictId</code>
+	  identifies the profile providing a data dictionary to the
+	  current profile.
+	</p>
+</div>
+</div><div class="section"><h2><a name="Describing_Resources" id="Describing_Resources"></a>Describing Resources</h2>
+<p>Let's take a look at how profiles would describe resources by
+	looking at an example set of scientific data.  Suppose you
+	archive high temperature data for your weather service; this
+	data comes in the form of tables of latitude/longitude
+	locations and the high temperature recorded at each point.
+	Since you're archiving daily high temperatures, there's one
+	table per day, so each day's table is a discrete resource.
+	Let's say you've got just three days of data so far, though,
+	and it looks like this (to keep things simple).
+      </p>
+<table class="bodyTable"><thead><tr class="a"><th>Day Number</th>
+<th>Lat</th>
+<th>Lon</th>
+<th>High Temp</th>
+</tr></thead><tbody><tr class="b"><td>1</td>
+<td>104.1</td>
+<td>39.2</td>
+<td>26.5</td>
+</tr><tr class="a"><td>110.3</td>
+<td>42.4</td>
+<td>29.9</td>
+</tr><tr class="b"><td>121.5</td>
+<td>45.6</td>
+<td>23.3</td>
+</tr><tr class="a"><td>2</td>
+<td>104.1</td>
+<td>39.2</td>
+<td>31.5</td>
+</tr><tr class="b"><td>110.3</td>
+<td>42.4</td>
+<td>30.9</td>
+</tr><tr class="a"><td>121.5</td>
+<td>45.6</td>
+<td>27.5</td>
+</tr><tr class="b"><td>2</td>
+<td>104.1</td>
+<td>39.2</td>
+<td>20.8</td>
+</tr><tr class="a"><td>110.3</td>
+<td>42.4</td>
+<td>19.5</td>
+</tr></tbody></table><p>(On day #3, vandals destroyed the weather sensor station at
+	(121.5, 45.6), so there are only two measurements that day.)
+      </p>
+<p>To make profiles for each day's of data, let's gather some
+	data that will be common to all of them.  First, say the
+	weather service's OID is 2.6.1.9, and for all collected data
+	the weather service has reserved an OID 2.6.1.9.2, high
+	temperature measurements 2.6.1.9.2.1.  They choose to make a
+	URI for each dataset,
+	<code>urn:weather:data:highs:<var>day-number</var></code>
+	where <var>day-number</var> is the day number of the data.
+	The official creator for all this data will be "Weather
+	Service", under subject keywords "weather", "temperatures",
+	and "measurements".  They'll also make the data tables
+	accessible as web documents in MIME format
+	<code>text/tab-separated-values</code> at the address
+	<code>http://weather.gov/data/highs/<var>day-number</var>.txt</code>.
+      </p>
+<p>Here, then, is the profile for the day 1:</p>
+<div class="source"><pre>&lt;profile&gt;
+  &lt;profAttributes&gt;
+    &lt;profId&gt;2.6.1.9.2.1.1&lt;/profId&gt;
+    &lt;profType&gt;profile&lt;/profType&gt;
+    &lt;profStatusId&gt;active&lt;/profStatusId&gt;
+  &lt;/profAttributes&gt;
+  &lt;resAttributes&gt;
+    &lt;Identifier&gt;urn:weather:data:highs:1&lt;/Identifier&gt;
+    &lt;Title&gt;High Temperatures - Day 1&lt;/Title&gt;
+    &lt;Format&gt;text/tab-separated-values&lt;/Format&gt;
+    &lt;Creator&gt;Weather Service&lt;/Creator&gt;
+    &lt;Subject&gt;weather&lt;/Subject&gt;
+    &lt;Subject&gt;temperatures&lt;/Subject&gt;
+    &lt;Subject&gt;measurements&lt;/Subject&gt;
+    &lt;resContext&gt;NOAA.NWS.Data&lt;/resContext&gt;
+    &lt;resClass&gt;data.granule&lt;/resClass&gt;
+    &lt;resLocation&gt;http://weather.gov/data/highs/1.txt&lt;/resLocation&gt;
+  &lt;/resAttributes&gt;
+  &lt;profElement&gt;
+    &lt;elemName&gt;latitude&lt;/elemName&gt;
+    &lt;elemType&gt;real&lt;/elemType&gt;
+    &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+    &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+    &lt;elemMinValue&gt;104.1&lt;/elemMinValue&gt;
+    &lt;elemMaxValue&gt;121.5&lt;/elemMaxValue&gt;
+  &lt;/profElement&gt;
+  &lt;profElement&gt;
+    &lt;elemName&gt;longitude&lt;/elemName&gt;
+    &lt;elemType&gt;real&lt;/elemType&gt;
+    &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+    &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+    &lt;elemMinValue&gt;39.2&lt;/elemMinValue&gt;
+    &lt;elemMaxValue&gt;45.6&lt;/elemMaxValue&gt;
+  &lt;/profElement&gt;
+  &lt;profElement&gt;
+    &lt;elemName&gt;temperature&lt;/elemName&gt;
+    &lt;elemType&gt;real&lt;/elemType&gt;
+    &lt;elemUnit&gt;celsius&lt;/elemUnit&gt;
+    &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+    &lt;elemMinValue&gt;23.3&lt;/elemMinValue&gt;
+    &lt;elemMaxValue&gt;29.9&lt;/elemMaxValue&gt;
+  &lt;/profElement&gt;
+&lt;/profile&gt;</pre>
+</div>
+<p>Someone searching for a high temperature that exceeded 25
+	degrees, for example, would find this as a matching
+	resource, as the <code>elemMinValue</code> for
+	<code>temperature</code> is 23.3, and 25 is over that.
+      </p>
+<p>Here are all three profiles in one document:</p>
+<div class="source"><pre>&lt;profiles&gt;
+  &lt;profile&gt;
+    &lt;profAttributes&gt;
+      &lt;profId&gt;2.6.1.9.2.1.1&lt;/profId&gt;
+      &lt;profType&gt;profile&lt;/profType&gt;
+      &lt;profStatusId&gt;active&lt;/profStatusId&gt;
+    &lt;/profAttributes&gt;
+    &lt;resAttributes&gt;
+      &lt;Identifier&gt;urn:weather:data:highs:1&lt;/Identifier&gt;
+      &lt;Title&gt;High Temperatures - Day 1&lt;/Title&gt;
+      &lt;Format&gt;text/tab-separated-values&lt;/Format&gt;
+      &lt;Creator&gt;Weather Service&lt;/Creator&gt;
+      &lt;Subject&gt;weather&lt;/Subject&gt;
+      &lt;Subject&gt;temperatures&lt;/Subject&gt;
+      &lt;Subject&gt;measurements&lt;/Subject&gt;
+      &lt;resContext&gt;NOAA.NWS.Data&lt;/resContext&gt;
+      &lt;resClass&gt;data.granule&lt;/resClass&gt;
+      &lt;resLocation&gt;http://weather.gov/data/highs/1.txt&lt;/resLocation&gt;
+    &lt;/resAttributes&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;latitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;104.1&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;121.5&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;longitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;39.2&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;45.6&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;temperature&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;celsius&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;23.3&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;29.9&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+  &lt;/profile&gt;
+  &lt;profile&gt;
+    &lt;profAttributes&gt;
+      &lt;profId&gt;2.6.1.9.2.1.2&lt;/profId&gt;
+      &lt;profType&gt;profile&lt;/profType&gt;
+      &lt;profStatusId&gt;active&lt;/profStatusId&gt;
+    &lt;/profAttributes&gt;
+    &lt;resAttributes&gt;
+      &lt;Identifier&gt;urn:weather:data:highs:2&lt;/Identifier&gt;
+      &lt;Title&gt;High Temperatures - Day 2&lt;/Title&gt;
+      &lt;Format&gt;text/tab-separated-values&lt;/Format&gt;
+      &lt;Creator&gt;Weather Service&lt;/Creator&gt;
+      &lt;Subject&gt;weather&lt;/Subject&gt;
+      &lt;Subject&gt;temperatures&lt;/Subject&gt;
+      &lt;Subject&gt;measurements&lt;/Subject&gt;
+      &lt;resContext&gt;NOAA.NWS.Data&lt;/resContext&gt;
+      &lt;resClass&gt;data.granule&lt;/resClass&gt;
+      &lt;resLocation&gt;http://weather.gov/data/highs/2.txt&lt;/resLocation&gt;
+    &lt;/resAttributes&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;latitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;104.1&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;121.5&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;longitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;39.2&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;45.6&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;temperature&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;celsius&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;27.5&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;31.5&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+  &lt;/profile&gt;
+  &lt;profile&gt;
+    &lt;profAttributes&gt;
+      &lt;profId&gt;2.6.1.9.2.1.3&lt;/profId&gt;
+      &lt;profType&gt;profile&lt;/profType&gt;
+      &lt;profStatusId&gt;active&lt;/profStatusId&gt;
+    &lt;/profAttributes&gt;
+    &lt;resAttributes&gt;
+      &lt;Identifier&gt;urn:weather:data:highs:3&lt;/Identifier&gt;
+      &lt;Title&gt;High Temperatures - Day 3&lt;/Title&gt;
+      &lt;Format&gt;text/tab-separated-values&lt;/Format&gt;
+      &lt;Creator&gt;Weather Service&lt;/Creator&gt;
+      &lt;Subject&gt;weather&lt;/Subject&gt;
+      &lt;Subject&gt;temperatures&lt;/Subject&gt;
+      &lt;Subject&gt;measurements&lt;/Subject&gt;
+      &lt;resContext&gt;NOAA.NWS.Data&lt;/resContext&gt;
+      &lt;resClass&gt;data.granule&lt;/resClass&gt;
+      &lt;resLocation&gt;http://weather.gov/data/highs/3.txt&lt;/resLocation&gt;
+    &lt;/resAttributes&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;latitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;104.1&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;110.3&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;longitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;39.2&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;42.4&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;temperature&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;celsius&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;19.5&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;20.8&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+  &lt;/profile&gt;
+&lt;/profiles&gt;</pre>
+</div>
+<p>Given this set of profiles, a profile search for resources
+	with <code>latitude &gt; 120.0</code> would match profiles
+	for day 1 and 2, but not day 3.  Actual profile searches are
+	possible by taking the above document and loading it into
+	the <code>LightweightProfileHandler</code>, yet that becomes
+	impractical for many many profiles, as it holds all of the
+	profile objects in memory and "searches" them in place.
+	More likely, data such as these would be stored in a
+	relational database, and the matching profiles would be
+	generated on demand.
+      </p>
+<p>Let's make one more profile, a profile that describes
+	<em>the entire collection</em>:
+      </p>
+<div class="source"><pre>
+  &lt;profile&gt;
+    &lt;profAttributes&gt;
+      &lt;profId&gt;2.6.1.9.2.1&lt;/profId&gt;
+      &lt;profType&gt;profile&lt;/profType&gt;
+      &lt;profStatusId&gt;active&lt;/profStatusId&gt;
+    &lt;/profAttributes&gt;
+    &lt;resAttributes&gt;
+      &lt;Identifier&gt;urn:weather:data:highs:index&lt;/Identifier&gt;
+      &lt;Title&gt;High Temperatures&lt;/Title&gt;
+      &lt;Format&gt;text/tab-separated-values&lt;/Format&gt;
+      &lt;Creator&gt;Weather Service&lt;/Creator&gt;
+      &lt;Subject&gt;weather&lt;/Subject&gt;
+      &lt;Subject&gt;temperatures&lt;/Subject&gt;
+      &lt;Subject&gt;measurements&lt;/Subject&gt;
+      &lt;resContext&gt;NOAA.NWS.Data&lt;/resContext&gt;
+      &lt;resClass&gt;system.profileServer&lt;/resClass&gt;
+      &lt;resLocation&gt;urn:weather:data:highs:ProfileServer&lt;/resLocation&gt;
+    &lt;/resAttributes&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;latitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;104.1&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;121.5&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;longitude&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;degree&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;19.5&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;31.5&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+    &lt;profElement&gt;
+      &lt;elemName&gt;temperature&lt;/elemName&gt;
+      &lt;elemType&gt;real&lt;/elemType&gt;
+      &lt;elemUnit&gt;celsius&lt;/elemUnit&gt;
+      &lt;elemEnumFlag&gt;F&lt;/elemEnumFlag&gt;
+      &lt;elemMinValue&gt;19.5&lt;/elemMinValue&gt;
+      &lt;elemMaxValue&gt;31.5&lt;/elemMaxValue&gt;
+    &lt;/profElement&gt;
+  &lt;/profile&gt;</pre>
+</div>
+<p>Note that in addition to several changes in the resource
+	attributes, we've also changed the profile elements to
+	cover the entire range of latitude, longitude, and
+	temperature in the entire data set.  So, for temperature,
+	the lowest high temperature for all three days was 19.5,
+	and the highest was 31.5.  Now, a profile search can for
+	temperatures greater than 30 will match the profile for
+	the whole collection, as well as the profile for day #2.
+      </p>
+<p>In fact, the OODT framework supports automatic drill-down of
+	this kind.  The <a href="http://oodt.apache.org/grid-query/">Query Service</a>, upon
+	encountering a matching profile, checks to see if the
+	<code>resClass</code> is <code>system.profileServer</code>,
+	and if so, will pass the query to the profile server at the
+	<code>resLocation</code> in the matched profile.  It will
+	gather up all matching profiles and return them to the user.
+	In this way, it can follow a directed graph of linked profile
+	servers (automatically avoiding cycles), and gathering more
+	and more results.
+      </p>
+</div></div><div class="visualClear"></div></div><div class="triptychRight"><div class="columnBorder"><div class="visualPadding" id="rightPlate"><div id="navcolumn">&#13;
+           &#13;
+  &#13;
+&#13;
+  &#13;
+    &#13;
+  &#13;
+  &#13;
+    &#13;
+                   <h5>Project Documentation</h5>&#13;
+            <ul><li class="collapsed">&#13;
+                    <a href="../project-info.html">Project Information</a>&#13;
+                </li>&#13;
+              &#13;
+                &#13;
+              &#13;
+      &#13;
+            &#13;
+      &#13;
+            &#13;
+      &#13;
+            &#13;
+      &#13;
+              &#13;
+        <li class="collapsed">&#13;
+                    <a href="../project-reports.html">Project Reports</a>&#13;
+                </li>&#13;
+          </ul><h5>User's Guide</h5>&#13;
+            <ul><li class="none">&#13;
+                    <a href="../info/">Information Captured</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../querying/">Querying Profiles</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../rep/">Profile Repr.</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../handler/">Basic Handler</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../adv/">Advanced Handler</a>&#13;
+          </li>&#13;
+          </ul>&#13;
+                       &#13;
+  &#13;
+&#13;
+  &#13;
+    &#13;
+  &#13;
+  &#13;
+    &#13;
+        </div></div></div></div></div></div><div style="clear: both;"> </div></div><div id="push"></div></div><div id="footerWrapper"><div id="footerGradient"></div><div id="footer"><a id="footerLogo" href="http://oodt.apache.org/" name="footerLogo"></a><p>
+                    Apache™ OODT is © 2010 by the Apache Software Foundation (ASF). Apache and the Apache
+                    feather logo are trademarks of the ASF.
+                </p><p>
+                    Apache™ OODT OODT is a Top Level Project and endorsed by the ASF. You are full of win.
+                </p><div id="sitemap"><dl><dt><a href="http://oodt.apache.org/about">About OODT</a></dt><dd><a href="http://oodt.apache.org/about/history">History</a></dd><dd><a href="http://oodt.apache.org/about/users">Users</a></dd><dd><a href="http://oodt.apache.org/about/incubation">Incubation</a></dd></dl><dl><dt><a href="http://www.apache.org/">Apache</a></dt><dd><a href="http://incubator.apache.org/">Incubator</a></dd><dd><a href="http://www.apache.org/licenses">License</a></dd><dd><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></dd><dd><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></dd><dd><a href="http://www.apache.org/security/">Security</a></dd></dl><dl><dt><a href="http://oodt.apache.org/components">Components</a></dt><dd><a href="http://oodt.apache.org/components/agility">Agility</a></dd><dd><a href="http://oodt.apache.org/components/cas">Catalog &amp; Archive</a></dd><dd><a href="http://oodt.apache.org/components/maven/
 xmlquery">Query</a></dd><dd><a href="http://oodt.apache.org/components/grid">Grid</a></dd><dd><a href="http://oodt.apache.org/components/common">Common</a></dd></dl><dl><dt><a href="http://oodt.apache.org/development">Development</a></dt><dd><a href="http://oodt.apache.org/development/roadmap">Roadmap</a></dd><dd><a href="http://oodt.apache.org/development/bugs">Report Bugs</a></dd><dd><a href="http://oodt.apache.org/development/source">Source Code</a></dd><dd><a href="http://oodt.apache.org/contact">Mailing Lists</a></dd></dl><dl><dt><a href="http://oodt.apache.org/contact">Social</a></dt><dd><a href="http://www.facebook.com/group.php?gid=322088549131">Facebook</a></dd><dd><a href="http://twitter.com/apache_oodt/">Twitter</a></dd><dd><a href="irc://irc.freenode.net/#oodt">Chat Room</a></dd></dl></div></div></div></body></html>
\ No newline at end of file

Added: oodt/site/components/maven/profile/querying/index.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/profile/querying/index.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/profile/querying/index.html (added)
+++ oodt/site/components/maven/profile/querying/index.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,238 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Apache™ OODT</title><link rel="stylesheet" href="http://oodt.apache.org/oodt.css" type="text/css" /><link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /><meta name="author" content="Sean Kelly" /></head><body><div id="outerWrapper"><div id="innerWrapper"><div class="visualHeaderWrapper"><div class="header"><div class="apacheOODTLogo"><a href="http://oodt.apache.org/"><img src="http://oodt.apache.org/images/apacheOODT.png" alt="Apache™ OODT" /></a></div><div class="fright"><ul class="globalnav"><!-- One of these li's must be given the currentNavTab class --><li><a id="tab-contact" href="http://oodt.apache.org/contact">Contact</a></li><li><a id="tab-development" href="http://oodt.apache.org/development">Development</a></li><li><a id="tab-downloads" href="http://oodt.apache.org/downloads">Downloa
 ds</a></li><li><a id="tab-components" href="http://oodt.apache.org/components" class="currentNavTab">Components</a></li><li><a id="tab-about" href="http://oodt.apache.org/about">About</a></li><li><a id="tab-home" href="http://oodt.apache.org/">Home</a></li></ul></div><div class="visualClear"></div></div></div><div class="subProductWrapper"><div class="subProductHeader"><h1 id="productNameSlot"><span id="bannerLeft">&#13;
+    &#13;
+            Profile Service&#13;
+    &#13;
+            </span></h1><h2 id="productSubheadSlot"><h2><a name="Querying_Profile_Elements" id="Querying_Profile_Elements"></a>Querying Profile Elements</h2><h2><a name="Queries_Against_Ranges" id="Queries_Against_Ranges"></a>Queries Against Ranges</h2><h2><a name="Queries_Against_Enumerated_Values" id="Queries_Against_Enumerated_Values"></a>Queries Against Enumerated Values</h2><h2><a name="Querying_Against_Unspecified_Values" id="Querying_Against_Unspecified_Values"></a>Querying Against Unspecified Values</h2></h2></div></div><div class="visualContentWrapper"><div class="contentGradient"></div><div id="content"><div class="diptych triptychSpace"><div class="visualPadding" id="leftPlate"><p>As desribed in <a href="../info/">Information Captured in a
+	Profile</a>, profile elements describe the composition of a
+	resource using metadata descriptions taken from the <a href="http://metadata-standards.org/11179/" class="externalLink">ISO/IEC 11179
+	standards</a>.  The profile elements catalog lists of valid
+	values, minimum and maximum values, data types, and so forth.
+      </p><p>As you develop a profile handler to perform queries and
+	generate profiles, you'll encounter three cases when querying
+	profile elements or the data sources they describe:
+      </p><ul><li>Querying ranges of values</li>
+<li>Querying enumerated values</li>
+<li>Querying unspecified profile lements</li>
+</ul><div class="section"><h2><a name="Queries_Against_Ranges" id="Queries_Against_Ranges"></a>Queries Against Ranges</h2>
+<p>Ranged profile elements are those that describe an attribute
+	of a resource's composition in terms of a continuous space of
+	valid values.  In the Java implementation, there's a subclass
+	of <code>ProfileElement</code> to represent such ranges:
+	<code>RangedProfileElement</code>.  In the XML representation,
+	the <code>&lt;elemEnumFlag&gt;</code> is <code>F</code> and
+	there are values listed for <code>&lt;elemMinValue&gt;</code>
+	and <code>&lt;elemMaxValue&gt;</code>.
+      </p>
+<p>An example of a ranged profile element might be:</p>
+<table class="bodyTable"><tbody><tr class="a"><td>Name:</td>
+<td>temperature</td>
+</tr><tr class="b"><td>Description:</td>
+<td>Temperatures measured using
+	  oral, medical-use, alcohol-based thermometer.</td>
+</tr><tr class="a"><td>Type:</td>
+<td>real</td>
+</tr><tr class="b"><td>Unit:</td>
+<td>kelvin</td>
+</tr><tr class="a"><td>Enumeration flag:</td>
+<td>false</td>
+</tr><tr class="b"><td>Min value:</td>
+<td>282.31</td>
+</tr><tr class="a"><td>Max value:</td>
+<td>301.45</td>
+</tr></tbody></table><p>When you're generating a profile (or querying a similar
+	metadata model) with a ranged element, queries should match if
+	the sought value occurs within the given, inclusive range.  If
+	it's a negative query, then it should match if the sought
+	value <em>doesn't</em> occur within the range.
+      </p>
+<p>Here's an example.  Suppose you have a ranged profile element
+	called <code>lumens</code> and its minimum value is 10 and its
+	maximum value is 20.  Here's a table that shows queries and
+	whether they match:
+      </p>
+<table class="bodyTable"><thead><tr class="b"><th>Query</th>
+<th>Match?</th>
+</tr></thead><tbody><tr class="a"><td>lumens = 12</td>
+<td>Yes, since 12 is between 10 and 20</td>
+</tr><tr class="b"><td>lumens = 45</td>
+<td>No, since 45 is above 20</td>
+</tr><tr class="a"><td>lumens != 12</td>
+<td>Yes, since there are <em>other values</em> in the range 10..20 that match, such as 13, 14, 12.1, etc.</td>
+</tr><tr class="b"><td>lumens != 45</td>
+<td>Yes, since are an infinite number of values in the range 10..22 that are not 45</td>
+</tr><tr class="a"><td>lumens != 10</td>
+<td>Yes</td>
+</tr><tr class="b"><td>lumens &lt; 45</td>
+<td>Yes</td>
+</tr><tr class="a"><td>lumens &gt; 15</td>
+<td>Yes</td>
+</tr><tr class="b"><td>lumens &gt; 35</td>
+<td>No; the highest lumen value is 20</td>
+</tr><tr class="a"><td>lumens LIKE 12</td>
+<td>Maybe</td>
+</tr></tbody></table><p>The "LIKE" relational operator defined by the XMLQuery query
+	langauge was meant for string comparisons, yet there's nothing
+	in the software that prevents it from being presented for
+	ranged queries.  The choice of whether to match it is up to you.
+      </p>
+</div><div class="section"><h2><a name="Queries_Against_Enumerated_Values" id="Queries_Against_Enumerated_Values"></a>Queries Against Enumerated Values</h2>
+<p>Enumerated profile elements are those that describe an
+	attribute of a resource's composition in terms of a discrete
+	list of valid values.  In the Java implementation, there's a
+	subclass of <code>ProfileElement</code> to represent such
+	ranges: <code>EnumeratedProfileElement</code>.  In the XML
+	representation, the <code>&lt;elemEnumFlag&gt;</code> is
+	<code>T</code> and there are one or more
+	<code>&lt;elemValue&gt;</code> elements.
+      </p>
+<p>An example of an enumerated profile element might be:</p>
+<table class="bodyTable"><tbody><tr class="b"><td>Name:</td>
+<td>zone</td>
+</tr><tr class="a"><td>Description:</td>
+<td>City Planning Commission zoning code for permitted land use.</td>
+</tr><tr class="b"><td>Type:</td>
+<td>string</td>
+</tr><tr class="a"><td>Unit:</td>
+<td>code</td>
+</tr><tr class="b"><td>Enumeration flag:</td>
+<td>true</td>
+</tr><tr class="a"><td>Value:</td>
+<td>A</td>
+</tr><tr class="b"><td>Value:</td>
+<td>B1</td>
+</tr><tr class="a"><td>Value:</td>
+<td>B2</td>
+</tr><tr class="b"><td>Value:</td>
+<td>B4</td>
+</tr><tr class="a"><td>Value:</td>
+<td>C</td>
+</tr><tr class="b"><td>Value:</td>
+<td>H</td>
+</tr><tr class="a"><td>Value:</td>
+<td>PDD</td>
+</tr><tr class="b"><td>Value:</td>
+<td>R2</td>
+</tr><tr class="a"><td>Value:</td>
+<td>R3</td>
+</tr><tr class="b"><td>Value:</td>
+<td>R4</td>
+</tr><tr class="a"><td>Value:</td>
+<td>R5</td>
+</tr></tbody></table><p>When you're generating a profile (or querying a similar
+	metadata model) with an enumerated element, queries should
+	match if the sought value appears as one of the listed
+	elements.
+      </p>
+<p>Here's an example.  Suppose you have an profile element
+	called <code>planet</code> that has as valid values
+	<code>Mercury</code>, <code>Venus</code>, <code>Earth</code>,
+	and <code>Mars</code>.  Here's a table that shows queries and
+	whether they match:
+      </p>
+<table class="bodyTable"><thead><tr class="b"><th>Query</th>
+<th>Match?</th>
+</tr></thead><tbody><tr class="a"><td>planet = Mercury</td>
+<td>Yes</td>
+</tr><tr class="b"><td>planet = Jupiter</td>
+<td>No</td>
+</tr><tr class="a"><td>planet != Mercury</td>
+<td>Yes since Earth, Venus, and Mars are all not Mercury</td>
+</tr><tr class="b"><td>planet != Jupiter</td>
+<td>Yes since there are 4 planets which are all not Jupiter</td>
+</tr><tr class="a"><td>planet &lt; Earth</td>
+<td>Maybe</td>
+</tr><tr class="b"><td>planet LIKE %E%</td>
+<td>Yes, since all four planets have an E in them (without regard to case)</td>
+</tr><tr class="a"><td>planet NOTLIKE %E%</td>
+<td>No, since all four planets have an E in them</td>
+</tr></tbody></table><p>Relational ordering is not specified by the profile model, so whether
+	a query like <code>planet &lt; Earth</code> matches is up to you.
+      </p>
+</div><div class="section"><h2><a name="Querying_Against_Unspecified_Values" id="Querying_Against_Unspecified_Values"></a>Querying Against Unspecified Values</h2>
+<p>An unspecific profile element indicates only the
+	<em>presence</em> of an attribute in the composition of a
+	resource, and nothing else.  In the Java implementation,
+	there's a subclass of <code>ProfileElement</code> to represent
+	this, <code>UnspecifiedProfileElement</code>.  In the XML
+	representation, the <code>&lt;elemEnumFlag&gt;</code> is
+	<code>T</code> and there are zero
+	<code>&lt;elemValue&gt;</code> elements.
+      </p>
+<p>Unspecified profile elements can be useful where you have
+	profiles not describing single resources, but entire
+	collections of resources.  For example, you may have ranged
+	profile elements called <code>temperature</code> for each
+	temperature resource.  But if there are a billion resources,
+	then determining the minimum and maximum temperature for the
+	profile of the entire collection might be painful, in which
+	case you can say that the collection has a
+	<code>temperature</code> attribute by using an unspecified
+	profile for the element for the collection.
+      </p>
+<p>Queries against unspecified elements always match, regardless
+	what the query is.
+      </p>
+</div></div><div class="visualClear"></div></div><div class="triptychRight"><div class="columnBorder"><div class="visualPadding" id="rightPlate"><div id="navcolumn">&#13;
+           &#13;
+  &#13;
+&#13;
+  &#13;
+    &#13;
+  &#13;
+  &#13;
+    &#13;
+                   <h5>Project Documentation</h5>&#13;
+            <ul><li class="collapsed">&#13;
+                    <a href="../project-info.html">Project Information</a>&#13;
+                </li>&#13;
+              &#13;
+                &#13;
+              &#13;
+      &#13;
+            &#13;
+      &#13;
+            &#13;
+      &#13;
+            &#13;
+      &#13;
+              &#13;
+        <li class="collapsed">&#13;
+                    <a href="../project-reports.html">Project Reports</a>&#13;
+                </li>&#13;
+          </ul><h5>User's Guide</h5>&#13;
+            <ul><li class="none">&#13;
+                    <a href="../info/">Information Captured</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../querying/">Querying Profiles</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../rep/">Profile Repr.</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../handler/">Basic Handler</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../adv/">Advanced Handler</a>&#13;
+          </li>&#13;
+          </ul>&#13;
+                       &#13;
+  &#13;
+&#13;
+  &#13;
+    &#13;
+  &#13;
+  &#13;
+    &#13;
+        </div></div></div></div></div></div><div style="clear: both;"> </div></div><div id="push"></div></div><div id="footerWrapper"><div id="footerGradient"></div><div id="footer"><a id="footerLogo" href="http://oodt.apache.org/" name="footerLogo"></a><p>
+                    Apache™ OODT is © 2010 by the Apache Software Foundation (ASF). Apache and the Apache
+                    feather logo are trademarks of the ASF.
+                </p><p>
+                    Apache™ OODT OODT is a Top Level Project and endorsed by the ASF. You are full of win.
+                </p><div id="sitemap"><dl><dt><a href="http://oodt.apache.org/about">About OODT</a></dt><dd><a href="http://oodt.apache.org/about/history">History</a></dd><dd><a href="http://oodt.apache.org/about/users">Users</a></dd><dd><a href="http://oodt.apache.org/about/incubation">Incubation</a></dd></dl><dl><dt><a href="http://www.apache.org/">Apache</a></dt><dd><a href="http://incubator.apache.org/">Incubator</a></dd><dd><a href="http://www.apache.org/licenses">License</a></dd><dd><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></dd><dd><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></dd><dd><a href="http://www.apache.org/security/">Security</a></dd></dl><dl><dt><a href="http://oodt.apache.org/components">Components</a></dt><dd><a href="http://oodt.apache.org/components/agility">Agility</a></dd><dd><a href="http://oodt.apache.org/components/cas">Catalog &amp; Archive</a></dd><dd><a href="http://oodt.apache.org/components/maven/
 xmlquery">Query</a></dd><dd><a href="http://oodt.apache.org/components/grid">Grid</a></dd><dd><a href="http://oodt.apache.org/components/common">Common</a></dd></dl><dl><dt><a href="http://oodt.apache.org/development">Development</a></dt><dd><a href="http://oodt.apache.org/development/roadmap">Roadmap</a></dd><dd><a href="http://oodt.apache.org/development/bugs">Report Bugs</a></dd><dd><a href="http://oodt.apache.org/development/source">Source Code</a></dd><dd><a href="http://oodt.apache.org/contact">Mailing Lists</a></dd></dl><dl><dt><a href="http://oodt.apache.org/contact">Social</a></dt><dd><a href="http://www.facebook.com/group.php?gid=322088549131">Facebook</a></dd><dd><a href="http://twitter.com/apache_oodt/">Twitter</a></dd><dd><a href="irc://irc.freenode.net/#oodt">Chat Room</a></dd></dl></div></div></div></body></html>
\ No newline at end of file

Added: oodt/site/components/maven/profile/rep/index.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/profile/rep/index.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/profile/rep/index.html (added)
+++ oodt/site/components/maven/profile/rep/index.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,345 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Apache™ OODT</title><link rel="stylesheet" href="http://oodt.apache.org/oodt.css" type="text/css" /><link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /><meta name="author" content="Sean Kelly" /></head><body><div id="outerWrapper"><div id="innerWrapper"><div class="visualHeaderWrapper"><div class="header"><div class="apacheOODTLogo"><a href="http://oodt.apache.org/"><img src="http://oodt.apache.org/images/apacheOODT.png" alt="Apache™ OODT" /></a></div><div class="fright"><ul class="globalnav"><!-- One of these li's must be given the currentNavTab class --><li><a id="tab-contact" href="http://oodt.apache.org/contact">Contact</a></li><li><a id="tab-development" href="http://oodt.apache.org/development">Development</a></li><li><a id="tab-downloads" href="http://oodt.apache.org/downloads">Downloa
 ds</a></li><li><a id="tab-components" href="http://oodt.apache.org/components" class="currentNavTab">Components</a></li><li><a id="tab-about" href="http://oodt.apache.org/about">About</a></li><li><a id="tab-home" href="http://oodt.apache.org/">Home</a></li></ul></div><div class="visualClear"></div></div></div><div class="subProductWrapper"><div class="subProductHeader"><h1 id="productNameSlot"><span id="bannerLeft">&#13;
+    &#13;
+            Profile Service&#13;
+    &#13;
+            </span></h1><h2 id="productSubheadSlot"><h2><a name="Representation_of_Profiles" id="Representation_of_Profiles"></a>Representation of Profiles</h2><h2><a name="Introduction" id="Introduction"></a>Introduction</h2><h2><a name="XML_Profiles" id="XML_Profiles"></a>XML Profiles</h2><h2><a name="Java_Representation_of_Profiles" id="Java_Representation_of_Profiles"></a>Java Representation of Profiles</h2></h2></div></div><div class="visualContentWrapper"><div class="contentGradient"></div><div id="content"><div class="diptych triptychSpace"><div class="visualPadding" id="leftPlate"><p>Within the OODT Framework, profiles are represented as RDF
+	documents, XML documents, or Java objects. The Java Profile
+	class can yield itself as an RDF or XML document, and you can
+	construct a Java Profile from an XML document that describes a
+	profile.
+      </p><div class="section"><h2><a name="Introduction" id="Introduction"></a>Introduction</h2>
+<p>No matter what their origin or whether they're to be short
+	lived, profiles have a physical representation at one time
+	within the OODT framework.  Typically, you'll use the Java class
+	<code>Profile</code> when working with Java, or the
+	RDF or XML document version when working in other environments.
+	The RDF representation uses the RDF XML structure and RDF schema
+	to describe profiles.  The XML document version uses an
+	OODT-specific XML vocabulary and DTD.
+      </p>
+<p><em>For C/C++ Users:</em> There is not yet a C/C++ representation of a profile.
+	Use the RDF or XML representation.
+      </p>
+<p><em>Note:</em>The RDF representation is currently a work-in-progress.
+      </p>
+<p>If you're developing a new kind of profile server, you
+	should become familiar with the Java
+	<code>Profile</code> class.  If you're searching for
+	profiles, you can just use the RDF or XML representations.
+      </p>
+</div><div class="section"><h2><a name="XML_Profiles" id="XML_Profiles"></a>XML Profiles</h2>
+<p>Profiles can be represented as XML documents that conform to
+	the OODT Profile Document Type Definition (DTD).  The Formal
+	Public Identifier of the OODT Profile DTD is <code>-//JPL//DTD
+	Profile 1.0//EN</code>.  The normative System Identifier is
+	<a>http://oodt.jpl.nasa.gov/grid-profile/dtd/prof.dtd.
+      </a></p>
+<p>Although you should refer to the normative System
+	Identifier for the latest reference version, see the following:
+      </p>
+<div class="source"><pre>&lt;!ELEMENT profiles
+  (profile*)&gt;
+
+&lt;!ELEMENT profile
+  (profAttributes,
+   resAttributes,
+   profElement*)&gt;
+
+    &lt;!ELEMENT profAttributes
+      (profId, profVersion?, profType,
+       profStatusId, profSecurityType?, profParentId?, profChildId*,
+       profRegAuthority?, profRevisionNote*)&gt;
+
+    &lt;!ELEMENT resAttributes
+      (Identifier, Title?, Format*, Description?, Creator*, Subject*,
+       Publisher*, Contributor*, Date*, Type*, Source*,
+       Language*, Relation*, Coverage*, Rights*,
+       resContext+, resAggregation?, resClass, resLocation*)&gt;
+
+    &lt;!ELEMENT profElement
+      (elemId?, elemName, elemDesc?, elemType?, elemUnit?, 
+       elemEnumFlag, (elemValue* | (elemMinValue, elemMaxValue)),
+       elemSynonym*,
+       elemObligation?, elemMaxOccurrence?, elemComment?)&gt;
+
+    &lt;!ELEMENT profId (#PCDATA)&gt;
+    &lt;!ELEMENT profVersion (#PCDATA)&gt;
+    &lt;!ELEMENT profType (#PCDATA)&gt;
+    &lt;!ELEMENT profParentId (#PCDATA)&gt;
+    &lt;!ELEMENT profChildId (#PCDATA)&gt;
+    &lt;!ELEMENT profStatusId (#PCDATA)&gt;
+    &lt;!ELEMENT profSecurityType (#PCDATA)&gt;
+    &lt;!ELEMENT profRegAuthority (#PCDATA)&gt;
+    &lt;!ELEMENT profRevisionNote (#PCDATA)&gt;
+
+    &lt;!ELEMENT Identifier (#PCDATA)&gt;
+    &lt;!ELEMENT Title (#PCDATA)&gt;
+    &lt;!ELEMENT Format (#PCDATA)&gt;
+    &lt;!ELEMENT Description (#PCDATA)&gt;
+    &lt;!ELEMENT Creator (#PCDATA)&gt;
+    &lt;!ELEMENT Subject (#PCDATA)&gt;
+    &lt;!ELEMENT Publisher (#PCDATA)&gt;
+    &lt;!ELEMENT Contributor (#PCDATA)&gt;
+    &lt;!ELEMENT Date (#PCDATA)&gt;
+    &lt;!ELEMENT Type (#PCDATA)&gt;
+    &lt;!ELEMENT Source (#PCDATA)&gt;
+    &lt;!ELEMENT Language (#PCDATA)&gt;
+    &lt;!ELEMENT Relation (#PCDATA)&gt;
+    &lt;!ELEMENT Coverage (#PCDATA)&gt;
+    &lt;!ELEMENT Rights (#PCDATA)&gt;
+    &lt;!ELEMENT resContext (#PCDATA)&gt;
+    &lt;!ELEMENT resAggregation (#PCDATA)&gt;
+    &lt;!ELEMENT resClass (#PCDATA)&gt;
+    &lt;!ELEMENT resLocation (#PCDATA)&gt;
+
+    &lt;!ELEMENT elemId (#PCDATA)&gt;
+    &lt;!ELEMENT elemName (#PCDATA)&gt;
+    &lt;!ELEMENT elemType (#PCDATA)&gt;
+    &lt;!ELEMENT elemEnumFlag (#PCDATA)&gt;
+    &lt;!ELEMENT elemDesc (#PCDATA)&gt;
+    &lt;!ELEMENT elemSynonym (#PCDATA)&gt;
+    &lt;!ELEMENT elemUnit (#PCDATA)&gt;
+    &lt;!ELEMENT elemValue (#PCDATA)&gt;	
+    &lt;!ELEMENT elemMinValue (#PCDATA)&gt;	
+    &lt;!ELEMENT elemMaxValue (#PCDATA)&gt;	
+    &lt;!ELEMENT elemObligation (#PCDATA)&gt;
+    &lt;!ELEMENT elemMaxOccurrence (#PCDATA)&gt;
+    &lt;!ELEMENT elemComment (#PCDATA)&gt;</pre>
+</div>
+<div class="section"><h3><a name="Collections_of_Profiles" id="Collections_of_Profiles"></a>Collections of Profiles</h3>
+<p>As you can see from the above,an
+	  XML element, <code>profiles</code> is a
+	  container element to hold zero or more profiles.  Use this
+	  element where it's necessary to manipulate a collection of
+	  profiles without regard to order.
+	</p>
+</div>
+</div><div class="section"><h2><a name="Java_Representation_of_Profiles" id="Java_Representation_of_Profiles"></a>Java Representation of Profiles</h2>
+<p>The OODT source code includes a class
+	<code>jpl.eda.profile.Profile</code> for object
+	represenation of a profile.  You can construct a
+	<code>Profile</code> object from an RDF or XML
+	document or create a blank one to populate with metadata
+	later.
+      </p>
+<p>To construct a new, blank profile, use the no-arguments
+	constructor.  To construct a profile from an RDF or XML
+	document, use the constructor accepting a Resource or a DOM
+	<code>Node</code>, respectively.  The DOM node
+	should be a <code>Element</code> representing the
+	<code>profile</code> element.
+	Alternatively, if your XML document exists as a string, call
+	the constructor taking a single string.
+      </p>
+<div class="section"><h3><a name="Accessing_Profile_Metadata" id="Accessing_Profile_Metadata"></a>Accessing Profile Metadata</h3>
+<p>To access the metadata of a profile, call the methods to
+	  retrieve the profile attributes, the resource attributes, or
+	  the profile elements.
+	</p>
+<div class="section"><h3><a name="Accessing_the_Profile_Attributes" id="Accessing_the_Profile_Attributes"></a>Accessing the Profile Attributes</h3>
+<p>You retrieve the profile attributes by calling
+	    <code>getProfileAttributes</code> on a
+	    <code>Profile</code>.  This returns an
+	    <code>ProfileAttributes</code> object which provides
+	    methods to get and set the various attributes.  Setting a
+	    value sets it for the <code>Profile</code> to which
+	    the <code>ProfileAttributes</code> belongs.
+	  </p>
+<p>A value of <code>null</code> for an optional
+	    attribute means the value isn't set.
+	  </p>
+</div>
+<div class="section"><h3><a name="Accessing_the_Resource_Attributes" id="Accessing_the_Resource_Attributes"></a>Accessing the Resource Attributes</h3>
+<p>You retrieve the resource attributes similarly as for
+	    profile attributes, calling
+	    <code>getResourceAttributes</code> to yield a
+	    <code>ResourceAttributes</code> object.
+	  </p>
+<p>The <code>ResourceAttributes</code> has
+	    methods to get and set various attributes.  Note that many
+	    of the attributes are multi-valued.  For example, the
+	    resource profiled will likely cover several subjects.  In
+	  this case, the "get" method,
+	  <code>getSubjects</code>, returns a
+	  <code>java.util.List</code> of
+	  <code>String</code>s.  There is no set method.
+	    Instead, you just manipulate the list to add and remove
+	    subjects.
+	  </p>
+<p><em>Note:</em> All of the "get" functions that return
+	    <code>List</code>s return lists of
+	    <code>String</code>s, except for
+	    <code>getDates</code>, which returns a list of
+	    <code>java.util.Date</code>s.
+	  </p>
+<p>For other attributes which are singly valued, there is
+	    both a set and get method.  For optional values, a value of
+	    <code>null</code> means the attribute isn't set.
+	  </p>
+</div>
+<div class="section"><h3><a name="Accessing_the_Profile_Elements" id="Accessing_the_Profile_Elements"></a>Accessing the Profile Elements</h3>
+<p>The profile stores its profile elements in a
+	    <code>java.util.Map</code>, mapping the name of
+	    the profile element (as a <code>String</code>) to
+	    an object of class <code>ProfileElement</code>.
+	    To access this map, call the method
+	    <code>getProfileElements</code> on a
+	    <code>Profile</code>.  Because this method returns
+	    a reference to the <code>Profile</code>'s map, any
+	    updates to the map affect the profile immediately.
+	  </p>
+<p><em>Caution:</em> Never store anything but
+	    <code>String</code>s as keys and
+	    <code>ProfileElement</code>s (or objects of its
+	    subclasses) as values in a profile element map.  The
+	    software will not operate correctly if any other kind of
+	    object is stored.
+	  </p>
+<div class="section"><h3><a name="Common_Attributes_of_Profile_Elements" id="Common_Attributes_of_Profile_Elements"></a>Common Attributes of Profile Elements</h3>
+<p>The class
+	      <code>jpl.eda.profile.ProfileElement</code>
+	      contains the common parts of every profile element, such
+	      as its required name, its optional description, and so
+	      forth.  Use the value <code>null</code> for any
+	      optional attribute that's unset.
+	    </p>
+<p>The <code>ProfileElement</code> stores its
+	      synonyms as a <code>java.util.List</code> of
+	      <code>String</code>s.  Manipulate the list
+	      directly to add or remove synonyms.
+	    </p>
+<p>The <code>ProfileElement</code> class is
+	      abstract.  To create new profile elements for a profile,
+	      you need to create objects of one of the concrete
+	      <code>ProfileElement</code> subclasses:
+	    </p>
+<ul><li><code>EnumeratedProfileElement</code></li>
+<li><code>RangedProfileElement</code></li>
+<li><code>UnspecifiedProfileElement</code></li>
+</ul><p>The following sections detail each kind of profile
+	      element.
+	    </p>
+</div>
+<div class="section"><h3><a name="Elements_with_Enumerated_Values" id="Elements_with_Enumerated_Values"></a>Elements with Enumerated Values</h3>
+<p>For profile elements that maintain a specified list of
+	      valid values, use the
+	      <code>EnumeratedProfileElement</code> class.
+	      Objects of this class maintian a
+	      <code>java.util.List</code> of values.  You can
+	      pass in a list of values when constrcuting the object, or
+	      can call the <code>getValues</code> method and
+	      manipulate the list directly.
+	    </p>
+<p>Queries that arrive for an enumerated profile
+	      element must match one of the listed elements exactly
+	      unless it's a negative (not-equal-to) query.  For
+	      example, suppose we had an enumerated profile element
+	      <code>filter</code> with values
+	      <code>infrared</code>, <code>visible</code>,
+	      and <code>ultraviolet</code>.  A query asking for
+	      a filter equal to infrared should match, as well as a
+	      query asking for a filter greater than or equal to
+	      infrared.  A query asking for a filter not equal to
+	      infrared shouldn't match, while a query asking for a
+	      filter not equal to x-ray should match.
+	    </p>
+</div>
+<div class="section"><h3><a name="Elements_with_a_Range_of_Values" id="Elements_with_a_Range_of_Values"></a>Elements with a Range of Values</h3>
+<p>You can represent profile elements that have a range
+	      of valid values with the
+	      <code>RangedProfileElement</code> class.
+	      Construct this class with the minimum and maximum values,
+	      which must be numeric.
+	    </p>
+<p>Use the <code>getMinValue</code> to get the
+	      minimum value and <code>getMaxValue</code> to
+	      get the maximum value.
+	    </p>
+<p>Querying a profile that uses a range of values
+	      considers the range as inclusive.  For example, suppose
+	      the ranged profile element
+	      <code>temperature</code> has a minimum value of 32
+	      and a maximum value of 212.  A query that requests
+	      temperatures less than 32 shouldn't match, but less than or
+	      equal to 32 should match.
+	    </p>
+</div>
+<div class="section"><h3><a name="Elements_with_no_Specified_Values" id="Elements_with_no_Specified_Values"></a>Elements with no Specified Values</h3>
+<p>For profile elements that you always want to match a
+	      query without explicitly listing each valid value or a
+	      range of legal numeric values you can use the class
+	      <code>UnspecifiedProfileElement</code>.  This
+	      class identifies an element with no range or list of
+	      valid values.
+	    </p>
+<p>Queries that arrive at such an element will
+	      <span class="emphasis"><em>always</em></span> match, even if they're
+	      negative (not-equal-to) queries.
+	    </p>
+</div>
+</div>
+</div>
+</div></div><div class="visualClear"></div></div><div class="triptychRight"><div class="columnBorder"><div class="visualPadding" id="rightPlate"><div id="navcolumn">&#13;
+           &#13;
+  &#13;
+&#13;
+  &#13;
+    &#13;
+  &#13;
+  &#13;
+    &#13;
+                   <h5>Project Documentation</h5>&#13;
+            <ul><li class="collapsed">&#13;
+                    <a href="../project-info.html">Project Information</a>&#13;
+                </li>&#13;
+              &#13;
+                &#13;
+              &#13;
+      &#13;
+            &#13;
+      &#13;
+            &#13;
+      &#13;
+            &#13;
+      &#13;
+              &#13;
+        <li class="collapsed">&#13;
+                    <a href="../project-reports.html">Project Reports</a>&#13;
+                </li>&#13;
+          </ul><h5>User's Guide</h5>&#13;
+            <ul><li class="none">&#13;
+                    <a href="../info/">Information Captured</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../querying/">Querying Profiles</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../rep/">Profile Repr.</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../handler/">Basic Handler</a>&#13;
+          </li>&#13;
+              &#13;
+    <li class="none">&#13;
+                    <a href="../adv/">Advanced Handler</a>&#13;
+          </li>&#13;
+          </ul>&#13;
+                       &#13;
+  &#13;
+&#13;
+  &#13;
+    &#13;
+  &#13;
+  &#13;
+    &#13;
+        </div></div></div></div></div></div><div style="clear: both;"> </div></div><div id="push"></div></div><div id="footerWrapper"><div id="footerGradient"></div><div id="footer"><a id="footerLogo" href="http://oodt.apache.org/" name="footerLogo"></a><p>
+                    Apache™ OODT is © 2010 by the Apache Software Foundation (ASF). Apache and the Apache
+                    feather logo are trademarks of the ASF.
+                </p><p>
+                    Apache™ OODT OODT is a Top Level Project and endorsed by the ASF. You are full of win.
+                </p><div id="sitemap"><dl><dt><a href="http://oodt.apache.org/about">About OODT</a></dt><dd><a href="http://oodt.apache.org/about/history">History</a></dd><dd><a href="http://oodt.apache.org/about/users">Users</a></dd><dd><a href="http://oodt.apache.org/about/incubation">Incubation</a></dd></dl><dl><dt><a href="http://www.apache.org/">Apache</a></dt><dd><a href="http://incubator.apache.org/">Incubator</a></dd><dd><a href="http://www.apache.org/licenses">License</a></dd><dd><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></dd><dd><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></dd><dd><a href="http://www.apache.org/security/">Security</a></dd></dl><dl><dt><a href="http://oodt.apache.org/components">Components</a></dt><dd><a href="http://oodt.apache.org/components/agility">Agility</a></dd><dd><a href="http://oodt.apache.org/components/cas">Catalog &amp; Archive</a></dd><dd><a href="http://oodt.apache.org/components/maven/
 xmlquery">Query</a></dd><dd><a href="http://oodt.apache.org/components/grid">Grid</a></dd><dd><a href="http://oodt.apache.org/components/common">Common</a></dd></dl><dl><dt><a href="http://oodt.apache.org/development">Development</a></dt><dd><a href="http://oodt.apache.org/development/roadmap">Roadmap</a></dd><dd><a href="http://oodt.apache.org/development/bugs">Report Bugs</a></dd><dd><a href="http://oodt.apache.org/development/source">Source Code</a></dd><dd><a href="http://oodt.apache.org/contact">Mailing Lists</a></dd></dl><dl><dt><a href="http://oodt.apache.org/contact">Social</a></dt><dd><a href="http://www.facebook.com/group.php?gid=322088549131">Facebook</a></dd><dd><a href="http://twitter.com/apache_oodt/">Twitter</a></dd><dd><a href="irc://irc.freenode.net/#oodt">Chat Room</a></dd></dl></div></div></div></body></html>
\ No newline at end of file