ORDER BY solution modifier in CONSTRUCT pattern of SPARQL

Course Queries Syllabus Queries 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Syllabus Queries related to Course Queries. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I followed SPARQL 1.1 section 10.2 CONSTRUCT and have the following SPARQL query which returns all triples whose subject has type Homework and which also have an event date.

CONSTRUCT  { ?s ?p ?o } WHERE 
{
 GRAPH ?g { ?s ?p ?o } .
 { ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   
    <http://lod.isi.edu/ontology/syllabus/Homework> 
 }.

 { ?s <http://lod.isi.edu/ontology/syllabus/hasEventDate> ?date}.
}

Now, I want to retrieve the results in ascending/descending order of the event date, ?date. I tried adding the order by modifier as shown below, but there are parse errors in the OpenRDF workbench.

CONSTRUCT  { ?s ?p ?o } WHERE 
{
 GRAPH ?g { ?s ?p ?o } .
 { ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   
    <http://lod.isi.edu/ontology/syllabus/Homework> 
 }.

 { ?s <http://lod.isi.edu/ontology/syllabus/hasEventDate> ?date}.
 ORDER BY DESC(?date)

}
Encountered " "order" "ORDER "" at line 9, column 6. Was expecting one of:
"(" ... "{" ... "}" ... "[" ...  ...  ... "optional" ...
"https://forum.tuteehub.com/tag/graph">graph" ... "minus" ... "filter" ... "true" ... "false" ... "bind" ...
"service" ... "values" ...  ...  ...  ...
 ...  ...  ...  ...  ...
 ...  ...  ...
 ...  ...  ...
 ...  ...  ...
 ...  ...
profilepic.png
manpreet 2 years ago

The problem is that your ORDER BY clause is not in the correct place in the query. It should be after the closing bracket that closes the WHERE clause:

CONSTRUCT  { ?s ?p ?o } 
WHERE 
{
 GRAPH ?g { ?s ?p ?o } 
 ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#https://forum.tuteehub.com/tag/type">type> <http://lod.isi.edu/ontology/syllabus/Homework> .
 ?s <http://lod.isi.edu/ontology/syllabus/hasEventDate> ?date .
}
ORDER BY ASC(?date)

Also note that several of the curly braces in your original query are, although not exactly https://forum.tuteehub.com/tag/wrong">wrong, superfluous.


0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.