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/04/05 16:19:47 UTC

svn commit: r1089059 - in /incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor: api/Refactorer.java impl/RefactorerImpl.java

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