Author: anuzzolese
Date: Sat Nov 26 19:34:08 2011
New Revision: 1206554

URL: http://svn.apache.org/viewvc?rev=1206554&view=rev
Log:
[STANBOL-396] Implemented the body of the toSWRL(SWRLAtom) method for 
GreaterThanAtom and LessThanAtom built-ins.

Added:
    
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/
    
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/AtomTest.java
    
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtomTest.java
    
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/LessThanAtomTest.java
Modified:
    
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java
    
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java

Modified: 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java?rev=1206554&r1=1206553&r2=1206554&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java
 (original)
+++ 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java
 Sat Nov 26 19:34:08 2011
@@ -16,15 +16,24 @@
 */
 package org.apache.stanbol.rules.manager.atoms;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
 import org.apache.stanbol.rules.manager.SPARQLComparison;
 import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLDataFactory;
 import org.semanticweb.owlapi.model.OWLLiteral;
 import org.semanticweb.owlapi.model.SWRLAtom;
+import org.semanticweb.owlapi.model.SWRLBuiltInAtom;
+import org.semanticweb.owlapi.model.SWRLDArgument;
+import org.semanticweb.owlapi.vocab.SWRLBuiltInsVocabulary;
 
 import com.hp.hpl.jena.rdf.model.Model;
 import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.vocabulary.XSD;
 
 
 public class GreaterThanAtom extends ComparisonAtom {
@@ -77,8 +86,94 @@ public class GreaterThanAtom extends Com
 
        @Override
        public SWRLAtom toSWRL(OWLDataFactory factory) {
-               // TODO Auto-generated method stub
-               return null;
+               
+               List<SWRLDArgument> swrldArguments = new 
ArrayList<SWRLDArgument>();
+               
+               SWRLDArgument swrldArgument1 = null;
+               
+               
if(argument1.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       
+                       swrldArgument1 = 
factory.getSWRLVariable(IRI.create(argument1.toString()));
+               }
+               else{
+                       
+                       OWLLiteral literal = null;
+                       if(argument1 instanceof TypedLiteralAtom){
+                               TypedLiteralAtom typedLiteralAtom = 
(TypedLiteralAtom) argument1;
+                                       
+                               URIResource xsdType = 
typedLiteralAtom.getXsdType();
+                               
+                               if(xsdType.getURI().equals(XSD.xboolean)){
+                                       literal = 
factory.getOWLLiteral(Boolean.valueOf(argument1.toString()).booleanValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xdouble)){
+                                       literal = 
factory.getOWLLiteral(Double.valueOf(argument1.toString()).doubleValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xfloat)){
+                                       literal = 
factory.getOWLLiteral(Float.valueOf(argument1.toString()).floatValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xint)){
+                                       literal = 
factory.getOWLLiteral(Integer.valueOf(argument1.toString()).intValue());
+                               }
+                               
+                               else{
+                                       literal = 
factory.getOWLLiteral(argument1.toString());  
+                               }
+                               
+                       }
+                       else{
+                               literal = 
factory.getOWLLiteral(argument1.toString());
+                       }
+                       
+                       swrldArgument1 = 
factory.getSWRLLiteralArgument(literal);
+                       
+               }
+               
+               SWRLDArgument swrldArgument2 = null;
+               
+               
if(argument2.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       
+                       swrldArgument2 = 
factory.getSWRLVariable(IRI.create(argument2.toString()));
+               }
+               else{
+                       
+                       OWLLiteral literal = null;
+                       if(argument2 instanceof TypedLiteralAtom){
+                               TypedLiteralAtom typedLiteralAtom = 
(TypedLiteralAtom) argument2;
+                                       
+                               URIResource xsdType = 
typedLiteralAtom.getXsdType();
+                               
+                               if(xsdType.getURI().equals(XSD.xboolean)){
+                                       literal = 
factory.getOWLLiteral(Boolean.valueOf(argument2.toString()).booleanValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xdouble)){
+                                       literal = 
factory.getOWLLiteral(Double.valueOf(argument2.toString()).doubleValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xfloat)){
+                                       literal = 
factory.getOWLLiteral(Float.valueOf(argument2.toString()).floatValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xint)){
+                                       literal = 
factory.getOWLLiteral(Integer.valueOf(argument2.toString()).intValue());
+                               }
+                               
+                               else{
+                                       literal = 
factory.getOWLLiteral(argument2.toString());  
+                               }
+                               
+                       }
+                       else{
+                               literal = 
factory.getOWLLiteral(argument2.toString());
+                       }
+                       
+                       swrldArgument2 = 
factory.getSWRLLiteralArgument(literal);
+                       
+               }
+               
+               swrldArguments.add(swrldArgument1);
+               swrldArguments.add(swrldArgument2);
+               
+               SWRLBuiltInAtom swrlBuiltInAtom = 
factory.getSWRLBuiltInAtom(SWRLBuiltInsVocabulary.GREATER_THAN.getIRI(), 
swrldArguments);
+               return swrlBuiltInAtom;
        }
 
        @Override

Modified: 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java?rev=1206554&r1=1206553&r2=1206554&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java
 (original)
+++ 
incubator/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java
 Sat Nov 26 19:34:08 2011
@@ -16,15 +16,24 @@
 */
 package org.apache.stanbol.rules.manager.atoms;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
 import org.apache.stanbol.rules.manager.SPARQLComparison;
 import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLDataFactory;
 import org.semanticweb.owlapi.model.OWLLiteral;
 import org.semanticweb.owlapi.model.SWRLAtom;
+import org.semanticweb.owlapi.model.SWRLBuiltInAtom;
+import org.semanticweb.owlapi.model.SWRLDArgument;
+import org.semanticweb.owlapi.vocab.SWRLBuiltInsVocabulary;
 
 import com.hp.hpl.jena.rdf.model.Model;
 import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.vocabulary.XSD;
 
 
 public class LessThanAtom extends ComparisonAtom {
@@ -77,8 +86,93 @@ public class LessThanAtom extends Compar
 
        @Override
        public SWRLAtom toSWRL(OWLDataFactory factory) {
-               // TODO Auto-generated method stub
-               return null;
+               List<SWRLDArgument> swrldArguments = new 
ArrayList<SWRLDArgument>();
+       
+               SWRLDArgument swrldArgument1 = null;
+               
+               
if(argument1.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       
+                       swrldArgument1 = 
factory.getSWRLVariable(IRI.create(argument1.toString()));
+               }
+               else{
+                       
+                       OWLLiteral literal = null;
+                       if(argument1 instanceof TypedLiteralAtom){
+                               TypedLiteralAtom typedLiteralAtom = 
(TypedLiteralAtom) argument1;
+                                       
+                               URIResource xsdType = 
typedLiteralAtom.getXsdType();
+                               
+                               if(xsdType.getURI().equals(XSD.xboolean)){
+                                       literal = 
factory.getOWLLiteral(Boolean.valueOf(argument1.toString()).booleanValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xdouble)){
+                                       literal = 
factory.getOWLLiteral(Double.valueOf(argument1.toString()).doubleValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xfloat)){
+                                       literal = 
factory.getOWLLiteral(Float.valueOf(argument1.toString()).floatValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xint)){
+                                       literal = 
factory.getOWLLiteral(Integer.valueOf(argument1.toString()).intValue());
+                               }
+                               
+                               else{
+                                       literal = 
factory.getOWLLiteral(argument1.toString());  
+                               }
+                               
+                       }
+                       else{
+                               literal = 
factory.getOWLLiteral(argument1.toString());
+                       }
+                       
+                       swrldArgument1 = 
factory.getSWRLLiteralArgument(literal);
+                       
+               }
+               
+               SWRLDArgument swrldArgument2 = null;
+               
+               
if(argument2.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#";)){
+                       
+                       swrldArgument2 = 
factory.getSWRLVariable(IRI.create(argument2.toString()));
+               }
+               else{
+                       
+                       OWLLiteral literal = null;
+                       if(argument2 instanceof TypedLiteralAtom){
+                               TypedLiteralAtom typedLiteralAtom = 
(TypedLiteralAtom) argument2;
+                                       
+                               URIResource xsdType = 
typedLiteralAtom.getXsdType();
+                               
+                               if(xsdType.getURI().equals(XSD.xboolean)){
+                                       literal = 
factory.getOWLLiteral(Boolean.valueOf(argument2.toString()).booleanValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xdouble)){
+                                       literal = 
factory.getOWLLiteral(Double.valueOf(argument2.toString()).doubleValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xfloat)){
+                                       literal = 
factory.getOWLLiteral(Float.valueOf(argument2.toString()).floatValue());
+                               }
+                               else if(xsdType.getURI().equals(XSD.xint)){
+                                       literal = 
factory.getOWLLiteral(Integer.valueOf(argument2.toString()).intValue());
+                               }
+                               
+                               else{
+                                       literal = 
factory.getOWLLiteral(argument2.toString());  
+                               }
+                               
+                       }
+                       else{
+                               literal = 
factory.getOWLLiteral(argument2.toString());
+                       }
+                       
+                       swrldArgument2 = 
factory.getSWRLLiteralArgument(literal);
+                       
+               }
+               
+               swrldArguments.add(swrldArgument1);
+               swrldArguments.add(swrldArgument2);
+               
+               SWRLBuiltInAtom swrlBuiltInAtom = 
factory.getSWRLBuiltInAtom(SWRLBuiltInsVocabulary.LESS_THAN.getIRI(), 
swrldArguments);
+               return swrlBuiltInAtom;
        }
 
        @Override

Added: 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/AtomTest.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/AtomTest.java?rev=1206554&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/AtomTest.java
 (added)
+++ 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/AtomTest.java
 Sat Nov 26 19:34:08 2011
@@ -0,0 +1,53 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import static org.junit.Assert.fail;
+
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.junit.Before;
+import org.junit.Test;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+public abstract class AtomTest {
+       
+       
+       protected OWLDataFactory factory;
+       
+       @Before
+       public void init(){
+               OWLOntologyManager manager = 
OWLManager.createOWLOntologyManager();
+               this.factory = manager.getOWLDataFactory();
+       }
+
+       @Test
+       public abstract void testValidAtomWithVariableArguments();
+       
+       
+       @Test
+       public abstract void testValidAtomWithLiteralArguments();
+       
+       
+       @Test
+       public abstract void testValidAtomWithTypedLiteralArguments();
+       
+       protected void execTest(RuleAtom ruleAtom){
+               String stanbolSyntax = ruleAtom.toKReSSyntax();
+               if(stanbolSyntax == null){
+                       fail(GreaterThanAtom.class.getCanonicalName() + " does 
not produce any rule in Stanbo syntax.");
+               }
+               
+               String sparql = ruleAtom.toSPARQL().getObject();                
+               if(sparql == null){
+                       fail(GreaterThanAtom.class.getCanonicalName() + " does 
not produce any rule as SPARQL CONSTRUCT.");
+               }
+               
+               SWRLAtom swrlAtom = ruleAtom.toSWRL(factory);
+               
+               if(swrlAtom == null){
+                       fail(GreaterThanAtom.class.getCanonicalName() + " does 
not produce any rule in SWRL.");
+               }
+       }
+       
+}

Added: 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtomTest.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtomTest.java?rev=1206554&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtomTest.java
 (added)
+++ 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtomTest.java
 Sat Nov 26 19:34:08 2011
@@ -0,0 +1,76 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.junit.Before;
+import org.junit.Test;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+import com.hp.hpl.jena.vocabulary.XSD;
+
+
+public class GreaterThanAtomTest extends AtomTest {
+
+       private Object variable1;
+       private Object variable2;
+       
+       private Object literal1;
+       private Object literal2;
+       
+       
+       private Object typedLiteral1;
+       private Object typedLiteral2;
+       
+       @Before
+       public void setup() {
+               OWLOntologyManager manager = 
OWLManager.createOWLOntologyManager();
+               this.factory = manager.getOWLDataFactory();
+               
+               variable1 = new 
VariableAtom(URI.create("http://kres.iks-project.eu/ontology/meta/variables#x";),
 false);
+               variable2 = new 
VariableAtom(URI.create("http://kres.iks-project.eu/ontology/meta/variables#y";),
 false);
+               
+               
+               literal1 = "some text";
+               literal2 = "some other text";
+               
+               try {
+                       typedLiteral1 = new TypedLiteralAtom(3.0, new 
ResourceAtom(new URI(XSD.xdouble.getURI())));
+                       typedLiteral2 = new TypedLiteralAtom(5.0, new 
ResourceAtom(new URI(XSD.xdouble.getURI())));
+               } catch (URISyntaxException e) {
+                       e.printStackTrace();
+               }
+       }
+       
+       @Test
+       public void testValidAtomWithVariableArguments() {
+               
+               RuleAtom ruleAtom = new GreaterThanAtom(variable1, variable2);
+               
+               execTest(ruleAtom);
+               
+       }
+       
+       
+       @Test
+       public void testValidAtomWithLiteralArguments() {
+               
+               RuleAtom ruleAtom = new GreaterThanAtom(literal1, literal2);
+               
+               execTest(ruleAtom);
+       }
+       
+       
+       @Test
+       public void testValidAtomWithTypedLiteralArguments() {
+               
+               RuleAtom ruleAtom = new GreaterThanAtom(typedLiteral1, 
typedLiteral2);
+               
+               execTest(ruleAtom);
+       }
+       
+       
+}

Added: 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/LessThanAtomTest.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/LessThanAtomTest.java?rev=1206554&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/LessThanAtomTest.java
 (added)
+++ 
incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/atoms/LessThanAtomTest.java
 Sat Nov 26 19:34:08 2011
@@ -0,0 +1,74 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.junit.Before;
+import org.junit.Test;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+import com.hp.hpl.jena.vocabulary.XSD;
+
+public class LessThanAtomTest extends AtomTest {
+       
+       private Object variable1;
+       private Object variable2;
+       
+       private Object literal1;
+       private Object literal2;
+       
+       
+       private Object typedLiteral1;
+       private Object typedLiteral2;
+       
+       @Before
+       public void setup() {
+               OWLOntologyManager manager = 
OWLManager.createOWLOntologyManager();
+               this.factory = manager.getOWLDataFactory();
+               
+               variable1 = new 
VariableAtom(URI.create("http://kres.iks-project.eu/ontology/meta/variables#x";),
 false);
+               variable2 = new 
VariableAtom(URI.create("http://kres.iks-project.eu/ontology/meta/variables#y";),
 false);
+               
+               
+               literal1 = "some text";
+               literal2 = "some other text";
+               
+               try {
+                       typedLiteral1 = new TypedLiteralAtom(3.0, new 
ResourceAtom(new URI(XSD.xdouble.getURI())));
+                       typedLiteral2 = new TypedLiteralAtom(5.0, new 
ResourceAtom(new URI(XSD.xdouble.getURI())));
+               } catch (URISyntaxException e) {
+                       e.printStackTrace();
+               }
+       }
+       
+       @Test
+       public void testValidAtomWithVariableArguments() {
+               
+               RuleAtom ruleAtom = new LessThanAtom(variable1, variable2);
+               
+               execTest(ruleAtom);
+               
+       }
+       
+       
+       @Test
+       public void testValidAtomWithLiteralArguments() {
+               
+               RuleAtom ruleAtom = new GreaterThanAtom(literal1, literal2);
+               
+               execTest(ruleAtom);
+       }
+       
+       
+       @Test
+       public void testValidAtomWithTypedLiteralArguments() {
+               
+               RuleAtom ruleAtom = new GreaterThanAtom(typedLiteral1, 
typedLiteral2);
+               
+               execTest(ruleAtom);
+       }
+       
+       
+}


Reply via email to