You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by bu...@apache.org on 2012/02/16 11:06:25 UTC

svn commit: r805049 [2/2] - in /websites/staging/stanbol/trunk: ./ content/stanbol/docs/trunk/enhancer/ content/stanbol/docs/trunk/enhancer/chains/ content/stanbol/docs/trunk/enhancer/engines/

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/index.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/index.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/index.html Thu Feb 16 10:06:24 2012
@@ -71,26 +71,29 @@
 <p>When using the Java API enhancement engines can be liked up as OSGI services. The <a href="enhancementenginemanager.html">Enhancement Engine Manager</a> service is designed to ease this by providing a API that allows to access enhancement engine by their name.</p>
 <h2 id="enhancement_engine_interface">Enhancement Engine Interface</h2>
 <p>The interface for enhancement engines contains the following three methods:</p>
-<div class="codehilite"><pre><span class="sr">/** Getter for the value of the &quot;stanbol.enhancer.engine.name&quot; property */</span>
-<span class="o">+</span> <span class="n">getName</span><span class="p">()</span> <span class="p">:</span> <span class="n">String</span>
-<span class="sr">/** Checks if this engine can enhance the parsed content item */</span>
-<span class="o">+</span> <span class="n">canEnhance</span><span class="p">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="p">)</span> <span class="p">:</span> <span class="nb">int</span>
-<span class="sr">/** Enhances the parsed content item */</span>
-<span class="o">+</span> <span class="n">computeEnhacements</span><span class="p">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="p">)</span>
-
-<span class="sr">/** The property used for the name of an engine */</span>
-<span class="n">PROPERTY_NAME</span> <span class="p">:</span> <span class="n">String</span>
-<span class="sr">/** Indicates that this engine can not enhance an content item */</span>
-<span class="n">CANNOT_ENHANCE</span> <span class="p">:</span> <span class="nb">int</span>
-<span class="sr">/** Indicates support for synchronous enhancement */</span>
-<span class="n">ENHANCE_SYNCHRONOUS</span> <span class="p">:</span> <span class="nb">int</span>
-<span class="sr">/** Indicates support for asynchronous enhancement */</span>
-<span class="n">ENHANCE_ASYNC</span> <span class="p">:</span> <span class="nb">int</span>
+<div class="codehilite"><pre><span class="cm">/** Getter for the value of the &quot;stanbol.enhancer.engine.name&quot; property */</span>
+<span class="o">+</span> <span class="n">getName</span><span class="o">()</span> <span class="o">:</span> <span class="n">String</span>
+<span class="cm">/** Checks if this engine can enhance the parsed content item */</span>
+<span class="o">+</span> <span class="n">canEnhance</span><span class="o">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="o">)</span> <span class="o">:</span> <span class="kt">int</span>
+<span class="cm">/** Enhances the parsed content item */</span>
+<span class="o">+</span> <span class="n">computeEnhacements</span><span class="o">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="o">)</span>
+
+<span class="cm">/** The property used for the name of an engine */</span>
+<span class="n">PROPERTY_NAME</span> <span class="o">:</span> <span class="n">String</span>
+<span class="cm">/** Indicates that this engine can not enhance an content item */</span>
+<span class="n">CANNOT_ENHANCE</span> <span class="o">:</span> <span class="kt">int</span>
+<span class="cm">/** Indicates support for synchronous enhancement */</span>
+<span class="n">ENHANCE_SYNCHRONOUS</span> <span class="o">:</span> <span class="kt">int</span>
+<span class="cm">/** Indicates support for asynchronous enhancement */</span>
+<span class="n">ENHANCE_ASYNC</span> <span class="o">:</span> <span class="kt">int</span>
 </pre></div>
 
 
 <p>Each enhancement engine has a name. This is typically provided by the engine configuration and MUST be set as value to the property "stanbol.enhancer.engine.name" in the service registration of the enhancement engine. The getter for the name MUST return the same value as the value set to this property. Enhancement engine implementations will usually get the name by calling:</p>
-<p>this.name = (String)ComponentContext.getProperties(EnhancementEngine.PROPERTY_NAME);</p>
+<div class="codehilite"><pre><span class="k">this</span><span class="o">.</span><span class="na">name</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span><span class="n">ComponentContext</span><span class="o">.</span><span class="na">getProperties</span><span class="o">(</span><span class="n">EnhancementEngine</span><span class="o">.</span><span class="na">PROPERTY_NAME</span><span class="o">);</span>
+</pre></div>
+
+
 <p>The <code>canEnahnce(ContentItem ci)</code> method is used by the <a href="../enhancementjobmanager.html">Enhancement Job Manager</a> to check if an engine is able to process a <a href="../contentitem.html">Content Item</a>. Calling this method MUST NOT change the state of the content item and this method MUST also NOT acquire a write lock on the content item.</p>
 <p>The <code>computeEnhacements(ContentItem ci)</code> starts the processing of the parsed content item by the engine. It is expected to change the state of the parsed content item. Engines that support asynchronous processing need to take care to correctly apply read/write locks when reading/writing information from/to the content item. Engines that return <code>ENHANCE_SYNCHRONOUS</code> on calls to <code>canEnhance(..)</code> do not need to use locks. They can trust that they have exclusive read/write access to the content item.</p>
 <p>Enhancement engins do have full access to the content item. Theoretically, they would be even allowed to delete all metadata as well as all content parts from the parsed content item. However typically the do only</p>
@@ -103,16 +106,16 @@
 <p>Both the <code>canEnhance(..)</code> and <code>computeEnhancements(..)</code> methods MUST be called by the <a href="../enhancementjobmanager.html">Enhancement Job Manager</a> after all the executions of all enhancement engines this one depends on are completed. This dependencies are defined by the <a href="../chains/executionplan.html">Execution Plan</a> used by the enhancement job manager to enhance the content item. Implementors of enhancement engines can therefore trust that all metadata expected to be added by other enhancement engines are already present within the metadata of the parsed content items when <code>canEnhance(..)</code> or <code>computeEnhancements(..)</code> is called.</p>
 <h3 id="services_properties_interface">Services Properties Interface</h3>
 <p>This interface is implemented by most of the current enhancement engines. It allows engines to expose additional properties to other component. This interface defines a single method</p>
-<div class="codehilite"><pre><span class="sr">/** Getter for the ServiceProperties */</span>
-<span class="n">Map</span><span class="sr">&lt;String,Object&gt;</span> <span class="n">getServiceProperties</span><span class="p">();</span>
+<div class="codehilite"><pre><span class="cm">/** Getter for the ServiceProperties */</span>
+<span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span><span class="n">Object</span><span class="o">&gt;</span> <span class="n">getServiceProperties</span><span class="o">();</span>
 </pre></div>
 
 
 <p>but also predefines the property <code>ENHANCEMENT_ENGINE_ORDERING = "org.apache.stanbol.enhancer.engine.order"</code> that can be used by enhancement engine implementations to specify their typical ordering within the enhancement process.</p>
 <h3 id="engine_ordering_information">Engine Ordering Information</h3>
 <p>By implementing the ServicesProperties interface enhancement engines do have the possibility to expose additional metadata to other components. The services properties interface defines only a single method</p>
-<div class="codehilite"><pre><span class="sr">/** Getter for the ServiceProperties */</span>
-<span class="n">Map</span><span class="sr">&lt;String,Object&gt;</span> <span class="n">getServiceProperties</span><span class="p">();</span>
+<div class="codehilite"><pre><span class="cm">/** Getter for the ServiceProperties */</span>
+<span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span><span class="n">Object</span><span class="o">&gt;</span> <span class="n">getServiceProperties</span><span class="o">();</span>
 </pre></div>
 
 
@@ -129,7 +132,7 @@
 <p>Basically this features allows the implementor of an enhancement engine to define the correct position of his engine within an typical enhancement chain and therefore ensure that users that add this engine to a enhancer installation to immediately use this engine with the <a href="../chains/defaultchain.html">Default Chain</a>.</p>
 <p>However, the engine ordering is not the only possibility for users to control the execution order. Enhancement chain implementations such as the <a href="../chains/listchain.html">List Chain</a> and the <a href="../chains/graphchain.html">Graph Chain</a> do also allow to directly define the oder of execution. For these chains the ordering information provided by enhancement engines are ignored.</p>
 <h2 id="enhancement_engine_management">Enhancement Engine Management</h2>
-<p>This section describes how enhancement engines are managed by the Apache Stanbol Enhancer and how they can be selected/accessed through the <a href="../enhancementjobmanager.html">Enhancement Job Manager</a> and executed in an <a href="../chains/enhancementchain.html">Enhancement Chain</a>.</p>
+<p>This section describes how enhancement engines are managed by the Apache Stanbol Enhancer and how they can be selected/accessed through the <a href="../enhancementjobmanager.html">Enhancement Job Manager</a> and executed in an <a href="../chains">Enhancement Chain</a>.</p>
 <p>Enhancement engines are registered as OSGi services and managed by using the following service properties:</p>
 <ul>
 <li><strong>Name:</strong> Defined by the value of the property "stanbol.enhancer.engine.name" it will be used to access Engines on the Stanbol RESTful interface</li>

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/keywordlinkingengine.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/keywordlinkingengine.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/keywordlinkingengine.html Thu Feb 16 10:06:24 2012
@@ -65,26 +65,12 @@ The following list provides a short over
 <ul>
 <li><strong>Language detection:</strong> The KeywordLinkingEngine depends on the correct detection of the language by the LanguageIdentificationEngine. If no language is detected or this information is missing then "English" is assumed as default.</li>
 <li><strong>Multi-lingual labels of the controlled vocabulary:</strong> Entities are matched based on labels of the current language and labels without any defined language. e.g. English labels will not be matched against German language texts. Therefore it is important to have a controlled vocabulary that includes labels in the language of the texts you want to enhance.</li>
-<li>
-<p><strong>Natural Language Processing support:</strong> The KeywordLinkingEngine is able to use <a href="http://opennlp.sourceforge.net/api/opennlp/tools/sentdetect/SentenceDetector.html">Sentence Detectors</a>, <a href="http://opennlp.sourceforge.net/api/opennlp/tools/postag/POSTagger.html">POS (Part of Speech) taggers</a> and <a href="http://opennlp.sourceforge.net/api/opennlp/tools/chunker/Chunker.html">Chunkers</a>. If such components are available for a language then they are used to optimize the enhancement process.</p>
-<ul>
-<li>
-<p><strong>Sentence detector:</strong> If a sentence detector is present the memory footprint of the engines improves, because Tokens, POS tags and Chunks are only kept for the currently active sentence. If no sentence detector is available the entire content is treated as a single sentence.</p>
-</li>
-<li>
-<p><strong>Tokenizer:</strong> A (word) <a href="http://opennlp.sourceforge.net/api/opennlp/tools/tokenize/Tokenizer.html">tokenizer</a> is required for the enhancement process. If no specific tokenizer is available for a given language, then the <a href="http://opennlp.sourceforge.net/api/opennlp/tools/tokenize/SimpleTokenizer.html">OpenNLP SimpleTokenizer</a> is used as default. How well this tokenizer works will depend on the language.</p>
-</li>
-<li>
-<p><strong>POS tagger:</strong> POS (Part-of-Speech) taggers annotate tokens with their type. Because of the KeywordLinkingEngine is only interested in Nouns, Foreign Words and Numbers, the presence of such a tagger allows to skip a lot of the tokens and to improve performance. However POS taggers use different sets of tags for different languages. Because of that it is not enough that a POS tagger is available for a language there MUST BE also a configuration of the POS tags representing Nouns.</p>
-</li>
-<li>
-<p><strong>Chunker:</strong> There are two types of Chunkers. First the <a href="http://opennlp.sourceforge.net/api/opennlp/tools/chunker/Chunker.html">Chunkers</a> as provided by OpenNLP (based on statistical models) and second a <a href="http://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons/opennlp/src/main/java/org/apache/stanbol/commons/opennlp/PosTypeChunker.java">POS tag based Chunker</a> provided by the openNLP bundle of Stanbol. Currently the availability of a Chunker does not have a big influence on the performance nor the quality of the Enhancements.</p>
-</li>
-</ul>
-</li>
-<li>
-<p><strong>Configuration:</strong> The set of languages to be annotated can be configured for the KeywordLinkingEngine. An empty configuration indicates that texts in any language should be processed. By using this configuration it is possible to configure different KeywordLinkingEngine instances for different languages (e.g. with different configurations)</p>
-</li>
+<li><strong>Natural Language Processing support:</strong> The KeywordLinkingEngine is able to use <a href="http://opennlp.sourceforge.net/api/opennlp/tools/sentdetect/SentenceDetector.html">Sentence Detectors</a>, <a href="http://opennlp.sourceforge.net/api/opennlp/tools/postag/POSTagger.html">POS (Part of Speech) taggers</a> and <a href="http://opennlp.sourceforge.net/api/opennlp/tools/chunker/Chunker.html">Chunkers</a>. If such components are available for a language then they are used to optimize the enhancement process.</li>
+<li><strong>Sentence detector:</strong> If a sentence detector is present the memory footprint of the engines improves, because Tokens, POS tags and Chunks are only kept for the currently active sentence. If no sentence detector is available the entire content is treated as a single sentence.</li>
+<li><strong>Tokenizer:</strong> A (word) <a href="http://opennlp.sourceforge.net/api/opennlp/tools/tokenize/Tokenizer.html">tokenizer</a> is required for the enhancement process. If no specific tokenizer is available for a given language, then the <a href="http://opennlp.sourceforge.net/api/opennlp/tools/tokenize/SimpleTokenizer.html">OpenNLP SimpleTokenizer</a> is used as default. How well this tokenizer works will depend on the language.</li>
+<li><strong>POS tagger:</strong> POS (Part-of-Speech) taggers annotate tokens with their type. Because of the KeywordLinkingEngine is only interested in Nouns, Foreign Words and Numbers, the presence of such a tagger allows to skip a lot of the tokens and to improve performance. However POS taggers use different sets of tags for different languages. Because of that it is not enough that a POS tagger is available for a language there MUST BE also a configuration of the POS tags representing Nouns.</li>
+<li><strong>Chunker:</strong> There are two types of Chunkers. First the <a href="http://opennlp.sourceforge.net/api/opennlp/tools/chunker/Chunker.html">Chunkers</a> as provided by OpenNLP (based on statistical models) and second a <a href="http://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons/opennlp/src/main/java/org/apache/stanbol/commons/opennlp/PosTypeChunker.java">POS tag based Chunker</a> provided by the openNLP bundle of Stanbol. Currently the availability of a Chunker does not have a big influence on the performance nor the quality of the Enhancements.</li>
+<li><strong>Configuration:</strong> The set of languages to be annotated can be configured for the KeywordLinkingEngine. An empty configuration indicates that texts in any language should be processed. By using this configuration it is possible to configure different KeywordLinkingEngine instances for different languages (e.g. with different configurations)</li>
 </ul>
 <h2 id="keyword_extraction_and_linking_workflow">Keyword extraction and linking workflow</h2>
 <p>Basically the text is parsed from the beginning to the end and words are looked up in the configured controlled vocabulary.</p>
@@ -138,9 +124,12 @@ If the redirect mode != ignore for each 
 <li>max_matched: maximum number of the matched tokens of all suggestions  e.g. the text contains "Barack Obama" -&gt; 2</li>
 <li>matched: number of tokens that match for the current suggestion e.g. "Barack Hussein Obama" -&gt; 2</li>
 <li>span: number of tokens selected by the current suggestion e.g. "Barack Hussein Obama" -&gt; 2</li>
-<li>label_tokens: number of tokens of the matched label of the current entity (label_token) e.g. "Barack Hussein Obama" -&gt; 3</li>
+<li>
+<p>label_tokens: number of tokens of the matched label of the current entity (label_token) e.g. "Barack Hussein Obama" -&gt; 3</p>
+<p>:::java
+confidence = (match/max_matched)^2 * (matched/span) * (matched/label_tokens)</p>
+</li>
 </ul>
-<p>confidence = (match/max_matched)^2 * (matched/span) * (matched/label_tokens)</p>
 <p>Some Examples:</p>
 <ul>
 <li>"Barack Hussein Obama" matched against the text "Barack Obama" results in a confidence of (2/2)^2 * (2/2) * (2/3) = 0,67 </li>

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/langidengine.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/langidengine.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/langidengine.html Thu Feb 16 10:06:24 2012
@@ -65,7 +65,8 @@ The text to be checked must be provided 
 <li>a plain text content item</li>
 <li>
 <p>by the content item's metadata as the string value of the property </p>
-<p><pre><code>http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent</pre></code></p>
+<p>:::html
+<pre><code>http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent</pre></code></p>
 </li>
 </ul>
 <p>The result of language identification is added as TextAnnotation to the content item's metadata as string value of the property</p>
@@ -106,13 +107,7 @@ The text to be checked must be provided 
 <p>Additional language models can be created as Tika <a href="org.apache.tika.language.LanguageProfile">LanguageProfile</a>.</p>
 <h2 id="configuration_options">Configuration options</h2>
 <ul>
-<li>
-<p><code>org.apache.stanbol.enhancer.engines.langid.probe-length</code></p>
-<p>an integer specifying how many characters will be used for
-identification. A value of 0 or below means to use the complete
-text. Otherwise only a substring of the specified length taken from the
-middle of the text will be used. The default value is 400 characters.</p>
-</li>
+<li><code>org.apache.stanbol.enhancer.engines.langid.probe-length</code>: an integer specifying how many characters will be used for identification. A value of 0 or below means to use the complete text. Otherwise only a substring of the specified length taken from the middle of the text will be used. The default value is 400 characters.</li>
 </ul>
 <h2 id="usage">Usage</h2>
 <p>Assuming that the Stanbol endpoint with the full launcher is running at</p>
@@ -125,11 +120,13 @@ can be used for submitting some text fil
 <ul>
 <li>
 <p>stateless interface</p>
-<p>curl -i -X POST -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/engines</p>
+<p>:::bash
+curl -i -X POST -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/engines</p>
 </li>
 <li>
 <p>stateful interface</p>
-<p>curl -i -X PUT -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/contenthub/content/someFileId</p>
+<p>:::bash
+curl -i -X PUT -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/contenthub/content/someFileId</p>
 </li>
 </ul>
 <p>Alternatively, the Stanbol web interface can be used for submitting documents

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/metaxaengine.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/metaxaengine.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/metaxaengine.html Thu Feb 16 10:06:24 2012
@@ -89,13 +89,12 @@ document properties and not text annotat
              <span class="s2">&quot;Cheap Flights to Tenerife, Arrecife, Paphos, Mahon, Las Palmas, Malaga, Alicante, Faro, Heraklion, Palma and the rest of the World. Flightline searches over 100 Airlines and 30,000 Hotels. ABTA, IATA, ATOL Bonded.&quot;</span> <span class="p">;</span>
      <span class="o">&lt;</span><span class="nn">http</span><span class="p">:</span><span class="o">//</span><span class="s-Atom">www</span><span class="p">.</span><span class="s-Atom">semanticdesktop</span><span class="p">.</span><span class="s-Atom">org</span><span class="o">/</span><span class="s-Atom">ontologies</span><span class="o">/</span><span class="m">2007</span><span class="o">/</span><span class="m">01</span><span class="o">/</span><span class="m">19</span><span class="o">/</span><span class="s-Atom">nie#keyword</span><span class="o">&gt;</span>
              <span class="s2">&quot;travel&quot;</span> <span class="p">,</span> <span class="s2">&quot;bargain flights&quot;</span> <span class="p">,</span> <span class="s2">&quot;late deals&quot;</span> <span class="p">,</span> <span class="s2">&quot;hotels&quot;</span> <span class="p">,</span> <span class="s2">&quot;air tickets&quot;</span> <span class="p">,</span> <span class="s2">&quot;air fares&quot;</span> <span class="p">,</span> <span class="s2">&quot;discount travel&quot;</span> <span class="p">,</span> <span class="s2">&quot;last minute flights&quot;</span> <span class="p">,</span> <span class="s2">&quot;cheap airlines&quot;</span> <span class="p">,</span> <span class="s2">&quot;cheap holidays&quot;</span> <span class="p">,</span> <span class="s2">&quot;cheap flights&quot;</span> <span class="p">,</span> <span class="s2">&quot;flightline&quot;</span> <span class="p">,</span> <span class="s2">&quot;hotel reservations&quot;</span> <span class="p">,</span> <span clas
 s="s2">&quot;discount flights&quot;</span> <span class="p">,</span> <span class="s2">&quot;air travel&quot;</span> <span class="p">,</span> <span class="s2">&quot;package holidays&quot;</span> <span class="p">;</span>
-     <span class="o">&lt;</span><span class="nn">http</span><span class="p">:</span><span class="o">//</span><span class="s-Atom">www</span><span class="p">.</span><span class="s-Atom">semanticdesktop</span><span class="p">.</span><span class="s-Atom">org</span><span class="o">/</span><span class="s-Atom">ontologies</span><span class="o">/</span><span class="m">2007</span><span class="o">/</span><span class="m">01</span><span class="o">/</span><span class="m">19</span><span class="o">/</span><span class="s-Atom">nie#plainTextContent</span><span class="o">&gt;</span>
-             <span class="s2">&quot;More Than Just Cheap Flights ...&quot;</span> <span class="p">;</span>
      <span class="o">&lt;</span><span class="nn">http</span><span class="p">:</span><span class="o">//</span><span class="s-Atom">www</span><span class="p">.</span><span class="s-Atom">semanticdesktop</span><span class="p">.</span><span class="s-Atom">org</span><span class="o">/</span><span class="s-Atom">ontologies</span><span class="o">/</span><span class="m">2007</span><span class="o">/</span><span class="m">01</span><span class="o">/</span><span class="m">19</span><span class="o">/</span><span class="s-Atom">nie#title</span><span class="o">&gt;</span>
              <span class="s2">&quot;Flightline | Cheap Flights, Package Holidays, Hotels, Travel Insurance &amp;amp; More&quot;</span> <span class="p">.</span>
 </pre></div>
 
 
+<p>NOTE: The extracted plain text is no longer added to the metadata of the contentItem but stores in an own <a href="../contentitem.html#content_parts">ContentPart</a> with the media type "text/plain". Both the RESTful Service as the Java API allows to request this data. See the according documentations for details.</p>
 <h4 id="embedded_tthcardtt_microformat_data_referenced_via_the_ttniecontainstt_property">Embedded <tt>hCard</tt> microformat data referenced via the <tt>nie:contains</tt> property:</h4>
 <div class="codehilite"><pre><span class="o">&lt;</span><span class="nn">urn</span><span class="p">:</span><span class="nn">rnd</span><span class="p">:</span><span class="o">-</span><span class="m">9</span><span class="s-Atom">e25553:</span><span class="m">12</span><span class="nf">b3843df43</span><span class="o">:-</span><span class="m">7</span><span class="s-Atom">ffe</span><span class="o">&gt;</span>
      <span class="s-Atom">a</span>       <span class="o">&lt;</span><span class="nn">http</span><span class="p">:</span><span class="o">//</span><span class="s-Atom">www</span><span class="p">.</span><span class="s-Atom">w3</span><span class="p">.</span><span class="s-Atom">org</span><span class="o">/</span><span class="m">2006</span><span class="o">/</span><span class="s-Atom">vcard</span><span class="o">/</span><span class="s-Atom">ns#</span><span class="nv">VCard</span><span class="o">&gt;</span> <span class="p">;</span>
@@ -192,11 +191,17 @@ following set of document formats:</p>
 <li>XML</li>
 </ul>
 <h3 id="textual_content">Textual Content</h3>
-<p>Metaxa represents the plain text content of a document in the content item's metadata as the value of the property:</p>
-<div class="codehilite"><pre><span class="n">http:</span><span class="sr">//</span><span class="n">www</span><span class="o">.</span><span class="n">semanticdesktop</span><span class="o">.</span><span class="n">org</span><span class="sr">/ontologies/</span><span class="mi">2007</span><span class="sr">/01/</span><span class="mi">19</span><span class="o">/</span><span class="n">nie</span><span class="c1">#plainTextContent</span>
+<p>The extracted plain text is no longer added to the metadata of the contentItem but stores in an own <a href="../contentitem.html#content_parts">ContentPart</a> with the media type "text/plain".</p>
+<p>The following POST request to the Enhancer can be used to directly request the plain text version of a parsed content</p>
+<div class="codehilite"><pre>curl -v -X POST -H <span class="s2">&quot;Accept: text/plain&quot;</span> <span class="se">\</span>
+    -H <span class="s2">&quot;Content-type: text/html; charset=UTF-8&quot;</span> <span class="se">\</span>
+    --data <span class="s2">&quot;&lt;html&gt;&lt;body&gt;&lt;p&gt;John Smith was born in London.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span> <span class="se">\</span>
+    <span class="s2">&quot;http://localhost:8080/enhancer/chain/language?omitMetadata=true&quot;</span>
 </pre></div>
 
 
+<p>There is also the possibility to request both the extracted metadata and the plain text version. Please see the Documentation of the RESTful API (<a href="http://localhost:8080/enhacer">http://localhost:8080/enhacer</a> if Stanbol runs on localhost).</p>
+<p>NOTE: previous versions of this engine had stored the plain text version by using the "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent" property directly in the metadata of the ContentItem. This is no longer supported.</p>
 <h3 id="vocabularies">Vocabularies</h3>
 <p>Metaxa uses a set of vocabularies ("ontologies") for structured data representation.</p>
 <h4 id="aperture_core_ontologies">Aperture Core Ontologies</h4>
@@ -210,11 +215,13 @@ package</p>
 <ul>
 <li>
 <p>NIE (Nepomuk Information Element):</p>
-<p>http://www.semanticdesktop.org/ontologies/2007/01/19/nie#</p>
+<p>:::none
+http://www.semanticdesktop.org/ontologies/2007/01/19/nie#</p>
 </li>
 <li>
 <p>NFO (Nepomuk File Object):</p>
-<p>http://www.semanticdesktop.org/ontologies/2007/01/19/nfo# </p>
+<p>:::none
+http://www.semanticdesktop.org/ontologies/2007/01/19/nfo# </p>
 </li>
 </ul>
 <p>Documentation of Aperture's core ontologies is provided in Aperture's Javadoc <a href="http://aperture.sourceforge.net/doc/javadoc/1.5.0/index.html">http://aperture.sourceforge.net/doc/javadoc/1.5.0/index.html</a> for the packages in </p>
@@ -328,11 +335,13 @@ Alternative configurations and extractor
 <ul>
 <li>
 <p>stateless interface</p>
-<p>curl -i -X POST -H "Content-Type:text/html" -T testpage.html http://localhost:8080/engines</p>
+<p>:::none
+curl -i -X POST -H "Content-Type:text/html" -T testpage.html http://localhost:8080/engines</p>
 </li>
 <li>
 <p>stateful interface</p>
-<p>curl -i -X PUT -H "Content-Type:text/html" -T testpage.html http://localhost:8080/contenthub/content/someFileId</p>
+<p>:::none
+curl -i -X PUT -H "Content-Type:text/html" -T testpage.html http://localhost:8080/contenthub/content/someFileId</p>
 </li>
 </ul>
 <p>Alternatively, the Stanbol web interface can be used for submitting documents

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/namedentitytaggingengine.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/namedentitytaggingengine.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/namedentitytaggingengine.html Thu Feb 16 10:06:24 2012
@@ -61,38 +61,15 @@
 <h2 id="configuration">Configuration</h2>
 <p>The configuration decides, which dataset you want to use as linking target. The default value is "local" referencing to the default DBpedia index. You may also decide on whether given types should restrict the set of possible links. E.g. for DBpedia, some organisations are not tagged as such, therefore, you want get them with this engine although, you expect them from your dataset.</p>
 <ul>
-<li>Referenced Site: {local, your referenced site}</li>
+<li>Referenced Site: {local, your referenced site}: The ID of the Entityhub Referenced Site used for semantic lifting of TextAnnotations.</li>
+<li>Persons: {true, false}: Set to TRUE to enable semantic lifting of Persons</li>
+<li>Person Type {<empty>, dbp-ont:Person}: The rdf:type used to search for Persons. If empty Entities of any type are accepted.</li>
+<li>Organisations {true, false}: Set to TRUE to enable semantic lifting of Organisations</li>
+<li>Organisation Type {<empty>, dbp-ont:Organisation}: The rdf:type used to search for Organizations. If empty Entities of any type are accepted.</li>
+<li>Places {true, false}: Set to TRUE to enable semantic lifting of Places</li>
+<li>Place Type {<empty>, dbp-ont:Place}: The rdf:type used to search for Places. If empty Entities of any type are accepted.*</li>
+<li>Label Field {<empty>, rdfs:label}: The field used to search for Entities with a label similar to the selected text of the Text Annotation. If empty rdfs:label is used as default*</li>
 </ul>
-<p><em>The ID of the Entityhub Referenced Site used for semantic lifting of TextAnnotations.</em> </p>
-<ul>
-<li>Persons: {true, false}</li>
-</ul>
-<p><em>Set to TRUE to enable semantic lifting of Persons</em></p>
-<ul>
-<li>Person Type {<empty>, dbp-ont:Person} </li>
-</ul>
-<p><em>The rdf:type used to search for Persons. If empty Entities of any type are accepted.</em></p>
-<ul>
-<li>Organisations {true, false}</li>
-</ul>
-<p><em>Set to TRUE to enable semantic lifting of Organisations</em></p>
-<ul>
-<li>Organisation Type {<empty>, dbp-ont:Organisation}</li>
-</ul>
-<p><em>The rdf:type used to search for Organizations. If empty Entities of any type are accepted.</em></p>
-<ul>
-<li>Places {true, false}</li>
-</ul>
-<p><em>Set to TRUE to enable semantic lifting of Places</em></p>
-<ul>
-<li>Place Type {<empty>, dbp-ont:Place} <br />
-</li>
-</ul>
-<p><em>The rdf:type used to search for Places. If empty Entities of any type are accepted.</em></p>
-<ul>
-<li>Label Field {<empty>, rdfs:label}</li>
-</ul>
-<p><em>The field used to search for Entities with a label similar to the selected text of the Text Annotation. If empty rdfs:label is used as default</em></p>
 <h2 id="example_result">Example Result</h2>
 <p>For the sentence "John Smith lives in London", you will get several EntityAnnotations for the terms "London", "John Smith" form your linking target resource (in this case DBpedia) together with a confidence value, which can be used to sort the suggestions.</p>
 <div class="codehilite"><pre><span class="p">{</span>

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/opencalaisengine.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/opencalaisengine.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/opencalaisengine.html Thu Feb 16 10:06:24 2012
@@ -87,39 +87,21 @@ obtained from <a href="http://www.openca
 
 <p>Also, the unit tests require the API key. Without the key some tests will be
 skipped. For Maven the key can be set as a system property on the command line:</p>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="o">-</span><span class="n">Dorg</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">stanbol</span><span class="o">.</span><span class="n">enhancer</span><span class="o">.</span><span class="n">engines</span><span class="o">.</span><span class="n">opencalais</span><span class="o">.</span><span class="n">license</span><span class="o">=</span><span class="n">YOUR_API_KEY</span> <span class="p">[</span><span class="n">install</span><span class="o">|</span><span class="n">test</span><span class="p">]</span>
+<div class="codehilite"><pre>mvn -Dorg.apache.stanbol.enhancer.engines.opencalais.license<span class="o">=</span>YOUR_API_KEY <span class="o">[</span>install|test<span class="o">]</span>
 </pre></div>
 
 
 <p>The following configuration properties are defined:</p>
 <ul>
+<li><tt>org.apache.stanbol.enhancer.engines.opencalais.license</tt>: The OpenCalais license key that <strong>must</strong> be defined.</li>
+<li><tt>org.apache.stanbol.enhancer.engines.opencalais.url</tt>: The URL of the OpenCalais RESTful service. That needs only be changed when OpenCalais should change its web service address.</li>
 <li>
-<p><tt>org.apache.stanbol.enhancer.engines.opencalais.license</tt></p>
-<p>The OpenCalais license key that <strong>must</strong> be defined.</p>
+<p><tt>org.apache.stanbol.enhancer.engines.opencalais.typeMap</tt>: The value is the name of a file for mapping the NER types from OpenCalais to other types. By default, a mapping to the DBPedia types is provided in order to achieve compatibility with the Stanbol OpenLNLP-NER engine.  If no mapping is desired one might pass an empty mapping file. Types for which no mapping is defined are passed as is to the metadata.  The syntax of the mapping table is similar to that of Java property files. Each entry takes the form</p>
+<p>:::none
+CalaisTypeURI=TargetTypeURI</p>
 </li>
 <li>
-<p><tt>org.apache.stanbol.enhancer.engines.opencalais.url</tt></p>
-<p>The URL of the OpenCalais RESTful service. That needs only be changed
-when OpenCalais should change its web service address.</p>
-</li>
-<li>
-<p><tt>org.apache.stanbol.enhancer.engines.opencalais.typeMap</tt></p>
-<p>The value is the name
-of a file for mapping the NER types from OpenCalais to other types. By
-default, a mapping to the DBPedia types is provided in order to achieve
-compatibility with the Stanbol OpenLNLP-NER engine.  If no mapping is
-desired one might pass an empty mapping file. Types for which no
-mapping is defined are passed as is to the metadata.  The syntax of the
-mapping table is similar to that of Java property files. Each entry
-takes the form</p>
-<p>CalaisTypeURI=TargetTypeURI</p>
-</li>
-<li>
-<p><tt>org.apache.stanbol.enhancer.engines.opencalais.NERonly</tt></p>
-<p>A Boolean property to
-specify whether in addition to the NER enhancements also the OpenCalais
-Linked Data references are included as entity references. By default,
-these are omitted.</p>
+<p><tt>org.apache.stanbol.enhancer.engines.opencalais.NERonly</tt>: A Boolean property to specify whether in addition to the NER enhancements also the OpenCalais Linked Data references are included as entity references. By default, these are omitted.</p>
 </li>
 </ul>
 <h2 id="usage">Usage</h2>
@@ -133,11 +115,13 @@ command line commands like this can be u
 <ul>
 <li>
 <p>stateless interface</p>
-<p>curl -i -X POST -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/engines</p>
+<p>:::bash
+curl -i -X POST -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/engines</p>
 </li>
 <li>
 <p>stateful interface</p>
-<p>curl -i -X PUT -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/contenthub/content/someFileId</p>
+<p>:::bash
+curl -i -X PUT -H "Content-Type:text/plain" -T testfile.txt http://localhost:8080/contenthub/content/someFileId</p>
 </li>
 </ul>
 <p>Alternatively, the Stanbol web interface can be used for submitting documents

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/zemantaengine.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/zemantaengine.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/zemantaengine.html Thu Feb 16 10:06:24 2012
@@ -59,25 +59,22 @@
     <h1 class="title">The Zemanta enhancement engine</h1>
     <p>Enhancement engine that uses the Zemanta API. You need a Zemanta API key to run this engine.</p>
 <h2 id="usage">Usage</h2>
+<p>If the Engine does not show up in the Componets tab of the Apache Felix Web Console you will first need to build and install this Engine to your OSGI environment</p>
+<ol>
+<li>build ("mvn install") and deploy the Clerezza bundle org.apache.clerezza.rdf.jena.parser</li>
+<li>build the jar ("mvn install")</li>
+<li>import the jar into the OSGi runtime (all default</li>
+</ol>
+<p>To use this Enhancement Engine it is important to configure your Zemanta API key.</p>
 <ul>
-<li>
-<p>build ("mvn install") and deploy the Clerezza bundle org.apache.clerezza.rdf.jena.parser</p>
-</li>
-<li>
-<p>build the jar ("mvn install")</p>
-</li>
-<li>
-<p>import the jar into the OSGi runtime</p>
-</li>
-<li>
-<p>In the OSGi web console, set the property "org.apache.stanbol.enhancer.engines.zemanta.key" with your API key
-  (restart the bundle in the OSGi console)</p>
-</li>
+<li>In the OSGi web console, set the property "org.apache.stanbol.enhancer.engines.zemanta.key" with your API key</li>
+<li>restart the component in the OSGi console</li>
 <li>
 <p>Watch the console when you add text using commands such as:</p>
+<p>:::bash
+curl -T myText.txt -H Content-Type:text/plain http://localhost:8080/enhancer</p>
 </li>
 </ul>
-<p>curl -T myText.txt -H Content-Type:text/plain http://localhost:8080/fise/someId</p>
   </div>
   
   <div id="footer">

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/enhancementjobmanager.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/enhancementjobmanager.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/enhancementjobmanager.html Thu Feb 16 10:06:24 2012
@@ -57,13 +57,13 @@
   
   <div id="content">
     <h1 class="title">EnhancementJobManager</h1>
-    <p>The EnhancementJobManager is component responsible for the execution of the <a href="chains/executionplan.html">ExecutionPlan</a> as provided by the <a href="chains/enhancementchain.html">Enhancement Chain</a> on the <a href="contentitem.html">ContentItem</a>.</p>
+    <p>The EnhancementJobManager is component responsible for the execution of the <a href="chains/executionplan.html">ExecutionPlan</a> as provided by the <a href="chains">Enhancement Chain</a> on the <a href="contentitem.html">ContentItem</a>.</p>
 <h2 id="enhancementjobmanager_interface">EnhancementJobManager interface</h2>
 <p>The interface of the EnhancementJobManager is very simple:</p>
-<div class="codehilite"><pre><span class="sr">/** Enhances the content item by using the default Chain */</span>
-<span class="o">+</span> <span class="n">enhanceContent</span><span class="p">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="p">)</span>
-<span class="sr">/** Enhances the content item by using the parsed Chain */</span>
-<span class="o">+</span> <span class="n">enhanceContent</span><span class="p">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="p">,</span> <span class="n">Chain</span> <span class="n">chain</span><span class="p">)</span>
+<div class="codehilite"><pre><span class="cm">/** Enhances the content item by using the default Chain */</span>
+<span class="o">+</span> <span class="n">enhanceContent</span><span class="o">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="o">)</span>
+<span class="cm">/** Enhances the content item by using the parsed Chain */</span>
+<span class="o">+</span> <span class="n">enhanceContent</span><span class="o">(</span><span class="n">ContentItem</span> <span class="n">ci</span><span class="o">,</span> <span class="n">Chain</span> <span class="n">chain</span><span class="o">)</span>
 </pre></div>
 
 
@@ -84,21 +84,21 @@
 <h3 id="engine_execution">Engine Execution</h3>
 <p>The ExecutionPlan provides the necessary information what <a href="engines/enhancementengine.html">EnhancementEngine</a>s can be executed at any given state. The following code shows how to determine executable engines. 
 This code snippet assumes to be called after the execution of an EnhancementEngine has completed. Note that in a multi threaded environment access to the list of executed and running engines need to be synchronized.</p>
-<div class="codehilite"><pre><span class="n">Collection</span><span class="sr">&lt;NonLiteral&gt;</span> <span class="n">executed</span><span class="p">;</span> <span class="sr">//</span><span class="n">already</span> <span class="n">executed</span> <span class="n">Engines</span>
-<span class="n">Collection</span><span class="sr">&lt;NonLiteral&gt;</span> <span class="n">running</span><span class="p">;</span> <span class="sr">//c</span><span class="n">urrently</span> <span class="n">running</span> <span class="n">Engines</span>
+<div class="codehilite"><pre><span class="n">Collection</span><span class="o">&lt;</span><span class="n">NonLiteral</span><span class="o">&gt;</span> <span class="n">executed</span><span class="o">;</span> <span class="c1">//already executed Engines</span>
+<span class="n">Collection</span><span class="o">&lt;</span><span class="n">NonLiteral</span><span class="o">&gt;</span> <span class="n">running</span><span class="o">;</span> <span class="c1">//currently running Engines</span>
 
-<span class="n">Collection</span><span class="sr">&lt;NonLiteral&gt;</span> <span class="k">next</span> <span class="o">=</span> <span class="n">ExecutionPlanUtils</span><span class="o">.</span><span class="n">getExecuteable</span><span class="p">(</span><span class="n">plan</span><span class="p">,</span> <span class="n">executed</span><span class="p">);</span>
-<span class="k">for</span><span class="p">(</span><span class="n">NonLiteral</span> <span class="n">node</span> <span class="p">:</span> <span class="k">next</span><span class="p">){</span>
-    <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">running</span><span class="o">.</span><span class="n">contains</span><span class="p">(</span><span class="n">node</span><span class="p">)){</span>
-        <span class="n">String</span> <span class="n">engineName</span> <span class="o">=</span> <span class="n">EnhancementEngineHelper</span><span class="o">.</span><span class="n">getString</span><span class="p">(</span><span class="n">executionPlan</span><span class="p">,</span><span class="n">node</span><span class="p">,</span> <span class="n">EX_ENGINE</span><span class="p">));</span>
-        <span class="n">EnhancementEngine</span> <span class="n">engine</span> <span class="o">=</span> <span class="n">tracker</span><span class="o">.</span><span class="n">getEngine</span><span class="p">(</span><span class="n">engineName</span><span class="p">);</span>
-        <span class="k">if</span><span class="p">(</span><span class="n">engine</span> <span class="o">!=</span> <span class="n">null</span><span class="p">){</span>
-            <span class="sr">//</span> <span class="n">execute</span> <span class="n">engine</span>
-        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-           <span class="sr">//c</span><span class="n">heck</span> <span class="k">if</span> <span class="n">optional</span> <span class="ow">and</span> <span class="n">throw</span> <span class="n">error</span> <span class="k">if</span> <span class="ow">not</span>
-        <span class="p">}</span>
-    <span class="p">}</span> <span class="sr">//</span> <span class="k">else</span> <span class="n">already</span> <span class="n">running</span> <span class="o">-&gt;</span> <span class="n">ignore</span>
-<span class="p">}</span>
+<span class="n">Collection</span><span class="o">&lt;</span><span class="n">NonLiteral</span><span class="o">&gt;</span> <span class="n">next</span> <span class="o">=</span> <span class="n">ExecutionPlanUtils</span><span class="o">.</span><span class="na">getExecuteable</span><span class="o">(</span><span class="n">plan</span><span class="o">,</span> <span class="n">executed</span><span class="o">);</span>
+<span class="k">for</span><span class="o">(</span><span class="n">NonLiteral</span> <span class="n">node</span> <span class="o">:</span> <span class="n">next</span><span class="o">){</span>
+    <span class="k">if</span><span class="o">(!</span><span class="n">running</span><span class="o">.</span><span class="na">contains</span><span class="o">(</span><span class="n">node</span><span class="o">)){</span>
+        <span class="n">String</span> <span class="n">engineName</span> <span class="o">=</span> <span class="n">EnhancementEngineHelper</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="n">executionPlan</span><span class="o">,</span><span class="n">node</span><span class="o">,</span> <span class="n">EX_ENGINE</span><span class="o">));</span>
+        <span class="n">EnhancementEngine</span> <span class="n">engine</span> <span class="o">=</span> <span class="n">tracker</span><span class="o">.</span><span class="na">getEngine</span><span class="o">(</span><span class="n">engineName</span><span class="o">);</span>
+        <span class="k">if</span><span class="o">(</span><span class="n">engine</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">){</span>
+            <span class="c1">// execute engine</span>
+        <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+           <span class="c1">//check if optional and throw error if not</span>
+        <span class="o">}</span>
+    <span class="o">}</span> <span class="c1">// else already running -&gt; ignore</span>
+<span class="o">}</span>
 </pre></div>
 
 

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/executionmetadata.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/executionmetadata.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/executionmetadata.html Thu Feb 16 10:06:24 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">Execution Metadata</h1>
-    <p>The execution metadata provide detailed information about an ongoing/completed enhancement process. Basically they describe how the <a href="chains/executionplan.html">ExecutionPlan</a> provided by the <a href="chains/enhancementchain.html">Chain</a> was executed by the <a href="enhancementjobmanager.html">EnhancementJobManager</a>. Both the ExecutionMetadata and the ExecutionPlan are provided with the ContentItem as an own content part of the type MGraph with the URI "http://stanbol.apache.org/ontology/enhancer/executionMetadata#ChainExecution". For users of the Stanbol Enhacer the Execution Metadata are of interest to:</p>
+    <p>The execution metadata provide detailed information about an ongoing/completed enhancement process. Basically they describe how the <a href="chains/executionplan.html">ExecutionPlan</a> provided by the <a href="chains">Chain</a> was executed by the <a href="enhancementjobmanager.html">EnhancementJobManager</a>. Both the ExecutionMetadata and the ExecutionPlan are provided with the ContentItem as an own content part of the type MGraph with the URI "http://stanbol.apache.org/ontology/enhancer/executionMetadata#ChainExecution". For users of the Stanbol Enhacer the Execution Metadata are of interest to:</p>
 <ul>
 <li>check progress of asynchronously started Enhancement Processes: Metadata for all planed executions of engines are created as soon as an ContentItem is parsed to the EnhancementJobManager and are updated as soon as the execution of engines start/complete/fail.</li>
 <li>Monitor the performance of different EnhancementEngines: The Execution Metadata provide detailed information about starting/completion time points for engine executions.</li>
@@ -191,7 +191,7 @@
 <h3 id="initialization">Initialization</h3>
 <p>If no ExecutionMetadata are present within a parsed ContentItem a new EnhancementProcess needs to be set up. This includes the following steps:</p>
 <ol>
-<li>Get the <a href="chains/executionplan.html">ExecutionPlan</a> for the parsed enhancement <a href="chains/enhancementchain.html">Chain</a>. If no chain is parsed the default chain need to be acquired by using the <a href="chains/chainmanager.html">ChainManager</a>.</li>
+<li>Get the <a href="chains/executionplan.html">ExecutionPlan</a> for the parsed enhancement <a href="chains">Chain</a>. If no chain is parsed the default chain need to be acquired by using the <a href="chains/chainmanager.html">ChainManager</a>.</li>
 <li>Create the content part for the ExecutionMetadata with the <a href="contentitem.html">ContentItem</a> and add the information of the <a href="chains/executionplan.html">ExecutionPlan</a> to it.</li>
 <li>Create the initial ExecutionMetadata. This includes the 'em:ChainExecution' instance for the 'ep:ExecutionPlan' as well as 'em:EngineExecution' instances for all 'ep:ExecutionNode's defined by the execution plan. All such 'em:Execution' instances MUST BE created with the 'em:ExecutionStatus' 'em:StatusSheduled'.</li>
 </ol>
@@ -263,11 +263,11 @@
 <p>This Section provides some Examples on how to access and retrieve information from the ExecutionMetadata.</p>
 <h3 id="accessing_executionmetadata">Accessing ExecutionMetadata</h3>
 <p>The ExecutionMetadata and the <a href="chains/executionplan.html">ExecutionPlan</a> are stored in a content part with with URI "http://stanbol.apache.org/ontology/enhancer/executionMetadata#ChainExecution" with the <a href="contentitem.html">ContentItem</a>. The following code segment can be used to retrieve the RDF graph with the ExecutionMetadata:</p>
-<div class="codehilite"><pre><span class="n">ContentItem</span> <span class="n">ci</span><span class="p">;</span> <span class="sr">//</span><span class="n">the</span> <span class="n">ContentItem</span>
-<span class="sr">//</span><span class="n">the</span> <span class="n">URI</span> <span class="n">is</span> <span class="n">available</span> <span class="n">as</span> <span class="n">constant</span> <span class="n">of</span> <span class="n">the</span> <span class="n">ExecutionMetadata</span> <span class="n">class</span>
-<span class="n">UriRef</span> <span class="n">contentPartURI</span> <span class="o">=</span> <span class="n">ExecutionMetadata</span><span class="o">.</span><span class="n">CHAIN_EXECUTION</span><span class="p">;</span>
+<div class="codehilite"><pre><span class="n">ContentItem</span> <span class="n">ci</span><span class="o">;</span> <span class="c1">//the ContentItem</span>
+<span class="c1">//the URI is available as constant of the ExecutionMetadata class</span>
+<span class="n">UriRef</span> <span class="n">contentPartURI</span> <span class="o">=</span> <span class="n">ExecutionMetadata</span><span class="o">.</span><span class="na">CHAIN_EXECUTION</span><span class="o">;</span>
 
-<span class="n">MGraph</span> <span class="n">executionMetadata</span> <span class="o">=</span> <span class="n">ci</span><span class="o">.</span><span class="n">getPart</span><span class="p">(</span><span class="n">contentPartURI</span><span class="p">,</span><span class="n">MGraph</span><span class="o">.</span><span class="n">class</span><span class="p">);</span>
+<span class="n">MGraph</span> <span class="n">executionMetadata</span> <span class="o">=</span> <span class="n">ci</span><span class="o">.</span><span class="na">getPart</span><span class="o">(</span><span class="n">contentPartURI</span><span class="o">,</span><span class="n">MGraph</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
 </pre></div>
 
 
@@ -280,34 +280,34 @@
 <li>EnhancementEngineHelper: Utility that contains general purpose RDF utilities.</li>
 </ul>
 <p>This code example first gets the ChainExecution, ExecutionPlan and Chain name for the enhanced content item. In a second step metadata of all executed EnhancementEngines are retrieved.</p>
-<div class="codehilite"><pre><span class="n">ContentItem</span> <span class="n">ci</span><span class="p">;</span> <span class="sr">//</span><span class="n">the</span> <span class="n">ContentItem</span>
-<span class="n">MGraph</span> <span class="n">em</span><span class="p">;</span> <span class="sr">//</span><span class="n">the</span> <span class="n">ExecutionMetadata</span>
+<div class="codehilite"><pre><span class="n">ContentItem</span> <span class="n">ci</span><span class="o">;</span> <span class="c1">//the ContentItem</span>
+<span class="n">MGraph</span> <span class="n">em</span><span class="o">;</span> <span class="c1">//the ExecutionMetadata</span>
 
-<span class="sr">//g</span><span class="n">et</span> <span class="n">the</span> <span class="n">ChainExecution</span><span class="p">,</span> <span class="n">ExecutionPlan</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">name</span> <span class="n">of</span> <span class="n">the</span> <span class="n">Chain</span>
-<span class="n">NonLiteral</span> <span class="n">ce</span> <span class="o">=</span> <span class="n">getChainExecution</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ci</span><span class="o">.</span><span class="n">getUri</span><span class="p">());</span>
-<span class="k">if</span><span class="p">(</span><span class="n">ce</span> <span class="o">!=</span> <span class="n">null</span><span class="p">){</span>
-    <span class="n">NonLiteral</span> <span class="n">ep</span> <span class="o">=</span> <span class="n">getExecutionPlan</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ce</span><span class="p">);</span>
-    <span class="n">String</span> <span class="n">chainName</span> <span class="o">=</span> <span class="n">getString</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ep</span><span class="p">,</span><span class="n">ExecutionPlan</span><span class="o">.</span><span class="n">CHAIN</span><span class="p">);</span>
-<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-    <span class="nb">log</span><span class="o">.</span><span class="nb">warn</span><span class="p">(</span><span class="s">&quot;ExecutionMetadata of not contain information for &quot;</span>
-        <span class="o">+</span> <span class="s">&quot;ContentItem {}!&quot;</span><span class="p">,</span><span class="n">ci</span><span class="o">.</span><span class="n">getUri</span><span class="p">());</span>
-<span class="p">}</span>
-
-<span class="sr">//g</span><span class="n">et</span> <span class="n">the</span> <span class="n">EngineExecutions</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">name</span> <span class="n">of</span> <span class="n">the</span> <span class="n">Engines</span>
-<span class="n">Set</span><span class="sr">&lt;NonLiteral&gt;</span> <span class="n">executions</span> <span class="o">=</span> <span class="n">getExecutions</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ce</span><span class="p">);</span>
-<span class="k">for</span><span class="p">(</span><span class="n">NonLiteral</span> <span class="n">ex</span> <span class="p">:</span> <span class="n">executions</span><span class="p">){</span>
-    <span class="n">NonLiteral</span> <span class="n">en</span> <span class="o">=</span> <span class="n">getExecutionNode</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ex</span><span class="p">);</span>
-    <span class="k">if</span><span class="p">(</span><span class="n">en</span> <span class="o">!=</span> <span class="n">null</span><span class="p">){</span>
-        <span class="n">String</span> <span class="n">engineName</span> <span class="o">=</span> <span class="n">getEngine</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">en</span><span class="p">);</span>
-        <span class="n">boolean</span> <span class="n">optional</span> <span class="o">=</span> <span class="n">isOptional</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">en</span><span class="p">);</span>
-    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="sr">//m</span><span class="n">aybe</span> <span class="n">a</span> <span class="n">sub</span><span class="o">-</span><span class="n">chain</span> <span class="n">execution</span>
-        <span class="sr">//c</span><span class="n">urrently</span> <span class="ow">not</span> <span class="n">supported</span><span class="p">,</span> <span class="n">but</span> <span class="n">might</span>
-        <span class="sr">//</span><span class="n">added</span> <span class="n">in</span> <span class="n">future</span> <span class="n">versions</span>
-    <span class="p">}</span>
-    <span class="n">UriRef</span> <span class="n">status</span> <span class="o">=</span> <span class="n">getStatus</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ex</span><span class="p">);</span>
-    <span class="n">Date</span> <span class="n">started</span> <span class="o">=</span> <span class="n">getStarted</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ex</span><span class="p">);</span>
-    <span class="n">Date</span> <span class="n">completed</span> <span class="o">=</span> <span class="n">getCompleted</span><span class="p">(</span><span class="n">em</span><span class="p">,</span><span class="n">ex</span><span class="p">);</span>
-<span class="p">}</span>
+<span class="c1">//get the ChainExecution, ExecutionPlan and the name of the Chain</span>
+<span class="n">NonLiteral</span> <span class="n">ce</span> <span class="o">=</span> <span class="n">getChainExecution</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ci</span><span class="o">.</span><span class="na">getUri</span><span class="o">());</span>
+<span class="k">if</span><span class="o">(</span><span class="n">ce</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">){</span>
+    <span class="n">NonLiteral</span> <span class="n">ep</span> <span class="o">=</span> <span class="n">getExecutionPlan</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ce</span><span class="o">);</span>
+    <span class="n">String</span> <span class="n">chainName</span> <span class="o">=</span> <span class="n">getString</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ep</span><span class="o">,</span><span class="n">ExecutionPlan</span><span class="o">.</span><span class="na">CHAIN</span><span class="o">);</span>
+<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+    <span class="n">log</span><span class="o">.</span><span class="na">warn</span><span class="o">(</span><span class="s">&quot;ExecutionMetadata of not contain information for &quot;</span>
+        <span class="o">+</span> <span class="s">&quot;ContentItem {}!&quot;</span><span class="o">,</span><span class="n">ci</span><span class="o">.</span><span class="na">getUri</span><span class="o">());</span>
+<span class="o">}</span>
+
+<span class="c1">//get the EngineExecutions and the name of the Engines</span>
+<span class="n">Set</span><span class="o">&lt;</span><span class="n">NonLiteral</span><span class="o">&gt;</span> <span class="n">executions</span> <span class="o">=</span> <span class="n">getExecutions</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ce</span><span class="o">);</span>
+<span class="k">for</span><span class="o">(</span><span class="n">NonLiteral</span> <span class="n">ex</span> <span class="o">:</span> <span class="n">executions</span><span class="o">){</span>
+    <span class="n">NonLiteral</span> <span class="n">en</span> <span class="o">=</span> <span class="n">getExecutionNode</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ex</span><span class="o">);</span>
+    <span class="k">if</span><span class="o">(</span><span class="n">en</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">){</span>
+        <span class="n">String</span> <span class="n">engineName</span> <span class="o">=</span> <span class="n">getEngine</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">en</span><span class="o">);</span>
+        <span class="kt">boolean</span> <span class="n">optional</span> <span class="o">=</span> <span class="n">isOptional</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">en</span><span class="o">);</span>
+    <span class="o">}</span> <span class="k">else</span> <span class="o">{</span> <span class="c1">//maybe a sub-chain execution</span>
+        <span class="c1">//currently not supported, but might</span>
+        <span class="c1">//added in future versions</span>
+    <span class="o">}</span>
+    <span class="n">UriRef</span> <span class="n">status</span> <span class="o">=</span> <span class="n">getStatus</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ex</span><span class="o">);</span>
+    <span class="n">Date</span> <span class="n">started</span> <span class="o">=</span> <span class="n">getStarted</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ex</span><span class="o">);</span>
+    <span class="n">Date</span> <span class="n">completed</span> <span class="o">=</span> <span class="n">getCompleted</span><span class="o">(</span><span class="n">em</span><span class="o">,</span><span class="n">ex</span><span class="o">);</span>
+<span class="o">}</span>
 </pre></div>
   </div>
   

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/index.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/index.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/index.html Thu Feb 16 10:06:24 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">Stanbol Enhancer</h1>
-    <p>The Apache Stanbol Enhancer provides both a RESTful and a Java API that allows caller to Extract features from parsed Content. In more detail the parsed Content is processed by <a href="engines">Enhancement Engines</a> as defined by the called <a href="chains/enhancementchain.html">Enhancement Chain</a>.</p>
+    <p>The Apache Stanbol Enhancer provides both a RESTful and a Java API that allows caller to Extract features from parsed Content. In more detail the parsed Content is processed by <a href="engines">Enhancement Engines</a> as defined by the called <a href="chains">Enhancement Chain</a>.</p>
 <h2 id="using_the_stanbol_enhancer">Using the Stanbol Enhancer</h2>
 <p>The following figure provides an overview about the RESTful as well as the Java API provided by the Stanbol Enhancer</p>
 <p><img alt="Stanbol Enhancer Overview" src="enhanceroverview-s.png" title="Overview about the RESTful Services and Java API provided by the Stanbol Enhancer" /></p>
@@ -125,8 +125,8 @@
 <ul>
 <li><strong>ContentItem</strong>: A <a href="contentitem.html">content item</a> is the unit of content that Stanbol Enhancer can deal with. It gives access to the binary content that was registered, and the graph that represents its metadata (provided by client and/or generated). </li>
 <li><strong>EnhancementEngine</strong>: The <a href="engines">enhancement engine</a> provides the interface to internal or external semantic enhancement engines. Typically content items will be processed by several enhancement engines.</li>
-<li><strong>EnhancementChain</strong>: A <a href="chains/enhancementchain.html">enhancement chain</a> represents a user provided configuration that describes how <a href="contentitem.html">content item</a>s parsed to this chain should be processed by the Stanbol Enhancer. A chain defines list of <a href="engines/">enhancement engine</a> and their order of execution.</li>
-<li><strong>EnhancementJobManager</strong>: The <a href="enhancementjobmanager.html">EnhancementJobManager</a> performs the execution of the enhancement process as described in the <a href="chains/executionplan.html">execution plan</a> provided by the <a href="chains/enhancementchain.html">enhancement chain</a>. The enhancement job manager is also responsible for recording the <a href="executionmetadata.html">execution metadata</a>.</li>
+<li><strong>EnhancementChain</strong>: A <a href="chains">enhancement chain</a> represents a user provided configuration that describes how <a href="contentitem.html">content item</a>s parsed to this chain should be processed by the Stanbol Enhancer. A chain defines list of <a href="engines/">enhancement engine</a> and their order of execution.</li>
+<li><strong>EnhancementJobManager</strong>: The <a href="enhancementjobmanager.html">EnhancementJobManager</a> performs the execution of the enhancement process as described in the <a href="chains/executionplan.html">execution plan</a> provided by the <a href="chains">enhancement chain</a>. The enhancement job manager is also responsible for recording the <a href="executionmetadata.html">execution metadata</a>.</li>
 <li><strong>ChainManager</strong>: The <a href="chains/chainmanager.html">chain manager</a> allows to lookup all configured enhancement chains. It also provides a getter for the default chain.</li>
 <li><strong>EnhancementEngineManager</strong>: The <a href="engines/enhancementenginemanager.html">enhancement engine manager</a> allows to lookup active enhancement engines by their name.</li>
 </ul>

Modified: websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/stanbolenhancementstructure.html
==============================================================================
--- websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/stanbolenhancementstructure.html (original)
+++ websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/stanbolenhancementstructure.html Thu Feb 16 10:06:24 2012
@@ -256,94 +256,121 @@ Currently there are two different use ca
 <p>for details how they are used please see the following Example</p>
 <p>==== Example ====</p>
 <p>As example lets assume that the following RDFa annotated content is parsed to the Stanbol Enhancer</p>
-<p><span typeof="cal:Vevent">
-       <h3 property="dc:title"> Stanbol Teleconference </h3>
-       <span property="cal:summary>
-           <p> Agenda: </p>
-           <ul>
-               <li> ... </li>
-           <ul>
-           <p> Participants: </p>
-           <ul>
-               <li typeof="foaf:Person" property="foaf:name">Rupert Westenthaler</li>
-               <li typeof="foaf:Person" property="foaf:name">Olivier Grisel</li>
-               <li> ... </li>
-           </ul>
-       </span>
-   </span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span class="na">typeof=</span><span class="s">&quot;cal:Vevent&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;h3</span> <span class="na">property=</span><span class="s">&quot;dc:title&quot;</span><span class="nt">&gt;</span> Stanbol Teleconference <span class="nt">&lt;/h3&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">property=</span><span class="s">&quot;cal:summary&gt;</span>
+<span class="s">        &lt;p&gt; Agenda: &lt;/p&gt;</span>
+<span class="s">        &lt;ul&gt;</span>
+<span class="s">            &lt;li&gt; ... &lt;/li&gt;</span>
+<span class="s">        &lt;ul&gt;</span>
+<span class="s">        &lt;p&gt; Participants: &lt;/p&gt;</span>
+<span class="s">        &lt;ul&gt;</span>
+<span class="s">            &lt;li typeof=&quot;</span><span class="na">foaf:Person</span><span class="err">&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Rupert Westenthaler<span class="nt">&lt;/li&gt;</span>
+            <span class="nt">&lt;li</span> <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Olivier Grisel<span class="nt">&lt;/li&gt;</span>
+            <span class="nt">&lt;li&gt;</span> ... <span class="nt">&lt;/li&gt;</span>
+        <span class="nt">&lt;/ul&gt;</span>
+    <span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;/span&gt;</span>
+</pre></div>
+
+
 <p>(1) Suggest the Entities for Rupert and Olivier
 (2) Suggest to link Rupert and Olivier as values for "cal:attendee"</p>
 <p>Both for Rupert Westenthaler and Olivier Grisel an EntityAnnotation would be present - in that case created by the RDFa extractor, but in principle this could also work if the RDFa markup is missing. In such cases the EntityAnnotations could be created by an NLPEnhancementEngine.</p>
-<p><a1> rdf:type sb:EntityAnnotation
-   <a1> dc:title Rupert Westenthaler
-   <a1> sb:entity-type foaf:Person
-   <a1> sb:hasOccurrence <o1>
-   <a1> sb:hasSuggestion <s1></p>
-<p><a2> rdf:type sb:EntityAnnotation
-   <a2> dc:title Olivier Grisel
-   <a1> sb:entity-type foaf:Person
-   <a2> sb:hasOccurrence <o2>
-   <a2> sb:hasSuggestion <s2></p>
+<div class="codehilite"><pre><span class="sr">&lt;a1&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:EntityAnnotation</span>
+<span class="sr">&lt;a1&gt;</span> <span class="n">dc:title</span> <span class="n">Rupert</span> <span class="n">Westenthaler</span>
+<span class="sr">&lt;a1&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">foaf:Person</span>
+<span class="sr">&lt;a1&gt;</span> <span class="n">sb:hasOccurrence</span> <span class="sr">&lt;o1&gt;</span>
+<span class="sr">&lt;a1&gt;</span> <span class="n">sb:hasSuggestion</span> <span class="sr">&lt;s1&gt;</span>
+
+<span class="sr">&lt;a2&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:EntityAnnotation</span>
+<span class="sr">&lt;a2&gt;</span> <span class="n">dc:title</span> <span class="n">Olivier</span> <span class="n">Grisel</span>
+<span class="sr">&lt;a1&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">foaf:Person</span>
+<span class="sr">&lt;a2&gt;</span> <span class="n">sb:hasOccurrence</span> <span class="sr">&lt;o2&gt;</span>
+<span class="sr">&lt;a2&gt;</span> <span class="n">sb:hasSuggestion</span> <span class="sr">&lt;s2&gt;</span>
+</pre></div>
+
+
 <p>Lets ignore the occurrences - because how to create Occurrences for RDFa markup is a whole different story that needs to be specified - and concentrate on the suggestions.</p>
-<p><s1> rdf:type sb:Suggestion
-   <s1> sb:entity <a href="http://www.example.com/person/Rupert_Westenthaler">http://www.example.com/person/Rupert_Westenthaler</a>
-   <s1> sb:entity-type foaf:Person, vCard:vCard, dbpedia-ont:Person
-   <s1> sb:confidence 123,456</p>
-<p><s2> rdf:type sb:Suggestion
-   <s2> sb:entity <a href="http://www.example.com/person/Olivier_Grisel">http://www.example.com/person/Olivier_Grisel</a>
-   <s2> sb:entity-type foaf:Person, vCard:vCard, dbpedia-ont:Person
-   <s2> sb:confidence 234,567</p>
+<div class="codehilite"><pre><span class="sr">&lt;s1&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:Suggestion</span>
+<span class="sr">&lt;s1&gt;</span> <span class="n">sb:entity</span> <span class="sr">&lt;http://www.example.com/person/Rupert_Westenthaler&gt;</span>
+<span class="sr">&lt;s1&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">foaf:Person</span><span class="p">,</span> <span class="n">vCard:vCard</span><span class="p">,</span> <span class="n">dbpedia</span><span class="o">-</span><span class="n">ont:Person</span>
+<span class="sr">&lt;s1&gt;</span> <span class="n">sb:confidence</span> <span class="mi">123</span><span class="p">,</span><span class="mi">456</span>
+
+<span class="sr">&lt;s2&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:Suggestion</span>
+<span class="sr">&lt;s2&gt;</span> <span class="n">sb:entity</span> <span class="sr">&lt;http://www.example.com/person/Olivier_Grisel&gt;</span>
+<span class="sr">&lt;s2&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">foaf:Person</span><span class="p">,</span> <span class="n">vCard:vCard</span><span class="p">,</span> <span class="n">dbpedia</span><span class="o">-</span><span class="n">ont:Person</span>
+<span class="sr">&lt;s2&gt;</span> <span class="n">sb:confidence</span> <span class="mi">234</span><span class="p">,</span><span class="mi">567</span>
+</pre></div>
+
+
 <p>If the suggestion is accepted by the client the RDFa markup could be updated like this</p>
-<p><li about="http://www.example.com/person/Rupert_Westenthaler"
-       typeof="foaf:Person" property="foaf:name">Rupert Westenthaler</li>
-   <li about="http://www.example.com/person/Olivier_Grisel"
-       typeof="foaf:Person" property="foaf:name">Olivier Grisel</li></p>
+<div class="codehilite"><pre><span class="nt">&lt;li</span> <span class="na">about=</span><span class="s">&quot;http://www.example.com/person/Rupert_Westenthaler&quot;</span>
+    <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Rupert Westenthaler<span class="nt">&lt;/li&gt;</span>
+<span class="nt">&lt;li</span> <span class="na">about=</span><span class="s">&quot;http://www.example.com/person/Olivier_Grisel&quot;</span>
+    <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Olivier Grisel<span class="nt">&lt;/li&gt;</span>
+</pre></div>
+
+
 <p>Now lets have a detailed look at the suggestions to add Rupert and Olivier as a "cal:attendee" to the meeting.
 First we need to create an EntityAnnotation for the Meeting that would be created by the RDFa extractor</p>
-<p><a> rdf:type sb:EntityAnnotation
-   <a> dc:title "Stanbol Teleconference"
-   <a> sb:entity-type cal:Vevent
-   <a> sb:hasOccurrence <o>
-   <a> sb:hasSuggestion <s3>
-   <a> sb:hasSuggestion <s4></p>
+<div class="codehilite"><pre><span class="sr">&lt;a&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:EntityAnnotation</span>
+<span class="sr">&lt;a&gt;</span> <span class="n">dc:title</span> <span class="s">&quot;Stanbol Teleconference&quot;</span>
+<span class="sr">&lt;a&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">cal:Vevent</span>
+<span class="sr">&lt;a&gt;</span> <span class="n">sb:hasOccurrence</span> <span class="sr">&lt;o&gt;</span>
+<span class="sr">&lt;a&gt;</span> <span class="n">sb:hasSuggestion</span> <span class="sr">&lt;s3&gt;</span>
+<span class="sr">&lt;a&gt;</span> <span class="n">sb:hasSuggestion</span> <span class="sr">&lt;s4&gt;</span>
+</pre></div>
+
+
 <p>Again lets skip the occurrence and look at the two suggestions. What I want to do here is to suggest to use the Annotations for Rupert (<a1>) and Olivier (<a2>) as values for the property "cal:attendee".</p>
 <p>It is important to suggest here the annotations <a1> and <a2> as values and NOT the suggested entities (e.g. <a href="http://www.example.com/person/Rupert_Westenthaler">http://www.example.com/person/Rupert_Westenthaler</a> in case of <a1>) because the Stanbol Enhancer can not assume that the user will accepts the suggestions <s1> for <a1> and <s2> for <a2>.</p>
 <p>The following suggestions also use the sb:field property to tell the user that the suggestions is about values for the "cal:attendee" property.</p>
-<p><s3> rdf:type sb:Suggestion
-   <s3> sb:field cal:attendee
-   <s3> sb:entity <a1>
-   <s3> sb:entity-type sb:EntityAnnotation
-   <s3> sb:confidence 12,34</p>
-<p><s4> rdf:type sb:Suggestion
-   <s4> sb:field cal:attendee
-   <s4> sb:entity <a2>
-   <s4> sb:entity-type sb:EntityAnnotation
-   <s4> sb:confidence 12,34</p>
+<div class="codehilite"><pre><span class="sr">&lt;s3&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:Suggestion</span>
+<span class="sr">&lt;s3&gt;</span> <span class="n">sb:field</span> <span class="n">cal:attendee</span>
+<span class="sr">&lt;s3&gt;</span> <span class="n">sb:entity</span> <span class="sr">&lt;a1&gt;</span>
+<span class="sr">&lt;s3&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">sb:EntityAnnotation</span>
+<span class="sr">&lt;s3&gt;</span> <span class="n">sb:confidence</span> <span class="mi">12</span><span class="p">,</span><span class="mi">34</span>
+
+<span class="sr">&lt;s4&gt;</span> <span class="n">rdf:type</span> <span class="n">sb:Suggestion</span>
+<span class="sr">&lt;s4&gt;</span> <span class="n">sb:field</span> <span class="n">cal:attendee</span>
+<span class="sr">&lt;s4&gt;</span> <span class="n">sb:entity</span> <span class="sr">&lt;a2&gt;</span>
+<span class="sr">&lt;s4&gt;</span> <span class="n">sb:entity</span><span class="o">-</span><span class="n">type</span> <span class="n">sb:EntityAnnotation</span>
+<span class="sr">&lt;s4&gt;</span> <span class="n">sb:confidence</span> <span class="mi">12</span><span class="p">,</span><span class="mi">34</span>
+</pre></div>
+
+
 <p>NOTE:</p>
 <ul>
 <li>I am not sure if it is a good Idea to use "sb:entity" to link to an annotation created by the Stanbol Enhancer because it might confuse users if the same property is used to link external and internal resources. However introducing an additional property such as "sb:value" seam also not better.</li>
 </ul>
 <p>Here the RDFa markup if the user accepts <s3> and <s4> but not <s1> and <s2></p>
-<p><span typeof="cal:Vevent">
-       [...]
-       <p> Participants: </p>
-       <ul property="cal:attendee">
-           <li typeof="foaf:Person" property="foaf:name">Rupert Westenthaler</li>
-           <li typeof="foaf:Person" property="foaf:name">Olivier Grisel</li>
-           <li> ... </li>
-       </ul>
-   </span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span class="na">typeof=</span><span class="s">&quot;cal:Vevent&quot;</span><span class="nt">&gt;</span>
+    [...]
+    <span class="nt">&lt;p&gt;</span> Participants: <span class="nt">&lt;/p&gt;</span>
+    <span class="nt">&lt;ul</span> <span class="na">property=</span><span class="s">&quot;cal:attendee&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;li</span> <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Rupert Westenthaler<span class="nt">&lt;/li&gt;</span>
+        <span class="nt">&lt;li</span> <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Olivier Grisel<span class="nt">&lt;/li&gt;</span>
+        <span class="nt">&lt;li&gt;</span> ... <span class="nt">&lt;/li&gt;</span>
+    <span class="nt">&lt;/ul&gt;</span>
+<span class="nt">&lt;/span&gt;</span>
+</pre></div>
+
+
 <p>and finally the RDFa markup if the all suggestions are accepted by the client side</p>
-<p><span typeof="cal:Vevent">
-       [...]
-       <p> Participants: </p>
-       <ul property="cal:attendee">
-           <li about="http://www.example.com/person/Rupert_Westenthaler"
-               typeof="foaf:Person" property="foaf:name">Rupert Westenthaler</li>
-           <li about="http://www.example.com/person/Olivier_Grisel"
-               typeof="foaf:Person" property="foaf:name">Olivier Grisel</li>
-       </ul>
-   </span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span class="na">typeof=</span><span class="s">&quot;cal:Vevent&quot;</span><span class="nt">&gt;</span>
+    [...]
+    <span class="nt">&lt;p&gt;</span> Participants: <span class="nt">&lt;/p&gt;</span>
+    <span class="nt">&lt;ul</span> <span class="na">property=</span><span class="s">&quot;cal:attendee&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;li</span> <span class="na">about=</span><span class="s">&quot;http://www.example.com/person/Rupert_Westenthaler&quot;</span>
+            <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Rupert Westenthaler<span class="nt">&lt;/li&gt;</span>
+        <span class="nt">&lt;li</span> <span class="na">about=</span><span class="s">&quot;http://www.example.com/person/Olivier_Grisel&quot;</span>
+            <span class="na">typeof=</span><span class="s">&quot;foaf:Person&quot;</span> <span class="na">property=</span><span class="s">&quot;foaf:name&quot;</span><span class="nt">&gt;</span>Olivier Grisel<span class="nt">&lt;/li&gt;</span>
+    <span class="nt">&lt;/ul&gt;</span>
+<span class="nt">&lt;/span&gt;</span>
+</pre></div>
+
+
 <h3 id="occurrences">Occurrences</h3>
 <p>By default detected Features are considered to be extracted from the whole content. While this assumption is appropriate for things like Categorizations and keywords for a lot of cases it is possible to specify the exact occurrence of features within the content and/or the metadata of the content. In such cases the sb:Annotation will define one or more values for the sb:occurrence value.</p>
 <p>Different Occurrence descriptions are needed to describe the position of a feature within different types of content or within the parsed metadata.</p>