Author: anuzzolese
Date: Tue Dec 20 17:31:46 2011
New Revision: 1221363

URL: http://svn.apache.org/viewvc?rev=1221363&view=rev
Log:
[STANBOL-418] The bug was due to an erroneous generation of object URIs during 
the conversion of the Stanbol rules to the Jena rules. Namely, quoted URIs were 
further embedded in other quote.
As a consequence the reasoner service based on jena did not perform the 
classification properly. 
The bug has been fixed for those classes that presented the problem, i.e., 
ClassAtom, DatavaluedPropertyAtom and IndividualPropertyAtom.

Modified:
    
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java
    
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java
    
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java

Modified: 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java?rev=1221363&r1=1221362&r2=1221363&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java
 (original)
+++ 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java
 Tue Dec 20 17:31:46 2011
@@ -34,6 +34,7 @@ import org.semanticweb.owlapi.model.SWRL
 import org.semanticweb.owlapi.model.SWRLIArgument;
 
 import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Node_URI;
 import com.hp.hpl.jena.rdf.model.Model;
 import com.hp.hpl.jena.rdf.model.Resource;
 import com.hp.hpl.jena.reasoner.TriplePattern;
@@ -223,8 +224,12 @@ public class ClassAtom extends CoreAtom 
                        classNode = Node_RuleVariable.createVariable(object);
                }
                else{
+                       if(object.startsWith("<") && object.endsWith(">")){
+                               object = object.substring(1, object.length()-1);
+                       }
                        classNode = Node_RuleVariable.createURI(object);
                }
+               
                ClauseEntry clauseEntry = new TriplePattern(argumnetNode, 
Node_RuleVariable.createURI(RDF.type.getURI()), classNode);
                return new JenaClauseEntryImpl(clauseEntry, jenaVariableMap);
        }

Modified: 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java?rev=1221363&r1=1221362&r2=1221363&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java
 (original)
+++ 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java
 Tue Dec 20 17:31:46 2011
@@ -321,6 +321,9 @@ public class DatavaluedPropertyAtom exte
                        subjectNode = new Node_RuleVariable(subject, 
jenaVariableMap.getVariableIndex(subject));
                }
                else{
+                       if(subject.startsWith("<") && subject.endsWith(">")){
+                               subject = subject.substring(1, 
subject.length()-1);
+                       }
                        subjectNode = Node_RuleVariable.createURI(subject);     
                }
                
@@ -334,6 +337,9 @@ public class DatavaluedPropertyAtom exte
                        objectNode = new Node_RuleVariable(object, 
jenaVariableMap.getVariableIndex(object));
                }
                else{
+                       if(object.startsWith("<") && object.endsWith(">")){
+                               object = object.substring(1, object.length()-1);
+                       }
                        objectNode = Node_RuleVariable.createLiteral(object);
                }
                
@@ -344,6 +350,9 @@ public class DatavaluedPropertyAtom exte
                        predicateNode = 
Node_RuleVariable.createVariable(predicate);
                }
                else{
+                       if(predicate.startsWith("<") && 
predicate.endsWith(">")){
+                               predicate = predicate.substring(1, 
predicate.length()-1);
+                       }
                        predicateNode = Node_RuleVariable.createURI(predicate);
                }
                

Modified: 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java?rev=1221363&r1=1221362&r2=1221363&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java
 (original)
+++ 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java
 Tue Dec 20 17:31:46 2011
@@ -226,45 +226,57 @@ public class IndividualPropertyAtom exte
 
     @Override
     public JenaClauseEntry toJenaClauseEntry(JenaVariableMap jenaVariableMap) {
-
-        String subject = argument1.toString();
-
-        Node subjectNode = null;
-        if 
(subject.startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)) {
-            subject = "?" + 
subject.replace("http://kres.iks-project.eu/ontology/meta/variables#";, "");
-
-            // subjectNode = Node_RuleVariable.createVariable(subject);
-            subjectNode = new Node_RuleVariable(subject, 
jenaVariableMap.getVariableIndex(subject));
-        } else {
-            subjectNode = Node_RuleVariable.createURI(subject);
-        }
-
-        String object = argument2.toString();
-        Node objectNode = null;
-        if 
(object.startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)) {
-            object = 
subject.replace("http://kres.iks-project.eu/ontology/meta/variables#";, "");
-            if (object.startsWith("?")) {
-                object = object.substring(1);
-            }
-
-            object = "?" + object;
-            objectNode = new Node_RuleVariable(object, 
jenaVariableMap.getVariableIndex(object));
-        } else {
-            objectNode = Node_RuleVariable.createURI(object);
-        }
-
-        String predicate = objectProperty.toString();
-        Node predicateNode = null;
-        if 
(predicate.startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)) {
-            predicate = 
predicate.replace("http://kres.iks-project.eu/ontology/meta/variables#";, "");
-            // predicateNode = Node_RuleVariable.createVariable(predicate);
-            predicateNode = new Node_RuleVariable(predicate, 2);
-        } else {
-            predicateNode = Node_RuleVariable.createURI(predicate);
-        }
-
-        ClauseEntry clauseEntry = new TriplePattern(subjectNode, 
predicateNode, objectNode);
-        return new JenaClauseEntryImpl(clauseEntry, jenaVariableMap);
-    }
+               
+               String subject = argument1.toString();
+               
+               Node subjectNode = null;
+               
if(subject.startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       subject = "?" + 
subject.replace("http://kres.iks-project.eu/ontology/meta/variables#";, "");
+                       
+                       //subjectNode = 
Node_RuleVariable.createVariable(subject);
+                       subjectNode = new Node_RuleVariable(subject, 
jenaVariableMap.getVariableIndex(subject));
+               }
+               else{
+                       if(subject.startsWith("<") && subject.endsWith(">")){
+                               subject = subject.substring(1, 
subject.length()-1);
+                       }
+                       subjectNode = Node_RuleVariable.createURI(subject);     
+               }
+               
+               String object = argument2.toString();
+               Node objectNode = null;
+               
if(object.startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       object = 
subject.replace("http://kres.iks-project.eu/ontology/meta/variables#";, "");
+                       if(object.startsWith("?")){
+                               object = object.substring(1);
+                       }
+                       
+                       object = "?" + object;
+                       objectNode = new Node_RuleVariable(object, 
jenaVariableMap.getVariableIndex(object));
+               }
+               else{
+                       if(object.startsWith("<") && object.endsWith(">")){
+                               object = object.substring(1, object.length()-1);
+                       }
+                       objectNode = Node_RuleVariable.createURI(object);
+               }
+               
+               String predicate = objectProperty.toString();
+               Node predicateNode = null;
+               
if(predicate.startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       predicate = 
predicate.replace("http://kres.iks-project.eu/ontology/meta/variables#";, "");
+                       //predicateNode = 
Node_RuleVariable.createVariable(predicate);
+                       predicateNode = new Node_RuleVariable(predicate, 2);
+               }
+               else{
+                       if(predicate.startsWith("<") && 
predicate.endsWith(">")){
+                               predicate = predicate.substring(1, 
predicate.length()-1);
+                       }
+                       predicateNode = Node_RuleVariable.createURI(predicate);
+               }
+               
+               ClauseEntry clauseEntry = new TriplePattern(subjectNode, 
predicateNode, objectNode);
+               return new JenaClauseEntryImpl(clauseEntry, jenaVariableMap);
+       }
 
 }


Reply via email to