First of all, i don\'t know if this really called group graph pattern or not. Anyway,
Look at this query please
select ?x ?y where {
{?x rdf:type rs:R
select ?x ?y where {
{?x rdf:type rs:Recommendable}
{?xd rs:doesntexist ?y}
}
is like (not identical) to:
select ?x ?y where {
?x rdf:type rs:Recommendable
?x rs:doesntexist ?y
}
Both patterns must match. If there is no rs:doesntexist the whole thing fails.
{}
matches all (zero) its patterns so it always works.