Author: rwesten
Date: Tue Apr 9 19:59:38 2013
New Revision: 1466198
URL: http://svn.apache.org/r1466198
Log:
implementation for STANBOL-1021
Modified:
stanbol/trunk/enhancement-engines/restful-nlp/src/main/java/org/apache/stanbol/enhancer/engines/restful/nlp/impl/RestfulNlpAnalysisEngine.java
stanbol/trunk/enhancement-engines/restful-nlp/src/main/resources/OSGI-INF/metatype/metatype.properties
Modified:
stanbol/trunk/enhancement-engines/restful-nlp/src/main/java/org/apache/stanbol/enhancer/engines/restful/nlp/impl/RestfulNlpAnalysisEngine.java
URL:
http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/restful-nlp/src/main/java/org/apache/stanbol/enhancer/engines/restful/nlp/impl/RestfulNlpAnalysisEngine.java?rev=1466198&r1=1466197&r2=1466198&view=diff
==============================================================================
---
stanbol/trunk/enhancement-engines/restful-nlp/src/main/java/org/apache/stanbol/enhancer/engines/restful/nlp/impl/RestfulNlpAnalysisEngine.java
(original)
+++
stanbol/trunk/enhancement-engines/restful-nlp/src/main/java/org/apache/stanbol/enhancer/engines/restful/nlp/impl/RestfulNlpAnalysisEngine.java
Tue Apr 9 19:59:38 2013
@@ -131,6 +131,8 @@ import org.slf4j.LoggerFactory;
@Property(name=RestfulNlpAnalysisEngine.ANALYSIS_SERVICE_URL, value
="http://changeme"),
@Property(name=RestfulNlpAnalysisEngine.ANALYSIS_SERVICE_USER, value
=""),
@Property(name=RestfulNlpAnalysisEngine.ANALYSIS_SERVICE_PWD, value
=""),
+ @Property(name=RestfulNlpAnalysisEngine.WRITE_TEXT_ANNOTATIONS_STATE,
+
boolValue=RestfulNlpAnalysisEngine.DEFAULT_WRITE_TEXT_ANNOTATION_STATE),
@Property(name=Constants.SERVICE_RANKING,intValue=0)
})
public class RestfulNlpAnalysisEngine extends
AbstractEnhancementEngine<IOException,RuntimeException> implements
ServiceProperties {
@@ -149,7 +151,12 @@ public class RestfulNlpAnalysisEngine ex
* The User for the remote analyses service
*/
public static final String ANALYSIS_SERVICE_PWD =
"enhancer.engine.restful.nlp.analysis.service.pwd";
-
+ /**
+ * Allows to enable/disable the addition of
<code>fise:TextAnnotation</code>s
+ * to the enhancement metadata of the ContentItem
+ */
+ public static final String WRITE_TEXT_ANNOTATIONS_STATE =
"enhancer.engine.restful.nlp.analysis.write-textannotations";
+ public static final boolean DEFAULT_WRITE_TEXT_ANNOTATION_STATE = true;
/**
* Language configuration. Takes a list of ISO language codes to be
processed
* by this engine. This list will be joined with the list of languages
supported
@@ -196,6 +203,8 @@ public class RestfulNlpAnalysisEngine ex
*/
@Reference
private AnalyzedTextParser analyzedTextParser;
+
+ private boolean writeTextAnnotations;
/**
* Indicate if this engine can enhance supplied ContentItem, and if it
@@ -282,49 +291,51 @@ public class RestfulNlpAnalysisEngine ex
throw RuntimeException.class.cast(e);
}
}
- Iterator<Span> spans =
at.getEnclosed(EnumSet.of(SpanTypeEnum.Sentence,SpanTypeEnum.Chunk));
- Sentence context = null;
- MGraph metadata = ci.getMetadata();
- Language lang = new Language(language);
- LiteralFactory lf = LiteralFactory.getInstance();
- ci.getLock().writeLock().lock();
- try { //write TextAnnotations for Named Entities
- while(spans.hasNext()){
- Span span = spans.next();
- switch (span.getType()) {
- case Sentence:
- context = (Sentence)context;
- break;
- default:
- Value<NerTag> nerAnno =
span.getAnnotation(NER_ANNOTATION);
- if(nerAnno != null){
- UriRef ta =
EnhancementEngineHelper.createTextEnhancement(ci, this);
- //add span related data
- metadata.add(new TripleImpl(ta,
ENHANCER_SELECTED_TEXT,
- new PlainLiteralImpl(span.getSpan(), lang)));
- metadata.add(new TripleImpl(ta, ENHANCER_START,
- lf.createTypedLiteral(span.getStart())));
- metadata.add(new TripleImpl(ta, ENHANCER_END,
- lf.createTypedLiteral(span.getEnd())));
- metadata.add(new TripleImpl(ta,
ENHANCER_SELECTION_CONTEXT,
- new PlainLiteralImpl(context == null ?
-
getDefaultSelectionContext(at.getSpan(), span.getSpan(), span.getStart()) :
- context.getSpan(), lang)));
- //add the NER type
- if(nerAnno.value().getType() != null){
- metadata.add(new
TripleImpl(ta,DC_TYPE,nerAnno.value().getType()));
- }
- if(nerAnno.probability() >= 0) {
- metadata.add(new TripleImpl(ta,
ENHANCER_CONFIDENCE,
-
lf.createTypedLiteral(nerAnno.probability())));
+ if(writeTextAnnotations){
+ Iterator<Span> spans =
at.getEnclosed(EnumSet.of(SpanTypeEnum.Sentence,SpanTypeEnum.Chunk));
+ Sentence context = null;
+ MGraph metadata = ci.getMetadata();
+ Language lang = new Language(language);
+ LiteralFactory lf = LiteralFactory.getInstance();
+ ci.getLock().writeLock().lock();
+ try { //write TextAnnotations for Named Entities
+ while(spans.hasNext()){
+ Span span = spans.next();
+ switch (span.getType()) {
+ case Sentence:
+ context = (Sentence)context;
+ break;
+ default:
+ Value<NerTag> nerAnno =
span.getAnnotation(NER_ANNOTATION);
+ if(nerAnno != null){
+ UriRef ta =
EnhancementEngineHelper.createTextEnhancement(ci, this);
+ //add span related data
+ metadata.add(new TripleImpl(ta,
ENHANCER_SELECTED_TEXT,
+ new PlainLiteralImpl(span.getSpan(),
lang)));
+ metadata.add(new TripleImpl(ta,
ENHANCER_START,
+ lf.createTypedLiteral(span.getStart())));
+ metadata.add(new TripleImpl(ta, ENHANCER_END,
+ lf.createTypedLiteral(span.getEnd())));
+ metadata.add(new TripleImpl(ta,
ENHANCER_SELECTION_CONTEXT,
+ new PlainLiteralImpl(context == null ?
+
getDefaultSelectionContext(at.getSpan(), span.getSpan(), span.getStart()) :
+ context.getSpan(), lang)));
+ //add the NER type
+ if(nerAnno.value().getType() != null){
+ metadata.add(new
TripleImpl(ta,DC_TYPE,nerAnno.value().getType()));
+ }
+ if(nerAnno.probability() >= 0) {
+ metadata.add(new TripleImpl(ta,
ENHANCER_CONFIDENCE,
+
lf.createTypedLiteral(nerAnno.probability())));
+ }
}
- }
- break;
+ break;
+ }
}
+ } finally {
+ ci.getLock().writeLock().unlock();
}
- } finally {
- ci.getLock().writeLock().unlock();
- }
+ } //else do not write fise:TextAnnotations
}
protected class AnalysisResponseHandler implements
ResponseHandler<AnalysedText>{
@@ -455,6 +466,14 @@ public class RestfulNlpAnalysisEngine ex
supportedLanguages.add(st.nextToken());
}
+ value = properties.get(WRITE_TEXT_ANNOTATIONS_STATE);
+ if(value instanceof Boolean){
+ this.writeTextAnnotations = ((Boolean)value).booleanValue();
+ } else if(value != null){
+ this.writeTextAnnotations = Boolean.parseBoolean(value.toString());
+ } else {
+ this.writeTextAnnotations = DEFAULT_WRITE_TEXT_ANNOTATION_STATE;
+ }
}
@Deactivate
Modified:
stanbol/trunk/enhancement-engines/restful-nlp/src/main/resources/OSGI-INF/metatype/metatype.properties
URL:
http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/restful-nlp/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1466198&r1=1466197&r2=1466198&view=diff
==============================================================================
---
stanbol/trunk/enhancement-engines/restful-nlp/src/main/resources/OSGI-INF/metatype/metatype.properties
(original)
+++
stanbol/trunk/enhancement-engines/restful-nlp/src/main/resources/OSGI-INF/metatype/metatype.properties
Tue Apr 9 19:59:38 2013
@@ -46,4 +46,7 @@ enhancer.engine.restful.nlp.analysis.ser
enhancer.engine.restful.nlp.analysis.service.pwd.name=Password
enhancer.engine.restful.nlp.analysis.service.pwd.description=The password for \
the service (optional)
-
+
+enhancer.engine.restful.nlp.analysis.write-textannotations.name=Write
TextAnnoations
+enhancer.engine.restful.nlp.analysis.write-textannotations.description=If
enabled \
+(default) than fise:TextAnnotations are added for detected NamedEntities.