-
Field Summary
Modifier and TypeFieldDescriptionstatic final boolean
Indicate whether duplicate select and groupby variables are allowed.static boolean
Default for whether SERVICE is enabled when no context settinghttpServiceAllowed
is found.static final String
IRI for ARQstatic final String
Root of ARQ-defined parameter namesstatic final String
Prefix for ARQ-defined parameter namesstatic final Symbol
Controls bNode labels as <_:...> or not - that is a pseudo URIs.static final Symbol
Enable logging of execution timing.static final Symbol
Enable built-in property functions - also called "magic properties".static final Symbol
Expression evaluation without extension types (e.g. xsd:date, language tags)static final Symbol
If set to true, the parsers will convert undefined prefixes to a URI according to the fixup functionRiotLib.fixupPrefixes
.static final Symbol
Generate the ToList operation in the algebra (as ARQ is stream based, ToList is a non-op).static boolean
Global on/off for all SERVICE calls.static final Symbol
Context key to control hiding non-distinguished variablesstatic final Symbol
HttpClient
to use.static final Symbol
Operation timeout.static final Symbol
Use this symbol to provide aRegistryRequestModifier
that can modify an HTTP request just before it is sent.static final Symbol
Use this symbol to provide aHttpRequestModifier
directly.static final Symbol
Control whether SERVICE processing is allowed.static final Symbol
Use this symbol to provide aQuerySendMode
to use on the HTTP call.static final Symbol
If true, XML result sets will use the bNode label in the result set itself.static final Symbol
Symbol to name java.util.regex regular expression enginestatic final String
Name of the execution loggerstatic final String
Name of the logger for remote HTTP requestsstatic final String
Name of the information logger (only used by jena-text).static final String
The product namestatic final Symbol
Context key controlling whether a DISTINCT-ORDER BY query is done by replacing the distinct with a reduced.static final Symbol
Context key controlling whether the standard optimizer applies constant folding to expressionsstatic final Symbol
Context key controlling whether the standard optimizer applies optimizations to conjunctions (&&) in filters.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to disjunctions (||) in filters.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to equalities in FILTERs.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to IN and NOT IN.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to implicit joins in FILTERs.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to inequalities in FILTERs This optimization is conservative - it does not take place if there is a potential risk of changing query semanticsstatic final Symbol
Context key controlling whether the main query engine moves filters to the "best" place.static final Symbol
Context key controlling whether to do filter placement within BGP and quad blocks.static final Symbol
Context key controlling whether the main query engine moves filters to the "best" place using the more limited and conservative strategy which does not place as many filters Must be explicitly set "true" to operate.static final Symbol
Context key controlling whether the main query engine applies the default optimization transformations.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to implicit left joins.static final Symbol
Context key controlling whether the standard optimizer applies optimizations to the evaluation of joins to favour index joins wherever possiblestatic final Symbol
Context key controlling whether the standard optimizer applies optimizations where by some assignments may be eliminated/inlined into the operators where their values are used only oncestatic final Symbol
Context key controlling whether the standard optimizer aggressively inlines assignments whose values are used only once into operators where those expressions may be evaluated multiple times e.g. orderstatic final Symbol
Context key controlling whether the standard optimizater applies optimizations to joined BGPs to merge them into single BGPs.static final Symbol
Context key controlling whether the standard optimizer applies the optimization to combine stacks of (extend) into one compound operation.static final Symbol
Context key controlling whether a DISTINCT-ORDER BY query is done by applying the ORDER BY after the DISTINCT when default SPARQL semantics usually mean ORDER BY applies before DISTINCT.static final Symbol
Context key controlling whether the main query engine flattens simple paths (e.g.static final Symbol
Context key controlling whether the main query engine does more extensive property path flattening that involves more in-depth manipulation of the SPARQL algebra.static final Symbol
Context key controlling whether the standard optimizer applies table empty promotionstatic final Symbol
Context key controlling whether the standard optimizer applies the optimization to reorder basic graph patterns.static final Symbol
Context key controlling whether an ORDER BY-LIMIT query is done avoiding total sort using an heap.static final Symbol
If true, XML result sets written will contain the graph bNode label See also inputGraphBNodeLabelsstatic final Symbol
Context key controlling whether the main query engine processes property functions.static final Symbol
Set timeout.static final Symbol
Determine which regular expression system to use.static final Symbol
Use this Symbol to allow passing additional query parameters to a SERVICE <IRI> call.static final Symbol
A Long value that specifies the number of bindings (or triples for CONSTRUCT queries) to be stored in memory by sort operations or hash tables before switching to temporary disk files.static final Symbol
Context key for StageBuilder used in BGP compilationstatic final Symbol
Stick exactly to the spec.static final Symbol
Context symbol for the script function allow liststatic Symbol
Context symbol for JavaScript functions as a string value which is evaluated.static Symbol
Context symbol for JavaScript library of functions defined in a file.static final Symbol
Symbol to enable logging of execution.static final String
Java system property to enable JavaScript functionsstatic final Symbol
Threshold for doing a top N sort for ORDER-LIMIT.static final Symbol
Use the SAX parser for XML result sets.static final String
The ARQ versionstatic final Symbol
Symbol to name the Xerces-J regular expression engine -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
Turn on processing of blank node labels in queriesstatic void
enableBlankNodeResultLabels
(boolean val) Turn on/off processing of blank node labels in queriesstatic void
enableOptimizer
(boolean state) Globally switch the default optimizer on and off : Note that storage subsystems may also be applying separately controlled optimizations.static void
enableOptimizer
(Context context, boolean state) Switch the default optimizer on and off for a specific Context.static Context
static org.slf4j.Logger
The execution loggerstatic Explain.InfoLevel
Get the currently global execution logging settingstatic org.slf4j.Logger
The HTTP Request loggerstatic org.slf4j.Logger
The information loggerstatic void
init()
Ensure things have started - applications do not need call this.static boolean
static boolean
isFalseOrUndef
(Symbol symbol) static boolean
static boolean
static boolean
isTrueOrUndef
(Symbol symbol) static void
static void
setExecutionLogging
(Explain.InfoLevel infoLevel) Set execution logging - logging is to logger "org.apache.jena.arq.exec" at level INFO.static void
static void
Set normal mode, including expression evaluationstatic void
setNormalMode
(Context context) Explicitly set the values for normal operation.static void
Set strict mode, including expression evaluationstatic void
setStrictMode
(Context context) Set strict mode for a given Context.static void
static void
-
Field Details
-
logExecName
Name of the execution logger- See Also:
-
logInfoName
Name of the information logger (only used by jena-text).- See Also:
-
logHttpRequestName
Name of the logger for remote HTTP requests- See Also:
-
symLogExec
Symbol to enable logging of execution. Must also set log4j, or other logging system, The logger is "org.apache.jena.arq.exec"
log4j2:logger.arq-exec.name = org.apache.jena.arq.exec logger.arq-exec.level = INFO
See the ARQ Logging Documentation. -
arqIRI
IRI for ARQ- See Also:
-
arqParamNS
Root of ARQ-defined parameter names- See Also:
-
arqSymbolPrefix
Prefix for ARQ-defined parameter names- See Also:
-
strictSPARQL
Stick exactly to the spec. -
constantBNodeLabels
Controls bNode labels as <_:...> or not - that is a pseudo URIs. This does not affect [] or _:a bNodes as variables in queries. -
enablePropertyFunctions
Enable built-in property functions - also called "magic properties". These are properties in triple patterns that need calculation, not matching. See ARQ documentation for more details. rdfs:member and http://jena.apache.org/ARQ/list#member are provided. -
enableExecutionTimeLogging
Enable logging of execution timing. -
outputGraphBNodeLabels
If true, XML result sets written will contain the graph bNode label See also inputGraphBNodeLabels -
inputGraphBNodeLabels
If true, XML result sets will use the bNode label in the result set itself. See also outputGraphBNodeLabels -
queryTimeout
Set timeout. The value of this symbol gives the value of the timeout in milliseconds- A Number; the long value is used
- A string, e.g. "1000", parsed as a number
- A string, as two numbers separated by a comma, e.g. "500,10000" parsed as two numbers
-
stageGenerator
Context key for StageBuilder used in BGP compilation -
hideNonDistiguishedVariables
Context key to control hiding non-distinguished variables -
useSAX
Use the SAX parser for XML result sets. The default is to use StAX for full streaming of XML results. The SAX parser takes a copy of the result set before giving the ResultSet to the calling application. -
allowDuplicateSelectColumns
public static final boolean allowDuplicateSelectColumnsIndicate whether duplicate select and groupby variables are allowed. If false, duplicates are silently suppressed; it's not an error.- See Also:
-
regexImpl
Determine which regular expression system to use. The value of this context entry should be a string or symbol of one of the following: javaRegex : use java.util.regex (support features outside the strict SPARQL regex language) xercesRegex : use the internal XPath regex engine (more compliant) -
javaRegex
Symbol to name java.util.regex regular expression engine -
xercesRegex
Symbol to name the Xerces-J regular expression engine -
serviceParams
Use this Symbol to allow passing additional query parameters to a SERVICE <IRI> call. Parameters need to be grouped by SERVICE <IRI>, a Map<String, Map<String,List<String>>> is assumed. The key of the first map is the SERVICE IRI, the value is a Map which maps the name of a query string parameters to its values.- See Also:
-
httpServiceSendMode
Use this symbol to provide aQuerySendMode
to use on the HTTP call. -
httpRegistryRequestModifer
Use this symbol to provide aRegistryRequestModifier
that can modify an HTTP request just before it is sent. -
httpRequestModifer
Use this symbol to provide aHttpRequestModifier
directly. This takes precedence over registry lookup. -
globalServiceAllowed
public static boolean globalServiceAllowedGlobal on/off for all SERVICE calls.Set
false
to disable SERVICE calls regardless of any context or default setting. -
allowServiceDefault
public static boolean allowServiceDefaultDefault for whether SERVICE is enabled when no context settinghttpServiceAllowed
is found. -
httpServiceAllowed
Control whether SERVICE processing is allowed. If the context of the query execution contains this, and it's set to "false", then SERVICE is not allowed. -
httpQueryClient
HttpClient
to use. -
httpQueryTimeout
Operation timeout. Connection timeout is controlled viaHttpClient
. -
fixupUndefinedPrefixes
If set to true, the parsers will convert undefined prefixes to a URI according to the fixup functionRiotLib.fixupPrefixes
. Normally, unset (which equates to false).- See Also:
-
spillToDiskThreshold
A Long value that specifies the number of bindings (or triples for CONSTRUCT queries) to be stored in memory by sort operations or hash tables before switching to temporary disk files. The value defaults to -1, which will always keep the bindings in memory and never write to temporary files. The amount of memory used will vary based on the size of the bindings. If you are retrieving large literal strings, then you may need to lower the value.Note that for a complex query, several sort or hash operations might be running in parallel; each one will be allowed to retain as many bindings in memory as this value specifies before it starts putting data in temporary files. Also, several running sessions could be doing such operations concurrently. Therefore, the total number of bindings held in memory could be many times this value; it is necessary to keep this fact in mind when choosing the value.
Operations currently affected by this symbol:
ORDER BY, SPARQL Update, CONSTRUCT (optionally)A reasonable value here is 10000.
- See Also:
-
optimization
Context key controlling whether the main query engine applies the default optimization transformations. -
optPathFlatten
Context key controlling whether the main query engine flattens simple paths (e.g.?x :p/:q ?z => ?x :p ?.0 . ?.0 ?q ?z
)Default is "true"
-
optPathFlattenAlgebra
Context key controlling whether the main query engine does more extensive property path flattening that involves more in-depth manipulation of the SPARQL algebra. This must be explicitly enabled and is only used ifoptPathFlatten
is also enabled (which it is by default).Default is
false
-
optFilterPlacement
Context key controlling whether the main query engine moves filters to the "best" place. Default is "true" - filter placement is done. -
optFilterPlacementBGP
Context key controlling whether to do filter placement within BGP and quad blocks. Modifies the effect of optFilterPlacement. Default is "true" - filter placement is pushed into BGPs. -
optFilterPlacementConservative
Context key controlling whether the main query engine moves filters to the "best" place using the more limited and conservative strategy which does not place as many filters Must be explicitly set "true" to operate. Filter placement, viaoptFilterPlacement
must also be active (which it is by default).- See Also:
-
optTopNSorting
Context key controlling whether an ORDER BY-LIMIT query is done avoiding total sort using an heap. Default is "true" - total sort if avoided by default when ORDER BY is used with LIMIT. -
topNSortingThreshold
Threshold for doing a top N sort for ORDER-LIMIT. The default is a limit of 1000. The context value should be aNumber
. -
optDistinctToReduced
Context key controlling whether a DISTINCT-ORDER BY query is done by replacing the distinct with a reduced. Default is "true" - the reduced operator does not need to keep a data structure with all previously seen bindings. -
optOrderByDistinctApplication
Context key controlling whether a DISTINCT-ORDER BY query is done by applying the ORDER BY after the DISTINCT when default SPARQL semantics usually mean ORDER BY applies before DISTINCT. This optimization applies only in a subset of cases unlike the more generaloptDistinctToReduced
optimization.See
TransformOrderByDistinctApplication
for more discussion on exactly when this may apply -
optFilterEquality
Context key controlling whether the standard optimizer applies optimizations to equalities in FILTERs. This optimization is conservative - it does not take place if there is a potential risk of changing query semantics. -
optFilterInequality
Context key controlling whether the standard optimizer applies optimizations to inequalities in FILTERs This optimization is conservative - it does not take place if there is a potential risk of changing query semantics -
optFilterImplicitJoin
Context key controlling whether the standard optimizer applies optimizations to implicit joins in FILTERs. This optimization is conservative - it does not take place if there is a potential risk of changing query semantics. -
optImplicitLeftJoin
Context key controlling whether the standard optimizer applies optimizations to implicit left joins. This optimization is conservative - it does not take place if there is a potential risk of changing query semantics. -
optExprConstantFolding
Context key controlling whether the standard optimizer applies constant folding to expressionsBy default, this transformation is applied.
-
optFilterConjunction
Context key controlling whether the standard optimizer applies optimizations to conjunctions (&&) in filters.By default, this transformation is applied.
-
optFilterExpandOneOf
Context key controlling whether the standard optimizer applies optimizations to IN and NOT IN.By default, this transformation is applied.
-
optFilterDisjunction
Context key controlling whether the standard optimizer applies optimizations to disjunctions (||) in filters.By default, this transformation is applied.
-
optPromoteTableEmpty
Context key controlling whether the standard optimizer applies table empty promotion -
optIndexJoinStrategy
Context key controlling whether the standard optimizer applies optimizations to the evaluation of joins to favour index joins wherever possible -
optInlineAssignments
Context key controlling whether the standard optimizer applies optimizations where by some assignments may be eliminated/inlined into the operators where their values are used only onceBy default, this transformation is not applied.
-
optInlineAssignmentsAggressive
Context key controlling whether the standard optimizer aggressively inlines assignments whose values are used only once into operators where those expressions may be evaluated multiple times e.g. orderThis is modifier to
optInlineAssignments
. -
optMergeBGPs
Context key controlling whether the standard optimizater applies optimizations to joined BGPs to merge them into single BGPs.By default, this transformation is applied.
-
optMergeExtends
Context key controlling whether the standard optimizer applies the optimization to combine stacks of (extend) into one compound operation. Ditto (assign).By default, this transformation is applied.
-
optReorderBGP
Context key controlling whether the standard optimizer applies the optimization to reorder basic graph patterns. This is an algebra optimizer step. Because it interacts with filter placement, it is worth doing even though there are later reorderings. -
propertyFunctions
Context key controlling whether the main query engine processes property functions.By default, this is applied.
-
extensionValueTypes
Expression evaluation without extension types (e.g. xsd:date, language tags) -
systemPropertyScripting
Java system property to enable JavaScript functions- See Also:
-
symCustomFunctionScriptAllowList
Context symbol for the script function allow list -
symJavaScriptFunctions
Context symbol for JavaScript functions as a string value which is evaluated.arq:js-functions
. -
symJavaScriptLibFile
Context symbol for JavaScript library of functions defined in a file.arq:js-library
. -
generateToList
Generate the ToList operation in the algebra (as ARQ is stream based, ToList is a non-op). Default is not to do so. Strict mode will also enable this. -
NAME
The product name- See Also:
-
VERSION
The ARQ version
-
-
Constructor Details
-
ARQ
public ARQ()
-
-
Method Details
-
getExecLogger
public static org.slf4j.Logger getExecLogger()The execution logger -
getInfoLogger
public static org.slf4j.Logger getInfoLogger()The information logger -
getHttpRequestLogger
public static org.slf4j.Logger getHttpRequestLogger()The HTTP Request logger -
getExecutionLogging
Get the currently global execution logging setting -
setExecutionLogging
Set execution logging - logging is to logger "org.apache.jena.arq.exec" at level INFO. An appropriate logging configuration is also required. -
enableBlankNodeResultLabels
public static void enableBlankNodeResultLabels()Turn on processing of blank node labels in queries -
enableBlankNodeResultLabels
public static void enableBlankNodeResultLabels(boolean val) Turn on/off processing of blank node labels in queries -
enableOptimizer
public static void enableOptimizer(boolean state) Globally switch the default optimizer on and off : Note that storage subsystems may also be applying separately controlled optimizations. -
enableOptimizer
Switch the default optimizer on and off for a specific Context. Note that storage subsystems may also be applying separately controlled optimizations. -
setStrictMode
public static void setStrictMode()Set strict mode, including expression evaluation -
setStrictMode
Set strict mode for a given Context. Does not influence expression evaluation because NodeValues are controlled globally, not per context. -
isStrictMode
public static boolean isStrictMode() -
setNormalMode
public static void setNormalMode()Set normal mode, including expression evaluation -
setNormalMode
Explicitly set the values for normal operation. Does not influence expression evaluation. -
init
public static void init()Ensure things have started - applications do not need call this. The method is public so any part of ARQ can call it. -
getContext
-
set
-
setTrue
-
setFalse
-
unset
-
isTrue
-
isFalse
-
isTrueOrUndef
-
isFalseOrUndef
-