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 [1/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...

Author: alexdma
Date: Wed Mar 16 15:31:08 2011
New Revision: 1082166

URL: http://svn.apache.org/viewvc?rev=1082166&view=rev
Log:
STANBOL-39 :
- Refactored kres.rules as rules/manager

Added:
    incubator/stanbol/trunk/kres/rules/manager/   (with props)
    incubator/stanbol/trunk/kres/rules/manager/pom.xml
    incubator/stanbol/trunk/kres/rules/manager/src/
    incubator/stanbol/trunk/kres/rules/manager/src/main/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSKB.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleContainer.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleImpl.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleParser.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLComparison.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLFunction.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLNot.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLTriple.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/Concat.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreatePropertyURIStringFromLabel.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateStandardLabel.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateURI.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/BlankNodeAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ComparisonAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ConcatAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/CreateLabelAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DifferentAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/EndsWithAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IndividualPropertyAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/IsBlankAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSBlankNode.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSCoreAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSResource.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSTypedLiteral.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/KReSVariable.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LengthAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LessThanAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LetAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LocalNameAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/LowerCaseAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NamespaceAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NewNodeAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NotAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumberAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/NumericFunctionAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/PropStringAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLConstructAtomAbstract.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteAtomAbstract.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLDeleteDataAtomAbstract.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLcAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLdAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SPARQLddAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SameAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StartsWithAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StrAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/StringFunctionAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubstringAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SubtractionAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/SumAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UObjectAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UnionAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/UpperCaseAtom.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSAddRecipe.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSAddRule.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSGetRecipe.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSGetRule.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSLoadRuleFile.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSRemoveRecipe.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSRemoveRule.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSRuleStore.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/KReSSetRuleStore.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/changes/RecipeImpl.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/KReSRuleGrammar.jj
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/KReSRuleParser.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/KReSRuleParserConstants.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/KReSRuleParserTokenManager.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/ParseException.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/SimpleCharStream.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/Token.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/TokenMgrError.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/util/
    incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/util/RuleOntologyInputSource.java
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/META-INF/
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/META-INF/conf/
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/META-INF/conf/rmi_config.owl
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/RuleFileExample.txt
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/RuleOntology/
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/RuleOntology/OffLineKReSOntologyRules.owl
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/RuleOntology/TestKReSOntologyRules.owl
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/RuleOntology/TestRuleFileExample.txt
    incubator/stanbol/trunk/kres/rules/manager/src/main/resources/RuleOntology/rmi_config.owl
    incubator/stanbol/trunk/kres/rules/manager/src/test/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSAddRecipeTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSAddRuleTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSGetRecipeTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSGetRuleTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSLoadRuleFileTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSRemoveRecipeTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSRemoveRuleTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/KReSRuleStoreTest.java
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/parse/
    incubator/stanbol/trunk/kres/rules/manager/src/test/java/org/apache/stanbol/rules/manager/parse/KReSRuleParserTest.java

Propchange: incubator/stanbol/trunk/kres/rules/manager/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar 16 15:31:08 2011
@@ -0,0 +1,5 @@
+.classpath
+.project
+.settings
+KReSConf
+target

Added: incubator/stanbol/trunk/kres/rules/manager/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/pom.xml?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/pom.xml (added)
+++ incubator/stanbol/trunk/kres/rules/manager/pom.xml Wed Mar 16 15:31:08 2011
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>eu.iksproject</groupId>
+		<artifactId>eu.iksproject.kres.parent</artifactId>
+		<version>0.7</version>
+		<relativePath>../../eu.iksproject.kres.parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>org.apache.stanbol.rules.manager</artifactId>
+	<packaging>bundle</packaging>
+	<version>${stanbol-version}</version>
+
+	<name>Apache Stanbol Rule Manager</name>
+	<description>
+		The set of functionalities for manipulating 
+		inference rules, complete with built-in atoms.
+	</description>
+
+	<inceptionYear>2010</inceptionYear>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Export-Package>
+							org.apache.stanbol.rules.manager.*;version=${stanbol-version}
+	          			</Export-Package>
+						<Import-Package>
+							org.slf4j.*;version=1.5.2,
+							*
+            			</Import-Package>
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+			<version>1.2.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>jena</artifactId>
+			<version>2.6.2</version>
+			<scope>provided</scope>
+			<exclusions>
+				<exclusion>
+					<artifactId>slf4j-log4j12</artifactId>
+					<groupId>org.slf4j</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>arq</artifactId>
+			<version>2.8.3</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>org.apache.clerezza.rdf.core</artifactId>
+			<version>0.12-incubating-SNAPSHOT</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>owlapi</groupId>
+			<artifactId>owlapi</artifactId>
+			<version>3.0.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- Stanbol deps -->
+		<!--
+		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.api</artifactId>
+			<version>${kres-version}</version>
+			<scope>provided</scope>
+		</dependency>
+		-->
+		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.ontologies</artifactId>
+			<version>${kres-version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.shared.transformation</artifactId>
+			<version>${kres-version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.ontologymanager.ontonet</artifactId>
+			<version>${stanbol-version}</version>
+		</dependency>	
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.rules.base</artifactId>
+			<version>${stanbol-version}</version>
+		</dependency>
+
+		<!-- Diagnostics deps -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.5.2</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+			<version>1.5.2</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- Testing deps -->
+		<!--
+		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.manager</artifactId>
+			<version>${kres-version}</version>
+			<scope>test</scope>
+		</dependency>
+		-->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.4</version>
+			<scope>test</scope>
+			<exclusions>
+				<exclusion>
+					<groupId>org.slf4j</groupId>
+					<artifactId>slf4j-api</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+	</dependencies>
+
+	<repositories />
+
+</project>

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSKB.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSKB.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSKB.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSKB.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,111 @@
+package org.apache.stanbol.rules.manager;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Hashtable;
+
+import org.apache.stanbol.rules.base.api.KReSRule;
+import org.apache.stanbol.rules.base.api.util.KReSRuleList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.ontology.OntModel;
+/**
+ * 
+ * FIXME
+ * Missing description
+ *
+ */
+public class KReSKB {
+
+
+	private final Logger log = LoggerFactory.getLogger(getClass());
+	
+	private Hashtable<String, String> prefixes;
+	
+	/**
+	 * FIXME Why is this here?
+	 */
+	private Hashtable<String, OntModel> ontologies;
+	
+	private KReSRuleList kReSRuleList;
+	
+	
+	public KReSKB() {
+		log.debug("Setting up a KReSKB");
+		prefixes = new Hashtable<String, String>();
+		prefixes.put("var", "http://kres.iks-project.eu/ontology/meta/variables#");
+		kReSRuleList = new KReSRuleList();
+	}
+	
+	public void addPrefix(String prefixString, String prefixURI){
+		prefixes.put(prefixString, prefixURI);
+	}
+	
+	
+	public String getPrefixURI(String prefixString){
+		return prefixes.get(prefixString);
+	}
+	
+	public void addRule(KReSRule kReSRule){
+		System.out.println("Adding rule to Head");
+		kReSRuleList.add(kReSRule);
+	}
+	
+	public KReSRuleList getkReSRuleList() {
+		return kReSRuleList;
+	}
+	
+	public String toSPARQL(){
+		String sparql = null;
+		if(kReSRuleList != null){
+			boolean firstIteration = true;
+			for(KReSRule kReSRule : kReSRuleList){
+				if(firstIteration){
+					firstIteration = false;
+				}
+				else{
+					sparql += " . ";
+				}
+				sparql += kReSRule.toSPARQL();
+			}
+		}
+		
+		return sparql;
+	}
+	
+	public void write(OutputStream outputStream) throws IOException{
+		boolean firstIt = true;
+		for(KReSRule kReSRule : kReSRuleList){
+			
+			String rule;
+			
+			if(firstIt){
+				rule = kReSRule.toKReSSyntax();
+				
+				firstIt = false;
+			}
+			else{
+				rule = " . " + System.getProperty("line.separator") + kReSRule.toKReSSyntax();
+			}
+			outputStream.write(rule.getBytes());
+		}
+		outputStream.close();
+	}
+	
+	public void write(FileWriter fileWriter) throws IOException{
+		boolean write = true;
+		for(KReSRule kReSRule : kReSRuleList){
+			if(write){
+				fileWriter.write(kReSRule.toKReSSyntax());
+				write = false;
+			}
+			else{
+				fileWriter.write(" . " + System.getProperty("line.separator") + kReSRule.toKReSSyntax());
+			}
+		}
+		fileWriter.close();
+	}
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleContainer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleContainer.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleContainer.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleContainer.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,39 @@
+package org.apache.stanbol.rules.manager;
+
+import java.util.Collection;
+import java.util.Hashtable;
+import java.util.Set;
+
+public class KReSRuleContainer {
+
+	private Hashtable<String, String> semionRules;
+	
+	public KReSRuleContainer() {
+		semionRules = new Hashtable<String, String>();
+	}
+	
+	public void addSemionRule(String ruleName, String rule){
+		semionRules.put(ruleName, rule);
+	}
+	
+	public String getSemionRule(String ruleName){
+		return semionRules.get(ruleName);
+	}
+	
+	public String removeSemionRule(String ruleName){
+		return semionRules.remove(ruleName);
+	}
+	
+	public Set<String> listSemionRuleNames(){
+		return semionRules.keySet();
+	}
+	
+	public Collection<String> listSemionRules(){
+		return semionRules.values();
+	}
+	
+	public int size(){
+		return semionRules.size();
+	}
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleImpl.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleImpl.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleImpl.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,383 @@
+package org.apache.stanbol.rules.manager;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.apache.stanbol.rules.base.api.KReSRule;
+import org.apache.stanbol.rules.base.api.KReSRuleAtom;
+import org.apache.stanbol.rules.base.api.KReSRuleExpressiveness;
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+import org.apache.stanbol.rules.base.api.util.AtomList;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+import org.semanticweb.owlapi.model.SWRLRule;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.RDFList;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import eu.iksproject.kres.ontologies.SWRL;
+
+public class KReSRuleImpl implements KReSRule {
+
+	
+	private String ruleName;
+	private String rule;
+	
+	
+	private AtomList head;
+	private AtomList body;
+	
+	private boolean forwardChain;
+	private boolean reflexive;
+	private boolean sparqlC;
+	private boolean sparqlD;
+	
+	KReSRuleExpressiveness expressiveness;
+	
+	public KReSRuleImpl(String ruleURI, AtomList body, AtomList head, KReSRuleExpressiveness expressiveness) {
+		this.ruleName = ruleURI;
+		this.head = head;
+		this.body = body;
+		this.expressiveness = expressiveness;
+	}
+	
+	
+	public String getRuleName() {
+		return ruleName;
+	}
+
+	public void setRuleName(String ruleName) {
+		this.ruleName = ruleName;
+	}
+
+	public String getRule() {
+		
+		return rule;
+	}
+
+	public void setRule(String rule) {
+		this.rule = rule;
+	}
+	
+	public String toSPARQL() {
+		
+		String sparql = null;
+		
+		if(isSPARQLConstruct() || isSPARQLDelete()){
+			boolean found = false;
+			Iterator<KReSRuleAtom> it = body.iterator();
+			while(it.hasNext() && !found){
+				KReSRuleAtom kReSRuleAtom = it.next();
+				sparql = kReSRuleAtom.toSPARQL().getObject();
+				found = true;
+			}
+			
+		}
+		
+		else{
+		
+			sparql = "CONSTRUCT {";
+						
+			boolean firstIte = true;
+			
+			for(KReSRuleAtom kReSRuleAtom : head){
+				if(!firstIte){
+					sparql += " . ";
+				}
+				firstIte = false;
+				sparql += kReSRuleAtom.toSPARQL().getObject();
+			}
+			
+			sparql += "} ";
+			sparql += "WHERE {";
+			
+			firstIte = true;
+			ArrayList<SPARQLObject> sparqlObjects = new ArrayList<SPARQLObject>();
+			for(KReSRuleAtom kReSRuleAtom : body){
+				SPARQLObject sparqlObject = kReSRuleAtom.toSPARQL();
+				if(sparqlObject instanceof SPARQLNot){
+					sparqlObjects.add((SPARQLNot) sparqlObject);
+				}
+				else if(sparqlObject instanceof SPARQLComparison){
+					sparqlObjects.add((SPARQLComparison) sparqlObject);
+				}
+				else{
+					if(!firstIte){
+						sparql += " . ";
+					}
+					else{
+						firstIte = false;
+					}
+					sparql += kReSRuleAtom.toSPARQL().getObject();
+				}
+			}
+			
+			firstIte = true;
+			
+			
+			String optional = "";
+			String filter = "";
+			for(SPARQLObject sparqlObj : sparqlObjects){
+				if(sparqlObj instanceof SPARQLNot){
+					SPARQLNot sparqlNot = (SPARQLNot) sparqlObj;
+					if(!firstIte){
+						optional += " . ";
+					}	
+					else{
+						firstIte = false;
+					}
+					
+					optional += sparqlNot.getObject();
+					
+					String[] filters = sparqlNot.getFilters();
+					for(String theFilter : filters){
+						if(!filter.isEmpty()){
+							filter += " && ";
+						}
+						filter += theFilter;
+					}
+				}
+				else if(sparqlObj instanceof SPARQLComparison){
+					SPARQLComparison sparqlDifferent = (SPARQLComparison) sparqlObj;
+					
+					String theFilter = sparqlDifferent.getObject();
+					
+					if(!filter.isEmpty()){
+						filter += " && ";
+					}
+					
+					filter += theFilter;
+				}
+			}
+			
+			if(!optional.isEmpty()){
+				sparql += " . OPTIONAL { " + optional + " } ";
+			}
+			if(!filter.isEmpty()){
+				sparql += " . FILTER ( " + filter + " ) ";
+			}
+			
+			sparql += "}";
+		}
+		
+		return sparql;
+	}
+
+	public Resource toSWRL(Model model) {
+		
+		
+		Resource imp = null;
+		
+		if(head!=null && body!=null){
+			imp = model.createResource(ruleName, SWRL.Imp);
+			
+			
+			//RDF list for body 
+			RDFList list = model.createList();			
+			for(KReSRuleAtom atom : body){
+				list = list.cons(atom.toSWRL(model));
+			}			
+			imp.addProperty(SWRL.body, list);
+			
+			//RDF list for head
+			list = model.createList();			
+			for(KReSRuleAtom atom : head){
+				list = list.cons(atom.toSWRL(model));
+			}			
+			imp.addProperty(SWRL.head, list);
+			
+		}
+		
+		return imp;
+	}
+	
+	
+	public SWRLRule toSWRL(OWLDataFactory factory) {
+		
+		Set<SWRLAtom> bodyAtoms = new HashSet<SWRLAtom>();
+		Set<SWRLAtom> headAtoms = new HashSet<SWRLAtom>();
+		for(KReSRuleAtom atom : body){
+			bodyAtoms.add(atom.toSWRL(factory));
+		}
+		for(KReSRuleAtom atom : head){
+			headAtoms.add(atom.toSWRL(factory));
+		}
+		return factory.getSWRLRule(
+			IRI.create(ruleName),
+			bodyAtoms,
+			headAtoms);
+		
+		
+		
+	}
+	
+	@Override
+	public String toString() {
+		String rule = null;
+		String tab = "       ";
+		if(head!=null && body!= null){
+			boolean addAnd = false;
+			rule = "RULE "+ruleName+" ASSERTS THAT "+System.getProperty("line.separator");
+			rule += "IF"+System.getProperty("line.separator");
+			for(KReSRuleAtom atom : body){
+				rule += tab;
+				if(addAnd){
+					rule += "AND ";
+				}
+				else{
+					addAnd = true;
+				}
+				rule += atom.toString()+System.getProperty("line.separator");
+				
+			}
+			
+			rule += "IMPLIES"+System.getProperty("line.separator");
+			
+			addAnd = false;
+			for(KReSRuleAtom atom : head){
+				rule += tab;
+				if(addAnd){
+					rule += "AND ";
+				}
+				else{
+					addAnd = true;
+				}
+				rule += atom.toString()+System.getProperty("line.separator");
+				
+			}
+		}
+		return rule;
+	}
+	
+	
+
+
+	@Override
+	public AtomList getBody() {
+		return body;
+	}
+
+	@Override
+	public AtomList getHead() {
+		return head;
+	}
+
+	@Override
+	public String toKReSSyntax(){
+		
+		Resource rs = ModelFactory.createDefaultModel().createResource(ruleName);
+		String ruleInKReSSyntax = rs.getLocalName()+"[";
+		
+		
+		if(isSPARQLConstruct() || isSPARQLDelete()){
+			boolean found = false;
+			Iterator<KReSRuleAtom> it = body.iterator();
+			while(it.hasNext() && !found){
+				KReSRuleAtom kReSRuleAtom = it.next();
+				ruleInKReSSyntax = kReSRuleAtom.toSPARQL().getObject();
+				found = true;
+			}
+			
+		}
+		else{
+		
+			boolean firstLoop = true;
+			for(KReSRuleAtom atom : body){
+				if(!firstLoop){
+					ruleInKReSSyntax += " . ";
+				}
+				else{
+					firstLoop = false;
+				}
+				ruleInKReSSyntax += atom.toKReSSyntax();
+			}
+			
+			if(head != null){
+			
+				ruleInKReSSyntax += " -> ";
+				
+				firstLoop = true;
+				for(KReSRuleAtom atom : head){
+					if(!firstLoop){
+						ruleInKReSSyntax += " . ";
+					}
+					else{
+						firstLoop = false;
+					}
+					ruleInKReSSyntax += atom.toKReSSyntax();
+				}
+			}
+		}
+		
+		ruleInKReSSyntax += "]";
+		
+		return ruleInKReSSyntax;
+	}
+	
+	@Override
+	public boolean isForwardChain() {
+		switch (expressiveness) {
+		case ForwardChaining:
+			return true;
+
+		default:
+			return false;
+		}
+	}
+
+	@Override
+	public boolean isSPARQLConstruct() {
+		switch (expressiveness) {
+		case SPARQLConstruct:
+			return true;
+
+		default:
+			return false;
+		}
+	}
+
+	@Override
+	public boolean isSPARQLDelete() {
+		switch (expressiveness) {
+		case SPARQLDelete:
+			return true;
+
+		default:
+			return false;
+		}
+	}
+	
+	@Override
+	public boolean isSPARQLDeleteData() {
+		switch (expressiveness) {
+		case SPARQLDeleteData:
+			return true;
+
+		default:
+			return false;
+		}
+	}
+	
+
+	@Override
+	public boolean isReflexive() {
+		switch (expressiveness) {
+		case Reflexive:
+			return true;
+
+		default:
+			return false;
+		}
+	}
+
+	
+	@Override
+	public KReSRuleExpressiveness getExpressiveness() {
+		return expressiveness;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleParser.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleParser.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleParser.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/KReSRuleParser.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,497 @@
+package org.apache.stanbol.rules.manager;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import com.hp.hpl.jena.ontology.EnumeratedClass;
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.ontology.OntModelSpec;
+import com.hp.hpl.jena.ontology.OntResource;
+import com.hp.hpl.jena.rdf.model.Bag;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFList;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.util.CollectionFactory;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+import eu.iksproject.kres.ontologies.SWRL;
+
+public class KReSRuleParser {
+
+	public static String ruleNS = "http://www.prova.org/rules.rdf#";
+	
+	
+	private Model sourceModel;
+	private Model destinationModel;
+	
+	private OntModel ruleOntology;
+	
+	public KReSRuleParser(Model sourceModel, Model destinationModel, Model ruleOntology) {
+		this.sourceModel = sourceModel;
+		this.destinationModel = destinationModel;
+		this.ruleOntology = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, ruleOntology);
+	}
+	
+	
+	public KReSRuleParser(OntModel inputOntology, Map<String, String>prefixMap, Model ruleOntology) {
+		this.sourceModel = inputOntology;
+		this.ruleOntology = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, ruleOntology);
+		Set<String> keys = prefixMap.keySet();
+		Iterator<String> it = keys.iterator();
+		while(it.hasNext()){
+			String key = it.next();
+			String ns = prefixMap.get(key);
+			ruleOntology.setNsPrefix(key, ns);
+		}
+	}
+	
+	public KReSRuleParser(OntModel inputOntology, Map<String, String>prefixMap) {
+		this.sourceModel = inputOntology;
+		this.ruleOntology = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);
+		ruleOntology.setNsPrefix("owl", "http://www.w3.org/2002/07/owl#"); 
+		ruleOntology.setNsPrefix("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); 
+		ruleOntology.setNsPrefix("rdfs", "http://www.w3.org/2000/01/rdf-schema#"); 
+		ruleOntology.setNsPrefix("swrl", "http://www.w3.org/2003/11/swrl#");
+		ruleOntology.setNsPrefix("rule", ruleNS);
+		
+		Set<String> keys = prefixMap.keySet();
+		Iterator<String> it = keys.iterator();
+		while(it.hasNext()){
+			String key = it.next();
+			String ns = prefixMap.get(key);
+			ruleOntology.setNsPrefix(key, ns);
+		}
+	}
+	
+	public Resource parse(String ruleName, String ruleString){
+		
+		Resource imp = null;
+		
+		System.out.println("INPUT");
+		//inputOntology.write(System.out);
+		
+		String[] ruleSplit = ruleString.split("->");
+		if(ruleSplit.length == 2){
+			
+			imp = ruleOntology.createResource(ruleNS+ruleName, SWRL.Imp);
+			
+			//rule divided into body and head
+			String bodyString = ruleSplit[0];
+			String headString = ruleSplit[1];
+			System.out.println("BODY : "+bodyString);
+			System.out.println("HEAD : "+headString);
+			
+			//RDFList list = createList(bodyString);
+			
+			imp.addProperty(SWRL.body, createList(bodyString));
+			
+			imp.addProperty(SWRL.head, createList(headString));
+			
+		}
+		else{
+			ruleSplit = ruleString.split("<-");
+			
+			if(ruleSplit.length == 2){
+				
+				imp = ruleOntology.createResource(ruleNS+ruleName, SWRL.Imp);
+				
+				//rule divided into body and head
+				
+				String headString = ruleSplit[0];				
+				String bodyString = ruleSplit[1];
+				
+
+				RDFList list = createList(bodyString);
+				if(list != null){
+					imp.addProperty(SWRL.head, list.getHead());
+				}
+
+				list = createList(headString);
+				if(list != null){
+					imp.addProperty(SWRL.body, list);
+				}
+				
+			}
+		}
+		
+		return imp;
+		
+	}
+	
+	
+	
+	public OntModel getRuleOntology() {
+		return ruleOntology;
+	}
+	
+	private RDFNode getSWRLArgument(String argument){
+		RDFNode rdfNode = null;
+		String[] argumentComposition = argument.split(":");
+		if(argumentComposition.length == 2){
+			String prefix = argumentComposition[0];
+			String resourceName = argumentComposition[1];
+			
+			String namespaceURI = ruleOntology.getNsPrefixURI(prefix);
+			
+			rdfNode = sourceModel.getResource(namespaceURI+resourceName);
+			if(rdfNode == null){
+				rdfNode = destinationModel.getResource(namespaceURI+resourceName);
+			}
+			
+		}
+		else if(argument.startsWith("\"") && argument.endsWith("\"")){
+			Model tmpModel = ModelFactory.createDefaultModel();
+			rdfNode = tmpModel.createLiteral(argument);
+		}
+		return rdfNode;
+	}
+	
+	private Resource getSWRLVariable(String argument){
+		Resource variableResource = null;
+		String variableString = argument.substring(1);
+		StmtIterator stmtIterator = ruleOntology.listStatements(null, RDF.type, SWRL.Variable);
+		boolean found = false;
+		
+		String variable = ruleNS+variableString;
+		while(stmtIterator.hasNext() && !found){
+			Statement statement = stmtIterator.next();
+			variableResource = statement.getSubject();
+			if(variableResource.getURI().equals(variable)){
+				found = true;
+			}
+			
+		}
+		if(!found){
+			variableResource = ruleOntology.createResource(variable, SWRL.Variable);
+			System.out.println("LA CREO");
+		}
+		
+		
+		return variableResource;
+	}
+	
+	private Resource createSameAsAtom(String token, int openPar, int closePar){
+		
+		Resource sameASAtom = ruleOntology.createResource(SWRL.SameIndividualAtom);
+		String argumentString = token.substring(openPar+1, closePar);
+		System.out.println("ARGUMENT STRING : "+argumentString);
+		
+		String[] arguments = argumentString.split(",");
+		if(arguments.length == 2){
+			
+			for(int j=0; j<arguments.length; j++){
+				String argument = arguments[j];
+				argument = argument.replaceAll(" ", "");
+				System.out.println("ARGUMENT : "+argument);
+				RDFNode argRes;
+				if(argument.startsWith("?")){
+					argRes = getSWRLVariable(argument);
+					
+				}
+				else{
+					argRes = getSWRLArgument(argument);
+				}
+				
+				switch(j){
+				case 0:
+					sameASAtom.addProperty(SWRL.argument1, argRes);
+					break;
+				case 1:
+					sameASAtom.addProperty(SWRL.argument2, argRes);
+					break;
+				}
+			}
+		}
+		
+		return sameASAtom;
+		
+	}
+	
+	
+	private Resource createDifferentAtom(String token, int openPar, int closePar){
+		
+		Resource differentIndividualAtom = ruleOntology.createResource(SWRL.DifferentIndividualsAtom);
+		String argumentString = token.substring(openPar+1, closePar);
+		System.out.println("ARGUMENT STRING : "+argumentString);
+		
+		String[] arguments = argumentString.split(",");
+		if(arguments.length == 2){
+			
+			for(int j=0; j<arguments.length; j++){
+				String argument = arguments[j];
+				argument = argument.replaceAll(" ", "");
+				System.out.println("ARGUMENT : "+argument);
+				RDFNode argRes;
+				if(argument.startsWith("?")){
+					argRes = getSWRLVariable(argument);
+					
+				}
+				else{
+					argRes = getSWRLArgument(argument);
+				}
+				
+				switch(j){
+				case 0:
+					differentIndividualAtom.addProperty(SWRL.argument1, argRes);
+					break;
+				case 1:
+					differentIndividualAtom.addProperty(SWRL.argument2, argRes);
+					break;
+				}
+			}
+		}
+		
+		return differentIndividualAtom;
+		
+	}
+	
+	private Resource createClassAtom(OntResource ontResource, String token, int openPar, int closePar){
+		
+		Resource classAtom = ruleOntology.createResource(SWRL.ClassAtom);
+		String argumentString = token.substring(openPar+1, closePar);
+		System.out.println("ARGUMENT STRING : "+argumentString);
+		
+		classAtom.addProperty(SWRL.classPredicate, ontResource);
+		
+		String[] arguments = argumentString.split(",");
+		if(arguments.length == 1){
+			
+			
+			String argument = arguments[0];
+			argument = argument.replaceAll(" ", "");
+			System.out.println("ARGUMENT : "+argument);
+			RDFNode argRes;
+			if(argument.startsWith("?")){
+				argRes = getSWRLVariable(argument);
+				
+			}
+			else{
+				argRes = getSWRLArgument(argument);
+			}
+			
+			classAtom.addProperty(SWRL.argument1, argRes);
+		}
+		
+		return classAtom;
+		
+	}
+	
+	private Resource createIndividualAtom(OntResource ontResource, String token, int openPar, int closePar){
+		
+		
+		
+		Resource individualPropertyAtom = ruleOntology.createResource(SWRL.IndividualPropertyAtom);
+		String argumentString = token.substring(openPar+1, closePar);
+		System.out.println("ARGUMENT STRING INDIVIDUAL PROPERTY ATOM: "+argumentString);
+		
+		individualPropertyAtom.addProperty(SWRL.propertyPredicate, ontResource);
+		
+		String[] arguments = argumentString.split(",");
+		if(arguments.length == 2){
+			
+			for(int j=0; j<arguments.length; j++){
+				String argument = arguments[j];
+				argument = argument.replaceAll(" ", "");
+				System.out.println("ARGUMENT : "+argument);
+				RDFNode argRes;
+				if(argument.startsWith("?")){
+					argRes = getSWRLVariable(argument);
+					
+				}
+				else{
+					argRes = getSWRLArgument(argument);
+				}
+				
+				switch(j){
+				case 0:
+					individualPropertyAtom.addProperty(SWRL.argument1, argRes);
+					break;
+				case 1:
+					individualPropertyAtom.addProperty(SWRL.argument2, argRes);
+					break;
+				}
+			}
+		}
+		
+		return individualPropertyAtom;
+		
+	}
+	
+	private Resource createDatavaluedPropertyAtom(OntResource ontResource, String token, int openPar, int closePar){
+		
+		Resource databaluedPropertyAtom = ruleOntology.createResource(SWRL.DatavaluedPropertyAtom);
+		String argumentString = token.substring(openPar+1, closePar);
+		System.out.println("ARGUMENT STRING : "+argumentString);
+		
+		databaluedPropertyAtom.addProperty(SWRL.propertyPredicate, ontResource);
+		
+		String[] arguments = argumentString.split(",");
+		if(arguments.length == 2){
+			
+			for(int j=0; j<arguments.length; j++){
+				String argument = arguments[j];
+				argument = argument.replaceAll(" ", "");
+				System.out.println("ARGUMENT : "+argument);
+				RDFNode argRes;
+				if(argument.startsWith("?")){
+					argRes = getSWRLVariable(argument);
+					
+				}
+				else{
+					argRes = getSWRLArgument(argument);
+				}
+				
+				switch(j){
+				case 0:
+					databaluedPropertyAtom.addProperty(SWRL.argument1, argRes);
+					break;
+				case 1:
+					databaluedPropertyAtom.addProperty(SWRL.argument2, argRes);
+					break;
+				}
+			}
+		}
+		
+		return databaluedPropertyAtom;
+		
+	}
+	
+	private Resource createDataRangeAtom(OntResource ontResource, String token, int openPar, int closePar){
+		
+		Resource dataRangeAtom = ruleOntology.createResource(SWRL.DataRangeAtom);
+		String argumentString = token.substring(openPar+1, closePar);
+		System.out.println("ARGUMENT STRING : "+argumentString);
+		
+		dataRangeAtom.addProperty(SWRL.propertyPredicate, ontResource);
+		
+		String[] arguments = argumentString.split(",");
+		if(arguments.length == 1){
+			
+		
+			String argument = arguments[0];
+			argument = argument.replaceAll(" ", "");
+			System.out.println("ARGUMENT : "+argument);
+			RDFNode argRes;
+			if(argument.startsWith("?")){
+				argRes = getSWRLVariable(argument);
+				
+			}
+			else{
+				argRes = getSWRLArgument(argument);
+			}
+			
+			
+			dataRangeAtom.addProperty(SWRL.argument1, argRes);
+			
+		}
+		
+		return dataRangeAtom;
+		
+	}
+	
+	private RDFList createList(String atomString){
+		RDFList list = ruleOntology.createList();
+		
+		String[] tokenArray = atomString.split(" AND ");
+		for(int i=0; i<tokenArray.length; i++){
+			if(!tokenArray.equals("")){
+				String token = tokenArray[i];
+				while(token.startsWith(" ")){
+					token = token.substring(1);
+				}
+				int openPar = token.indexOf("(");
+				int closePar = token.indexOf(")");
+				
+				String atom = token.substring(0, openPar);
+				System.out.println("ATOM : "+atom);
+				
+				Resource atomResource = null;
+				
+				
+				
+				if(atom.equals("same")){						
+					atomResource = createSameAsAtom(token, openPar, closePar);						
+				}
+				else if(atom.equals("different")){
+					atomResource = createDifferentAtom(token, openPar, closePar);
+				}
+				else{
+					String[] atomComponents = atom.split(":");
+					if(atomComponents.length == 2){
+						String atomNSPrefix = atomComponents[0];
+						String atomName = atomComponents[1];
+
+						OntResource ontResource = null;
+						System.out.println("atomNSPrefix : "+atomNSPrefix);
+						//ruleOntology.write(System.out);
+						String namespaceURI = ruleOntology.getNsPrefixURI(atomNSPrefix);
+						
+						System.out.println("SEMION RULE PARSER : ontology "+namespaceURI.replace("#", ""));
+						
+						OntModel ontModelExternal = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);
+						ontModelExternal.read(namespaceURI.replace("#", ""));
+						
+						ontResource = ontModelExternal.getOntResource(namespaceURI+atomName);
+						
+						System.out.println("NAME ATOOOOM: "+namespaceURI+atomName);
+						
+						if(ontResource != null){
+							System.out.println("QUIIIIIIIIIIIIIIII");
+							if(ontResource.isClass()){
+								atomResource = createClassAtom(ontResource, token, openPar, closePar);
+								System.out.println(ontResource.getURI()+ " CLASS ");
+							}
+							else if(ontResource.isObjectProperty()){
+								atomResource = createIndividualAtom(ontResource, token, openPar, closePar);
+								System.out.println(ontResource.getURI()+ " OBJECT PROPERTY");
+							}
+							else if(ontResource.isDatatypeProperty()){
+								atomResource = createDatavaluedPropertyAtom(ontResource, token, openPar, closePar);
+								System.out.println(ontResource.getURI()+ " OBJECT DATATYPE PROPERTY");
+							}
+							else if(ontResource.isDataRange()){
+								atomResource = createDataRangeAtom(ontResource, token, openPar, closePar);
+								System.out.println(ontResource.getURI()+ " DATA RANGE");
+							}
+							else{
+								if(ontResource.isProperty()){
+									atomResource = createIndividualAtom(ontResource, token, openPar, closePar);
+									System.out.println(ontResource.getURI()+ " PROPERTY");
+								}
+								else{
+									System.out.println(ontResource.getURI()+ " nil");
+								}
+							}
+							
+						}
+						else{
+							System.out.println("SONO UNA MINCHIA");
+						}
+						
+						
+					}
+				}
+				
+				if(atomResource != null){
+					
+					list = list.cons(atomResource);
+					System.out.println("ENTRO QUI "+list.size());
+					
+				}
+				
+			}
+		}
+		
+		return list;
+	}
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLComparison.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLComparison.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLComparison.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLComparison.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,19 @@
+package org.apache.stanbol.rules.manager;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+
+public class SPARQLComparison implements SPARQLObject {
+
+	private String filter;
+	
+	public SPARQLComparison(String filter) {
+		this.filter = filter;
+	}
+	
+	@Override
+	public String getObject() {
+		return filter;
+	}
+	
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLFunction.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLFunction.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLFunction.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLFunction.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,19 @@
+package org.apache.stanbol.rules.manager;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+
+public class SPARQLFunction implements SPARQLObject {
+
+	
+	private String function;
+	
+	public SPARQLFunction(String function) {
+		this.function = function;
+	}
+
+	@Override
+	public String getObject() {
+		return function;
+	}
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLNot.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLNot.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLNot.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLNot.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,25 @@
+package org.apache.stanbol.rules.manager;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+
+public class SPARQLNot implements SPARQLObject {
+
+	
+	private String optional;
+	private String[] filters;
+	
+	public SPARQLNot(String optional, String[] filters) {
+		this.optional = optional;
+		this.filters = filters;
+	}
+	
+	@Override
+	public String getObject() {
+		return optional;
+	}
+	
+	public String[] getFilters() {
+		return filters;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLTriple.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLTriple.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLTriple.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/SPARQLTriple.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,20 @@
+package org.apache.stanbol.rules.manager;
+
+import org.apache.stanbol.rules.base.api.SPARQLObject;
+
+public class SPARQLTriple implements SPARQLObject {
+
+	
+	private String triple;
+	
+	public SPARQLTriple(String triple) {
+		this.triple = triple;
+	}
+	
+	@Override
+	public String getObject() {
+		return triple;
+	}
+
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/Concat.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/Concat.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/Concat.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/Concat.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,5 @@
+package org.apache.stanbol.rules.manager.arqextention;
+
+public class Concat {
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreatePropertyURIStringFromLabel.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreatePropertyURIStringFromLabel.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreatePropertyURIStringFromLabel.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreatePropertyURIStringFromLabel.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,29 @@
+package org.apache.stanbol.rules.manager.arqextention;
+
+import com.hp.hpl.jena.sparql.expr.NodeValue;
+import com.hp.hpl.jena.sparql.function.FunctionBase2;
+
+public class CreatePropertyURIStringFromLabel  extends FunctionBase2 {
+
+	@Override
+	public NodeValue exec(NodeValue namespace, NodeValue label) {
+		String argument1 = namespace.getString();
+		String argument2 = label.getString();
+		
+		String[] argument2Splitted = argument2.split(" ");
+		
+		String localName = argument2Splitted[0].substring(0, 1).toLowerCase() + argument2Splitted[0].substring(1, argument2Splitted[0].length());
+		
+		
+		for(int i=1; i<argument2Splitted.length; i++){
+			localName += argument2Splitted[i].substring(0, 1).toUpperCase() + argument2Splitted[i].substring(1, argument2Splitted[i].length());
+		}
+	
+		
+		String newString = argument1 + localName;
+		
+		return NodeValue.makeString(newString);
+	}
+
+	
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateStandardLabel.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateStandardLabel.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateStandardLabel.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateStandardLabel.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,36 @@
+package org.apache.stanbol.rules.manager.arqextention;
+
+import com.hp.hpl.jena.sparql.expr.NodeValue;
+import com.hp.hpl.jena.sparql.function.FunctionBase1;
+
+public class CreateStandardLabel extends FunctionBase1 {
+
+	public CreateStandardLabel() {
+		super();
+	}
+	
+	@Override
+	public NodeValue exec(NodeValue nodeValue) {
+		String value = nodeValue.getString();
+		
+		String[] split = value.split("(?=\\p{Upper})");
+		
+		int i = 0;
+		
+		if(split[i].isEmpty()){
+			i += 1;
+		}
+		
+		String newString = split[i].substring(0, 1).toUpperCase() + split[i].substring(1, split[i].length());
+		
+		if(split.length > 1){
+			for(i+=1; i<split.length; i++){
+				newString += " "+split[i].substring(0, 1).toLowerCase() + split[i].substring(1, split[i].length());
+			}
+		}
+		
+		return NodeValue.makeString(newString);
+	}
+	
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateURI.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateURI.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateURI.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/arqextention/CreateURI.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,50 @@
+package org.apache.stanbol.rules.manager.arqextention;
+
+import eu.iksproject.kres.ontologies.XML_OWL;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.engine.ExecutionContext;
+import com.hp.hpl.jena.sparql.engine.QueryIterator;
+import com.hp.hpl.jena.sparql.engine.binding.Binding;
+import com.hp.hpl.jena.sparql.engine.binding.Binding0;
+import com.hp.hpl.jena.sparql.engine.binding.Binding1;
+import com.hp.hpl.jena.sparql.pfunction.PropFuncArg;
+import com.hp.hpl.jena.sparql.pfunction.PropFuncArgType;
+import com.hp.hpl.jena.sparql.pfunction.PropertyFunctionEval;
+import com.hp.hpl.jena.sparql.util.IterLib;
+
+public class CreateURI extends PropertyFunctionEval {
+
+	
+	public CreateURI() {
+		super(PropFuncArgType.PF_ARG_SINGLE, PropFuncArgType.PF_ARG_SINGLE);
+	}
+
+	@Override
+	public QueryIterator execEvaluated(Binding binding, PropFuncArg argumentSubject,
+			Node predicate, PropFuncArg argumentObject, ExecutionContext execCxt) {
+		
+		Binding b =  null;
+		if(argumentObject.getArg().isLiteral()){
+			Node ref = argumentSubject.getArg();
+			if(ref.isVariable()){
+				String argumentString = argumentObject.getArg().toString().replace("\"", "");
+				
+				b =  new Binding1(binding, Var.alloc(ref), Node.createURI(argumentString));
+			}
+		}
+		
+		if(b == null){
+			b = binding;
+		}
+		
+		return IterLib.result(b, execCxt);
+	}
+	
+	
+	 
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/BlankNodeAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/BlankNodeAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/BlankNodeAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/BlankNodeAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,50 @@
+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.SPARQLTriple;
+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 BlankNodeAtom extends KReSCoreAtom {
+
+	private URIResource argument1;
+	private URIResource argument2;
+	
+	public BlankNodeAtom(URIResource argument1, URIResource 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 sparql = argument2.toString() + " " + argument1.toString() + " _:bNode";
+		
+		return new SPARQLTriple(sparql);
+		
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		
+		return "createBN(" + argument1.toString() + ", " + argument2.toString() + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ClassAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,172 @@
+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.OWLClass;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLIndividual;
+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 ClassAtom extends KReSCoreAtom {
+
+	private URIResource classResource;
+	private URIResource argument1;
+	
+	public ClassAtom(URIResource classResource, URIResource argument1) {
+		this.classResource = classResource;
+		this.argument1 = argument1;
+	}
+	
+	@Override
+	public SPARQLObject toSPARQL() {
+		String argument1SPARQL = null;
+		String argument2SPARQL = null;
+		
+		boolean negativeArg = false;
+		boolean negativeClass = false;
+		
+		if(argument1.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument1SPARQL = "?"+argument1.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) argument1;
+			negativeArg = variable.isNegative();
+		}
+		else{
+			argument1SPARQL = argument1.toString();
+		}
+		
+		if(classResource.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			argument2SPARQL = "?"+classResource.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) classResource;
+			negativeClass = variable.isNegative();
+		}
+		else{
+			argument2SPARQL = classResource.toString();
+		}
+		
+	
+		if(negativeArg || negativeClass){
+			String optional = argument1SPARQL + " <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> " + argument2SPARQL;
+			
+			ArrayList<String> filters = new ArrayList<String>();
+			if(negativeArg){
+				filters.add("!bound(" + argument1SPARQL + ")");
+			}
+			if(negativeClass){
+				filters.add("!bound(" + argument2SPARQL + ")");
+			}
+			
+			String[] filterArray = new String[filters.size()];
+			filterArray = filters.toArray(filterArray);
+			
+			return new SPARQLNot(optional, filterArray);
+		}
+		else{
+			return new SPARQLTriple(argument1SPARQL + " <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> " + argument2SPARQL);
+		}
+	}
+
+	@Override
+	public Resource toSWRL(Model model) {
+		
+		
+		Resource classAtom = model.createResource(SWRL.ClassAtom);
+		
+		Resource classPredicate = model.createResource(classResource.toString());
+		
+		classAtom.addProperty(SWRL.classPredicate, classPredicate);
+		
+		Resource argumentResource = argument1.createJenaResource(model);
+		
+		classAtom.addProperty(SWRL.argument1, argumentResource);
+		
+		
+		return classAtom;
+	}
+	
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		
+		OWLClass classPredicate = factory.getOWLClass(IRI.create(classResource.getURI().toString()));
+		
+		SWRLIArgument argumentResource;
+		if(argument1 instanceof KReSResource){
+			OWLIndividual owlIndividual = factory.getOWLNamedIndividual(IRI.create(argument1.getURI().toString()));
+			argumentResource = factory.getSWRLIndividualArgument(owlIndividual);
+		}
+		else{
+			argumentResource = factory.getSWRLVariable(IRI.create(argument1.getURI().toString()));
+		}
+		
+		
+		return factory.getSWRLClassAtom(classPredicate, argumentResource);
+		
+	}
+	
+	public URIResource getClassResource() {
+		return classResource;
+	}
+	
+	public URIResource getArgument1() {
+		return argument1;
+	}
+	
+	@Override
+	public String toString() {
+		
+		return argument1.toString() + " is an individual of the class "+classResource.toString();
+	}
+	
+	@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#", "");
+			KReSVariable variable = (KReSVariable) argument1;
+			if(variable.isNegative()){
+				arg1 = "notex(" + arg1 + ")";
+			}
+		}
+		else{
+			arg1 = argument1.toString();
+		}
+		
+		if(classResource.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg2 = "?"+classResource.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) classResource;
+			if(variable.isNegative()){
+				arg2 = "notex(" + arg2 + ")";
+			}
+		}
+		else{
+			arg2 = classResource.toString();
+		}
+		return "is(" + arg2 + ", " + arg1 + ")";
+	}
+
+	@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/ComparisonAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ComparisonAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ComparisonAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ComparisonAtom.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 ComparisonAtom 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/ConcatAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ConcatAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ConcatAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/ConcatAtom.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 ConcatAtom extends StringFunctionAtom {
+
+	private StringFunctionAtom argument1;
+	private StringFunctionAtom argument2;
+	
+	public ConcatAtom(StringFunctionAtom argument1, StringFunctionAtom 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 sparqlConcat = "<http://www.w3.org/2005/xpath-functions#concat>";
+		String function = sparqlConcat + " (" + argument1.toSPARQL().getObject() + ", " + argument2.toSPARQL().getObject() + ")";
+		 
+		return new SPARQLFunction(function);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		
+		return "concat(" + argument1.toKReSSyntax() + ", " + argument2.toKReSSyntax() + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/CreateLabelAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/CreateLabelAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/CreateLabelAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/CreateLabelAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,53 @@
+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 CreateLabelAtom extends StringFunctionAtom {
+
+	
+	private StringFunctionAtom stringFunctionAtom;
+	
+	public CreateLabelAtom(StringFunctionAtom stringFunctionAtom) {
+		this.stringFunctionAtom = stringFunctionAtom;
+	}
+	
+	@Override
+	public Resource toSWRL(Model model) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SPARQLObject toSPARQL() {
+		
+		System.out.println("Argument instance of "+stringFunctionAtom.getClass().getCanonicalName());
+		
+		String argument = stringFunctionAtom.toSPARQL().getObject();
+		
+		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://www.stlab.istc.cnr.it/semion/function#createLabel>(" + argument + ")";
+		return new SPARQLFunction(sparql);
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		return "createLabel(" + stringFunctionAtom.toKReSSyntax() + ")";
+	}
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DatavaluedPropertyAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,291 @@
+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.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLDataProperty;
+import org.semanticweb.owlapi.model.OWLIndividual;
+import org.semanticweb.owlapi.model.OWLLiteral;
+import org.semanticweb.owlapi.model.SWRLAtom;
+import org.semanticweb.owlapi.model.SWRLDArgument;
+import org.semanticweb.owlapi.model.SWRLIArgument;
+import org.semanticweb.owlapi.model.SWRLLiteralArgument;
+
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import eu.iksproject.kres.ontologies.SWRL;
+
+public class DatavaluedPropertyAtom extends KReSCoreAtom {
+
+	private URIResource datatypeProperty;
+	private URIResource argument1;
+	private Object argument2;
+	
+	public DatavaluedPropertyAtom(URIResource datatypeProperty, URIResource argument1, Object argument2) {
+		this.datatypeProperty = datatypeProperty;
+		this.argument1 = argument1;
+		this.argument2 = argument2;
+	}
+	
+	@Override
+	public SPARQLObject toSPARQL() {
+		String arg1 = argument1.toString();
+		String arg2 = argument2.toString();
+		String dtP = datatypeProperty.toString();
+		
+		
+		boolean negativeArg1 = false;
+		boolean negativeArg2 = false;
+		boolean negativeDtP = 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;
+			negativeArg1 = variable.isNegative();
+		}
+		
+		if(dtP.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			dtP = "?"+dtP.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) datatypeProperty;
+			negativeDtP = variable.isNegative();
+		}
+		
+		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;
+			negativeArg2 = variable.isNegative();
+			
+		}
+		else{
+			
+			if(argument2 instanceof String){
+				arg2 = argument2.toString();
+			}
+			else if(argument2 instanceof Integer){
+				arg2 = ((Integer) argument2).toString();
+			}
+			else if(argument2 instanceof KReSTypedLiteral){
+				
+				KReSTypedLiteral kReSTypeLiteral = (KReSTypedLiteral) argument2;
+				
+				Object value = kReSTypeLiteral.getValue();
+				String xsdType = kReSTypeLiteral.getXsdType().toString();
+				
+				System.out.println("TYPED LITERAL : ");
+				System.out.println("        value : "+value);
+				System.out.println("        xsd type : "+xsdType);
+				
+				if(value instanceof String){
+					arg2 = value + "^^" + xsdType;
+				}
+				else if(value instanceof Integer){
+					arg2 = ((Integer) value).toString()+"^^" + xsdType;
+				}
+				
+				System.out.println("ARG 2 : "+arg2);
+			}
+			else if(argument2 instanceof StringFunctionAtom){
+				arg2 = ((StringFunctionAtom) argument2).toSPARQL().getObject();
+			}
+			//return arg1+" "+dtP+" "+literal.getLiteral();
+		}
+		
+		if(negativeArg1 || negativeArg2 || negativeDtP){
+			String optional = arg1+" "+dtP+" "+arg2;
+			
+			ArrayList<String> filters = new ArrayList<String>();
+			if(negativeArg1){
+				filters.add("!bound(" + arg1 + ")");
+			}
+			if(negativeArg2){
+				filters.add("!bound(" + arg2 + ")");
+			}
+			if(negativeDtP){
+				filters.add("!bound(" + dtP + ")");
+			}
+			
+			String[] filterArray = new String[filters.size()];
+			filterArray = filters.toArray(filterArray);
+			
+			return new SPARQLNot(optional, filterArray);
+		}
+		else{
+			return new SPARQLTriple(arg1+" "+dtP+" "+arg2);
+		}
+		
+		
+	}
+
+	@Override
+	public Resource toSWRL(Model model) {
+		Resource datavaluedPropertyAtom = model.createResource(SWRL.DatavaluedPropertyAtom);
+		
+		Resource datatypePropertyResource = datatypeProperty.createJenaResource(model);
+		Resource argument1Resource = argument1.createJenaResource(model);
+		Literal argument2Literal = model.createTypedLiteral(argument2);
+		
+		datavaluedPropertyAtom.addProperty(SWRL.propertyPredicate, datatypePropertyResource);
+		datavaluedPropertyAtom.addProperty(SWRL.argument1, argument1Resource);
+		datavaluedPropertyAtom.addLiteral(SWRL.argument2, argument2Literal);
+		
+		return datavaluedPropertyAtom;
+	}
+	
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		OWLDataProperty owlDataProperty = factory.getOWLDataProperty(IRI.create(datatypeProperty.getURI().toString()));
+		
+		SWRLIArgument swrliArgument1;
+		SWRLDArgument swrliArgument2;
+		
+		OWLIndividual owlIndividual = factory.getOWLNamedIndividual(IRI.create(argument1.getURI().toString()));
+		swrliArgument1 = factory.getSWRLIndividualArgument(owlIndividual);
+		
+		
+		swrliArgument2 =  getSWRLTypedLiteral(factory, argument2);
+		
+		
+		
+		return factory.getSWRLDataPropertyAtom(owlDataProperty, swrliArgument1, swrliArgument2);
+	}
+	
+	public URIResource getDatatypeProperty() {
+		return datatypeProperty;
+	}
+	
+	public URIResource getArgument1() {
+		return argument1;
+	} 
+	
+	public Object getArgument2() {
+		return argument2;
+	}
+
+	
+	@Override
+	public String toString() {
+		return "Individual "+argument1.toString() + " has datatype property "+argument1.toString()+" with value "+argument2.toString();
+	}
+	
+	private SWRLLiteralArgument getSWRLTypedLiteral(OWLDataFactory factory, Object argument){
+		
+		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 factory.getSWRLLiteralArgument(owlLiteral); 
+	}
+	
+	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; 
+	}
+
+
+	@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(datatypeProperty.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+			arg3 = "?"+datatypeProperty.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+			KReSVariable variable = (KReSVariable) datatypeProperty;
+			if(variable.isNegative()){
+				arg3 = "notex(" + arg3 + ")";
+			}
+		}
+		else{
+			arg3 = datatypeProperty.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 + ")";
+			}
+			
+			return "values(" + arg3 + ", " + arg1 + ", " + arg2 +")";
+		}
+		else{
+			OWLLiteral literal = getOWLTypedLiteral(argument2);
+			
+			return "values(" + arg3 + ", " + arg1 + ", " + literal.getLiteral() +")";
+		}
+		
+	}
+
+
+	@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/DifferentAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DifferentAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DifferentAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/DifferentAtom.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.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 DifferentAtom extends ComparisonAtom {
+
+	
+	private StringFunctionAtom stringFunctionAtom1;
+	private StringFunctionAtom stringFunctionAtom2;
+	
+	public DifferentAtom(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 "different(" + 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/EndsWithAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/EndsWithAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/EndsWithAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/EndsWithAtom.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.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 EndsWithAtom extends ComparisonAtom {
+
+	
+	private StringFunctionAtom argument; 
+	private StringFunctionAtom term;
+	
+	public EndsWithAtom(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#ends-with> (" + argumentSparql + ", " + term.toSPARQL().getObject() + ")");
+	}
+
+	@Override
+	public SWRLAtom toSWRL(OWLDataFactory factory) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toKReSSyntax() {
+		
+		
+		
+		return "endsWith(" + argument.toKReSSyntax() + ", " + term.toKReSSyntax() + ")";
+	}
+	
+	
+
+}

Added: incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java?rev=1082166&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java (added)
+++ incubator/stanbol/trunk/kres/rules/manager/src/main/java/org/apache/stanbol/rules/manager/atoms/GreaterThanAtom.java Wed Mar 16 15:31:08 2011
@@ -0,0 +1,123 @@
+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 GreaterThanAtom extends ComparisonAtom {
+
+	
+	private Object argument1;
+	private Object argument2;
+	
+	public GreaterThanAtom(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 "gt(" + arg1 + ", " + arg2 +")";
+		}
+		else{
+			
+			return "gt(" + 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; 
+	}
+}
+