HTTP Request Parameters¶
When Dydra processes a query request, it combines the algebra expression which it generates from the query text with several bits of metadata which it extracts from the protocol request or gathers from the request repository and system configuration.
Some of the properties are specified in the standards for the SPARQL language and request protocols. Others are specific to Dydra’s processing interface. Some are implicit in the standards, but no means is described to include them in a request. This document describes how to set these properties, either for individual queries or for all processing for a repostiory or an account, how these settings interact, and how a given effective setting affects the query processing.
The following properties govern query execution
parameter |
request protocol |
request text |
repository configuration |
account configuration |
system configuration |
---|---|---|---|---|---|
access authentication key :
|
URL, HEADER |
||||
base iri :
|
URL |
BASE |
yes |
||
user query id :
|
HEADER |
||||
dataset :
|
FROM, FROM-NAMED, WITH, WITH-NAMED |
parameter |
request protocol |
request text |
repository configuration |
account configuration |
system configuration |
---|---|---|---|---|---|
describe form:
|
URL |
PREFIX |
yes |
yes |
yes |
dynamic binding :
|
URL |
||||
entailment mode :
|
URL |
PREFIX |
yes |
yes |
yes |
parameter |
request protocol |
request text |
repository configuration |
account configuration |
system configuration |
---|---|---|---|---|---|
federation mode :
|
URL |
PREFIX |
yes |
yes |
yes |
index:
|
yes |
yes |
yes |
||
processing bounds:
|
URL |
PREFIX |
yes |
yes |
yes |
provenance mode :
|
URL |
PREFIX |
yes |
yes |
yes |
parameter |
request protocol |
request text |
repository configuration |
account configuration |
system configuration |
---|---|---|---|---|---|
repository id:
|
URL |
||||
response bounds :
|
URL |
PREFIX |
yes |
yes |
yes |
response content type :
|
HEADER |
||||
query text :
|
URL DATA |
||||
revision id :
|
URL |
||||
revision-windows :
|
HEADER (MQTT) |
parameter |
request protocol |
request text |
repository configuration |
account configuration |
system configuration |
---|---|---|---|---|---|
skolemization mode :
|
URL |
PREFIX |
yes |
yes |
yes |
undefined variable behavior :
|
URL |
PREFIX |
yes |
yes |
yes |
user query id :
|
URL |
||||
xslt style sheet :
|
URL HEADER |
||||
values clauses :
|
URL DATA |
As these parameters may be specified in a number of ways, the Dydra query processor combines the values to produce the setting in effect for a given request. For those parameters which can be specified in the request, for example, the request dataset, the SPARQL protocol, requires that the protocol request values supercede any values present in the query text itself. Dydra applies the same rule to all parameters and, as an extension, supercedes any configuration values with those from the request. Among the configuration parameters, repository settings supercede those of the respective account, which supercede those of the system. In the case of a limit, however, no more specific value may increase the value beyond that of a more general setting.
When a request specifies a stored query, these precedence rules apply directly, as that stored query text is processed as if it were included in the request.
When, on the other hand, the processor caches queries, the cached instance entrains several of the original effective parameters in its compiled form. As a consequence, when the query is re-executed - whether by intent with new variable bindings or implicity, any compiled-in variations remain unaffected by any properties which change in the subsequent request. This is the case for the following parameters.
repository-id : a repository’s term and statement statistics affect pattern suppression and reordering as well as solution propagation.
dataset: iff a dataset was specified, the respective complement may be changed.
entailment mode : any applicable rules are compiled into the bgp interpretation.
federation mode : the mode determines sub-selects generated for implicit internal and explicit external cross-references.
base-iri: any initial base iri is used to expand qname terms when the query text is parsed.
undefined-variable-behavior: the mode determines the mechamism generated to interpret free variable references.
Where the request protocol indicates “MQTT”, the operation applies to streaming requests over MQTT only.
Revision Window Syntax¶
A request which intends to generate a repetitive result specifies the target revision’s temporal properties as a revision window. (See Revision Window Specification .)
Describe Form¶
A standard concise bounded description comprises the statments which share blank nodes as subject and object terms. In order to include statements which share other terms, specify <urn:dydra:true> as the `describeProperties`parameter.
The describeSubjectDepth refers to the depth to which a term serves to match statement subjects while the describeObjectDepth refers to the depth to which a term serves to match statement objects.
Query Text¶
The query text for a GET request is associated with the request query argument. This may appear as in the request URL as an argument or may be provided as an argument in a request form.
Values Clauses¶
The replacement text for values clauses is provided through arguments in a request form. This may appear as in the request URL as an argument or may be provided as an argument in a request form. The argument syntax corresponds to the datablock production of the SPARQL query syntax.
The correspondence between arguments and clauses in the query test is established on the basis of the clauses’ projection variables. See valuesClauses for an example.