SQUALL (Semantic Query and Update High-Level Language) is a controlled natural language (CNL) for querying and updating RDF graphs. The main advantage of CNLs is to reconcile the high-level and natural syntax of natural languages, and the precision and lack of ambiguity of formal languages. SQUALL has a strong adequacy with RDF, and covers all constructs of SPARQL, and many of SPARQL 1.1. Its syntax completely abstracts from low-level notions such as bindings and relational algebra. It features disjunction, negation, quantifiers, built-in predicates, aggregations with grouping, and n-ary relations through reification.
Principles and Examples
Examples can be found in the papers (see below), and on the Web as active links to their translation, and for some of them, to their answers on DBpedia.
A Web form is now available to translate SQUALL sentences to SPARQL queries and updates.
If you find an error or an unexpected answer, you can send me a message.
The source code is available as a Bitbucket repository. It is written in OCaml, a multi-paradigm functional language, which is ideal for coding Montague grammars. It depends on syntax extensions for indeteministic parsing (dcg-constructs), and indeterministic printing (ipp-constructs). It also depends on the Ocsigen framework for the Web form, but a command line translator is also available (file main.ml).
The syntax, semantics, translation to SPARQL as well as examples, are available in details in the following publications. The SQUALL semantics is given as Montague grammars.
- S. Ferré. SQUALL: The expressiveness of SPARQL 1.1 made available as a controlled natural language. Data & Knowledge Engineering, 26p, 2014. Elsevier.
- S. Ferré. SQUALL: A Controlled Natural Language as Expressive as SPARQL 1.1. Applications of Natural Language to Information Systems (NLDB), 2013, LNCS 7934, p. 114-125. Springer.
- S. Ferré. SQUALL: a Controlled Natural Language for Querying and Updating RDF Graphs. Controlled Natural Languages (CNL), 2012. LNCS 7427, p. 11-25, Springer.
- S. Ferré. SQUALL: a High-Level Language for Querying and Updating the Semantic Web. Research Report PI-1985, IRISA, 2011.
SQUALL is designed and implemented by Sébastien Ferré.