NAME

RDF::Query::Parser::SPARQL - A SPARQL parser for RDF::Query

METHODS

new ( $query_object )

Returns a new RDF::Query object.

parse ( $query )

Parses the supplied RDQL query string, returning a parse tree.

parse_query

Returns the parse tree for a complete SPARQL query.

parse_namespaces

Returns the parse tree for zero or more namespace declarations.

parse_identifier

Returns the parse tree for an identifier.

parse_qURI

Returns the parse tree for a fully qualified URI.

parse_variables

Returns the parse tree for a list of variables for a SELECT query. '*' is an acceptable substitute for a list of variables.

parse_variable

Returns the parse tree for a variable.

parse_sources

Returns the parse tree for zero or more source ('FROM' or 'FROM NAMED') declarations.

parse_uri

Returns the parse tree for a URI (either fully qualified or a QName).

parse_ncname_prefix

Returns the parse tree for a QName prefix.

parse_QName

Returns the parse tree for a QName.

parse_blankQName

Returns the parse tree for a blank QName ('_:foo').

parse_triple_patterns

Returns the parse tree for a (possibly nested) set of triple patterns.

parse_triple_pattern

Returns the parse tree for a single triple pattern. May return multiple triples if multiple-object syntax ('?subj :pred ?obj1, ?obj2'), multiple-predicate syntax ('?subj :pred1 ?obj1 ; :pred2 ?obj2'), collections ('(1 2 3) :pred ?obj'), or blank nodes ('[ a foaf:Person; foaf:name "Jane" ]') are used.

parse_object

Returns the parse tree for the object of a triple pattern (a variable, URI, constant or collection).

parse_optional_objects

Returns the parse tree for a set of optional objects following a full triple pattern (', ?obj2, ?obj3').

parse_optional_predicate_objects

Returns the parse tree for a set of optional predicate-objects following a full triple pattern ('; :pred2 ?obj2 ; :pred3 ?obj3').

parse_predicate_object

Returns the parse tree for a predicate-objects following a triple subject.

parse_collection

Returns the parse tree for a collection.

parse_blanknode

Returns the parse tree for a blank node containing optional triples ('[]' or '[ :pred ?obj ]').

parse_filter

Returns the parse tree for a FILTER declaration.

parse_expression

Returns the parse tree for an expression (possibly multiple expressions joined with a logical-or).

parse_conditional_and_expression

Returns the parse tree for an expression (possibly multiple expressions joined with a logical-and).

parse_value_logical

Returns the parse tree for an expression (possibly multiple expressions joined with a logical operator: equal, not-equal, less-than, less-than-or-equal, greater-than, greater-than-or-equal).

parse_numeric_expression

Returns the parse tree for an expression (possibly multiple expressions joined with a numeric operator: plus, minus).

parse_multiplicative_expression

Returns the parse tree for an expression (possibly multiple expressions joined with a numeric operator: multiply, divide).

parse_unary_expression

Returns the parse tree for a unary expression (possibly with a unary operator: not, negative, positive).

parse_primary_expression

Returns the parse tree for a primary expression: bracketted expression, built-in function call, blank QName, constant, blank node, variable, IRI, or function call.

parse_built_in_call_expression

Returns the parse tree for a built-in function call: REGEX, LANGMATCHES, LANG, DATATYPE, BOUND, isIRI, isURI, isBLANK, or isLITERAL.

parse_iriref_or_function

Returns the parse tree for an IRI or function call.

parse_function_call

Returns the parse tree for a function call.

parse_bracketted_expression

Returns the parse tree for a bracketted expression (parse_expression surrounded by parentheses).

parse_arguments

Returns the parse tree for a function's argument list.

parse_predicate

Returns the parse tree for a predicate. Either 'a' for rdf:type shortcut syntax ('?p a foaf:Person') or a variable or URI.

parse_variable_or_uri

Returns the parse tree for a variable or URI.

parse_variable_or_uri_or_constant

Returns the parse tree for a variable, URI, or constant.

parse_constant

Returns the parse tree for a constant. Either a quoted string (with optional data- or language-typing), or a number.

parse_order_by

Returns the parse tree for an ORDER BY clause.

parse_limit

Returns the parse tree for a LIMIT clause.

parse_offset

Returns the parse tree for an OFFSET clause.

match_literal ( $literal, $case_insensitive_flag )

Matches the supplied $literal at the beginning of the reamining text.

If a match is found, returns the literal. Otherwise returns an error via fail (which might throw an exception if set_commit has been called).

match_pattern ( $pattern )

Matches the supplied regular expression $pattern at the beginning of the reamining text.

If a match is found, returns the matching text. Otherwise returns an error via fail (which might throw an exception if set_commit has been called).

whitespace

Matches any whitespace at the beginning of the reamining text.

set_input ( $input )

Sets the query string for parsing.

get_options ( $distinct, $order, $limit, $offset )

Returns a HASH of result form arguments.

AUTHOR

Gregory Williams <gwilliams@cpan.org>

44 POD Errors

The following errors were encountered while parsing the POD:

Around line 97:

=end for without matching =begin. (Stack: =over)

Around line 183:

=end for without matching =begin. (Stack: =over)

Around line 211:

=end for without matching =begin. (Stack: =over)

Around line 226:

=end for without matching =begin. (Stack: =over)

Around line 251:

=end for without matching =begin. (Stack: =over)

Around line 278:

=end for without matching =begin. (Stack: =over)

Around line 302:

=end for without matching =begin. (Stack: =over)

Around line 327:

=end for without matching =begin. (Stack: =over)

Around line 348:

=end for without matching =begin. (Stack: =over)

Around line 366:

=end for without matching =begin. (Stack: =over)

Around line 396:

=end for without matching =begin. (Stack: =over)

Around line 416:

=end for without matching =begin. (Stack: =over)

Around line 484:

=end for without matching =begin. (Stack: =over)

Around line 602:

=end for without matching =begin. (Stack: =over)

Around line 622:

=end for without matching =begin. (Stack: =over)

Around line 643:

=end for without matching =begin. (Stack: =over)

Around line 664:

=end for without matching =begin. (Stack: =over)

Around line 686:

=end for without matching =begin. (Stack: =over)

Around line 747:

=end for without matching =begin. (Stack: =over)

Around line 776:

=end for without matching =begin. (Stack: =over)

Around line 802:

=end for without matching =begin. (Stack: =over)

Around line 829:

=end for without matching =begin. (Stack: =over)

Around line 857:

=end for without matching =begin. (Stack: =over)

Around line 886:

=end for without matching =begin. (Stack: =over)

Around line 913:

=end for without matching =begin. (Stack: =over)

Around line 940:

=end for without matching =begin. (Stack: =over)

Around line 972:

=end for without matching =begin. (Stack: =over)

Around line 1005:

=end for without matching =begin. (Stack: =over)

Around line 1113:

=end for without matching =begin. (Stack: =over)

Around line 1150:

=end for without matching =begin. (Stack: =over)

Around line 1177:

=end for without matching =begin. (Stack: =over)

Around line 1203:

=end for without matching =begin. (Stack: =over)

Around line 1225:

=end for without matching =begin. (Stack: =over)

Around line 1244:

=end for without matching =begin. (Stack: =over)

Around line 1259:

=end for without matching =begin. (Stack: =over)

Around line 1275:

=end for without matching =begin. (Stack: =over)

Around line 1339:

=end for without matching =begin. (Stack: =over)

Around line 1370:

=end for without matching =begin. (Stack: =over)

Around line 1390:

=end for without matching =begin. (Stack: =over)

Around line 1417:

=end for without matching =begin. (Stack: =over)

Around line 1465:

=end for without matching =begin. (Stack: =over)

Around line 1500:

=end for without matching =begin. (Stack: =over)

Around line 1530:

=end for without matching =begin. (Stack: =over)

Around line 1550:

=end for without matching =begin. (Stack: =over)