On Tuesday 02 September 2008 19:12:45 Ivan Mikhailov wrote: > > 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.
Oh, OK, but DESCRIBE ?resource WHERE { { ?resource dct:title ?free1 . ?free1 bif:contains "Da*" . } UNION { ?resource dct:subject ?var . ?var skos:prefLabel ?free2 . ?free2 bif:contains "Da*" . } } will work? > > 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". Yeah, I know, but I certainly prefer to keep the conflict level low and to rough consensus in the standards process. It seems to me that a solution to this problem would be to allow matching graphs that are not part of the result set, e.g. DESCRIBE ?foo FROM </foo> WHERE GRAPH </bar> { ?foo dct:title "Foo" . } or something like that... Kind regards Kjetil Kjernsmo -- Senior Knowledge Engineer Direct: +47 6783 1136 | Mobile: +47 986 48 234 Email: kjetil.kjern...@computas.com Web: http://www.computas.com/ | SHARE YOUR KNOWLEDGE | Computas AS Vollsveien 9, PO Box 482, N-1327 Lysaker | Phone:+47 6783 1000 | Fax:+47 6783 1001