semagrow / semagrow

A SPARQL query federator of heterogeneous data sources

Home Page:https://semagrow.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prefix-based Source Selector ignores triple patterns for complex queries

antru6 opened this issue · comments

The Prefix-based Source Selector ignores triple patterns in queries that have subqueries.
Examples of such queries:

PREFIX ex: <http://example.org/>

SELECT * WHERE {
  {
    SELECT * WHERE {
      ex:1 ex:p ?u1 .
      ?u1 ex:q ?o1 .
    }
    ORDER BY ASC(?o1)
    LIMIT 1
  }
  ?s2 ex:p ?u2 .
  ?u2 ex:r ?o1 .
}

and

PREFIX ex: <http://example.org/>

SELECT * WHERE {
  ex:1 ex:p ?u1 .
  FILTER NOT EXISTS {
     ?s2 ex:p ?u1 .
     ?u2 ex:r ?o2 .
  }
}

The problem possibly originates in https://github.com/semagrow/semagrow/blob/devel-xearth/core/src/main/java/org/semagrow/selector/PrefixQueryAwareSourceSelector.java#L35