Return items with recorded date less than given date PREFIX dcterms: <http://purl.org/dc/terms/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX web: <http://base22.com/ont/web#> SELECT * WHERE { ?subject dcterms:title ?title. ?subject dcterms:abstract ?abstract. ?subject web:publishDate ?publishDate. FILTER (?publishDate < “2016-09-28T19:19:02.982Z”^^xsd:dateTime) }   […]

Limit the number of results returned PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX bc: <http://www.base22.com/ontologies/2010/5/bc.owl#> SELECT * WHERE { ?subject bc:hasEmployer <http://www.base22.com/ontologies/2010/5/my-contacts.owl#IBM> . ?subject bc:hasBusinessEmail ?email . } LIMIT 5 The LIMIT keyword is used after the WHERE clause, followed by a numerical value. In this case, of course, only 5 results are returned. LIMIT is a solution […]

Find the person entries in Tim Berners-Lee’s FOAF file that do not contain a URL for the person’s FOAF file. Try this on ARQ. PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?name FROM <http://www.w3.org/People/Berners-Lee/card> WHERE { ?person a foaf:Person ; foaf:name ?name . MINUS { ?person rdfs:seeAlso ?url } }   […]

Retrieve the second page of names and emails of people in Tim Berners-Lee’s FOAF file, given that each page has 10 people. Try this on ARQ. PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?email FROM <http://www.w3.org/People/Berners-Lee/card> WHERE { { SELECT DISTINCT ?person ?name WHERE { ?person foaf:name ?name } ORDER BY ?name LIMIT 10 OFFSET 10 } OPTIONAL […]

Is the Amazon river longer than the Nile river? You can also try this one against DBPedia… PREFIX prop: <http://dbpedia.org/property/> ASK { <http://dbpedia.org/resource/Amazon_River> prop:length ?amazon . <http://dbpedia.org/resource/Nile> prop:length ?nile . FILTER(?amazon > ?nile) . } The answer is: false. Note: The WHERE keyword is optional–not only in ASK queries but in all SPARQL queries. Does […]

Here’s a SPARQL query that counts all statements (triples) in a repository. SELECT (COUNT(?s) AS ?triples) WHERE { ?s ?p ?o } Note that this can be a long running query. For me it took took 21 seconds to count the statements in a repository with 30 million triples. […]

Federate data from 2 endpoints Find the birth dates of all of the actors in Star Trek: The Motion Picture. Try this on ARQ. PREFIX movie: <http://data.linkedmdb.org/resource/movie/> PREFIX dbpedia: <http://dbpedia.org/ontology/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?actor_name ?birth_date FROM <http://www.w3.org/People/Berners-Lee/card> # placeholder graph WHERE { SERVICE <http://data.linkedmdb.org/sparql> { <http://data.linkedmdb.org/resource/film/675> movie:actor ?actor . ?actor movie:actor_name ?actor_name } SERVICE […]

Insert some statements PREFIX <http://bedrock/> INSERT DATA { :fred :hasSpouse :wilma . :fred :hasChild :pebbles . :wilma :hasChild :pebbles . :pebbles :hasSpouse :bamm-bamm ; :hasChild :roxy, :chip. } Insert data into a named graph INSERT DATA { GRAPH <http://example.org/myGraph> { <http://example.org/subject> <http://example.org/predicate> <http://example.org/object> } } Inserts into a specific Graph. You can insert as many […]

An example SPARQL query filtering for resources within a given date range (between two given dates). PREFIX c: <https://carbonldp.com/ns/v1/platform#> SELECT ?document ?createdDate WHERE { ?document c:created ?createdDate FILTER (?createdDate < “2017-04-18T22:29:33.667Z”^^xsd:dateTime && ?createdDate > “2017-04-18T21:37:37.708Z”^^xsd:dateTime) } LIMIT 100   […]

Order by the highest population Here’s a similar query for DBPedia – this time, ordered by highest population first and filtered by language (“en”). PREFIX type: <http://dbpedia.org/class/yago/> PREFIX prop: <http://dbpedia.org/property/> SELECT ?country_name ?population WHERE { ?country a type:LandlockedCountries ; rdfs:label ?country_name ; prop:populationEstimate ?population . FILTER (?population > 15000000 && langMatches(lang(?country_name), “en”)) . } ORDER […]