Supporting a new DMBS (GeoSpark)

27 views
Skip to first unread message

Huy Tran

unread,
May 20, 2021, 4:34:22 AM5/20/21
to ontop4obda
Hello,
I want to use Apache Spark/Sedona as a RDBMS within Ontop. For this purpose, I forked a Spark JDBC driver and made it work with Ontop. 
The tools work perfectly with normal queries, but not GeoSPARQL ones. The resultset is empty and no exception thrown.
Here is an extract of the log when a GeoSPARQL function is used:
================================================================
23:30:19.796 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> evaluate()
23:30:19.796 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> Query String=PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT *
WHERE {
 
?stop ais:geometry ?geom.
?stop2 ais:geometry ?geom2.
filter(geof:sfWithin(?geom, ?geom2)). 
limit 100



23:30:19.796 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> Parsed query=Slice (limit=100)
   Projection
      ProjectionElemList
         ProjectionElem "stop"
         ProjectionElem "geom"
         ProjectionElem "stop2"
         ProjectionElem "geom2"
      Filter
            Var (name=geom)
            Var (name=geom2)
         Join
            StatementPattern
               Var (name=stop)
               Var (name=_const_147068b3_uri, value=http://melodi.irit.fr/ontologies/ais/geometry, anonymous)
               Var (name=geom)
            StatementPattern
               Var (name=stop2)
               Var (name=_const_147068b3_uri, value=http://melodi.irit.fr/ontologies/ais/geometry, anonymous)
               Var (name=geom2)

23:30:19.823 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> stm.execute getRewritingRendering=ans1(stop,geom,stop2,geom2)
SLICE limit=100
   JOIN RDF_2_DB_BOOL(GEOF_SF_WITHIN(geom,geom2))
      INTENSIONAL triple(stop,<http://melodi.irit.fr/ontologies/ais/geometry>,geom)
      INTENSIONAL triple(stop2,<http://melodi.irit.fr/ontologies/ais/geometry>,geom2)

23:30:19.882 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> stm.execute getExecutableQuery=ans1(stop,geom,stop2,geom2)
EMPTY [stop, geom, stop2, geom2]
23:30:19.884 |-INFO  in i.u.i.o.a.c.impl.QuestStatement - ==> executeSelectQuery
23:30:19.884 |-INFO  in i.u.i.o.a.c.impl.QuestStatement - ==> executableQuery=ans1(stop,geom,stop2,geom2)
EMPTY [stop, geom, stop2, geom2]
23:30:19.884 |-INFO  in i.u.i.o.a.c.impl.SQLQuestStatement - ++++ extractSQLQuery EMPTY [stop, geom, stop2, geom2]
23:30:19.887 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> result.hasNext()=false
23:30:19.888 |-INFO  in i.u.i.o.r.query.impl.OntopTupleQuery - ==> endQueryResult
=====================================================================
Because there is a problem with the executable query, it isn't sent to the DMBS (I made logs to trace the sql queries received inside the JDBC) . 

Thanks a lot for your help,
Ba Huy

Message has been deleted
Message has been deleted

Guohui Xiao

unread,
May 22, 2021, 11:11:27 AM5/22/21
to ontop4obda
Hi Ba Huy,

Your messages have been classified by Google as spam. That's why we did not see them earlier. Now we have seen them and take them out. In the future, your messages should go through.

Could you share your setup so that we can reproduce your problem?

Best regards,

Guohui
Reply all
Reply to author
Forward
0 new messages