You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by an...@apache.org on 2012/03/28 16:15:18 UTC

svn commit: r1306359 [1/3] - in /incubator/stanbol/trunk/rules/adapters/sparql/clerezza: ./ src/ src/license/ 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...

Author: anuzzolese
Date: Wed Mar 28 14:15:16 2012
New Revision: 1306359

URL: http://svn.apache.org/viewvc?rev=1306359&view=rev
Log:
[STANBOL-560] Initial commit of the Clerezza Rule adapters.

Added:
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/pom.xml
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/license/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/license/THIRD-PARTY.properties
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaAdapter.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaSparqlObject.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/BlankNodeAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ClassAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ConcatAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/CreateLabelAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DatavaluedPropertyAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DifferentAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DivisionAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/EndsWithAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterEqualThanAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterThanAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IndividualPropertyAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IsBlankAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LengthAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessEqualThanAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessThanAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LetAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LocalNameAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LowerCaseAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/MultiplicationAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/NamespaceAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/NewIRIAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/NewLiteralAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/NotAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/NumberAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/NumericVariableAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/PropStringAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ResourceAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/SameAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/StartsWithAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/StrAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/StringAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/StringVariableAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/SubstringAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/SubtractionAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/SumAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/TypedLiteralAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/UObjectAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/UnionAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/UpperCaseAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/VariableAtom.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/resources/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/resources/META-INF/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/resources/OSGI-INF/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/resources/OSGI-INF/metatype/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/resources/OSGI-INF/metatype/metatype.properties
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/stanbol/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/stanbol/rules/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/stanbol/rules/adapters/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/stanbol/rules/adapters/sparql/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/stanbol/rules/adapters/sparql/clerezza/
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/java/org/apache/stanbol/rules/adapters/sparql/clerezza/ClerezzaAdpterTest.java
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/test/resources/
Modified:
    incubator/stanbol/trunk/rules/adapters/sparql/clerezza/   (props changed)

Propchange: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar 28 14:15:16 2012
@@ -0,0 +1,5 @@
+.project
+.DS_Store
+.classpath
+.settings
+target

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/pom.xml?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/pom.xml (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/pom.xml Wed Mar 28 14:15:16 2012
@@ -0,0 +1,104 @@
+<?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>org.apache.stanbol</groupId>
+		<artifactId>stanbol-parent</artifactId>
+		<version>0.9.0-incubating-SNAPSHOT</version>
+		<relativePath>../../parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>org.apache.stanbol.rules.adapters.sparql.clerezza</artifactId>
+	<packaging>bundle</packaging>
+
+	<name>Apache Stanbol Rules - Clerezza Adapters</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>
+						<Bundle-ClassPath>
+							.,
+							META-INF
+            			</Bundle-ClassPath>
+						<Export-Package>
+							org.apache.stanbol.rules.adapters.sparql.clerezza.*
+            			</Export-Package>
+						<Import-Package>
+							org.slf4j.*,
+							*
+            			</Import-Package>
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+
+		<!-- OSGi deps -->
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+		</dependency>
+
+
+		<!-- Persistence deps -->
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.core</artifactId>
+		</dependency>
+		
+		<!-- Stanbol deps -->
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.rules.base</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.rules.manager</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.rules.adapters</artifactId>
+			<version>0.9.0-incubating-SNAPSHOT</version>
+		</dependency>
+
+		<!-- Testing deps -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+		</dependency>
+
+	</dependencies>
+
+</project>

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/license/THIRD-PARTY.properties?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/license/THIRD-PARTY.properties (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/license/THIRD-PARTY.properties Wed Mar 28 14:15:16 2012
@@ -0,0 +1,26 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache 2
+# - Apache License
+# - BSD
+# - BSD-style license
+# - CDDL 1.1
+# - Common Development and Distribution License (CDDL) v1.0
+# - Common Public License Version 1.0
+# - GPL2 w/ CPE
+# - ICU License
+# - MIT License
+# - The Apache Software License, Version 2.0
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Wed Feb 15 19:05:24 CET 2012
+asm--asm--3.1=BSD License
+javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
+org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
+org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
+owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
+xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaAdapter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaAdapter.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaAdapter.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaAdapter.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,279 @@
+/*
+ * 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.
+ */
+
+package org.apache.stanbol.rules.adapters.sparql;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.clerezza.rdf.core.sparql.query.TriplePattern;
+import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleGroupGraphPattern;
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.rules.adapters.AbstractRuleAdapter;
+import org.apache.stanbol.rules.adapters.AdaptableAtom;
+import org.apache.stanbol.rules.base.api.Adaptable;
+import org.apache.stanbol.rules.base.api.Recipe;
+import org.apache.stanbol.rules.base.api.Rule;
+import org.apache.stanbol.rules.base.api.RuleAdapter;
+import org.apache.stanbol.rules.base.api.RuleAdaptersFactory;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.RuleStore;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.base.api.util.RuleList;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * The Rule Adapter for Clerezza.<br/>
+ * This adapter allows to convert Stanbol Rules to Clerezza {@link ConstructQuery} objects.
+ * 
+ * @author anuzzolese
+ * 
+ */
+
+@Component(immediate = true, metatype = true)
+@Service(RuleAdapter.class)
+public class ClerezzaAdapter extends AbstractRuleAdapter {
+
+    public static final String ARTIFACT = "org.apache.stanbol.rules.adapters.sparql.clerezza.atoms";
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    @Reference
+    RuleStore ruleStore;
+
+    @Reference
+    RuleAdaptersFactory ruleAdaptersFactory;
+
+    /**
+     * For OSGi environments.
+     */
+    public ClerezzaAdapter() {
+
+    }
+
+    /**
+     * For non-OSGi environments.
+     */
+    public ClerezzaAdapter(Dictionary<String,Object> configuration,
+                           RuleStore ruleStore,
+                           RuleAdaptersFactory ruleAdaptersFactory) {
+        this.ruleStore = ruleStore;
+        this.ruleAdaptersFactory = ruleAdaptersFactory;
+
+        try {
+            activate(configuration);
+        } catch (IOException e) {
+            log.error("Failed to load configuration");
+        }
+
+        try {
+            this.ruleAdaptersFactory.addRuleAdapter(this);
+        } catch (UnavailableRuleObjectException e) {
+            log.error("Failed to add the adapter to the registry.", e);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    protected <T> T adaptRecipeTo(Recipe recipe, Class<T> type) throws RuleAtomCallExeption,
+                                                               UnsupportedTypeForExportException,
+                                                               UnavailableRuleObjectException {
+
+        List<ConstructQuery> constructQueries = null;
+
+        if (type == ConstructQuery.class) {
+
+            constructQueries = new ArrayList<ConstructQuery>();
+
+            RuleList ruleList = recipe.getRuleList();
+            Iterator<Rule> ruleIterator = ruleList.iterator();
+
+            for (int i = 0; ruleIterator.hasNext(); i++) {
+                constructQueries.add((ConstructQuery) adaptRuleTo(ruleIterator.next(), type));
+            }
+
+        } else {
+            throw new UnsupportedTypeForExportException(
+                    "The adapter for Clerezza does not support the selected serialization : "
+                            + type.getCanonicalName());
+        }
+
+        return (T) constructQueries;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    protected <T> T adaptRuleTo(Rule rule, Class<T> type) throws RuleAtomCallExeption,
+                                                         UnsupportedTypeForExportException,
+                                                         UnavailableRuleObjectException {
+
+        Set<TriplePattern> triplePatterns = new HashSet<TriplePattern>();
+
+        List<Expression> expressions = new ArrayList<Expression>();
+
+        Iterator<RuleAtom> it = rule.getBody().iterator();
+        while (it.hasNext()) {
+            RuleAtom ruleAtom = it.next();
+            ClerezzaSparqlObject clerezzaSparqlObject = null;
+
+            clerezzaSparqlObject = (ClerezzaSparqlObject) adaptRuleAtomTo(ruleAtom, type);
+
+            Object clerezzaObj = clerezzaSparqlObject.getClerezzaObject();
+            if (clerezzaObj instanceof TriplePattern) {
+                triplePatterns.add((TriplePattern) clerezzaObj);
+            } else if (clerezzaObj instanceof Expression) {
+                expressions.add((Expression) clerezzaObj);
+            }
+        }
+
+        SimpleGroupGraphPattern groupGraphPattern = new SimpleGroupGraphPattern();
+
+        groupGraphPattern.addTriplePatterns(triplePatterns);
+
+        for (Expression expression : expressions) {
+            groupGraphPattern.addConstraint(expression);
+        }
+
+        triplePatterns = new HashSet<TriplePattern>();
+        it = rule.getHead().iterator();
+        while (it.hasNext()) {
+
+            RuleAtom ruleAtom = it.next();
+
+            ClerezzaSparqlObject clerezzaSparqlObject = (ClerezzaSparqlObject) adaptRuleAtomTo(ruleAtom, type);
+            triplePatterns.add((TriplePattern) clerezzaSparqlObject.getClerezzaObject());
+
+        }
+
+        SimpleConstructQuery constructQuery = new SimpleConstructQuery(triplePatterns);
+        constructQuery.setQueryPattern(groupGraphPattern);
+
+        return (T) constructQuery;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    protected <T> T adaptRuleAtomTo(RuleAtom ruleAtom, Class<T> type) throws RuleAtomCallExeption,
+                                                                     UnsupportedTypeForExportException,
+                                                                     UnavailableRuleObjectException {
+
+        if (type == ConstructQuery.class) {
+
+            ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
+            String className = ruleAtom.getClass().getSimpleName();
+
+            String canonicalName = ARTIFACT + "." + className;
+
+            try {
+                Class<AdaptableAtom> clerezzaAtomClass = (Class<AdaptableAtom>) loader
+                        .loadClass(canonicalName);
+
+                try {
+                    AdaptableAtom clerezzaAtom = clerezzaAtomClass.newInstance();
+
+                    clerezzaAtom.setRuleAdapter(this);
+
+                    return (T) clerezzaAtom.adapt(ruleAtom);
+
+                } catch (InstantiationException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                } catch (IllegalAccessException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+
+            } catch (ClassNotFoundException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            } catch (SecurityException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+
+        }
+
+        return null;
+
+    }
+
+    /**
+     * Used to configure an instance within an OSGi container.
+     * 
+     * @throws IOException
+     */
+    @SuppressWarnings("unchecked")
+    @Activate
+    protected void activate(ComponentContext context) throws IOException {
+
+        log.info("in " + ClerezzaAdapter.class + " activate with context " + context);
+        if (context == null) {
+            throw new IllegalStateException("No valid" + ComponentContext.class + " parsed in activate!");
+        }
+        activate((Dictionary<String,Object>) context.getProperties());
+    }
+
+    /**
+     * Should be called within both OSGi and non-OSGi environments.
+     * 
+     * @param configuration
+     * @throws IOException
+     */
+    protected void activate(Dictionary<String,Object> configuration) throws IOException {
+
+        log.info("The Clerezza adapter for Stanbol Rules  is active", this);
+    }
+
+    @Deactivate
+    protected void deactivate(ComponentContext context) {
+        log.info("in " + ClerezzaAdapter.class + " deactivate with context " + context);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> Class<T> getExportClass() {
+        return (Class<T>) ConstructQuery.class;
+    }
+
+    @Override
+    public <T> boolean canAdaptTo(Adaptable adaptable, Class<T> type) {
+        if(type == ConstructQuery.class){
+            return true;
+        }
+        else{
+            return false;
+        }
+    }
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaSparqlObject.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaSparqlObject.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaSparqlObject.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/ClerezzaSparqlObject.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+package org.apache.stanbol.rules.adapters.sparql;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.clerezza.rdf.core.sparql.query.TriplePattern;
+
+/**
+ * 
+ * This object represents either a {@link TriplePattern} or an {@link Expression} or a {@link UriRef}
+ * internally to the Clerezza adpter.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class ClerezzaSparqlObject {
+
+    private TriplePattern triplePattern;
+    private Expression expression;
+    private UriRef uriRef;
+
+    public ClerezzaSparqlObject(TriplePattern triplePattern) {
+        this.triplePattern = triplePattern;
+    }
+
+    public ClerezzaSparqlObject(Expression expression) {
+        this.expression = expression;
+    }
+
+    public ClerezzaSparqlObject(UriRef uriRef) {
+        this.uriRef = uriRef;
+    }
+
+    /**
+     * It returns the actual Clerezza value.<br/>
+     * 
+     * It can be:
+     * <ul>
+     * <li>a {@link TriplePattern}
+     * <li>an {@link Expression}
+     * <li>a {@link UriRef}
+     * 
+     * @return the object that can be in turn a {@link TriplePattern}, an {@link Expression}, and a
+     *         {@link UriRef}
+     */
+    public Object getClerezzaObject() {
+        if (triplePattern != null) {
+            return triplePattern;
+        } else if (expression != null) {
+            return expression;
+        } else {
+            return uriRef;
+        }
+    }
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/BlankNodeAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/BlankNodeAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/BlankNodeAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/BlankNodeAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.BNode;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.ResourceOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.UriRefOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleTriplePattern;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.IObjectAtom;
+
+/**
+ * It adapts any BlankNodeAtom to a simple triple pattern in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class BlankNodeAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.BlankNodeAtom tmp = (org.apache.stanbol.rules.manager.atoms.BlankNodeAtom) ruleAtom;
+
+        UriRefOrVariable subject;
+        UriRefOrVariable predicate;
+        ResourceOrVariable object;
+
+        IObjectAtom argument2UriResource = tmp.getArgument2();
+        IObjectAtom argument1UriResource = tmp.getArgument1();
+
+        ClerezzaSparqlObject subjectCSO = (ClerezzaSparqlObject) adapter.adaptTo(argument2UriResource,
+            ConstructQuery.class);
+        ClerezzaSparqlObject predicateCSO = (ClerezzaSparqlObject) adapter.adaptTo(argument1UriResource,
+            ConstructQuery.class);
+
+        subject = new UriRefOrVariable((UriRef) subjectCSO.getClerezzaObject());
+        predicate = new UriRefOrVariable((UriRef) predicateCSO.getClerezzaObject());
+        object = new ResourceOrVariable(new BNode());
+
+        return (T) new ClerezzaSparqlObject(new SimpleTriplePattern(subject, predicate, object));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ClassAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ClassAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ClassAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ClassAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.ResourceOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.UriRefOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.Variable;
+import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleTriplePattern;
+import org.apache.clerezza.rdf.ontologies.RDF;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.IObjectAtom;
+
+/**
+ * It adapts any ClassAtom to a simple triple pattern in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class ClassAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.ClassAtom tmp = (org.apache.stanbol.rules.manager.atoms.ClassAtom) ruleAtom;
+
+        IObjectAtom argument1 = tmp.getArgument1();
+        IObjectAtom classResource = tmp.getClassResource();
+
+        ClerezzaSparqlObject argumentCSO = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject classCSO = (ClerezzaSparqlObject) adapter.adaptTo(classResource,
+            ConstructQuery.class);
+
+        UriRefOrVariable subject;
+        UriRefOrVariable predicate = new UriRefOrVariable(RDF.type);
+        ResourceOrVariable object;
+
+        Object arg = argumentCSO.getClerezzaObject();
+        Object cl = classCSO.getClerezzaObject();
+
+        if (arg instanceof Variable) {
+            subject = new UriRefOrVariable((Variable) arg);
+        } else if (arg instanceof UriRef) {
+            subject = new UriRefOrVariable((UriRef) arg);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        if (cl instanceof Variable) {
+            object = new ResourceOrVariable((Variable) cl);
+        } else if (cl instanceof UriRef) {
+            object = new ResourceOrVariable((UriRef) cl);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        return (T) new ClerezzaSparqlObject(new SimpleTriplePattern(subject, predicate, object));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ConcatAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ConcatAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ConcatAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/ConcatAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.clerezza.rdf.core.sparql.query.FunctionCall;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.StringFunctionAtom;
+
+/**
+ * It adapts any ConcatAtom to the XPath function <http://www.w3.org/2005/xpath-functions#concat> in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class ConcatAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.ConcatAtom tmp = (org.apache.stanbol.rules.manager.atoms.ConcatAtom) ruleAtom;
+
+        StringFunctionAtom argument1Atom = tmp.getArgument1();
+        StringFunctionAtom argument2Atom = tmp.getArgument2();
+
+        ClerezzaSparqlObject argument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument1Atom,
+            ConstructQuery.class);
+        ClerezzaSparqlObject argument2 = (ClerezzaSparqlObject) adapter.adaptTo(argument2Atom,
+            ConstructQuery.class);
+
+        List<Expression> argumentExpressions = new ArrayList<Expression>();
+        argumentExpressions.add((Expression) argument1.getClerezzaObject());
+        argumentExpressions.add((Expression) argument2.getClerezzaObject());
+
+        FunctionCall functionCall = new FunctionCall(new UriRef(
+                "<http://www.w3.org/2005/xpath-functions#concat>"), argumentExpressions);
+
+        return (T) new ClerezzaSparqlObject(functionCall);
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/CreateLabelAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/CreateLabelAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/CreateLabelAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/CreateLabelAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+
+/**
+ * FIXME
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class CreateLabelAtom extends AbstractAdaptableAtom {
+
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption {
+        throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
+    }
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DatavaluedPropertyAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DatavaluedPropertyAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DatavaluedPropertyAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DatavaluedPropertyAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,96 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.Literal;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.ResourceOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.UriRefOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.Variable;
+import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleTriplePattern;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.IObjectAtom;
+
+/**
+ * It adapts any DatavaluedPropertyAtom to a simple triple pattern in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class DatavaluedPropertyAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom tmp = (org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom) ruleAtom;
+
+        IObjectAtom argument1 = tmp.getArgument1();
+        IObjectAtom datatypeProperty = tmp.getDatatypeProperty();
+        RuleAtom argument2 = tmp.getArgument2();
+
+        ClerezzaSparqlObject argument1CSO = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject datatypePropertyCSO = (ClerezzaSparqlObject) adapter.adaptTo(datatypeProperty,
+            ConstructQuery.class);
+        ClerezzaSparqlObject argument2CSO = (ClerezzaSparqlObject) adapter.adaptTo(argument2,
+            ConstructQuery.class);
+
+        Object arg1 = argument1CSO.getClerezzaObject();
+        Object dt = datatypePropertyCSO.getClerezzaObject();
+        Object arg2 = argument2CSO.getClerezzaObject();
+
+        UriRefOrVariable subject;
+        UriRefOrVariable predicate;
+        ResourceOrVariable object;
+
+        if (arg1 instanceof Variable) {
+            subject = new UriRefOrVariable((Variable) arg1);
+        } else if (arg1 instanceof UriRef) {
+            subject = new UriRefOrVariable((UriRef) arg1);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        if (dt instanceof Variable) {
+            predicate = new UriRefOrVariable((Variable) dt);
+        } else if (dt instanceof UriRef) {
+            predicate = new UriRefOrVariable((UriRef) dt);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        if (arg2 instanceof Variable) {
+            object = new ResourceOrVariable((Variable) arg2);
+        } else if (dt instanceof Literal) {
+            object = new ResourceOrVariable((Literal) arg2);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        return (T) new ClerezzaSparqlObject(new SimpleTriplePattern(subject, predicate, object));
+
+    }
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DifferentAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DifferentAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DifferentAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DifferentAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
+
+/**
+ * It adapts any DifferentAtom to not equal to (!=) binary operation in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class DifferentAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.DifferentAtom tmp = (org.apache.stanbol.rules.manager.atoms.DifferentAtom) ruleAtom;
+
+        ExpressionAtom stringFunctionAtom1 = tmp.getStringFunctionAtom1();
+        ExpressionAtom stringFunctionAtom2 = tmp.getStringFunctionAtom1();
+
+        ClerezzaSparqlObject argument1 = (ClerezzaSparqlObject) adapter.adaptTo(stringFunctionAtom1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject argument2 = (ClerezzaSparqlObject) adapter.adaptTo(stringFunctionAtom2,
+            ConstructQuery.class);
+
+        Expression lhe = (Expression) argument1.getClerezzaObject();
+        Expression rhe = (Expression) argument2.getClerezzaObject();
+
+        BinaryOperation binaryOperation = new BinaryOperation("!=", lhe, rhe);
+
+        return (T) new ClerezzaSparqlObject(binaryOperation);
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DivisionAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DivisionAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DivisionAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/DivisionAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.NumericFunctionAtom;
+
+/**
+ * It adapts any DivisionAtom to the division (/) binary operation in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class DivisionAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.DivisionAtom tmp = (org.apache.stanbol.rules.manager.atoms.DivisionAtom) ruleAtom;
+
+        NumericFunctionAtom numericFunctionAtom1 = tmp.getNumericFunctionAtom1();
+        NumericFunctionAtom numericFunctionAtom2 = tmp.getNumericFunctionAtom2();
+
+        ClerezzaSparqlObject argument1 = (ClerezzaSparqlObject) adapter.adaptTo(numericFunctionAtom1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject argument2 = (ClerezzaSparqlObject) adapter.adaptTo(numericFunctionAtom2,
+            ConstructQuery.class);
+
+        Expression lhsOperand = (Expression) argument1.getClerezzaObject();
+        Expression rhsOperand = (Expression) argument2.getClerezzaObject();
+
+        BinaryOperation binaryOperation = new BinaryOperation("/", lhsOperand, rhsOperand);
+
+        return (T) new ClerezzaSparqlObject(binaryOperation);
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/EndsWithAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/EndsWithAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/EndsWithAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/EndsWithAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.clerezza.rdf.core.sparql.query.FunctionCall;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.StringFunctionAtom;
+
+/**
+ * It adapts any EndsWIthAtom to the XPath function call <http://www.w3.org/2005/xpath-functions#ends-with> in
+ * Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class EndsWithAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.EndsWithAtom tmp = (org.apache.stanbol.rules.manager.atoms.EndsWithAtom) ruleAtom;
+
+        StringFunctionAtom argument = tmp.getArgument();
+        StringFunctionAtom term = tmp.getTerm();
+
+        ClerezzaSparqlObject argument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument,
+            ConstructQuery.class);
+        ClerezzaSparqlObject argument2 = (ClerezzaSparqlObject) adapter.adaptTo(term, ConstructQuery.class);
+
+        List<Expression> argumentExpressions = new ArrayList<Expression>();
+        argumentExpressions.add((Expression) argument1.getClerezzaObject());
+        argumentExpressions.add((Expression) argument2.getClerezzaObject());
+
+        FunctionCall functionCall = new FunctionCall(new UriRef(
+                "<http://www.w3.org/2005/xpath-functions#ends-with>"), argumentExpressions);
+
+        return (T) new ClerezzaSparqlObject(functionCall);
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterEqualThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterEqualThanAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterEqualThanAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterEqualThanAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
+
+/**
+ * It adapts any GreaterEqualThanAtom to greater equal than (&gt;=) binary operation for comparison in
+ * Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class GreaterEqualThanAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.GreaterEqualThanAtom tmp = (org.apache.stanbol.rules.manager.atoms.GreaterEqualThanAtom) ruleAtom;
+
+        ExpressionAtom argument1 = tmp.getArgument1();
+        ExpressionAtom argument2 = tmp.getArgument2();
+
+        ClerezzaSparqlObject clerezzaArgument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject clerezzaArgument2 = (ClerezzaSparqlObject) adapter.adaptTo(argument2,
+            ConstructQuery.class);
+
+        Expression lhe = (Expression) clerezzaArgument1.getClerezzaObject();
+        Expression rhe = (Expression) clerezzaArgument2.getClerezzaObject();
+
+        return (T) new ClerezzaSparqlObject(new BinaryOperation(">=", lhe, rhe));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterThanAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterThanAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/GreaterThanAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
+
+/**
+ * It adapts any GreaterThanAtom to greater than (&gt;) binary operation for comparison in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class GreaterThanAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.GreaterThanAtom tmp = (org.apache.stanbol.rules.manager.atoms.GreaterThanAtom) ruleAtom;
+
+        ExpressionAtom argument1 = tmp.getArgument1();
+        ExpressionAtom argument2 = tmp.getArgument2();
+
+        ClerezzaSparqlObject clerezzaArgument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject clerezzaArgument2 = (ClerezzaSparqlObject) adapter.adaptTo(argument2,
+            ConstructQuery.class);
+
+        Expression lhe = (Expression) clerezzaArgument1.getClerezzaObject();
+        Expression rhe = (Expression) clerezzaArgument2.getClerezzaObject();
+
+        return (T) new ClerezzaSparqlObject(new BinaryOperation(">", lhe, rhe));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IndividualPropertyAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IndividualPropertyAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IndividualPropertyAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IndividualPropertyAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,96 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.ResourceOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.UriRefOrVariable;
+import org.apache.clerezza.rdf.core.sparql.query.Variable;
+import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleTriplePattern;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.IObjectAtom;
+
+/**
+ * It adapts any IndividualPropertyAtom to a simple triple pattern in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class IndividualPropertyAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.IndividualPropertyAtom tmp = (org.apache.stanbol.rules.manager.atoms.IndividualPropertyAtom) ruleAtom;
+
+        IObjectAtom argument1 = tmp.getArgument1();
+        IObjectAtom objectProperty = tmp.getObjectProperty();
+        IObjectAtom argument2 = tmp.getArgument2();
+
+        ClerezzaSparqlObject argument1CSO = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject datatypePropertyCSO = (ClerezzaSparqlObject) adapter.adaptTo(objectProperty,
+            ConstructQuery.class);
+        ClerezzaSparqlObject argument2CSO = (ClerezzaSparqlObject) adapter.adaptTo(argument2,
+            ConstructQuery.class);
+
+        Object arg1 = argument1CSO.getClerezzaObject();
+        Object dt = datatypePropertyCSO.getClerezzaObject();
+        Object arg2 = argument2CSO.getClerezzaObject();
+
+        UriRefOrVariable subject;
+        UriRefOrVariable predicate;
+        ResourceOrVariable object;
+
+        if (arg1 instanceof Variable) {
+            subject = new UriRefOrVariable((Variable) arg1);
+        } else if (arg1 instanceof UriRef) {
+            subject = new UriRefOrVariable((UriRef) arg1);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        if (dt instanceof Variable) {
+            predicate = new UriRefOrVariable((Variable) dt);
+        } else if (dt instanceof UriRef) {
+            predicate = new UriRefOrVariable((UriRef) dt);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        if (arg2 instanceof Variable) {
+            object = new UriRefOrVariable((Variable) arg2);
+        } else if (dt instanceof UriRef) {
+            object = new UriRefOrVariable((UriRef) arg2);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        return (T) new ClerezzaSparqlObject(new SimpleTriplePattern(subject, predicate, object));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IsBlankAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IsBlankAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IsBlankAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/IsBlankAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.BuiltInCall;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.clerezza.rdf.core.sparql.query.UriRefExpression;
+import org.apache.clerezza.rdf.core.sparql.query.Variable;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.IObjectAtom;
+
+/**
+ * It adapts any LengthAtom to the <code>isBLANK</code> built in callin Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class IsBlankAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.IsBlankAtom tmp = (org.apache.stanbol.rules.manager.atoms.IsBlankAtom) ruleAtom;
+
+        IObjectAtom uriResource = tmp.getUriResource();
+
+        ClerezzaSparqlObject argumentCSO = (ClerezzaSparqlObject) adapter.adaptTo(uriResource,
+            ConstructQuery.class);
+        ;
+
+        Object arg = argumentCSO.getClerezzaObject();
+
+        Expression argumentExpression;
+        if (arg instanceof Variable) {
+            argumentExpression = (Variable) arg;
+        } else if (arg instanceof UriRef) {
+            argumentExpression = new UriRefExpression((UriRef) arg);
+        } else {
+            throw new RuleAtomCallExeption(getClass());
+        }
+
+        List<Expression> expressions = new ArrayList<Expression>();
+        expressions.add(argumentExpression);
+
+        return (T) new ClerezzaSparqlObject(new BuiltInCall("isBLANK", expressions));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LengthAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LengthAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LengthAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LengthAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.clerezza.rdf.core.sparql.query.FunctionCall;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.StringFunctionAtom;
+
+/**
+ * It adapts any LengthAtom to the XPath function <http://www.w3.org/2005/xpath-functions#string-length> in
+ * Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class LengthAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.LengthAtom tmp = (org.apache.stanbol.rules.manager.atoms.LengthAtom) ruleAtom;
+
+        StringFunctionAtom argument = tmp.getStringFunctionAtom();
+
+        ClerezzaSparqlObject argument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument,
+            ConstructQuery.class);
+
+        List<Expression> argumentExpressions = new ArrayList<Expression>();
+        argumentExpressions.add((Expression) argument1.getClerezzaObject());
+
+        FunctionCall functionCall = new FunctionCall(new UriRef(
+                "<http://www.w3.org/2005/xpath-functions#string-length>"), argumentExpressions);
+
+        return (T) new ClerezzaSparqlObject(functionCall);
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessEqualThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessEqualThanAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessEqualThanAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessEqualThanAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
+
+/**
+ * It adapts any LessEqualThanAtom to less equal than (&lt;=) binary operation for comparison in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class LessEqualThanAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.LessEqualThanAtom tmp = (org.apache.stanbol.rules.manager.atoms.LessEqualThanAtom) ruleAtom;
+
+        ExpressionAtom argument1 = tmp.getArgument1();
+        ExpressionAtom argument2 = tmp.getArgument2();
+
+        ClerezzaSparqlObject clerezzaArgument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject clerezzaArgument2 = (ClerezzaSparqlObject) adapter.adaptTo(argument2,
+            ConstructQuery.class);
+
+        Expression lhe = (Expression) clerezzaArgument1.getClerezzaObject();
+        Expression rhe = (Expression) clerezzaArgument2.getClerezzaObject();
+
+        return (T) new ClerezzaSparqlObject(new BinaryOperation("<=", lhe, rhe));
+
+    }
+
+}

Added: incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessThanAtom.java?rev=1306359&view=auto
==============================================================================
--- incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessThanAtom.java (added)
+++ incubator/stanbol/trunk/rules/adapters/sparql/clerezza/src/main/java/org/apache/stanbol/rules/adapters/sparql/clerezza/atoms/LessThanAtom.java Wed Mar 28 14:15:16 2012
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.rules.adapters.sparql.clerezza.atoms;
+
+import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
+import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.sparql.ClerezzaSparqlObject;
+import org.apache.stanbol.rules.base.api.RuleAtom;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
+
+/**
+ * It adapts any LessThanAtom to less than (&lt;) binary operation for comparison in Clerezza.
+ * 
+ * @author anuzzolese
+ * 
+ */
+public class LessThanAtom extends AbstractAdaptableAtom {
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption,
+                                         UnavailableRuleObjectException,
+                                         UnsupportedTypeForExportException {
+
+        org.apache.stanbol.rules.manager.atoms.LessThanAtom tmp = (org.apache.stanbol.rules.manager.atoms.LessThanAtom) ruleAtom;
+
+        ExpressionAtom argument1 = tmp.getArgument1();
+        ExpressionAtom argument2 = tmp.getArgument2();
+
+        ClerezzaSparqlObject clerezzaArgument1 = (ClerezzaSparqlObject) adapter.adaptTo(argument1,
+            ConstructQuery.class);
+        ClerezzaSparqlObject clerezzaArgument2 = (ClerezzaSparqlObject) adapter.adaptTo(argument2,
+            ConstructQuery.class);
+
+        Expression lhe = (Expression) clerezzaArgument1.getClerezzaObject();
+        Expression rhe = (Expression) clerezzaArgument2.getClerezzaObject();
+
+        return (T) new ClerezzaSparqlObject(new BinaryOperation("<", lhe, rhe));
+
+    }
+
+}