You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by al...@apache.org on 2011/03/16 16:31:11 UTC

svn commit: r1082166 [2/7] - in /incubator/stanbol/trunk/kres/rules/manager: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/stanbol/ src/main/java/org/apache/stanbol/rules/ src/main/java/org/apach...

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,213 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import java.util.ArrayList;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
+import org.apache.stanbol.rules.manager.SPARQLNot;
+import org.apache.stanbol.rules.manager.SPARQLTriple;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLIndividual;
+import org.semanticweb.owlapi.model.OWLObjectProperty;
+import org.semanticweb.owlapi.model.SWRLAtom;
+import org.semanticweb.owlapi.model.SWRLIArgument;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import eu.iksproject.kres.ontologies.SWRL;
+
+public class IndividualPropertyAtom extends KReSCoreAtom {
+
+	
+	private URIResource objectProperty;
+	private URIResource argument1;
+	private URIResource argument2;
+	
+	public IndividualPropertyAtom(URIResource objectProperty, URIResource argument1, URIResource argument2) {
+		this.objectProperty = objectProperty;
+		this.argument1 = argument1;
+		this.argument2 = argument2;
+	}
+	
+	@Override
+	public SPARQLObject toSPARQL() {
+		String arg1 = argument1.toString();
+		String arg2 = argument2.toString();
+		String objP = objectProperty.toString();
+		
+		boolean negativeArg1 = false;
+		boolean negativeArg2 = false;
+		boolean negativeObjP = false;
+		
+		if(arg1.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg1 = "?"+arg1.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) argument1;
+			if(variable.isNegative()){
+				negativeArg1 = true;
+			}
+		}
+		
+		if(arg2.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg2 = "?"+arg2.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) argument2;
+			if(variable.isNegative()){
+				negativeArg2 = true;
+			}
+		}
+		
+		if(objP.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			objP = "?"+objP.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) objectProperty;
+			if(variable.isNegative()){
+				negativeObjP = true;
+			}
+		}
+		
+		
+		
+		if(negativeArg1 || negativeArg2 || negativeObjP){
+			String optional = arg1+" "+objP+" "+arg2;
+			
+			ArrayList<String> filters = new ArrayList<String>();
+			if(negativeArg1){
+				filters.add("!bound(" + arg1 + ")");
+			}
+			if(negativeArg2){
+				filters.add("!bound(" + arg2 + ")");
+			}
+			if(negativeObjP){
+				filters.add("!bound(" + objP + ")");
+			}
+			
+			String[] filterArray = new String[filters.size()];
+			filterArray = filters.toArray(filterArray);
+			
+			return new SPARQLNot(optional, filterArray);
+		}
+		else{
+			return new SPARQLTriple(arg1+" "+objP+" "+arg2);
+		}
+		
+	}
+
+	@Override
+	public Resource toSWRL(Model model) {
+		Resource individualPropertyAtom = model.createResource(SWRL.IndividualPropertyAtom);
+		
+		Resource objectPropertyPredicate = objectProperty.createJenaResource(model);
+		Resource argument1Resource = argument1.createJenaResource(model);
+		Resource argument2Resource = argument2.createJenaResource(model);
+		
+		individualPropertyAtom.addProperty(SWRL.propertyPredicate, objectPropertyPredicate);
+		individualPropertyAtom.addProperty(SWRL.argument1, argument1Resource);
+		individualPropertyAtom.addProperty(SWRL.argument2, argument2Resource);
+		
+		return individualPropertyAtom;
+	}
+
+	
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		OWLObjectProperty owlObjectProperty = factory.getOWLObjectProperty(IRI.create(objectProperty.getURI().toString()));
+		
+		SWRLIArgument swrliArgument1;
+		SWRLIArgument swrliArgument2;
+		
+		if(argument1 instanceof KReSVariable){
+			swrliArgument1 = factory.getSWRLVariable(IRI.create(argument1.getURI().toString()));
+		}
+		else{
+			OWLIndividual owlIndividual = factory.getOWLNamedIndividual(IRI.create(argument1.getURI().toString()));
+			swrliArgument1 = factory.getSWRLIndividualArgument(owlIndividual);
+		}
+		
+		if(argument2 instanceof KReSVariable){
+			swrliArgument2 = factory.getSWRLVariable(IRI.create(argument2.getURI().toString()));
+		}
+		else{
+			OWLIndividual owlIndividual = factory.getOWLNamedIndividual(IRI.create(argument2.getURI().toString()));
+			swrliArgument2 = factory.getSWRLIndividualArgument(owlIndividual);
+		}
+		
+		
+		
+		return factory.getSWRLObjectPropertyAtom(owlObjectProperty, swrliArgument1, swrliArgument2);
+	}
+	
+	public URIResource getObjectProperty() {
+		return objectProperty;
+	}
+	
+	public URIResource getArgument1() {
+		return argument1;
+	}
+	
+	public URIResource getArgument2() {
+		return argument2;
+	}
+	
+	@Override
+	public String toString() {
+		return "Individual "+argument1.toString() + " has object property "+argument1.toString()+" that refers to individual "+argument2.toString();
+	}
+
+
+	@Override
+	public String toKReSSyntax(){
+		String arg1 = null;
+		String arg2 = null;
+		String arg3 = null;
+		
+		if(argument1.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg1 = "?"+argument1.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) argument1;
+			if(variable.isNegative()){
+				arg1 = "notex(" + arg1 + ")";
+			}
+		}
+		else{
+			arg1 = argument1.toString();
+		}
+		
+		
+		if(objectProperty.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg3 = "?"+objectProperty.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) objectProperty;
+			if(variable.isNegative()){
+				arg3 = "notex(" + arg3 + ")";
+			}
+		}
+		else{
+			arg3 = objectProperty.toString();
+		}
+		
+		if(argument2.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg2 = "?"+argument2.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) argument2;
+			if(variable.isNegative()){
+				arg2 = "notex(" + arg2 + ")";
+			}
+		}
+		else{
+			arg2 = argument2.toString();
+		}
+		
+		
+		return "has(" + arg3 + ", "+ arg1 +", "+arg2 +")";
+		
+	}
+
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IsBlankAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IsBlankAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IsBlankAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IsBlankAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,73 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+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.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class IsBlankAtom extends ComparisonAtom {
+
+	private URIResource uriResource;
+	
+	public IsBlankAtom(URIResource uriResource) {
+		this.uriResource = uriResource;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String argument = uriResource.toString();
+		
+		String sparql; 
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			sparql = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		else{
+			sparql = argument;
+		}
+		
+		sparql = "isBlank(" + sparql + ")";
+		
+		return new SPARQLComparison(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String argument = uriResource.toString();
+		
+		String kReS; 
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			kReS = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		else{
+			kReS = argument;
+		}
+		
+		kReS = "isBlank(" + kReS + ")";
+		return kReS;
+	}
+
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSBlankNode.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSBlankNode.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSBlankNode.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSBlankNode.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,36 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import java.net.URI;
+
+import org.apache.stanbol.rules.base.api.URIResource;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class KReSBlankNode implements URIResource {
+
+	private String bNode;
+	
+	public KReSBlankNode(String bNode) {
+		this.bNode = bNode;
+	}
+	
+	@Override
+	public URI getURI() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Resource createJenaResource(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+	
+	@Override
+	public String toString() {
+		return bNode;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSCoreAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSCoreAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSCoreAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSCoreAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,24 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+
+
+
+public abstract class KReSCoreAtom implements KReSRuleAtom {
+
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSResource.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSResource.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSResource.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,33 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import java.net.URI;
+
+import org.apache.stanbol.rules.base.api.URIResource;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class KReSResource implements URIResource {
+
+	private URI uri;
+	
+	public KReSResource(URI uri){
+		this.uri = uri;
+	}
+	
+	@Override
+	public URI getURI() {
+		return uri;		
+	}
+
+	@Override
+	public Resource createJenaResource(Model model) {		
+		return model.createResource(uri.toString());
+	}
+	
+	@Override
+	public String toString() {
+		return "<" + uri.toString() + ">";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSTypedLiteral.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSTypedLiteral.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSTypedLiteral.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSTypedLiteral.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,35 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.URIResource;
+
+public class KReSTypedLiteral {
+
+	private Object value;
+	private URIResource xsdType;
+	
+	public KReSTypedLiteral(Object value, URIResource xsdType) {
+		this.value = value;
+		this.xsdType = xsdType;
+	}
+	
+	
+	public Object getValue() {
+		return value;
+	}
+	
+	public URIResource getXsdType() {
+		return xsdType;
+	}
+	
+	
+	@Override
+	public String toString() {
+		
+		if(xsdType != null){
+			return value + "^^" + xsdType.toString();
+		}
+		else{
+			return value.toString();
+		}
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSVariable.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSVariable.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSVariable.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSVariable.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,44 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import java.net.URI;
+
+import org.apache.stanbol.rules.base.api.URIResource;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import eu.iksproject.kres.ontologies.SWRL;
+
+public class KReSVariable implements URIResource {
+
+	private URI uri;
+	private boolean negative;
+	
+	public KReSVariable(URI uri, boolean negative) {
+		this.uri = uri;
+		this.negative = negative;
+	}
+
+	@Override
+	public URI getURI() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+		@Override
+	public Resource createJenaResource(Model model) {
+		return model.createResource(uri.toString(), SWRL.Variable);
+	}
+		
+	@Override
+	public String toString() {
+		
+		return uri.toString();
+		
+	}
+	
+	public boolean isNegative() {
+		return negative;
+	}
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LengthAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LengthAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LengthAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LengthAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,45 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class LengthAtom extends NumericFunctionAtom {
+
+	
+	private StringFunctionAtom stringFunctionAtom;
+	
+	public LengthAtom(StringFunctionAtom stringFunctionAtom) {
+		this.stringFunctionAtom = stringFunctionAtom;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String sparql = "<http://www.w3.org/2005/xpath-functions#string-length> (" + stringFunctionAtom.toSPARQL().getObject() + ")";
+		
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		return "length(" + stringFunctionAtom.toKReSSyntax() + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,122 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLComparison;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLLiteral;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class LessThanAtom extends ComparisonAtom {
+
+	
+	private Object argument1;
+	private Object argument2;
+	
+	public LessThanAtom(Object argument1, Object argument2) {
+		this.argument1 = argument1;
+		this.argument2 = argument2;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String arg1 = argument1.toString();
+		String arg2 = argument2.toString();
+		
+		
+		if(arg1.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg1 = "str(?"+arg1.replace("http://kres.iks-project.eu/ontology/meta/variables#", "") + ")";
+			
+		}
+		else{
+			arg1 = "str("+arg1+")";
+		}
+		
+		if(arg2.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg2 = "str(?"+arg2.replace("http://kres.iks-project.eu/ontology/meta/variables#", "") + ")";
+			
+		}
+		else if(!arg2.startsWith("<") && !arg2.endsWith(">")){
+			OWLLiteral literal = getOWLTypedLiteral(argument2);
+			arg2 = "str(" + literal.getLiteral() + ")";
+		}
+		else{
+			arg2 = "str("+arg2+")";
+		}
+		
+		
+		return new SPARQLComparison(arg1+" < "+arg2);
+		
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String arg1 = null;
+		String arg2 = null;
+		
+		if(argument1.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg1 = "?"+argument1.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		else{
+			arg1 = argument1.toString();
+		}
+		
+		
+		if(argument2.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg2 = "?"+argument2.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+			
+			return "lt(" + arg1 + ", " + arg2 +")";
+		}
+		else{
+			
+			return "lt(" + arg1 + ", " + argument2.toString() +")";
+		}
+	}
+
+	
+	private OWLLiteral getOWLTypedLiteral(Object argument){
+		
+		OWLDataFactory factory = OWLManager.createOWLOntologyManager().getOWLDataFactory();
+		
+		OWLLiteral owlLiteral;
+		if(argument instanceof String){
+			owlLiteral = factory.getOWLTypedLiteral((String) argument); 
+		}
+		else if(argument instanceof Integer){
+			owlLiteral = factory.getOWLTypedLiteral(((Integer) argument).intValue());
+		}
+		else if(argument instanceof Double){
+			owlLiteral = factory.getOWLTypedLiteral(((Double) argument).doubleValue());
+		}
+		else if(argument instanceof Float){
+			owlLiteral = factory.getOWLTypedLiteral(((Float) argument).floatValue());
+		}
+		else if(argument instanceof Boolean){
+			owlLiteral = factory.getOWLTypedLiteral(((Boolean) argument).booleanValue());
+		}
+		else{
+			owlLiteral = factory.getOWLStringLiteral(argument.toString());
+		}
+		
+		
+		
+		return owlLiteral; 
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LetAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LetAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LetAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LetAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,71 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class LetAtom implements KReSRuleAtom {
+
+	private URIResource variable;
+	private StringFunctionAtom parameterFunctionAtom;
+	
+	public LetAtom(URIResource variable, StringFunctionAtom parameterFunctionAtom) {
+		this.variable = variable;
+		this.parameterFunctionAtom = parameterFunctionAtom;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		System.out.println();
+		System.out.println();
+		System.out.println("Parameter Function : "+parameterFunctionAtom.toSPARQL().getObject());
+		System.out.println();
+		System.out.println();
+		String variableArgument = variable.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		String let = "LET (?" + variableArgument + " := " + parameterFunctionAtom.toSPARQL().getObject() + ")";
+		SPARQLObject sparqlObject = new SPARQLFunction(let);
+		return sparqlObject;
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String arg1 = "?" + variable.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		String syntax = "let(" + arg1 + ", " + parameterFunctionAtom.toKReSSyntax() + ")";  
+		return syntax;
+	}
+
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LocalNameAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LocalNameAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LocalNameAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LocalNameAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,55 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class LocalNameAtom extends StringFunctionAtom {
+
+	private URIResource uriResource;
+	
+	public LocalNameAtom(URIResource uriResource) {
+		this.uriResource = uriResource;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String argument = uriResource.toString();
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		
+		String sparql = "<http://jena.hpl.hp.com/ARQ/function#localname>(" + argument + ")";
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String argument = uriResource.toString();
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		return "localname(" + argument + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LowerCaseAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LowerCaseAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LowerCaseAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LowerCaseAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,61 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class LowerCaseAtom extends StringFunctionAtom {
+
+	private StringFunctionAtom stringFunctionAtom;
+	
+	public LowerCaseAtom(StringFunctionAtom stringFunctionAtom) {
+		this.stringFunctionAtom = stringFunctionAtom;
+	}
+
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		String uriResourceString = stringFunctionAtom.toSPARQL().getObject();
+		
+		if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		String sparql = "<http://www.w3.org/2005/xpath-functions#lower-case> (" + uriResourceString + ")"; 
+			
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String uriResourceString = stringFunctionAtom.toKReSSyntax();
+		
+		if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		return "lowerCase(" + uriResourceString + ")";
+	}
+	
+	
+	
+}
\ No newline at end of file

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NamespaceAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NamespaceAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NamespaceAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NamespaceAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,55 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class NamespaceAtom extends StringFunctionAtom {
+
+private URIResource uriResource;
+	
+	public NamespaceAtom(URIResource uriResource) {
+		this.uriResource = uriResource;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String argument = uriResource.toString();
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		
+		String sparql = "<http://jena.hpl.hp.com/ARQ/function#namespace>(" + argument + ")";
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String argument = uriResource.toString();
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		return "namespace(" + argument + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NewNodeAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NewNodeAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NewNodeAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NewNodeAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,85 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class NewNodeAtom implements KReSRuleAtom {
+
+	
+	private URIResource newNodeVariable; 
+	private Object binding;
+	
+	public NewNodeAtom(URIResource newNodeVariable, Object nodeName) {
+		this.newNodeVariable = newNodeVariable;
+		this.binding = nodeName;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String variable = "?"+newNodeVariable.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		String popertyFunction = "<http://www.stlab.istc.cnr.it/semion/function#createURI>";
+		
+		String bindingString = null;
+		
+		if(binding instanceof KReSVariable){
+			bindingString = "?"+binding.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		else{
+			bindingString = binding.toString();
+		}
+		
+		SPARQLObject sparqlObject = new SPARQLFunction(variable + " " + popertyFunction + " " + bindingString);
+		return sparqlObject;
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String variable = "?"+newNodeVariable.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		
+		String bindingString = null;
+		
+		if(binding instanceof KReSVariable){
+			bindingString = "?"+binding.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		else{
+			bindingString = binding.toString();
+		}
+		
+		return "newNode(" + variable + ", " + bindingString + ")";
+	}
+
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NotAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NotAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NotAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NotAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,46 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLComparison;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class NotAtom extends ComparisonAtom {
+
+	
+	private ComparisonAtom comparisonAtom;
+	
+	public NotAtom(ComparisonAtom comparisonAtom) {
+		this.comparisonAtom = comparisonAtom;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		SPARQLObject sparqlObject = comparisonAtom.toSPARQL();
+		String sparqlAtom = "!" + sparqlObject.getObject();
+		return new SPARQLComparison(sparqlAtom);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String kresSyntax = "not(" + comparisonAtom.toKReSSyntax() + ")";
+		return kresSyntax;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumberAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumberAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumberAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumberAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,54 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class NumberAtom extends NumericFunctionAtom {
+
+	private String number;
+	
+	public NumberAtom(String number) {
+		this.number = number;
+	}
+	
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		if(number.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			number = "?"+number.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		return new SPARQLFunction(number);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		
+		if(number.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			number = "?"+number.replace("http://kres.iks-project.eu/ontology/meta/variables#", "") + ")";
+			
+		}
+		return number;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumericFunctionAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumericFunctionAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumericFunctionAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumericFunctionAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,22 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+
+public abstract class NumericFunctionAtom implements KReSRuleAtom {
+
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/PropStringAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/PropStringAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/PropStringAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/PropStringAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,56 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class PropStringAtom extends StringFunctionAtom {
+
+	
+	private StringFunctionAtom namespaceArg;
+	private StringFunctionAtom labelArg;
+	
+	public PropStringAtom(StringFunctionAtom namespaceArg, StringFunctionAtom labelArg) {
+		this.namespaceArg = namespaceArg;
+		this.labelArg = labelArg;
+	}
+	
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String ns = namespaceArg.toSPARQL().getObject();
+		String label = labelArg.toSPARQL().getObject();
+		
+		
+		
+		
+		String sparql = "<http://www.stlab.istc.cnr.it/semion/function#propString>(" + ns + ", " + label + ")"; 
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String ns = namespaceArg.toKReSSyntax();
+		String label = labelArg.toKReSSyntax();
+		String kReS = "propString(" + ns + ", " + label + ")"; 
+		return kReS;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLConstructAtomAbstract.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLConstructAtomAbstract.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLConstructAtomAbstract.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLConstructAtomAbstract.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,21 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+
+public abstract class SPARQLConstructAtomAbstract implements KReSRuleAtom {
+
+	@Override
+	public boolean isSPARQLConstruct() {
+		return true;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteAtomAbstract.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteAtomAbstract.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteAtomAbstract.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteAtomAbstract.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,21 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+
+public abstract class SPARQLDeleteAtomAbstract implements KReSRuleAtom {
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return true;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteDataAtomAbstract.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteDataAtomAbstract.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteDataAtomAbstract.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteDataAtomAbstract.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,22 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+
+public abstract class SPARQLDeleteDataAtomAbstract implements KReSRuleAtom {
+
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return true;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLcAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLcAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLcAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLcAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,42 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SPARQLcAtom extends SPARQLConstructAtomAbstract {
+
+	private String sparqlConstruct;
+	
+	public SPARQLcAtom(String sparqlConstruct) {
+		this.sparqlConstruct = sparqlConstruct.substring(1, sparqlConstruct.length()-1);
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		return new SPARQLFunction(sparqlConstruct);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		return "sparql-c(" + sparqlConstruct + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLdAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLdAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLdAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLdAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,42 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SPARQLdAtom extends SPARQLDeleteAtomAbstract {
+
+	private String sparqlConstruct;
+	
+	public SPARQLdAtom(String sparqlConstruct) {
+		this.sparqlConstruct = sparqlConstruct.substring(1, sparqlConstruct.length()-1);
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		return new SPARQLFunction(sparqlConstruct);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		return "sparql-d(" + sparqlConstruct + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLddAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLddAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLddAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLddAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,42 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SPARQLddAtom extends SPARQLDeleteDataAtomAbstract {
+
+private String sparqlConstruct;
+	
+	public SPARQLddAtom(String sparqlConstruct) {
+		this.sparqlConstruct = sparqlConstruct.substring(1, sparqlConstruct.length()-1);
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		return new SPARQLFunction(sparqlConstruct);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		return "sparql-dd(" + sparqlConstruct + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SameAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SameAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SameAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SameAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,86 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLComparison;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLLiteral;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SameAtom extends ComparisonAtom {
+	private StringFunctionAtom stringFunctionAtom1;
+	private StringFunctionAtom stringFunctionAtom2;
+	
+	public SameAtom(StringFunctionAtom stringFunctionAtom1, StringFunctionAtom stringFunctionAtom2) {
+		this.stringFunctionAtom1 = stringFunctionAtom1;
+		this.stringFunctionAtom2 = stringFunctionAtom2;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		String argument1 = stringFunctionAtom1.toSPARQL().getObject();
+		String argument2 = stringFunctionAtom2.toSPARQL().getObject();
+		
+		
+		argument1 = argument1.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		argument2 = argument2.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		
+		
+		return new SPARQLComparison(argument1 + " = " + argument2);
+		
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		
+		return "same(" + stringFunctionAtom1.toKReSSyntax() + ", " + stringFunctionAtom2.toKReSSyntax() + ")";
+		
+	}
+
+	
+	private OWLLiteral getOWLTypedLiteral(Object argument){
+		
+		OWLDataFactory factory = OWLManager.createOWLOntologyManager().getOWLDataFactory();
+		
+		OWLLiteral owlLiteral;
+		if(argument instanceof String){
+			owlLiteral = factory.getOWLTypedLiteral((String) argument); 
+		}
+		else if(argument instanceof Integer){
+			owlLiteral = factory.getOWLTypedLiteral(((Integer) argument).intValue());
+		}
+		else if(argument instanceof Double){
+			owlLiteral = factory.getOWLTypedLiteral(((Double) argument).doubleValue());
+		}
+		else if(argument instanceof Float){
+			owlLiteral = factory.getOWLTypedLiteral(((Float) argument).floatValue());
+		}
+		else if(argument instanceof Boolean){
+			owlLiteral = factory.getOWLTypedLiteral(((Boolean) argument).booleanValue());
+		}
+		else{
+			owlLiteral = factory.getOWLStringLiteral(argument.toString());
+		}
+		
+		
+		
+		return owlLiteral; 
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StartsWithAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StartsWithAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StartsWithAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StartsWithAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,55 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLComparison;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class StartsWithAtom extends ComparisonAtom {
+
+	
+	private StringFunctionAtom argument; 
+	private StringFunctionAtom term;
+	
+	public StartsWithAtom(StringFunctionAtom argument, StringFunctionAtom term) {
+		this.argument = argument;
+		this.term = term;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String argumentSparql = argument.toSPARQL().getObject();
+		
+		
+		
+		return new SPARQLComparison("<http://www.w3.org/2005/xpath-functions#starts-with> (" + argumentSparql + ", " + term.toSPARQL().getObject() + ")");
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		
+		
+		
+		return "startsWith(" + argument.toKReSSyntax() + ", " + term.toKReSSyntax() + ")";
+	}
+	
+	
+
+}
+

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StrAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StrAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StrAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StrAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,59 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.URIResource;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class StrAtom extends StringFunctionAtom {
+
+	private URIResource uriResource;
+
+	public StrAtom(URIResource uriResource) {
+		this.uriResource = uriResource;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+
+		String argument = uriResource.toString();
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		
+		String sparql = "str(" + argument + ")";
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String argument = uriResource.toString();
+		
+		if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+		}
+		
+		String kReSSyntax = "str(" + argument + ")";
+		
+		return kReSSyntax;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,49 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class StringAtom extends StringFunctionAtom {
+
+	private String string;
+	
+	public StringAtom(String string) {
+		this.string = string;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		if(string.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			return new SPARQLFunction("?" + string.replace("http://kres.iks-project.eu/ontology/meta/variables#", ""));
+		}
+		
+		else{
+			return new SPARQLFunction(string);
+		}
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		return string;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringFunctionAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringFunctionAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringFunctionAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringFunctionAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,22 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+
+public abstract class StringFunctionAtom implements KReSRuleAtom {
+
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubstringAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubstringAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubstringAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubstringAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,65 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SubstringAtom extends StringFunctionAtom {
+
+	private StringFunctionAtom stringFunctionAtom;
+	private NumericFunctionAtom start;
+	private NumericFunctionAtom length;
+	
+	public SubstringAtom(StringFunctionAtom stringFunctionAtom, NumericFunctionAtom start, NumericFunctionAtom length) {
+		this.stringFunctionAtom = stringFunctionAtom;
+		this.start = start;
+		this.length = length;
+	}
+
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		String uriResourceString = stringFunctionAtom.toSPARQL().getObject();
+		
+		if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		String sparql = "<http://jena.hpl.hp.com/ARQ/function#substr> (" + uriResourceString + ", " + start.toSPARQL().getObject() + ", " + length.toSPARQL().getObject() + ")"; 
+			
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String uriResourceString = stringFunctionAtom.toKReSSyntax();
+		
+		if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		return "substring(" + uriResourceString + ", " + start.toKReSSyntax() + ", " + length.toKReSSyntax() + ")";
+	}
+	
+	
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubtractionAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubtractionAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubtractionAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubtractionAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,48 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SubtractionAtom extends NumericFunctionAtom {
+
+	
+	private NumericFunctionAtom numericFunctionAtom1; 
+	private NumericFunctionAtom numericFunctionAtom2;
+	
+	public SubtractionAtom(NumericFunctionAtom numericFunctionAtom1, NumericFunctionAtom numericFunctionAtom2) {
+		this.numericFunctionAtom1 = numericFunctionAtom1;
+		this.numericFunctionAtom2 = numericFunctionAtom2;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String sparqlFunction1 = numericFunctionAtom1.toSPARQL().getObject();
+		String sparqlFunction2 = numericFunctionAtom2.toSPARQL().getObject();
+		return new SPARQLFunction(sparqlFunction1 + " - " +sparqlFunction2);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String kReSFunction1 = numericFunctionAtom1.toKReSSyntax();
+		String kReSFunction2 = numericFunctionAtom2.toKReSSyntax();
+		return kReSFunction1 + " - " + kReSFunction2;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SumAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SumAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SumAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SumAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,48 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class SumAtom extends NumericFunctionAtom {
+
+	
+	private NumericFunctionAtom numericFunctionAtom1; 
+	private NumericFunctionAtom numericFunctionAtom2;
+	
+	public SumAtom(NumericFunctionAtom numericFunctionAtom1, NumericFunctionAtom numericFunctionAtom2) {
+		this.numericFunctionAtom1 = numericFunctionAtom1;
+		this.numericFunctionAtom2 = numericFunctionAtom2;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String sparqlFunction1 = numericFunctionAtom1.toSPARQL().getObject();
+		String sparqlFunction2 = numericFunctionAtom2.toSPARQL().getObject();
+		return new SPARQLFunction(sparqlFunction1 + " + " +sparqlFunction2);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String kReSFunction1 = numericFunctionAtom1.toKReSSyntax();
+		String kReSFunction2 = numericFunctionAtom2.toKReSSyntax();
+		return kReSFunction1 + " + " + kReSFunction2;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UObjectAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UObjectAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UObjectAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UObjectAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,95 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class UObjectAtom extends StringFunctionAtom {
+
+	public static final int STRING_TYPE = 0;
+	public static final int INTEGER_TYPE = 1;
+	public static final int VARIABLE_TYPE = 2;
+	
+	
+	private Object argument;
+	private int actualType;
+	
+	public UObjectAtom(Object argument) {
+		this.argument = argument;
+		
+		if(argument instanceof KReSVariable){
+			actualType = 2;
+		}
+		else if(argument instanceof String){
+			actualType = 0;
+		}
+		else if(argument instanceof Integer){
+			actualType = 1;
+		}
+		
+		System.out.println("UObject : " + argument);
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String argumentSPARQL = null;
+		
+		switch (actualType) {
+		case 0:
+			argumentSPARQL = "\"" + (String) argument + "\"^^<http://www.w3.org/2001/XMLSchema#string>";
+			break;
+		case 1:
+			argumentSPARQL = ((Integer) argument).toString() + "^^<http://www.w3.org/2001/XMLSchema#int>";
+			break;
+		case 2:
+			argumentSPARQL = "?"+argument.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			break;
+		default:
+			break;
+		}
+		
+		if(argumentSPARQL != null){
+			return new SPARQLFunction(argumentSPARQL);
+		}
+		else{
+			return null;
+		}
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String argumentString = null;
+		switch (actualType) {
+		case 0:
+			argumentString = (String) argument;
+			break;
+		case 1:
+			argumentString = ((Integer) argument).toString();
+			break;
+		case 2:
+			argumentString = "?"+argument.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			break;
+		default:
+			break;
+		}
+		return argumentString;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UnionAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UnionAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UnionAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UnionAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,99 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.util.AtomList;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class UnionAtom implements KReSRuleAtom {
+
+	private AtomList atomList1;
+	private AtomList atomList2;
+	
+	public UnionAtom(AtomList atomList1, AtomList atomList2) {
+		this.atomList1 = atomList1;
+		this.atomList2 = atomList2;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		String scope1 = "";
+		
+		for(KReSRuleAtom kReSRuleAtom : atomList1){
+			if(!scope1.isEmpty()){
+				scope1 += " . ";
+			}
+			scope1 += kReSRuleAtom.toSPARQL().getObject();
+		}
+		
+		String scope2 = "";
+		
+		for(KReSRuleAtom kReSRuleAtom : atomList2){
+			if(!scope2.isEmpty()){
+				scope2 += " . ";
+			}
+			scope2 += kReSRuleAtom.toSPARQL().getObject();
+		}
+		
+		String sparqlUnion = " { " + scope1 + " } UNION { " +scope2 + " } ";
+		
+		return new SPARQLFunction(sparqlUnion);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String scope1 = "";
+		
+		for(KReSRuleAtom kReSRuleAtom : atomList1){
+			if(!scope1.isEmpty()){
+				scope1 += " . ";
+			}
+			scope1 += kReSRuleAtom.toKReSSyntax();
+		}
+		
+		String scope2 = "";
+		
+		for(KReSRuleAtom kReSRuleAtom : atomList2){
+			if(!scope2.isEmpty()){
+				scope2 += " . ";
+			}
+			scope2 += kReSRuleAtom.toKReSSyntax();
+		}
+		
+		return "union(" + scope1 + ", " +scope2 + ")";
+	}
+	
+	@Override
+	public boolean isSPARQLConstruct() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDelete() {
+		return false;
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		return false;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UpperCaseAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UpperCaseAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UpperCaseAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UpperCaseAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,61 @@
+package org.apache.stanbol.rules.manager.atoms;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.manager.SPARQLFunction;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+
+public class UpperCaseAtom extends StringFunctionAtom {
+
+	private StringFunctionAtom stringFunctionAtom;
+	
+	public UpperCaseAtom(StringFunctionAtom stringFunctionAtom) {
+		this.stringFunctionAtom = stringFunctionAtom;
+	}
+
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		String uriResourceString = stringFunctionAtom.toSPARQL().getObject();
+		
+		if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		String sparql = "<http://www.w3.org/2005/xpath-functions#upper-case> (" + uriResourceString + ")"; 
+			
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		String uriResourceString = stringFunctionAtom.toKReSSyntax();
+		
+		if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			
+		}
+		
+		return "upperCase(" + uriResourceString + ")";
+	}
+	
+	
+	
+}