FWIW dotNetRDF has supported and uses E-Tags when retrieving graphs from
remote URIs since 2010 I.e. for 5 years

So yes these things are used in the real world at least for simple data
retrieval, I haven't honestly ever used them for other SPARQL operations.

We even support caching local copies of remote data based on E-Tags so
that we avoid unnecessary data transfer if the locally cached version is
still the same as the one offered by the server.

Rob

On 29/06/2015 17:33, "aj...@virginia.edu" <aj...@virginia.edu> wrote:

>I can only speak for the use cases I actually know about. ETags would get
>used, because the most important web app in my concern that is
>potentially a client to Fuseki would be able to use them. But that is
>just one case.
>
>JENA-626 would be great in any regard.
>
>---
>A. Soroka
>The University of Virginia Library
>
>On Jun 29, 2015, at 12:20 PM, Andy Seaborne <a...@apache.org> wrote:
>
>> There is no case of external modification of the database which Fuseki
>>is running.  A disaster will occur otherwise.  [Modifying externally
>>while running requires a different approach (e.g. switching between two
>>copies of the database ... maybe ... so many ways to corrupt a database
>>... ).]
>> 
>> 
>> E-tags is a quite technical solution - will any system actually use it
>>for real even if it is the right solution?  We wouldn't want to find out
>>that etags support does not get used.  For the SPARQL Protocols case
>>(with query stings), it might not really get used.  Has caching of
>>requests including query string rolled out to any degree? (a point from
>>discussion in JENA-388).
>> 
>> If query string currently cause no caching by intermediaries in
>>practice, will clients cache which is the case of one client reissuing
>>the same query? Possible but is it likely?
>> 
>> See also JENA-626 "SPARQL Query Caching".  That would make a difference
>>- different client apps starting up often ask the same query to get
>>started.
>> 
>>      Andy
>> 
>> On 29/06/15 16:03, Claude Warren wrote:
>>> I am not familure with how the indexing interplays with the rest of the
>>> Jena system.  My assumption is, like you, that we only want the ETag
>>>in the
>>> Fuseki layer.  However, to generate an ETag it seems like Fuseki will
>>>need
>>> to be able to ask the underlying dataset when the last change occured,
>>>but
>>> then you also want to know if indexing has changed so that results my
>>>be
>>> changed as well.
>>> 
>>> If we consider ETag generation separate from the Dataset then the ETag
>>> generator could register as a listener to the dataset and react
>>>whenever a
>>> change occurs to the model.   > This doesn't solve the problem of
>>>responding
>>> to index updates.  However, whatever interface the listener uses to
>>>trigger
>>> an ETag change could just as well be done by an indexer.  Is there an
>>> indexer listener interface (ala Model/Graph listeners)?  In this
>>>solution
>>> the ETag gets input from any registered component.  I think that each
>>> registered component should have a "name" and a "value".  The ETag
>>> generator would retain the most recent value for each registered
>>>component
>>> and generate a new ETag when a value changes.  So I see a class with 2
>>> methods
>>> 
>>> void ETagGenerator.change( String name, String value )
>>> and
>>> String ETagGenerator.getTag(); // to retrieve the current tag.
>>> 
>>> Claude
>>> 
>>> 
>>> 
>>> On Mon, Jun 29, 2015 at 2:50 PM, aj...@virginia.edu
>>><aj...@virginia.edu>
>>> wrote:
>>> 
>>>> On Jun 29, 2015, at 9:33 AM, Claude Warren <cla...@xenei.com> wrote:
>>>>> If there were an ETag per dataset and a method on the dataset to
>>>>>force
>>>> an ETag reset would this address the index issue in that the indexer
>>>>could
>>>> reset the ETag when it deemed appropriate?
>>>> 
>>>> It might-- for that indexer. I would be concerned about setups in
>>>>which
>>>> another process acted against the data "out of sight" of Fuseki. But
>>>>would
>>>> the ETag be on ARQ's Dataset itself? If I understand what's going on
>>>>here
>>>> correctly (debatable at best), Dataset should not have any HTTP
>>>>concerns
>>>> mixed into it. ETag would be on something closer to Fuseki's
>>>>DataService,
>>>> which I do not think would normally be accessible to an indexer which
>>>>is
>>>> only aware of what's on diskā€¦ but this is all from my understanding
>>>>of the
>>>> architecture, which is pretty minimal. {grin} Maybe some kind of "last
>>>> changed" timestamp could reasonably go on Dataset to support this
>>>>kind of
>>>> function?
>>>> 
>>>>> In any case I would go with the first choice.
>>>> 
>>>> It definitely seems like the most bang for the least buck.
>>>> 
>>>>> Is there anything that prohibits sending both an ETag and a constant
>>>> expires?  I havn't looked but I recall they are not mutually
>>>>exclusive.
>>>> 
>>>> Yes, I think you are correct. I suppose a bad ETag will never be
>>>>known to
>>>> be such as long as it is "inside" the range of a still-good Expires,
>>>>but
>>>> that is a question for the administrator configuring Fuseki, it seems
>>>>to
>>>> me. There is also Cache-Control, of course, in the same field of
>>>> functionality.
>>>> 
>>>> ---
>>>> A. Soroka
>>>> The University of Virginia Library
>>>> 
>>>> 
>>> 
>>> 
>> 
>




Reply via email to