com.hp.hpl.jena.query
Class ARQ

java.lang.Object
  extended by com.hp.hpl.jena.query.ARQ

public class ARQ
extends Object

ARQ - miscellaneous settings


Field Summary
static boolean allowDuplicateSelectColumns
          Indicate whether duplicate select and groupby variables are allowed.
static String arqIRI
          IRI for ARQ
static String arqParamNS
          Root of ARQ-defined parameter names
static String arqSymbolPrefix
          Prefix for ARQ-defined parameter names
static String BUILD_DATE
          The date and time at which this release was built
static Symbol constantBNodeLabels
          Controls bNode labels as <_:...> or not - that is a pseudo URIs.
static Symbol enableExecutionTimeLogging
          Enable logging of execution timing.
static Symbol enablePropertyFunctions
          Enable built-in property functions - also called "magic properties".
static Symbol extensionValueTypes
          Expression evaluation without extension types (e.g.
static Symbol generateToList
          Generate the ToList operation in the algebra (as ARQ is stream based, ToList is a non-op).
static Symbol hideNonDistiguishedVariables
          Context key to control hiding non-distinuished variables
static Symbol inputGraphBNodeLabels
          If true, XML result sets will use the bNode label in the result set itself.
static Symbol javaRegex
          Symbol to name java.util.regex regular expression engine
static String logExecName
          Name of the execution logger
static String logHttpRequestName
          Name of the logger for remote HTTP requests
static String logInfoName
          Name of the information logger
static String NAME
          The product name
static Symbol optDistinctToReduced
          Context key controlling whether a DISTINCT-ORDER BY query is done by replacing the distinct with a reduced.
static Symbol optExprConstantFolding
          Context key controlling whether the standard optimizer applies constant folding to expressions
static Symbol optFilterConjunction
          Context key controlling whether the standard optimizer applies optimizations to conjunctions (&&) in filters.
static Symbol optFilterDisjunction
          Context key controlling whether the standard optimizer applies optimizations to disjunctions (||) in filters.
static Symbol optFilterEquality
          Context key controlling whether the standard optimizer applies optimizations to equalities in FILTERs.
static Symbol optFilterExpandOneOf
          Context key controlling whether the standard optimizer applies optimizations to IN and NOT IN.
static Symbol optFilterImplicitJoin
          Context key controlling whether the standard optimizer applies optimizations to implicit joins in FILTERs.
static Symbol 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
static Symbol optFilterPlacement
          Context key controlling whether the main query engine moves filters to the "best" place.
static Symbol optFilterPlacementBGP
          Context key controlling whether to do filter placement within BGP and quad blocks.
static Symbol 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.
static Symbol optimization
          Context key controlling whether the main query engine applies the default optimization transformations.
static Symbol optImplicitLeftJoin
          Context key controlling whether the standard optimizer applies optimizations to implicit left joins.
static Symbol optIndexJoinStrategy
          Context key controlling whether the standard optimizer applies optimizations to the evaluation of joins to favour index joins wherever possible
static Symbol optMergeBGPs
          Context key controlling whether the standard optimizater applies optimizations to joined BGPs to merge them into single BGPs
static Symbol 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.
static Symbol optPathFlatten
          Context key controlling whether the main query engine flattens simple paths (e.g.
static Symbol optPromoteTableEmpty
          Context key controlling whether the standard optimizer applies table empty promotion
static Symbol optTermStrings
          Context key for a declaration that xsd:strings and simple literals are different in the storage.
static Symbol optTopNSorting
          Context key controlling whether an ORDER BY-LIMIT query is done avoiding total sort using an heap.
static Symbol outputGraphBNodeLabels
          If true, XML result sets written will contain the graph bNode label See also inputGraphBNodeLabels
static String PATH
          The root package name for ARQ
static Symbol propertyFunctions
          Context key controlling whether the main query engine
static Symbol queryTimeout
          Set timeout.
static Symbol regexImpl
          Determine which regular expression system to use.
static Symbol serviceParams
          Use this Symbol to allow passing additional query parameters to a SERVICE call.
static Symbol 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.
static Symbol stageGenerator
          Context key for StageBuilder used in BGP compilation
static Symbol strictSPARQL
          Stick exactly to the spec.
static Symbol symLogExec
          Symbol to enable logging of execution.
static Symbol useSAX
          Use the SAX parser for XML result sets.
static String VERSION
          The full name of the current ARQ version
static Symbol xercesRegex
          Symbol to name the Xerces-J regular expression engine
 
Constructor Summary
ARQ()
           
 
Method Summary
static void enableBlankNodeResultLabels()
          Turn on processing of blank node labels in queries
static void enableBlankNodeResultLabels(boolean val)
          Turn on/off processing of blank node labels in queries
static 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 getContext()
           
static org.slf4j.Logger getExecLogger()
          The execution logger
static Explain.InfoLevel getExecutionLogging()
          Get the currently global execution logging setting
static org.slf4j.Logger getHttpRequestLogger()
          The HTTP Request logger
static org.slf4j.Logger getInfoLogger()
          The information logger
static void init()
          Ensure things have started - applications do not need call this.
static boolean isFalse(Symbol symbol)
           
static boolean isFalseOrUndef(Symbol symbol)
           
static boolean isStrictMode()
           
static boolean isTrue(Symbol symbol)
           
static boolean isTrueOrUndef(Symbol symbol)
           
static void set(Symbol symbol, boolean value)
           
static void setExecutionLogging(Explain.InfoLevel infoLevel)
          Set execution logging - logging is to logger "com.hp.hpl.jena.arq.exec" at level INFO.
static void setFalse(Symbol symbol)
           
static void setNormalMode()
          Set normal mode, including expression evaluation
static void setNormalMode(Context context)
          Explicitly set the values for normal operation.
static void setStrictMode()
          Set strict mode, including expression evaluation
static void setStrictMode(Context context)
          Set strict mode for a given Context.
static void setTrue(Symbol symbol)
           
static void unset(Symbol symbol)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logExecName

public static final String logExecName
Name of the execution logger

See Also:
Constant Field Values

logInfoName

public static final String logInfoName
Name of the information logger

See Also:
Constant Field Values

logHttpRequestName

public static final String logHttpRequestName
Name of the logger for remote HTTP requests

See Also:
Constant Field Values

symLogExec

public static final Symbol symLogExec
Symbol to enable logging of execution. Must also set log4j, or other logging system, for logger "com.hp.hpl.jena.sparql.exec" e.g. log4j.properties -- log4j.logger.com.hp.hpl.jena.sparql.exec=INFO See the ARQ Logging Documentation.


arqIRI

public static final String arqIRI
IRI for ARQ

See Also:
Constant Field Values

arqParamNS

public static final String arqParamNS
Root of ARQ-defined parameter names

See Also:
Constant Field Values

arqSymbolPrefix

public static final String arqSymbolPrefix
Prefix for ARQ-defined parameter names

See Also:
Constant Field Values

strictSPARQL

public static final Symbol strictSPARQL
Stick exactly to the spec.


constantBNodeLabels

public static final Symbol constantBNodeLabels
Controls bNode labels as <_:...> or not - that is a pseudo URIs. This does not affect [] or _:a bNodes as variables in queries.


enablePropertyFunctions

public static final Symbol 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.hpl.hp.com/ARQ/list#member are provided.


enableExecutionTimeLogging

public static final Symbol enableExecutionTimeLogging
Enable logging of execution timing.


outputGraphBNodeLabels

public static final Symbol outputGraphBNodeLabels
If true, XML result sets written will contain the graph bNode label See also inputGraphBNodeLabels


inputGraphBNodeLabels

public static final Symbol inputGraphBNodeLabels
If true, XML result sets will use the bNode label in the result set itself. See also outputGraphBNodeLabels


queryTimeout

public static final Symbol queryTimeout
Set timeout. The value of this symbol gives thevalue of the timeout in milliseconds

See Also:
QueryExecution.setTimeout(long), QueryExecution.setTimeout(long,long)

stageGenerator

public static final Symbol stageGenerator
Context key for StageBuilder used in BGP compilation


hideNonDistiguishedVariables

public static final Symbol hideNonDistiguishedVariables
Context key to control hiding non-distinuished variables


useSAX

public static final Symbol 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 allowDuplicateSelectColumns
Indicate whether duplicate select and groupby variables are allowed. If false, duplicates are silently supressed; it's not an error.

See Also:
Constant Field Values

regexImpl

public static final Symbol 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

public static final Symbol javaRegex
Symbol to name java.util.regex regular expression engine


xercesRegex

public static final Symbol xercesRegex
Symbol to name the Xerces-J regular expression engine


serviceParams

public static final Symbol serviceParams
Use this Symbol to allow passing additional query parameters to a SERVICE call. Parameters need to be grouped by SERVICE , a Map>> 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:
Service

spillToDiskThreshold

public static final Symbol 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)

TODO: Give a reasonable suggested value here. 10,000?

See Also:
JENA-119

optimization

public static final Symbol optimization
Context key controlling whether the main query engine applies the default optimization transformations.


optPathFlatten

public static final Symbol 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"


optFilterPlacement

public static final Symbol optFilterPlacement
Context key controlling whether the main query engine moves filters to the "best" place. Default is "true" - filter placement is done.


optFilterPlacementBGP

public static final Symbol optFilterPlacementBGP
Context key controlling whether to do filter placement within BGP and quad blocks. Modies the effect of optFilterPlacement. Default is "true" - filter placement is pushed into BGPs.


optFilterPlacementConservative

public static final Symbol 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, via optFilterPlacement must also be active (which it is by default).

See Also:
optFilterPlacement

optTopNSorting

public static final Symbol 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.


optDistinctToReduced

public static final Symbol 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

public static final Symbol 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 general optDistinctToReduced optimization.

See TransformOrderByDistinctApplication for more discussion on exactly when this may apply


optFilterEquality

public static final Symbol 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

public static final Symbol 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

public static final Symbol 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

public static final Symbol 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.


optTermStrings

public static final Symbol optTermStrings
Context key for a declaration that xsd:strings and simple literals are different in the storage. They are the same value in a memory store. When in doubt, xsd:strings are assumed to be the same value as simple literals


optExprConstantFolding

public static final Symbol optExprConstantFolding
Context key controlling whether the standard optimizer applies constant folding to expressions


optFilterConjunction

public static final Symbol optFilterConjunction
Context key controlling whether the standard optimizer applies optimizations to conjunctions (&&) in filters.


optFilterExpandOneOf

public static final Symbol optFilterExpandOneOf
Context key controlling whether the standard optimizer applies optimizations to IN and NOT IN.


optFilterDisjunction

public static final Symbol optFilterDisjunction
Context key controlling whether the standard optimizer applies optimizations to disjunctions (||) in filters.


optPromoteTableEmpty

public static final Symbol optPromoteTableEmpty
Context key controlling whether the standard optimizer applies table empty promotion


optIndexJoinStrategy

public static final Symbol optIndexJoinStrategy
Context key controlling whether the standard optimizer applies optimizations to the evaluation of joins to favour index joins wherever possible


optMergeBGPs

public static final Symbol optMergeBGPs
Context key controlling whether the standard optimizater applies optimizations to joined BGPs to merge them into single BGPs


propertyFunctions

public static final Symbol propertyFunctions
Context key controlling whether the main query engine


extensionValueTypes

public static final Symbol extensionValueTypes
Expression evaluation without extension types (e.g. xsd:date, language tags)


generateToList

public static final Symbol 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.


PATH

public static final String PATH
The root package name for ARQ

See Also:
Constant Field Values

NAME

public static final String NAME
The product name

See Also:
Constant Field Values

VERSION

public static final String VERSION
The full name of the current ARQ version


BUILD_DATE

public static final String BUILD_DATE
The date and time at which this release was built

Constructor Detail

ARQ

public ARQ()
Method Detail

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

public static Explain.InfoLevel getExecutionLogging()
Get the currently global execution logging setting


setExecutionLogging

public static void setExecutionLogging(Explain.InfoLevel infoLevel)
Set execution logging - logging is to logger "com.hp.hpl.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

public static void enableOptimizer(Context context,
                                   boolean state)
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

public static void setStrictMode(Context context)
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

public static void setNormalMode(Context context)
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. Note the final static initializer call


getContext

public static Context getContext()

set

public static void set(Symbol symbol,
                       boolean value)

setTrue

public static void setTrue(Symbol symbol)

setFalse

public static void setFalse(Symbol symbol)

unset

public static void unset(Symbol symbol)

isTrue

public static boolean isTrue(Symbol symbol)

isFalse

public static boolean isFalse(Symbol symbol)

isTrueOrUndef

public static boolean isTrueOrUndef(Symbol symbol)

isFalseOrUndef

public static boolean isFalseOrUndef(Symbol symbol)


Licenced under the Apache License, Version 2.0