RDF query languages can be grouped into language families, each family comprising a set of closely related languages.[5]
The SPARQL family of languages includes SquishQL, RDQL, SPARQL, and TriQL.[5] These languages treat RDF data stores as triple stores that do not necessarily have ontology or schema information associated with them. Members of the SPARQL family are considered relational query languages because they have relational or pattern-based operations.[6] SquishQL was a language constructed to be easy to use and similar in structure to SQL. RDQL, an acronym for RDF Data Query Language, was a further development of SquishQL. RDQL was intended to be a simple low level RDF language and was at one point a candidate for W3C standardization.[7] SPARQL is an extension of RDQL that supports extraction of RDF subgraphs. In 2008, SPARQL 1.0 became a W3C recommendation[8] and SPARQL 1.1 became a W3C recommendation in 2013.[9]
The RQL family of languages includes RQL, SeRQL, and eRQL.[5] These languages support querying of both data and schema. RQL, an acronym for RDF Query Language, is known for using types defined inRDF schemas (RDFS) to query the schema class hierarchy and to support data querying by type. RQL is considered more expressive than the SPARQL family of languages, but has been criticized for too many features and unusual syntactic constructs. SeRQL and eRQL were developed as simplified alternatives to RQL.
There is a family of RDF query languages inspired by XML query technology.[5] XQuery for RDF uses the XML query languageXQuery to query RDF data by serializing RDF into an XML format and then using XQuery on the result; this has been called the "syntactic web approach". TreeHugger and RDF Twig useXSLT to query RDF data. Versa by 4Suite is a query language that drew inspiration fromXPath.
There exist RDF query languages based on other principles.[5] Metalog combines querying with reasoning and has an English like syntax. Algae is a query language developed by the W3C that adds reactive rules,[10] also called actions, that determine for instance whether an Algae expression is a data query or a data update.
Other examples of RDF Query languages includeRDFDBQL.[11]
^Bikakis, Nikos; Tsinaraki, Chrisa; Gioldasis, Nektarios; Stavrakantonakis, Ioannis; Christodoulakis, Stavros (1 January 2013). "The XML and Semantic Web Worlds: Technologies, Interoperability and Integration: A Survey of the State of the Art".Semantic Hyper/Multimedia Adaptation. Studies in Computational Intelligence. Vol. 418. pp. 319–360.arXiv:1608.03556.doi:10.1007/978-3-642-28977-4_12.ISBN978-3-642-28976-7.S2CID6357481.
^abcdeBailey, James; Bry, François; Furche, Tim; Schaffert, Sebastian (1 January 2005). "Web and Semantic Web Query Languages: A Survey".Reasoning Web. Lecture Notes in Computer Science. Vol. 3564. pp. 35–133.doi:10.1007/11526988_3.ISBN9783540278283. Retrieved23 October 2016.{{cite book}}:|journal= ignored (help)
^Furche, Tim; Linse, Benedikt; Bry, François; Plexousakis, Dimitris; Gottlob, Georg (1 January 2006). "RDF Querying: Language Constructs and Evaluation Methods Compared".Reasoning Web. Lecture Notes in Computer Science. Vol. 4126. pp. 1–52.CiteSeerX10.1.1.71.227.doi:10.1007/11837787_1.ISBN978-3-540-38409-0.
^Angles, Renzo; Gutierrez, Claudio (29 May 2005). "Querying RDF Data from a Graph Database Perspective".The Semantic Web: Research and Applications. Lecture Notes in Computer Science. Vol. 3532. pp. 346–360.doi:10.1007/11431053_24.ISBN978-3-540-26124-7.