Hi Ilkka, you are not doing anything wrong. Virtuoso returns graph query results as blobs of turtle encoded rdf. Soprano tries to parse the data and then provide a StatementIterator over the statements (via the QueryResultIterator). As such, the Virtuoso backend depends on the raptor parser plugin, a dependency that is not reflected in the build system (I should change that). Thus, my first question: is the Soprano raptor parser plugin installed? BTW: If not, there should be an error message about that on the console when you try to open the iterator.
Cheers, Sebastian On 05/05/2010 01:55 PM, Ilkka Laukkanen wrote: > Hi, > > I'm using Soprano 2.4.2 and the Virtuoso backend to store a bunch of > data and wanted to run a construct SPARQL query on it. I was a bit > surprised when I noticed that the QueryResultIterator returned by my > query was not a Graph iterator but a Binding iterator instead. Here's > the query: > > prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> > prefix dc: <http://purl.org/dc/elements/1.1/> > construct { > ?thing ?property ?propval . > ?property rdfs:label ?label . > } > where { > ?thing ?property ?propval . > ?thing dc:format "application/x-whatever" . > ?thing ?matchproperty ?matchval . > filter regex(str(?matchval), "Foobar") . > ?property rdfs:label ?label . > } > > Naturally "Foobar" would be replaced by a real search term and the > dc:format would be a bit more specific, but you get the gist of it. > Anyway, the resulting QueryResultIterator is a Binding iterator, with > a single binding, "fmtaggret-" that contans the result as a string > with embedded escaped tabs and newlines, instead of a Graph iterator > that I could use to get at the statements in my result graph. > > What am I doing wrong? > > _______________________________________________ Nepomuk mailing list [email protected] https://mail.kde.org/mailman/listinfo/nepomuk
