Robby, SPIN API [SPIN] offers SPARQL serialization into RDF, so you can construct (and parametrize) SPARQL queries using Jena API. I've created a convenience builder class to make this task easier: https://github.com/Graphity/graphity-ldp/blob/master/src/main/java/org/graphity/util/QueryBuilder.java
This is how you can build a Jena Query with it: QueryBuilder.fromDescribe().subQuery(QueryBuilder.fromResource(spin).limit(limit).offset(offset).orderBy(orderBy, desc)).build() Martynas graphity.org On Fri, Aug 17, 2012 at 12:03 PM, Robby Pelssers <robby.pelss...@nxp.com> wrote: > Hi Andy, > > Thx for the elaboration. Just wondering how others are using the ARQ api. > What I want to accomplish in the end is to write a dynamic Apache Cocoon > generator that takes a SPARQL query as input and builds a Map from either > (all request parameters / sitemap parameters) and injects that map as a > QuerySolution (binding parameters from the query). If I get this working I > can do some pretty slick stuff ;-) > > Robby > > > > -----Original Message----- > From: Andy Seaborne [mailto:andy.seaborne.apa...@gmail.com] On Behalf Of Andy > Seaborne > Sent: Thursday, August 16, 2012 5:01 PM > To: users@jena.apache.org > Subject: Re: how to parameterize a date in a parametrized query? > > The problem is Java's idea of "date" or "Calendar" is not an xsd:date - > it's an xsd:dateTime. > > Hence when converted to Java, you get a dateTime. > > In practice, the java<->xsd mapping is a touch fraught for > dates/calendars. It's a bit fragile for even numbers - whether to use > xsd:int or xsd:integer when that may matter (in TDB it looses the > distinction and is more value-based). > > For example, in your data there is no timezone. > > So it is safer to take control and make an RDF literal with carefully > controlled XSD date. Your solution is the right one. > > ARQ's helper code is in: > > com.hp.hpl.jena.sparql.util.Utils > > You'll see it does it's own SimpleDateFormat because the Jena datatype > comes from Xerces and is value-based, which likes to make it all Z. If > the lexical form matters, > > See also > > javax.xml.datatype.XMLGregorianCalendar > > while there is no helper code for that (it's quite new), it is at least > XSD-ish. > > Andy > > On 16/08/12 15:42, Robby Pelssers wrote: >> I noticed that this will get the job done but does that mean there is no >> shortcut to just inject a java.util.Date and handle it properly? >> >> parQuery.setLiteral("productStatusDate", "2012-01-03", XSDDatatype.XSDdate); >> >> Robby >> >> -----Original Message----- >> From: Robby Pelssers [mailto:robby.pelss...@nxp.com] >> Sent: Thursday, August 16, 2012 4:29 PM >> To: users@jena.apache.org >> Subject: how to parameterize a date in a parametrized query? >> >> Hi all, >> >> Still having a bit of difficulty getting the sparql query to use a xs:date >> instead of xs:dateTime >> >> In RDF we defined a productStatusDate as follows: >> <nxp:productStatusDate >> rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2011-10-28</nxp:productStatusDate> >> >> >> I have following query and from Java I want to filter out all products >> having a specific productStatusDate >> >> #Query showcasing how to select typenumber and preflabel for all products >> #having a specific productStatusDate >> PREFIX nxp: <http://purl.org/nxp/schema/v1/> >> SELECT ?typeNumber >> WHERE >> { >> ?x nxp:typeNumber ?typeNumber; >> nxp:productStatusDate ?productStatusDate . >> } >> >> >> I only noticed a setLiteral for Calendar but that does not seem to get the >> job done: >> >> ParameterizedSparqlString parQuery = new >> ParameterizedSparqlString(sQuery); >> Calendar calendar = Calendar.getInstance(); >> calendar.set(2011, 10, 28, 0, 0, 0); //2011-10-28 >> parQuery.setLiteral("productStatusDate", calendar); >> Query query = parQuery.asQuery(); >> System.out.println(query.toString()); >> >> I printed the query which looks like this: >> >> PREFIX nxp: <http://purl.org/nxp/schema/v1/> >> >> SELECT ?typeNumber >> WHERE >> { ?x nxp:typeNumber ?typeNumber . >> ?x nxp:productStatusDate >> "2011-11-27T23:00:00.663Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> >> } >> >> >> How can I switch to using date ?? >> >> Thx in advance, >> Robby >> >