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) {
 


Reply via email to