in section Abstract
in section Table of Contents
in section Appendices
in section Introduction
in section Document Outline
in section Document Conventions
in section Namespaces
in section Data Descriptions
in section Result Descriptions
in section Making Simple Queries
in section Writing a Simple Query
in section Multiple Matches
in section Matching RDF Literals
in section Matching Integers
in section Matching Arbitrary Datatypes
in section Matching Language Tags
in section Value Constraints
in section Restricting the values of strings
in section Restricting the values of numbers
in section Term Constraints
in section Querying Reification Vocabulary
in section Blank Nodes in Query Results
in section SPARQL Term Syntax
in section RDF Term Syntax
in section Syntax for IRIs
in section Syntax for Literals
in section Syntax for Query Variables
in section Syntax for Blank Nodes
in section Syntax for Triple Patterns
in section Predicate-Object Lists
in section Object Lists
in section RDF Collections
in section rdf:type
in section Initial Definitions
in section RDF Terms
let I be the set of all IRIs.
let RDF-L be the set of all
RDF Literals
let RDF-B be the set of all
blank nodes in RDF graphs
The set of RDF Terms, RDF-T, is I union RDF-L union RDF-B.
in section Query Variables
A query variable is a member of the set V where V is infinite and disjoint from RDF-T.
in section Triple Patterns
A triple pattern is member
of the set:
(RDF-T union V) x (I union V) x (RDF-T union V)
in section Graph Pattern
A Graph Pattern is one of:
A SPARQL query is a tuple (GP, DS, SM, R) where:
The graph pattern of a query is called the query pattern.
in section Pattern Solutions
A variable substitution is a substitution function from a subset of V, the set of variables, to the set of RDF terms, RDF-T.
A pattern solution, S, is a variable substitution whose domain includes all the variables in V and whose range is a subset of the set of RDF terms.
The result of replacing every member v of V in a graph pattern P by S(v) is written S(P).
If v is not in the domain of S then S(v) is defined to be v.
in section Value Constraints
Definition: Value Constraint
A value constraint is a boolean-valued expression of variables and RDF Terms.
For value constraint C, a solution S matches C if S(C) is true, where S(C) is the boolean-valued expression obtained by substitution of the variables mentioned in C.
in section Basic Graph Patterns
A Basic Graph Pattern is a set of Triple Patterns.
An E-entailment regime is a binary relation between subsets of RDF graphs.
A graph in the range of an E-entailment is called well-formed for the E-entailment.
Two basic graph patterns are equivalent if there is a bijection M between the terms of the triple patterns that maps blank nodes to blank nodes and maps variables, literals and IRIs to themselves, such that a triple ( s, p, o ) is in the first pattern if and only if the triple ( M(s), M(p) M(o) ) is in the second.
in section General Framework
A Scoping Set B is some set of RDF terms.
The Scoping Graph G' for RDF graph G, is an RDF Graph that is graph-equivalent to G
Given an entailment regime E, a basic graph pattern BGP, and RDF graph G, with scoping graph G', then BGP E-matches with pattern solution S on graph G with respect to scoping set B if:
in section SPARQL Basic Graph Pattern Matching
in section Example of Basic Graph Pattern Matching
in section Basic Graph Patterns in the SPARQL Syntax
in section Graph Patterns
in section Group Graph Patterns
Definition: Group Graph Pattern
A group graph pattern GGP is a set of graph patterns, GPi.
A solution of Group Graph Pattern GGP on graph G is any solution S such that, for every element GPi of GGP, S is a solution of GPi.
in section Empty Group Pattern
in section Order of Evaluation
in section Including Optional Values
in section Optional Pattern Matching
in section Constraints in Optional Pattern Matching
in section Multiple Optional Graph Patterns
in section Optional Matching – Formal Definition
An optional graph pattern is a combination of a pair of graph patterns. The second pattern modifies pattern solutions of the first pattern but does not fail matching of the overall optional graph pattern.
If Opt(A, B) is an optional graph pattern, where A and B are graph patterns, then S is a solution of optional graph pattern if S is a pattern solution of A and of B otherwise if S is a solution to A, but not to A and B.
in section Nested Optional Graph Patterns
in section Matching Alternatives
in section Joining Patterns with UNION
in section Union Matching – Formal Definition
Definition: Union Graph Pattern
A union graph pattern is a set of graph patterns GPi.
A union graph pattern matches a graph G with solution S if there is some GPi such that GPi matches G with solution S.
in section RDF Dataset
Definition: RDF Dataset
An RDF dataset is a set:
{ G, (<u1>, G1),
(<u2>, G2), . . .
(<un>, Gn) }
where G and each Gi are graphs, and each
<ui> is an IRI. Each <ui> is
distinct.
G is called the default graph. (<ui>, Gi) are called named graphs.
in section Examples of RDF Datasets
in section Specifying RDF Datasets
in section Specifying the Default Graph
in section Specifying Named Graphs
in section Combining FROM and FROM NAMED
in section Querying the Dataset
If D is a dataset {G, (<u1>, G1), ... }, and P is a graph pattern then S is a pattern solution of RDF Dataset Graph Pattern GRAPH(g, P) if either of:
in section Accessing Graph Names
in section Restricting by Graph IRI
in section Restricting
in section Named and Default Graphs
in section Query Result Forms
in section Solution Sequences and Result Forms
Definition: Solution Sequence
A solution sequence S is a list of solutions.
S = ( S0, S1, . . . , Sn)
Definition: Solution Sequence Modifier
A solution sequence modifier is one of:
If SM is the set of modifiers, and QS is the collection of solutions of a query, we write SM(QS) for the sequence formed by applying SM to the solution sequence formed from QS.
in section ORDER BY
An ordered solution sequence is a solution sequence where the sequence is partially ordered with respect to some ordering condition.
A solution sequence S = ( S0, S1, . . . , Sn) is ordered with respect to an ordering condition C if, for Si, Sj, then i < j if C orders Si before Sj.
in section Projection
Definition: Projection
The projection of solution
QS over a set of variables VS is the solution
project(QS, VS) = { (v, QS(v)) | v in VS }
For a solution sequence S = ( S0, S1,
. . . , Sn) and a finite set of variables VS,
project(S, VS) = ( project(S0, VS), project(S1,
VS), . . . , project(Sn, VS) )
in section DISTINCT
Definition: Distinct Solution Sequence
A Distinct Solution Sequence is a solution sequence in which no two solutions are the same.
Let Sx and Sy be pattern
solutions
then Sx != Sy if there exists variable v such that Sx(v) != Sy(v).
Equivalence of RDF terms is defined in Resource Description Framework (RDF): Concepts and Abstract Syntax [CONCEPTS].
@@This text below is a provisional placeholder. Informally, is ":x :p literal1" equivalent to ":x :p literal2" by the e-entailment regime used?
In addition, two literals are the same if they are the same value under the E-entailment regime as used for basic graph pattern matching for the query.
@@end provisional
For a solution sequence S = ( S1, S2, . . . , Sn), then write set(S) for the set of solution sequences in S.
distinct(S) = (Si | Si != Sj for all i != j) and set(distinct(S)) = set(S)
in section OFFSET
An Offset Solution Sequence with respect to another solution sequence S, is one which starts at a given index of S.
For solution sequence S = (S0, S1, . .
. , Sn), the offset solution sequence
offset(S, k), k >= 0 is
(Sk, Sk+1, . . ., Sn) if n
>= k
(), the empty sequence, if k > n
in section LIMIT
Definition: Limited Solution Sequence
A Limited Solution Sequence has at most a given, fixed number of members.
The limit of solution sequence S = (S0, S1, . . . , Sn) is
limit(S, m) =
(S0, S1, . . . , Sm-1) if n
> m
(S0, S1, . . . , Sn) if n
<= m-1
in section Selecting Variables
Definition: SELECT
Given Q = (GP, DS, SM, SELECT VS) where
then, if QS is the set of solutions formed by matching dataset DS with graph pattern GP, the SELECT result is project(SM(QS), VS)
in section Constructing an Output Graph
in section Templates with Blank Nodes
in section Accessing Graphs in the RDF Dataset
Definition: Graph Template
A graph template is a set of triple patterns.
If T = { tj | j = 1,2 ... m } is a graph template and S is a pattern solution then SC(S, tj) is a set of one RDF triple S(tj) if all variables in tj are in the domain of S. SC(S, tj) is the empty set otherwise.
Write SC(S, T) for the union of SC(S, tj).
Definition: CONSTRUCT
Let Q = (GP, DS, SM, CONSTRUCT T) where
then, if QS is the set of solutions formed by matching dataset DS with graph pattern GP, then write SM(QS) = { Si | i = 1,2 ... n }.
Let Ti be a sequence of sets of triple patterns, such that each Ti is basic graph pattern equivalent to T and no Ti have a blank node in common and no Ti has a blank node in common with any blank node in SM(QS).
Let Ri be the RDF graph formed from SC(Si, Ti).
The CONSTRUCT result is the RDF graph formed by the union of Ri.
in section Solution Modifiers and CONSTRUCT
in section Descriptions of Resources
in section Explicit IRIs
in section Identifying Resources
in section Descriptions of Resources
Definition: DESCRIBE
Let Q = (GP, DS, SM, DESCRIBE V) where
then, if QS is the set of solutions formed by matching
dataset DS with graph pattern GP, the DESCRIBE result is an RDF graph formed by
information relating elements of
distinct(U union project(SM(QS), VS)).
This definition intentionally does not prescribe the nature of the relevant information.
in section Asking "yes or no" questions
Definition: ASK
Let Q = (GP, DS, SM, ASK) where
and QS is the set of solutions formed by matching dataset DS with graph pattern GP then the ASK result is true if SM(QS) is not empty, otherwise it is false.
in section Testing Values
in section Operand Data Types
in section Filter Evaluation
in section Invocation
in section Effective Boolean Value
in section Operator Mapping
in section Operator Extensibility
in section Operators Definitions
in section bound
in section isIRI
in section isBlank
in section isLiteral
in section str
in section lang
in section datatype
in section logical-or
in section logical-and
in section RDFterm-equal
in section sameTerm
in section langMatches
in section regex
in section Constructor Functions
in section Extensible Value Testing
in section SPARQL Grammar
in section SPARQL Query String
in section Codepoint Escape Sequences
in section White Space
in section Comments
in section IRI References
in section Escape sequences in strings
in section Grammar
in section Conformance
in section Security Considerations
in section Collected Formal Definitions
in section Internet Media Type, File Extension and Macintosh File Type (Normative)
in section References
in section Acknowledgements
in section Change Log