You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by an...@apache.org on 2011/03/04 16:27:26 UTC
svn commit: r1078000 [1/3] - in
/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules:
./ arqextention/ atoms/ parser/
Author: anuzzolese
Date: Fri Mar 4 15:27:24 2011
New Revision: 1078000
URL: http://svn.apache.org/viewvc?rev=1078000&view=rev
Log:
STANBOL-108 Added classes and methods for KReS rules in order to have
- forward chaining
- productive rules
- string comparison
- some string facilities (i.e. starts-with, ends-with, lowercase, uppercase, etc...)
- numerical functions
- reflexive rules
Added:
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLComparison.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLFunction.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLNot.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLTriple.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/Concat.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreatePropertyURIStringFromLabel.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateStandardLabel.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateURI.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/BlankNodeAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ComparisonAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ConcatAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/CreateLabelAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DifferentAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/EndsWithAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/GreaterThanAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IsBlankAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSBlankNode.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSCoreAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSTypedLiteral.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LengthAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LessThanAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LetAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LocalNameAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LowerCaseAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NamespaceAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NewNodeAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NotAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NumberAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NumericFunctionAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/PropStringAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SPARQLConstructAtomAbstract.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SPARQLDeleteAtomAbstract.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SPARQLDeleteDataAtomAbstract.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SPARQLcAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SPARQLdAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SPARQLddAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SameAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/StartsWithAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/StrAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/StringAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/StringFunctionAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SubstringAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SubtractionAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/SumAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/UObjectAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/UnionAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/UpperCaseAtom.java
Modified:
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSKB.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSRuleImpl.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ClassAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DatavaluedPropertyAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IndividualPropertyAtom.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSResource.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSVariable.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/KReSRuleGrammar.jj
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/KReSRuleParser.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/KReSRuleParserConstants.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/KReSRuleParserTokenManager.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/ParseException.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/SimpleCharStream.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/Token.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/parser/TokenMgrError.java
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSKB.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSKB.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSKB.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSKB.java Fri Mar 4 15:27:24 2011
@@ -1,5 +1,8 @@
package eu.iksproject.kres.rules;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStream;
import java.util.Hashtable;
import org.slf4j.Logger;
@@ -8,7 +11,7 @@ import org.slf4j.LoggerFactory;
import com.hp.hpl.jena.ontology.OntModel;
import eu.iksproject.kres.api.rules.KReSRule;
-import eu.iksproject.kres.api.rules.util.KReSRuleList;
+import eu.iksproject.kres.api.rules.util.KReSRuleList;;
/**
*
* FIXME
@@ -47,6 +50,7 @@ public class KReSKB {
}
public void addRule(KReSRule kReSRule){
+ System.out.println("Adding rule to Head");
kReSRuleList.add(kReSRule);
}
@@ -54,4 +58,55 @@ public class KReSKB {
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();
+ }
+
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSRuleImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSRuleImpl.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSRuleImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/KReSRuleImpl.java Fri Mar 4 15:27:24 2011
@@ -1,6 +1,8 @@
package eu.iksproject.kres.rules;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.Set;
import org.semanticweb.owlapi.model.IRI;
@@ -15,6 +17,8 @@ import com.hp.hpl.jena.rdf.model.Resourc
import eu.iksproject.kres.api.rules.KReSRule;
import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.api.rules.KReSRuleExpressiveness;
+import eu.iksproject.kres.api.rules.SPARQLObject;
import eu.iksproject.kres.api.rules.util.AtomList;
import eu.iksproject.kres.ontologies.SWRL;
@@ -28,11 +32,18 @@ public class KReSRuleImpl implements KRe
private AtomList head;
private AtomList body;
+ private boolean forwardChain;
+ private boolean reflexive;
+ private boolean sparqlC;
+ private boolean sparqlD;
- public KReSRuleImpl(String ruleURI, AtomList body, AtomList head) {
+ KReSRuleExpressiveness expressiveness;
+
+ public KReSRuleImpl(String ruleURI, AtomList body, AtomList head, KReSRuleExpressiveness expressiveness) {
this.ruleName = ruleURI;
this.head = head;
this.body = body;
+ this.expressiveness = expressiveness;
}
@@ -55,32 +66,105 @@ public class KReSRuleImpl implements KRe
public String toSPARQL() {
- String sparql = "CONSTRUCT {";
-
- boolean firstIte = true;
+ String sparql = null;
- for(KReSRuleAtom kReSRuleAtom : head){
- if(!firstIte){
- sparql += " . ";
+ 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;
}
- firstIte = false;
- sparql += kReSRuleAtom.toSPARQL();
+
}
- sparql += "} ";
- sparql += "WHERE {";
+ else{
- firstIte = true;
- for(KReSRuleAtom kReSRuleAtom : body){
- if(!firstIte){
- sparql += " . ";
+ 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;
+ }
}
- sparql += kReSRuleAtom.toSPARQL();
- firstIte = false;
+
+ if(!optional.isEmpty()){
+ sparql += " . OPTIONAL { " + optional + " } ";
+ }
+ if(!filter.isEmpty()){
+ sparql += " . FILTER ( " + filter + " ) ";
+ }
+
+ sparql += "}";
}
- sparql += "}";
-
return sparql;
}
@@ -188,28 +272,46 @@ public class KReSRuleImpl implements KRe
Resource rs = ModelFactory.createDefaultModel().createResource(ruleName);
String ruleInKReSSyntax = rs.getLocalName()+"[";
- boolean firstLoop = true;
- for(KReSRuleAtom atom : body){
- if(!firstLoop){
- ruleInKReSSyntax += " . ";
- }
- else{
- firstLoop = false;
+
+
+ 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;
}
- ruleInKReSSyntax += atom.toKReSSyntax();
+
}
+ else{
- ruleInKReSSyntax += " -> ";
-
- firstLoop = true;
- for(KReSRuleAtom atom : head){
- if(!firstLoop){
- ruleInKReSSyntax += " . ";
+ boolean firstLoop = true;
+ for(KReSRuleAtom atom : body){
+ if(!firstLoop){
+ ruleInKReSSyntax += " . ";
+ }
+ else{
+ firstLoop = false;
+ }
+ ruleInKReSSyntax += atom.toKReSSyntax();
}
- else{
- firstLoop = false;
+
+ if(head != null){
+
+ ruleInKReSSyntax += " -> ";
+
+ firstLoop = true;
+ for(KReSRuleAtom atom : head){
+ if(!firstLoop){
+ ruleInKReSSyntax += " . ";
+ }
+ else{
+ firstLoop = false;
+ }
+ ruleInKReSSyntax += atom.toKReSSyntax();
+ }
}
- ruleInKReSSyntax += atom.toKReSSyntax();
}
ruleInKReSSyntax += "]";
@@ -217,4 +319,65 @@ public class KReSRuleImpl implements KRe
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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLComparison.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLComparison.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLComparison.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLComparison.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,19 @@
+package eu.iksproject.kres.rules;
+
+import eu.iksproject.kres.api.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLFunction.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLFunction.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLFunction.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLFunction.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,19 @@
+package eu.iksproject.kres.rules;
+
+import eu.iksproject.kres.api.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLNot.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLNot.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLNot.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLNot.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,25 @@
+package eu.iksproject.kres.rules;
+
+import eu.iksproject.kres.api.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLTriple.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLTriple.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLTriple.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/SPARQLTriple.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,20 @@
+package eu.iksproject.kres.rules;
+
+import eu.iksproject.kres.api.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/Concat.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/Concat.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/Concat.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/Concat.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,5 @@
+package eu.iksproject.kres.rules.arqextention;
+
+public class Concat {
+
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreatePropertyURIStringFromLabel.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreatePropertyURIStringFromLabel.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreatePropertyURIStringFromLabel.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreatePropertyURIStringFromLabel.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,29 @@
+package eu.iksproject.kres.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateStandardLabel.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateStandardLabel.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateStandardLabel.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateStandardLabel.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,36 @@
+package eu.iksproject.kres.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateURI.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateURI.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateURI.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/arqextention/CreateURI.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,50 @@
+package eu.iksproject.kres.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/BlankNodeAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/BlankNodeAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/BlankNodeAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/BlankNodeAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,54 @@
+package eu.iksproject.kres.rules.atoms;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+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;
+import com.hp.hpl.jena.vocabulary.OWL;
+
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+import eu.iksproject.kres.rules.SPARQLTriple;
+
+
+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() + ")";
+ }
+
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ClassAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ClassAtom.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ClassAtom.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ClassAtom.java Fri Mar 4 15:27:24 2011
@@ -1,36 +1,27 @@
package eu.iksproject.kres.rules.atoms;
-import java.net.URI;
+import java.util.ArrayList;
-import org.apache.clerezza.rdf.core.MGraph;
-import org.apache.clerezza.rdf.core.UriRef;
-import org.apache.felix.scr.annotations.Reference;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLDataFactory;
-import org.semanticweb.owlapi.model.OWLDataProperty;
import org.semanticweb.owlapi.model.OWLIndividual;
-import org.semanticweb.owlapi.model.OWLNamedIndividual;
-import org.semanticweb.owlapi.model.OWLOntology;
-import org.semanticweb.owlapi.model.OWLOntologyManager;
-import org.semanticweb.owlapi.model.SWRLArgument;
+import org.semanticweb.owlapi.model.OWLRestriction;
import org.semanticweb.owlapi.model.SWRLAtom;
-import org.semanticweb.owlapi.model.SWRLClassAtom;
import org.semanticweb.owlapi.model.SWRLIArgument;
-import org.semanticweb.owlapi.model.SWRLVariable;
-
-import uk.ac.manchester.cs.owl.owlapi.OWLClassExpressionImpl;
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.vocabulary.OWL;
-import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLNot;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.rules.SPARQLTriple;
import eu.iksproject.kres.api.rules.URIResource;
import eu.iksproject.kres.ontologies.SWRL;
-public class ClassAtom implements KReSRuleAtom {
+public class ClassAtom extends KReSCoreAtom {
private URIResource classResource;
private URIResource argument1;
@@ -41,25 +32,51 @@ public class ClassAtom implements KReSRu
}
@Override
- public String toSPARQL() {
+ 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()+">";
+ 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()+">";
+ argument2SPARQL = classResource.toString();
}
-
- return argument1SPARQL + " <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> " + argument2SPARQL;
+
+ 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
@@ -119,19 +136,40 @@ public class ClassAtom implements KReSRu
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()+">";
+ 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()+">";
+ 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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ComparisonAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ComparisonAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ComparisonAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ComparisonAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,22 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.api.rules.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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ConcatAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ConcatAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ConcatAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/ConcatAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,49 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+
+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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/CreateLabelAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/CreateLabelAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/CreateLabelAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/CreateLabelAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,54 @@
+package eu.iksproject.kres.rules.atoms;
+
+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;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+
+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() + ")";
+ }
+
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DatavaluedPropertyAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DatavaluedPropertyAtom.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DatavaluedPropertyAtom.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DatavaluedPropertyAtom.java Fri Mar 4 15:27:24 2011
@@ -1,6 +1,7 @@
package eu.iksproject.kres.rules.atoms;
import java.net.URI;
+import java.util.ArrayList;
import org.semanticweb.owlapi.apibinding.OWLManager;
@@ -19,25 +20,23 @@ import org.semanticweb.owlapi.model.SWRL
import org.semanticweb.owlapi.model.SWRLVariable;
-import org.semanticweb.owlapi.model.OWLDataFactory;
-import org.semanticweb.owlapi.model.SWRLAtom;
-
-
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.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLNot;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.rules.SPARQLTriple;
import eu.iksproject.kres.api.rules.URIResource;
import eu.iksproject.kres.ontologies.SWRL;
-public class DatavaluedPropertyAtom implements KReSRuleAtom {
+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;
@@ -45,34 +44,89 @@ public class DatavaluedPropertyAtom impl
}
@Override
- public String toSPARQL() {
+ 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#", "");
- }
- else{
- arg1 = "<"+arg1+">";
+ 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#", "");
- }
- else{
- dtP = "<"+dtP+">";
+ 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();
- return arg1+" "+dtP+" "+arg2;
}
else{
- OWLLiteral literal = getOWLTypedLiteral(argument2);
- return arg1+" "+dtP+" "+literal.getLiteral();
+ 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);
}
@@ -192,21 +246,35 @@ public class DatavaluedPropertyAtom impl
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()+">";
+ 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()+">";
+ 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{
@@ -215,9 +283,17 @@ public class DatavaluedPropertyAtom impl
return "values(" + arg3 + ", " + arg1 + ", " + literal.getLiteral() +")";
}
-
-
-
}
+
+ @Override
+ public boolean isSPARQLConstruct() {
+ return false;
+ }
+
+ @Override
+ public boolean isSPARQLDelete() {
+ return false;
+ }
+
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DifferentAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DifferentAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DifferentAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/DifferentAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,91 @@
+package eu.iksproject.kres.rules.atoms;
+
+import java.util.ArrayList;
+
+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;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLComparison;
+import eu.iksproject.kres.rules.SPARQLNot;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.rules.SPARQLTriple;
+import eu.iksproject.kres.api.rules.URIResource;
+
+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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/EndsWithAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/EndsWithAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/EndsWithAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/EndsWithAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,57 @@
+package eu.iksproject.kres.rules.atoms;
+
+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;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLComparison;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+
+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/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/GreaterThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/GreaterThanAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/GreaterThanAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/GreaterThanAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,124 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLComparison;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+
+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;
+ }
+}
+
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IndividualPropertyAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IndividualPropertyAtom.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IndividualPropertyAtom.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IndividualPropertyAtom.java Fri Mar 4 15:27:24 2011
@@ -2,10 +2,7 @@ package eu.iksproject.kres.rules.atoms;
import java.net.URI;
import java.net.URISyntaxException;
-
-import org.apache.clerezza.rdf.core.MGraph;
-import org.apache.clerezza.rdf.core.UriRef;
-import org.apache.clerezza.rdf.core.impl.TypedLiteralImpl;
+import java.util.ArrayList;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLClass;
@@ -17,18 +14,18 @@ import org.semanticweb.owlapi.model.SWRL
import org.semanticweb.owlapi.model.SWRLIArgument;
import org.semanticweb.owlapi.model.SWRLVariable;
-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;
import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLNot;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.rules.SPARQLTriple;
import eu.iksproject.kres.api.rules.URIResource;
import eu.iksproject.kres.ontologies.SWRL;
-public class IndividualPropertyAtom implements KReSRuleAtom {
+public class IndividualPropertyAtom extends KReSCoreAtom {
private URIResource objectProperty;
@@ -42,34 +39,63 @@ public class IndividualPropertyAtom impl
}
@Override
- public String toSPARQL() {
+ public SPARQLObject toSPARQL() {
String arg1 = argument1.toString();
String arg2 = argument2.toString();
String objP = objectProperty.toString();
+ boolean negativeArg1 = false;
+ boolean negativeArg2 = false;
+ boolean negativeObjP = false;
+
if(arg1.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
- arg1 = "?"+arg1.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
- }
- else{
- arg1 = "<"+arg1+">";
+ arg1 = "?"+arg1.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ KReSVariable variable = (KReSVariable) argument1;
+ if(variable.isNegative()){
+ negativeArg1 = true;
+ }
}
if(arg2.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
- arg2 = "?"+arg2.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
- }
- else{
- arg2 = "<"+arg2+">";
+ arg2 = "?"+arg2.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ KReSVariable variable = (KReSVariable) argument2;
+ if(variable.isNegative()){
+ negativeArg2 = true;
+ }
}
if(objP.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
- objP = "?"+objP.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
- }
- else{
- objP = "<"+objP+">";
+ objP = "?"+objP.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ KReSVariable variable = (KReSVariable) objectProperty;
+ if(variable.isNegative()){
+ negativeObjP = true;
+ }
}
- return arg1+" "+objP+" "+arg2+" ";
+
+ if(negativeArg1 || negativeArg2 || negativeObjP){
+ String optional = arg1+" "+objP+" "+arg2;
+
+ ArrayList<String> filters = new ArrayList<String>();
+ if(negativeArg1){
+ filters.add("!bound(" + arg1 + ")");
+ }
+ if(negativeArg2){
+ filters.add("!bound(" + arg2 + ")");
+ }
+ if(negativeObjP){
+ filters.add("!bound(" + objP + ")");
+ }
+
+ String[] filterArray = new String[filters.size()];
+ filterArray = filters.toArray(filterArray);
+
+ return new SPARQLNot(optional, filterArray);
+ }
+ else{
+ return new SPARQLTriple(arg1+" "+objP+" "+arg2);
+ }
}
@@ -143,24 +169,36 @@ public class IndividualPropertyAtom impl
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()+">";
+ arg1 = argument1.toString();
}
if(objectProperty.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
arg3 = "?"+objectProperty.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ KReSVariable variable = (KReSVariable) objectProperty;
+ if(variable.isNegative()){
+ arg3 = "notex(" + arg3 + ")";
+ }
}
else{
- arg3 = "<"+objectProperty.toString()+">";
+ arg3 = objectProperty.toString();
}
if(argument2.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
arg2 = "?"+argument2.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ KReSVariable variable = (KReSVariable) argument2;
+ if(variable.isNegative()){
+ arg2 = "notex(" + arg2 + ")";
+ }
}
else{
- arg2 = "<"+argument2.toString()+">";
+ arg2 = argument2.toString();
}
@@ -168,5 +206,15 @@ public class IndividualPropertyAtom impl
}
+ @Override
+ public boolean isSPARQLConstruct() {
+ return false;
+ }
+
+ @Override
+ public boolean isSPARQLDelete() {
+ return false;
+ }
+
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IsBlankAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IsBlankAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IsBlankAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/IsBlankAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,73 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.rules.SPARQLComparison;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class IsBlankAtom extends ComparisonAtom {
+
+ private URIResource uriResource;
+
+ public IsBlankAtom(URIResource uriResource) {
+ this.uriResource = uriResource;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+ String argument = uriResource.toString();
+
+ String sparql;
+
+ if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ sparql = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+ else{
+ sparql = argument;
+ }
+
+ sparql = "isBlank(" + sparql + ")";
+
+ return new SPARQLComparison(sparql);
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ String argument = uriResource.toString();
+
+ String kReS;
+
+ if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ kReS = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+ else{
+ kReS = argument;
+ }
+
+ kReS = "isBlank(" + kReS + ")";
+ return kReS;
+ }
+
+ @Override
+ public boolean isSPARQLConstruct() {
+ return false;
+ }
+
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSBlankNode.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSBlankNode.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSBlankNode.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSBlankNode.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,36 @@
+package eu.iksproject.kres.rules.atoms;
+
+import java.net.URI;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import eu.iksproject.kres.api.rules.URIResource;
+
+public class KReSBlankNode implements URIResource {
+
+ private String bNode;
+
+ public KReSBlankNode(String bNode) {
+ this.bNode = bNode;
+ }
+
+ @Override
+ public URI getURI() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Resource createJenaResource(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public String toString() {
+ return bNode;
+ }
+
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSCoreAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSCoreAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSCoreAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSCoreAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,24 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+
+
+
+public abstract class KReSCoreAtom implements KReSRuleAtom {
+
+
+ @Override
+ public boolean isSPARQLConstruct() {
+ return false;
+ }
+
+ @Override
+ public boolean isSPARQLDelete() {
+ return false;
+ }
+
+ @Override
+ public boolean isSPARQLDeleteData() {
+ return false;
+ }
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSResource.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSResource.java Fri Mar 4 15:27:24 2011
@@ -3,7 +3,6 @@ package eu.iksproject.kres.rules.atoms;
import java.net.URI;
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 eu.iksproject.kres.api.rules.URIResource;
@@ -28,7 +27,7 @@ public class KReSResource implements URI
@Override
public String toString() {
- return uri.toString();
+ return "<" + uri.toString() + ">";
}
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSTypedLiteral.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSTypedLiteral.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSTypedLiteral.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSTypedLiteral.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,35 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.api.rules.URIResource;
+
+public class KReSTypedLiteral {
+
+ private Object value;
+ private URIResource xsdType;
+
+ public KReSTypedLiteral(Object value, URIResource xsdType) {
+ this.value = value;
+ this.xsdType = xsdType;
+ }
+
+
+ public Object getValue() {
+ return value;
+ }
+
+ public URIResource getXsdType() {
+ return xsdType;
+ }
+
+
+ @Override
+ public String toString() {
+
+ if(xsdType != null){
+ return value + "^^" + xsdType.toString();
+ }
+ else{
+ return value.toString();
+ }
+ }
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSVariable.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSVariable.java?rev=1078000&r1=1077999&r2=1078000&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSVariable.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/KReSVariable.java Fri Mar 4 15:27:24 2011
@@ -3,7 +3,6 @@ package eu.iksproject.kres.rules.atoms;
import java.net.URI;
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 eu.iksproject.kres.api.rules.URIResource;
@@ -11,10 +10,12 @@ import eu.iksproject.kres.ontologies.SWR
public class KReSVariable implements URIResource {
- URI uri;
+ private URI uri;
+ private boolean negative;
- public KReSVariable(URI uri) {
+ public KReSVariable(URI uri, boolean negative) {
this.uri = uri;
+ this.negative = negative;
}
@Override
@@ -30,7 +31,13 @@ public class KReSVariable implements URI
@Override
public String toString() {
+
return uri.toString();
+
+ }
+
+ public boolean isNegative() {
+ return negative;
}
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LengthAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LengthAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LengthAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LengthAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,46 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class LengthAtom extends NumericFunctionAtom {
+
+
+ private StringFunctionAtom stringFunctionAtom;
+
+ public LengthAtom(StringFunctionAtom stringFunctionAtom) {
+ this.stringFunctionAtom = stringFunctionAtom;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+ String sparql = "<http://www.w3.org/2005/xpath-functions#string-length> (" + stringFunctionAtom.toSPARQL().getObject() + ")";
+
+ return new SPARQLFunction(sparql);
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ return "length(" + stringFunctionAtom.toKReSSyntax() + ")";
+ }
+
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LessThanAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LessThanAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LessThanAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LessThanAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,123 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLComparison;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLLiteral;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class LessThanAtom extends ComparisonAtom {
+
+
+ private Object argument1;
+ private Object argument2;
+
+ public LessThanAtom(Object argument1, Object argument2) {
+ this.argument1 = argument1;
+ this.argument2 = argument2;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+ String arg1 = argument1.toString();
+ String arg2 = argument2.toString();
+
+
+ if(arg1.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ arg1 = "str(?"+arg1.replace("http://kres.iks-project.eu/ontology/meta/variables#", "") + ")";
+
+ }
+ else{
+ arg1 = "str("+arg1+")";
+ }
+
+ if(arg2.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ arg2 = "str(?"+arg2.replace("http://kres.iks-project.eu/ontology/meta/variables#", "") + ")";
+
+ }
+ else if(!arg2.startsWith("<") && !arg2.endsWith(">")){
+ OWLLiteral literal = getOWLTypedLiteral(argument2);
+ arg2 = "str(" + literal.getLiteral() + ")";
+ }
+ else{
+ arg2 = "str("+arg2+")";
+ }
+
+
+ return new SPARQLComparison(arg1+" < "+arg2);
+
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ String arg1 = null;
+ String arg2 = null;
+
+ if(argument1.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ arg1 = "?"+argument1.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+ else{
+ arg1 = argument1.toString();
+ }
+
+
+ if(argument2.toString().startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ arg2 = "?"+argument2.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+
+
+ return "lt(" + arg1 + ", " + arg2 +")";
+ }
+ else{
+
+ return "lt(" + arg1 + ", " + argument2.toString() +")";
+ }
+ }
+
+
+ private OWLLiteral getOWLTypedLiteral(Object argument){
+
+ OWLDataFactory factory = OWLManager.createOWLOntologyManager().getOWLDataFactory();
+
+ OWLLiteral owlLiteral;
+ if(argument instanceof String){
+ owlLiteral = factory.getOWLTypedLiteral((String) argument);
+ }
+ else if(argument instanceof Integer){
+ owlLiteral = factory.getOWLTypedLiteral(((Integer) argument).intValue());
+ }
+ else if(argument instanceof Double){
+ owlLiteral = factory.getOWLTypedLiteral(((Double) argument).doubleValue());
+ }
+ else if(argument instanceof Float){
+ owlLiteral = factory.getOWLTypedLiteral(((Float) argument).floatValue());
+ }
+ else if(argument instanceof Boolean){
+ owlLiteral = factory.getOWLTypedLiteral(((Boolean) argument).booleanValue());
+ }
+ else{
+ owlLiteral = factory.getOWLStringLiteral(argument.toString());
+ }
+
+
+
+ return owlLiteral;
+ }
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LetAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LetAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LetAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LetAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,71 @@
+package eu.iksproject.kres.rules.atoms;
+
+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;
+
+import eu.iksproject.kres.api.rules.KReSRuleAtom;
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+
+public class LetAtom implements KReSRuleAtom {
+
+ private URIResource variable;
+ private StringFunctionAtom parameterFunctionAtom;
+
+ public LetAtom(URIResource variable, StringFunctionAtom parameterFunctionAtom) {
+ this.variable = variable;
+ this.parameterFunctionAtom = parameterFunctionAtom;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+ System.out.println();
+ System.out.println();
+ System.out.println("Parameter Function : "+parameterFunctionAtom.toSPARQL().getObject());
+ System.out.println();
+ System.out.println();
+ String variableArgument = variable.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ String let = "LET (?" + variableArgument + " := " + parameterFunctionAtom.toSPARQL().getObject() + ")";
+ SPARQLObject sparqlObject = new SPARQLFunction(let);
+ return sparqlObject;
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ String arg1 = "?" + variable.toString().replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ String syntax = "let(" + arg1 + ", " + parameterFunctionAtom.toKReSSyntax() + ")";
+ return syntax;
+ }
+
+
+ @Override
+ public boolean isSPARQLConstruct() {
+ return false;
+ }
+
+ @Override
+ public boolean isSPARQLDelete() {
+ return false;
+ }
+
+ @Override
+ public boolean isSPARQLDeleteData() {
+ return false;
+ }
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LocalNameAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LocalNameAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LocalNameAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LocalNameAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,55 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class LocalNameAtom extends StringFunctionAtom {
+
+ private URIResource uriResource;
+
+ public LocalNameAtom(URIResource uriResource) {
+ this.uriResource = uriResource;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+ String argument = uriResource.toString();
+
+ if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+
+ String sparql = "<http://jena.hpl.hp.com/ARQ/function#localname>(" + argument + ")";
+ return new SPARQLFunction(sparql);
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ String argument = uriResource.toString();
+
+ if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+ return "localname(" + argument + ")";
+ }
+
+}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LowerCaseAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LowerCaseAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LowerCaseAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/LowerCaseAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,61 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class LowerCaseAtom extends StringFunctionAtom {
+
+ private StringFunctionAtom stringFunctionAtom;
+
+ public LowerCaseAtom(StringFunctionAtom stringFunctionAtom) {
+ this.stringFunctionAtom = stringFunctionAtom;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+
+ String uriResourceString = stringFunctionAtom.toSPARQL().getObject();
+
+ if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+
+ }
+
+ String sparql = "<http://www.w3.org/2005/xpath-functions#lower-case> (" + uriResourceString + ")";
+
+ return new SPARQLFunction(sparql);
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ String uriResourceString = stringFunctionAtom.toKReSSyntax();
+
+ if(uriResourceString.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ uriResourceString = "?"+uriResourceString.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+
+ }
+
+ return "lowerCase(" + uriResourceString + ")";
+ }
+
+
+
+}
\ No newline at end of file
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NamespaceAtom.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NamespaceAtom.java?rev=1078000&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NamespaceAtom.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/atoms/NamespaceAtom.java Fri Mar 4 15:27:24 2011
@@ -0,0 +1,55 @@
+package eu.iksproject.kres.rules.atoms;
+
+import eu.iksproject.kres.rules.SPARQLFunction;
+import eu.iksproject.kres.api.rules.SPARQLObject;
+import eu.iksproject.kres.api.rules.URIResource;
+
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.SWRLAtom;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class NamespaceAtom extends StringFunctionAtom {
+
+private URIResource uriResource;
+
+ public NamespaceAtom(URIResource uriResource) {
+ this.uriResource = uriResource;
+ }
+
+ @Override
+ public Resource toSWRL(Model model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public SPARQLObject toSPARQL() {
+ String argument = uriResource.toString();
+
+ if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+
+ String sparql = "<http://jena.hpl.hp.com/ARQ/function#namespace>(" + argument + ")";
+ return new SPARQLFunction(sparql);
+ }
+
+ @Override
+ public SWRLAtom toSWRL(OWLDataFactory factory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String toKReSSyntax() {
+ String argument = uriResource.toString();
+
+ if(argument.startsWith("http://kres.iks-project.eu/ontology/meta/variables#")){
+ argument = "?"+argument.replace("http://kres.iks-project.eu/ontology/meta/variables#", "");
+ }
+ return "namespace(" + argument + ")";
+ }
+
+}