You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by an...@apache.org on 2012/03/28 17:11:43 UTC
svn commit: r1306401 - in
/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web:
input/impl/RESTInputFactory.java input/provider/impl/RecipeInputProvider.java
resources/ReasoningServiceTaskResource.java
Author: anuzzolese
Date: Wed Mar 28 15:11:42 2012
New Revision: 1306401
URL: http://svn.apache.org/viewvc?rev=1306401&view=rev
Log:
[STANBOL-560] Updated the changes provided by the API of rules into reasoners/web.
Modified:
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java
Modified: incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java?rev=1306401&r1=1306400&r2=1306401&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java Wed Mar 28 15:11:42 2012
@@ -32,6 +32,7 @@ import org.apache.stanbol.reasoners.web.
import org.apache.stanbol.reasoners.web.input.provider.impl.OntonetInputProvider;
import org.apache.stanbol.reasoners.web.input.provider.impl.RecipeInputProvider;
import org.apache.stanbol.reasoners.web.input.provider.impl.UrlInputProvider;
+import org.apache.stanbol.rules.base.api.RuleAdapterManager;
import org.apache.stanbol.rules.base.api.RuleStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,13 +50,15 @@ public class RESTInputFactory implements
ONManager onm;
SessionManager sessionManager;
RuleStore rStore;
+ RuleAdapterManager adapterManager;
private Logger log = LoggerFactory.getLogger(getClass());
- public RESTInputFactory(ONManager onm, SessionManager sm, RuleStore rStore) {
+ public RESTInputFactory(ONManager onm, SessionManager sm, RuleStore rStore, RuleAdapterManager adapterManager) {
this.onm = onm;
this.sessionManager = sm;
this.rStore = rStore;
+ this.adapterManager = adapterManager;
}
@Override
@@ -104,7 +107,7 @@ public class RESTInputFactory implements
} else if (entry.getKey().equals("recipe")) {
if (!entry.getValue().isEmpty()) {
- inmgr.addInputProvider(new RecipeInputProvider(rStore, entry.getValue().iterator().next()));
+ inmgr.addInputProvider(new RecipeInputProvider(rStore, adapterManager, entry.getValue().iterator().next()));
} else {
// Parameter exists with no value
log.error("Parameter 'recipe' must have a value!");
Modified: incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java?rev=1306401&r1=1306400&r2=1306401&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java Wed Mar 28 15:11:42 2012
@@ -22,13 +22,17 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.stanbol.reasoners.servicesapi.ReasoningServiceInputProvider;
import org.apache.stanbol.rules.base.api.NoSuchRecipeException;
import org.apache.stanbol.rules.base.api.Recipe;
+import org.apache.stanbol.rules.base.api.RecipeConstructionException;
+import org.apache.stanbol.rules.base.api.RuleAdapter;
+import org.apache.stanbol.rules.base.api.RuleAdapterManager;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
import org.apache.stanbol.rules.base.api.RuleStore;
-import org.apache.stanbol.rules.base.api.util.RuleList;
-import org.semanticweb.owlapi.apibinding.OWLManager;
-import org.semanticweb.owlapi.model.IRI;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
import org.semanticweb.owlapi.model.SWRLRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,6 +50,7 @@ public class RecipeInputProvider impleme
private final Logger log = LoggerFactory.getLogger(RecipeInputProvider.class);
private RuleStore store;
+ private RuleAdapterManager adapterManager;
private String recipeId;
/**
@@ -54,12 +59,14 @@ public class RecipeInputProvider impleme
* @param store
* @param recipeId
*/
- public RecipeInputProvider(RuleStore store,String recipeId){
+ public RecipeInputProvider(RuleStore store, RuleAdapterManager adapterManager, String recipeId){
this.store = store;
+ this.adapterManager = adapterManager;
this.recipeId = recipeId;
}
- @Override
+ @SuppressWarnings("unchecked")
+ @Override
public <T> Iterator<T> getInput(Class<T> type) throws IOException {
ReasoningProvider reasoningProvider = null;
@@ -87,16 +94,39 @@ public class RecipeInputProvider impleme
try {
Recipe recipe = null;
synchronized (store) {
- recipe = store.getRecipe(IRI.create(recipeId));
+ try {
+ recipe = store.getRecipe(new UriRef(recipeId));
+ } catch (RecipeConstructionException e) {
+ log.error("An error occurred while generating the recipe.", e);
+ }
}
log.debug("Recipe is: {}", recipe);
- RuleList ruleList = recipe.getkReSRuleList();
+
+ /*
+ * We ask to the adapter manager to get the right adapter in order to transform
+ * recipes into SWRLRule objects.
+ */
+ RuleAdapter adapter;
+ try {
+ adapter = adapterManager.getAdapter(recipe, SWRLRule.class);
+ rules = (List<SWRLRule>) adapter.adaptTo(recipe, SWRLRule.class);
+ } catch (UnavailableRuleObjectException e) {
+ log.error(e.getMessage(), e);
+ } catch (RuleAtomCallExeption e) {
+ log.error(e.getMessage(), e);
+ } catch (UnsupportedTypeForExportException e) {
+ log.error(e.getMessage(), e);
+ }
+
+
+ /*
+ RuleList ruleList = recipe.getRuleList();
log.debug("RuleList is: {}",ruleList);
for(org.apache.stanbol.rules.base.api.Rule r : ruleList ){
SWRLRule swrl = r.toSWRL(OWLManager.getOWLDataFactory());
log.debug("Prepared rule: {}",swrl);
rules.add(swrl);
- }
+ }*/
} catch (NoSuchRecipeException e) {
log.error("Recipe {} does not exists", recipeId);
throw new IOException(e);
@@ -140,12 +170,36 @@ public class RecipeInputProvider impleme
try {
Recipe recipe = null;
synchronized (store) {
- recipe = store.getRecipe(IRI.create(recipeId));
+ try {
+ recipe = store.getRecipe(new UriRef(recipeId));
+ } catch (RecipeConstructionException e) {
+ log.error("An error occurred while generating the recipe.", e);
+ }
}
- log.debug("Recipe is: {}", recipe);
- jenaRules = recipe.toJenaRules();
+ if(recipe != null){
+ log.debug("Recipe is: {}", recipe);
+
+ /*
+ * We ask to the adapter manager to get the right adapter in order to transform
+ * recipes into Jena Rule objects.
+ */
+ RuleAdapter adapter;
+ try {
+ adapter = adapterManager.getAdapter(recipe, Rule.class);
+ jenaRules = (List<Rule>) adapter.adaptTo(recipe, Rule.class);
+ } catch (UnavailableRuleObjectException e) {
+ log.error(e.getMessage(), e);
+ } catch (RuleAtomCallExeption e) {
+ log.error(e.getMessage(), e);
+ } catch (UnsupportedTypeForExportException e) {
+ log.error(e.getMessage(), e);
+ }
+
+ }
+
+ //jenaRules = recipe.toJenaRules();
} catch (NoSuchRecipeException e) {
log.error("Recipe {} does not exists", recipeId);
throw new IOException(e);
Modified: incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java?rev=1306401&r1=1306400&r2=1306401&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java Wed Mar 28 15:11:42 2012
@@ -72,6 +72,7 @@ import org.apache.stanbol.reasoners.web.
import org.apache.stanbol.reasoners.web.utils.ReasoningServiceExecutor;
import org.apache.stanbol.reasoners.web.utils.ReasoningServiceResult;
import org.apache.stanbol.reasoners.web.utils.ResponseTaskBuilder;
+import org.apache.stanbol.rules.base.api.RuleAdapterManager;
import org.apache.stanbol.rules.base.api.RuleStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -110,6 +111,7 @@ public class ReasoningServiceTaskResourc
private ONManager onm;
private SessionManager sessionManager;
private RuleStore ruleStore;
+ private RuleAdapterManager adapterManager;
private boolean job = false;
private String jobLocation = "";
@@ -154,8 +156,11 @@ public class ReasoningServiceTaskResourc
this.sessionManager = (SessionManager) ContextHelper.getServiceFromContext(SessionManager.class,
servletContext);
- // Retrieve the ontology network manager
+ // Retrieve the rule store
this.ruleStore = (RuleStore) ContextHelper.getServiceFromContext(RuleStore.class, servletContext);
+
+ // Retrieve the rule adapter manager
+ this.adapterManager = (RuleAdapterManager) ContextHelper.getServiceFromContext(RuleAdapterManager.class, servletContext);
// Check if method is allowed
// FIXME Supported methods are only GET and POST, but also PUT comes here, why?
@@ -466,7 +471,7 @@ public class ReasoningServiceTaskResourc
} else if (entry.getKey().equals("recipe")) {
if (!entry.getValue().isEmpty()) {
- inmgr.addInputProvider(new RecipeInputProvider(ruleStore, entry.getValue().iterator()
+ inmgr.addInputProvider(new RecipeInputProvider(ruleStore, adapterManager, entry.getValue().iterator()
.next()));
// We remove it form the additional parameter list
this.parameters.remove("url");