Author: buildbot
Date: Fri Jan 27 08:23:53 2012
New Revision: 803403

Log:
Staging update by buildbot for stanbol

Modified:
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/defaultchain.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/enhancementchain.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/executionplan.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/graphchain.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/listchain.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/weightedchain.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.html
    
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/enhancementjobmanager.html

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/defaultchain.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/defaultchain.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/defaultchain.html
 Fri Jan 27 08:23:53 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">DefaultChain</h1>
-    <p>Implementation that keeps track of all currently active 
EnhancementEngine and registers itself as a Chain service with the 
"stanbol.enhancer.chain.name=default" an service ranking of 
Integer.MIN_VALUE.</p>
+    <p>Implementation that keeps track of all currently active 
EnhancementEngine](../engines/enhancementengine.html) and registers itself as a 
Chain service with the "stanbol.enhancer.chain.name=default" an service ranking 
of Integer.MIN_VALUE.</p>
 <p>This will cause this chain to be returned by the ChainManager.getDefault() 
method if users:</p>
 <ul>
 <li>do not deactivate this Chain (see below)</li>
@@ -71,7 +71,7 @@
 <p>Note that the DefaultChain does not actually implement the Chain interface, 
but only registers an instance of the AllActiveEnginesChain on activation.
 The implementation is part of the 
"org.apache.stanbol.enhancer.chain.allactive" module.</p>
 <h3 id="calculation_of_the_executionplan">Calculation of the ExecutionPlan</h3>
-<p>This chain considers all currently active EnhancementEngines. The 
ExecutionPlan is calculated by using the value for the 
"org.apache.stanbol.enhancer.engine.order" property provided by the 
EnhancementEngine:</p>
+<p>This chain considers all currently active 
EnhancementEngine](../engines/enhancementengine.html)s. The ExecutionPlan is 
calculated by using the value for the 
"org.apache.stanbol.enhancer.engine.order" property provided by the 
EnhancementEngine:</p>
 <ul>
 <li>Engines with a lower order are executed before Engines with a higher 
value</li>
 <li>Engines with the same order may be executed simultaneously if the 
EnhancementJobMananger and the EnhancementEngine do support this feature.</li>

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/enhancementchain.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/enhancementchain.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/enhancementchain.html
 Fri Jan 27 08:23:53 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">Enhancement Chains</h1>
-    <p>An Enhancement Chain defines how Content parsed to the Stanbol Enhancer 
is processed. More concrete it defines what engines and in what order are used 
to process ContentItems. Chains are not responsible for the actual processing 
of ContentItems. They provide the <a 
href="executionplan.html">ExecutionPlan</a> to the <a 
href="../enhancementjobmanager.html">EnhancementJobManger</a> that does the 
actual processing of the ContentItem.</p>
+    <p>An Enhancement Chain defines how Content parsed to the Stanbol Enhancer 
is processed. More concrete it defines what <a 
href="../engines/enhancementengine.html">EnhancementEngine</a>s and in what 
order are used to process ContentItems. Chains are not responsible for the 
actual processing of ContentItems. They provide the <a 
href="executionplan.html">ExecutionPlan</a> to the <a 
href="../enhancementjobmanager.html">EnhancementJobManger</a> that does the 
actual processing of the ContentItem.</p>
 <p>In the RESTful API enhancement chains can be accessed by there name 
under</p>
 <div class="codehilite"><pre><span class="n">http:</span><span 
class="sr">//</span><span class="p">{</span><span class="n">host</span><span 
class="p">}:{</span><span class="n">port</span><span class="p">}</span><span 
class="sr">/{stanbol-path}/</span><span class="n">enhancer</span><span 
class="sr">/chain/</span><span class="p">{</span><span 
class="n">chain</span><span class="o">-</span><span class="n">name</span><span 
class="p">}</span>
 </pre></div>
@@ -109,7 +109,7 @@
 <p>Each Chain has an name assigned. This is typically provided by the chain 
configuration and MUST be set as value to the property 
"stanbol.enhancer.chain.name" of the service registration. The getter for the 
name MUST return the same value. Chain implementation will usually get the name 
by calling</p>
 <p>this.name = (String)ComponentContext.getProperties(Chain.PROPERTY_NAME);</p>
 <p>within the activate method of the Chain. There is also an AbstractChain 
implementation provided by the servicesapi module of the Stanbol Enhancer that 
already implements this functionality.</p>
-<p>The getEngines method returns the name of all EnhancementEngines referenced 
by a Chain. Note that this method returns a Set. This method is intended to 
allow fast access to the referenced engines and does not provide any 
information about the execution order.</p>
+<p>The getEngines method returns the name of all <a 
href="../engines/enhancementengine.html">EnhancementEngine</a>s referenced by a 
Chain. Note that this method returns a Set. This method is intended to allow 
fast access to the referenced engines and does not provide any information 
about the execution order.</p>
 <p>Components that need to know the details about a Chain need to process the 
<a href="executionplan.html">ExecutionPlan</a> returned by the 
getExectuonPlan() method. The <a href="executionplan.html">ExecutionPlan</a> is 
represented as an RDF graph following the ExecutionPlan Ontology. It formally 
describes how a ContentItem must be processed by the EnhancementJobManager. For 
details see the documentation for the <a 
href="executionplan.html">ExecutionPlan</a>.</p>
 <p>For Chain implementation it is important that the returned Graph holding 
the execution plan MUST BE read-only AND final. Meaning that a change in the 
configuration of a Chain MUST NOT change the graph returned by calls to the 
getExecutionPlan method.</p>
 <p>Because the configuration of a Chain might change at any time 
EnhancementJobManager implementation MUST retrieve the execution plan once and 
than use this instance for the whole enhancement process. Because of the above 
requirement that the execution plan is stored in an read-only and final Graph 
this ensures that the plan can not change even for long lasting enhancement 
processes. Therefore any change to the configuration of a chain will not 
influence ongoing enhancement processes.</p>
@@ -132,7 +132,7 @@
 <li>the Chain with the lowest "service.id"</li>
 </ol>
 <p>If no chain is active a ChainException with an according message MUST BE 
thrown.</p>
-<p>All Stanbol launchers are configured with the <a 
href="defaultchain.html">Default Chain</a> enabled. This registers itself with 
the name "default" and the lowest possible service ranking - Integer.MIN_VALUE. 
This default provides a Chain that considered all currently active 
EnhancementEngines and sorts them based on there ordering information (see the 
<a href="weightedchain.html#calculation_of_the_executionplan">Calculation of 
the Execution Plan based on the EnhancementEngine Ordering</a> for details).</p>
+<p>All Stanbol launchers are configured with the <a 
href="defaultchain.html">Default Chain</a> enabled. This registers itself with 
the name "default" and the lowest possible service ranking - Integer.MIN_VALUE. 
This default provides a Chain that considered all currently active <a 
href="../engines/enhancementengine.html">EnhancementEngine</a>s and sorts them 
based on there ordering information (see the <a 
href="weightedchain.html#calculation_of_the_executionplan">Calculation of the 
Execution Plan based on the EnhancementEngine Ordering</a> for details).</p>
 <h3 id="chainmanager_interface">ChainManager interface</h3>
 <p>The <a href="chainmanager.html">ChainManager</a> is the management 
interface for EnhancementChains that can be used by components to lookup chains 
based on their name. It also provides a getter for the default chain. There is 
also OSGI ServiceTracker like implementation that can be used to track only 
chains with specific names and to get even notified on any change of such 
chains.</p>
 <h2 id="chain_implementations">Chain implementations</h2>

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/executionplan.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/executionplan.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/executionplan.html
 Fri Jan 27 08:23:53 2012
@@ -71,20 +71,20 @@
 <li><strong>ep:inExecutionPlan</strong> (domain: ep:ExecutionNode; range: 
ep:ExecutionPlan ;inverseOf: ep:hasExecutionNode): functional property that 
links the execution node with an execution plan</li>
 <li><strong>ep:engine</strong> (domain: ep:ExecutionNode; range: xsd:string): 
The property used to link to the Enhancement Engine by the name of the 
engine.</li>
 <li><strong>ep:dependsOn</strong> (domain: ep:ExecutionNode; range: 
ep:ExecutionNode) Defines that the execution of this node depends on the 
completion of the referenced one.</li>
-<li><strong>ep:optional</strong> (domain: ep:ExecutionNode; range: 
xsd:boolean) Can be used to specify that the execution of this 
EnhancementEngine is optional. If this property is set to TRUE an engine will 
be marked as executed even if it execution was not possible (e.g. because an 
engine with this name was not active) or the execution failed (e.g. because of 
the Exception). </li>
+<li><strong>ep:optional</strong> (domain: ep:ExecutionNode; range: 
xsd:boolean) Can be used to specify that the execution of this <a 
href="../engines/enhancementengine.html">EnhancementEngine</a> is optional. If 
this property is set to TRUE an engine will be marked as executed even if it 
execution was not possible (e.g. because an engine with this name was not 
active) or the execution failed (e.g. because of the Exception). </li>
 </ul>
 </li>
 </ul>
 <p>Note the the data for the ep:ExecutionPlan and the 
ep:hasExecutionNode/ep:inExecutionPlan typically need not to be parsed as 
configuration of a Chain. This information are typically automatically added 
based on the assumption that all ep:ExecutionNode parsed in the configuration 
for a chain are member of the execution plan for such chain. Therefore this 
information is typically added by the Chain itself when the configuration is 
parsed and validated.</p>
 <h4 id="example">Example:</h4>
-<p>This example shows an ExecutionPlan with three nodes for the "langId", 
"ner", "dbpediaLinking" "geonamesLinking" and "zemanta" engine. Note that this 
names refer to actual EnhancementEngine Services registered with the current 
OSGI Environment.</p>
+<p>This example shows an ExecutionPlan with three nodes for the "langId", 
"ner", "dbpediaLinking" "geonamesLinking" and "zemanta" engine. Note that this 
names refer to actual <a 
href="../engines/enhancementengine.html">EnhancementEngine</a> Services 
registered with the current OSGI Environment.</p>
 <p>This example assumes that</p>
 <ul>
-<li>"langId" is the singleton instance of LangIdEnhancementEngine</li>
-<li>"ner" is the default instance of the 
NamedEntityExtractionEnhancementEngine engine</li>
-<li>"dbpediaLinking" is an instance of the NamedEntityTaggingEngine configured 
to use the dbpedia.org ReferencedSite of the Entityhub</li>
-<li>"geonamesLinking" is an instance of the NamedEntityTaggingEngine 
configured to use the geonames.org ReferencedSite</li>
-<li>"zemanta" is the singleton instance of the ZemantaEnhancementEngine</li>
+<li>"langId" is the singleton instance of <a 
href="../engines/langidengine.html">LangIdEnhancementEngine</a></li>
+<li>"ner" is the default instance of the <a 
href="../engines/namedentityextractionengine.html">NamedEntityExtractionEnhancementEngine</a></li>
+<li>"dbpediaLinking" is an instance of the <a 
href="../engines/namedentitytaggingengine.html">NamedEntityTaggingEngine</a> 
configured to use the dbpedia.org ReferencedSite of the Entityhub</li>
+<li>"geonamesLinking" is an instance of the <a 
href="../engines/namedentitytaggingengine.html">NamedEntityTaggingEngine</a> 
configured to use the geonames.org ReferencedSite</li>
+<li>"zemanta" is the singleton instance of the <a 
href="../engines/zemantaengine.html">ZemantaEnhancementEngine</a></li>
 </ul>
 <p>The RDF graph of such a chain would look:</p>
 <div class="codehilite"><pre><span class="err">urn:execPlan</span>

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/graphchain.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/graphchain.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/graphchain.html
 Fri Jan 27 08:23:53 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">GraphChain</h1>
-    <p>The GraphChain allows to directly configure the ExecutionPlan returned 
by the Chain.getExecutionPlan() method. This means on the one hand that it 
allows to configure any kind of execution process on the other hand its usage 
also requires a lot of knowledge about the EnhancementEngines and the 
ExecutionPlan model form the user.</p>
+    <p>The GraphChain allows to directly configure the ExecutionPlan returned 
by the Chain.getExecutionPlan() method. This means on the one hand that it 
allows to configure any kind of execution process on the other hand its usage 
also requires a lot of knowledge about the <a 
href="../engines/enhancementengine.html">EnhancementEngine</a>s and the 
ExecutionPlan model form the user.</p>
 <p>Typically it is a good practice to start with other - more simple to use - 
Chain implementation such as the <a href="weightedchain.html">Weighted 
Chain</a> and only afterwards convert this configuration to a GraphChain to 
configure optimizations to the enhancement process such as to allow more 
Engines to be executed in parallel.</p>
 <h3 id="configuration">Configuration</h3>
 <p>The GraphChain supports two variants to configure the ExecutionPlan</p>

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/listchain.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/listchain.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/listchain.html
 Fri Jan 27 08:23:53 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">ListChain</h1>
-    <p>The List Chain creates the ExecutionPlan based on the exact order of 
the configured EnhancementEngines. This provides users with a simple 
possibility configure the exact oder in that the referenced EnhancementEngines 
are called during the enhancement process of a content item. However the 
ListChain can not support parallel execution of engines a considerable 
disadvantage in contrast to the <a href="graphchain.html">GraphChain</a>.</p>
+    <p>The List Chain creates the ExecutionPlan based on the exact order of 
the configured <a 
href="../engines/enhancementengine.html">EnhancementEngine</a>s. This provides 
users with a simple possibility configure the exact oder in that the referenced 
EnhancementEngines are called during the enhancement process of a content item. 
However the ListChain can not support parallel execution of engines a 
considerable disadvantage in contrast to the <a 
href="graphchain.html">GraphChain</a>.</p>
 <p>A typical usage scenario would be that users start of with configuring a 
ListChain and later optimize the execution by migrating functional 
configuration to <a href="graphchain.html">GraphChain</a>s.</p>
 <h3 id="configuration">Configuration</h3>
 <p>The property "stanbol.enhancer.chain.list.enginelist" is used to provide 
the list of engine names. This configuration MUST BE parsed as an Array as 
string because the ordering if the configured entries is central for the 
configuration.</p>
@@ -79,7 +79,7 @@
 
 
 <h3 id="calculation_of_the_executionplan">Calculation of the ExecutionPlan</h3>
-<p>The ExecutionPlan is created based on the exact order of the 
EnhancementEngines provided by the "stanbol.enhancer.chain.list.enginelist" 
property. The configuration MUST contain at least a single engine. In addition 
no engine MUST be mentioned twice.</p>
+<p>The ExecutionPlan is created based on the exact order of the 
EnhancementEngine](../engines/enhancementengine.html)s provided by the 
"stanbol.enhancer.chain.list.enginelist" property. The configuration MUST 
contain at least a single engine. In addition no engine MUST be mentioned 
twice.</p>
   </div>
   
   <div id="footer">

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/weightedchain.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/weightedchain.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/chains/weightedchain.html
 Fri Jan 27 08:23:53 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">WeightedChain</h1>
-    <p>The Wighted Chain takes a list of Enhancement Engine names as input and 
uses the "org.apache.stanbol.enhancer.engine.order" metadata of the configured 
Engines to calculate the ExecutionPlan.</p>
+    <p>The Wighted Chain takes a list of 
EnhancementEngine](../engines/enhancementengine.html) names as input and uses 
the "org.apache.stanbol.enhancer.engine.order" metadata of the configured 
Engines to calculate the ExecutionPlan.</p>
 <p>This Chain is designed for easy configuration - just a list of the engine 
names - but has limited possibilities to control the execution order.</p>
 <h3 id="configuration">Configuration</h3>
 <p>The property "stanbol.enhancer.chain.weighted.chain" is used to provide the 
list of engine names. Both Arrays and Collections are supported as values.</p>
@@ -71,7 +71,7 @@
 <p>both variants result that the execution of the engine with the name <name> 
is optional.</p>
 <p><img alt="Configuration Dialog for the WeightedCahin" 
src="enhancer-weightedchain-config.png" title="Sceenshot of the Configuration 
Dialog for a WeightedChain with two required and one optional Engine" /></p>
 <h3 id="calculation_of_the_executionplan">Calculation of the ExecutionPlan</h3>
-<p>It is important to note that the ordering of the list has no influence on 
the ExecutionPlan because the order of execution of the configured 
EnhancementEngines is calculated only by using the value for the 
"org.apache.stanbol.enhancer.engine.order" property provided by the 
EnhancementEngine:</p>
+<p>It is important to note that the ordering of the list has no influence on 
the ExecutionPlan because the order of execution of the configured 
EnhancementEngine](../engines/enhancementengine.html)s is calculated only by 
using the value for the "org.apache.stanbol.enhancer.engine.order" property 
provided by the EnhancementEngine:</p>
 <ul>
 <li>Engines with a lower order are executed before Engines with a higher 
value</li>
 <li>Engines with the same order may be executed simultaneously if the 
EnhancementJobMananger and the EnhancementEngine do support this feature.</li>

Modified: 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.html
==============================================================================
--- 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.html
 (original)
+++ 
websites/staging/stanbol/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.html
 Fri Jan 27 08:23:53 2012
@@ -57,7 +57,7 @@
   
   <div id="content">
     <h1 class="title">EnhancementEngine</h1>
-    <p>EnhancementEngines are the components that are responsible to enhance 
ContentItmes. They are called by the <a 
href="enhancementjobmanager.html">EnhancementJobManager</a>. EnhancementEngines 
do have full access to the parsed ContentItems. They are expected to modify the 
state of the content item.</p>
+    <p>EnhancementEngines are the components that are responsible to enhance 
ContentItmes. They are called by the <a 
href="../enhancementjobmanager.html">EnhancementJobManager</a>. 
EnhancementEngines do have full access to the parsed ContentItems. They are 
expected to modify the state of the content item.</p>
 <p>The RESTful interface of an EnhancementEngines can be accessed by</p>
 <div class="codehilite"><pre><span class="n">http:</span><span 
class="sr">//</span><span class="p">{</span><span class="n">host</span><span 
class="p">}:{</span><span class="n">port</span><span class="p">}</span><span 
class="sr">/{stanbol-root}/</span><span class="n">enhancer</span><span 
class="sr">/engine/</span><span class="p">{</span><span 
class="n">engine</span><span class="o">-</span><span class="n">name</span><span 
class="p">}</span>
 </pre></div>
@@ -128,7 +128,7 @@
 </ul>
 <p>The Engine Ordering information as described here are used by the <a 
href="../chains/defaultchain.html">DefaultChain</a> and the <a 
href="../chains/weightedchain.html">WeightedChain</a> to calculate the <a 
href="../chains/executionplan.html">ExecutionPlan</a>.</p>
 <p>Basically this features allows the implementor of an EnhancementEngine to 
define the correct position of his engine within an typical enhancement chain 
and therefore ensure that users that add this engine to a Stanbol Enhancer 
installation to immediately use this engine with the <a 
href="../chains/defaultchain.html">DefaultChain</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">ListChain</a> and the <a 
href="../chains/grpahchain.html">GraphChain</a> do also allow to directly 
define the oder of execution. For this chains the ordering information provided 
by EnhancementEngines are ignored.</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">ListChain</a> and the <a 
href="../chains/graphchain.html">GraphChain</a> do also allow to directly 
define the oder of execution. For this chains the ordering information provided 
by EnhancementEngines are ignored.</p>
 <h2 id="enhancementengine_management">EnhancementEngine management</h2>
 <p>This section describes how EnhancementEngines are managed by the Stanbol 
Enhancer and how they can be selected/accessed by the <a 
href="../enhancementjobmanager.html">EnhancementJobManager</a> execution a <a 
href="../chains/enhancementchain.html">Chain</a>.</p>
 <p>EnhancementEngines are registered as OSGI services and managed by using the 
following service properties:</p>

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
 Fri Jan 27 08:23:53 2012
@@ -67,7 +67,7 @@
 </pre></div>
 
 
-<p>Note that the parsed ContentItem will be changed during the enhancement 
process. EnhancementEngines will add extracted knowledge to the metadata of the 
content item. Also additional content parts may be added to the content 
item.</p>
+<p>Note that the parsed ContentItem will be changed during the enhancement 
process. <a href="engines/enhancementengine.html">EnhancementEngine</a>s will 
add extracted knowledge to the metadata of the content item. Also additional 
content parts may be added to the content item.</p>
 <h2 id="enhancement_process">Enhancement Process</h2>
 <p>While the <a href="chains/executionplan.html">ExecutionPlan</a> defines 
what EnhancementEgnies are used and how they depend on each the 
EnhancementJobManager is responsible for the actual execution of the 
enhancement process based on this plan. This section provides detailed 
information about requirements and expectations that MUST BE considered.</p>
 <p>The EnhancementJobManager is also responsible to create and update the <a 
href="executionmetadata.html">ExecutionMetadata</a> in the metadata of the 
processed ContentItem.</p>
@@ -81,7 +81,7 @@
 </ol>
 <p>See the documentation of the <a 
href="executionmetadata.html">ExecutionMetadata</a> for more information.</p>
 <h3 id="engine_execution">Engine Execution</h3>
-<p>The ExecutionPlan provides the necessary information what engines can be 
executed at any given state. The following code shows how to determine 
executable engines. 
+<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>
@@ -101,7 +101,7 @@ This code snippet assumes to be called a
 </pre></div>
 
 
-<p>Before executing an EnhancementEngine the EnhancementJobManager needs to 
check if and how the engine can enhance a content item. This is indicated by 
the integer returned by the "canEnhance(ContentItem ci)" method:</p>
+<p>Before executing an <a 
href="engines/enhancementengine.html">EnhancementEngine</a> the 
EnhancementJobManager needs to check if and how the engine can enhance a 
content item. This is indicated by the integer returned by the 
"canEnhance(ContentItem ci)" method:</p>
 <ul>
 <li><strong>CANNOT_ENHANCE</strong>: Indicates that this engines can not 
process the parsed content item. In this case the EnhancementJobManager needs 
to skip this engine and mark the EngineExectuion as skipt with a status message 
that the EnhancementEngine was unable to process the content item. If this 
engine is marked as optional the enhancement process can continue if not, than 
the execution MUST be marked as failed and an according Exception needs to be 
thrown.</li>
 <li><strong>ENHANCE_SYNCHRONOUS</strong>: Indicates that the engines needs 
exclusive access to the parsed content item. The EnhancementJobManager needs to 
ensure that in some way. Typically by calling the 
"computeEnhancement(ContentItem ci)" method within an write lock.</li>
@@ -110,7 +110,7 @@ This code snippet assumes to be called a
 <p>If the execution of an EnhancementEngine completes the JobManager needs to 
set the state of the execution to completed and update the other metadata 
accordingly.</p>
 <p>If a call to "computeEnhancement(ContentItem ci)" results in an Exception 
the EnhancementJobManager must mark the execution of the engine as failed with 
a decryption of the occurred exception. If the the execution of the affected 
engine was optional the enhancement process is continued. Otherwise the 
enhancement process needs to be stopped and the Error needs to rethrown by the 
"enhanceContent(..)" method.</p>
 <h3 id="multi_threaded_enhancement_processes">Multi Threaded enhancement 
processes</h3>
-<p>In case the EnhancementJobManager supports to simultaneously call 
EnhancementEngines for the same content item in multiple threads it is 
important to correctly use the ReadWriteLock as provided by the 
ContentItem.getLock() method.</p>
+<p>In case the EnhancementJobManager supports to simultaneously call <a 
href="engines/enhancementengine.html">EnhancementEngine</a>s for the same 
content item in multiple threads it is important to correctly use the 
ReadWriteLock as provided by the ContentItem.getLock() method.</p>
 <p>There are manny good examples on how to correctly use 
"java.util.concurrent.ReadWriteLock" available on the web.</p>
 <h3 id="finalizing_the_enhancementprocess">Finalizing the 
EnhancementProcess</h3>
 <p>After the execution is completed (successfully or failed) the 
EnhancementJobManager need to ensure that the 'em:status' and the 
'em:completed' of the 'em:ChainExecution' instance are set. If the execution 
failed also the 'em:statusMessage' should be available and contain a message 
that describes the problem.</p>


Reply via email to