%-encoding the {} gets it past the parsing error, thanks!

http://localhost:8080/sparql?query=SELECT+*+WHERE+%7B%3Fs+%3Fp+%3Fo%7D

now gets me to the auth stage, next hurdle to jump :)

Cheers,
Danny.


On 25 August 2014 19:29, Andy Seaborne <[email protected]> wrote:

> Jetty is quite happy about the string:
>
> sparql?query=SELECT+*+WHERE+{%3Fs+%3Fp+%3Fo}
>
> {} is special to Jersey though which _may_ be a source of confusion.
>
> >> "in a path template"
>               ^^^^^^^^
>
> Try %-encoding the {}.
>
>         Andy
>
>
> On 25/08/14 15:38, Reto Gmür wrote:
>
>> Hi Danny
>>
>> It seems to be an issue with jetty who doesn't like that URI. If you want
>> to access sparql via HTTP I suggest you use POST.
>>
>> If your code is running in OSGi than simply get a refrence to TcManager
>> (for an example, see the stanbol staefuull webapp maven archetype) and
>> access one of its executeSparqlQuery methods:
>> http://clerezza.apache.org/apidocs/org/apache/clerezza/
>> rdf/core/access/TcManager.html#executeSparqlQuery%
>> 28java.lang.String,%20org.apache.clerezza.rdf.core.UriRef%29
>>
>> Cheers,
>> Reto
>>
>>
>> On Mon, Aug 25, 2014 at 8:58 AM, Danny Ayers <[email protected]>
>> wrote:
>>
>>  On 23 August 2014 19:24, Reto Gmür <[email protected]> wrote:
>>>
>>>  Hi Danny
>>>>
>>>> Could you tell more about what error you get when you run the query
>>>>
>>> against
>>>
>>>> http://localhost:8080/sparql. What does the log say?
>>>>
>>>>
>>> Taking the query :
>>>
>>> SELECT * WHERE {?s ?p ?o}
>>>
>>> converted to URL becomes :
>>>
>>> http://localhost:8080/sparql?query=SELECT+*+WHERE+{%3Fs+%3Fp+%3Fo}
>>> <http://localhost:8080/sparql?query=SELECT+*+WHERE+%7B%3Fs+%3Fp+%3Fo%7D>
>>>
>>> with a GET gives the error :
>>>
>>> 25.08.2014 08:39:16.792 *WARN* [qtp22576245-34]
>>> org.eclipse.jetty.servlet.ServletHandler /sparql
>>> java.lang.IllegalArgumentException: Illegal character "%" at position
>>> 22 is
>>> not allowed as a start of a name in a path template
>>> "query=SELECT+*+WHERE+{%3Fs+%3Fp+%3Fo}&output=text&stylesheet=".
>>>      at
>>>
>>> org.glassfish.jersey.uri.internal.UriTemplateParser.
>>> parseName(UriTemplateParser.java:305)
>>>      at
>>>
>>> org.glassfish.jersey.uri.internal.UriTemplateParser.
>>> parse(UriTemplateParser.java:235)
>>>      at
>>>
>>> org.glassfish.jersey.uri.internal.UriTemplateParser.<
>>> init>(UriTemplateParser.java:107)
>>>      at
>>>
>>> org.glassfish.jersey.uri.UriTemplate.createURIComponent(
>>> UriTemplate.java:891)
>>>      at
>>>
>>> org.glassfish.jersey.uri.UriTemplate.createURIWithStringValues(
>>> UriTemplate.java:858)
>>>      at
>>>
>>> org.glassfish.jersey.uri.UriTemplate.createURIWithStringValues(
>>> UriTemplate.java:797)
>>>      at org.glassfish.jersey.uri.UriTemplate.createURI(
>>> UriTemplate.java:762)
>>>      at
>>>
>>> org.glassfish.jersey.uri.internal.JerseyUriBuilder._
>>> build(JerseyUriBuilder.java:893)
>>> ...
>>>
>>> looks like it's not decoding the query in GETs per
>>> http://www.w3.org/TR/sparql11-protocol/#query-via-get
>>>
>>>
>>>> Also, the sparql HTTP endpoint is so that external can query the data.
>>>>
>>> You
>>>
>>>> write that you're integrating it into OSGi, so why should you by
>>>> acessing
>>>> the HTTP endpoint?
>>>>
>>>>
>>> So it's possible to flip to using an external store by just changing the
>>> 2
>>> SPARQL URLs, i.e. more loosely coupled. The messages being passed around
>>> are relatively small so shouldn't be a major hit on performance, though I
>>> guess accessing the store more directly would be an idea if this becomes
>>> an
>>> issue for later UI elements.
>>>
>>> Having said that, because I need to get this thing integrated asap, if
>>> there's a quick way of modifying code to do the comms through OSGi I'd
>>> love
>>> to hear it :)
>>>
>>> Cheers,
>>> Danny.
>>>
>>>
>>>  Cheers,
>>>> Reto
>>>>
>>>>
>>>> On Sat, Aug 23, 2014 at 6:31 PM, Danny Ayers <[email protected]>
>>>> wrote:
>>>>
>>>>  Hi Hasan, everyone,
>>>>>
>>>>> I'm working on a module [1] intended to plug in to the Fusepool
>>>>>
>>>> extension
>>>
>>>> of Stanbol. It's a feed reader back by an RDF store, the store being
>>>>> addressed entirely through SPARQL (over HTTP).
>>>>>
>>>>> I developed the app outside of OSGi and am now in the process of
>>>>> integrating. I have been using a Fuseki store/endpoint but need to move
>>>>> this over to using Stanbol/Clerezza's SPARQL facilities.
>>>>>
>>>>> So what I'd like to know is how to set up SPARQL endpoints. The config
>>>>>
>>>> I've
>>>>
>>>>> got for Fuseki is below, essentially I need a dataset in a TDB-like
>>>>>
>>>> store
>>>
>>>> that supports named graphs, accessed via SPARQL query (GET) & update
>>>>> (POST).
>>>>> There's an example of the kind of update I'm doing at [2] - it's
>>>>>
>>>> actually a
>>>>
>>>>> freemarker template with simple placeholder substitution, but the
>>>>>
>>>> SPARQL
>>>
>>>> is
>>>>
>>>>> pretty clear.
>>>>>
>>>>> Right now with a running Fusepool/Stanbol, pointing a browser at
>>>>> http://localhost:8080/query?sparql=
>>>>> gives the kind of SPARQL parsing error you'd expect, but giving it a
>>>>> genuine query leads to a HTTP 500.
>>>>>
>>>>> Any help greatly appreciated.
>>>>>
>>>>> Cheers,
>>>>> Danny.
>>>>>
>>>>> ## ---------------------------------------------------------------  ##
>>>>> Updatable in-memory dataset.
>>>>>   <#feedreader> rdf:type fuseki:Service ;  # URI of the dataset --
>>>>> http://host:port/feedreader  fuseki:name "feedreader" ;
>>>>>    # SPARQL query services e.g.
>>>>> http://host:port/feedreader/sparql?query=...  fuseki:serviceQuery
>>>>> "sparql" ;  fuseki:serviceQuery "query" ;  # SPARQL Update service --
>>>>> http://host:port/feedreader/update?request=...  fuseki:serviceUpdate
>>>>> "update" ; # SPARQL query service -- /feedreader/update
>>>>>    # Upload service -- http://host:port/feedreader/
>>>>> upload?graph=default
>>>>>
>>>> or
>>>>
>>>>> ?graph=URI or ?default  # followed by a multipart body, each part being
>>>>>
>>>> RDF
>>>>
>>>>> syntax.  # Syntax determined by the file name extension.
>>>>> fuseki:serviceUpload
>>>>> "upload" ; # Non-SPARQL upload service
>>>>>    # SPARQL Graph store protocol (read and write)  # GET, PUT, POST
>>>>>
>>>> DELETE
>>>
>>>> to http://host:port/feedreader/data?graph= or ?default=
>>>>> fuseki:serviceReadWriteGraphStore
>>>>> "data" ;
>>>>>    # A separate read-only graph store endpoint:
>>>>> fuseki:serviceReadGraphStore
>>>>> "get" ; # Graph store protocol (read only) -- /feedreader/get
>>>>>    fuseki:dataset <#emptyDataset> ;  .
>>>>>   ## In-memory, initially empty.  <#emptyDataset> rdf:type
>>>>>
>>>> ja:RDFDataset .
>>>
>>>> ##
>>>>> ------------------------------------------------------------------
>>>>> [1] https://github.com/danja/NewsMonitor
>>>>>
>>>>> [2]
>>>>>
>>>>>
>>>>>
>>>>  https://github.com/danja/NewsMonitor/blob/master/src/
>>> main/resources/templates/html/it/danja/newsmonitor/resource/
>>> update-links.ftl
>>>
>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> http://dannyayers.com
>>>
>>> http://webbeep.it  - text to tones and back again
>>>
>>>
>>
>


-- 
http://dannyayers.com

http://webbeep.it  - text to tones and back again

Reply via email to