Author: suat
Date: Wed Feb  8 08:46:18 2012
New Revision: 1241818

URL: http://svn.apache.org/viewvc?rev=1241818&view=rev
Log:
STANBOL-487
-Added an additional parameter to SemanticIndexManager#executeProgram.

Modified:
    
incubator/stanbol/trunk/contenthub/ldpath/src/main/java/org/apache/stanbol/contenthub/ldpath/solr/SemanticIndexManagerImpl.java
    
incubator/stanbol/trunk/contenthub/servicesapi/src/main/java/org/apache/stanbol/contenthub/servicesapi/ldpath/SemanticIndexManager.java
    
incubator/stanbol/trunk/contenthub/store/solr/src/main/java/org/apache/stanbol/contenthub/store/solr/SolrStoreImpl.java

Modified: 
incubator/stanbol/trunk/contenthub/ldpath/src/main/java/org/apache/stanbol/contenthub/ldpath/solr/SemanticIndexManagerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/contenthub/ldpath/src/main/java/org/apache/stanbol/contenthub/ldpath/solr/SemanticIndexManagerImpl.java?rev=1241818&r1=1241817&r2=1241818&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/contenthub/ldpath/src/main/java/org/apache/stanbol/contenthub/ldpath/solr/SemanticIndexManagerImpl.java
 (original)
+++ 
incubator/stanbol/trunk/contenthub/ldpath/src/main/java/org/apache/stanbol/contenthub/ldpath/solr/SemanticIndexManagerImpl.java
 Wed Feb  8 08:46:18 2012
@@ -22,13 +22,13 @@ import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
 import org.apache.clerezza.rdf.core.MGraph;
 import org.apache.clerezza.rdf.core.Resource;
-import org.apache.clerezza.rdf.core.Triple;
+import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.felix.scr.annotations.Activate;
@@ -42,7 +42,6 @@ import org.apache.stanbol.contenthub.ser
 import org.apache.stanbol.contenthub.servicesapi.ldpath.SemanticIndexManager;
 import org.apache.stanbol.contenthub.servicesapi.store.StoreException;
 import org.apache.stanbol.contenthub.store.solr.manager.SolrCoreManager;
-import org.apache.stanbol.enhancer.servicesapi.rdf.Properties;
 import org.osgi.framework.Bundle;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
@@ -215,14 +214,13 @@ public class SemanticIndexManagerImpl im
     }
 
     @Override
-    public Map<String,Collection<?>> executeProgram(String programName, MGraph 
graph) throws LDPathException {
+    public Map<String,Collection<?>> executeProgram(String programName, 
List<UriRef> contexts, MGraph graph) throws LDPathException {
         Map<String,Collection<?>> results = new 
HashMap<String,Collection<?>>();
         LDPath<Resource> ldpath = new LDPath<Resource>(new 
ClerezzaBackend(graph));
         String ldPathProgram = getProgramByName(programName);
-        Iterator<Triple> it = graph.filter(null, 
Properties.ENHANCER_ENTITY_REFERENCE, null);
-        while (it.hasNext()) {
+        for (UriRef context : contexts) {
             try {
-                Map<String,Collection<?>> entityResults = 
ldpath.programQuery(it.next().getObject(),
+                Map<String,Collection<?>> entityResults = 
ldpath.programQuery(context,
                     LDPathUtils.constructReader(ldPathProgram));
                 for (Entry<String,Collection<?>> entry : 
entityResults.entrySet()) {
                     if (results.containsKey(entry.getKey())) {

Modified: 
incubator/stanbol/trunk/contenthub/servicesapi/src/main/java/org/apache/stanbol/contenthub/servicesapi/ldpath/SemanticIndexManager.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/contenthub/servicesapi/src/main/java/org/apache/stanbol/contenthub/servicesapi/ldpath/SemanticIndexManager.java?rev=1241818&r1=1241817&r2=1241818&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/contenthub/servicesapi/src/main/java/org/apache/stanbol/contenthub/servicesapi/ldpath/SemanticIndexManager.java
 (original)
+++ 
incubator/stanbol/trunk/contenthub/servicesapi/src/main/java/org/apache/stanbol/contenthub/servicesapi/ldpath/SemanticIndexManager.java
 Wed Feb  8 08:46:18 2012
@@ -18,9 +18,11 @@ package org.apache.stanbol.contenthub.se
 
 import java.io.Reader;
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.UriRef;
 
 /**
  * This interface provides create, retrieve, delete operations for LDPath 
programs to be managed in the scope
@@ -96,6 +98,9 @@ public interface SemanticIndexManager {
      * 
      * @param programName
      *            name of the program to be executed
+     * @param concexts
+     *            a {@link List} of {@link UriRef} that are used as starting 
nodes to execute LDPath program
+     *            specified by {@code programName} on the given {@code program}
      * @param graph
      *            a Clerezza graph on which the specified program will be 
executed
      * @return the {@link Map} containing the results obtained by executing 
the given program on the given
@@ -103,6 +108,6 @@ public interface SemanticIndexManager {
      *         to results obtained for the field specified in the key.
      * @throws LDPathException
      */
-    public Map<String,Collection<?>> executeProgram(String programName, MGraph 
graph) throws LDPathException;
+    public Map<String,Collection<?>> executeProgram(String programName, 
List<UriRef> contexts, MGraph graph) throws LDPathException;
 
 }

Modified: 
incubator/stanbol/trunk/contenthub/store/solr/src/main/java/org/apache/stanbol/contenthub/store/solr/SolrStoreImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/contenthub/store/solr/src/main/java/org/apache/stanbol/contenthub/store/solr/SolrStoreImpl.java?rev=1241818&r1=1241817&r2=1241818&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/contenthub/store/solr/src/main/java/org/apache/stanbol/contenthub/store/solr/SolrStoreImpl.java
 (original)
+++ 
incubator/stanbol/trunk/contenthub/store/solr/src/main/java/org/apache/stanbol/contenthub/store/solr/SolrStoreImpl.java
 Wed Feb  8 08:46:18 2012
@@ -332,8 +332,17 @@ public class SolrStoreImpl implements So
     private void addSolrSpecificFields(SolrContentItem sci, SolrInputDocument 
doc, String ldProgramName) {
         doc.addField(SolrFieldName.TITLE.toString(), sci.getTitle());
         try {
-            Map<String,Collection<?>> results = 
ldProgramManager.executeProgram(ldProgramName,
-                sci.getMetadata());
+            MGraph ciMetadata = sci.getMetadata();
+            Iterator<Triple> it = ciMetadata.filter(null, 
Properties.ENHANCER_ENTITY_REFERENCE, null);
+            List<UriRef> contexts = new ArrayList<UriRef>();
+            while (it.hasNext()) {
+                Resource r = it.next().getObject();
+                if (r instanceof UriRef) {
+                    contexts.add((UriRef) r);
+                }
+            }
+            Map<String,Collection<?>> results = 
ldProgramManager.executeProgram(ldProgramName, contexts,
+                ciMetadata);
             for (Entry<String,Collection<?>> entry : results.entrySet()) {
                 doc.addField(entry.getKey(), entry.getValue());
             }


Reply via email to