1 / 16

Logics for Data and Knowledge Representation

Explore SPARQL queries for RDF models representing entities like persons, books, and more. Solutions for querying authors, publishers, and more.

lbaca
Download Presentation

Logics for Data and Knowledge Representation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logics for Data and Knowledge Representation SPARQL -- Exercises Feroz Farazi

  2. Exercise 1 • Suppose that an RDF model represents information about real world entities of unknown types. The entities can be persons, locations, books, monuments, organizations, etc. • Write a SPARQL query to return all possible information about all kinds of entities. • Write a SPARQL query that can return at most 5 triples representing information

  3. Solution 1 (i) SELECT ?x ?y ?z WHERE { ?x ?y ?z } LIMIT 5 (ii) SELECT ?x ?y ?z WHERE { ?x ?y ?z } You can try the queries here: http://www.sparql.org/query.html

  4. Exercise 2 Given that an RDF model represents information about books and the model is created using standard vocabularies. • Write a SPARQL query that can return the authors of the books. Note that books can be represented as URIs. • Write a SPARQL query that can return the titles and authors of the books. • Write a SPARQL query that can return the date of publication of the books.

  5. Solution 2 (i) (ii) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle } PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?book ?author WHERE { ?book dc:creator ?author }

  6. Solution 2 (iii) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?dateOfPublication WHERE { ?book dc:date ?dateOfPublication. ?book dc:title ?bookTitle }

  7. Exercise 3 Given that an RDF model represents information about books and the model is created using standard vocabularies. (i) Write a SPARQL query that returns the authors and publishers of the books for which publisher information is available. (ii) Write a SPARQL query that returns the authors and publishers of the books for which publisher might or might not be (or optionally) available.

  8. Solution 3 (i) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author ?publishingHouse WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. ?book dc:publisher ?publishingHouse }

  9. Solution 3 (i) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author ?publishingHouse WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. OPTIONAL {?book dc:publisher ?publishingHouse . } }

  10. Exercise 4 Given that an RDF model represents information about books and the model is created using standard vocabularies. (i) Write a SPARQL query that returns the authors of the books in descending order. (ii) Write a SPARQL query that returns the authors of the books that have titles start with “Harry Potter”. (iii) Write a SPARQL query that returns the authors of the books that have titles containing the term “deathly” or “Deathly”.

  11. Solution 4 (i) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. } ORDER BY DESC (?author)

  12. Solution 4 (i) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. FILTER regex(?bookTitle, “^Harry Potter") }

  13. Solution 4 (i) PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. FILTER regex(?bookTitle, "deathly", "i") }

  14. Exercise 5 Given that an RDF model represents information about various entities including books and the model is created using standard vocabularies. • Write a SPARQL query that separates information about books i.e. title and author and creates another RDF model that is a subset of the original one. • Write a SPARQL query that separates information about books i.e. title, author and publisher (if any) and creates another RDF model that is a subset of the original one.

  15. Solution 5 (i) PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT {?book dc:creator ?author. ?book dc:title ?bookTitle} WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. }

  16. Solution 5 (ii) PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT {?book dc:creator ?author. ?book dc:title ?bookTitle. ?book dc:publisher ?pub } WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. OPTIONAL {?book dc:publisher ?pub} }

More Related