public class DescribeCacheServlet extends BigdataRDFServlet
In general, URIs may be identified either by a bare URI (in which case the
URI must be some extension of the SPARQL endpoint path) or by a SPARQL
DESCRIBE query ( endpoint?query=DESCRIBE uri(,uri)*
).
The DescribeCacheServlet
will recognize and perform the DESCRIBE of
cached resources where those resources are attached to a request attribute
TODO Http cache control. Different strategies can make sense depending on the
scalability of the application and the tolerance for stale data. We can use
an expire for improved scalability with caching into the network, but
invalidation notices can not propagate beyond the DESCRIBE cache to the
network. We can use E-Tags with Must-Validate to provide timely invalidation.
If we support faceting (by schema or source) then we need to provide E-Tags
for each schema/source so the client can inspect/require certain facets.
TODO VoID for forward/reverse link set and attribute sketch.
TODO Conneg for the actual representation, but internally use an efficient
representation that can provide summaries (a SKETCH) through a jump table
with statistics for each predicate type.
TODO Options for DESCRIBE filters by schema to get only properties and links
for a given schema namespace?
TODO Describe caching in an open web context requires maintaining metadata
about the web resources that have been queried for a given URI. This should
include at least the URI itself and could include well known aggregators that
might have data for that URI.
TODO Take advantage of the known materialization performed by a DESCRIBE
query when running queries (materialized star-join). Also, store IVs in the
Graph as well as Values. We need both to do efficient star-joins (enter by IV
and have IV on output).
TODO Hash partitioned DESCRIBE fabric. The partitioned map is easy enough and
could be installed at each DS, CS, etc. node. However, the distributed
invalidating scheme is slightly trickier. We would need to install this
servlet at each endpoint exposed to mutation, which is not actually all that
difficult. There needs to be configuration information for either each
namespace or for the webapp that specifies how to locate and maintain the
cache.
TODO Expose (and declare through VoID) a simple URI lookup service that is
powered by this cache and turns into a DESCRIBE query if there is a cache
miss (or turn it into a DESCRIBE query and let that route to the cache
first). VoID has the concept of this kind of "lookup" service.
ATTR_BLUEPRINTS, MIME_JSON, MIME_RDF_XML, MIME_SPARQL_QUERY, MIME_SPARQL_RESULTS_JSON, MIME_SPARQL_RESULTS_XML, MIME_SPARQL_UPDATE, NA, OUTPUT_FORMAT_JSON, OUTPUT_FORMAT_JSON_SHORT, OUTPUT_FORMAT_QUERY_PARAMETER, OUTPUT_FORMAT_XML, OUTPUT_FORMAT_XML_SHORT, UNDEFINED_WORKBENCH_NAMESPACE, UTF8
ATTRIBUTE_RDF_CONTEXT, charset, DELETE, GET, HTTP_BADREQUEST, HTTP_HEADER_BIGDATA_READ_ONLY, HTTP_INTERNALERROR, HTTP_METHOD_NOT_ALLOWED, HTTP_NOTFOUND, HTTP_NOTIMPLEMENTED, HTTP_OK, POST, PUT
MIME_APPLICATION_JSON, MIME_APPLICATION_URL_ENCODED, MIME_APPLICATION_XML, MIME_DEFAULT_BINARY, MIME_GRAPH_ML, MIME_PROPERTIES_XML, MIME_TEXT_HTML, MIME_TEXT_JAVASCRIPT, MIME_TEXT_PLAIN
Constructor and Description |
---|
DescribeCacheServlet() |
Modifier and Type | Method and Description |
---|---|
protected void |
doGet(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
GET returns the DESCRIBE of the resource.
|
buildAndCommitBooleanResponse, buildAndCommitNamespaceNotFoundResponse, buildAndCommitRangeCountResponse, getNamespace, getTimestamp, isAttachment, launderThrowable, newPipedInputStream, parseBindings, sendGraph, sendProperties, toURIs
buildAndCommitResponse, decodeContexts, getBigdataRDFContext, getBooleanValue, getIndexManager, getIndexManager, getServiceURIs, readFully, submitApiTask
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
protected void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws IOException
doGet
in class javax.servlet.http.HttpServlet
IOException
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.