Kjetil,

> > Re.
> > DESCRIBE ?resource WHERE {
> >         ?resource dct:title ?free ;
> >                 dct:subject ?var .
> >         ?var skos:prefLabel ?free .     
> >         ?free bif:contains "Da*" .
> > },
> >
> > there are two errors.
> 
> Ah, yes, it was just an example. In practise, we have some OPTIONALs and a 
> FILTER bound( thing that takes care of all these things.

OK. Just remember that bif:contains will work only with triple in same
group at same level such that "subject" of bif:contains is object of
that triple. So it is impossible to bind a variable in one place and
make free-text search in other. Say, the following will report an error:

DESCRIBE ?resource WHERE {
  {     ?resource dct:title ?free .
  }
  UNION
  {     ?resource dct:subject ?var .
        ?var skos:prefLabel ?free .     
  }
  ?free bif:contains "Da*" .
}

That is because free-text index is areal index that should operate on
real table alias, not on something "derived" like union or subquery.

>  I was wondering if I 
> could somehow exclude the sub:literals predicate from the DESCRIBE result?  

It's a problem of SPARQL spec. There's no syntax for configuration
options; I've failed to push that idea into initial version of the W3C
spec. We shall see if the second attempt will be better. If not, then we
will violate the spec (and create one more interop issue) -- "the best
critique is sabotage".


Best Regards,

Ivan Mikhailov
OpenLink Software
http://virtuoso.openlinksw.com



Reply via email to