- From: Jeen Broekstra <jeen@aduna.biz>
- Date: Fri, 02 Apr 2004 13:15:09 +0200
- To: leo@gnowsis.com
- Cc: 'Phil Dawes' <pdawes@users.sourceforge.net>, www-rdf-interest@w3.org
Leo Sauermann wrote:
> A - Returning Graphs
>
> I do it in jena all the time:
>
> public String execQuery(String query)
> throws GnowsisException {
> QueryResults qres =
> RequestHandler.getHandler().execQuery(query);
> Model target = ModelFactory.createDefaultModel();
>
> // do extraction of bindings
> while (qres.hasNext()) {
> ResultBinding b = (ResultBinding) qres.next();
> b.mergeTriples(target);
> }
>
> // print target to string
> StringWriter s = new StringWriter();
> target.write(s, "RDF/XML-ABBREV");
> return s.toString();
> }
My knowledge of Jena is rather shallow, so perhaps it's a silly
question, but: does this actually construct a subgraph of the original
RDF graph being queried? If so, how do you reconstruct the appropriate
paths between the retrieved variables? Because that is what
SeRQL-construct queries do: they return a (transformed) subgraph
instead of variable bindings.
>>Is this an uncommon approach?
>>Are there disadvantages to this approach compared to using a query
>>result format that binds variables to result values (e.g. rdql)?
>
>
> to my knowledge, RDQL is stone age. When I tried out sesame a year ago,
> you could do a "SELECT * WHERE (x .. y... z)...." query and the return
> variables where not named and not ordered, so you could not know in
> which column which result was. the standard defined a query with a
> useless result.
Things have improved a bit since then. The RDQL implementations in, at
least, Jena and Sesame now support an RDF syntax that explicitly
couples variables with values, making it easier to process. See
http://www.w3.org/2003/03/rdfqr-tests/recording-query-results.html.
Also, Sesame now supports the SeRQL query language (!= RDQL) which is
a lot more expressive.
> second thing is "left outer join", so optional joins. It is a basic of
> RDQL that a big query fails when one triple misses, this is also bad.
> Something better will come, or perhaps I am not on the latest and
> optional joins are already implemented in sesame.
This is one thing in particular that is implemented in SeRQL.
> Nethertheless, a good publication architecture is needed. In january I
> published gnowsis at http://www.gnowsis.com/wiki/GnowSis/LeoSThesis
> which contains some stuff about "middleware for the semantic web
> desktop".
>
> I appreciate any well-engineered approach in this direction, it is
> needed to explore these things.
>
> thanks for this post, a good thread.
Jeen
--
Jeen Broekstra Aduna BV
Knowledge Engineer Julianaplein 14b, 3817 CS Amersfoort
http://aduna.biz The Netherlands
tel. +31(0)33 46599877 fax. +31(0)33 46599877
Received on Friday, 2 April 2004 06:15:51 UTC