| Operator | Beschreibung | Typ des Operanden | Rückgabetyp | 
| .small-font18.inline-code[
```sparql11
bound ( A )
```] | Ist die Variable .hljs-params.monospace[A] gebunden? | Variable | .small-font18.inline-code[
```turtle
xsd:boolean
```] | 
| .small-font18.inline-code[
```sparql11
isIRI ( A ) 
```] oder .small-font18.inline-code[ 
```sparql11
isURI ( A ) 
```] | Ist .hljs-params.monospace[A] eine IRI/URI? | RDF Term | .small-font18.inline-code[
```turtle
xsd:boolean
```] | 
| .small-font18.inline-code[
```sparql11
isBlank ( A )
```] | Ist .hljs-params.monospace[A] ein Blank Node? | RDF Term | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .small-font18.inline-code[
```sparql11
isLiteral ( A )
```] | Ist .hljs-params.monospace[A] ein Literal? | RDF Term | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
]
]
---
# Built-In Funktionen – Logische Operatoren und Vergleiche
.small-font[
| Operator | Beschreibung | Typ des/der Operanden | Rückgabetyp | 
| .monospace[.hljs-operator[!].hljs-params[A]] | Logisches NOT | .small-font.inline-code[
```turtle
xsd:boolean
```] | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[||] .hljs-params[B]] | Logisches OR | .small-font.inline-code[
```turtle
xsd:boolean
```] | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[&&] .hljs-params[B]] | Logisches AND | .small-font.inline-code[
```turtle
xsd:boolean
```] | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[=] .hljs-params[B]] | Gleichheit$^1$ von .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] | RDF Term | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[!=] .hljs-params[B]] | Ungleichheit$^1$ von .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] | RDF Term | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-keyword[sameTerm].hljs-operator[(].hljs-params[A].hljs-operator[,] .hljs-params[B].hljs-operator[)]] | Sind .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] dieselben RDF Terme? Umgehen von Problematik $^1$!
 | RDF Term | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
$^1$ Schmeißen von Fehlern bei nicht unterstützten Datentypen und ungleichen lexikalischen Werten, z.B. bei .inline-code[```sparql11
"iiii"^^my:romanNumeral = "iv"^^my:romanNumeral
```] und .inline-code[```sparql11
"iiii"^^my:romanNumeral != "iv"^^my:romanNumeral
```]
]
---
# XPath Tests und Arithmetik
.condensed[
- Tests
.small-font[
| Operator | Beschreibung | Typ der Operanden | Rückgabetyp | 
| .monospace[.hljs-params[A] .hljs-operator[<] .hljs-params[B]] | .monospace[.hljs-params[A]] kleiner als .monospace[.hljs-params[B]] | XML Schema Datentyp | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[<=] .hljs-params[B]] | .monospace[.hljs-params[A]] kleiner als oder gleich .monospace[.hljs-params[B]] | XML Schema Datentyp | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[>] .hljs-params[B]] | .monospace[.hljs-params[A]] größer als .monospace[.hljs-params[B]] | XML Schema Datentyp | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
| .monospace[.hljs-params[A] .hljs-operator[>=] .hljs-params[B]] | .monospace[.hljs-params[A]] größer als oder gleich .monospace[.hljs-params[B]] | XML Schema Datentyp | .small-font.inline-code[
```turtle
xsd:boolean
```] | 
Zusätzlich bei .monospace[.hljs-params[A].hljs-operator[=].hljs-params[B]] und .monospace[.hljs-params[A].hljs-operator[!=].hljs-params[B]] Interpretation der Operanden 
falls Verwendung von XML Schema Datentypen:
.small-font.inline-code[```sparql11
"+2"^^xsd:integer = "2"^^xsd:integer
```]
]
- Arithmetik
.small-font[
| Operator | Beschreibung | Typ der Operanden | Rückgabetyp | 
| .monospace[.hljs-params[A] .hljs-operator[+] .hljs-params[B]] | Summe von .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] | Numerisch | Numerisch | 
| .monospace[.hljs-params[A] .hljs-operator[-] .hljs-params[B]] | Differenz von .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] | Numerisch | Numerisch | 
| .monospace[.hljs-params[A] .hljs-operator[*] .hljs-params[B]] | Multiplikation von .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] | Numerisch | Numerisch | 
| .monospace[.hljs-params[A] .hljs-operator[/] .hljs-params[B]] | Division von .monospace[.hljs-params[A]] und .monospace[.hljs-params[B]] | Numerisch | Numerisch | 
]
]
---
# Weitere .darkgray.small-font[(hier nicht besprochene)] .darkblue[Features von SPARQL]
.condensed[
- SPARQL 1.0
  - Weitere Built-In Funktionen
  - .darkblue[Construct]-/.darkblue[Ask]- und .darkblue[Describe]-Anfragen, .darkblue[Benannte Graphen]
  - .darkblue[LIMIT]/.darkblue[OFFSET]
- SPARQL 1.1
  - .darkblue[Minus], (.darkblue[Not]) .darkblue[Exists], .darkblue[Gruppieren], .darkblue[Aggregation]sfunktionen
  - .darkblue[Pfad]ausdrücke
  - .darkblue[Unterabfragen], .darkblue[Select-Ausdrücke], .darkblue[explizite Zuweisungen]
  - Absetzen von .darkblue[Unterabfragen zu] entfernten .darkblue[SPARQL Endpoints]
  - .darkblue[Updates]
  - Mächtige Built-In Funktionsbibliothek
-