No news about this issue/bug? On Mon, 2010-01-18 at 11:13 +0100, Sergio Fernández wrote: > Hi, > > my colleague Ignacio (CCed) has found a possible bug at Virtuoso's > SPARQL query engine about OPTIONAL patterns. > > He is trying to execute this query [1] over this endpoint [2], but > results change depending of the order of the OPTIONAL patterns: > > 1) The first query that he wrote [3]: > > SELECT ?source ?section ?homepage > FROM <http://data.fundacionctic.org/idi/debian> > WHERE { > ?source <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> > <http://idi.fundacionctic.org/steamy/debian.owl#Source> . > ?source <http://idi.fundacionctic.org/steamy/debian.owl#packageName> > ?sourcename . > OPTIONAL { ?source > <http://idi.fundacionctic.org/steamy/debian.owl#section> ?section } > OPTIONAL { ?source <http://xmlns.com/foaf/0.1/page> ?homepage } > FILTER(regex(?sourcename,"vim","i")) > } > > 2) Switching the order of the optional patterns [4]: > > SELECT ?source ?section ?homepage > FROM <http://data.fundacionctic.org/idi/debian> > WHERE { > ?source <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> > <http://idi.fundacionctic.org/steamy/debian.owl#Source> . > ?source <http://idi.fundacionctic.org/steamy/debian.owl#packageName> > ?sourcename . > OPTIONAL { ?source <http://xmlns.com/foaf/0.1/page> ?homepage } > OPTIONAL { ?source > <http://idi.fundacionctic.org/steamy/debian.owl#section> ?section } > FILTER(regex(?sourcename,"vim","i")) > } > > The results are the same, but the second query doesn't return their > section is some cases. And I don't really know why... because SPARQL's > specification literally says that "if the optional part does not match, > it creates no bindings but does not eliminate the solution". > > Our inquiries lead us to a problem relative on how FILTER patterns > applies to OPTIONAL patterns (second query only returns results where > their homepage contains the substring "vim"). But that violates how is > the scope of FILTERS in SPARQL [6]. So I'm not really sure what's > actually the problem... > > The query is running over an instances Virtuoso OSE 5.0.11 on Debian > GNU/Linux. Right now we don't have deployed any latest version of > Virtuoso; but you can reproduce the bug getting the whole graph [7] with > a construct query. > > Best regards, > > [1] http://paste.debian.net/hidden/62c4e7e1/ > [2] http://data.fundacionctic.org/sparql > [3] http://tinyurl.com/virtuoso-bug-optional-1 > [4] http://tinyurl.com/virtuoso-bug-optional-2 > [5] http://www.w3.org/TR/rdf-sparql-query/#optionals > [6] http://www.w3.org/TR/rdf-sparql-query/#scopeFilters > [7] http://data.fundacionctic.org/idi/debian >
-- Sergio Fernández CTIC - Technological Center Parque Científico y Tecnológico de Gijón C/ Ada Byron, 39 Edificio Centros Tecnológicos 33203 Gijón - Asturias - Spain Tel.: +34 984 29 12 12 Fax: +34 984 39 06 12 E-mail: [email protected] http://www.fundacionctic.org Privacy Policy: http://www.fundacionctic.org/privacidad
