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);
+ }
}