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;
+ }
+}
+