You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Venkat Krishnamurthy <ni...@gmail.com> on 2012/01/17 18:38:02 UTC
Sparql Remote Update over HTTP
All
I've checked the archives/javadoc but cannot find instructions on how to
programmatically update a remote sparql endpoint (fuseki/tdb) from Java.
The tdb page on incubator has a one-line 'Use UpdateRemote.execute' but I
cannot find the class - is that in ARQ or tdb?
What's the best way to do this if I have an in-memory dataset that I want
to persist?
Thanks
Venkat
Re: Sparql Remote Update over HTTP
Posted by Andy Seaborne <an...@apache.org>.
On 18/01/12 14:55, Venkat Krishnamurthy wrote:
> Thanks...So for a short term solution, is the below correct?
>
> 1) Create a copy of UpdateRemote from the fuseki codebase
> 2) Create an update request for my dataset and invoke (the client-side)
> UpdateRemote (which appears to handle the content-type setting etc).
Yes.
> Also - are there any additional things to watch out for related to remotely
> updating a dataset at a time using the above? (ie any one of the
> default/and or named graphs may have changed - does the current update
> handling on server side take care of this transparently?)
An update acts on the dataset at the far end. It should just work (tm).
> Has there been any thoughts/discussion on a connection-based api similar to
> jdbc, where the details of the storage(file, mem, sdb, tdb...) are
> abstracted away so that interaction via ARQ can focus on the operation at
> hand?
A pair of endpoint (query and update are separate languages and
services) providing access to one dataset, regardless of implementation
technology.
So between remove query and remote update, you have a single way to
manipulate and query datasets.
Andy
>
> Venkat
>
> On Wed, Jan 18, 2012 at 8:17 AM, Andy Seaborne<an...@apache.org> wrote:
>
>> On 17/01/12 17:38, Venkat Krishnamurthy wrote:
>>
>>> All
>>>
>>> I've checked the archives/javadoc but cannot find instructions on how to
>>> programmatically update a remote sparql endpoint (fuseki/tdb) from Java.
>>>
>>> The tdb page on incubator has a one-line 'Use UpdateRemote.execute' but I
>>> cannot find the class - is that in ARQ or tdb?
>>>
>>> What's the best way to do this if I have an in-memory dataset that I want
>>> to persist?
>>>
>>> Thanks
>>> Venkat
>>>
>>>
>> The class UpdateRemote is (currently) in Fuseki - it depends on
>> org.apache.http. It needs to move to ARQ sometime.
>>
>> You just POST the update as a string and content type
>> application/sparql-update. Or, as the code is ~30 lines long so maybe, for
>> now, taking a copy to avoid using Fuseki on the client side.
>>
>> The query remote could do with rewriting to use org.apache.http as well.
>>
>> UpdateExecutionFactory could acquire a .createRemote and have a remote
>> implementation of UpdateProcessor based on this code.
>>
>> See also the script "s-update"
>>
>> Andy
>>
>
Re: Sparql Remote Update over HTTP
Posted by Venkat Krishnamurthy <ni...@gmail.com>.
Thanks...So for a short term solution, is the below correct?
1) Create a copy of UpdateRemote from the fuseki codebase
2) Create an update request for my dataset and invoke (the client-side)
UpdateRemote (which appears to handle the content-type setting etc).
Also - are there any additional things to watch out for related to remotely
updating a dataset at a time using the above? (ie any one of the
default/and or named graphs may have changed - does the current update
handling on server side take care of this transparently?)
Has there been any thoughts/discussion on a connection-based api similar to
jdbc, where the details of the storage(file, mem, sdb, tdb...) are
abstracted away so that interaction via ARQ can focus on the operation at
hand?
Venkat
On Wed, Jan 18, 2012 at 8:17 AM, Andy Seaborne <an...@apache.org> wrote:
> On 17/01/12 17:38, Venkat Krishnamurthy wrote:
>
>> All
>>
>> I've checked the archives/javadoc but cannot find instructions on how to
>> programmatically update a remote sparql endpoint (fuseki/tdb) from Java.
>>
>> The tdb page on incubator has a one-line 'Use UpdateRemote.execute' but I
>> cannot find the class - is that in ARQ or tdb?
>>
>> What's the best way to do this if I have an in-memory dataset that I want
>> to persist?
>>
>> Thanks
>> Venkat
>>
>>
> The class UpdateRemote is (currently) in Fuseki - it depends on
> org.apache.http. It needs to move to ARQ sometime.
>
> You just POST the update as a string and content type
> application/sparql-update. Or, as the code is ~30 lines long so maybe, for
> now, taking a copy to avoid using Fuseki on the client side.
>
> The query remote could do with rewriting to use org.apache.http as well.
>
> UpdateExecutionFactory could acquire a .createRemote and have a remote
> implementation of UpdateProcessor based on this code.
>
> See also the script "s-update"
>
> Andy
>
Re: Sparql Remote Update over HTTP
Posted by Andy Seaborne <an...@apache.org>.
On 17/01/12 17:38, Venkat Krishnamurthy wrote:
> All
>
> I've checked the archives/javadoc but cannot find instructions on how to
> programmatically update a remote sparql endpoint (fuseki/tdb) from Java.
>
> The tdb page on incubator has a one-line 'Use UpdateRemote.execute' but I
> cannot find the class - is that in ARQ or tdb?
>
> What's the best way to do this if I have an in-memory dataset that I want
> to persist?
>
> Thanks
> Venkat
>
The class UpdateRemote is (currently) in Fuseki - it depends on
org.apache.http. It needs to move to ARQ sometime.
You just POST the update as a string and content type
application/sparql-update. Or, as the code is ~30 lines long so maybe,
for now, taking a copy to avoid using Fuseki on the client side.
The query remote could do with rewriting to use org.apache.http as well.
UpdateExecutionFactory could acquire a .createRemote and have a remote
implementation of UpdateProcessor based on this code.
See also the script "s-update"
Andy