Insert Direct Geometry in Functions Support

Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/f33f8eb9
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/f33f8eb9
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/f33f8eb9

Branch: refs/heads/MARMOTTA-584
Commit: f33f8eb992c97c3d5181dca6ec68e7c6819d20b4
Parents: 51fefe3
Author: cuent <[email protected]>
Authored: Sat Aug 15 21:03:56 2015 -0500
Committer: cuent <[email protected]>
Committed: Sat Aug 15 21:03:56 2015 -0500

----------------------------------------------------------------------
 .../sparql/function/geosparql/BoundaryFunction.java    |  7 ++++++-
 .../kiwi/sparql/function/geosparql/BufferFunction.java | 12 ++++++++++--
 .../sparql/function/geosparql/ConvexHullFunction.java  | 10 ++++++++--
 .../sparql/function/geosparql/DifferenceFunction.java  | 11 ++++++++++-
 .../sparql/function/geosparql/DistanceFunction.java    | 13 +++++++++++--
 .../sparql/function/geosparql/EhContainsFunction.java  | 13 ++++++++++++-
 .../sparql/function/geosparql/EhCoveredByFunction.java | 13 ++++++++++++-
 .../sparql/function/geosparql/EhCoversFunction.java    | 13 ++++++++++++-
 .../sparql/function/geosparql/EhDisjointFunction.java  | 13 ++++++++++++-
 .../sparql/function/geosparql/EhEqualsFunction.java    | 13 ++++++++++++-
 .../sparql/function/geosparql/EhInsideFunction.java    | 13 ++++++++++++-
 .../kiwi/sparql/function/geosparql/EhMeetFunction.java | 13 ++++++++++++-
 .../sparql/function/geosparql/EhOverlapFunction.java   | 13 ++++++++++++-
 .../sparql/function/geosparql/EnvelopeFunction.java    |  7 ++++++-
 .../sparql/function/geosparql/GetSRIDFunction.java     |  4 +++-
 .../function/geosparql/IntersectionFunction.java       | 11 ++++++++++-
 .../kiwi/sparql/function/geosparql/Rcc8DCFunction.java | 13 ++++++++++++-
 .../kiwi/sparql/function/geosparql/Rcc8ECFunction.java | 13 ++++++++++++-
 .../kiwi/sparql/function/geosparql/Rcc8EQFunction.java | 13 ++++++++++++-
 .../sparql/function/geosparql/Rcc8NTPPFunction.java    | 13 ++++++++++++-
 .../sparql/function/geosparql/Rcc8NTPPiFunction.java   | 13 ++++++++++++-
 .../kiwi/sparql/function/geosparql/Rcc8POFunction.java | 13 ++++++++++++-
 .../sparql/function/geosparql/Rcc8TPPFunction.java     | 13 ++++++++++++-
 .../sparql/function/geosparql/Rcc8TPPiFunction.java    | 13 ++++++++++++-
 .../kiwi/sparql/function/geosparql/RelateFunction.java | 11 ++++++++++-
 .../sparql/function/geosparql/SfContainsFunction.java  | 11 ++++++++++-
 .../sparql/function/geosparql/SfCrossesFunction.java   | 11 ++++++++++-
 .../sparql/function/geosparql/SfDisjointFunction.java  | 11 ++++++++++-
 .../sparql/function/geosparql/SfEqualsFunction.java    | 11 ++++++++++-
 .../function/geosparql/SfIntersectsFunction.java       | 11 ++++++++++-
 .../sparql/function/geosparql/SfOverlapsFunction.java  | 11 ++++++++++-
 .../sparql/function/geosparql/SfTouchesFunction.java   | 11 ++++++++++-
 .../sparql/function/geosparql/SfWithinFunction.java    | 13 +++++++++++--
 .../function/geosparql/SymDifferenceFunction.java      | 11 ++++++++++-
 .../kiwi/sparql/function/geosparql/UnionFunction.java  | 11 ++++++++++-
 35 files changed, 367 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
index 3da8443..f43e2b0 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
@@ -85,7 +85,12 @@ public class BoundaryFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 1) {
-                return String.format("ST_AsText(ST_Boundary(%s)) ", args[0]);
+                String geom1 = args[0];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                return String.format("ST_AsText(ST_Boundary(%s)) ", geom1);
             }
         }
         throw new UnsupportedOperationException("Boundary function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
index 021b128..460ee60 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
@@ -33,7 +33,7 @@ import 
org.openrdf.query.algebra.evaluation.function.FunctionRegistry;
  * <p/>
  * The function can be called either as:
  * <ul>
- * <li>geof:buffer(?geometryA, radius) </li>
+ *      <li>geof:buffer(?geometryA, radius, unit) </li>
  * </ul>
  * Its necesary enable postgis in your database with the next command "CREATE
  * EXTENSION postgis;" Note that for performance reasons it might be 
preferrable
@@ -85,8 +85,16 @@ public class BufferFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 3) {
+                String geom1 = args[0];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[2].equalsIgnoreCase("'" + 
FN_GEOSPARQL.meter.toString() + "'") || args[2].equalsIgnoreCase("'" + 
FN_GEOSPARQL.metre.toString() + "'")) {
+                    return String.format("ST_AsText(ST_Transform(ST_Buffer( 
ST_Transform( %s ,26986), %s),4326))", geom1, args[1]);
+                }
                 if (args[2].equalsIgnoreCase("'" + 
FN_GEOSPARQL.meter.toString() + "'") || args[2].equalsIgnoreCase("'" + 
FN_GEOSPARQL.metre.toString() + "'")) {
-                    return String.format("ST_AsText(ST_Transform(ST_Buffer( 
ST_Transform( %s ,26986), %s),4326))", args[0], args[1]);
+                    return String.format("ST_AsText(ST_Transform(ST_Buffer( 
ST_Transform( %s ,26986), %s),4326))", geom1, args[1]);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
index 144ee9e..2bca87b 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
@@ -85,7 +85,12 @@ public class ConvexHullFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 1) {
-                return String.format("ST_AsText(st_convexHull(%s))", args[0]);
+                String geom1 = args[0];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                return String.format("ST_AsText(st_convexHull(%s))", geom1);
             }
         }
         throw new UnsupportedOperationException("ConvexHull function not 
supported by dialect " + dialect);
@@ -110,7 +115,8 @@ public class ConvexHullFunction implements NativeFunction {
      * @return
      */
     @Override
-    public ValueType getArgumentType(int arg) {
+    public ValueType getArgumentType(int arg
+    ) {
         return ValueType.GEOMETRY;
     }
 

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
index 660faca..c07e3c4 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
@@ -85,7 +85,16 @@ public class DifferenceFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("ST_AsText(ST_Difference(%s , %s )) ", 
args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_AsText(ST_Difference(%s , %s )) ", 
geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Difference function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
index 22de6c2..deca6a3 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
@@ -33,7 +33,7 @@ import 
org.openrdf.query.algebra.evaluation.function.FunctionRegistry;
  * <p/>
  * The function can be called either as:
  * <ul>
- * <li>geof:distance(?geometryA, ?geometryB, units:meter) </li>
+ *      <li>geof:distance(?geometryA, ?geometryB, units:meter) </li>
  * </ul>
  * Its necesary enable postgis in your database with the next command "CREATE
  * EXTENSION postgis;" Note that for performance reasons it might be 
preferrable
@@ -85,8 +85,17 @@ public class DistanceFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 3) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
                 if (args[2].equalsIgnoreCase("'" + 
FN_GEOSPARQL.meter.toString() + "'") || args[2].equalsIgnoreCase("'" + 
FN_GEOSPARQL.metre.toString() + "'")) {
-                    return String.format("ST_Distance( ST_Transform( %s 
,26986), ST_Transform( %s ,26986))", args[0], args[1]);
+                    return String.format("ST_Distance( ST_Transform( %s 
,26986), ST_Transform( %s ,26986))", geom1, geom2);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
index 2aacb50..44b6f47 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
@@ -84,7 +84,18 @@ public class EhContainsFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'T*TFF*FF*')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'T*TFF*FF*')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehContains function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
index 87152ce..5df7e76 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
@@ -84,7 +84,18 @@ public class EhCoveredByFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TFF*TFT**')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TFF*TFT**')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehCoveredBy function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
index 2e4d507..44047b2 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
@@ -84,7 +84,18 @@ public class EhCoversFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'T*TFT*FF*')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'T*TFT*FF*')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehCovers function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
index 6268e9e..7a0c446 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
@@ -84,7 +84,18 @@ public class EhDisjointFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'FF*FF****')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'FF*FF****')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehDisjoint function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
index 8b7974e..35d470c 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
@@ -84,7 +84,18 @@ public class EhEqualsFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TFFFTFFFT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TFFFTFFFT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehEquals function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
index f4ab88f..d823851 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
@@ -84,7 +84,18 @@ public class EhInsideFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TFF*FFT**')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TFF*FFT**')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehInside function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
index b89405c..f379790 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
@@ -84,7 +84,18 @@ public class EhMeetFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'F**T*****')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'F**T*****')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehMeet function not supported 
by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
index c616ad3..865ba20 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
@@ -84,7 +84,18 @@ public class EhOverlapFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'T*T***T**')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'T*T***T**')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("ehOverlap function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
index fbe214c..a02423d 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
@@ -85,7 +85,12 @@ public class EnvelopeFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 1) {
-                return String.format("ST_AsText(ST_Envelope(%s)) ", args[0]);
+                String geom1 = args[0];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                return String.format("ST_AsText(ST_Envelope(%s)) ", geom1);
             }
         }
         throw new UnsupportedOperationException("Envelope function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
index 18fa6b5..513dcb6 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
@@ -84,7 +84,9 @@ public class GetSRIDFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_SRID(%s)", args[0]);
+            if (args.length == 1) {
+                return String.format("ST_SRID(%s)", args[0]);
+            }
         }
         throw new UnsupportedOperationException("getSRID function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
index 26b0927..0cf92c0 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
@@ -85,7 +85,16 @@ public class IntersectionFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("ST_AsText(st_Intersection(%s , %s ) )", 
args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_AsText(st_Intersection(%s , %s ) )", 
geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Intersection function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
index 99d1e47..43e53ea 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
@@ -84,7 +84,18 @@ public class Rcc8DCFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'FFTFFTTTT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'FFTFFTTTT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8dc function not supported 
by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
index 452740e..78bcdb1 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
@@ -84,7 +84,18 @@ public class Rcc8ECFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'FFTFTTTTT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'FFTFTTTTT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8ec function not supported 
by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
index f7df8bc..ddb4da1 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
@@ -84,7 +84,18 @@ public class Rcc8EQFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TFFFTFFFT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TFFFTFFFT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8eq function not supported 
by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
index 6ce4ad4..5240cf3 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
@@ -84,7 +84,18 @@ public class Rcc8NTPPFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TFFTFFTTT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TFFTFFTTT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8ntpp function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
index 660f237..dbd03d6 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
@@ -84,7 +84,18 @@ public class Rcc8NTPPiFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TTTFFTFFT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TTTFFTFFT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8ntppi function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
index 0a0d2c4..8b9158b 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
@@ -84,7 +84,18 @@ public class Rcc8POFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TTTTTTTTT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TTTTTTTTT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8po function not supported 
by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
index 7a52dea..dc46d36 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
@@ -84,7 +84,18 @@ public class Rcc8TPPFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TFFTTFTTT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TFFTTFTTT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8tpp function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
index dfba911..3df014c 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
@@ -84,7 +84,18 @@ public class Rcc8TPPiFunction implements NativeFunction {
     @Override
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
-            return String.format("ST_Relate(%s, %s, 'TTTFTTFFT')", args[0], 
args[1]);
+            if (args.length == 2) {
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s, 'TTTFTTFFT')", geom1, 
geom2);
+            }
         }
         throw new UnsupportedOperationException("rcc8tppi function not 
supported by dialect " + dialect);
     }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
index 4731294..8c2da34 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
@@ -85,7 +85,16 @@ public class RelateFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 3) {
-                return String.format("ST_Relate(%s, %s , %s)", args[0], 
args[1], args[2]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_Relate(%s, %s , %s)", geom1, geom2, 
args[2]);
             }
         }
         throw new UnsupportedOperationException("Relate function not supported 
by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
index 875dec4..40641c9 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
@@ -85,7 +85,16 @@ public class SfContainsFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Contains(%s , %s )", args[0], 
args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Contains(%s , %s )", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Contains function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
index 1441518..ae8ea92 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
@@ -85,7 +85,16 @@ public class SfCrossesFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Crosses(%s , %s )", args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Crosses(%s , %s )", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Crosses function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
index f8ca5d3..51aece7 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
@@ -85,7 +85,16 @@ public class SfDisjointFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Disjoint(%s , %s )", args[0], 
args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Disjoint(%s , %s )", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Disjoint function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
index cb6b8c5..44df047 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
@@ -85,7 +85,16 @@ public class SfEqualsFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Equals(%s , %s )", args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Equals(%s , %s )", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Equals function not supported 
by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
index 1d4372a..9d8d1cb 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
@@ -85,7 +85,16 @@ public class SfIntersectsFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Intersects(%s , %s ) ", args[0], 
args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Intersects(%s , %s ) ", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Intersects function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfOverlapsFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfOverlapsFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfOverlapsFunction.java
index 06ea5f5..75443b0 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfOverlapsFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfOverlapsFunction.java
@@ -85,7 +85,16 @@ public class SfOverlapsFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Overlaps(%s , %s )", args[0], 
args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Overlaps(%s , %s )", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Overlaps function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfTouchesFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfTouchesFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfTouchesFunction.java
index 9621900..02ecb29 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfTouchesFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfTouchesFunction.java
@@ -85,7 +85,16 @@ public class SfTouchesFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Touches(%s , %s )", args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Touches(%s , %s )", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Touches function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfWithinFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfWithinFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfWithinFunction.java
index abc0a12..9b10054 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfWithinFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfWithinFunction.java
@@ -33,7 +33,7 @@ import 
org.openrdf.query.algebra.evaluation.function.FunctionRegistry;
  * <p/>
  * The function can be called either as:
  * <ul>
- * <li>geof:sfWithin(?geometryA, ?geometryB) </li>
+ *      <li>geof:sfWithin(?geometryA, ?geometryB) </li>
  * </ul>
  * Its necesary enable postgis in your database with the next command "CREATE
  * EXTENSION postgis;" Note that for performance reasons it might be 
preferrable
@@ -85,7 +85,16 @@ public class SfWithinFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("st_Within(%s,%s)", args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("st_Within(%s,%s)", geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("Within function not supported 
by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SymDifferenceFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SymDifferenceFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SymDifferenceFunction.java
index 60e7fc2..6b62aa1 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SymDifferenceFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SymDifferenceFunction.java
@@ -85,7 +85,16 @@ public class SymDifferenceFunction implements NativeFunction 
{
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("ST_AsText(ST_SymDifference(%s , %s )) ", 
args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_AsText(ST_SymDifference(%s , %s )) ", 
geom1, geom2);
             }
         }
         throw new UnsupportedOperationException("SymDifference function not 
supported by dialect " + dialect);

http://git-wip-us.apache.org/repos/asf/marmotta/blob/f33f8eb9/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/UnionFunction.java
----------------------------------------------------------------------
diff --git 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/UnionFunction.java
 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/UnionFunction.java
index 98a32e6..336a7ba 100644
--- 
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/UnionFunction.java
+++ 
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/UnionFunction.java
@@ -85,7 +85,16 @@ public class UnionFunction implements NativeFunction {
     public String getNative(KiWiDialect dialect, String... args) {
         if (dialect instanceof PostgreSQLDialect) {
             if (args.length == 2) {
-                return String.format("ST_AsText(ST_Union(%s , %s ) )", 
args[0], args[1]);
+                String geom1 = args[0];
+                String geom2 = args[1];
+                String SRID_default = "4326";
+                if (args[0].contains("POINT") || 
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") || 
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") || 
args[0].contains("MULTIPOLYGON")) {
+                    geom1 = String.format("ST_GeomFromText(%s,%s)", args[0], 
SRID_default);
+                }
+                if (args[1].contains("POINT") || 
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") || 
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") || 
args[1].contains("MULTIPOLYGON")) {
+                    geom2 = String.format("ST_GeomFromText(%s,%s)", args[1], 
SRID_default);
+                }
+                return String.format("ST_AsText(ST_Union(%s , %s ) )", geom1, 
geom2);
             }
         }
         throw new UnsupportedOperationException("union function not supported 
by dialect " + dialect);

Reply via email to