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());
}