The JSON-LD definition of the WOQL language.
This is the WOQL schema. It gives a complete specification of the syntax of the WOQL query language. This allows WOQL queries to be checked for syntactic correctness, helps to prevent errors and detect conflicts in merge of queries, and allows the storage and retrieval of queries so that queries can be associated with data products.
Authored by: Gavin Mendel-Gleason
Syntax is listed in alphabetical order.
Add a (terminal) edge with a data value.
Class: AddData
Super class: Query
Properties:
Add an edge which links between nodes in the graph.
Class: AddLink
Super class: Query
Properties:
Specify an edge to add to the graph.
Class: AddTriple
Super class: Query
Properties:
Specify an edge pattern with data value which was added in *this* commit*.
Class: AddedData
Super class: Query
Properties:
Specify an edge pattern which links between nodes at *this* commit.
Class: AddedLink
Super class: Query
Properties:
Specify an edge pattern which was *added* at *this commit*.
Class: AddedTriple
Super class: Query
Properties:
A conjunction of queries which must all have a solution.
Class: And
Super class: Query
Properties:
An abstract class specifying the AST super-class of all arithemtic expressions. It is a subdocument
Class: ArithmeticExpression
A variable or node. It is a subdocument
Class: ArithmeticValue
Super class: ArithmeticExpression
Properties:
Description pending.
Class: Column
Concatenate a list of strings.
Class: Concatenate
Super class: Query
Properties:
Counts the number of solutions of a query.
Class: Count
Super class: Query
Properties:
Specify an edge pattern which is terminal, and provides a data value association.
Class: Data
Super class: Query
Properties:
A variable or node. It is a subdocument
Class: DataValue
Properties:
Delete a document from the graph.
Class: DeleteDocument
Super class: Query
Properties:
Delete an edge linking nodes.
Class: DeleteLink
Super class: Query
Properties:
Specify an edge pattern to remove from the graph.
Class: DeleteTriple
Super class: Query
Properties:
An edge pattern specifying a link beween nodes deleted *at this commit*.
Class: DeletedLink
Super class: Query
Properties:
Specify an edge pattern which was *deleted* at *this commit*.
Class: DeletedTriple
Super class: Query
Properties:
Ensure variables listed result in distinct solutions.
Class: Distinct
Super class: Query
Properties:
Integer divide two numbers.
Class: Div
Super class: ArithmeticExpression
Properties:
Divide two numbers.
Class: Divide
Super class: ArithmeticExpression
Properties:
Extract the value of a key in a bound document.
Class: Dot
Super class: Query
Properties:
True whenever 'left' is the same as 'right'. Performs unification.
Class: Equals
Super class: Query
Properties:
Evaluate an arithmetic expression to obtain a result.
Class: Eval
Super class: Query
Properties:
Exponentiate a number.
Class: Exp
Super class: ArithmeticExpression
Properties:
Find the integral part of a number.
Class: Floor
Super class: ArithmeticExpression
Properties:
Description pending.
Class: FormatType
Change the default read graph (between instance/schema).
Class: From
Super class: Query
Properties:
Description pending.
Class: Get
Super class: Query
Predicate determining if one thing is greater than another according to natural ordering.
Class: Greater
Super class: Query
Properties:
Group a query into a list with each element of the list specified by 'template' using a given variable set for the group.
Class: GroupBy
Super class: Query
Properties:
Generates a key identical to those generated automatically by 'HashKey' specifications.
Class: HashKey
Super class: Query
Properties:
A conditional which runs the then clause for every success from the test clause, otherwise runs the else clause.
Class: If
Super class: Query
Properties:
Attempts to perform all side-effecting operations immediately. Can have strange non-backtracking effects but can also increase performance. Use at your own risk.
Class: Immediately
Super class: Query
Properties:
Description pending.
Class: Indicator
Change the default write graph (between instance/schema).
Class: Into
Super class: Query
Properties:
A predicate to traverse *backwards*.
Class: InversePathPredicate
Super class: PathPattern
Properties:
Test (or generate) the type of an element.
Class: IsA
Super class: Query
Properties:
Join a list of strings using 'separator'.
Class: Join
Super class: Query
Properties:
The length of a list.
Class: Length
Super class: Query
Properties:
Predicate determining if one thing is less than another according to natural ordering.
Class: Less
Super class: Query
Properties:
Generates a key identical to those generated automatically by 'LexicalKey' specifications.
Class: LexicalKey
Super class: Query
Properties:
Distance between strings, similar to a Levenstein distance.
Class: Like
Super class: Query
Properties:
Limit a query to a particular maximum number of solutions specified by 'limit'. Can be used with start to perform paging.
Class: Limit
Super class: Query
Properties:
Specify an edge pattern which is not terminal, but a link between objects.
Class: Link
Super class: Query
Properties:
Lowercase a string.
Class: Lower
Super class: Query
Properties:
Generate or test every element of a list.
Class: Member
Super class: Query
Properties:
Subtract two numbers.
Class: Minus
Super class: ArithmeticExpression
Properties:
A named parametric query which names a specific query for later retrieval and re-use and allows the specification of bindings for a specific set of variables in the query.
Class: NamedParametricQuery
Properties:
A named query names a specific query for later retrieval and re-use.
Class: NamedQuery
Properties:
A variable or node. It is a subdocument
Class: NodeValue
Properties:
The negation of a query. Provides no solution bindings, but will succeed if its sub-query fails.
Class: Not
Super class: Query
Properties:
Obtains exactly one solution from a query. Simliar to a limit of 1.
Class: Once
Super class: Query
Properties:
A query which will succeed (without bindings) even in the case of failure.
Class: Optional
Super class: Query
Properties:
A disjunction of queries any of which can provide a solution.
Class: Or
Super class: Query
Properties:
Description pending.
Class: Order
Orders query results according to an ordering specification.
Class: OrderBy
Super class: Query
Properties:
The order template, consisting of the variable and ordering direction. It is a subdocument
Class: OrderTemplate
Properties:
Pad a string.
Class: Pad
Super class: Query
Properties:
Find a path through the graph according to 'pattern'. This 'pattern' is a regular graph expression which avoids cycles.
Class: Path
Super class: Query
Properties:
A set of patterns in which each of the patterns can result in objects starting from our current subject set.
Class: PathOr
Super class: PathPattern
Properties:
Description pending.
Class: PathPattern
The path pattern specified by 'plus' must hold one or more times in succession.
Class: PathPlus
Super class: PathPattern
Properties:
A predicate to traverse.
Class: PathPredicate
Super class: PathPattern
Properties:
A sequence of patterns in which each of the patterns in the list must result in objects which are subjects of the next pattern in the list.
Class: PathSequence
Super class: PathPattern
Properties:
The path pattern specified by 'star' may hold zero or more times in succession.
Class: PathStar
Super class: PathPattern
Properties:
The path pattern specified by 'times' may hold 'from' to 'to' times in succession.
Class: PathTimes
Super class: PathPattern
Properties:
Add two numbers.
Class: Plus
Super class: ArithmeticExpression
Properties:
Description pending.
Class: Put
Super class: Query
An abstract class which represents an arbitrary query AST. It is a subdocument
Class: Query
Description pending.
Class: QueryResource
Generates a key identical to those generated automatically by 'RandomKey' specifications.
Class: RandomKey
Super class: Query
Properties:
Read a full document from an identifier.
Class: ReadDocument
Super class: Query
Properties:
Test a string against a PCRE style regex pattern.
Class: Regexp
Super class: Query
Properties:
Select specific variables from a query to return.
Class: Select
Super class: Query
Properties:
Size of a database in magic units (bytes?).
Class: Size
Super class: Query
Properties:
Description pending.
Class: Source
Split a string.
Class: Split
Super class: Query
Properties:
Start a query at the nth solution specified by 'start'. Allows resumption and paging of queries.
Class: Start
Super class: Query
Properties:
Finds the boundaries of a substring in a string.
Class: Substring
Super class: Query
Properties:
Provides class subsumption (the inheritance model) according to the schema design. True whenver 'child' is a child of 'parent'. Can be used as a generator or a check.
Class: Subsumption
Super class: Query
Properties:
Sum a list of strings.
Class: Sum
Super class: Query
Properties:
Trims whitespace from 'untrimmed'.
Class: Trim
Super class: Query
Properties:
Specify an edge pattern in the graph.
Class: Triple
Super class: Query
Properties:
The number of edges in a database.
Class: TripleCount
Super class: Query
Properties:
The query which is always true.
Class: True
Super class: Query
Casts one type as another if possible.
Class: Typecast
Super class: Query
Properties:
Update a document in the graph.
Class: UpdateDocument
Super class: Query
Properties:
Uppercase a string.
Class: Upper
Super class: Query
Properties:
Select a specific collection for query.
Class: Using
Super class: Query
Properties:
A variable, node or data point. It is a subdocument
Class: Value
Properties:
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
Property | Range | Desc |
---|---|---|
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
DataValue
A datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
NodeValue
A URI or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
Value
A URI, datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
DataValue
A datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
NodeValue
A URI or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
Value
A URI, datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
and
Query
List of queries which must hold.
data
xsd:anySimpleType
An xsd data type value.
variable
xsd:string
A variable.
list
DataValue
The list to concatenate.
result
DataValue
The result string.
query
Query
The query from which to obtain the count.
count
DataValue
The count of the number of solutions.
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
DataValue
A data type or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
data
xsd:anySimpleType
An xsd data type value.
variable
xsd:string
A variable.
list
DataValue
A list of datavalues
identifier
NodeValue
An identifier specifying the documentation location to delete.
subject
NodeValue
A URI or variable which is the source or subject of the graph edge. The variable must be bound.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge. The variable must be bound.
object
NodeValue
A URI or variable which is the target or object of the graph edge. The variable must be bound.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
Value
A URI, datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
NodeValue
A URI or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
Value
A URI, datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
variables
xsd:string
The variables which must be distinct from the query.
query
Query
The query which will be run prior to selection.
left
ArithmeticExpression
First operand of div.
right
ArithmeticExpression
Second operand of div.
left
ArithmeticExpression
First operand of divide.
right
ArithmeticExpression
Second operand of divide.
star
undefined
A path patterns.
child
undefined
A URI, data value or variable.
parent
undefined
A URI, data value or variable.
expression
ArithmeticExpression
The expression to be evaluated.
result
ArithmeticValue
The numeric result.
left
ArithmeticExpression
The base.
right
ArithmeticExpression
The exponent.
argument
ArithmeticExpression
The number to floor.
query
Query
The subquery with a new default graph.
graph_filter
xsd:string
The graph filter: 'schema' or 'instance' or '*'.
left
DataValue
The greater element.
right
DataValue
The lesser element.
template
xsd:string
The template of elements in the result list.
group_by
xsd:string
The variables which should be grouped into like solutions.
query
Query
The subquery providing the solutions for the grouping.
grouped
Value
The final list of templated solutions.
base
DataValue
The URI base to the left of the key.
key_list
DataValue
List of data elements required to generate the key.
uri
NodeValue
The resulting URI.
test
Query
A query which will provide bindings for the then clause.
then
Query
A query which will run for every solution of test with associated bindings.
else
Query
A query which runs whenever test fails.
query
Query
The query from which to obtain the side-effects.
query
Query
The subquery with a new default write graph.
graph
xsd:string
The graph filter: schema or instance.
predicate
xsd:string
The predicate to use in reverse direction in the pattern traversal.
element
NodeValue
The element to test.
type
NodeValue
The type of the element.
list
DataValue
The list to concatenate.
separator
DataValue
The separator between each joined string
result
DataValue
The result string.
list
DataValue
The list of which to find the length.
length
DataValue
The length of the list.
left
DataValue
The lesser element.
right
DataValue
The greater element.
base
DataValue
The URI base to the left of the key.
key_list
DataValue
List of data elements required to generate the key.
uri
NodeValue
The resulting URI.
left
DataValue
The first string.
right
DataValue
The second string.
similarity
DataValue
Number between -1 and 1 which gives a scale for similarity.
query
Query
The query to perform.
limit
xsd:nonNegativeInteger
Maximum number of solutions.
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
NodeValue
A URI or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
mixed
DataValue
The mixed case string.
uppser
undefined
The lower case string.
member
DataValue
The element to test for membership or to supply as generated.
list
DataValue
The list of elements against which to generate or test.
left
ArithmeticExpression
First operand of minus.
right
ArithmeticExpression
Second operand of minus.
name
xsd:string
The name of the NamedParametricQuery to be retrieved.
parameters
xsd:string
Variable name list for auxilliary bindings.
query
Query
The query AST as WOQL JSON.
name
xsd:string
The name of the NamedQuery to be retrieved
query
Query
The query AST as WOQL JSON
node
xsd:string
A URI representing a resource.
variable
xsd:string
A variable.
query
Query
The query which must not hold.
query
Query
The query from which to obtain a solution.
query
Query
The query to run.
or
Query
List of queries which may hold.
query
Query
The base query giving the solutions to order.
ordering
OrderTemplate
A specification of the ordering of solutions.
order
Order
An enum either 'asc' or 'desc'.
variable
xsd:string
The variable to order.
string
DataValue
The starting string.
char
DataValue
The padding character.
times
DataValue
The number of times to repeat the padding character.
result
DataValue
The result of the padding as a string.
subject
Value
The starting node.
pattern
PathPattern
The pattern which describes how to traverse edges.
object
Value
The ending node.
path
Value
An optional list of edges traversed.
or
PathPattern
A disjunction of path patterns.
plus
PathPattern
A path patterns.
predicate
xsd:string
The predicate to use in the pattern traversal.
sequence
PathPattern
A sequence of path patterns.
star
PathPattern
A path patterns.
star
undefined
A path patterns.
left
ArithmeticExpression
First operand of add.
right
ArithmeticExpression
Second operand of add.
base
DataValue
The URI base to the left of the key.
uri
NodeValue
The resulting URI.
document
DataValue
Variable which will be bound to the document.
identifier
NodeValue
The URI of the document to load.
pattern
DataValue
The PCRE style pattern.
string
DataValue
The string to test.
result
DataValue
An optional result list of matches.
variables
xsd:string
The variables to select from the query.
query
Query
The query which will be run prior to selection.
resource
xsd:string
The resource to obtain the size of.
size
DataValue
The size.
string
DataValue
The starting string.
pattern
DataValue
The splitting pattern.
list
DataValue
The result list of strings.
query
Query
The query to perform.
start
xsd:nonNegativeInteger
The numbered solution to start at.
string
DataValue
The super-string as data or variable.
substring
DataValue
The super-string as data or variable.
length
DataValue
The length of the string as an integer or variable.
before
DataValue
The count of characters before substring as an integer or variable.
after
DataValue
The count of characters after substring as an integer or variable.
child
NodeValue
The child class as a URI or variable.
parent
NodeValue
The parent class as a URI or variable
list
DataValue
The list of numbers to sum.
result
DataValue
The result of the sum as a number.
untrimmed
DataValue
The untrimmed string.
trimmed
DataValue
The string to be trimmed.
subject
NodeValue
A URI or variable which is the source or subject of the graph edge.
predicate
NodeValue
A URI or variable which is the edge-label or predicate of the graph edge.
object
Value
A URI, datatype or variable which is the target or object of the graph edge.
graph
xsd:string
An optional graph (either 'instance' or 'schema')
resource
xsd:string
The resource to obtain the edges from.
count
DataValue
The count of edges.
value
Value
The value to cast.
type
NodeValue
The type to which to cast.
result
Value
The resulting value after cast.
document
DataValue
The document to update. Must either have an '@id' or have a class specified key.
identifier
NodeValue
An optional returned identifier specifying the documentation location.
mixed
DataValue
The mixed case string.
uppser
undefined
The upper case string.
collection
xsd:string
The resource over which to run the query.
query
Query
The query which will be run on the selected collection.
node
xsd:string
A URI representing a resource.
variable
xsd:string
A variable.
list
Value
A list of datavalues
data
xsd:anySimpleType
An xsd data type value.