<https://kgdev.net/specifications/sparql11-query/expressions/#SparqlOps>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-query/expressions/SparqlOps/#this> .

<https://kgdev.net/specifications/sparql11-query/expressions/>
        a       <https://www.w3.org/ns/ldt/document-hierarchy#Container> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://kgdev.net/specifications/sparql11-query/expressions/#this> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_10>
                <https://kgdev.net/specifications/sparql11-query/expressions/#extensionFunctions> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
                <https://kgdev.net/specifications/sparql11-query/expressions/#operandDataTypes> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3>
                <https://kgdev.net/specifications/sparql11-query/expressions/#evaluation> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4>
                <https://kgdev.net/specifications/sparql11-query/expressions/#invocation> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_5>
                <https://kgdev.net/specifications/sparql11-query/expressions/#ebv> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_6>
                <https://kgdev.net/specifications/sparql11-query/expressions/#OperatorMapping> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_7>
                <https://kgdev.net/specifications/sparql11-query/expressions/#operatorExtensibility> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_8>
                <https://kgdev.net/specifications/sparql11-query/expressions/#SparqlOps> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_9>
                <https://kgdev.net/specifications/sparql11-query/expressions/#FunctionMapping> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_999>
                <https://kgdev.net/specifications/sparql11-query/expressions/#select-children> ;
        <http://purl.org/dc/terms/modified>
                "2023-07-10T15:21:17.551Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        <http://purl.org/dc/terms/title>
                "Expressions and Testing Values" ;
        <http://rdfs.org/sioc/ns#has_parent>
                <https://kgdev.net/specifications/sparql11-query/> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#expressions> ;
        <http://xmlns.com/foaf/0.1/primaryTopic>
                <https://kgdev.net/specifications/sparql11-query/expressions/#this> .

<https://kgdev.net/specifications/sparql11-query/expressions/#extensionFunctions>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"extensionFunctions\">Extensible Value Testing</h3>\n\n<p>It should be noted that any function or operator that is specified to return an error under some conditions is a valid extension point. That is, an implementation may return a non-error value in these error cases, and still be conformant with this recommendation.</p>\n<p>A <a href=\"../grammar/#rPrimaryExpression\" shape=\"rect\">PrimaryExpression</a> grammar rule can be a call to an extension function named by an IRI. An extension function takes some number of RDF terms as arguments and returns an RDF term. The semantics of these functions are identified by the IRI that identifies the function.</p>\n<p>SPARQL queries using extension functions are likely to have limited interoperability.</p>\n<p>As an example, consider a function called <code>func:even</code>:</p>\n<pre xml:space=\"preserve\"><code>xsd:boolean   func:even (numeric value)\n</code></pre>\n<p>This function would be invoked in a FILTER as such:</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;\nPREFIX func: &lt;http://example.org/functions#&gt;\nSELECT ?name ?id\nWHERE { ?x foaf:name  ?name ;\n           func:empId   ?id .\n        FILTER (func:even(?id)) }\n</code></pre>\n<p>For a second example, consider a function <code>aGeo:distance</code> that calculates the distance between two points, which is used here to find the places near Grenoble:</p>\n<pre xml:space=\"preserve\"><code>xsd:double   aGeo:distance (numeric x1, numeric y1, numeric x2, numeric y2)\n</code></pre>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX aGeo: &lt;http://example.org/geo#&gt;\n\nSELECT ?neighbor\nWHERE { ?a aGeo:placeName \"Grenoble\" .\n        ?a aGeo:locationX ?axLoc .\n        ?a aGeo:locationY ?ayLoc .\n\n        ?b aGeo:placeName ?neighbor .\n        ?b aGeo:locationX ?bxLoc .\n        ?b aGeo:locationY ?byLoc .\n\n        FILTER ( aGeo:distance(?axLoc, ?ayLoc, ?bxLoc, ?byLoc) &lt; 10 ) .\n      }\n</code></pre>\n<p>An extension function might be used to test some application datatype not supported by the core SPARQL specification, it might be a transformation between datatype formats, for example into an XSD dateTime RDF term from another date format.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <https://kgdev.net/specifications/sparql11-query/grammar/#rPrimaryExpression> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#extensionFunctions> ;
        <https://schema.org/name>  "Extensible Value Testing" .

<https://kgdev.net/specifications/sparql11-query/expressions/#ebv>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-query/expressions/evaluation/#ebv> .

<https://kgdev.net/specifications/sparql11-query/expressions/#select-children>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://w3id.org/atomgraph/linkeddatahub#SelectChildren> .

<https://kgdev.net/specifications/sparql11-query/expressions/#OperatorMapping>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-query/expressions/OperatorMapping/#this> .

<https://kgdev.net/specifications/sparql11-query/expressions/#operandDataTypes>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"operandDataTypes\">Operand Data Types</h3>\n\n<p>SPARQL functions and operators operate on RDF terms and SPARQL variables. A subset of these functions and operators are taken from the <a href=\"http://www.w3.org/TR/xpath-functions/\" shape=\"rect\">XQuery 1.0 and XPath 2.0 Functions and Operators</a> [<a href=\"http://www.w3.org/TR/2007/REC-xpath-functions-20070123/\" shape=\"rect\" target=\"_blank\">XQuery 1.0 and XPath 2.0 Functions and Operators</a>] and have XML Schema <a href=\"http://www.w3.org/TR/xpath20/#dt-typed-value\" shape=\"rect\">typed value</a> arguments and return types. RDF <code>typed literals</code> passed as arguments to these functions and operators are mapped to XML Schema typed values with a <a href=\"http://www.w3.org/TR/xpath20/#dt-string-value\" shape=\"rect\">string value</a> of the <code>lexical form</code> and an <a href=\"http://www.w3.org/TR/xmlschema-2/#dt-atomic\" shape=\"rect\">atomic datatype</a> corresponding to the  datatype IRI . The returned typed values are mapped back to RDF <code>typed literals</code> the same way.</p>\n<p>SPARQL has additional operators which operate on specific subsets of RDF terms. When referring to a type, the following terms denote a <code>typed literal</code> with the corresponding <a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/\" shape=\"rect\">XML Schema</a> [<a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/\" shape=\"rect\" target=\"_blank\">XML Schema Part 2: Datatypes Second Edition</a>]  datatype IRI :</p>\n<ul>\n<li>xsd:integer</li>\n<li>xsd:decimal</li>\n<li>xsd:float</li>\n<li>xsd:double</li>\n<li>xsd:string</li>\n<li>xsd:boolean</li>\n<li>xsd:dateTime</li>\n</ul>\n<p>The following terms identify additional types used in SPARQL value tests:</p>\n<ul>\n<li>numeric  denotes <code>typed literals</code> with datatypes <code>xsd:integer</code>, <code>xsd:decimal</code>, <code>xsd:float</code>, and <code>xsd:double</code>.</li>\n<li>simple literal  denotes a <code>plain literal</code> with no <code>language tag</code>.</li>\n<li>RDF term  denotes the types <code>IRI</code>, <code>literal</code>, and <code>blank node</code>.</li>\n<li>variable  denotes a SPARQL variable.</li>\n</ul>\n<p>The following types are derived from  numeric  types and are valid arguments to functions and operators taking  numeric  arguments:</p>\n<ul>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-nonPositiveInteger\" shape=\"rect\"><code>xsd:nonPositiveInteger</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-negativeInteger\" shape=\"rect\"><code>xsd:negativeInteger</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-long\" shape=\"rect\"><code>xsd:long</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-int\" shape=\"rect\"><code>xsd:int</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-short\" shape=\"rect\"><code>xsd:short</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-byte\" shape=\"rect\"><code>xsd:byte</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-nonNegativeInteger\" shape=\"rect\"><code>xsd:nonNegativeInteger</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedLong\" shape=\"rect\"><code>xsd:unsignedLong</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedInt\" shape=\"rect\"><code>xsd:unsignedInt</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedShort\" shape=\"rect\"><code>xsd:unsignedShort</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedByte\" shape=\"rect\"><code>xsd:unsignedByte</code></a></li>\n<li><a href=\"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-positiveInteger\" shape=\"rect\"><code>xsd:positiveInteger</code></a></li>\n</ul>\n<p>SPARQL language extensions may treat additional types as being derived from XML schema datatypes.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedByte> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-nonPositiveInteger> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-negativeInteger> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-long> , <http://www.w3.org/TR/xpath20/#dt-typed-value> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedShort> , <http://www.w3.org/TR/xpath-functions/> , <http://www.w3.org/TR/xpath20/#dt-string-value> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-short> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedInt> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-int> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-unsignedLong> , <http://www.w3.org/TR/2007/REC-xpath-functions-20070123/> , <http://www.w3.org/TR/xmlschema-2/#dt-atomic> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-nonNegativeInteger> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-byte> , <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dt-positiveInteger> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#operandDataTypes> ;
        <https://schema.org/name>  "Operand Data Types" .

<https://kgdev.net/specifications/sparql11-query/expressions/#FunctionMapping>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"FunctionMapping\">XPath Constructor Functions</h3>\n\n<p>SPARQL imports a subset of the XPath constructor functions defined in <a href=\"http://www.w3.org/TR/xpath-functions/\" shape=\"rect\">XQuery 1.0 and XPath 2.0 Functions and Operators</a> [<a href=\"http://www.w3.org/TR/2007/REC-xpath-functions-20070123/\" shape=\"rect\" target=\"_blank\">XQuery 1.0 and XPath 2.0 Functions and Operators</a>] in section <a href=\"http://www.w3.org/TR/xpath-functions/#casting-from-primitive-to-primitive\" shape=\"rect\"> 17.1 Casting from primitive types to primitive types</a>. SPARQL constructors include all of the XPath constructors for the <a href=\"#operandDataTypes\" shape=\"rect\">SPARQL operand datatypes</a> plus the <a href=\"#operandDataTypes\" shape=\"rect\">additional datatypes</a> imposed by the RDF data model. Casting in SPARQL is performed by calling a constructor function for the target type on an operand of the source type.</p>\n<p>XPath defines only the casts from one XML Schema datatype to another. The remaining casts are defined as follows:</p>\n<ul>\n<li>Casting an  IRI  to an <code>xsd:string</code> produces a  typed literal  with a lexical value of the codepoints comprising the IRI, and a datatype of <code>xsd:string</code>.</li>\n<li>Casting a  simple literal  to any XML Schema datatype is defined as the product of casting an <code>xsd:string</code> with the <a href=\"http://www.w3.org/TR/xpath20/#dt-string-value\" shape=\"rect\">string value</a> equal to the lexical value of the literal to the target datatype.</li>\n</ul>\n<p>The table below summarizes the casting operations that are always allowed ( Y ), never allowed ( N ) and dependent on the lexical value ( M ). For example, a casting operation from an <code>xsd:string</code> (the first row) to an <code>xsd:float</code> (the second column) is dependent on the lexical value ( M ).</p>\n<blockquote>\n<p>bool = <a href=\"http://www.w3.org/TR/xmlschema-2/#boolean\" shape=\"rect\">xsd:boolean</a><br clear=\"none\"></br>\n dbl = <a href=\"http://www.w3.org/TR/xmlschema-2/#double\" shape=\"rect\">xsd:double</a><br clear=\"none\"></br>\n flt = <a href=\"http://www.w3.org/TR/xmlschema-2/#float\" shape=\"rect\">xsd:float</a><br clear=\"none\"></br>\n dec = <a href=\"http://www.w3.org/TR/xmlschema-2/#decimal\" shape=\"rect\">xsd:decimal</a><br clear=\"none\"></br>\n int = <a href=\"http://www.w3.org/TR/xmlschema-2/#integer\" shape=\"rect\">xsd:integer</a><br clear=\"none\"></br>\n dT = <a href=\"http://www.w3.org/TR/xmlschema-2/#dateTime\" shape=\"rect\">xsd:dateTime</a><br clear=\"none\"></br>\n str = <a href=\"http://www.w3.org/TR/xmlschema-2/#string\" shape=\"rect\">xsd:string</a><br clear=\"none\"></br>\nIRI  =  IRI<br clear=\"none\"></br>\nltrl  = <code>simple literal</code></p>\n</blockquote>\n<table border=\"1\" cellpadding=\"1\" class=\"casting table table-striped\" summary=\"Casting table\">\n   <col span=\"1\" width=\"13%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <col span=\"1\" width=\"11%\"></col>\n   <thead>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"From\\To\">From \\ To</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"string\">str</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"float\">flt</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"double\">dbl</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"decimal\">dec</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"integer\">int</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"dateTime\">dT</span>\n         </th>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"boolean\">bool</span>\n         </th>\n      </tr>\n   </thead>\n   <tbody>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"string\">str</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to string? Yes\">Y</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to float? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to double? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to decimal? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to integer? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to dateTime? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast string to boolean? Maybe\">M</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"float\">flt</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to string? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to float? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to double? Yes\">Y</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to decimal? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to integer? Maybe\">M</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to dateTime? No\">N</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast float to boolean? Yes\">Y</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"double\">dbl</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to string? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to float? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to double? Yes\">Y</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to decimal? Maybe\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to integer? Maybe\">M</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to dateTime? No\">N</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast double to boolean? Yes\">Y</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"decimal\">dec</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to string? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to float? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to double? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to decimal? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to integer? Yes\">Y</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to dateTime? No\">N</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast decimal to boolean? Yes\">Y</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"integer\">int</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to string? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to float? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to double? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to decimal? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to integer? Yes\">Y</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to dateTime? No\">N</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast integer to boolean? Yes\">Y</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"dateTime\">dT</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to string? Yes\">Y</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to float? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to double? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to decimal? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to integer? No\">N</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to dateTime? Yes\">Y</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast dateTime to boolean? No\">N</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"boolean\">bool</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to string? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to float? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to double? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to decimal? Yes\">Y</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to integer? Yes\">Y</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to dateTime? No\">N</span>\n         </td>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast\" title=\"Cast boolean to boolean? Yes\">Y</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"IRI\">IRI</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to string? Yes\">Y</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to float? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to double? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to decimal? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to integer? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to dateTime? No\">N</span>\n         </td>\n         <td class=\"castN\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast IRI to boolean? No\">N</span>\n         </td>\n      </tr>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Literal\">ltrl</span>\n         </th>\n         <td class=\"castY\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to string? Yes\">Y</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to float? No\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to double? No\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to decimal? No\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to integer? No\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to dateTime? No\">M</span>\n         </td>\n         <td class=\"castM\" colspan=\"1\" rowspan=\"1\">\n            <span class=\"cancast rdfDM\" title=\"Cast Literal to boolean? No\">M</span>\n         </td>\n      </tr>\n   </tbody>\n</table></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <https://kgdev.net/specifications/sparql11-query/expressions/#operandDataTypes> , <http://www.w3.org/TR/xmlschema-2/#dateTime> , <http://www.w3.org/TR/xmlschema-2/#float> , <http://www.w3.org/TR/xmlschema-2/#boolean> , <http://www.w3.org/TR/xpath-functions/> , <http://www.w3.org/TR/xmlschema-2/#double> , <http://www.w3.org/TR/xpath-functions/#casting-from-primitive-to-primitive> , <http://www.w3.org/TR/xmlschema-2/#integer> , <http://www.w3.org/TR/xpath20/#dt-string-value> , <http://www.w3.org/TR/xmlschema-2/#decimal> , <http://www.w3.org/TR/2007/REC-xpath-functions-20070123/> , <http://www.w3.org/TR/xmlschema-2/#string> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#FunctionMapping> ;
        <https://schema.org/name>  "XPath Constructor Functions" .

<https://kgdev.net/specifications/sparql11-query/expressions/#operatorExtensibility>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-query/expressions/OperatorMapping/#operatorExtensibility> .

<https://kgdev.net/specifications/sparql11-query/expressions/#invocation>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-query/expressions/evaluation/#invocation> .

<https://kgdev.net/specifications/sparql11-query/expressions/#this>
        a                          <https://kgdev.net/ns#Definition> , <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h2 id=\"this\">Expressions and Testing Values</h2>\n\n<p>SPARQL <code>FILTERs</code> restrict the solutions of a graph pattern match according to a given <a href=\"../grammar/#rConstraint\" shape=\"rect\">constraint</a>. Specifically, <code>FILTERs</code> eliminate any solutions that, when substituted into the expression, either result in an effective boolean value of <code>false</code> or produce an error. Effective boolean values are defined in section <a href=\"evaluation/#ebv\" shape=\"rect\">17.2.2 <em>Effective Boolean Value</em></a> and errors are defined in XQuery 1.0: An XML Query Language [<a href=\"http://www.w3.org/TR/2007/REC-xquery-20070123/\" shape=\"rect\" target=\"_blank\">XQuery 1.0: An XML Query Language</a>] section <a href=\"http://www.w3.org/TR/2007/REC-xquery-20070123/#dt-type-error\" shape=\"rect\">2.3.1, <em>Kinds of Errors</em></a>. These errors have no effect outside of <code>FILTER</code> evaluation.</p>\n<p>RDF literals may have a datatype IRI:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">@prefix a:          &lt;http://www.w3.org/2000/10/annotation-ns#&gt; .\n@prefix dc:         &lt;http://purl.org/dc/elements/1.1/&gt; .\n\n_:a   a:annotates   &lt;http://www.w3.org/TR/rdf-sparql-query/&gt; .\n_:a   dc:date       \"2004-12-31T19:00:00-05:00\" .\n\n_:b   a:annotates   &lt;http://www.w3.org/TR/rdf-sparql-query/&gt; .\n_:b   dc:date       \"2004-12-31T19:01:00-05:00\"^^&lt;http://www.w3.org/2001/XMLSchema#dateTime&gt; .\n</code></pre>\n<p>The object of the first <code>dc:date</code> triple has no type information. The second has the datatype <code>xsd:dateTime</code>.</p>\n<p>SPARQL expressions are constructed according to the grammar and provide access to functions (named by IRI) and operator functions (invoked by keywords and symbols in the SPARQL grammar). SPARQL operators can be used to compare the values of typed literals:</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX a:      &lt;http://www.w3.org/2000/10/annotation-ns#&gt;\nPREFIX dc:     &lt;http://purl.org/dc/elements/1.1/&gt;\nPREFIX xsd:    &lt;http://www.w3.org/2001/XMLSchema#&gt;\n\nSELECT ?annot\nWHERE { ?annot  a:annotates  &lt;http://www.w3.org/TR/rdf-sparql-query/&gt; .\n        ?annot  dc:date      ?date .\n        FILTER ( ?date &gt; \"2005-01-01T00:00:00Z\"^^xsd:dateTime ) }\n</code></pre>\n<p>The SPARQL operators are listed in <a href=\"OperatorMapping/#this\" shape=\"rect\">section 17.3</a> and are associated with their productions in the grammar.</p>\n<p>In addition, SPARQL provides the ability to invoke arbitrary functions, including a subset of the XPath casting functions, listed in <a href=\"#FunctionMapping\" shape=\"rect\">section 17.5</a>. These functions are invoked by name (an IRI) within a SPARQL query. For example:</p>\n<pre xml:space=\"preserve\"><code>... FILTER ( xsd:dateTime(?date) &lt; xsd:dateTime(\"2005-01-01T00:00:00Z\") ) ...\n</code></pre>\n<p>Typographical convention in this section: XPath operators are labeled with the prefix <code>op:</code>. XPath operators have no namespace; <code>op:</code> is a labeling convention.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#expressions> ;
        <https://schema.org/name>  "Expressions and Testing Values" .

<https://kgdev.net/specifications/sparql11-query/expressions/#evaluation>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-query/expressions/evaluation/#this> .
