You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2014/01/20 09:38:05 UTC

svn commit: r1559644 - in /stanbol/trunk/enhancer/generic: nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/ nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/ nlp/src/main/java/org/apache/stanbol/enhancer/...

Author: rwesten
Date: Mon Jan 20 08:38:04 2014
New Revision: 1559644

URL: http://svn.apache.org/r1559644
Log:
STANBOL-1132: Applied patch provided by Cristian Petroaca on the 11.Januray to this issue

Modified:
    stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java
    stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java
    stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java
    stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java
    stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java
    stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java
    stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java
    stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java
    stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
    stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java

Modified: stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java (original)
+++ stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java Mon Jan 20 08:38:04 2014
@@ -15,7 +15,6 @@
  * limitations under the License.
  */package org.apache.stanbol.enhancer.nlp.json.valuetype.impl;
 
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -53,24 +52,21 @@ public class CorefFeatureSupport impleme
 		
 		jCoref.put(IS_REPRESENTATIVE_TAG, coref.isRepresentative());
 		
-        Set<Span> mentions = coref.getMentions();
+        Set<Span> mentions = coref.getMentions(); 
+        ArrayNode jMentions = mapper.createArrayNode();
         
-        if(!mentions.isEmpty()) {
-            ArrayNode jMentions = mapper.createArrayNode();
+        for(Span mention : mentions) {
+            ObjectNode jMention = mapper.createObjectNode();
             
-            for(Span mention : mentions) {
-                ObjectNode jMention = mapper.createObjectNode();
-                
-                jMention.put(MENTION_TYPE_TAG, mention.getType().toString());
-                jMention.put(MENTION_START_TAG, mention.getStart());
-                jMention.put(MENTION_END_TAG, mention.getEnd());
-                
-                jMentions.add(jMention);
-            }
+            jMention.put(MENTION_TYPE_TAG, mention.getType().toString());
+            jMention.put(MENTION_START_TAG, mention.getStart());
+            jMention.put(MENTION_END_TAG, mention.getEnd());
             
-            jCoref.put(MENTIONS_TAG, jMentions);
+            jMentions.add(jMention);
         }
         
+        jCoref.put(MENTIONS_TAG, jMentions);
+        
 		return jCoref;
 	}
 
@@ -121,7 +117,7 @@ public class CorefFeatureSupport impleme
                 }
             }
 		}    
-                
-		return new CorefFeature(jIsRepresentative.asBoolean(), Collections.unmodifiableSet(mentions));
+        
+		return new CorefFeature(jIsRepresentative.asBoolean(), mentions);
 	}	
 }
\ No newline at end of file

Modified: stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java (original)
+++ stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java Mon Jan 20 08:38:04 2014
@@ -41,7 +41,7 @@ public class DependencyRelationSupport i
 
     private static final String RELATION_TYPE_TAG = "tag";
     private static final String RELATION_STANBOL_TYPE_TAG = "relationType";
-    private static final String RELATION_IS_DEPENDEE_TAG = "isDependent";
+    private static final String RELATION_IS_DEPENDENT_TAG = "isDependent";
     private static final String RELATION_PARTNER_TYPE_TAG = "partnerType";
     private static final String RELATION_PARTNER_START_TAG = "partnerStart";
     private static final String RELATION_PARTNER_END_TAG = "partnerEnd";
@@ -54,7 +54,7 @@ public class DependencyRelationSupport i
         GrammaticalRelationTag gramRelTag = relation.getGrammaticalRelationTag();
         jDependencyRelation.put(RELATION_TYPE_TAG, gramRelTag.getTag());
         jDependencyRelation.put(RELATION_STANBOL_TYPE_TAG, gramRelTag.getGrammaticalRelation().ordinal());
-        jDependencyRelation.put(RELATION_IS_DEPENDEE_TAG, (relation.isDependent()));
+        jDependencyRelation.put(RELATION_IS_DEPENDENT_TAG, (relation.isDependent()));
 
         Span partner = relation.getPartner();
         if (partner != null) {
@@ -90,7 +90,7 @@ public class DependencyRelationSupport i
         GrammaticalRelationTag gramRelTag = new GrammaticalRelationTag(tag.getTextValue(),
                 grammaticalRelation);
 
-        JsonNode isDependent = jDependencyRelation.path(RELATION_IS_DEPENDEE_TAG);
+        JsonNode isDependent = jDependencyRelation.path(RELATION_IS_DEPENDENT_TAG);
 
         if (!isDependent.isBoolean()) {
             throw new IllegalStateException("Field 'isDependent' must have a true/false format");

Modified: stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java (original)
+++ stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java Mon Jan 20 08:38:04 2014
@@ -81,11 +81,11 @@ public class CorefFeatureSupportTest ext
         Set<Span> obamaMentions = new HashSet<Span>();
         obamaMentions.add(he);
         obama.addAnnotation(NlpAnnotations.COREF_ANNOTATION, 
-        	Value.value(new CorefFeature(true, Collections.unmodifiableSet(obamaMentions))));
+        	Value.value(new CorefFeature(true, obamaMentions)));
         
         Set<Span> heMentions = new HashSet<Span>();
         heMentions.add(obama);
         he.addAnnotation(NlpAnnotations.COREF_ANNOTATION, 
-        	Value.value(new CorefFeature(false, Collections.unmodifiableSet(heMentions))));
+        	Value.value(new CorefFeature(false, heMentions)));
 	}
 }

Modified: stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java (original)
+++ stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java Mon Jan 20 08:38:04 2014
@@ -2,7 +2,6 @@ package org.apache.stanbol.enhancer.nlp.
 
 import java.io.IOException;
 
-import org.apache.commons.io.FilenameUtils;
 import org.apache.stanbol.enhancer.nlp.NlpAnnotations;
 import org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation;
 import org.apache.stanbol.enhancer.nlp.dependency.GrammaticalRelation;
@@ -25,7 +24,7 @@ public class DependencyRelationSupportTe
 	    + "    \"end\" : 5," + LINE_SEPARATOR
 	    + "    \"stanbol.enhancer.nlp.dependency\" : {" + LINE_SEPARATOR
 	    + "      \"tag\" : \"nsubj\"," + LINE_SEPARATOR
-	    + "      \"relationType\" : 32," + LINE_SEPARATOR
+	    + "      \"relationType\" : 33," + LINE_SEPARATOR
 	    + "      \"isDependent\" : true," + LINE_SEPARATOR
 	    + "      \"partnerType\" : \"Token\"," + LINE_SEPARATOR
 	    + "      \"partnerStart\" : 6," + LINE_SEPARATOR
@@ -40,7 +39,7 @@ public class DependencyRelationSupportTe
 	    + "    \"end\" : 13," + LINE_SEPARATOR
 	    + "    \"stanbol.enhancer.nlp.dependency\" : [ {" + LINE_SEPARATOR
 	    + "      \"tag\" : \"root\"," + LINE_SEPARATOR
-	    + "      \"relationType\" : 56," + LINE_SEPARATOR
+	    + "      \"relationType\" : 57," + LINE_SEPARATOR
 	    + "      \"isDependent\" : true," + LINE_SEPARATOR
 	    + "      \"partnerType\" : \"ROOT\"," + LINE_SEPARATOR
 	    + "      \"partnerStart\" : 0," + LINE_SEPARATOR
@@ -48,7 +47,7 @@ public class DependencyRelationSupportTe
 	    + "      \"class\" : \"org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation\"" + LINE_SEPARATOR
 	    + "    }, {" + LINE_SEPARATOR
 	    + "      \"tag\" : \"nsubj\"," + LINE_SEPARATOR
-	    + "      \"relationType\" : 32," + LINE_SEPARATOR
+	    + "      \"relationType\" : 33," + LINE_SEPARATOR
 	    + "      \"isDependent\" : false," + LINE_SEPARATOR
 	    + "      \"partnerType\" : \"Token\"," + LINE_SEPARATOR
 	    + "      \"partnerStart\" : 0," + LINE_SEPARATOR

Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java (original)
+++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java Mon Jan 20 08:38:04 2014
@@ -42,19 +42,13 @@ public class CorefFeature {
 	 */
 	private Set<Span> mentions;
 
-	public CorefFeature() {
-		this(false, Collections.unmodifiableSet(Collections
-				.<Span> emptySet()));
-	}
-
-	public CorefFeature(boolean isRepresentative) {
-		this(isRepresentative, Collections.unmodifiableSet(Collections
-				.<Span> emptySet()));
-	}
-
 	public CorefFeature(boolean isRepresentative, Set<Span> mentions) {
+		if (mentions == null || mentions.isEmpty()) {
+			throw new IllegalArgumentException("The mentions set cannot be null or empty");
+		}
+		
 		this.isRepresentative = isRepresentative;
-		this.mentions = mentions;
+		this.mentions = Collections.unmodifiableSet(mentions);
 	}
 
 	/**
@@ -78,11 +72,25 @@ public class CorefFeature {
 	}
 
 	public int hashCode() {
-		return (this.mentions != null) ? this.mentions.hashCode() : 0;
+		final int prime = 31;
+        int result = 1;
+        result = prime * result + (isRepresentative ? 1231 : 1237);
+        result = prime * result + mentions.hashCode();
+		
+        return result;
 	}
 
 	public boolean equals(Object obj) {
-		return (obj instanceof CorefFeature)
-				&& (this.mentions.equals(((CorefFeature) obj).getMentions()));
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+            return false;
+		
+        CorefFeature other = (CorefFeature) obj;
+        
+		return (isRepresentative == other.isRepresentative)
+			&& (mentions.equals(other.mentions));
 	}
 }

Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java (original)
+++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java Mon Jan 20 08:38:04 2014
@@ -45,6 +45,10 @@ public class DependencyRelation {
 
 	public DependencyRelation(GrammaticalRelationTag grammaticalRelationTag, boolean isDependent,
 			Span partner) {
+		if (grammaticalRelationTag == null) {
+			throw new IllegalArgumentException("The grammatical relation tag cannot be null");
+		}
+		
 		this.grammaticalRelationTag = grammaticalRelationTag;
 		this.isDependent = isDependent;
 		this.partner = partner;
@@ -61,17 +65,12 @@ public class DependencyRelation {
 	public Span getPartner() {
 		return this.partner;
 	}
-
-	public void setPartner(Span partner) {
-        this.partner = partner;
-    }
 	
     @Override
     public int hashCode() {
         final int prime = 31;
         int result = 1;
-        result = prime * result + ((grammaticalRelationTag == null) ? 0
-                        : grammaticalRelationTag.hashCode());
+        result = prime * result + grammaticalRelationTag.hashCode();
         result = prime * result + (isDependent ? 1231 : 1237);
         result = prime * result + ((partner == null) ? 0 : partner.hashCode());
         return result;
@@ -85,19 +84,16 @@ public class DependencyRelation {
             return false;
         if (getClass() != obj.getClass())
             return false;
+        
         DependencyRelation other = (DependencyRelation) obj;
-        if (grammaticalRelationTag == null) {
-            if (other.grammaticalRelationTag != null)
-                return false;
-        } else if (!grammaticalRelationTag.equals(other.grammaticalRelationTag))
-            return false;
-        if (isDependent != other.isDependent)
-            return false;
+        
         if (partner == null) {
             if (other.partner != null)
                 return false;
         } else if (!partner.equals(other.partner))
             return false;
-        return true;
+        
+        return (grammaticalRelationTag.equals(other.grammaticalRelationTag))
+        	&& (isDependent == other.isDependent);
     }
 }

Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java (original)
+++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java Mon Jan 20 08:38:04 2014
@@ -214,6 +214,17 @@ public enum GrammaticalRelation {
 	 * raise)
 	 */
 	DirectObject(Object),
+	
+	/**
+	 * The "discourse element" grammatical relation. This is used for interjections and
+	 * other discourse particles and elements (which are not clearly linked to the structure
+	 * of the sentence, except in an expressive way). We generally follow the
+	 * guidelines of what the Penn Treebanks count as an INTJ.  They
+	 * define this to include: interjections (oh, uh-huh, Welcome), fillers (um, ah),
+	 * and discourse markers (well, like, actually, but not: you know).
+	 * We also use it for emoticons.
+	 */
+	Discourse(Modifier),
 
 	/**
 	 * This relation captures an existential &quot;there&quot;. The main verb of

Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java (original)
+++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java Mon Jan 20 08:38:04 2014
@@ -39,6 +39,10 @@ public class GrammaticalRelationTag exte
 			GrammaticalRelation grammaticalRelation) {
 		this(tag);
 
+		if (grammaticalRelation == null) {
+			throw new IllegalArgumentException("The grammatical relation cannot be null");
+		}
+		
 		this.grammaticalRelation = grammaticalRelation;
 	}
 
@@ -48,7 +52,11 @@ public class GrammaticalRelationTag exte
 
 	@Override
 	public int hashCode() {
-		return super.hashCode() + grammaticalRelation.hashCode();
+		final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + grammaticalRelation.hashCode();
+        
+        return result;
 	}
 
 	@Override

Modified: stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java (original)
+++ stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java Mon Jan 20 08:38:04 2014
@@ -39,6 +39,8 @@ public interface ContentItem {
      * The binary content stream. Shortcut for
      * <code>{@link #getBlob()}{@link Blob#getStream() .getStream()}</code>
      * @return the InputStream
+     * @deprecated use <code>{@link #getBlob()}{@link Blob#getStream() .getStream()}</code>
+     * instead
      */
     InputStream getStream();
 
@@ -46,6 +48,8 @@ public interface ContentItem {
      * The MimeType. Shortcut for
      * <code>{@link #getBlob()}{@link Blob#getMimeType() .getMimeType()}</code>.
      * @return the MimeType as string
+     * @deprecated use <code>{@link #getBlob()}{@link Blob#getMimeType() .getMimeType()}</code>
+     * instead
      */
     String getMimeType();
 

Modified: stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java?rev=1559644&r1=1559643&r2=1559644&view=diff
==============================================================================
--- stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java (original)
+++ stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java Mon Jan 20 08:38:04 2014
@@ -16,6 +16,8 @@
 */
 package org.apache.stanbol.enhancer.servicesapi;
 
+import java.util.Map;
+
 /**
  * Interface to internal or external semantic enhancement engines. There will
  * usually be several of those, that the EnhancementJobManager uses to enhance
@@ -36,13 +38,13 @@ public interface EnhancementEngine {
     /**
      * Return value for {@link #canEnhance}, meaning this engine can enhance
      * supplied {@link ContentItem}, and suggests enhancing it synchronously
-     * instead of queuing a request for enhancement.
+     * instead of queueing a request for enhancement.
      */
     int ENHANCE_SYNCHRONOUS = 1;
 
     /**
      * Return value for {@link #canEnhance}, meaning this engine can enhance
-     * supplied {@link ContentItem}, and suggests queuing a request for
+     * supplied {@link ContentItem}, and suggests queueing a request for
      * enhancement instead of enhancing it synchronously.
      */
     int ENHANCE_ASYNC = 2;
@@ -52,23 +54,46 @@ public interface EnhancementEngine {
      * suggests enhancing it synchronously or asynchronously. The
      * {@link EnhancementJobManager} can force sync/async mode if desired, it is
      * just a suggestion from the engine.
+     * <p>
+     * This method is expected to execute fast and MUST NOT change the parsed
+     * {@link ContentItem}. It is called with a read lock on the ContentItem.
+     * <p>
+     * <b>NOTE:</b> Returning {@link #CANNOT_ENHANCE} will cause the 
+     * {@link EnhancementJobManager} to skip the execution of this Engine. If
+     * an {@link EngineException} is thrown the executed {@link Chain} will
+     * fail (unless this engine is marked as OPTIONAL).
+     *
+     * @param ci The ContentItem to enhance
+     * @param context The enhancement context: Request specific parameters
      *
      * @throws EngineException if the introspecting process of the content item
      *             fails
      */
     int canEnhance(ContentItem ci) throws EngineException;
+    //int canEnhance(ContentItem ci, Map<String,Object> context) throws EngineException;
 
     /**
      * Compute enhancements for supplied ContentItem. The results of the process
-     * are expected to be stored in the metadata of the content item.
+     * are expected to be stored in the {@link ContentItem#getMetadata() metadata 
+     * of the content item} or by adding/modifying any contentPart.<p>
+     * Engines that do support {@link #ENHANCE_ASYNC} are required to use the
+     * {@link ContentItem#getLock()} to acquire read/write locks when reading/
+     * modifying information of the {@link ContentItem}. For Engines that that
+     * do use {@link #ENHANCE_SYNCHRONOUS} the {@link EnhancementJobManager}
+     * is responsible to acquire a write lock before calling this method. 
+     * <p>
+     * <b>NOTE</b>: If an EnhancementEngine can not extract any information it
+     * is expected to return. In case an error is encountered during processing
+     * an {@link EngineException} need to be thrown.
      *
-     * The client (usually an {@link EnhancementJobManager}) should take care of
-     * persistent storage of the enhanced {@link ContentItem}.
+     * @param ci The ContentItem to enhance
+     * @param context The enhancement context: Request specific parameters
      *
      * @throws EngineException if the underlying process failed to work as
      *             expected
      */
     void computeEnhancements(ContentItem ci) throws EngineException;
+    //void computeEnhancements(ContentItem ci, Map<String,Object> context) throws EngineException;
     /**
      * Getter for the name of this EnhancementEngine instance as configured
      * by {@link #PROPERTY_NAME}



Re: svn commit: r1559644 - in /stanbol/trunk/enhancer/generic: nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/ nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/ nlp/src/main/java/org/apache/stanbol/enhancer/...

Posted by Rupert Westenthaler <ru...@gmail.com>.
FYI: With revision 1559644 I unintentionally committed changes to the
following two files.

    stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
    stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java

Those where originating from some test regarding EnhancementProperties
(a feature paned for 1.0.0 at a later point in time). I reverted most
of those changes with 1559645 [2]. The only thing I kept are
improvements to the JavaDoc.

best
Rupert

[1] http://svn.apache.org/r1559644
[2] http://svn.apache.org/r1559645

On Mon, Jan 20, 2014 at 9:38 AM,  <rw...@apache.org> wrote:
> Author: rwesten
> Date: Mon Jan 20 08:38:04 2014
> New Revision: 1559644
>
> URL: http://svn.apache.org/r1559644
> Log:
> STANBOL-1132: Applied patch provided by Cristian Petroaca on the 11.Januray to this issue
>
> Modified:
>     stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java
>     stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java
>     stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java
>     stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java
>     stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java
>     stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java
>     stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java
>     stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java
>     stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
>     stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/CorefFeatureSupport.java Mon Jan 20 08:38:04 2014
> @@ -15,7 +15,6 @@
>   * limitations under the License.
>   */package org.apache.stanbol.enhancer.nlp.json.valuetype.impl;
>
> -import java.util.Collections;
>  import java.util.HashSet;
>  import java.util.Set;
>
> @@ -53,24 +52,21 @@ public class CorefFeatureSupport impleme
>
>                 jCoref.put(IS_REPRESENTATIVE_TAG, coref.isRepresentative());
>
> -        Set<Span> mentions = coref.getMentions();
> +        Set<Span> mentions = coref.getMentions();
> +        ArrayNode jMentions = mapper.createArrayNode();
>
> -        if(!mentions.isEmpty()) {
> -            ArrayNode jMentions = mapper.createArrayNode();
> +        for(Span mention : mentions) {
> +            ObjectNode jMention = mapper.createObjectNode();
>
> -            for(Span mention : mentions) {
> -                ObjectNode jMention = mapper.createObjectNode();
> -
> -                jMention.put(MENTION_TYPE_TAG, mention.getType().toString());
> -                jMention.put(MENTION_START_TAG, mention.getStart());
> -                jMention.put(MENTION_END_TAG, mention.getEnd());
> -
> -                jMentions.add(jMention);
> -            }
> +            jMention.put(MENTION_TYPE_TAG, mention.getType().toString());
> +            jMention.put(MENTION_START_TAG, mention.getStart());
> +            jMention.put(MENTION_END_TAG, mention.getEnd());
>
> -            jCoref.put(MENTIONS_TAG, jMentions);
> +            jMentions.add(jMention);
>          }
>
> +        jCoref.put(MENTIONS_TAG, jMentions);
> +
>                 return jCoref;
>         }
>
> @@ -121,7 +117,7 @@ public class CorefFeatureSupport impleme
>                  }
>              }
>                 }
> -
> -               return new CorefFeature(jIsRepresentative.asBoolean(), Collections.unmodifiableSet(mentions));
> +
> +               return new CorefFeature(jIsRepresentative.asBoolean(), mentions);
>         }
>  }
> \ No newline at end of file
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/main/java/org/apache/stanbol/enhancer/nlp/json/valuetype/impl/DependencyRelationSupport.java Mon Jan 20 08:38:04 2014
> @@ -41,7 +41,7 @@ public class DependencyRelationSupport i
>
>      private static final String RELATION_TYPE_TAG = "tag";
>      private static final String RELATION_STANBOL_TYPE_TAG = "relationType";
> -    private static final String RELATION_IS_DEPENDEE_TAG = "isDependent";
> +    private static final String RELATION_IS_DEPENDENT_TAG = "isDependent";
>      private static final String RELATION_PARTNER_TYPE_TAG = "partnerType";
>      private static final String RELATION_PARTNER_START_TAG = "partnerStart";
>      private static final String RELATION_PARTNER_END_TAG = "partnerEnd";
> @@ -54,7 +54,7 @@ public class DependencyRelationSupport i
>          GrammaticalRelationTag gramRelTag = relation.getGrammaticalRelationTag();
>          jDependencyRelation.put(RELATION_TYPE_TAG, gramRelTag.getTag());
>          jDependencyRelation.put(RELATION_STANBOL_TYPE_TAG, gramRelTag.getGrammaticalRelation().ordinal());
> -        jDependencyRelation.put(RELATION_IS_DEPENDEE_TAG, (relation.isDependent()));
> +        jDependencyRelation.put(RELATION_IS_DEPENDENT_TAG, (relation.isDependent()));
>
>          Span partner = relation.getPartner();
>          if (partner != null) {
> @@ -90,7 +90,7 @@ public class DependencyRelationSupport i
>          GrammaticalRelationTag gramRelTag = new GrammaticalRelationTag(tag.getTextValue(),
>                  grammaticalRelation);
>
> -        JsonNode isDependent = jDependencyRelation.path(RELATION_IS_DEPENDEE_TAG);
> +        JsonNode isDependent = jDependencyRelation.path(RELATION_IS_DEPENDENT_TAG);
>
>          if (!isDependent.isBoolean()) {
>              throw new IllegalStateException("Field 'isDependent' must have a true/false format");
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/CorefFeatureSupportTest.java Mon Jan 20 08:38:04 2014
> @@ -81,11 +81,11 @@ public class CorefFeatureSupportTest ext
>          Set<Span> obamaMentions = new HashSet<Span>();
>          obamaMentions.add(he);
>          obama.addAnnotation(NlpAnnotations.COREF_ANNOTATION,
> -               Value.value(new CorefFeature(true, Collections.unmodifiableSet(obamaMentions))));
> +               Value.value(new CorefFeature(true, obamaMentions)));
>
>          Set<Span> heMentions = new HashSet<Span>();
>          heMentions.add(obama);
>          he.addAnnotation(NlpAnnotations.COREF_ANNOTATION,
> -               Value.value(new CorefFeature(false, Collections.unmodifiableSet(heMentions))));
> +               Value.value(new CorefFeature(false, heMentions)));
>         }
>  }
>
> Modified: stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp-json/src/test/java/org/apache/stanbol/enhancer/nlp/json/valuetype/DependencyRelationSupportTest.java Mon Jan 20 08:38:04 2014
> @@ -2,7 +2,6 @@ package org.apache.stanbol.enhancer.nlp.
>
>  import java.io.IOException;
>
> -import org.apache.commons.io.FilenameUtils;
>  import org.apache.stanbol.enhancer.nlp.NlpAnnotations;
>  import org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation;
>  import org.apache.stanbol.enhancer.nlp.dependency.GrammaticalRelation;
> @@ -25,7 +24,7 @@ public class DependencyRelationSupportTe
>             + "    \"end\" : 5," + LINE_SEPARATOR
>             + "    \"stanbol.enhancer.nlp.dependency\" : {" + LINE_SEPARATOR
>             + "      \"tag\" : \"nsubj\"," + LINE_SEPARATOR
> -           + "      \"relationType\" : 32," + LINE_SEPARATOR
> +           + "      \"relationType\" : 33," + LINE_SEPARATOR
>             + "      \"isDependent\" : true," + LINE_SEPARATOR
>             + "      \"partnerType\" : \"Token\"," + LINE_SEPARATOR
>             + "      \"partnerStart\" : 6," + LINE_SEPARATOR
> @@ -40,7 +39,7 @@ public class DependencyRelationSupportTe
>             + "    \"end\" : 13," + LINE_SEPARATOR
>             + "    \"stanbol.enhancer.nlp.dependency\" : [ {" + LINE_SEPARATOR
>             + "      \"tag\" : \"root\"," + LINE_SEPARATOR
> -           + "      \"relationType\" : 56," + LINE_SEPARATOR
> +           + "      \"relationType\" : 57," + LINE_SEPARATOR
>             + "      \"isDependent\" : true," + LINE_SEPARATOR
>             + "      \"partnerType\" : \"ROOT\"," + LINE_SEPARATOR
>             + "      \"partnerStart\" : 0," + LINE_SEPARATOR
> @@ -48,7 +47,7 @@ public class DependencyRelationSupportTe
>             + "      \"class\" : \"org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation\"" + LINE_SEPARATOR
>             + "    }, {" + LINE_SEPARATOR
>             + "      \"tag\" : \"nsubj\"," + LINE_SEPARATOR
> -           + "      \"relationType\" : 32," + LINE_SEPARATOR
> +           + "      \"relationType\" : 33," + LINE_SEPARATOR
>             + "      \"isDependent\" : false," + LINE_SEPARATOR
>             + "      \"partnerType\" : \"Token\"," + LINE_SEPARATOR
>             + "      \"partnerStart\" : 0," + LINE_SEPARATOR
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/coref/CorefFeature.java Mon Jan 20 08:38:04 2014
> @@ -42,19 +42,13 @@ public class CorefFeature {
>          */
>         private Set<Span> mentions;
>
> -       public CorefFeature() {
> -               this(false, Collections.unmodifiableSet(Collections
> -                               .<Span> emptySet()));
> -       }
> -
> -       public CorefFeature(boolean isRepresentative) {
> -               this(isRepresentative, Collections.unmodifiableSet(Collections
> -                               .<Span> emptySet()));
> -       }
> -
>         public CorefFeature(boolean isRepresentative, Set<Span> mentions) {
> +               if (mentions == null || mentions.isEmpty()) {
> +                       throw new IllegalArgumentException("The mentions set cannot be null or empty");
> +               }
> +
>                 this.isRepresentative = isRepresentative;
> -               this.mentions = mentions;
> +               this.mentions = Collections.unmodifiableSet(mentions);
>         }
>
>         /**
> @@ -78,11 +72,25 @@ public class CorefFeature {
>         }
>
>         public int hashCode() {
> -               return (this.mentions != null) ? this.mentions.hashCode() : 0;
> +               final int prime = 31;
> +        int result = 1;
> +        result = prime * result + (isRepresentative ? 1231 : 1237);
> +        result = prime * result + mentions.hashCode();
> +
> +        return result;
>         }
>
>         public boolean equals(Object obj) {
> -               return (obj instanceof CorefFeature)
> -                               && (this.mentions.equals(((CorefFeature) obj).getMentions()));
> +               if (this == obj)
> +                       return true;
> +               if (obj == null)
> +                       return false;
> +               if (getClass() != obj.getClass())
> +            return false;
> +
> +        CorefFeature other = (CorefFeature) obj;
> +
> +               return (isRepresentative == other.isRepresentative)
> +                       && (mentions.equals(other.mentions));
>         }
>  }
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/DependencyRelation.java Mon Jan 20 08:38:04 2014
> @@ -45,6 +45,10 @@ public class DependencyRelation {
>
>         public DependencyRelation(GrammaticalRelationTag grammaticalRelationTag, boolean isDependent,
>                         Span partner) {
> +               if (grammaticalRelationTag == null) {
> +                       throw new IllegalArgumentException("The grammatical relation tag cannot be null");
> +               }
> +
>                 this.grammaticalRelationTag = grammaticalRelationTag;
>                 this.isDependent = isDependent;
>                 this.partner = partner;
> @@ -61,17 +65,12 @@ public class DependencyRelation {
>         public Span getPartner() {
>                 return this.partner;
>         }
> -
> -       public void setPartner(Span partner) {
> -        this.partner = partner;
> -    }
>
>      @Override
>      public int hashCode() {
>          final int prime = 31;
>          int result = 1;
> -        result = prime * result + ((grammaticalRelationTag == null) ? 0
> -                        : grammaticalRelationTag.hashCode());
> +        result = prime * result + grammaticalRelationTag.hashCode();
>          result = prime * result + (isDependent ? 1231 : 1237);
>          result = prime * result + ((partner == null) ? 0 : partner.hashCode());
>          return result;
> @@ -85,19 +84,16 @@ public class DependencyRelation {
>              return false;
>          if (getClass() != obj.getClass())
>              return false;
> +
>          DependencyRelation other = (DependencyRelation) obj;
> -        if (grammaticalRelationTag == null) {
> -            if (other.grammaticalRelationTag != null)
> -                return false;
> -        } else if (!grammaticalRelationTag.equals(other.grammaticalRelationTag))
> -            return false;
> -        if (isDependent != other.isDependent)
> -            return false;
> +
>          if (partner == null) {
>              if (other.partner != null)
>                  return false;
>          } else if (!partner.equals(other.partner))
>              return false;
> -        return true;
> +
> +        return (grammaticalRelationTag.equals(other.grammaticalRelationTag))
> +               && (isDependent == other.isDependent);
>      }
>  }
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelation.java Mon Jan 20 08:38:04 2014
> @@ -214,6 +214,17 @@ public enum GrammaticalRelation {
>          * raise)
>          */
>         DirectObject(Object),
> +
> +       /**
> +        * The "discourse element" grammatical relation. This is used for interjections and
> +        * other discourse particles and elements (which are not clearly linked to the structure
> +        * of the sentence, except in an expressive way). We generally follow the
> +        * guidelines of what the Penn Treebanks count as an INTJ.  They
> +        * define this to include: interjections (oh, uh-huh, Welcome), fillers (um, ah),
> +        * and discourse markers (well, like, actually, but not: you know).
> +        * We also use it for emoticons.
> +        */
> +       Discourse(Modifier),
>
>         /**
>          * This relation captures an existential &quot;there&quot;. The main verb of
>
> Modified: stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java (original)
> +++ stanbol/trunk/enhancer/generic/nlp/src/main/java/org/apache/stanbol/enhancer/nlp/dependency/GrammaticalRelationTag.java Mon Jan 20 08:38:04 2014
> @@ -39,6 +39,10 @@ public class GrammaticalRelationTag exte
>                         GrammaticalRelation grammaticalRelation) {
>                 this(tag);
>
> +               if (grammaticalRelation == null) {
> +                       throw new IllegalArgumentException("The grammatical relation cannot be null");
> +               }
> +
>                 this.grammaticalRelation = grammaticalRelation;
>         }
>
> @@ -48,7 +52,11 @@ public class GrammaticalRelationTag exte
>
>         @Override
>         public int hashCode() {
> -               return super.hashCode() + grammaticalRelation.hashCode();
> +               final int prime = 31;
> +        int result = super.hashCode();
> +        result = prime * result + grammaticalRelation.hashCode();
> +
> +        return result;
>         }
>
>         @Override
>
> Modified: stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java (original)
> +++ stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/ContentItem.java Mon Jan 20 08:38:04 2014
> @@ -39,6 +39,8 @@ public interface ContentItem {
>       * The binary content stream. Shortcut for
>       * <code>{@link #getBlob()}{@link Blob#getStream() .getStream()}</code>
>       * @return the InputStream
> +     * @deprecated use <code>{@link #getBlob()}{@link Blob#getStream() .getStream()}</code>
> +     * instead
>       */
>      InputStream getStream();
>
> @@ -46,6 +48,8 @@ public interface ContentItem {
>       * The MimeType. Shortcut for
>       * <code>{@link #getBlob()}{@link Blob#getMimeType() .getMimeType()}</code>.
>       * @return the MimeType as string
> +     * @deprecated use <code>{@link #getBlob()}{@link Blob#getMimeType() .getMimeType()}</code>
> +     * instead
>       */
>      String getMimeType();
>
>
> Modified: stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java
> URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java?rev=1559644&r1=1559643&r2=1559644&view=diff
> ==============================================================================
> --- stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java (original)
> +++ stanbol/trunk/enhancer/generic/servicesapi/src/main/java/org/apache/stanbol/enhancer/servicesapi/EnhancementEngine.java Mon Jan 20 08:38:04 2014
> @@ -16,6 +16,8 @@
>  */
>  package org.apache.stanbol.enhancer.servicesapi;
>
> +import java.util.Map;
> +
>  /**
>   * Interface to internal or external semantic enhancement engines. There will
>   * usually be several of those, that the EnhancementJobManager uses to enhance
> @@ -36,13 +38,13 @@ public interface EnhancementEngine {
>      /**
>       * Return value for {@link #canEnhance}, meaning this engine can enhance
>       * supplied {@link ContentItem}, and suggests enhancing it synchronously
> -     * instead of queuing a request for enhancement.
> +     * instead of queueing a request for enhancement.
>       */
>      int ENHANCE_SYNCHRONOUS = 1;
>
>      /**
>       * Return value for {@link #canEnhance}, meaning this engine can enhance
> -     * supplied {@link ContentItem}, and suggests queuing a request for
> +     * supplied {@link ContentItem}, and suggests queueing a request for
>       * enhancement instead of enhancing it synchronously.
>       */
>      int ENHANCE_ASYNC = 2;
> @@ -52,23 +54,46 @@ public interface EnhancementEngine {
>       * suggests enhancing it synchronously or asynchronously. The
>       * {@link EnhancementJobManager} can force sync/async mode if desired, it is
>       * just a suggestion from the engine.
> +     * <p>
> +     * This method is expected to execute fast and MUST NOT change the parsed
> +     * {@link ContentItem}. It is called with a read lock on the ContentItem.
> +     * <p>
> +     * <b>NOTE:</b> Returning {@link #CANNOT_ENHANCE} will cause the
> +     * {@link EnhancementJobManager} to skip the execution of this Engine. If
> +     * an {@link EngineException} is thrown the executed {@link Chain} will
> +     * fail (unless this engine is marked as OPTIONAL).
> +     *
> +     * @param ci The ContentItem to enhance
> +     * @param context The enhancement context: Request specific parameters
>       *
>       * @throws EngineException if the introspecting process of the content item
>       *             fails
>       */
>      int canEnhance(ContentItem ci) throws EngineException;
> +    //int canEnhance(ContentItem ci, Map<String,Object> context) throws EngineException;
>
>      /**
>       * Compute enhancements for supplied ContentItem. The results of the process
> -     * are expected to be stored in the metadata of the content item.
> +     * are expected to be stored in the {@link ContentItem#getMetadata() metadata
> +     * of the content item} or by adding/modifying any contentPart.<p>
> +     * Engines that do support {@link #ENHANCE_ASYNC} are required to use the
> +     * {@link ContentItem#getLock()} to acquire read/write locks when reading/
> +     * modifying information of the {@link ContentItem}. For Engines that that
> +     * do use {@link #ENHANCE_SYNCHRONOUS} the {@link EnhancementJobManager}
> +     * is responsible to acquire a write lock before calling this method.
> +     * <p>
> +     * <b>NOTE</b>: If an EnhancementEngine can not extract any information it
> +     * is expected to return. In case an error is encountered during processing
> +     * an {@link EngineException} need to be thrown.
>       *
> -     * The client (usually an {@link EnhancementJobManager}) should take care of
> -     * persistent storage of the enhanced {@link ContentItem}.
> +     * @param ci The ContentItem to enhance
> +     * @param context The enhancement context: Request specific parameters
>       *
>       * @throws EngineException if the underlying process failed to work as
>       *             expected
>       */
>      void computeEnhancements(ContentItem ci) throws EngineException;
> +    //void computeEnhancements(ContentItem ci, Map<String,Object> context) throws EngineException;
>      /**
>       * Getter for the name of this EnhancementEngine instance as configured
>       * by {@link #PROPERTY_NAME}
>
>



-- 
| Rupert Westenthaler             rupert.westenthaler@gmail.com
| Bodenlehenstraße 11                             ++43-699-11108907
| A-5500 Bischofshofen