SPARQL allows custom functions in filter expressions so that queries can be used on domain-specific data. SPARQL defines a function by URI (or prefixed name) in FILTER expressions. ARQ provides a function library and supports application-provided functions. Functions and property functions can be registered or dynamically loaded.
See also the free text search page.
See also the property functions library page.
Applications can also provide their own functions.
The prefix afn
is
<http://jena.hpl.hp.com/ARQ/function#>
.
Direct loading using a URI prefix of
<java:com.hp.hpl.jena.sparql.function.library.>
(note the
final dot) is deprecated.
The prefix fn
is
<http://www.w3.org/2005/xpath-functions#>
(the XPath and
XQuery function namespace).
String Functions
Function name | Description |
---|---|
fn:contains(string,
substr) |
Test whether substr
occurs in string. |
fn:starts-with(string,
match) |
Test whether string
starts with substr. |
fn:ends-with(string,
match) |
Test whether string
ends with substr. |
fn:string-length( string) |
Return the length of a string . |
fn:lower-case ( string) |
Return a string which is the lower case equivalent of the argument. |
fn:upper-case ( string) |
Return a string which is the upper case equivalent of the argument. |
fn:matches( string,
pattern [, flags]) |
Regular expression match. |
fn:string-concat(string,
...) |
Return the concatenation of
strings.
|
fn:substring(string,
begin [,length]) |
Returns the substring of a string , given
by begin (integer) and, optionally, length
length .
Absence of length means to end of string. Strings are indexed from zero.
|
Notes:
fn:substring
operation takes an optional length,
like C# but different from Java, where it is the endIndex of the
first character after the substring.The operation afn:substring
provides Java semantics.
Mathematical Functions
Function name | Description |
---|---|
afn:min(num1,
num2) |
Return the minimum of two expressions evaluating to numbers. |
fn:round(v) |
Return the nearest integer value to the argument. |
fn:abs(v) |
Return the absolute value. |
fn:floor(v) |
Return the greatest integer value less than the argument (as a double). |
fn:ceiling(v) |
Return the smallest integer value than the argument (as a double). |
Note: See also afn:min
and afn:max
for binary min and max functions.
Boolean Functions
Function name | Description |
---|---|
fn:boolean(value) |
Boolean effective value of
value . |
fn:not(value) |
Logical negation of the boolean
effective value of value . |
RDF Graph Functions
Function name | Description |
---|---|
afn:bnode(?x) |
Return the blank node label if ?x is a blank node. |
afn:localname(?x) |
The local name of ?x if a IRI. Based on splitting the IRI, not on any prefixes in the query or dataset. |
afn:namespace(?x) |
The namespace of ?x if a IRI. Based on splitting the IRI, not on any prefixes in the query or dataset. |
String Functions
Function name | Description |
---|---|
afn:substr( string,
startIndex [, endIndex ]) |
Substring, Java style using
startIndex and endIndex . |
afn:substring |
Synonym for afn:substring |
afn:strjoin(sep, string ...) |
Concatentate string together, with a separator. |
afn:sha1sum(resource) |
Calculate the SHA1 checksum of a literal or URI. |
Mathematical Functions
Function name | Description |
---|---|
afn:min(num1,
num2) |
Return the minimum of two expressions evaluating to numbers. |
afn:max(num1,
num2) |
Return the maximum of two expressions evaluating to numbers. |
afn:pi() |
The value of pi, as an XSD double. |
afn:e() |
The value of e, as an XSD double. |
Miscellaneous Functions
Function name | Description |
---|---|
afn:now() |
Current time. Actually, the time the query started. Constant throughout a query execution. |
afn:sha1sum(resource) |
Calculate the SHA1 checksum of a literal or URI. |