## Introduction

The queries shown here can be found in the SPARQL specifications: https://www.w3.org/TR/sparql11-query/

## query 2.1.6 Examples of Query Syntax

    PREFIX  dc: <http://purl.org/dc/elements/1.1/>
    	SELECT  ?title
    	WHERE   { <http://example.org/book/book1> dc:title ?title }

## query 2.1.6-q1 Examples of Query Syntax

    PREFIX  dc: <http://purl.org/dc/elements/1.1/>
    PREFIX  : <http://example.org/book/>
    SELECT  $title
    WHERE   { :book1  dc:title  $title }

## query 2.1.6-q2 Examples of Query Syntax

    BASE    <http://example.org/book/>
    PREFIX  dc: <http://purl.org/dc/elements/1.1/>
    SELECT  $title
    WHERE   { <book1>  dc:title  ?title }

## query 2.5.3 Example of Basic Graph Pattern Matching

    PREFIX foaf:   <http://xmlns.com/foaf/0.1/>
    SELECT ?mbox
    WHERE
    	{ ?x foaf:name "Johnny Lee Outlaw" .
    		?x foaf:mbox ?mbox }

## query 3.1.1 Matching Integers

    SELECT ?v WHERE { ?v ?p 42 }

## query 3.1.2 Matching Arbitrary Datatypes

    SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> }

## query 3.1.3-q1 Matching Language Tags

    SELECT ?x WHERE { ?x ?p "cat"@en }

## query 3.2 Value Constraints

    PREFIX  dc:  <http://purl.org/dc/elements/1.1/>
    PREFIX  ns:  <http://example.org/ns#>
    SELECT  ?title ?price
    WHERE   { ?x ns:price ?price .
    					FILTER (?price < 30) .
    					?x dc:title ?title . }

## query 5.5 Nested Optional Graph Patterns

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
    SELECT ?foafName ?mbox ?gname ?fname
    WHERE
    	{  ?x foaf:name ?foafName .
    		 OPTIONAL { ?x foaf:mbox ?mbox } .
    		 OPTIONAL {  ?x vcard:N ?vc .
    								 ?vc vcard:Given ?gname .
    								 OPTIONAL { ?vc vcard:Family ?fname }
    							}
    	}

## query 6.1-q2 Joining Patterns with UNION

    PREFIX dc10:  <http://purl.org/dc/elements/1.1/>
    PREFIX dc11:  <http://purl.org/dc/elements/1.0/>

    SELECT ?title ?author
    WHERE  { { ?book dc10:title ?title .  ?book dc10:creator ?author }
    				 UNION
    				 { ?book dc11:title ?title .  ?book dc11:creator ?author }
    			 }

## query 8.3 Restricting by Bound Variables

    PREFIX  data:  <http://example.org/foaf/>
    PREFIX  foaf:  <http://xmlns.com/foaf/0.1/>
    PREFIX  rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

    SELECT ?mbox ?nick ?ppd
    WHERE
    {
    	GRAPH data:aliceFoaf
    	{
    		?alice foaf:mbox <mailto:alice@work.example> ;
    					 foaf:knows ?whom .
    		?whom  foaf:mbox ?mbox ;
    					 rdfs:seeAlso ?ppd .
    		?ppd  a foaf:PersonalProfileDocument .
    	} .
    	GRAPH ?ppd
    	{
    			?w foaf:mbox ?mbox ;
    				 foaf:nick ?nick
    	}
    }

## query 9.3 Combining FROM and FROM NAMED

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX dc: <http://purl.org/dc/elements/1.1/>

    SELECT ?who ?g ?mbox
    FROM <http://example.org/dft.ttl>
    FROM NAMED <http://example.org/alice>
    FROM NAMED <http://example.org/bob>
    WHERE
    {
    	 ?g dc:publisher ?who .
    	 GRAPH ?g { ?x foaf:mbox ?mbox }
    }

## query 10.1.2 DISTINCT

    	PREFIX foaf:    <http://xmlns.com/foaf/0.1//>
    SELECT DISTINCT ?name WHERE { ?x foaf:name ?name }

## query 10.1.3-q2 ORDER BY

    PREFIX foaf:    <http://xmlns.com/foaf/0.1/>

    SELECT ?name
    WHERE { ?x foaf:name ?name ; :empId ?emp }
    ORDER BY ?name DESC(?emp)

## query 10.1.5 OFFSET

    PREFIX foaf:    <http://xmlns.com/foaf/0.1/>

    SELECT  ?name
    WHERE   { ?x foaf:name ?name }
    ORDER BY ?name
    LIMIT   5
    OFFSET  10

## query 10.3.1 Templates with Blank Nodes

    PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
    PREFIX vcard:   <http://www.w3.org/2001/vcard-rdf/3.0#>

    CONSTRUCT { ?x  vcard:N _:v .
    						_:v vcard:givenName ?gname .
    						_:v vcard:familyName ?fname }
    WHERE
     {
    		{ ?x foaf:firstname ?gname } UNION  { ?x foaf:givenname   ?gname } .
    		{ ?x foaf:surname   ?fname } UNION  { ?x foaf:family_name ?fname } .
     }

## query 10.3.3 Solution Modifiers and CONSTRUCT

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX site: <http://example.org/stats#>

    CONSTRUCT { [] foaf:name ?name }
    WHERE
    { [] foaf:name ?name ;
    		 site:hits ?hits .
    }
    ORDER BY desc(?hits)
    LIMIT 2

## query 10.4.3 Descriptions of Resources

    PREFIX ent:  <http://org.example.com/employees#>
    DESCRIBE ?x WHERE { ?x ent:employeeId "1234" }

## query 10.5-q1 Asking "yes or no" questions

    PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
    ASK  { ?x foaf:name  "Alice" ;
    					foaf:mbox  <mailto:alice@work.example> }

## query 11.4.1 bound

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX dc:   <http://purl.org/dc/elements/1.1/>
    PREFIX xsd:   <http://www.w3.org/2001/XMLSchema#>
    SELECT ?name
     WHERE { ?x foaf:givenName  ?givenName .
    				 OPTIONAL { ?x dc:date ?date } .
    				 FILTER ( bound(?date) ) }

## query 11.4.3 isBlank

    PREFIX a:      <http://www.w3.org/2000/10/annotation-ns#>
    PREFIX dc:     <http://purl.org/dc/elements/1.1/>
    PREFIX foaf:   <http://xmlns.com/foaf/0.1/>

    SELECT ?given ?family
    WHERE { ?annot  a:annotates  <http://www.w3.org/TR/rdf-sparql-query/> .
    ?annot  dc:creator   ?c .
    OPTIONAL { ?c  foaf:given   ?given ; foaf:family  ?family } .
    FILTER isBlank(?c)
    }

## query 11.4.5 str

    	PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    	SELECT ?name ?mbox
    	 WHERE { ?x foaf:name  ?name ;
    							foaf:mbox  ?mbox .
    FILTER regex(str(?mbox), "@work.example") }

## query 11.4.7 datatype

    	PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    	PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>
    	PREFIX eg:   <http://biometrics.example/ns#>
    	SELECT ?name ?shoeSize
    	 WHERE { ?x foaf:name  ?name ; eg:shoeSize  ?shoeSize .
    					 FILTER ( datatype(?shoeSize) = xsd:integer ) }

## query 11.4.10-q1 RDFterm-equal

    	PREFIX a:      <http://www.w3.org/2000/10/annotation-ns#>
    	PREFIX dc:     <http://purl.org/dc/elements/1.1/>
    	PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>

    	SELECT ?annotates
    	WHERE { ?annot  a:annotates  ?annotates .
    					?annot  dc:date      ?date .
    					FILTER ( ?date = xsd:dateTime("2004-01-01T00:00:00Z") || ?date = xsd:dateTime("2005-01-01T00:00:00Z") ) }

## query 11.6-q1 Extensible Value Testing

    	PREFIX aGeo: <http://example.org/geo#>

    	SELECT ?neighbor
    	WHERE { ?a aGeo:placeName "Grenoble" .
    					?a aGeo:location ?axLoc .
    					?a aGeo:location ?ayLoc .

    					?b aGeo:placeName ?neighbor .
    					?b aGeo:location ?bxLoc .
    					?b aGeo:location ?byLoc .

    					FILTER ( aGeo:distance(?axLoc, ?ayLoc, ?bxLoc, ?byLoc) < 10 ) .
    				}

The final example query is not based on the SPARQL 1.1 queries.

## Full Example query

    	base <http://example.org/geo#>
    	prefix geo: <http://www.opengis.net/ont/geosparql#>
    	prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    	select ?shape ?shapeColor ?shapeHeight ?shapeName (sample(?shapeLabel) as ?shapeLabel)  {
    		{
    			select * {
    				values (?placeName ?streetName) {
    					"Grenoble" "Paul Mistral"
    				}
    				?place geo:NamePlace ?placeName.
    				?pand geo:hasGeometry/geo:asWKT ?shape;
    			}

    		}
    		?pand geo:measuredHeight ?shapeHeight.
    		# Only retrieve buildings larger then 10 meters.
    		FILTER ( ?shapeHeight < 10 ) .
    		BIND(IF(!bound(?EindGeldigheid5), "#22b14c", "#ed1c24" ) AS?tColor)
    		# tekst label
    		bind(concat(str(?streetName),' ',str(?houseNumber),', ',str(?PlaceName)) as ?shapeName)
    		bind("""Multi-line
    		String Element
    		""" as ?shapeLabel)
    	}
    	group by ?shape ?shapeColor ?shapeHeight ?shapeName
    	limit 10