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 2012/10/27 12:04:55 UTC
svn commit: r1402774 -
/stanbol/trunk/enhancer/engines/keywordextraction/src/main/java/org/apache/stanbol/enhancer/engines/keywordextraction/engine/KeywordLinkingEngine.java
Author: rwesten
Date: Sat Oct 27 10:04:55 2012
New Revision: 1402774
URL: http://svn.apache.org/viewvc?rev=1402774&view=rev
Log:
implementation for STANBOL-611: The field "org.apache.stanbol.enhancer.engines.keywordextraction.dereferenceFields" can be used to parse a list of additional fields included for dereferneced Entities (NOTE that the dereference entity option MUST still be enabled)
Modified:
stanbol/trunk/enhancer/engines/keywordextraction/src/main/java/org/apache/stanbol/enhancer/engines/keywordextraction/engine/KeywordLinkingEngine.java
Modified: stanbol/trunk/enhancer/engines/keywordextraction/src/main/java/org/apache/stanbol/enhancer/engines/keywordextraction/engine/KeywordLinkingEngine.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/engines/keywordextraction/src/main/java/org/apache/stanbol/enhancer/engines/keywordextraction/engine/KeywordLinkingEngine.java?rev=1402774&r1=1402773&r2=1402774&view=diff
==============================================================================
--- stanbol/trunk/enhancer/engines/keywordextraction/src/main/java/org/apache/stanbol/enhancer/engines/keywordextraction/engine/KeywordLinkingEngine.java (original)
+++ stanbol/trunk/enhancer/engines/keywordextraction/src/main/java/org/apache/stanbol/enhancer/engines/keywordextraction/engine/KeywordLinkingEngine.java Sat Oct 27 10:04:55 2012
@@ -178,6 +178,10 @@ public class KeywordLinkingEngine
*/
public static final boolean DEFAULT_DEREFERENCE_ENTITIES_STATE = true;
/**
+ * Allows to add a list of fields that are included when dereferencing Entities
+ */
+ public static final String DEREFERENCE_ENTITIES_FIELDS = "org.apache.stanbol.enhancer.engines.keywordextraction.dereferenceFields";
+ /**
* Additional fields added for dereferenced entities
*/
private static final Collection<String> DEREFERENCE_FIELDS = Arrays.asList(
@@ -550,7 +554,7 @@ public class KeywordLinkingEngine
* {@link #DEREFERENCE_ENTITIES} configuration.
* @param properties the configuration
*/
- protected final void activateEntityDereference(Dictionary<String,Object> properties) {
+ protected final void activateEntityDereference(Dictionary<String,Object> properties) throws ConfigurationException {
Object value = properties.get(DEREFERENCE_ENTITIES);
if(value instanceof Boolean){
dereferenceEntitiesState = ((Boolean)value).booleanValue();
@@ -560,9 +564,32 @@ public class KeywordLinkingEngine
dereferenceEntitiesState = DEFAULT_DEREFERENCE_ENTITIES_STATE;
}
if(dereferenceEntitiesState){
- linkerConfig.getSelectedFields().addAll(DEREFERENCE_FIELDS);
- }
- }
+ value = properties.get(DEREFERENCE_ENTITIES_FIELDS);
+ if(value instanceof String[]){
+ for(String field : (String[])value){
+ if(field != null && !field.isEmpty()){
+ linkerConfig.getSelectedFields().add(field);
+ }
+ }
+ } else if(value instanceof Collection<?>){
+ for(Object field : (Collection<?>)value){
+ if(field != null && !field.toString().isEmpty()){
+ linkerConfig.getSelectedFields().add(field.toString());
+ }
+ }
+ } else if(value instanceof String){
+ if(!value.toString().isEmpty()){
+ linkerConfig.getSelectedFields().add(value.toString());
+ }
+ } else if(value != null){
+ throw new ConfigurationException(DEREFERENCE_ENTITIES_FIELDS,
+ "Dereference Entities_Fields MUST BE parsed as String[], Collection<String> or "
+ + "String (single value). The actual value '"+value+"'(type: '"+value.getClass()
+ + "') is NOT supported");
+ } else { //value == null -> add the default fields
+ linkerConfig.getSelectedFields().addAll(DEREFERENCE_FIELDS);
+ }
+ } }
/**
* Initialise the {@link TextAnalyzer} component.<p>