Author: anuzzolese
Date: Tue Apr 5 14:19:47 2011
New Revision: 1089059
URL: http://svn.apache.org/viewvc?rev=1089059&view=rev
Log:
Overrided ontologyRefactoring with ontologyRefactoring(OWLOntology
inputOntology, Recipe recipe), s.t. the transformation can be performed
starting from recipes and not only IRI references to them.
Modified:
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/api/Refactorer.java
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java
Modified:
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/api/Refactorer.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/api/Refactorer.java?rev=1089059&r1=1089058&r2=1089059&view=diff
==============================================================================
---
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/api/Refactorer.java
(original)
+++
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/api/Refactorer.java
Tue Apr 5 14:19:47 2011
@@ -3,6 +3,7 @@ package org.apache.stanbol.rules.refacto
import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.stanbol.rules.base.api.NoSuchRecipeException;
+import org.apache.stanbol.rules.base.api.Recipe;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntology;
@@ -56,4 +57,16 @@ public interface Refactorer {
public OWLOntology ontologyRefactoring(OWLOntology datasetURI, IRI
recipeIRI) throws RefactoringException,
NoSuchRecipeException;
+ /**
+ * The refactoring is perfomed by the {@code SemionRefactorer} by
invoking this method. The {@code datasetURI} is the URI
+ * of an RDF graph in KReS and the {@code recipe} is the recipe that
needs to be applied to RDF graph in order to obtain the refactoring.
+ *
+ * @param datasetURI {@link UriRef}
+ * @param recipe {@link Recipe}
+ * @return the refactored {@link MGraph}
+ * @throws SemionRefactoringException
+ * @throws NoSuchRecipeException
+ */
+ public OWLOntology ontologyRefactoring(OWLOntology datasetURI, Recipe
recipe) throws RefactoringException, NoSuchRecipeException;
+
}
Modified:
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java?rev=1089059&r1=1089058&r2=1089059&view=diff
==============================================================================
---
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java
(original)
+++
incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java
Tue Apr 5 14:19:47 2011
@@ -414,6 +414,79 @@ public class RefactorerImpl implements R
return refactoredOntology;
}
}
+
+
+ @Override
+ public OWLOntology ontologyRefactoring(OWLOntology inputOntology, Recipe
recipe) throws RefactoringException {
+ OWLOntology refactoredOntology = null;
+
+ // JenaToOwlConvert jenaToOwlConvert = new JenaToOwlConvert();
+
+ // OntModel ontModel =
+ // jenaToOwlConvert.ModelOwlToJenaConvert(inputOntology, "RDF/XML");
+
+ OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
+
+
+ RuleList ruleList = recipe.getkReSRuleList();
+ log.info("RULE LIST SIZE : " + ruleList.size());
+
+ OWLOntologyManager ontologyManager =
OWLManager.createOWLOntologyManager();
+ OWLOntologyManager ontologyManager2 =
OWLManager.createOWLOntologyManager();
+
+ MGraph unionMGraph = new SimpleMGraph();
+
+ MGraph mGraph =
OWLAPIToClerezzaConverter.owlOntologyToClerezzaMGraph(inputOntology);
+
+ for (Rule kReSRule : ruleList) {
+ String sparql = kReSRule.toSPARQL();
+ log.info("SPARQL : " + sparql);
+
+ Graph constructedGraph = null;
+
+ switch (kReSRule.getExpressiveness()) {
+ case KReSCore:
+ constructedGraph = kReSCoreOperation(sparql, mGraph);
+ break;
+ case ForwardChaining:
+ ForwardChainingRefactoringGraph
forwardChainingRefactoringGraph = forwardChainingOperation(
+ sparql, mGraph);
+ constructedGraph =
forwardChainingRefactoringGraph.getOutputGraph();
+ mGraph = forwardChainingRefactoringGraph.getInputGraph();
+ break;
+ case Reflexive:
+ constructedGraph = kReSCoreOperation(sparql, unionMGraph);
+ break;
+ case SPARQLConstruct:
+ constructedGraph = kReSCoreOperation(sparql, mGraph);
+ break;
+ case SPARQLDelete:
+ constructedGraph = sparqlUpdateOperation(sparql,
unionMGraph);
+ break;
+ case SPARQLDeleteData:
+ constructedGraph = sparqlUpdateOperation(sparql,
unionMGraph);
+ break;
+ default:
+ break;
+ }
+
+ if (constructedGraph != null) {
+ unionMGraph.addAll(constructedGraph);
+ }
+
+ }
+
+ refactoredOntology =
OWLAPIToClerezzaConverter.clerezzaMGraphToOWLOntology(unionMGraph);
+
+
+ if (refactoredOntology == null) {
+ throw new RefactoringException();
+ } else {
+ return refactoredOntology;
+ }
+ }
+
+
private Graph kReSCoreOperation(String query, MGraph mGraph) {