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 2011/11/26 02:54:31 UTC
svn commit: r1206392 - in /incubator/stanbol/trunk/rules:
base/src/main/java/org/apache/stanbol/rules/base/api/
manager/src/main/java/org/apache/stanbol/rules/manager/changes/
manager/src/test/java/org/apache/stanbol/rules/manager/
refactor/src/test/ja...
Author: anuzzolese
Date: Sat Nov 26 01:54:27 2011
New Revision: 1206392
URL: http://svn.apache.org/viewvc?rev=1206392&view=rev
Log:
[STANBOL-394] Removed Ontonet dependencies from RuleStoreImpl and from tests in rule manager.
Modified:
incubator/stanbol/trunk/rules/base/src/main/java/org/apache/stanbol/rules/base/api/RuleStore.java
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/AddRecipe.java
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/RuleStoreImpl.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRecipeTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRuleTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRecipeTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRuleTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/LoadRuleFileTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRecipeTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRuleTest.java
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RuleStoreTest.java
incubator/stanbol/trunk/rules/refactor/src/test/java/org/apache/stanbol/rules/refactor/RefactoringTest.java
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RecipeResource.java
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleResource.java
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleStoreResource.java
Modified: incubator/stanbol/trunk/rules/base/src/main/java/org/apache/stanbol/rules/base/api/RuleStore.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/base/src/main/java/org/apache/stanbol/rules/base/api/RuleStore.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/base/src/main/java/org/apache/stanbol/rules/base/api/RuleStore.java (original)
+++ incubator/stanbol/trunk/rules/base/src/main/java/org/apache/stanbol/rules/base/api/RuleStore.java Sat Nov 26 01:54:27 2011
@@ -16,6 +16,7 @@
*/
package org.apache.stanbol.rules.base.api;
+import java.io.InputStream;
import java.util.Set;
import org.apache.stanbol.rules.base.api.util.RecipeList;
@@ -37,9 +38,13 @@ public interface RuleStore {
boolean addRecipe(IRI recipeIRI, String recipeDescription);
- Recipe addRuleToRecipe(Recipe recipe, String kReSRuleInKReSSyntax);
-
- Recipe addRuleToRecipe(String recipeID, String kReSRuleInKReSSyntax) throws NoSuchRecipeException;
+ Recipe addRuleToRecipe(Recipe recipe, String rRuleInKReSSyntax);
+
+ Recipe addRuleToRecipe(Recipe recipe, InputStream ruleInKReSSyntax);
+
+ Recipe addRuleToRecipe(String recipeID, String ruleInKReSSyntax) throws NoSuchRecipeException;
+
+ Recipe addRuleToRecipe(String recipeID, InputStream ruleInKReSSyntax) throws NoSuchRecipeException;
void createRecipe(String recipeID, String rulesInKReSSyntax);
Modified: incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/AddRecipe.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/AddRecipe.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/AddRecipe.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/AddRecipe.java Sat Nov 26 01:54:27 2011
@@ -351,12 +351,13 @@ public class AddRecipe {
owlmanager.addAxiom(owlmodel, classAssertion);
//Add description
- if ((recipeDescription != null) || !recipeDescription.isEmpty()) {
+ if (recipeDescription != null && !recipeDescription.isEmpty()) {
//Add the rule description
dataPropAssertion = factory.getOWLDataPropertyAssertionAxiom(description, ontoind, recipeDescription);
owlmanager.addAxiom(owlmodel, dataPropAssertion);
- ok = true;
}
+
+ ok = true;
} else {
System.err.println("The recipe with name " + recipeIRI + " already exists. Pleas check the name.");
Modified: incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/RuleStoreImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/RuleStoreImpl.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/RuleStoreImpl.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/RuleStoreImpl.java Sat Nov 26 01:54:27 2011
@@ -25,6 +25,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Collections;
@@ -38,7 +39,6 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
import org.apache.stanbol.rules.base.api.NoSuchRecipeException;
@@ -123,9 +123,6 @@ public class RuleStoreImpl implements Ru
private final Logger log = LoggerFactory.getLogger(getClass());
- @Reference
- ONManager onManager;
-
private OWLOntology owlmodel;
@Property(name = RuleStore.RULE_NAMESPACE, value = _RULE_NAMESPACE_DEFAULT)
@@ -151,9 +148,9 @@ public class RuleStoreImpl implements Ru
*
* @param configuration
*/
- public RuleStoreImpl(ONManager onm, Dictionary<String,Object> configuration) {
+ public RuleStoreImpl(Dictionary<String,Object> configuration) {
// This recursive constructor call will also invoke activate()
- this(onm, configuration, (OWLOntology) null);
+ this(configuration, (OWLOntology) null);
}
/**
@@ -162,10 +159,9 @@ public class RuleStoreImpl implements Ru
* @param owl
* {OWLOntology object contains rules and recipe}
*/
- public RuleStoreImpl(ONManager onm, Dictionary<String,Object> configuration, OWLOntology owl) {
+ public RuleStoreImpl(Dictionary<String,Object> configuration, OWLOntology owl) {
this();
- this.onManager = onm;
try {
this.owlmodel = owl;
} catch (Exception e) {
@@ -188,9 +184,8 @@ public class RuleStoreImpl implements Ru
* @param filepath
* {Ontology file path previously stored.}
*/
- public RuleStoreImpl(ONManager onm, Dictionary<String,Object> configuration, String filepath) {
+ public RuleStoreImpl(Dictionary<String,Object> configuration, String filepath) {
this();
- this.onManager = onm;
try {
activate(_reconfigureLocation(configuration, filepath));
} catch (IOException e) {
@@ -341,30 +336,29 @@ public class RuleStoreImpl implements Ru
owlmanager.addAxiom(owlmodel, classAssertion);
// Add description
- if ((recipeDescription != null) && !recipeDescription.isEmpty()) {
+ if (recipeDescription != null && !recipeDescription.isEmpty()) {
// Add the rule description
dataPropAssertion = factory.getOWLDataPropertyAssertionAxiom(description, ontoind,
recipeDescription);
owlmanager.addAxiom(owlmodel, dataPropAssertion);
- ok = true;
}
+ ok = true;
} else {
log.error("The recipe with name " + recipeIRI + " already exists. Please check the name.");
- ok = false;
- return (ok);
+
}
} else {
log.error("The recipe with name and the set of rules cannot be empity or null.");
- ok = false;
- return (ok);
}
if (ok) {
setStore(owlmodel);
+
+ saveOntology();
}
- return (ok);
+ return ok;
}
/**
@@ -436,6 +430,77 @@ public class RuleStoreImpl implements Ru
return recipe;
}
+
+
+ /**
+ *
+ * @param recipe
+ * the recipe
+ * @param rulesStream
+ * the rule in Rule syntax
+ *
+ * @return the recipe we the new rule.
+ */
+ @Override
+ public Recipe addRuleToRecipe(Recipe recipe, InputStream rulesStream) {
+ log.debug("Adding rule to recipe " + recipe);
+
+ /**
+ * Get the OWLDataFactory.
+ */
+ OWLDataFactory factory = OWLManager.getOWLDataFactory();
+
+ /**
+ * Add the rule to the recipe in the rule ontology managed by the RuleStore. First we define the
+ * object property hasRule and then we add the literal that contains the rule in Rule Syntax to the
+ * recipe individual.
+ */
+ String ruleNS = "http://kres.iks-project.eu/ontology/meta/rmi.owl#";
+ OWLObjectProperty hasRule = factory.getOWLObjectProperty(IRI.create(ruleNS + "hasRule"));
+ OWLDataProperty hasBodyAndHead = factory.getOWLDataProperty(IRI.create(ruleNS + "hasBodyAndHead"));
+
+ /**
+ * The IRI of the recipe is fetched from the recipe object itself. From that IRI is obtained the
+ * recipe owl individual.
+ */
+ IRI recipeIRI = recipe.getRecipeID();
+ OWLNamedIndividual reipeIndividual = factory.getOWLNamedIndividual(recipeIRI);
+
+ OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
+
+ /**
+ * Finally also the in-memory representation of the Recipe passed as input is modified.
+ */
+ KB kReSKB = RuleParserImpl.parse(rulesStream);
+ RuleList ruleList = kReSKB.getkReSRuleList();
+ for (Rule rule : ruleList) {
+
+ /**
+ * The rule must be added to the ontology, so 1. an IRI is created from its name 2. the KReS
+ * syntax is added to the rule as a literal through the hasBobyAndHe data property. 3. the rule is
+ * associated to the recipe by means of the hasRule object property, so that the triple <a_recipe
+ * hasRule a_rule> is added to the rule ontology.
+ *
+ */
+ IRI ruleIRI = IRI.create(ruleNS + rule.getRuleName());
+ OWLNamedIndividual ruleIndividual = factory.getOWLNamedIndividual(ruleIRI);
+
+ OWLAxiom hasBodyAndHeadAxiom = factory.getOWLDataPropertyAssertionAxiom(hasBodyAndHead,
+ ruleIndividual, rule.toKReSSyntax());
+ manager.addAxiom(owlmodel, hasBodyAndHeadAxiom);
+
+ OWLAxiom hasRuleAxiom = factory.getOWLObjectPropertyAssertionAxiom(hasRule, reipeIndividual,
+ ruleIndividual);
+ manager.addAxiom(owlmodel, hasRuleAxiom);
+
+ /**
+ * The Rule is added to the Recipe in-memory object.
+ */
+ recipe.addKReSRule(rule);
+ }
+
+ return recipe;
+ }
/**
*
@@ -451,6 +516,22 @@ public class RuleStoreImpl implements Ru
return addRuleToRecipe(recipe, kReSRuleInKReSSyntax);
}
+
+
+ /**
+ *
+ * @param recipeIRI
+ * the IRI of the recipe
+ * @param rulesStream
+ * the rule in Rule syntax
+ */
+ @Override
+ public Recipe addRuleToRecipe(String recipeID, InputStream rulesStream) throws NoSuchRecipeException {
+
+ Recipe recipe = getRecipe(IRI.create(recipeID));
+ return addRuleToRecipe(recipe, rulesStream);
+
+ }
@Override
public void createRecipe(String recipeID, String rulesInKReSSyntax) {
@@ -514,7 +595,7 @@ public class RuleStoreImpl implements Ru
log.debug("Called get recipe for id: " + recipeIRI.toString());
Recipe recipe = null;
- if (onManager != null && recipeIRI != null) {
+ if (recipeIRI != null) {
OWLDataFactory factory = OWLManager.getOWLDataFactory();
OWLIndividual recipeIndividual = factory.getOWLNamedIndividual(recipeIRI);
if (recipeIndividual != null) {
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRecipeTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRecipeTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRecipeTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRecipeTest.java Sat Nov 26 01:54:27 2011
@@ -67,18 +67,15 @@ public class AddRecipeTest {
@Before
public void setUp() {
Dictionary<String, Object> configuration = new Hashtable<String, Object>();
- onm = new ONManagerImpl((TcManager) null,null,configuration);
- store = new RuleStoreImpl(onm, configuration,"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+ store = new RuleStoreImpl(configuration,"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
store = null;
- onm = null;
}
public RuleStore store = null;
- public ONManager onm = null;
/**
* Test of addRecipe method, of class AddRecipe.
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRuleTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRuleTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRuleTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRuleTest.java Sat Nov 26 01:54:27 2011
@@ -61,19 +61,16 @@ public class AddRuleTest {
@Before
public void setUp() {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- onm = new ONManagerImpl((TcManager) null, null, configuration);
- store = new RuleStoreImpl(onm, configuration,
+ store = new RuleStoreImpl(configuration,
"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
store = null;
- onm = null;
}
public RuleStore store = null;
- public ONManager onm = null;
/**
* Test of addRule method, of class AddRule.
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRecipeTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRecipeTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRecipeTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRecipeTest.java Sat Nov 26 01:54:27 2011
@@ -60,19 +60,16 @@ public class GetRecipeTest {
@Before
public void setUp() {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- onm = new ONManagerImpl((TcManager) null, null, configuration);
- store = new RuleStoreImpl(onm, configuration,
+ store = new RuleStoreImpl(configuration,
"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
store = null;
- onm = null;
}
public RuleStore store = null;
- public ONManager onm = null;
/**
* Test of getRule method, of class GetRecipe.
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRuleTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRuleTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRuleTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRuleTest.java Sat Nov 26 01:54:27 2011
@@ -62,19 +62,15 @@ public class GetRuleTest {
@Before
public void setUp() {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- onm = new ONManagerImpl((TcManager) null, null, configuration);
- store = new RuleStoreImpl(onm, configuration,
- "./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+ store = new RuleStoreImpl(configuration, "./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
store = null;
- onm = null;
}
public RuleStore store = null;
- public ONManager onm = null;
/**
* Test of getRule method, of class GetRule.
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/LoadRuleFileTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/LoadRuleFileTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/LoadRuleFileTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/LoadRuleFileTest.java Sat Nov 26 01:54:27 2011
@@ -81,14 +81,12 @@ public class LoadRuleFileTest {
@Test
public void testKReSLoadRuleFile() throws OWLOntologyStorageException {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- ONManager onm = new ONManagerImpl((TcManager) null, null, configuration);
Dictionary<String,Object> configuration2 = new Hashtable<String,Object>();
// configuration2.put(RuleStoreImpl.RULE_ONTOLOGY, "");
configuration2.put(RuleStore.RULE_NAMESPACE, "http://kres.iks-project.eu/ontology/meta/rmi.owl#");
- RuleStore store = new RuleStoreImpl(onm, configuration2,
+ RuleStore store = new RuleStoreImpl(configuration2,
"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
- RuleStore newstore = new RuleStoreImpl(new ONManagerImpl((TcManager) null, null, configuration),
- configuration2, store.getOntology());
+ RuleStore newstore = new RuleStoreImpl(configuration2, store.getOntology());
// Load the example file
LoadRuleFile load = new LoadRuleFile("./src/main/resources/RuleOntology/TestRuleFileExample.txt",
store);
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRecipeTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRecipeTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRecipeTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRecipeTest.java Sat Nov 26 01:54:27 2011
@@ -60,19 +60,16 @@ public class RemoveRecipeTest {
@Before
public void setUp() {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- onm = new ONManagerImpl((TcManager) null, null, configuration);
- store = new RuleStoreImpl(onm, configuration,
+ store = new RuleStoreImpl(configuration,
"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
store = null;
- onm = null;
}
public RuleStore store = null;
- public ONManager onm = null;
/**
* Test of removeRule method, of class RemoveRecipe.
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRuleTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRuleTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRuleTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRuleTest.java Sat Nov 26 01:54:27 2011
@@ -60,19 +60,16 @@ public class RemoveRuleTest {
@Before
public void setUp() {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- onm = new ONManagerImpl((TcManager) null, null, configuration);
- store = new RuleStoreImpl(onm, configuration,
+ store = new RuleStoreImpl(configuration,
"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
store = null;
- onm = null;
}
public RuleStore store = null;
- public ONManager onm = null;
/**
* Test of removeRule method, of class RemoveRule.
Modified: incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RuleStoreTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RuleStoreTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RuleStoreTest.java (original)
+++ incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RuleStoreTest.java Sat Nov 26 01:54:27 2011
@@ -66,10 +66,8 @@ public class RuleStoreTest {
@Before
public void setUp() {
Dictionary<String,Object> configuration = new Hashtable<String,Object>();
- store = new RuleStoreImpl(new ONManagerImpl((TcManager) null, null, configuration), configuration,
- "./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
- blankStore = new RuleStoreImpl(new ONManagerImpl((TcManager) null, null, configuration),
- configuration, "");
+ store = new RuleStoreImpl(configuration, "./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+ blankStore = new RuleStoreImpl(configuration, "");
}
@After
Modified: incubator/stanbol/trunk/rules/refactor/src/test/java/org/apache/stanbol/rules/refactor/RefactoringTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/refactor/src/test/java/org/apache/stanbol/rules/refactor/RefactoringTest.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/refactor/src/test/java/org/apache/stanbol/rules/refactor/RefactoringTest.java (original)
+++ incubator/stanbol/trunk/rules/refactor/src/test/java/org/apache/stanbol/rules/refactor/RefactoringTest.java Sat Nov 26 01:54:27 2011
@@ -235,6 +235,21 @@ public class RefactoringTest {
public boolean removeRule(Rule rule) {
throw new UnsupportedOperationException("Not supported yet.");
}
+
+ @Override
+ public Recipe addRuleToRecipe(Recipe recipe,
+ InputStream ruleInKReSSyntax) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Recipe addRuleToRecipe(String recipeID,
+ InputStream ruleInKReSSyntax)
+ throws NoSuchRecipeException {
+ // TODO Auto-generated method stub
+ return null;
+ }
};
}
@@ -256,6 +271,7 @@ public class RefactoringTest {
TcManager tcm = new SpecialTcManager(qe, wtcp);
ONManager onm = new ONManagerImpl(tcm, wtcp, emptyConfig);
+
Refactorer refactorer = new RefactorerImpl(null, new Serializer(), tcm, onm, ruleStore, emptyConfig);
try {
refactorer.ontologyRefactoring(ontology, recipeIRI);
Modified: incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RecipeResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RecipeResource.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RecipeResource.java (original)
+++ incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RecipeResource.java Sat Nov 26 01:54:27 2011
@@ -1,19 +1,19 @@
/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
@@ -21,6 +21,7 @@
package org.apache.stanbol.rules.web.resources;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -48,6 +49,8 @@ import org.apache.stanbol.commons.web.ba
import org.apache.stanbol.commons.web.base.format.KRFormat;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
+import org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
+import org.apache.stanbol.rules.base.api.Recipe;
import org.apache.stanbol.rules.base.api.RuleStore;
import org.apache.stanbol.rules.manager.changes.AddRecipe;
import org.apache.stanbol.rules.manager.changes.GetRecipe;
@@ -67,6 +70,8 @@ import org.semanticweb.owlapi.model.OWLO
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.sun.jersey.multipart.FormDataParam;
+
/**
*
* @author elvio, andrea.nuzzolese
@@ -80,7 +85,8 @@ public class RecipeResource extends Base
private Logger log = LoggerFactory.getLogger(getClass());
- private RuleStoreImpl kresRuleStore;
+ private RuleStoreImpl ruleStore;
+ private ClerezzaOntologyStorage storage;
/**
* To get the RuleStoreImpl where are stored the rules and the recipes
@@ -89,9 +95,9 @@ public class RecipeResource extends Base
* {To get the context where the REST service is running.}
*/
public RecipeResource(@Context ServletContext servletContext) {
- this.kresRuleStore = (RuleStoreImpl) ContextHelper.getServiceFromContext(RuleStore.class,
- servletContext);
+ this.ruleStore = (RuleStoreImpl) ContextHelper.getServiceFromContext(RuleStore.class, servletContext);
this.onm = (ONManager) ContextHelper.getServiceFromContext(ONManager.class, servletContext);
+ this.storage = onm.getOntologyStore();
}
/**
@@ -108,13 +114,11 @@ public class RecipeResource extends Base
*/
@GET
@Path("/{uri:.+}")
- @Produces(value = {KRFormat.RDF_XML, KRFormat.RDF_JSON, KRFormat.OWL_XML, KRFormat.FUNCTIONAL_OWL,
- KRFormat.MANCHESTER_OWL, KRFormat.TURTLE})
+ @Produces(value = {KRFormat.RDF_XML, KRFormat.RDF_JSON, KRFormat.OWL_XML, KRFormat.FUNCTIONAL_OWL,KRFormat.MANCHESTER_OWL, KRFormat.TURTLE})
public Response getRecipe(@PathParam("uri") String uri) throws OWLOntologyCreationException {
try {
-
- GetRecipe rule = new GetRecipe(kresRuleStore);
- ;
+
+ GetRecipe rule = new GetRecipe(ruleStore);;
// String ID =
// kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
@@ -127,7 +131,7 @@ public class RecipeResource extends Base
// The recipe is retrieved (import declarations point to
// KReS Services)
- OWLOntology onto = kresRuleStore.getOntology();
+ OWLOntology onto = ruleStore.getOntology();
OWLOntology newmodel = OWLManager.createOWLOntologyManager().createOntology(
onto.getOntologyID());
OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
@@ -174,7 +178,7 @@ public class RecipeResource extends Base
} else {
// The recipe is retrieved (import declarations point to
// KReS Services)
- OWLOntology onto = kresRuleStore.getOntology();
+ OWLOntology onto = ruleStore.getOntology();
OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
OWLObjectProperty prop = factory.getOWLObjectProperty(IRI
@@ -245,14 +249,22 @@ public class RecipeResource extends Base
*/
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Produces(value = {KRFormat.RDF_XML, KRFormat.TURTLE, KRFormat.OWL_XML, KRFormat.FUNCTIONAL_OWL,
- KRFormat.MANCHESTER_OWL, KRFormat.RDF_JSON})
- public Response addRecipe(@FormParam(value = "recipe") String recipe,
- @FormParam(value = "description") String description) {
+ @Produces(value = {KRFormat.RDF_XML, KRFormat.TURTLE, KRFormat.OWL_XML, KRFormat.FUNCTIONAL_OWL,KRFormat.MANCHESTER_OWL, KRFormat.RDF_JSON})
+ public Response addRecipe(@FormParam(value = "recipe") String recipe, @FormParam(value = "description") String description) {
try {
- AddRecipe instance = new AddRecipe(kresRuleStore);
+ boolean added = ruleStore.addRecipe(IRI.create(recipe), description);
+
+ if(added){
+ return Response.status(Status.OK).build();
+ }
+ else{
+ return Response.status(Status.CONFLICT).build();
+ }
+
+ /*
+ AddRecipe instance = new AddRecipe(ruleStore);
// String ID =
// kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
@@ -261,18 +273,62 @@ public class RecipeResource extends Base
if (!ok) {
- return Response.status(Status.CONFLICT).build();
+ return Response.status(Status.CONFLICT).build();
} else {
- kresRuleStore.saveOntology();
+ ruleStore.saveOntology();
return Response.status(Status.OK).build();
}
+ */
} catch (Exception e) {
- throw new WebApplicationException(e, Status.INTERNAL_SERVER_ERROR);
+ return Response.status(Status.INTERNAL_SERVER_ERROR).build();
+ }
+ }
+
+
+ /**
+ * To add a recipe without rules.
+ *
+ * @param recipe
+ * {A string contains the IRI of the recipe to be added}
+ * @param description
+ * {A string contains a description of the rule}
+ * @return Return: <br/>
+ * 200 The recipe has been added<br/>
+ * 409 The recipe has not been added<br/>
+ * 500 Some error occurred
+ */
+
+
+ @POST
+ @Consumes(MediaType.MULTIPART_FORM_DATA)
+ @Produces(value = {KRFormat.TEXT_PLAIN, KRFormat.RDF_JSON})
+ @Path("/{recipeID:.+}")
+ public Response addRulesToRecipe(@PathParam(value = "recipeID") String recipeID, @FormDataParam(value = "recipeText") InputStream rules) {
+
+ try {
+
+ System.out.println(rules);
+
+ Recipe recipe = ruleStore.addRuleToRecipe(recipeID, rules);
+
+ if(recipe != null){
+ return Response.ok().build();
+ }
+ else{
+ return Response.status(Status.NO_CONTENT).build();
+ }
+
+
+
+ } catch (Exception e) {
+ log.error("Error while adding a rule to a recipe.", e);
+ return Response.status(Status.INTERNAL_SERVER_ERROR).build();
}
}
+
/**
* To delete a recipe
*
@@ -289,7 +345,7 @@ public class RecipeResource extends Base
try {
- RemoveRecipe instance = new RemoveRecipe(kresRuleStore);
+ RemoveRecipe instance = new RemoveRecipe(ruleStore);
// String ID =
// kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
@@ -299,7 +355,7 @@ public class RecipeResource extends Base
if (!ok) {
return Response.status(Status.CONFLICT).build();
} else {
- kresRuleStore.saveOntology();
+ ruleStore.saveOntology();
return Response.ok().build();
}
Modified: incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java (original)
+++ incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java Sat Nov 26 01:54:27 2011
@@ -68,14 +68,10 @@ public class RefactorResource extends Ba
private Logger log = LoggerFactory.getLogger(getClass());
- protected ONManager onManager;
protected Refactorer refactorer;
- protected TcManager tcManager;
-
+
public RefactorResource(@Context ServletContext servletContext) {
refactorer = (Refactorer) ContextHelper.getServiceFromContext(Refactorer.class, servletContext);
- onManager = (ONManager) ContextHelper.getServiceFromContext(ONManager.class, servletContext);
- tcManager = (TcManager) ContextHelper.getServiceFromContext(TcManager.class, servletContext);
if (refactorer == null) {
throw new IllegalStateException("SemionRefactorer missing in ServletContext");
}
@@ -168,11 +164,7 @@ public class RefactorResource extends Ba
return refactorer.ontologyRefactoring(inputOntology, actualRecipe);
}
- public String getNamespace() {
- return onManager.getOntologyNetworkNamespace();
- }
-
- @POST
+ @POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(value = {KRFormat.TURTLE, KRFormat.FUNCTIONAL_OWL, KRFormat.MANCHESTER_OWL, KRFormat.RDF_XML,
KRFormat.OWL_XML, KRFormat.RDF_JSON})
Modified: incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleResource.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleResource.java (original)
+++ incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleResource.java Sat Nov 26 01:54:27 2011
@@ -77,11 +77,9 @@ import org.slf4j.LoggerFactory;
@Path("/rule")
public class RuleResource extends BaseStanbolResource {
- protected ONManager onm;
-
private Logger log = LoggerFactory.getLogger(getClass());
- private RuleStore kresRuleStore;
+ private RuleStore ruleStore;
private HashMap<IRI,String> map;
private String desc;
@@ -92,9 +90,8 @@ public class RuleResource extends BaseSt
* {To get the context where the REST service is running.}
*/
public RuleResource(@Context ServletContext servletContext) {
- this.kresRuleStore = (RuleStoreImpl) ContextHelper.getServiceFromContext(RuleStore.class,
+ this.ruleStore = (RuleStoreImpl) ContextHelper.getServiceFromContext(RuleStore.class,
servletContext);
- this.onm = (ONManager) ContextHelper.getServiceFromContext(ONManager.class, servletContext);
}
/**
@@ -117,7 +114,7 @@ public class RuleResource extends BaseSt
try {
- GetRule recipe = new GetRule(kresRuleStore);
+ GetRule recipe = new GetRule(ruleStore);
if (uri.equals("all")) {
HashMap<IRI,String> rule = recipe.getAllRules();
@@ -127,7 +124,7 @@ public class RuleResource extends BaseSt
return Response.status(Status.NOT_FOUND).build();
} else {
- OWLOntology onto = kresRuleStore.getOntology();
+ OWLOntology onto = ruleStore.getOntology();
OWLOntology newmodel = OWLManager.createOWLOntologyManager().createOntology(
onto.getOntologyID());
OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
@@ -171,7 +168,7 @@ public class RuleResource extends BaseSt
if (rule == null) {
return Response.status(Status.NOT_FOUND).build();
} else {
- OWLOntology onto = kresRuleStore.getOntology();
+ OWLOntology onto = ruleStore.getOntology();
OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
OWLNamedIndividual ind = factory.getOWLNamedIndividual(IRI.create(uri));
@@ -220,7 +217,7 @@ public class RuleResource extends BaseSt
KRFormat.MANCHESTER_OWL, KRFormat.RDF_JSON})
public Response getRulesOfRecipe(@PathParam("uri") String recipeURI) {
- GetRule kReSGetRule = new GetRule(kresRuleStore);
+ GetRule kReSGetRule = new GetRule(ruleStore);
String recipeURIEnc;
try {
recipeURIEnc = URLEncoder.encode(
@@ -289,7 +286,7 @@ public class RuleResource extends BaseSt
// The rule is already inside the rule store
if ((kres_syntax == null)) {
// Get the rule
- GetRule inrule = new GetRule(kresRuleStore);
+ GetRule inrule = new GetRule(ruleStore);
this.map = inrule.getRule(IRI.create(rule));
if (map == null) {
@@ -297,7 +294,7 @@ public class RuleResource extends BaseSt
}
// Get the recipe
- GetRecipe getrecipe = new GetRecipe(kresRuleStore);
+ GetRecipe getrecipe = new GetRecipe(ruleStore);
this.map = getrecipe.getRecipe(IRI.create(recipe));
if (map != null) {
this.desc = getrecipe.getDescription(IRI.create(recipe));
@@ -314,17 +311,17 @@ public class RuleResource extends BaseSt
// Add the new rule to the end
ruleseq.add(IRI.create(rule));
// Remove the old recipe
- RemoveRecipe remove = new RemoveRecipe(kresRuleStore);
+ RemoveRecipe remove = new RemoveRecipe(ruleStore);
boolean ok = remove.removeRecipe(IRI.create(recipe));
if (!ok) return Response.status(Status.CONFLICT).build();
// Add the recipe with the new rule
- AddRecipe newadd = new AddRecipe(kresRuleStore);
+ AddRecipe newadd = new AddRecipe(ruleStore);
ok = newadd.addRecipe(IRI.create(recipe), ruleseq, desc);
if (ok) {
- kresRuleStore.saveOntology();
+ ruleStore.saveOntology();
return Response.ok().build();
} else {
return Response.status(Status.NO_CONTENT).build();
@@ -334,7 +331,7 @@ public class RuleResource extends BaseSt
// The rule is added to the store and to the recipe
if ((kres_syntax != null) & (description != null)) {
// Get the rule
- AddRule inrule = new AddRule(kresRuleStore);
+ AddRule inrule = new AddRule(ruleStore);
boolean ok = inrule.addRule(IRI.create(rule), kres_syntax, description);
if (!ok) {
log.error("Problem to add: " + rule);
@@ -343,7 +340,7 @@ public class RuleResource extends BaseSt
}
// Get the recipe
- GetRecipe getrecipe = new GetRecipe(kresRuleStore);
+ GetRecipe getrecipe = new GetRecipe(ruleStore);
this.map = getrecipe.getRecipe(IRI.create(recipe));
if (map != null) {
this.desc = getrecipe.getDescription(IRI.create(recipe));
@@ -361,7 +358,7 @@ public class RuleResource extends BaseSt
// Add the new rule to the end
ruleseq.add(IRI.create(rule));
// Remove the old recipe
- RemoveRecipe remove = new RemoveRecipe(kresRuleStore);
+ RemoveRecipe remove = new RemoveRecipe(ruleStore);
ok = remove.removeRecipe(IRI.create(recipe));
if (!ok) {
System.err.println("ERROR TO REMOVE OLD RECIPE: " + recipe);
@@ -369,10 +366,10 @@ public class RuleResource extends BaseSt
}
// Add the recipe with the new rule
- AddRecipe newadd = new AddRecipe(kresRuleStore);
+ AddRecipe newadd = new AddRecipe(ruleStore);
ok = newadd.addRecipe(IRI.create(recipe), ruleseq, desc);
if (ok) {
- kresRuleStore.saveOntology();
+ ruleStore.saveOntology();
return Response.ok().build();
} else {
return Response.status(Status.NO_CONTENT).build();
@@ -418,14 +415,14 @@ public class RuleResource extends BaseSt
recipe = recipe.replace(" ", "").trim();
rule = rule.replace(" ", "").trim();
// Get the rule
- GetRule getrule = new GetRule(kresRuleStore);
+ GetRule getrule = new GetRule(ruleStore);
this.map = getrule.getRule(IRI.create(rule));
if (map == null) {
return Response.status(Status.NOT_FOUND).build();
}
// Get the recipe
- GetRecipe getrecipe = new GetRecipe(kresRuleStore);
+ GetRecipe getrecipe = new GetRecipe(ruleStore);
this.map = getrecipe.getRecipe(IRI.create(recipe));
if (map != null) {
this.desc = getrecipe.getDescription(IRI.create(recipe));
@@ -435,11 +432,11 @@ public class RuleResource extends BaseSt
}
// Remove rule from recipe
- RemoveRule remove = new RemoveRule(kresRuleStore);
+ RemoveRule remove = new RemoveRule(ruleStore);
ok = remove.removeRuleFromRecipe(IRI.create(rule), IRI.create(recipe));
if (ok) {
- kresRuleStore.saveOntology();
+ ruleStore.saveOntology();
return Response.status(Status.OK).build();
} else {
return Response.status(Status.NO_CONTENT).build();
@@ -450,17 +447,17 @@ public class RuleResource extends BaseSt
if ((recipe == null) && (rule != null)) {
rule = rule.replace(" ", "").trim();
// Get the rule
- GetRule getrule = new GetRule(kresRuleStore);
+ GetRule getrule = new GetRule(ruleStore);
this.map = getrule.getRule(IRI.create(rule));
if (map == null) {
return Response.status(Status.NOT_FOUND).build();
}
// Remove the old rule
- RemoveRule remove = new RemoveRule(kresRuleStore);
+ RemoveRule remove = new RemoveRule(ruleStore);
ok = remove.removeRule(IRI.create(rule));
if (ok) {
- kresRuleStore.saveOntology();
+ ruleStore.saveOntology();
return Response.status(Status.OK).build();
} else {
return Response.status(Status.NO_CONTENT).build();
Modified: incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleStoreResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleStoreResource.java?rev=1206392&r1=1206391&r2=1206392&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleStoreResource.java (original)
+++ incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleStoreResource.java Sat Nov 26 01:54:27 2011
@@ -38,7 +38,7 @@ import org.apache.stanbol.rules.manager.
@Path("/rulestore")
public class RuleStoreResource extends BaseStanbolResource {
- private RuleStoreImpl kresRuleStore;
+ private RuleStoreImpl ruleStore;
/**
* To get the RuleStoreImpl where are stored the rules and the recipes
@@ -46,8 +46,8 @@ public class RuleStoreResource extends B
* @param servletContext {To get the context where the REST service is running.}
*/
public RuleStoreResource(@Context ServletContext servletContext){
- this.kresRuleStore = (RuleStoreImpl) servletContext.getAttribute(RuleStoreImpl.class.getName());
- if (kresRuleStore == null) {
+ this.ruleStore = (RuleStoreImpl) servletContext.getAttribute(RuleStoreImpl.class.getName());
+ if (ruleStore == null) {
throw new IllegalStateException(
"KReSRuleStore with stored rules and recipes is missing in ServletContext");
}
@@ -61,7 +61,7 @@ public class RuleStoreResource extends B
//@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces("application/rdf+xml")
public Response getRuleStore(){
- return Response.ok(this.kresRuleStore).build();
+ return Response.ok(this.ruleStore).build();
}
}