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/11/26 20:34:09 UTC
svn commit: r1206554 - in /incubator/stanbol/trunk/rules/manager/src:
main/java/org/apache/stanbol/rules/manager/atoms/
test/java/org/apache/stanbol/rules/manager/atoms/
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);
+ }
+
+
+}