How to provide overridable default values?

I'm injecting input values into sparql queries via a VALUES clause. However, in some cases, I want to provide a computed default in the query which may or may not be overridden by injected input. The solution beyond works, but feels a bit clumsy.

Can somebody suggest a more elegant one?

Cheers, Joachim

SELECT * WHERE {

  # input value (optionally set by user input)
  VALUES ( ?varInput ) {
    ( undef )
  }

  # default value (computed via some sparql pattern/subquery)
  :someRessource :someProperty ?varDefault

  # use default value, overridden by input (if set)
  BIND(coalesce(?varInput, ?varDefault) AS ?var)

  ?s ?p ?var
}

Received on Saturday, 6 December 2014 09:20:42 UTC