/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, What is Wrong with RQL? Flavius Frasincar
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, SeRQL SeRQL proposes an RDF query language very similar to RQL that solves some of the problems encountered with RQL in practice SeRQL stands for Sesame RDF Query Language (pronounce “circle”) Available from You can try SeRQL queries at sesame/actionFrameset.jsp?repository=museum Feedback to the developers is highly appreciated
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, Variables vs. URIs RQL: does not distinguish between variables and URIs (whitespaces are the solution but they are error prone) {Painter :cult:Painter}cult:paints. cult:technique{Technique} SeRQL: proposes different syntax between variables and URIs –full URI –short URI –variable Painter
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, Literals RQL handles only plain literals Resource Description Framework (RDF): Concepts and Abstract Syntax defines typed literals as consisting of three parts (last two optional): –Label –Optional Language Tag –Optional Data Type (XML Data Types or rdf:XMLLiteral ) SeRQL defines three functions for that: label(), lang(), and datatype()
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, Path Expressions RQL: uses optional nodes and ‘.’ followed by whitespace {cult :Painter}cult:Paints{Painting}. cult:technique{Technique} {cult :Painter}cult:Paints. cult:technique{Technique} SeRQL: uses always ‘{‘and’}’ {cult :Painter}cult:Paints{Painting}cult:technique{Technique} {cult :Painter}cult:Paints{}cult:technique{Technique} SeRQL defines shortcuts for multiple value nodes and branches
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, Construct Queries RQL: supports only select queries that extract information from a model select Painter, Painting from {Painter} cult:paints {Painting} using namespace cult = SeRQL: supports also construct queries construct {Painting} {Painter} from {Painter} {Painting} using namespace res =, cult =
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, Other SeRQL Features RQL does not remove duplicates select Painter from {Painter} cult:paints {Painting} using namespace cult = SeRQL uses “select distinct” to remove duplicates select distinct Painter from {Painter} {Painting} using namespace cult =
/ department of mathematics and computer science TU/e eindhoven university of technology ISAApril 17, Other SeRQL Features (cont’d) SeRQL uses NULL (also) for comparison operations SeRQL has isLiteral() and isResource() Boolean functions defined select * from {R} {L} where isLiteral(L) and lang(L) like "en*" and datatype(L) = NULL using namespace rdfs =