LWP::UserAgent::SemWebCache - LWP::UserAgent for caching SPARQL Queries
This is a slight modification of LWP::UserAgent::CHICaching, and can be used much like it:
my $cache = CHI->new( driver => 'Memory', global => 1 ); my $ua = LWP::UserAgent::SemWebCache->new(cache => $cache); my $res1 = $ua->get("http://localhost:3000/?query=DAHUT");
This class composes the two roles LWP::UserAgent::Role::CHICaching and LWP::UserAgent::Role::CHICaching::VaryNotAsterisk and reimplements the key attribute.
key
For now, it makes a relatively uncertain assumption that could in some cases violate Section 4.1 of RFC7234 and cause unpredictable results: Since SPARQL results come in different serializations, the Vary header will be present in most cases, and therefore, different caches would usually have been required. However, if we assume that no variations that are semantically significant could occur, then we should be OK. Unless, of course, the server declared that anything goes, which amount to setting Vary: *, in that case, we don't cache.
Vary
Vary: *
Additionally, since the URI resulting from a SPARQL protocol query might be long, and long keys are often difficult for backend caches, so the reimplementation of key will create a digest.
clear_key
The key to use for a response. This role will return the canonical URI of the request as a string, which is a reasonable default.
Kjetil Kjernsmo <kjetilk@cpan.org>.
This software is copyright (c) 2015, 2016 by Kjetil Kjernsmo.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install AtteanX::Query::Cache, copy and paste the appropriate command in to your terminal.
cpanm
cpanm AtteanX::Query::Cache
CPAN shell
perl -MCPAN -e shell install AtteanX::Query::Cache
For more information on module installation, please visit the detailed CPAN module installation guide.