This is the expected behavior based on the SPARQL semantics; see scope
of filters [1]. The meaning of your query changes when you put the
extra grouping. First this group in your query is answered:
{ ?x a :A . FILTER EXISTS { ?y a :A } }
This will bind ?x to :a and FILTER will be satisfied due to :b but
FILTER does not bind variables. Then this solution (x = :a) will be
joined with the solution for the outer triple pattern yielding x = :a,
y = :b.
Best,
Evren
[1]
https://www.w3.org/TR/sparql11-query/#scopeFilters
> --
> -- --
> You received this message because you are subscribed to the C&P "Stardog"
> group.
> To post to this group, send email to
sta...@clarkparsia.com
> To unsubscribe from this group, send email to
>
stardog+u...@clarkparsia.com
> For more options, visit this group at
>
http://groups.google.com/a/clarkparsia.com/group/stardog?hl=en