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