Package com.bigdata.rdf.sparql.ast

This package contains an Abstract Syntax Tree which provides an intermediate translation target for SPARQL parsers.

See:
          Description

Interface Summary
ASTBase.Annotations  
ASTContainer.Annotations  
BindingsClause.Annotations  
CreateGraph.Annotations  
DropGraph.Annotations  
FunctionRegistry.Annotations  
FunctionRegistry.Factory An interface for creating IValueExpressions from a function URI and its arguments.
FunctionRegistry.GroupConcatFactory.Annotations  
GraphPatternGroup.Annotations  
IBindingProducerNode A marker interface for IQueryNodes which are capable of producing bindings.
IDataSetNode Interface for data set declarations.
IDataSetNode.Annotations  
IGraphPatternContainer An interface for AST nodes which have a GraphPatternGroup annotation.
IGraphPatternContainer.Annotations  
IGroupMemberNode An interface for an IQueryNode which may appear in an IGroupNode.
IGroupNode<E extends IGroupMemberNode> A type of query node that groups a set of query nodes together.
IJoinNode A marker interface for any kind of AST Node which joins stuff.
IJoinNode.Annotations  
INamedSolutionSet Interface and annotations for named solution sets.
INamedSolutionSet.Annotations  
IPrefixDecls Interface for prefix declarations.
IPrefixDecls.Annotations  
IProjectionDecl Interface and annotations for AST nodes which have a ProjectionNode.
IProjectionDecl.Annotations  
IQueryNode This is the basic interface for any AST operator that appears in the query plan.
ISolutionSetStats A set of interesting statistics on a solution set.
IStatementContainer Marker interface for things which either are statements (or statement patterns) or contain statements (or statement pattern).
IValueExpressionMetadata Abstract base class for AST nodes which embed value expressions and hence must be able to report certain metadata about those value expressions to the query planner.
IValueExpressionNode An AST node which models a value expression.
IValueExpressionNodeContainer A node which is a container for a IValueExpressionNode.
NamedSubqueryInclude.Annotations  
NamedSubqueryRoot.Annotations  
QuadsDataOrNamedSolutionSet.Annotations  
QueryBase.Annotations  
QueryHints Query hints are directives understood by the SPARQL end point.
QueryNodeBase.Annotations  
QueryRoot.Annotations  
RangeNode.Annotations  
StatementPatternNode.Annotations  
SubqueryRoot.Annotations  
UpdateRoot.Annotations  
VarNode.Annotations  
 

Class Summary
AbstractFromToGraphManagement Any of the operations which has a FROM and/or TO graph.
AbstractGraphDataUpdate Abstract base class for the INSERT DATA and DELETE DATA operations.
AbstractOneGraphManagement Any of the operations which acts on a single target graph.
AbstractStatementContainer<E extends IStatementContainer> Recursive container for ground StatementPatternNodes.
AddGraph Graph management operation inserts all data from one graph into another.
AssignmentNode AST node models the assignment of a value expression to a variable.
AST2SPARQLUtil Utility class for externalizing TermNodes.
ASTBase Base class for the AST.
ASTContainer A super container for the AST.
ASTUtil Some utility methods for AST/IV conversions.
BindingsClause The solutions declared by a BINDINGS clause.
ClearGraph The CLEAR operation removes all the triples in the specified graph(s) in the Graph Store.
CompiledSolutionSetStats Class models the compiled statistics based on the observed solutions.
ComputedMaterializationRequirement Computed INeedsMaterialization metadata for an IValueExpression.
ConstantNode Used to represent a constant in the AST.
ConstructNode A template for the construction of one or more graphs based on the solutions projected by a query.
CopyGraph The COPY operation is a shortcut for inserting all data from an input graph into a destination graph.
CreateGraph This operation creates a graph in the Graph Store (this operation is a NOP for bigdata).
DatasetNode AST node models a SPARQL default graph and/or named graph data set.
DeleteData The DELETE DATA operation removes some triples, given inline in the request, if the respective graphs in the Graph Store contain those:
DeleteInsertGraph The DELETE/INSERT operation can be used to remove or add triples from/to the Graph Store based on bindings for a query pattern specified in a WHERE clause:
DropGraph The DROP operation removes the specified graph(s) from the Graph Store.
DummyConstantNode The dummy constant node is used to represent constants in the AST that do not actually exist in the database.
EmptySolutionSetStats An object which mocks the statistics for a single empty solution set.
ExistsNode A special function node for modeling EXISTS.
FilterNode AST node models a value expression which imposes a constraint.
FunctionNode AST node for anything which is neither a constant nor a variable, including math operators, string functions, etc.
FunctionRegistry Registry for built-in and external SPARQL functions.
FunctionRegistry.CastFactory  
FunctionRegistry.CompareFactory  
FunctionRegistry.DateFactory  
FunctionRegistry.DigestFactory  
FunctionRegistry.ExistsFactory Factory for EXISTS() and NOT EXISTS().
FunctionRegistry.GroupConcatFactory  
FunctionRegistry.InFactory NumericExpression IN ArgList is an infix operator.
FunctionRegistry.MathFactory  
FunctionRegistry.NumericFactory  
FunctionRegistry.SameTermFactory  
GlobalAnnotations A glue class for reporting the namespace of the lexicon relation and the timestamp of the view of the lexicon relation through the function bops.
GraphManagement A Graph Management operation.
GraphPatternGroup<E extends IGroupMemberNode> Join group or union.
GraphUpdate A Graph Update operation.
GroupByNode AST node for a GROUP BY clause.
GroupMemberNodeBase<E extends IGroupMemberNode> Anything which can appear in an IGroupNode.
GroupMemberValueExpressionNodeBase  
GroupNodeBase<E extends IGroupMemberNode> Base class for AST group nodes.
HavingNode AST node for a HAVING clause.
InsertData The INSERT DATA operation adds some triples, given inline in the request, into the Graph Store:
JoinGroupNode An optional or non-optional collection of query nodes that run together in a group.
JoinSetUtil Utility class for join analysis.
JoinSetUtil.VertexJoinSet A collection of vertices and the join variables they bind.
LoadGraph The LOAD operation reads an RDF document from a IRI and inserts its triples into the specified graph in the Graph Store.
MoveGraph The MOVE operation is a shortcut for moving all data from an input graph into a destination graph.
NamedSubqueriesNode A node whose children are a list of NamedSubqueryRoots.
NamedSubqueryInclude An AST node which provides a reference in an IGroupNode and indicates that a named solution set should be joined with the solutions in the group.
NamedSubqueryRoot A subquery with a named solution set which can be referenced from other parts of the query.
NotExistsNode A special function node for modeling NOT EXISTS.
OrderByExpr An IValueExpressionNode paired with a flag to indicating an ascending or descending sort order.
OrderByNode AST node models an ORDER BY clause.
ProjectionNode AST node modeling projected value expressions.
QuadData Recursive container for ground StatementPatternNodes.
QuadsDataOrNamedSolutionSet An AST node which models either QuadData or a named solution set in support of the INSERT clause and DELETE clause of a DeleteInsertGraph operations.
QueryBase Contains the projection clause, where clause, and solution modified clauses.
QueryNodeBase AST node base class.
QueryNodeListBaseNode<E extends IQueryNode> Base class for AST nodes which model an ordered list of children.
QueryRoot The top-level Query.
RangeNode It's a value expression because it does eventually evaluate to a value - a Range value.
SliceNode AST node for a SLICE (offset/limit).
SolutionModifierBase AST node for solution modifiers (SLICE, ORDER BY, GROUP BY)
SolutionSetStats Deprecated. by SolutionSetStatserator since the latter can compute all of the same information can be used over streaming solution sets.
SolutionSetStatserator Class populates an ISolutionSetStats object from a stream of solutions.
SolutionSetStatsFilter Class may be used to collect statistics from a stream of solutions.
StatementPatternNode A node in the AST representing a statement pattern.
StaticAnalysis Methods for static analysis of a query.
StaticAnalysis_CanJoin Class provides methods to determine if two IJoinNodes can join on a shared variable and if they can join on an variable which is indirectly shared through constraints which can be attached to that join.
StaticAnalysisBase Base class for static analysis.
SubqueryBase AST node for subqueries.
SubqueryFunctionNodeBase A special function node for modeling value expression nodes which are evaluated against an inner graph expression, such as EXISTS and NOT EXISTS.
SubqueryRoot A SPARQL 1.1 style subquery.
TermNode Used to represent a variable or constant in the AST (a term in a statement pattern for example).
UnionNode A special kind of group IGroupNode that represents the sparql union operator.
Update A SPARQL Update operation.
UpdateRoot The top level container for a sequence of UPDATE operations.
ValueExpressionListBaseNode<E extends IValueExpressionNode> Base class for AST nodes which model an ordered list of value expressions.
ValueExpressionNode AST node for value expressions.
VarNode Used to represent a variable in the AST.
 

Enum Summary
QueryOptimizerEnum The known query optimizers.
QueryType Type safe enumeration reporting the high level type of the query.
UpdateType Typesafe enumeration for SPARQL Graph Update and Graph Management operations.
 

Package com.bigdata.rdf.sparql.ast Description

This package contains an Abstract Syntax Tree which provides an intermediate translation target for SPARQL parsers. This makes it relatively easy to integrate different SPARQL parsers with bigdata. The resulting AST is translated into a bigdata evaluation plan (bops) which is then executed on the query engine.

QueryRoot extends GroupNodeBase implements IGroupNode
-Dataset
-Distinct
-Order by expressions
-Limit / offset

Tuple Expr: Join Group, Union, Statement Pattern, Constraint
TupleExpr = IBindingsProducerNode?
ValueExpr = IValueExpressionNode?

Only an IGroupNode can have children (Union, Join Group), 
and those children will be IBindingsProducerNodes 
(other groups, statements patterns, constraints)

IGroupNode:
-children: IBindingsProducerNode[]
-group ID?

IBindingsProducerNode:
-parent: IGroupNode

abstractBindingsProducerNode
-setParent(IGroupNode)

abstract GroupNodeBase Iterable
-addChild(IBindingsProducerNode)
-removeChild(IBindingsProducerNode)
-iterator()

Join Group extends ASTNode implements IBindingsProducerNode
-Optional
-Statement patterns
-Constraints
-Sub groups

Union extends ASTNode implements IBindingsProducerNode
-Sub queries can be groups or statement patterns, but not constraints

Statement Pattern extends ASTNode implements IBindingsProducerNode
-optional: boolean
-scope: Sesame Scope object
-S, P, O, C: TermNode

Constraint extends ASTNode implements IBindingsProducerNode
-argument: IValueExpressionNode

Value Expr
-Unary: IsBNode, IsLiteral, IsResource, IsURI, Datatype, Label, Lang, Str, Not
-Binary: And, Or, Compare, SameTerm, LangMatches, Math, Regex
-Term: Var, Constant



Copyright © 2006-2012 SYSTAP, LLC. All Rights Reserved.