blob: b4866de65a69957ecf280694514c3553bb1b644c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) 2004, 2007 Boeing. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: Boeing - initial API and implementation" >
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
<title>Attribute Tagging for Quick Search</title>
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js"> </script>
<link rel="stylesheet" href="../content/PLUGINS_ROOT/org.eclipse.help.webapp/advanced/breadcrumbs.css" charset="ISO-8859-1" type="text/css"></link>
<script type="text/javascript" src="../content/PLUGINS_ROOT/org.eclipse.help/livehelp.js"> </script>
<link rel="stylesheet" href="../content/PLUGINS_ROOT/PRODUCT_PLUGIN/narrow_book.css" type="text/css"></link>
<link rel="stylesheet" href="../content/PLUGINS_ROOT/PRODUCT_PLUGIN/win32_narrow_book.css" type="text/css"></link>
<script type="text/javascript">
<!--
if (parent.ContentToolbarFrame && parent.ContentToolbarFrame.setButtonState) parent.ContentToolbarFrame.setButtonState("toggle_highlight","hidden");
-->
</script>
</head>
<body>
<h1>Attribute Tagging for Quick Search</h1>
<p>When an artifact is saved, each attribute contained in the artifact is analyzed to produce a list of
tags that are then associated with the artifact. Quick search is a form of <i>keyword</i> based searching
which uses tags to perform contextual artifact searches.</p>
<p>For an attribute to be tagged by the system, it must meet the following criteria:</p>
<ol>
<li>The attribute's type must specify an <b>Attribute Tagger</b> to be used by the tagging system.</li>
<li>The attribute must contain valid data.</li>
<li>The attribute revision must be saved in the database before sending to tagging system.</li>
</ol>
<p>To produce tags, modified attributes are sent to the OSEE application server where the tagging system
processes each attribute using an <b>Attribute Tagger</b> specified by the attribute's type. The <b>Attribute Tagger</b>
knows how to interpret the attribute's data and how to extract words from the content. At this point, a word is defined
as a sequential set of alphanumeric characters delimited by one or more spaces. As words are parsed, they are sent
to the tagging system's word encoder where the following processing takes place:
</p>
<ol>
<li>The characters in the original word are converted to lower case.</li>
<li>The lower cased version of the word is encoded and stored in the tagging system.</li>
<li>The lower cased version of the word is split using punctuation characters such as (<b><code>' '</code>,
<code>!</code>, <code>"</code>, <code>#</code>, <code>$</code>,
<code>%</code>, <code>(</code>, <code>)</code>, <code>*</code>, <code>+</code>,
<code>,</code>, <code>-</code>, <code>.</code>, <code>/</code>, <code>:</code>,
<code>;</code>, <code>&lt;</code>, <code>&gt;</code>, <code>?</code>, <code>@</code>,
<code>[</code>, <code>\</code>, <code>]</code>, <code>^</code>, <code>{</code>,
<code>|</code>, <code>}</code>, <code>~</code>, <code>_</code></b>) as delimiters.</li>
<li>Possessive words <i>(ending in 's)</i> are converted into regular form.</li>
<li>Each word is converted from plural to singular form.</li>
<li>Each word is encoded and stored in the tag system.</li>
</ol>
<p> When encoding words into tags, the tag encoder uses an algorithm which transforms the word's characters
into a bit-packed tag that will fit in a 64-bit integer. The tag will represent up to 12 characters
(all that can fit into 64-bits). Longer words will be turned into consecutive tags.</p>
<h3>Tag Encoding Examples</h3>
<table style="width:50%;" border="1">
<tr style="background:lightgrey">
<th>Original</th>
<th>Keywords</th>
<th>Encoding</th>
</tr>
<tr>
<td>appendeces</td>
<td>appendix</td>
<td>-220858502</td>
</tr>
<tr>
<td>battery(ies)</td>
<td>battery</td>
<td>529513131</td>
</tr>
<tr>
<td>alternate/backup</td>
<td>
<table>
<tr><td>alternate</td></tr>
<tr><td>backup</td></tr>
</table>
</td>
<td>
<table>
<tr><td>-1420231874</td></tr>
<tr><td>24902827</td></tr>
</table>
</td>
</tr>
</table>
<p><img border="0" src="ngrelr.png" alt="Related reference" /><br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<a href="quick_search_view.html">Quick Search View</a>
</p>
</body>
</html>