Hi Rene-Luc<br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 3, 2012 at 10:01 AM, rldhont <span dir="ltr"><<a href="mailto:rldhont@gmail.com" target="_blank">rldhont@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">With the QGIS Expression you just have to know how to write an expression to create a new Process. It's not coding.<br>

For example the Buffer Process can be described like this :<br>
buffer("geometry","distance")<br>
You want to create a Process which retrun the buffer without the geometry :<br>
difference(buffer("geometry","<u></u>distance"),"geometry")<br>
And we can define a Process which return the result of a QGIS Expression as the Process parameter.<br></blockquote><div><br></div><div>Thanks for sharing your thoughts about your implementation.</div><div><br></div><div>
I would like to express my concerns that using QgsExpression may be a dead end for a generic WPS servers. Expressions are meant to deal with individual features of a vector layer. You're right that it's possible to define your own functions and chain them to create processes, but this is very limited. For example it's not possible for a process to return more results and it's not possible to use one result more than once. Just like raster calculator has its own expression engine, also the processing service should use a way of describing algorithms that suits best its needs - and in our case that's python+SEXTANTE.</div>
<div><br></div><div>Therefore I strongly recommend using SEXTANTE for the WPS server backend. I believe that would be less work than trying to hack QgsExpression to use it for processing. You would just need to parse WPS query, generate a Python script that would run SEXTANTE analysis and then create WPS reply. It's probably not desirable to run the processing directly within the server process (thread), so this would be a better solution either way.</div>
<div> </div><div>Regards</div><div>Martin</div></div></div>